瀏覽代碼

对接 促销管理

chenrui 4 年之前
父節點
當前提交
34c5c0e39e

+ 7 - 6
src/views/promotionRulesManagement/promotionRules/choosePriceProductsModal.vue

@@ -231,11 +231,11 @@ export default {
       const brandList = []
       const brandList = []
       const typeList = []
       const typeList = []
       this.loadData.map(item => {
       this.loadData.map(item => {
-        if (item.goodsType == 'product') {
+        if (item.goodsType == 'PRODUCT') {
           productList.push(item)
           productList.push(item)
-        } else if (item.goodsType == 'brand') {
+        } else if (item.goodsType == 'BRAND') {
           brandList.push(item)
           brandList.push(item)
-        } else if (item.goodsType == 'type') {
+        } else if ((item.goodsType == 'TYPE_1') || (item.goodsType == 'TYPE_2') || (item.goodsType == 'TYPE_3')) {
           typeList.push(item)
           typeList.push(item)
         }
         }
       })
       })
@@ -302,7 +302,7 @@ export default {
       if (_this.chooseBrand.length > 0) {
       if (_this.chooseBrand.length > 0) {
         _this.chooseBrand.map(item => {
         _this.chooseBrand.map(item => {
           const obj = {
           const obj = {
-            goodsType: 'brand',
+            goodsType: 'BRAND',
             goodsTypeName: '品牌',
             goodsTypeName: '品牌',
             goodsName: item.brandName,
             goodsName: item.brandName,
             goodsSn: item.brandSn,
             goodsSn: item.brandSn,
@@ -316,7 +316,7 @@ export default {
       if (_this.chooseType.length > 0) {
       if (_this.chooseType.length > 0) {
         _this.chooseType.map(item => {
         _this.chooseType.map(item => {
           const obj = {
           const obj = {
-            goodsType: 'type_' + item.productTypeLevel,
+            goodsType: 'TYPE_' + item.productTypeLevel,
             goodsTypeName: (item.productTypeLevel == 1 ? '一级' : item.productTypeLevel == 2 ? '二级' : item.productTypeLevel == 3 ? '三级' : '') + '分类',
             goodsTypeName: (item.productTypeLevel == 1 ? '一级' : item.productTypeLevel == 2 ? '二级' : item.productTypeLevel == 3 ? '三级' : '') + '分类',
             goodsName: item.productTypeName,
             goodsName: item.productTypeName,
             goodsSn: item.productTypeSn,
             goodsSn: item.productTypeSn,
@@ -330,7 +330,7 @@ export default {
       if (_this.chooseProducts.length > 0) {
       if (_this.chooseProducts.length > 0) {
         _this.chooseProducts.map(item => {
         _this.chooseProducts.map(item => {
           const obj = {
           const obj = {
-            goodsType: 'product',
+            goodsType: 'PRODUCT',
             goodsTypeName: '产品',
             goodsTypeName: '产品',
             goodsName: item.name,
             goodsName: item.name,
             name: item.name,
             name: item.name,
@@ -392,6 +392,7 @@ export default {
       handler (newValue, oldValue) {
       handler (newValue, oldValue) {
         if (this.isShow && newValue) {
         if (this.isShow && newValue) {
           this.loadData = newValue
           this.loadData = newValue
+          console.log(this.loadData, '+++++++++++++++++')
         }
         }
       },
       },
       deep: true
       deep: true

+ 15 - 18
src/views/promotionRulesManagement/promotionRules/detail.vue

@@ -46,13 +46,13 @@
             size="small"
             size="small"
             type="link"
             type="link"
             class="button-info"
             class="button-info"
-            @click="handleLookP(record.normalGoodsList, 'normal')"
+            @click="handleLookP(record.normalGoodsList, record.promoRuleType, 'normal')"
             id="promotionRulesDetail-edit-btn">查看正价品</a-button>
             id="promotionRulesDetail-edit-btn">查看正价品</a-button>
           <a-button
           <a-button
             size="small"
             size="small"
             type="link"
             type="link"
             class="button-warning"
             class="button-warning"
-            @click="handleLookP(record.promoGoodsList, 'promo')"
+            @click="handleLookP(record.promoGoodsList, record.promoRuleType, 'promo')"
             id="promotionRulesDetail-del-btn">查看{{ record.promoRuleType=='PROMO_PROD' ? '特价品' : record.promoRuleType=='ADD_PRICE_PURCH' ? '换购品' : '促销品' }}</a-button>
             id="promotionRulesDetail-del-btn">查看{{ record.promoRuleType=='PROMO_PROD' ? '特价品' : record.promoRuleType=='ADD_PRICE_PURCH' ? '换购品' : '促销品' }}</a-button>
         </template>
         </template>
       </a-table>
       </a-table>
@@ -82,13 +82,8 @@
           {{ record.orderGoodsUnit=='PROD_UNIT' ? '按设置数量':record.orderGoodsUnit=='FULL_BOX' ? '按整箱':'--' }}
           {{ record.orderGoodsUnit=='PROD_UNIT' ? '按设置数量':record.orderGoodsUnit=='FULL_BOX' ? '按整箱':'--' }}
           <span v-if="record.orderGoodsUnit=='PROD_UNIT'">  --  {{ record.orderGoodsQty }}</span>
           <span v-if="record.orderGoodsUnit=='PROD_UNIT'">  --  {{ record.orderGoodsQty }}</span>
         </template>
         </template>
-        <!-- 自定义表头 -->
-        <template slot="goodsPriceTit" slot-scope="text, record">
-          {{ record.orderGoodsUnit == 'PROMO_PROD' ? '特惠单价(¥)' : '换购单价(¥)' }}
-        </template>
         <template slot="goodsPrice" slot-scope="text, record">
         <template slot="goodsPrice" slot-scope="text, record">
-          <span v-if="record.arrowFalg">{{ record.arrowFalg == 1 ? '是' : '否' }}</span>
-          <span v-else>--</span>
+          <span>{{ (record.goodsPrice || record.goodsPrice==0) ? record.goodsPrice : '--' }}</span>
         </template>
         </template>
       </a-table>
       </a-table>
     </a-modal>
     </a-modal>
@@ -133,11 +128,12 @@ export default {
         { title: '序号', scopedSlots: { customRender: 'no' }, width: 80, align: 'center' },
         { title: '序号', scopedSlots: { customRender: 'no' }, width: 80, align: 'center' },
         { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '产品编码', dataIndex: 'goodsCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品编码', dataIndex: 'goodsCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { slots: { title: 'goodsPriceTit' }, scopedSlots: { customRender: 'goodsPrice' }, width: 200, align: 'center' }
+        { title: this.promoRuleType == 'PROMO_PROD' ? '特惠单价(¥)' : '换购单价(¥)', scopedSlots: { customRender: 'goodsPrice' }, width: 200, align: 'center' }
       ],
       ],
       lookLoadData: [],
       lookLoadData: [],
       promoRuleList: [],
       promoRuleList: [],
-      nowColumns: []
+      nowColumns: [],
+      promoRuleType: '' //  当前查看类型     买产品送产品...
     }
     }
   },
   },
   methods: {
   methods: {
@@ -153,9 +149,9 @@ export default {
               if (item.promoRuleType == 'BUY_PROD_GIVE_PROD') { //  买产品送产品
               if (item.promoRuleType == 'BUY_PROD_GIVE_PROD') { //  买产品送产品
                 item.promoRule = '购买满' + item.orderGoodsQty + '个正价产品,送' + item.promoQty + '个促销品'
                 item.promoRule = '购买满' + item.orderGoodsQty + '个正价产品,送' + item.promoQty + '个促销品'
               } else if (item.promoRuleType == 'BUY_PROD_GIVE_MONEY') { //  买产品送采购额
               } else if (item.promoRuleType == 'BUY_PROD_GIVE_MONEY') { //  买产品送采购额
-                if (item.orderRuleType == 'prod_qty') {
+                if (item.orderRuleType == 'PROD_QTY') {
                   item.promoRule = '购买满' + item.orderAmount + '元正价产品,送' + item.promoAmount + '元采购额可用于购买促销品'
                   item.promoRule = '购买满' + item.orderAmount + '元正价产品,送' + item.promoAmount + '元采购额可用于购买促销品'
-                } else if (item.orderRuleType == 'order_amount') {
+                } else if (item.orderRuleType == 'ORDER_AMOUNT') {
                   item.promoRule = '购买满' + item.orderAmount + '元正价产品可以返正价产品采购额的' + item.promoAmountPer * 100 + '%用于购买促销品'
                   item.promoRule = '购买满' + item.orderAmount + '元正价产品可以返正价产品采购额的' + item.promoAmountPer * 100 + '%用于购买促销品'
                 }
                 }
               } else if (item.promoRuleType == 'ADD_PRICE_PURCH') { //  加价换购
               } else if (item.promoRuleType == 'ADD_PRICE_PURCH') { //  加价换购
@@ -175,21 +171,22 @@ export default {
       this.openModal = true
       this.openModal = true
     },
     },
     // 查看正价品/促销品
     // 查看正价品/促销品
-    handleLookP (record, goodsType) {
+    handleLookP (record, promoRuleType, goodsType) {
       let columns = this.pColumns
       let columns = this.pColumns
-      if ((record.promoRuleType == 'BUY_PROD_GIVE_PROD') || (record.promoRuleType == 'BUY_PROD_GIVE_MONEY')) { //  买产品送产品/买产品送采购额
+      this.promoRuleType = promoRuleType
+      if ((promoRuleType == 'BUY_PROD_GIVE_PROD') || (promoRuleType == 'BUY_PROD_GIVE_MONEY')) { //  买产品送产品/买产品送采购额
         if (goodsType == 'normal') { //  正品
         if (goodsType == 'normal') { //  正品
-          columns = this.columns
+          columns = this.pColumns
         } else if (goodsType == 'promo') { //  促销
         } else if (goodsType == 'promo') { //  促销
           columns = this.promoColumns
           columns = this.promoColumns
         }
         }
-      } else if (record.promoRuleType == 'PROMO_PROD') { //  特价产品
+      } else if (promoRuleType == 'PROMO_PROD') { //  特价产品
         if (goodsType == 'promo') { //  促销
         if (goodsType == 'promo') { //  促销
           columns = this.promoSpecialColumns
           columns = this.promoSpecialColumns
         }
         }
-      } else if (record.promoRuleType == 'ADD_PRICE_PURCH') { //  加价换购
+      } else if (promoRuleType == 'ADD_PRICE_PURCH') { //  加价换购
         if (goodsType == 'normal') { //  正品
         if (goodsType == 'normal') { //  正品
-          columns = this.columns
+          columns = this.pColumns
         } else if (goodsType == 'promo') { //  促销
         } else if (goodsType == 'promo') { //  促销
           columns = this.promoSpecialColumns
           columns = this.promoSpecialColumns
         }
         }

+ 51 - 20
src/views/promotionRulesManagement/promotionRules/editRuleModal.vue

@@ -66,7 +66,7 @@
       <div v-if="form.promoRuleType == 'BUY_PROD_GIVE_MONEY'">
       <div v-if="form.promoRuleType == 'BUY_PROD_GIVE_MONEY'">
         <a-form-model-item label="促销设置" prop="orderRuleType">
         <a-form-model-item label="促销设置" prop="orderRuleType">
           <a-radio-group v-model="form.orderRuleType" @change="radioChange">
           <a-radio-group v-model="form.orderRuleType" @change="radioChange">
-            <a-radio value="prod_qty" style="margin-bottom: 10px;">
+            <a-radio value="PROD_QTY" style="margin-bottom: 10px;">
               购买满
               购买满
               <a-form-model-item prop="orderAmounts" :label-col="{span: 0}" style="display: inline-block;">
               <a-form-model-item prop="orderAmounts" :label-col="{span: 0}" style="display: inline-block;">
                 <a-input-number
                 <a-input-number
@@ -91,7 +91,7 @@
               </a-form-model-item>
               </a-form-model-item>
               元采购额可用于购买促销品
               元采购额可用于购买促销品
             </a-radio>
             </a-radio>
-            <a-radio value="order_amount">
+            <a-radio value="ORDER_AMOUNT">
               购买满
               购买满
               <a-form-model-item prop="orderAmount" :label-col="{span: 0}" style="display: inline-block;">
               <a-form-model-item prop="orderAmount" :label-col="{span: 0}" style="display: inline-block;">
                 <a-input-number
                 <a-input-number
@@ -215,16 +215,10 @@ export default {
         orderGoodsQty: [{ required: true, message: '请输入正价品数量', trigger: 'blur' }],
         orderGoodsQty: [{ required: true, message: '请输入正价品数量', trigger: 'blur' }],
         promoQty: [{ required: true, message: '请输入促销品数量', trigger: 'blur' }],
         promoQty: [{ required: true, message: '请输入促销品数量', trigger: 'blur' }],
         orderRuleType: [{ required: true, message: '请选择促销方式', trigger: 'change' }],
         orderRuleType: [{ required: true, message: '请选择促销方式', trigger: 'change' }],
-        orderAmounts: [{ required: true, message: '请输入正价品金额', trigger: 'blur' }],
-        orderAmount: [{ required: true, message: '请输入正价品金额', trigger: 'blur' }],
-        promoAmount: [
-          // { required: true, message: '请输入采购额', trigger: 'blur' },
-          { validator: this.promoAmountValidator }
-        ],
-        promoAmountPer: [
-          // { required: true, message: '请输入百分比', trigger: 'blur' }
-          { validator: this.promoAmountPerValidator }
-        ],
+        orderAmounts: [ { validator: this.orderAmountsValidator } ],
+        orderAmount: [ { validator: this.orderAmountValidator } ],
+        promoAmount: [ { validator: this.promoAmountValidator } ],
+        promoAmountPer: [ { validator: this.promoAmountPerValidator } ],
         normalGoodsList: [{ required: true, message: '请选择正价品', trigger: 'change' }],
         normalGoodsList: [{ required: true, message: '请选择正价品', trigger: 'change' }],
         promoGoodsList: [{ required: true, message: '请选择促销品', trigger: 'change' }]
         promoGoodsList: [{ required: true, message: '请选择促销品', trigger: 'change' }]
       },
       },
@@ -269,14 +263,36 @@ export default {
               item.name = item.goodsName
               item.name = item.goodsName
             })
             })
           }
           }
+          if (data.promoRuleType == 'BUY_PROD_GIVE_MONEY' && data.orderRuleType == 'PROD_QTY') { //  买产品送采购额  金额
+            this.form.orderAmounts = data.orderAmount
+          } else if (data.promoRuleType == 'BUY_PROD_GIVE_MONEY' && data.orderRuleType == 'ORDER_AMOUNT') { //  买产品送采购额  百分比
+            this.form.promoAmountPer = Number(data.promoAmountPer) * 100
+            this.form.promoAmount = data.promoAmount == 0 ? null : data.promoAmount
+          }
           this.normalGoodsList = data.normalGoodsList || []
           this.normalGoodsList = data.normalGoodsList || []
           this.promoGoodsList = data.promoGoodsList || []
           this.promoGoodsList = data.promoGoodsList || []
         }
         }
       })
       })
     },
     },
+    // 采购金额自定义校验  金额
+    orderAmountsValidator (rule, value, callback) {
+      if (this.form.orderRuleType == 'PROD_QTY' && !value) {
+        callback(new Error('请输入正价品金额'))
+      } else {
+        callback()
+      }
+    },
+    // 采购金额自定义校验  百分比
+    orderAmountValidator (rule, value, callback) {
+      if (this.form.orderRuleType == 'ORDER_AMOUNT' && !value) {
+        callback(new Error('请输入正价品金额'))
+      } else {
+        callback()
+      }
+    },
     //  采购额百分比自定义校验
     //  采购额百分比自定义校验
     promoAmountValidator (rule, value, callback) {
     promoAmountValidator (rule, value, callback) {
-      if (this.form.orderRuleType == 'prod_qty' && !value) {
+      if (this.form.orderRuleType == 'PROD_QTY' && !value) {
         callback(new Error('请输入采购额'))
         callback(new Error('请输入采购额'))
       } else {
       } else {
         callback()
         callback()
@@ -284,7 +300,7 @@ export default {
     },
     },
     //  采购额百分比自定义校验
     //  采购额百分比自定义校验
     promoAmountPerValidator (rule, value, callback) {
     promoAmountPerValidator (rule, value, callback) {
-      if (this.form.orderRuleType == 'order_amount' && !value) {
+      if (this.form.orderRuleType == 'ORDER_AMOUNT' && !value) {
         callback(new Error('请输入百分比'))
         callback(new Error('请输入百分比'))
       } else {
       } else {
         callback()
         callback()
@@ -296,15 +312,16 @@ export default {
       //  处理表单校验
       //  处理表单校验
       _this.form.normalGoodsList = this.normalGoodsList.length > 0 ? 'a' : ''
       _this.form.normalGoodsList = this.normalGoodsList.length > 0 ? 'a' : ''
       _this.form.promoGoodsList = this.promoGoodsList.length > 0 ? 'a' : ''
       _this.form.promoGoodsList = this.promoGoodsList.length > 0 ? 'a' : ''
-      console.log(this.form)
       this.$refs.ruleForm.validate(valid => {
       this.$refs.ruleForm.validate(valid => {
         if (valid) {
         if (valid) {
           const form = JSON.parse(JSON.stringify(_this.form))
           const form = JSON.parse(JSON.stringify(_this.form))
           form.normalGoodsList = this.normalGoodsList
           form.normalGoodsList = this.normalGoodsList
           form.promoGoodsList = this.promoGoodsList
           form.promoGoodsList = this.promoGoodsList
           form.promoActiveSn = this.$route.params.sn
           form.promoActiveSn = this.$route.params.sn
-          if (form.promoRuleType == 'BUY_PROD_GIVE_MONEY' && form.orderRuleType == 'order_amount') { //  买产品送采购额  百分比
+          if (form.promoRuleType == 'BUY_PROD_GIVE_MONEY' && form.orderRuleType == 'ORDER_AMOUNT') { //  买产品送采购额  百分比
             form.promoAmountPer = Number(form.promoAmountPer) / 100
             form.promoAmountPer = Number(form.promoAmountPer) / 100
+          } else if (form.promoRuleType == 'BUY_PROD_GIVE_MONEY' && form.orderRuleType == 'PROD_QTY') { //  买产品送采购额  金额
+            form.orderAmount = form.orderAmounts
           }
           }
           promoRuleSave(form).then(res => {
           promoRuleSave(form).then(res => {
             if (res.status == 200) {
             if (res.status == 200) {
@@ -342,15 +359,29 @@ export default {
     closePriceProducts () {
     closePriceProducts () {
       this.openPriceProductsModal = false
       this.openPriceProductsModal = false
     },
     },
-    radioChange (val) {
-
+    radioChange (e) {
+      if (e.target.value == 'PROD_QTY') {
+        this.form.orderAmount = null
+        this.form.promoAmountPer = null
+      } else if (e.target.value == 'ORDER_AMOUNT') {
+        this.form.orderAmounts = null
+        this.form.promoAmount = null
+      }
     },
     },
     //  促销类型  change
     //  促销类型  change
     changeType (val) {
     changeType (val) {
-      this.$refs.ruleForm.resetFields()
+      this.form.promoRuleType = val
+      this.form.orderGoodsQty = ''
+      this.form.promoQty = ''
+      this.form.orderRuleType = undefined
+      this.form.orderAmounts = ''
+      this.form.orderAmount = ''
+      this.form.promoAmount = ''
+      this.form.promoAmountPer = ''
+      this.form.normalGoodsList = ''
+      this.form.promoGoodsList = ''
       this.normalGoodsList = []
       this.normalGoodsList = []
       this.promoGoodsList = []
       this.promoGoodsList = []
-      this.form.promoRuleType = val
     }
     }
   },
   },
   watch: {
   watch: {

+ 8 - 3
src/views/promotionRulesManagement/promotionRules/rule.vue

@@ -39,7 +39,7 @@
         </template>
         </template>
       </s-table>
       </s-table>
       <!-- 新增/编辑 -->
       <!-- 新增/编辑 -->
-      <edit-rule-modal :openModal="openModal" :itemSn="itemSn" @ok="handleOk" @close="openModal=false" />
+      <edit-rule-modal :openModal="openModal" :itemSn="itemSn" @ok="handleOk" @close="closeModal" />
     </a-card>
     </a-card>
   </div>
   </div>
 </template>
 </template>
@@ -74,9 +74,9 @@ export default {
             if (data[i].promoRuleType == 'BUY_PROD_GIVE_PROD') { //  买产品送产品
             if (data[i].promoRuleType == 'BUY_PROD_GIVE_PROD') { //  买产品送产品
               data[i].promoRule = '购买满' + data[i].orderGoodsQty + '个正价产品,送' + data[i].promoQty + '个促销品'
               data[i].promoRule = '购买满' + data[i].orderGoodsQty + '个正价产品,送' + data[i].promoQty + '个促销品'
             } else if (data[i].promoRuleType == 'BUY_PROD_GIVE_MONEY') { //  买产品送采购额
             } else if (data[i].promoRuleType == 'BUY_PROD_GIVE_MONEY') { //  买产品送采购额
-              if (data[i].orderRuleType == 'prod_qty') {
+              if (data[i].orderRuleType == 'PROD_QTY') {
                 data[i].promoRule = '购买满' + data[i].orderAmount + '元正价产品,送' + data[i].promoAmount + '元采购额可用于购买促销品'
                 data[i].promoRule = '购买满' + data[i].orderAmount + '元正价产品,送' + data[i].promoAmount + '元采购额可用于购买促销品'
-              } else if (data[i].orderRuleType == 'order_amount') {
+              } else if (data[i].orderRuleType == 'ORDER_AMOUNT') {
                 data[i].promoRule = '购买满' + data[i].orderAmount + '元正价产品可以返正价产品采购额的' + data[i].promoAmountPer * 100 + '%用于购买促销品'
                 data[i].promoRule = '购买满' + data[i].orderAmount + '元正价产品可以返正价产品采购额的' + data[i].promoAmountPer * 100 + '%用于购买促销品'
               }
               }
             } else if (data[i].promoRuleType == 'ADD_PRICE_PURCH') { //  加价换购
             } else if (data[i].promoRuleType == 'ADD_PRICE_PURCH') { //  加价换购
@@ -122,6 +122,11 @@ export default {
         }
         }
       })
       })
     },
     },
+    // 关闭弹框
+    closeModal () {
+      this.itemSn = ''
+      this.openModal = false
+    },
     //  返回列表
     //  返回列表
     handleBack () {
     handleBack () {
       this.$router.push({ path: '/promotionRulesManagement/promotionRules/list' })
       this.$router.push({ path: '/promotionRulesManagement/promotionRules/list' })