|  | @@ -18,6 +18,16 @@
 | 
	
		
			
				|  |  |    >
 | 
	
		
			
				|  |  |      <div class="dialog">
 | 
	
		
			
				|  |  |        <el-form :model="form" ref="form" :rules="rules" label-width="120px">
 | 
	
		
			
				|  |  | +        <el-form-item label="使用剧目" prop="usePerform" required>
 | 
	
		
			
				|  |  | +          <el-select v-model="form.usePerform" @change="performChange" placeholder="请选择使用剧目">
 | 
	
		
			
				|  |  | +                <el-option
 | 
	
		
			
				|  |  | +                  v-for="dict in performList"
 | 
	
		
			
				|  |  | +                  :key="dict.value"
 | 
	
		
			
				|  |  | +                  :label="dict.label"
 | 
	
		
			
				|  |  | +                  :value="dict.value"
 | 
	
		
			
				|  |  | +                ></el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item label="优惠劵名称" prop="couponName" required>
 | 
	
		
			
				|  |  |            <el-input
 | 
	
		
			
				|  |  |              v-model="form.couponName"
 | 
	
	
		
			
				|  | @@ -38,13 +48,41 @@
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="使用门槛" prop="useThresholdType" required>
 | 
	
		
			
				|  |  | +          <el-radio v-model="form.useThresholdType" :label="1">无条件</el-radio>
 | 
	
		
			
				|  |  | +          <el-radio v-model="form.useThresholdType" :label="2">指定条件</el-radio>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item label="使用对象" prop="useUserType" required>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.useUserType" :label="1">所有用户</el-radio>
 | 
	
		
			
				|  |  | +          <el-radio-group v-model="form.useUserType" @input="handleChange">
 | 
	
		
			
				|  |  | +            <el-radio :label="1">所有用户</el-radio>
 | 
	
		
			
				|  |  | +            <el-radio :label="2">指定分销商</el-radio>
 | 
	
		
			
				|  |  | +          </el-radio-group>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="使用剧目" prop="usePerform" required>
 | 
	
		
			
				|  |  | -          <el-select v-model="form.usePerform" @change="performChange" placeholder="请选择使用剧目">
 | 
	
		
			
				|  |  | +        <el-form-item v-if="form.useUserType==2" label="选择分销商:" prop="useUserId" key="useUserId" required>
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            v-model="form.useUserId"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            multiple
 | 
	
		
			
				|  |  | +            remote
 | 
	
		
			
				|  |  | +            reserve-keyword
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            placeholder="请输入关键词进行查询"
 | 
	
		
			
				|  |  | +            :remote-method="getOptions"
 | 
	
		
			
				|  |  | +            :loading="isLoading"
 | 
	
		
			
				|  |  | +            style="width: 100%;"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in options"
 | 
	
		
			
				|  |  | +              :key="item.id"
 | 
	
		
			
				|  |  | +              :label="item.name"
 | 
	
		
			
				|  |  | +              :value="item.id">
 | 
	
		
			
				|  |  | +            </el-option>
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="发放渠道" prop="channelType" key="channelType" required>
 | 
	
		
			
				|  |  | +          <el-select v-model="form.channelType" :disabled ="isDisabled" placeholder="请选择发放渠道">
 | 
	
		
			
				|  |  |                  <el-option
 | 
	
		
			
				|  |  | -                  v-for="dict in performList"
 | 
	
		
			
				|  |  | +                  v-for="dict in channelTypeList"
 | 
	
		
			
				|  |  |                    :key="dict.value"
 | 
	
		
			
				|  |  |                    :label="dict.label"
 | 
	
		
			
				|  |  |                    :value="dict.value"
 | 
	
	
		
			
				|  | @@ -61,25 +99,11 @@
 | 
	
		
			
				|  |  |                  ></el-option>
 | 
	
		
			
				|  |  |                </el-select>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="使用门槛" prop="useThresholdType" required>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.useThresholdType" :label="1">无条件</el-radio>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.useThresholdType" :label="2">指定条件</el-radio>
 | 
	
		
			
				|  |  | -        </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item v-if="form.useThresholdType==2" label="累计消费满" prop="useThresholdAmount" required>
 | 
	
		
			
				|  |  |            <el-input placeholder="" v-model="form.useThresholdAmount">
 | 
	
		
			
				|  |  |              <template slot="append">元</template>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="发放渠道" prop="channelType" required>
 | 
	
		
			
				|  |  | -          <el-select v-model="form.channelType" placeholder="请选择发放渠道">
 | 
	
		
			
				|  |  | -                <el-option
 | 
	
		
			
				|  |  | -                  v-for="dict in channelTypeList"
 | 
	
		
			
				|  |  | -                  :key="dict.value"
 | 
	
		
			
				|  |  | -                  :label="dict.label"
 | 
	
		
			
				|  |  | -                  :value="dict.value"
 | 
	
		
			
				|  |  | -                ></el-option>
 | 
	
		
			
				|  |  | -              </el-select>
 | 
	
		
			
				|  |  | -        </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item label="发放数量" prop="issuseNum" required>
 | 
	
		
			
				|  |  |            <el-input placeholder="" v-model="form.issuseNum" @change="changeNumber('issuseNum')">
 | 
	
		
			
				|  |  |              <template slot="append">张</template>
 | 
	
	
		
			
				|  | @@ -90,8 +114,10 @@
 | 
	
		
			
				|  |  |            <el-radio v-model="form.isAdd" :label="2">是</el-radio>
 | 
	
		
			
				|  |  |          </el-form-item> -->
 | 
	
		
			
				|  |  |          <el-form-item label="领取限制" prop="receiveType" required>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.receiveType" :label="1">否</el-radio>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.receiveType" :label="2">是</el-radio>
 | 
	
		
			
				|  |  | +          <el-radio-group v-model="form.receiveType">
 | 
	
		
			
				|  |  | +            <el-radio :label="1">否</el-radio>
 | 
	
		
			
				|  |  | +            <el-radio :label="2">是</el-radio>
 | 
	
		
			
				|  |  | +          </el-radio-group>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item v-if="form.receiveType==2" label="领取限制数量" prop="receiveNum" required>
 | 
	
		
			
				|  |  |            <el-input placeholder="" v-model="form.receiveNum" @change="changeNumber('issuseNum')">
 | 
	
	
		
			
				|  | @@ -99,8 +125,10 @@
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item label="使用时间" prop="useType" required>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.useType" :label="1">指定时间</el-radio>
 | 
	
		
			
				|  |  | -          <el-radio v-model="form.useType" :label="2">有效天数</el-radio>
 | 
	
		
			
				|  |  | +          <el-radio-group v-model="form.useType" :disabled="isDisabled">
 | 
	
		
			
				|  |  | +            <el-radio v-model="form.useType" :label="1">指定时间</el-radio>
 | 
	
		
			
				|  |  | +            <el-radio v-model="form.useType" :label="2">领用后开始计算</el-radio>
 | 
	
		
			
				|  |  | +          </el-radio-group>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item v-if="form.useType==1" label="指定时间" prop="useStartDate" required>
 | 
	
		
			
				|  |  |            <el-date-picker
 | 
	
	
		
			
				|  | @@ -113,9 +141,9 @@
 | 
	
		
			
				|  |  |              end-placeholder="结束日期">
 | 
	
		
			
				|  |  |            </el-date-picker>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item v-if="form.useType==2" label="有效天数" prop="useDay" required>
 | 
	
		
			
				|  |  | -          <el-input placeholder="领取后优惠券有效使用天数" v-model="form.useDay">
 | 
	
		
			
				|  |  | -            <template slot="append">天</template>
 | 
	
		
			
				|  |  | +        <el-form-item v-if="form.useType==2" label="领用后开始计算" prop="useDay" required>
 | 
	
		
			
				|  |  | +          <el-input placeholder="领取后优惠券有效使用时间" :disabled="isDisabled" v-model="form.useDay">
 | 
	
		
			
				|  |  | +            <template slot="append">小时</template>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |        </el-form>
 | 
	
	
		
			
				|  | @@ -139,8 +167,9 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  |  // import { updateNoticeMgr } from "@/api/system/noticeMgr";
 | 
	
		
			
				|  |  | -import { saveAndEdit } from "@/api/coupon/coupon";
 | 
	
		
			
				|  |  | +import { saveAndEdit, pageTableList } from "@/api/coupon/coupon";
 | 
	
		
			
				|  |  |  import { goodsPageList } from "@/api/programmeMr/programmeMr";
 | 
	
		
			
				|  |  | +import { tr } from "voca";
 | 
	
		
			
				|  |  |  // import { getToken } from "@/utils/auth";
 | 
	
		
			
				|  |  |  // import { log } from 'mathjs';
 | 
	
		
			
				|  |  |  export default {
 | 
	
	
		
			
				|  | @@ -172,6 +201,7 @@ export default {
 | 
	
		
			
				|  |  |          usePerform: [
 | 
	
		
			
				|  |  |            { required: true, message: "请选择使用剧目", trigger: ["change","blur"] },
 | 
	
		
			
				|  |  |          ],
 | 
	
		
			
				|  |  | +        useUserId:[{ required: true, message: "请选择分销商", trigger: ["change","blur"] }],
 | 
	
		
			
				|  |  |          useGood	: [{ required: true, message: "请选择使用票务", trigger: ["change","blur"] }],
 | 
	
		
			
				|  |  |          useThresholdType: [{ required: true, message: "请选择使用门槛", trigger: ["change","blur"] }],
 | 
	
		
			
				|  |  |          useThresholdAmount: [{ required: true, message: "请输入累计消费满", trigger: ["change","blur"] }],
 | 
	
	
		
			
				|  | @@ -185,10 +215,16 @@ export default {
 | 
	
		
			
				|  |  |          useDay	: [{ required: true, message: "请输入有效天数", trigger: ["change","blur"] }],
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        channelTypeList:[
 | 
	
		
			
				|  |  | -        {label:'小程序',value:1},
 | 
	
		
			
				|  |  | +        { label: '小程序', value: 1 },
 | 
	
		
			
				|  |  | +        { label: '分销', value: 2 },
 | 
	
		
			
				|  |  |        ],
 | 
	
		
			
				|  |  |        performList:[],
 | 
	
		
			
				|  |  |        goodsList:[],
 | 
	
		
			
				|  |  | +      options: [],
 | 
	
		
			
				|  |  | +      timer: null,
 | 
	
		
			
				|  |  | +      isLoading: null,
 | 
	
		
			
				|  |  | +      rowId: [],
 | 
	
		
			
				|  |  | +      isDisabled: false,
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    created() {
 | 
	
	
		
			
				|  | @@ -204,9 +240,24 @@ export default {
 | 
	
		
			
				|  |  |      openDialog(title, obj) {
 | 
	
		
			
				|  |  |        this.open = true;
 | 
	
		
			
				|  |  |        this.reset();
 | 
	
		
			
				|  |  | +      this.getOptions();
 | 
	
		
			
				|  |  |        if (obj){
 | 
	
		
			
				|  |  |          this.title = "编辑优惠券";
 | 
	
		
			
				|  |  |          this.$nextTick(() => {
 | 
	
		
			
				|  |  | +          // console.log(obj,'4444');
 | 
	
		
			
				|  |  | +          // if(obj.useUserId) {
 | 
	
		
			
				|  |  | +          //   this.rowId = obj.useUserId.split(",");
 | 
	
		
			
				|  |  | +          // } else {
 | 
	
		
			
				|  |  | +          //   this.rowId = []
 | 
	
		
			
				|  |  | +          // }
 | 
	
		
			
				|  |  | +          // this.$set(this.form, 'useUserId', this.rowId);
 | 
	
		
			
				|  |  | +          this.$set(this.form, 'useUserId', obj.useUserId);
 | 
	
		
			
				|  |  | +          if(obj.useUserId) {
 | 
	
		
			
				|  |  | +            this.form.useUserId = this.getGoodsIds(this.form.useUserId);
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            this.form.useUserId = []
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          obj.useUserType == 2 ? this.isDisabled = true: this.isDisabled = false;
 | 
	
		
			
				|  |  |            this.$set(this.form, 'id', obj.id);
 | 
	
		
			
				|  |  |            this.$set(this.form, 'couponName', obj.couponName);
 | 
	
		
			
				|  |  |            this.$set(this.form, 'type', obj.type);
 | 
	
	
		
			
				|  | @@ -237,6 +288,61 @@ export default {
 | 
	
		
			
				|  |  |          this.$refs["form"].clearValidate();
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    /** 查询团队列表 */
 | 
	
		
			
				|  |  | +    getOptions(value) {
 | 
	
		
			
				|  |  | +      // if(!value) {
 | 
	
		
			
				|  |  | +      //   this.options = []
 | 
	
		
			
				|  |  | +      //   return
 | 
	
		
			
				|  |  | +      // }
 | 
	
		
			
				|  |  | +      if(this.timer) {
 | 
	
		
			
				|  |  | +        clearTimeout(this.timer)
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.timer = setTimeout(()=>{
 | 
	
		
			
				|  |  | +        this.isLoading = true;
 | 
	
		
			
				|  |  | +        this.options = []
 | 
	
		
			
				|  |  | +        pageTableList({
 | 
	
		
			
				|  |  | +          pageNum: 1,
 | 
	
		
			
				|  |  | +          pageSize: 999,
 | 
	
		
			
				|  |  | +          name: value,
 | 
	
		
			
				|  |  | +          status: 1
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .then(response => {
 | 
	
		
			
				|  |  | +            // let teamArr = response.data.rows || []
 | 
	
		
			
				|  |  | +            // if(teamArr.length != 0) {
 | 
	
		
			
				|  |  | +            //   this.options = teamArr.filter(ele => ele.id != this.rowId)
 | 
	
		
			
				|  |  | +            // } else {
 | 
	
		
			
				|  |  | +            //   this.options = []
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  | +            this.options = response.data.rows || []
 | 
	
		
			
				|  |  | +            this.isLoading = false;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        ).catch(()=>{
 | 
	
		
			
				|  |  | +          this.options = []
 | 
	
		
			
				|  |  | +          this.isLoading = false;
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },1000)
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 使用对象切换
 | 
	
		
			
				|  |  | +    handleChange(val) {
 | 
	
		
			
				|  |  | +      if(val == 2) {
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'channelType', 2);
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'useType', 2);
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'useDay', '24');
 | 
	
		
			
				|  |  | +        // this.form.channelType = 2;
 | 
	
		
			
				|  |  | +        // this.form.useType = 2
 | 
	
		
			
				|  |  | +        // this.form.useDay = 24
 | 
	
		
			
				|  |  | +        this.isDisabled = true
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        // this.form.channelType = 1;
 | 
	
		
			
				|  |  | +        // this.form.useType = 1
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'useUserId', []);
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'channelType', 1);
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'useType', 1);
 | 
	
		
			
				|  |  | +        this.$set(this.form, 'useDay', '');
 | 
	
		
			
				|  |  | +        this.isDisabled = false
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      getGoodsIds(data, type) {
 | 
	
		
			
				|  |  |          if (type == "array") {
 | 
	
		
			
				|  |  |              let array = data.join(",")
 | 
	
	
		
			
				|  | @@ -266,7 +372,10 @@ export default {
 | 
	
		
			
				|  |  |            try {
 | 
	
		
			
				|  |  |              this.loading = true;
 | 
	
		
			
				|  |  |              let params = JSON.parse(JSON.stringify(this.form))
 | 
	
		
			
				|  |  | +            params.useUserId  = this.form.useUserId.join(",");
 | 
	
		
			
				|  |  |              params.useGood = this.getGoodsIds(params.useGood, "array")
 | 
	
		
			
				|  |  | +            console.log(this.form,'this.form');
 | 
	
		
			
				|  |  | +            console.log(params,'params');
 | 
	
		
			
				|  |  |              const { code } = await saveAndEdit({ ...params });
 | 
	
		
			
				|  |  |              if (code === 200) {
 | 
	
		
			
				|  |  |                this.$message.success("操作成功!");
 |