Ver Fonte

招新优惠券

wangxy há 16 horas atrás
pai
commit
88e4231a37
1 ficheiros alterados com 77 adições e 0 exclusões
  1. 77 0
      src/views/his/courseCheckIn/index.vue

+ 77 - 0
src/views/his/courseCheckIn/index.vue

@@ -21,6 +21,7 @@
           <el-option label="红包" :value="1" />
           <el-option label="积分商品免单券" :value="2" />
           <el-option label="大礼品" :value="3" />
+          <el-option label="门店核销券" :value="4" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -56,6 +57,7 @@
           <el-tag v-if="scope.row.prizeType === 1" type="warning">红包</el-tag>
           <el-tag v-else-if="scope.row.prizeType === 2" type="success">积分商品免单券</el-tag>
           <el-tag v-else-if="scope.row.prizeType === 3" type="primary">大礼品</el-tag>
+          <el-tag v-else-if="scope.row.prizeType === 4" type="">门店核销券</el-tag>
           <span v-else>-</span>
         </template>
       </el-table-column>
@@ -175,6 +177,7 @@
             <el-option :label="'红包'" :value="1" />
             <el-option :label="'积分商品免单券'" :value="2" />
             <el-option label="大礼品" :value="3" />
+            <el-option label="门店核销券" :value="4" />
           </el-select>
         </el-form-item>
 
@@ -220,6 +223,24 @@
           </el-select>
         </el-form-item>
 
+        <el-form-item v-if="form.prizeType === 4" label="门店核销券" prop="freeCouponId"
+                      :rules="{ required: true, message: '门店核销券不能为空', trigger: 'change' }">
+          <el-select
+            ref="customSelectVerifyCoupon"
+            v-model="form.freeCouponId"
+            placeholder="请选择门店核销券"
+            @click.native.stop="openVerifyCouponDrawer"
+            clearable
+            style="width: 100%;">
+            <el-option
+              v-for="item in verifyCouponList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+
         <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" type="textarea" :rows="2" placeholder="请输入备注" size="small" />
         </el-form-item>
@@ -308,6 +329,22 @@
             <el-table-column label="领取时间" align="center" prop="receiveTime" min-width="160" />
           </el-table>
         </el-tab-pane>
+        <el-tab-pane label="门店核销券领取记录" name="4" v-if="prizeRecordType === '4'">
+          <el-table v-loading="prizeRecordLoading" :data="prizeRecordList" border style="width: 100%">
+            <el-table-column label="ID" align="center" prop="receiveId" min-width="80" />
+            <el-table-column label="用户昵称" align="center" prop="userNickName" min-width="120" show-overflow-tooltip />
+            <el-table-column label="企业名" align="center" prop="companyName" min-width="150" show-overflow-tooltip />
+            <el-table-column label="优惠券名称" align="center" prop="prizeName" min-width="150" show-overflow-tooltip />
+            <el-table-column label="领取状态" align="center" prop="receiveStatus" min-width="100">
+              <template slot-scope="scope">
+                <el-tag v-if="scope.row.receiveStatus === 0" type="info">未领取</el-tag>
+                <el-tag v-else-if="scope.row.receiveStatus === 1" type="success">已领取</el-tag>
+                <el-tag v-else-if="scope.row.receiveStatus === 2" type="danger">领取失败</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="领取时间" align="center" prop="receiveTime" min-width="160" />
+          </el-table>
+        </el-tab-pane>
       </el-tabs>
       <pagination
         v-show="prizeRecordTotal>0"
@@ -327,6 +364,11 @@
     <el-drawer :append-to-body="true" :with-header="false" size="75%" :visible.sync="couponDrawerOpen">
       <coupon-component :coupon-type="7" @select-coupon="selectCoupon"></coupon-component>
     </el-drawer>
+
+    <!-- 选择门店核销券 -->
+    <el-drawer :append-to-body="true" :with-header="false" size="75%" :visible.sync="verifyCouponDrawerOpen">
+      <coupon-component :coupon-type="8" @select-coupon="selectVerifyCoupon"></coupon-component>
+    </el-drawer>
   </div>
 </template>
 
@@ -433,6 +475,8 @@ export default {
       },
       couponDrawerOpen: false,
       couponList: [],
+      verifyCouponDrawerOpen: false,
+      verifyCouponList: [],
       rewardDrawerOpen: false,
       rewardList: [],
     };
@@ -510,6 +554,7 @@ export default {
         remark: null,
         checkinDays: null,
         grandGiftId: null,
+        freeCouponId: null,
       };
     },
     // 校验打卡天数不能超过活动时长
@@ -577,6 +622,9 @@ export default {
             this.$set(this.form, 'grandGiftId', prize.grandGiftId);
             console.log(prize.grandGiftId);
             this.initRewardList(prize.grandGiftId)
+          } else if (this.form.prizeType === 4) {
+            this.$set(this.form, 'freeCouponId', prize.freeCouponId)
+            this.initVerifyCouponList(prize.freeCouponId)
           }
         }
         this.open = true;
@@ -697,6 +745,11 @@ export default {
               prizeType: 3,
               grandGiftId: this.form.grandGiftId
             })
+          } else if (this.form.prizeType === 4) {
+            prizeList.push({
+              prizeType: 4,
+              freeCouponId: this.form.freeCouponId
+            })
           }
 
           const submitData = {
@@ -756,6 +809,30 @@ export default {
       }
       this.rewardDrawerOpen = false
     },
+    openVerifyCouponDrawer() {
+      this.$nextTick(() => {
+        this.$refs.customSelectVerifyCoupon?.blur?.()
+      });
+      this.verifyCouponDrawerOpen = true
+    },
+    selectVerifyCoupon(coupon) {
+      this.form.freeCouponId = coupon.id
+      if (!this.verifyCouponList.some(item => item.id === coupon.id)) {
+        this.verifyCouponList.push(coupon)
+      }
+      this.verifyCouponDrawerOpen = false
+    },
+    initVerifyCouponList(ids) {
+      if (!ids) return
+      getByIds({ids}).then(response => {
+        const {data} = response
+        data.forEach(d => {
+          if (!this.verifyCouponList.some(item => item.id === d.couponId)) {
+            this.verifyCouponList.push({"id": d.couponId, "name": d.title})
+          }
+        })
+      })
+    },
   }
 };
 </script>