123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <template>
- <div class="tool-coupon">
- <!--<div class="selectMode">-->
- <!--<div>添加优惠券</div>-->
- <!--<el-radio-group class="modeRight" v-model="modeValue" @change="modeChange">-->
- <!--<el-radio label="1">手动添加</el-radio>-->
- <!--<div class="mode2">-->
- <!--<el-radio label="2">自动获取</el-radio>-->
- <!--<el-tooltip class="item" effect="dark" content="系统自动获取仅设置为“公开领取”的店铺优惠券,新创建的券排在前面" placement="bottom">-->
- <!--<span class="iconfont"></span>-->
- <!--</el-tooltip>-->
- <!--</div>-->
- <!--</el-radio-group>-->
- <!--</div>-->
- <div class="addCouponBox" v-show="couponBtnVisible">
- <div v-if="couponList && couponList.length > 0" class="couponBox">
- <ul>
- <li v-for="(item,index) in couponList" :key="index">
- <h4>{{item.couponName?item.couponName:item.activityName}}</h4>
- <a class="btn-close">
- <i class="icon iconfont icon-close" @click="delCoupon(index)"></i>
- </a>
- </li>
- </ul>
- </div>
- <div class="addCouponBtn" @click="addCoupon">
- <i class="iconfont"></i><span>添加优惠券</span>
- </div>
- </div>
- <el-dialog title="选择优惠券" :visible.sync="couponDialogVisible" width="1000">
- <coupon-select ref="couponSelect"></coupon-select>
- <span slot="footer" class="dialog-footer">
- <el-button @click="couponDialogVisible = false">取 消</el-button>
- <el-button type="primary" @click="couponChanged">确 定</el-button>
- </span>
- </el-dialog>
- </div>
- </template>
- <script>
- import CouponSelect from './coupon-select'
- import { mapGetters, mapMutations } from 'vuex'
- import api from '@@/components/canvasShow/config/api'
- import Cookies from 'js-cookie'
- export default {
- name: 'tool-coupon',
- components: { CouponSelect },
- props: {
- selectedCoupon: {
- type: Array,
- default: () => []
- },
- couponList: {
- type: Array,
- default: () => []
- }
- },
- data () {
- return {
- modeValue: '1', // 添加优惠券方式
- couponBtnVisible: true,
- couponDialogVisible: false
- }
- },
- computed: {
- ...mapGetters([
- 'typeId'
- ])
- },
- methods: {
- ...mapMutations({
- setCouponNum: 'SET_COUPONNUM'
- }),
- // 添加优惠券
- addCoupon () {
- let _this=this
- this.couponDialogVisible = true
- // this.$nextTick(function () {
- // _this.$refs.couponSelect.resetTableData(_this.couponList);
- // })
- },
- // 确定选择
- couponChanged () {
- this.couponDialogVisible = false
- this.couponList = this.$refs.couponSelect.multipleSelection
- this.couponListIds = []
- this.couponList.forEach(item => {
- if(this.typeId===1){
- this.couponListIds.push(item.couponId)
- } else if(this.typeId===3){
- this.couponListIds.push(item.shopCouponId)
- }
- })
- this.$emit('update:couponList', this.couponList)
- this.$emit('update:selectedCoupon', this.couponListIds)
- this.setCouponNum()
- },
- // 删除已选优惠券
- delCoupon (index) {
- this.couponList.splice(index,1)
- this.couponListIds.splice(index,1)
- this.$emit('update:couponList', this.couponList)
- this.$emit('update:selectedCoupon', this.couponListIds)
- this.setCouponNum()
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .tool-coupon{
- padding-bottom: 20px;
- }
- .selectMode {
- display: flex;
- justify-content: space-between;
- align-items: center;
- .modeRight {
- display: flex;
- .iconfont{
- cursor: pointer;
- }
- }
- ::v-deep .el-radio {
- margin-right: 0;
- }
- ::v-deep .el-radio__label {
- padding-left: 5px;
- }
- .mode2 {
- margin-left: 10px;
- span {
- font-size: 14px;
- color: #999999;
- }
- }
- }
- .addCouponBox {
- background: #F6F7F9;
- padding: 10px 13px;
- margin: 20px 0 0;
- .addCouponBtn {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 40px;
- line-height: 40px;
- background: #ffffff;
- font-size: 14px;
- color: $mainColor;
- border: 1px solid $mainColor;
- box-sizing: border-box;
- cursor: pointer;
- i {
- margin-right: 10px;
- }
- }
- }
- .couponBox {
- display: flex;
- align-items: center;
- justify-content: space-between;
- ul{
- width: 100%;
- li{
- height: 40px;
- line-height: 40px;
- text-indent: 10px;
- position: relative;
- margin-bottom: 10px;
- width: 100%;
- box-shadow: 0 0 4px 0 rgb(10 42 97 / 20%);
- .btn-close{
- position: absolute;
- right: -8px;
- top: -8px;
- line-height: 16px;
- display: none;
- i{
- display: block;
- color: #c3c3c3;
- }
- }
- &:hover .btn-close{
- display: block;
- }
- }
- }
- }
- </style>
|