소스 검색

修改bug

chenrui 1 년 전
부모
커밋
b5d300e62e
1개의 변경된 파일166개의 추가작업 그리고 133개의 파일을 삭제
  1. 166 133
      src/views/promotionRulesManagement/dealerPromotions/sendProductsModal.vue

+ 166 - 133
src/views/promotionRulesManagement/dealerPromotions/sendProductsModal.vue

@@ -16,17 +16,24 @@
         :rules="rules"
         :label-col="formItemLayout.labelCol"
         :wrapper-col="formItemLayout.wrapperCol" >
+        <a-form-model-item label="规则简称" prop="description">
+          <a-input
+            size="small"
+            id="promotionList-description"
+            v-model.trim="form.description"
+            allowClear
+            placeholder="请输入规则简称(最多20个字符)"
+            :maxLength="20"></a-input>
+        </a-form-model-item>
         <a-form-model-item label="规则门槛" prop="gateFlag">
-          <div class="fixWidthBox">
-            <a-radio-group v-model="form.gateFlag" button-style="solid" size="small" @change="changeGateFlag">
-              <a-radio-button value="1">
-                有
-              </a-radio-button>
-              <a-radio-button value="0">
-                无
-              </a-radio-button>
-            </a-radio-group>
-          </div>
+          <a-radio-group v-model="form.gateFlag" button-style="solid" size="small" @change="changeGateFlag">
+            <a-radio value="1">
+              有
+            </a-radio>
+            <a-radio value="0">
+              无
+            </a-radio>
+          </a-radio-group>
           <div v-if="form.gateFlag && form.gateFlag === '1'">
             <v-select
               size="small"
@@ -55,61 +62,33 @@
             </div>
           </div>
         </a-form-model-item>
-        <a-form-model-item label="规则简称" prop="description">
-          <a-input
-            size="small"
-            id="promotionList-description"
-            v-model.trim="form.description"
-            allowClear
-            placeholder="请输入规则简称(最多20个字符)"
-            :maxLength="20"></a-input>
-        </a-form-model-item>
         <a-form-model-item label="满赠规则" prop="regularSameFlag">
-          <div class="fullGiftRuleBox">
-            <div class="ruleDescList" v-for="(con,i) in fullGiftRuleList" :key="i">
-              <span>{{ i*1+1 }}、</span>
-              <a-select
-                default-value="1"
-                :disabled="i!=0"
-                v-model="form.regularSameFlag"
-                style="width: 100px"
-                size="small"
-                @change="handleFullGift">
-                <a-select-option value="1">
-                  同款
-                </a-select-option>
-                <a-select-option value="0">
-                  不同款
-                </a-select-option>
-              </a-select>
-              产品购买满
-              <a-input-number
-                v-model="con.regularValue"
-                :min="0"
-                :step="1"
-                :max="999999"
-                :precision="0"
-                size="small"/>
-              <a-select default-value="YUAN" :disabled="i!=0" v-model="form.regularUnit" style="width: 50px;margin-left:5px;" size="small">
-                <a-select-option value="YUAN">
-                  元
-                </a-select-option>
-                <a-select-option value="GE">
-                  个
-                </a-select-option>
-              </a-select>
-              正价产品,送
-              <a-input-number
-                v-model="con.promotionValue"
-                :min="0"
-                :step="1"
-                :precision="0"
-                :max="999999"
-                size="small"/>
-              个促销产品
-              <a-button type="link" v-if="i==0&&fullGiftRuleList&&fullGiftRuleList.length<5" class="button-info" @click="addFullGiftRule">+新增</a-button>
-              <a-button type="link" v-if="i!=0" class="button-error" @click="delFullGiftRule(con)">删除</a-button>
-            </div>
+          <div class="ruleDescList">
+            <a-select default-value="1" v-model="form.regularSameFlag" style="width: 100px" size="small" @change="handleFullGift">
+              <a-select-option value="1">
+                同款
+              </a-select-option>
+              <a-select-option value="0">
+                不同款
+              </a-select-option>
+            </a-select>
+            产品购买满
+            <a-input-number
+              v-model="form.regularQty"
+              :min="0"
+              :step="1"
+              :max="999999"
+              :precision="0"
+              size="small"/>
+            个正价产品,送
+            <a-input-number
+              v-model="form.promotionQty"
+              :min="0"
+              :step="1"
+              :precision="0"
+              :max="999999"
+              size="small"/>
+            个促销产品
           </div>
           <div class="ruleDescList">
             <a-checkbox :checked="form.restrictFlag === '1'" size="small" @change="onChange">
@@ -122,11 +101,7 @@
               :step="1"
               :max="999999"
               :precision="0"
-              size="small"
-              style="margin-right:10px;"/>
-            <a-checkbox :checked="form.convertExpenseFlag==='1'" size="small" @change="onChangeConvert">
-              可转费用报销单
-            </a-checkbox>
+              size="small"/>
           </div>
         </a-form-model-item>
         <a-form-model-item label="数量叠加" prop="accrualFlag">
@@ -140,30 +115,80 @@
           </a-radio-group>
           <span style="color:gray;">(如:满10送2,数量叠加则:满20送4,满30送6)</span>
         </a-form-model-item>
+        <a-form-model-item prop="minOrderFlag">
+          <span slot="label">
+            <!-- <a-tooltip title="What do you want others to call you?">
+              <a-icon type="info-circle" />
+            </a-tooltip> -->
+            订单起订金额
+          </span>
+          <a-select v-model="form.minOrderFlag" style="width: 160px" size="small">
+            <a-select-option value="0">
+              不限
+            </a-select-option>
+            <a-select-option value="1">
+              限制
+            </a-select-option>
+          </a-select>
+          <a-input-number
+            v-show="form.minOrderFlag && form.minOrderFlag=='1'"
+            size="small"
+            style="margin-left:10px;width:300px;"
+            v-model="form.minOrderAmount"
+            :min="0"
+            :max="999999"
+            :step="1"
+            :precision="2"
+            placeholder="请输入金额"/>
+        </a-form-model-item>
+        <a-form-model-item prop="upperLimitFlag">
+          <span slot="label">
+            <!-- <a-tooltip title="What do you want others to call you?">
+              <a-icon type="info-circle" />
+            </a-tooltip> -->
+            活动经费上限
+          </span>
+          <a-select v-model="form.upperLimitFlag" style="width: 160px" size="small">
+            <a-select-option value="0">
+              不限
+            </a-select-option>
+            <a-select-option value="1">
+              限制
+            </a-select-option>
+          </a-select>
+          <a-input-number
+            v-show="form.upperLimitFlag&&form.upperLimitFlag=='1'"
+            size="small"
+            style="margin-left:10px;width:300px;"
+            v-model="form.upperLimitAmount"
+            :min="0"
+            :step="1"
+            :max="999999"
+            :precision="2"
+            placeholder="请输入金额"/>
+        </a-form-model-item>
         <a-form-model-item label="促销品与正品一致" prop="regularPromotionSameFlag">
-          <div class="fixWidthBox">
-            <a-radio-group v-model="form.regularPromotionSameFlag" button-style="solid" size="small" :disabled="form.regularSameFlag==0">
-              <a-radio-button value="1">
-                是
-              </a-radio-button>
-              <a-radio-button value="0">
-                否
-              </a-radio-button>
-            </a-radio-group>
-          </div>
+          <a-radio-group v-model="form.regularPromotionSameFlag" button-style="solid" size="small" :disabled="form.regularSameFlag==0">
+            <a-radio value="1">
+              是
+            </a-radio>
+            <a-radio value="0">
+              否
+            </a-radio>
+          </a-radio-group>
         </a-form-model-item>
       </a-form-model>
       <a-card size="small" :bordered="false" class="pages-wrap">
         <div class="flex">
-          <a-radio-group v-model="chooseVal" button-style="solid" @change="onChooseVal">
+          <a-radio-group v-model="chooseVal" button-style="solid">
             <a-radio-button value="a" v-show="form.gateFlag==='1'">
               门槛产品
             </a-radio-button>
             <a-radio-button value="b">
               正价产品
             </a-radio-button>
-            <a-radio-button :value="'c'+i" v-for="(item,i) in fullGiftRuleList" :key="i" v-show="form.regularPromotionSameFlag==='0'">
-              {{ i==0?'促销产品':'阶梯'+i+'促销产品' }}
+            <a-radio-button value="c" v-show="form.regularPromotionSameFlag==='0'">
+              促销产品
             </a-radio-button>
           </a-radio-group>
           <a-button
@@ -175,7 +200,7 @@
         </div>
         <div v-show="chooseVal=='a'"><tableType1 ref="cillProduct"></tableType1></div>
         <div v-show="chooseVal=='b'"><tableType1 ref="normalPriceProduct"></tableType1></div>
-        <div v-show="chooseVal==('c'+i)" v-for="(item,i) in fullGiftRuleList" :key="i" ><tableType1 :ref="'offerProduct'+i"></tableType1></div>
+        <div v-show="chooseVal=='c'"><tableType2 ref="offerProduct"></tableType2></div>
       </a-card>
       <div class="btn-cont">
         <a-button id="promotionList-basicInfo-modal-back" @click="isShow = false">取消</a-button>
@@ -220,32 +245,32 @@ export default {
         labelCol: { span: 4 },
         wrapperCol: { span: 17 }
       },
-      fullGiftRuleList: [{
-        regularValue: undefined,
-        promotionValue: undefined
-      }],
       form: {
-        giveRuleType: 'RATIO', // 满赠规则类型: SUM_MONEY[金额叠加] / RATIO[按比例]   满产品送产品写死为: 按比例
         promotionRuleType: 'BUY_PROD_GIVE_PROD', // 买产品送产品
         description: '', // 简称
         gateFlag: '0', // 门槛
         gateType: undefined,
         gateAmount: undefined,
         quotaAmount: undefined,
-        regularSameFlag: '1', // 满赠规则  同款不同款商品
-        regularUnit: 'YUAN',
+        regularSameFlag: '1', // 满赠规则  不同款商品
+        regularQty: undefined,
+        promotionQty: undefined,
         restrictFlag: '0', // 限制正价产品款数
-        convertExpenseFlag: '0', // 转费用报销标记
         restrictCategory: '',
         accrualFlag: '1', // 数量叠加
-        regularPromotionSameFlag: '1',
-        giftProductMap: {}
+        minOrderFlag: '0', // 起订金额
+        minOrderAmount: undefined,
+        upperLimitFlag: '0', // 活动经费上限
+        upperLimitAmount: undefined,
+        regularPromotionSameFlag: '1'
       },
       rules: {
         description: [ { required: true, message: '请输入规则简称', trigger: 'blur' } ],
         gateFlag: [ { required: true, message: '请选择规则门槛', trigger: 'change' } ],
         regularSameFlag: [{ required: true, message: '请选择满赠规则', trigger: 'change' }],
         accrualFlag: [{ required: true, message: '请选择数量是否叠加', trigger: 'change' }],
+        minOrderFlag: [{ required: true, message: '请选择订单起订金额', trigger: 'change' }],
+        upperLimitFlag: [{ required: true, message: '请选择活动经费上限', trigger: 'change' }],
         regularPromotionSameFlag: [{ required: true, message: '请选择促销品与正品是否一致', trigger: 'change' }]
       },
       chooseVal: 'a',
@@ -253,22 +278,6 @@ export default {
     }
   },
   methods: {
-    onChooseVal (e) {
-      this.chooseVal = e.target.value
-    },
-    // 新增  满减规则  最多能添加五个
-    addFullGiftRule () {
-      const obj = {
-        regularValue: undefined,
-        promotionValue: undefined
-      }
-      this.fullGiftRuleList.push(obj)
-    },
-    // 删除满减规则
-    delFullGiftRule (con) {
-      const pos = this.fullGiftRuleList.findIndex(item => { return item.scopeLevel == con.scopeLevel })
-      this.fullGiftRuleList.splice(pos, 1)
-    },
     // 满赠  同款    促销品与正品一致  默认是 可修改
     //     不同款                   默认否 不可修改
     handleFullGift (e) {
@@ -290,18 +299,17 @@ export default {
     onChange (e) {
       this.form.restrictFlag = e.target.checked ? '1' : '0'
     },
-    onChangeConvert (e) {
-      this.form.convertExpenseFlag = e.target.checked ? '1' : '0'
-    },
     // 门槛切换  tab 按钮默认显示问题
     changeGateFlag (e) {
-      if (e.target.value == '0') {
-        this.chooseVal = 'b'
-        this.form.gateType = undefined
-        this.form.gateAmount = undefined
-        this.form.quotaAmount = undefined
-      } else {
-        this.chooseVal = 'a'
+      if (this.chooseVal != 'c') {
+        if (e.target.value == '0') {
+          this.chooseVal = 'b'
+          this.form.gateType = undefined
+          this.form.gateAmount = undefined
+          this.form.quotaAmount = undefined
+        } else {
+          this.chooseVal = 'a'
+        }
       }
     },
     changeGateTypeFlag (val) {
@@ -329,15 +337,36 @@ export default {
               return
             }
           }
+          if (!_this.form.regularQty || !_this.form.promotionQty) {
+            _this.$message.warning('满赠规则条件不能为空!')
+            return
+          }
           if (_this.form.restrictFlag === '1' && !_this.form.restrictCategory) {
             _this.$message.warning('请输入限制正价产品款数个数!')
             return
           }
-          var form = JSON.parse(JSON.stringify(_this.form))
+
+          if (_this.form.minOrderFlag == 1 && !_this.form.minOrderAmount) {
+            _this.$message.warning('请输入订单起订限制金额数!')
+            return
+          }
+          if (_this.form.minOrderFlag == 0) {
+            _this.form.minOrderAmount = undefined
+          }
+
+          if (_this.form.upperLimitFlag == 1 && !_this.form.upperLimitAmount) {
+            _this.$message.warning('请输入活动经费上限金额!')
+            return
+          }
+          if (_this.form.upperLimitFlag == 0) {
+            _this.form.upperLimitAmount = undefined
+          }
+
+          const form = JSON.parse(JSON.stringify(_this.form))
           let rowFlag1 = null
           let rowFlag2 = null
-          const rowFlag3 = null
-          if (form.gateFlag == '1') { // 门槛产品
+          let rowFlag3 = null
+          if (form.gateFlag == '1') {
             form.gateProductList = this.$refs.cillProduct.getResultVal()
             form.gateAmount = form.gateType === 'RATIO_AMOUNT' ? form.gateAmount / 100 : form.gateAmount
             if (form.gateProductList.length == 0) {
@@ -353,9 +382,11 @@ export default {
             }
           } else {
             form.gateProductList = []
+            form.gateAmount = ''
+            form.quotaAmount = ''
             form.gateType = undefined
           }
-          // 正价产品
+
           form.regularProductList = this.$refs.normalPriceProduct.getResultVal()
           // 判断表格必填
           if (form.regularProductList.length == 0) {
@@ -367,14 +398,10 @@ export default {
               _this.$message.warning('订单起订量设置不能为空!')
               return
             }
-            rowFlag2 = _this.isJudge(form.regularProductList)
+            rowFlag3 = _this.isJudge(form.regularProductList)
           }
-          if (form.regularPromotionSameFlag === '0') { // 促销产品   阶梯促销产品
-            const allGiftObj = {}
-            _this.fullGiftRuleList.forEach((val, i) => {
-              allGiftObj['GIFT' + i] = _this.$refs['offerProduct' + i][0].getResultVal()
-            })
-
+          if (form.regularPromotionSameFlag == '0') {
+            form.giftProductList = this.$refs.offerProduct.getResultVal()
             if (form.giftProductList.length == 0) {
               _this.$message.warning('请添加促销产品!')
               return
@@ -441,9 +468,15 @@ export default {
         gateAmount: undefined,
         quotaAmount: undefined,
         regularSameFlag: '1', // 满赠规则  不同款商品
+        regularQty: undefined,
+        promotionQty: undefined,
         restrictFlag: '0', // 限制正价产品款数
         restrictCategory: '',
         accrualFlag: '1', // 数量叠加
+        minOrderFlag: '0', // 起订金额
+        minOrderAmount: undefined,
+        upperLimitFlag: '0', // 活动经费上限
+        upperLimitAmount: undefined,
         regularPromotionSameFlag: '1',
         gateProductList: undefined,
         giftProductList: undefined,
@@ -453,7 +486,7 @@ export default {
         this.$refs.ruleForm.resetFields()
         this.$refs.cillProduct.reSetTableData()
         this.$refs.normalPriceProduct.reSetTableData()
-        this.$refs.offerProduct0.reSetTableData()
+        this.$refs.offerProduct.reSetTableData()
       })
     },
     // 获取编辑详情
@@ -569,7 +602,7 @@ export default {
       max-height: 745px !important;
       overflow-y: scroll !important;
     }
-    .fixWidthBox .ant-radio-button-wrapper{
+    .ant-radio-button-wrapper{
       width:80px;
       text-align: center;
     }
@@ -593,4 +626,4 @@ export default {
     }
   }
 
-</style>
+</style>