Переглянути джерело

运营平台活动创建修改:
1、取消权益优惠叠加选项,一律不支持优惠叠加;
2、取消活动创建时数量限制,开放优惠券单独数量限制;
3、取消活动目标用户选项,一律不限,发券时自主确认用户范围。

skyline 1 рік тому
батько
коміт
91253689da

+ 20 - 20
admin-web/src/views/admin/activity/coupon/dialog.vue

@@ -80,24 +80,24 @@
           </ext-d-select>
         </el-form-item>
 
-        <el-form-item label="优惠允许叠加" prop="allowStacke">
-          <ext-d-select
-              v-model="state.ruleForm.allowStacke"
-              placeholder="优惠允许叠加"
-              type="Activity.allowStacke"
-              clearable
-              class="wd200 ">
-          </ext-d-select>
-        </el-form-item>
-        <el-form-item label="数量限制" prop="quantity">
-          <el-input
-              type="number"
-              v-model.trim="state.ruleForm.quantity"
-              placeholder="数量限制"
-              clearable
-              class="wd200">
-          </el-input>
-        </el-form-item>
+<!--        <el-form-item label="优惠允许叠加" prop="allowStacke">-->
+<!--          <ext-d-select-->
+<!--              v-model="state.ruleForm.allowStacke"-->
+<!--              placeholder="优惠允许叠加"-->
+<!--              type="Activity.allowStacke"-->
+<!--              clearable-->
+<!--              class="wd200 ">-->
+<!--          </ext-d-select>-->
+<!--        </el-form-item> -->
+<!--        <el-form-item label="数量限制" prop="quantity">-->
+<!--          <el-input-->
+<!--              type="number"-->
+<!--              v-model.trim="state.ruleForm.quantity"-->
+<!--              placeholder="数量限制"-->
+<!--              clearable-->
+<!--              class="wd200">-->
+<!--          </el-input>-->
+<!--        </el-form-item>-->
         <!--        <el-form-item label="活动状态" prop="status">
                   <ext-d-select
                       v-model="state.ruleForm.status"
@@ -287,8 +287,8 @@
 
             <el-row :gutter="20">
                 <el-col :span="12">
-                  <el-form-item label="最小服务费金额(元)" prop="minServiceMoney">
-                    <ext-input-number   class="wd200 "  v-model="coupon.minServiceMoney" :ratio="100"  placeholder="最小服务费金额"></ext-input-number>
+                  <el-form-item label="服务费门槛(元)" prop="minServiceMoney">
+                    <ext-input-number   class="wd200 "  v-model="coupon.minServiceMoney" :ratio="100"  placeholder="服务费门槛"></ext-input-number>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">

+ 3 - 3
admin-web/src/views/admin/activity/coupon/index.vue

@@ -177,10 +177,10 @@ const state = reactive({
       {label: '活动时间', prop: 'period', resizable: true, width: 350},
       // {label: '结束时间', prop: 'endTime',  resizable: true, width: 150},
       {label: '优惠券描述', prop: 'couponDesc', align: 'center', width: 330},
-      {label: '最小服务费金额(元)', prop: 'minServiceMoney', resizable: true, width: 180},
+      {label: '服务费门槛(元)', prop: 'minServiceMoney', resizable: true, width: 180},
       {label: '折扣', prop: 'discount', resizable: true, width: 130},
-      {label: '优惠允许叠加', prop: 'allowStacke', resizable: true, width: 130},
-      {label: '数量限制', prop: 'quantity', resizable: true, width: 130},
+      // {label: '优惠允许叠加', prop: 'allowStacke', resizable: true, width: 130},
+      // {label: '数量限制', prop: 'quantity', resizable: true, width: 130},
       {label: '创建时间', prop: 'createTime', resizable: true, width: 180},
       {label: '更新时间', prop: 'updateTime', resizable: true, width: 180},
       {

+ 139 - 104
admin-web/src/views/admin/activity/dialog.vue

@@ -60,7 +60,7 @@
               class="wd200">
           </ext-date-picker>
         </el-form-item>
-<!--        RechargeRights  "Coupon"-->
+        <!--        RechargeRights  "Coupon"-->
         <el-form-item label="优惠方式" prop="discountType">
           <ext-d-select
               v-model="state.ruleForm.discountType"
@@ -70,34 +70,34 @@
               class="wd200 ">
           </ext-d-select>
         </el-form-item>
-        <el-form-item label="目标用户" prop="targetUsers" v-if="state.ruleForm.discountType==='RechargeRights'">
-          <ext-d-select
-              v-model="state.ruleForm.targetUsers"
-              placeholder="目标用户"
-              type="Activity.targetUsers"
-              clearable
-              class="wd200 ">
-          </ext-d-select>
-        </el-form-item>
-
-        <el-form-item label="优惠允许叠加" prop="allowStacke">
-          <ext-d-select
-              v-model="state.ruleForm.allowStacke"
-              placeholder="优惠允许叠加"
-              type="Activity.allowStacke"
-              clearable
-              class="wd200 ">
-          </ext-d-select>
-        </el-form-item>
-        <el-form-item label="数量限制" prop="quantity">
-          <el-input
-              type="number"
-              v-model.trim="state.ruleForm.quantity"
-              placeholder="数量限制"
-              clearable
-              class="wd200">
-          </el-input>
-        </el-form-item>
+<!--        <el-form-item label="目标用户" prop="targetUsers" v-if="state.ruleForm.discountType==='RechargeRights'">-->
+<!--          <ext-d-select-->
+<!--              v-model="state.ruleForm.targetUsers"-->
+<!--              placeholder="目标用户"-->
+<!--              type="Activity.targetUsers"-->
+<!--              clearable-->
+<!--              class="wd200 ">-->
+<!--          </ext-d-select>-->
+<!--        </el-form-item>-->
+
+        <!--        <el-form-item label="优惠允许叠加" prop="allowStacke">-->
+        <!--          <ext-d-select-->
+        <!--              v-model="state.ruleForm.allowStacke"-->
+        <!--              placeholder="优惠允许叠加"-->
+        <!--              type="Activity.allowStacke"-->
+        <!--              clearable-->
+        <!--              class="wd200 ">-->
+        <!--          </ext-d-select>-->
+        <!--        </el-form-item>-->
+        <!--        <el-form-item label="数量限制" prop="quantity">-->
+        <!--          <el-input-->
+        <!--              type="number"-->
+        <!--              v-model.trim="state.ruleForm.quantity"-->
+        <!--              placeholder="数量限制"-->
+        <!--              clearable-->
+        <!--              class="wd200">-->
+        <!--          </el-input>-->
+        <!--        </el-form-item>-->
         <!--        <el-form-item label="活动状态" prop="status">
                   <ext-d-select
                       v-model="state.ruleForm.status"
@@ -121,7 +121,7 @@
         </el-form-item>
 
         <div class="sub-group-bottom"> 关联站点</div>
-<!--        <el-divider content-position="left">关联站点</el-divider>-->
+        <!--        <el-divider content-position="left">关联站点</el-divider>-->
         <el-form-item label="适用站点" prop="applyStation">
           <ext-d-select
               @on-change="handleStationChange"
@@ -147,18 +147,20 @@
         </el-form-item>
 
         <div class="sub-group-bottom"> 关联权益</div>
-<!--        <el-divider content-position="left">关联权益</el-divider>-->
+        <!--        <el-divider content-position="left">关联权益</el-divider>-->
         <el-button size="small" plain type="success" class="ml10" @click="handleAddRightsItem">
           <SvgIcon name="ele-FolderAdd"/>
           新增权益
         </el-button>
 
-<!--        服务费折扣权益 -->
+        <!--        服务费折扣权益 -->
         <template v-if="state.ruleForm.discountType==='RechargeRights'">
           <el-card v-for="(rights,idx) in state.ruleForm.rechargeRightsList" :key="idx" class="mt10" shadow="hover">
             <template #header>
               <div class="card-header">
-                <el-button class="button" plain type="danger" size="small" v-auth="'activity.modify'" @click="handleRemoveRightsItem(idx)">删除</el-button>
+                <el-button class="button" plain type="danger" size="small" v-auth="'activity.modify'"
+                           @click="handleRemoveRightsItem(idx)">删除
+                </el-button>
               </div>
             </template>
 
@@ -190,28 +192,30 @@
             <el-row :gutter="20">
               <el-col :span="12">
                 <el-form-item label="最小充值金额(元)" prop="amountMin">
-                  <ext-input-number  class="wd200"  v-model="rights.amountMin" :ratio="100"  placeholder="最小充值金额"></ext-input-number>
-<!--                  <el-input-number
-                      controls-position="right"
-                      v-model.trim="rights.amountMin"
-                      placeholder="最小充值金额"
-                      clearable
-                      :min="0"
-                      class="wd200">
-                  </el-input-number>-->
+                  <ext-input-number class="wd200" v-model="rights.amountMin" :ratio="100"
+                                    placeholder="最小充值金额"></ext-input-number>
+                  <!--                  <el-input-number
+                                        controls-position="right"
+                                        v-model.trim="rights.amountMin"
+                                        placeholder="最小充值金额"
+                                        clearable
+                                        :min="0"
+                                        class="wd200">
+                                    </el-input-number>-->
                 </el-form-item>
               </el-col>
               <el-col :span="12">
                 <el-form-item label="最大充值金额(元)" prop="amountMin">
-                  <ext-input-number  class="wd200"  v-model="rights.amountMax" :ratio="100"  placeholder="最大充值金额"></ext-input-number>
-<!--                  <el-input-number
-                      controls-position="right"
-                      v-model.trim="rights.amountMax"
-                      placeholder="最大充值金额"
-                      clearable
-                      :min="0"
-                      class="wd200">
-                  </el-input-number>-->
+                  <ext-input-number class="wd200" v-model="rights.amountMax" :ratio="100"
+                                    placeholder="最大充值金额"></ext-input-number>
+                  <!--                  <el-input-number
+                                        controls-position="right"
+                                        v-model.trim="rights.amountMax"
+                                        placeholder="最大充值金额"
+                                        clearable
+                                        :min="0"
+                                        class="wd200">
+                                    </el-input-number>-->
                 </el-form-item>
 
               </el-col>
@@ -222,7 +226,7 @@
                   <el-input-number
                       :controls="false"
                       v-model.trim="rights.discount"
-                      placeholder="折扣:100代表无折扣,75代表75折"
+                      placeholder="例:75代表75折"
                       clearable
                       class="wd200">
                   </el-input-number>
@@ -245,19 +249,21 @@
           </el-card>
         </template>
 
-<!--        优惠券-->
+        <!--        优惠券-->
         <template v-else>
           <el-card v-for="(coupon,idx) in state.ruleForm.couponList" :key="idx" class="mt10" shadow="hover">
             <template #header>
               <div class="card-header">
-                <el-button class="button" plain type="danger" size="small" v-auth="'activity.modify'" @click="handleRemoveCouponItem(idx)">删除</el-button>
+                <el-button class="button" plain type="danger" size="small" v-auth="'activity.modify'"
+                           @click="handleRemoveCouponItem(idx)">删除
+                </el-button>
               </div>
             </template>
 
             <el-row :gutter="20">
               <el-col :span="12">
                 <el-form-item label="名称" prop="coupon.name">
-                <el-input
+                  <el-input
                       v-model="coupon.name"
                       placeholder="名称"
                       clearable
@@ -267,18 +273,18 @@
               </el-col>
             </el-row>
 
-              <el-form-item label="权益描述" prop="rightsDesc" class="w100">
-                <el-input
-                    maxlength="500"
-                    show-word-limit
-                    type="textarea"
-                    :rows="2"
-                    v-model.trim="coupon.couponDesc"
-                    placeholder="权益描述"
-                    clearable
-                    class="w100">
-                </el-input>
-              </el-form-item>
+            <el-form-item label="权益描述" prop="rightsDesc" class="w100">
+              <el-input
+                  maxlength="500"
+                  show-word-limit
+                  type="textarea"
+                  :rows="2"
+                  v-model.trim="coupon.couponDesc"
+                  placeholder="权益描述"
+                  clearable
+                  class="w100">
+              </el-input>
+            </el-form-item>
 
 
             <el-row :gutter="20">
@@ -293,13 +299,13 @@
                   </ext-d-select>
                 </el-form-item>
               </el-col>
+
               <el-col :span="12">
-                <el-form-item label="有效期(天)" prop="validity">
+                <el-form-item label="折扣" prop="discount">
                   <el-input-number
-                      :min="1"
                       :controls="false"
-                      v-model.trim="coupon.validity"
-                      placeholder="有效天数"
+                      v-model.trim="coupon.discount"
+                      placeholder="75代表75折或折扣金额(分)"
                       clearable
                       class="wd200">
                   </el-input-number>
@@ -309,25 +315,51 @@
 
 
             <el-row :gutter="20">
-                <el-col :span="12">
-                  <el-form-item label="最小服务费金额(元)" prop="minServiceMoney">
-                    <ext-input-number   class="wd200 "  v-model="coupon.minServiceMoney" :ratio="100"  placeholder="最小服务费金额"></ext-input-number>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                  <el-form-item label="折扣" prop="discount">
-                    <el-input-number
-                        :controls="false"
-                        v-model.trim="coupon.discount"
-                        placeholder="折扣:100代表无折扣,75代表75折;折扣金额(分)"
-                        clearable
-                        class="wd200">
-                    </el-input-number>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
+              <el-col :span="12">
+                <el-form-item label="服务费门槛(元)" prop="minServiceMoney">
+                  <ext-input-number class="wd200 " v-model="coupon.minServiceMoney" :ratio="100"
+                                    placeholder="服务费门槛"></ext-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="数量(0为不限)" prop="quantity">
+                  <el-input-number
+                      :min=0
+                      :controls="false"
+                      v-model.trim="coupon.quantity"
+                      placeholder="数量"
+                      clearable
+                      class="wd200">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
 
+            <el-row :gutter="20">
+              <el-col :span="12">
+                <el-form-item label="领取方式" prop="receiveType">
+                  <ext-d-select
+                      v-model="coupon.receiveType"
+                      placeholder="优惠券领取方式"
+                      type="Coupon.receiveType"
+                      clearable
+                      class="wd200 ">
+                  </ext-d-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="有效期(天)" prop="validity">
+                  <el-input-number
+                      :min="1"
+                      :controls="false"
+                      v-model.trim="coupon.validity"
+                      placeholder="有效天数"
+                      clearable
+                      class="wd200">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
 
           </el-card>
         </template>
@@ -338,7 +370,9 @@
       <template #footer>
         <div class="dialog-footer">
           <el-button @click="onCancel" size="default">取 消</el-button>
-          <el-button v-if="state.action==='add'||state.action==='edit'" :loading="state.btnLoading" type="primary" @click="onSubmit" size="default">{{ state.dialog.submitTxt }}</el-button>
+          <el-button v-if="state.action==='add'||state.action==='edit'" :loading="state.btnLoading" type="primary"
+                     @click="onSubmit" size="default">{{ state.dialog.submitTxt }}
+          </el-button>
         </div>
       </template>
     </el-dialog>
@@ -380,8 +414,8 @@ const initState = () => ({
     discountType: [u.validator.required],
     targetUsers: [u.validator.required],
     applyStation: [u.validator.required],
-    allowStacke: [u.validator.required],
-    quantity: [u.validator.required],
+    // allowStacke: [u.validator.required],
+    // quantity: [u.validator.required],
     status: [u.validator.required],
   },
 })
@@ -417,7 +451,7 @@ const onSubmit = () => {
   if (!u.isEmptyOrNull(rechargeRightsList)) {
     for (let i = 0; i < rechargeRightsList.length; i++) {
       const item: any = rechargeRightsList[i];
-      if (item.amountMax <=0) {
+      if (item.amountMax <= 0) {
         Msg.message(`权益最大充值金额不能小于0`, 'error')
         return false;
       }
@@ -428,10 +462,10 @@ const onSubmit = () => {
       }
     }
 
-/*    state.ruleForm.rechargeRightsList.forEach((rights: any) => {
-      rights.amountMin = rights.amountMin * 100;
-      rights.amountMax = rights.amountMax * 100;
-    })*/
+    /*    state.ruleForm.rechargeRightsList.forEach((rights: any) => {
+          rights.amountMin = rights.amountMin * 100;
+          rights.amountMax = rights.amountMax * 100;
+        })*/
   }
 
   formRef.value.validate((valid: boolean) => {
@@ -460,10 +494,10 @@ const handleFormChange = (formData: any) => {
 const loadData = (id: number) => {
   $get(`activity/${id}`).then((res: any) => {
     if (res && res.rechargeRightsList) {
-/*      res.rechargeRightsList.forEach((rights: any) => {
-        rights.amountMin = rights.amountMin / 100;
-        rights.amountMax = rights.amountMax / 100;
-      })*/
+      /*      res.rechargeRightsList.forEach((rights: any) => {
+              rights.amountMin = rights.amountMin / 100;
+              rights.amountMax = rights.amountMax / 100;
+            })*/
     }
     state.ruleForm = res;
     state.ruleForm.rechargeRightsList = res.rechargeRightsList || []
@@ -479,19 +513,20 @@ const handleStationChange = (applyStation: number) => {
 }
 
 const handleAddRightsItem = () => {
-  if(state.ruleForm.discountType==='RechargeRights'){
+  if (state.ruleForm.discountType === 'RechargeRights') {
     state.ruleForm.rechargeRightsList.unshift({
       rightsDesc: '',
       amountMin: 0,
       amountMax: 0,
       validity: 1
     })
-  }else if(state.ruleForm.discountType==='Coupon'){
+  } else if (state.ruleForm.discountType === 'Coupon') {
     state.ruleForm.couponList.unshift({
       couponDesc: '',
       couponType: 'Discount',
       minServiceMoney: 0,
-      validity: 1
+      validity: 1,
+      quantity: 0,
     })
   }
 

+ 9 - 9
admin-web/src/views/admin/activity/index.vue

@@ -124,12 +124,12 @@
             <template v-else-if="field.prop==='status'">
               <ext-d-label type="Activity.status" v-model="row[field.prop]"></ext-d-label>
             </template>
-            <template v-else-if="field.prop==='targetUsers'">
-              <ext-d-label type="Activity.targetUsers" v-model="row[field.prop]"></ext-d-label>
-            </template>
-            <template v-else-if="field.prop==='allowStacke'">
-              <ext-d-label type="Activity.allowStacke" v-model="row[field.prop]"></ext-d-label>
-            </template>
+<!--            <template v-else-if="field.prop==='targetUsers'">-->
+<!--              <ext-d-label type="Activity.targetUsers" v-model="row[field.prop]"></ext-d-label>-->
+<!--            </template>-->
+<!--            <template v-else-if="field.prop==='allowStacke'">-->
+<!--              <ext-d-label type="Activity.allowStacke" v-model="row[field.prop]"></ext-d-label>-->
+<!--            </template>-->
             <template v-else-if="field.prop==='action'">
               <el-button v-auth="'activity.list'" size="small" plain type="success" @click="onRowClick('view',row)">查看</el-button>
               <el-button v-auth="'activity.modify'" v-if="row.status==0||row.status==1"  size="small" plain type="danger" @click="onRowTerminal(row)">终止</el-button>
@@ -187,10 +187,10 @@ const state = reactive({
       // {label: '结束时间', prop: 'endTime',  resizable: true, width: 150},
       {label: '活动状态', prop: 'status', align: 'center', width: 130},
       {label: '优惠方式', prop: 'discountType', resizable: true, width: 130},
-      {label: '目标用户', prop: 'targetUsers', resizable: true, width: 130},
+      // {label: '目标用户', prop: 'targetUsers', resizable: true, width: 130},
       {label: '适用站点', prop: 'applyStation', resizable: true, width: 130},
-      {label: '优惠允许叠加', prop: 'allowStacke', resizable: true, width: 130},
-      {label: '数量限制', prop: 'quantity', resizable: true, width: 130},
+      // {label: '优惠允许叠加', prop: 'allowStacke', resizable: true, width: 130},
+      // {label: '数量限制', prop: 'quantity', resizable: true, width: 130},
       {label: '创建时间', prop: 'createTime', resizable: true, width: 180},
       {label: '更新时间', prop: 'updateTime', resizable: true, width: 180},
       {

+ 2 - 2
admin-web/src/views/admin/activity/userCoupon/dialog.vue

@@ -287,8 +287,8 @@
 
             <el-row :gutter="20">
                 <el-col :span="12">
-                  <el-form-item label="最小服务费金额(元)" prop="minServiceMoney">
-                    <ext-input-number   class="wd200 "  v-model="coupon.minServiceMoney" :ratio="100"  placeholder="最小服务费金额"></ext-input-number>
+                  <el-form-item label="服务费门槛(元)" prop="minServiceMoney">
+                    <ext-input-number   class="wd200 "  v-model="coupon.minServiceMoney" :ratio="100"  placeholder="服务费门槛"></ext-input-number>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">

+ 6 - 6
entity/src/main/java/com/kym/entity/admin/Activity.java

@@ -29,9 +29,9 @@ public class Activity extends BaseEntity {
     public final static int APPLY_STATION_全部站点 = 0;
     public final static int APPLY_STATION_部分站点 = 1;
 
-    public final static int TARGET_USERS_全部用户 = 0;
-    public final static int TARGET_USERS_新用户 = 1;
-    public final static int TARGET_USERS_指定用户 = 2;
+//    public final static int TARGET_USERS_全部用户 = 0;
+//    public final static int TARGET_USERS_新用户 = 1;
+//    public final static int TARGET_USERS_指定用户 = 2;
 
     public final static int STATUS_未开始 = 0;
     public final static int STATUS_进行中 = 1;
@@ -77,7 +77,7 @@ public class Activity extends BaseEntity {
     /**
      * 目标用户:0-全部,1-新用户,2-部分用户
      */
-    private Integer targetUsers;
+//    private Integer targetUsers;
 
     /**
      * 适用站点:0-全部,1-部分站点(详见活动-站点关联表)
@@ -87,12 +87,12 @@ public class Activity extends BaseEntity {
     /**
      * 优惠允许叠加:0-不允许,1-允许
      */
-    private Integer allowStacke;
+//    private Integer allowStacke;
 
     /**
      * 数量限制
      */
-    private Integer quantity;
+//    private Integer quantity;
 
     /**
      * 活动状态:0-未开始,1-进行中,2-已结束,3-已取消