Sfoglia il codice sorgente

团购商品添加字段

YY 2 anni fa
parent
commit
2f426b4048

+ 30 - 6
src/views/platGroup/goods/detail.vue

@@ -26,6 +26,9 @@
             <template #spec>
               <el-option v-for="item in specList" :key="item._id" :label="item.name" :value="item._id"> </el-option>
             </template>
+            <template #buy_limit>
+              <el-option v-for="i in buy_limitList" :key="i.model" :label="i.label" :value="i.value"></el-option>
+            </template>
           </data-form>
         </el-col>
       </el-col>
@@ -39,6 +42,8 @@ import * as util from '@/util/computed';
 const { mapActions: goodsConfig } = createNamespacedHelpers('goodsConfig');
 const { mapActions: goods } = createNamespacedHelpers('goods');
 const { mapActions: goodsSpec } = createNamespacedHelpers('goodsSpec');
+const { mapActions: dictData } = createNamespacedHelpers('dictData');
+
 export default {
   name: 'detail',
   props: { id: { type: String } },
@@ -50,15 +55,15 @@ export default {
       infoFields: [
         { label: '商品名称', model: 'goods', custom: true },
         { label: '商品规格', model: 'spec', type: 'select' },
-        { label: '团长价', model: 'leader_price', type: 'number' },
         { label: '团购价', model: 'price', type: 'number' },
         { label: '团长提成金额', model: 'leader_get', type: 'number' },
         { label: '运费', model: 'freight', type: 'number' },
+        { label: '购买限制', model: 'buy_limit', type: 'select' },
+        { label: '购买数量界限', model: 'limit_num', type: 'number' },
       ],
       rules: {
         goods: [{ required: true, message: '商品名称', trigger: 'change' }],
         spec: [{ required: true, message: '商品规格', trigger: 'change' }],
-        leader_price: [{ required: true, message: '团长价', trigger: 'blur' }],
         price: [{ required: true, message: '团购价', trigger: 'blur' }],
         leader_get: [{ required: true, message: '团长提成金额', trigger: 'blur' }],
         freight: [{ required: true, message: '运费', trigger: 'blur' }],
@@ -70,12 +75,18 @@ export default {
       goodsList: [],
       // 规格列表
       specList: [],
+      // 购买限制
+      buy_limitList: [],
+      // 团长价
+      leader_price: '',
     };
   },
   created() {
+    this.searchOthers();
     this.search();
   },
   methods: {
+    ...dictData({ getDict: 'query' }),
     ...goods({ goodsQuery: 'query', goodsFetch: 'fetch' }),
     ...goodsSpec({ specQuery: 'query', specFetch: 'fetch' }),
     ...goodsConfig(['query', 'delete', 'fetch', 'update', 'create']),
@@ -114,11 +125,18 @@ export default {
       if (model == 'spec') {
         let info = this.specList.find((f) => f._id == value);
         if (info) this.$set(this.form, 'freight', info.freight);
-        if (info && info.leader_price) this.$set(this.form, 'leader_price', info.leader_price);
+        if (info && info.leader_price) this.$set(this, 'leader_price', info.leader_price);
+        if (info && !info.leader_price) this.$set(this, 'leader_price', '');
+        if (info && info.buy_limit) this.$set(this.form, 'buy_limit', info.buy_limit);
+        if (info && info.limit_num) this.$set(this.form, 'limit_num', info.limit_num);
       }
-      if (this.form.leader_price && this.form.price) {
-        let price = util.minus(this.form.price, this.form.leader_price);
-        this.$set(this.form, 'leader_get', price);
+      console.log('团长价格', this.leader_price);
+      if (this.leader_price && this.form.price) {
+        let price = util.minus(this.form.price, this.leader_price);
+        if (price > 0) this.$set(this.form, 'leader_get', price);
+        else this.$set(this.form, 'leader_get', 0);
+      } else if (!this.leader_price && this.form.price) {
+        this.$set(this.form, 'leader_get', 0);
       }
     },
     // 保存
@@ -135,6 +153,12 @@ export default {
     toBack() {
       this.$emit('toBack');
     },
+    // 查询其他信息
+    async searchOthers() {
+      // 购买限制
+      let res = await this.getDict({ code: 'buy_limit' });
+      if (this.$checkRes(res)) this.$set(this, 'buy_limitList', res.data);
+    },
   },
   computed: {
     ...mapState(['user']),

+ 23 - 1
src/views/platGroup/goods/index.vue

@@ -66,6 +66,8 @@ import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: goodsConfig } = createNamespacedHelpers('goodsConfig');
 const { mapActions: goods } = createNamespacedHelpers('goods'); // 商品
 const { mapActions: goodsSpec } = createNamespacedHelpers('goodsSpec'); // 商品规格
+const { mapActions: dictData } = createNamespacedHelpers('dictData');
+
 export default {
   name: 'index',
   props: {},
@@ -80,10 +82,19 @@ export default {
       fields: [
         { label: '商品名称', model: 'goods.name', showTip: false },
         { label: '规格名称', model: 'spec.name' },
-        { label: '团长价', model: 'leader_price' },
         { label: '团购价', model: 'price' },
         { label: '团长提成金额', model: 'leader_get' },
         { label: '运费', model: 'freight' },
+        {
+          label: '购买限制',
+          model: 'buy_limit',
+          format: (i) => {
+            let data = this.buy_limitList.find((f) => f.value == i);
+            if (data) return data.label;
+            else return '';
+          },
+        },
+        { label: '购买数量界限', model: 'limit_num' },
       ],
       opera: [
         { label: '修改', method: 'edit' },
@@ -102,12 +113,17 @@ export default {
       goodsList: [],
       // 规格列表
       specList: [],
+      // 购买限制
+      buy_limitList: [],
     };
   },
   created() {
+    this.searchOthers();
+
     this.search();
   },
   methods: {
+    ...dictData({ getDict: 'query' }),
     ...goods({ goodsQuery: 'query' }),
     ...goodsSpec({ specQuery: 'query' }),
     ...goodsConfig(['query', 'delete', 'fetch', 'update', 'create']),
@@ -159,6 +175,12 @@ export default {
     toBack() {
       this.view = 'list';
     },
+    // 查询其他信息
+    async searchOthers() {
+      // 购买限制
+      let res = await this.getDict({ code: 'buy_limit' });
+      if (this.$checkRes(res)) this.$set(this, 'buy_limitList', res.data);
+    },
   },
   computed: {
     ...mapState(['user']),

+ 17 - 5
src/views/platGroup/group/detail.vue

@@ -42,11 +42,6 @@
                     <p>{{ row.spec.name }}</p>
                   </template>
                 </el-table-column>
-                <el-table-column label="团长价" prop="leader_price" align="center">
-                  <template #default="{ row }">
-                    <el-input v-model="row.leader_price" type="number" placeholder="请输入团长价"></el-input>
-                  </template>
-                </el-table-column>
                 <el-table-column label="团购价" prop="price" align="center">
                   <template #default="{ row }">
                     <el-input v-model="row.price" type="number" placeholder="请输入团购价"></el-input>
@@ -62,6 +57,18 @@
                     <el-input v-model="row.freight" type="number" placeholder="请输入运费"></el-input>
                   </template>
                 </el-table-column>
+                <el-table-column label="购买数量界限" prop="limit_num" align="center">
+                  <template #default="{ row }">
+                    <el-input v-model="row.limit_num" type="number" placeholder="请输入购买数量界限"></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="购买限制" prop="buy_limit" align="center">
+                  <template #default="{ row }">
+                    <el-select v-model="row.buy_limit" placeholder="请选择购买限制" style="width: 100%">
+                      <el-option v-for="i in buy_limitList" :key="i.model" :label="i.label" :value="i.value"></el-option>
+                    </el-select>
+                  </template>
+                </el-table-column>
                 <el-table-column label="操作" align="center">
                   <template #default="scope">
                     <el-button type="danger" size="mini" @click="toDel(scope.$index, 'group_config')">删除</el-button>
@@ -120,6 +127,8 @@ export default {
       // 团长
       userList: [],
       users: [],
+      // 购买限制
+      buy_limitList: [],
     };
   },
   created() {
@@ -218,6 +227,9 @@ export default {
         this.$set(this, `userList`, res.data);
         this.$set(this, `users`, res.data);
       }
+      // 购买限制
+      res = await this.getDict({ code: 'buy_limit' });
+      if (this.$checkRes(res)) this.$set(this, 'buy_limitList', res.data);
     },
   },
   computed: {

+ 1 - 0
src/views/platmanag/goods/spec.vue

@@ -180,6 +180,7 @@ export default {
     // 保存
     async toSave({ data }) {
       let res;
+      if (!data.leader_price) data.leader_price = data.sell_money;
       if (data.id) res = await this.update(data);
       else res = await this.create(data);
       if (this.$checkRes(res)) {

+ 1 - 0
src/views/selfShop/goods/spec.vue

@@ -179,6 +179,7 @@ export default {
     // 保存
     async toSave({ data }) {
       let res;
+      if (!data.leader_price) data.leader_price = data.sell_money;
       if (data.id) res = await this.update(data);
       else res = await this.create(data);
       if (this.$checkRes(res)) {