Ver código fonte

Merge branch 'develop_yh31' of http://git.chelingzhu.com/jianguan-web/jg-ocs-html into develop_yh31

lilei 1 ano atrás
pai
commit
11fadaf212

+ 2 - 2
src/views/promotionRulesManagement/dealerPromotions/detail.vue

@@ -21,8 +21,8 @@
           <a-descriptions-item label="费用所属部门">{{ detailData.expenseDepartmentName || '--' }}</a-descriptions-item>
           <a-descriptions-item label="参与客户" v-if="detailData.dealerScope!='ALL_DEALER'"><div @click="handleSee">共<span class="link-bule">{{ detailData.dealerQty }}</span>个</div></a-descriptions-item>
           <a-descriptions-item label="参与客户" v-else>全部客户</a-descriptions-item>
-          <a-descriptions-item label="活动订单起订金额(元)">不限</a-descriptions-item>
-          <a-descriptions-item label="活动经费上限(元)">不限</a-descriptions-item>
+          <a-descriptions-item label="活动订单起订金额(元)">{{ detailData.minOrderFlag ==='0'?'不限':detailData.minOrderAmount }}</a-descriptions-item>
+          <a-descriptions-item label="活动经费上限(元)">{{ detailData.upperLimitFlag ==='0'?'不限':detailData.upperLimitAmount }}</a-descriptions-item>
           <a-descriptions-item label="促销描述" :span="2">
             <div class="descItem">{{ detailData.content || '' }}</div>
           </a-descriptions-item>

+ 96 - 91
src/views/promotionRulesManagement/dealerPromotions/sendProductsModal.vue

@@ -17,14 +17,16 @@
         :label-col="formItemLayout.labelCol"
         :wrapper-col="formItemLayout.wrapperCol" >
         <a-form-model-item label="规则门槛" prop="gateFlag">
-          <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 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>
           <div v-if="form.gateFlag && form.gateFlag === '1'">
             <v-select
               size="small"
@@ -64,9 +66,15 @@
         </a-form-model-item>
         <a-form-model-item label="满赠规则" prop="regularSameFlag">
           <div class="fullGiftRuleBox">
-            <div class="ruleDescList" v-for="(con,i) in form.giveRuleList" :key="i">
+            <div class="ruleDescList" v-for="(con,i) in fullGiftRuleList" :key="i">
               <span>{{ i*1+1 }}、</span>
-              <a-select default-value="1" v-model="con.regularSameFlag" style="width: 100px" size="small" @change="handleFullGift">
+              <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>
@@ -82,7 +90,7 @@
                 :max="999999"
                 :precision="0"
                 size="small"/>
-              <a-select default-value="YUAN" v-model="con.regularUnit" style="width: 50px;margin-left:5px;" 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>
@@ -100,7 +108,7 @@
                 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(i)">删除</a-button>
+              <a-button type="link" v-if="i!=0" class="button-error" @click="delFullGiftRule(con)">删除</a-button>
             </div>
           </div>
           <div class="ruleDescList">
@@ -116,7 +124,7 @@
               :precision="0"
               size="small"
               style="margin-right:10px;"/>
-            <a-checkbox :checked="form.restrictFlag === '1'" size="small" @change="onChange">
+            <a-checkbox :checked="form.convertExpenseFlag==='1'" size="small" @change="onChangeConvert">
               可转费用报销单
             </a-checkbox>
           </div>
@@ -133,27 +141,29 @@
           <span style="color:gray;">(如:满10送2,数量叠加则:满20送4,满30送6)</span>
         </a-form-model-item>
         <a-form-model-item label="促销品与正品一致" prop="regularPromotionSameFlag">
-          <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>
+          <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-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">
+          <a-radio-group v-model="chooseVal" button-style="solid" @change="onChooseVal">
             <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" v-show="form.regularPromotionSameFlag==='0'">
-              促销产品
+            <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>
           </a-radio-group>
           <a-button
@@ -165,7 +175,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'"><tableType2 ref="offerProduct"></tableType2></div>
+        <div v-show="chooseVal==('c'+i)" v-for="(item,i) in fullGiftRuleList" :key="i" ><tableType1 :ref="'offerProduct'+i"></tableType1></div>
       </a-card>
       <div class="btn-cont">
         <a-button id="promotionList-basicInfo-modal-back" @click="isShow = false">取消</a-button>
@@ -211,36 +221,31 @@ export default {
         wrapperCol: { span: 17 }
       },
       fullGiftRuleList: [{
-        regularSameFlag: '1',
-        regularQty: undefined,
-        promotionQty: undefined
+        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', // 满赠规则  不同款商品
-        regularQty: undefined,
-        promotionQty: undefined,
+        regularSameFlag: '1', // 满赠规则  同款不同款商品
+        regularUnit: 'YUAN',
         restrictFlag: '0', // 限制正价产品款数
+        convertExpenseFlag: '0', // 转费用报销标记
         restrictCategory: '',
         accrualFlag: '1', // 数量叠加
-        minOrderFlag: '0', // 起订金额
-        minOrderAmount: undefined,
-        upperLimitFlag: '0', // 活动经费上限
-        upperLimitAmount: undefined,
-        regularPromotionSameFlag: '1'
+        regularPromotionSameFlag: '1',
+        giftProductMap: {}
       },
       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',
@@ -248,17 +253,20 @@ export default {
     }
   },
   methods: {
+    onChooseVal (e) {
+      this.chooseVal = e.target.value
+    },
     // 新增  满减规则  最多能添加五个
     addFullGiftRule () {
       const obj = {
-        regularSameFlag: '1',
-        regularQty: undefined,
-        promotionQty: undefined
+        regularValue: undefined,
+        promotionValue: undefined
       }
       this.fullGiftRuleList.push(obj)
     },
     // 删除满减规则
-    delFullGiftRule (pos) {
+    delFullGiftRule (con) {
+      const pos = this.fullGiftRuleList.findIndex(item => { return item.scopeLevel == con.scopeLevel })
       this.fullGiftRuleList.splice(pos, 1)
     },
     // 满赠  同款    促销品与正品一致  默认是 可修改
@@ -282,17 +290,18 @@ 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 (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'
-        }
+      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) {
@@ -320,36 +329,15 @@ 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
           }
-
-          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))
+          var form = JSON.parse(JSON.stringify(_this.form))
           let rowFlag1 = null
           let rowFlag2 = null
           let rowFlag3 = null
-          if (form.gateFlag == '1') {
+          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) {
@@ -365,11 +353,9 @@ export default {
             }
           } else {
             form.gateProductList = []
-            form.gateAmount = ''
-            form.quotaAmount = ''
             form.gateType = undefined
           }
-
+          // 正价产品
           form.regularProductList = this.$refs.normalPriceProduct.getResultVal()
           // 判断表格必填
           if (form.regularProductList.length == 0) {
@@ -381,24 +367,49 @@ export default {
               _this.$message.warning('订单起订量设置不能为空!')
               return
             }
-            rowFlag3 = _this.isJudge(form.regularProductList)
+            rowFlag2 = _this.isJudge(form.regularProductList)
           }
-          if (form.regularPromotionSameFlag == '0') {
-            form.giftProductList = this.$refs.offerProduct.getResultVal()
-            if (form.giftProductList.length == 0) {
+          if (form.regularPromotionSameFlag === '0') { // 促销产品   阶梯促销产品
+            const allGiftObj = {}
+            _this.fullGiftRuleList.forEach((val, i) => {
+              allGiftObj['GIFT' + i] = _this.$refs['offerProduct' + i][0].getResultVal()
+            })
+            var lengthFlag = null
+            for (const con in allGiftObj) {
+              if (allGiftObj[con].length === 0) {
+                lengthFlag = true
+              }
+            }
+            if (lengthFlag) {
               _this.$message.warning('请添加促销产品!')
               return
             }
-            rowFlag2 = _this.isJudge(form.giftProductList)
+            const arrFlag = []
+            for (const con in allGiftObj) {
+              if (con.length > 0) {
+                arrFlag.push(_this.isJudge(allGiftObj[con]))
+              }
+            }
+            rowFlag3 = arrFlag.some(val => { return val })
+            form.giftProductMap = allGiftObj
           } else {
-            form.giftProductList = []
+            form.giftProductMap = {}
           }
 
           if (rowFlag1 || rowFlag2 || rowFlag3) {
             _this.$message.warning('请选择产品分类、品牌或产品!')
             return
           }
+          // 组数据
+          _this.fullGiftRuleList.map((val, i) => {
+            val.scopeLevel = i * 1 + 1
+            val.regularSameFlag = form.regularSameFlag
+            val.regularUnit = form.regularUnit
+          })
+          console.log('111111111111:', _this.fullGiftRuleList)
           form.promotionSn = _this.promotionSn
+          form.giveRuleList = _this.fullGiftRuleList
+          console.log('222222222222:', form)
           _this.spinning = true
           promotionSave(form).then(res => {
             if (res.status == 200) {
@@ -451,15 +462,9 @@ 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,
@@ -469,7 +474,7 @@ export default {
         this.$refs.ruleForm.resetFields()
         this.$refs.cillProduct.reSetTableData()
         this.$refs.normalPriceProduct.reSetTableData()
-        this.$refs.offerProduct.reSetTableData()
+        this.$refs.offerProduct0.reSetTableData()
       })
     },
     // 获取编辑详情
@@ -585,7 +590,7 @@ export default {
       max-height: 745px !important;
       overflow-y: scroll !important;
     }
-    .ant-radio-button-wrapper{
+    .fixWidthBox .ant-radio-button-wrapper{
       width:80px;
       text-align: center;
     }

+ 2 - 2
vue.config.js

@@ -108,9 +108,9 @@ const vueConfig = {
     // If you want to turn on the proxy, please remosve the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        target: 'http://192.168.2.103:8602/ocs-admin',
+        // target: 'http://192.168.2.103:8602/ocs-admin',
         // target: 'https://t.ocs.360arrow.com/ocs-admin', //  练习
-        // target: 'https://p.ocs.360arrow.com/ocs-admin', //  预发布
+        target: 'https://p.ocs.360arrow.com/ocs-admin', //  预发布
         ws: false,
         changeOrigin: true,
         pathRewrite: {