Forráskód Böngészése

feat: 销售政策、价格销售类型

zh 2 éve
szülő
commit
26d5594234

+ 39 - 4
src/views/basic_data/priceSalesType.vue

@@ -9,8 +9,8 @@
     :options-evens-group="optionsEvensGroup"
     :column-parsing="columnParsing"
   >
-    <el-dialog title="价格类型" :visible.sync="visible" width="40%" @close="handleClose">
-      <el-form ref="formData" :model="formData" label-width="120px" :inline="false" size="mini" :disabled="disabled">
+    <el-dialog title="价格类型" :visible.sync="visible" width="40%" :append-to-body="true" @close="handleClose">
+      <el-form ref="formData" :model="formData" :rules="formRules" label-width="120px" :inline="false" size="mini" :disabled="disabled">
         <el-form-item label="价格类型" prop="priceTypeId">
           <el-select v-model="formData.priceTypeId" placeholder="请选择价格类型" clearable filterable>
             <el-option
@@ -44,6 +44,16 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item label="返利钱包" prop="walletId2">
+          <el-select v-model="formData.walletId2" placeholder="请选择返利钱包名称" clearable filterable @change="handleWalletChange2">
+            <el-option
+              v-for="item in rebateWalletList"
+              :key="item.walletRebateId"
+              :label="item.name"
+              :value="item.walletRebateId"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="状态" prop="status">
           <el-switch v-model="formData.status" :active-value="true" :inactive-value="false" />
         </el-form-item>
@@ -62,7 +72,7 @@ import TemplatePage from '@/components/template/template-page-1.vue'
 import import_mixin from '@/components/template/import_mixin.js'
 import add_callback_mixin from '@/components/template/add_callback_mixin.js'
 import Popu from '@/components/template/popu.vue'
-import { saleTypeRebateListV2, getNoRebateWalletList } from '@/api/policy_list'
+import { saleTypeRebateListV2, getNoRebateWalletList, getWalletList } from '@/api/policy_list'
 import {
   getProductPriceListV2,
   getPriceSalesRelaListV2,
@@ -132,11 +142,20 @@ export default {
         saleCode: '',
         walletId: '',
         walletName: '',
+        walletId2: '',
+        walletName2: '',
         status: true
       },
+      formRules: {
+        priceTypeId: [{ required: true, message: '请选择', trigger: 'change' }],
+        saleId: [{ required: true, message: '请选择', trigger: 'change' }],
+        saleCode: [{ required: true, message: '请选择', trigger: 'change' }],
+        walletId: [{ required: true, message: '请选择', trigger: 'change' }],
+      },
       priceTypeList: [],
       saleypeList: [],
-      walletList: []
+      walletList: [],
+      rebateWalletList: []
     }
   },
   methods: {
@@ -230,6 +249,7 @@ export default {
       this.getProductPriceListV2()
       this.getSaleTypeRebateListV2()
       this.getNoRebateWalletList()
+      this.getWalletList()
     },
     handleChange(e) {
       if (e) {
@@ -245,6 +265,13 @@ export default {
         this.formData.walletName = ''
       }
     },
+    handleWalletChange2(e) {
+      if (e) {
+        this.formData.walletName2 = this.rebateWalletList.find(k => k.walletRebateId === e).name
+      } else {
+        this.formData.walletName2 = ''
+      }
+    },
     getProductPriceListV2() {
       getProductPriceListV2({
         'pageNum': 1,
@@ -278,6 +305,14 @@ export default {
         this.walletList = res.data
       })
     },
+    getWalletList() {
+      getWalletList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.rebateWalletList = res.data.records
+      })
+    },
     async getDetail(priceSaleTypeRelaId) {
       const { data } = await getPriceSalesRelaDetail({ priceSaleTypeRelaId })
       this.formData = { ...data }

+ 8 - 4
src/views/sales_policy/components/AddPolicy.vue

@@ -630,12 +630,16 @@ export default {
           if (item.walletId) {
             this.$set(row, 'walletIds', [...row.walletIds, item.walletId])
           }
+          if (item.walletId2) {
+            this.$set(row, 'rebateWalletIds', [...row.rebateWalletIds, item.walletId2])
+          }
           return
         }
         this.dataList[index][name] = row[name]
       } else {
         this.dataList[index][name] = ''
         this.$set(row, 'walletIds', [])
+        this.$set(row, 'rebateWalletIds', [])
       }
     },
     // 下载excel模板
@@ -753,10 +757,10 @@ export default {
           }
         })
       })
-      if (rebateList.length) {
-        this.dataList[index].rebateWalletIds = [...new Set([...row.rebateWalletIds, rebateList[0].walletRebateId])]
-        this.$set(row, 'rebateWalletIds', [...new Set([...row.rebateWalletIds, rebateList[0].walletRebateId])])
-      }
+      // if (rebateList.length) {
+      //   this.dataList[index].rebateWalletIds = [...new Set([...row.rebateWalletIds, rebateList[0].walletRebateId])]
+      //   this.$set(row, 'rebateWalletIds', [...new Set([...row.rebateWalletIds, rebateList[0].walletRebateId])])
+      // }
       this.dataList[index][name] = row[name]
       this.dataList[index].saleTypeCode = item.saleCode
       this.dataList[index].saleTypeName = item.saleName

+ 4 - 0
src/views/sales_policy/components/editPolicy.vue

@@ -669,12 +669,16 @@ export default {
           if (item.walletId) {
             this.$set(row, 'walletIds', [...row.walletIds, item.walletId])
           }
+          if (item.walletId2) {
+            this.$set(row, 'rebateWalletIds', [...row.rebateWalletIds, item.walletId2])
+          }
           return
         }
         this.dataList[index][name] = row[name]
       } else {
         this.dataList[index][name] = ''
         this.$set(row, 'walletIds', [])
+        this.$set(row, 'rebateWalletIds', [])
       }
     },
     // 下载excel模板