guhongwei 2 jaren geleden
bovenliggende
commit
7ea058912f
3 gewijzigde bestanden met toevoegingen van 43 en 13 verwijderingen
  1. 22 5
      src/views/menu/market/index.vue
  2. 5 5
      src/views/menu/market/parts/form-1.vue
  3. 16 3
      src/views/menu/market/parts/info-1.vue

+ 22 - 5
src/views/menu/market/index.vue

@@ -18,8 +18,8 @@
     </el-row>
     <e-dialog :dialog="dialog" @toClose="toClose">
       <template slot="info">
-        <form-1 :form="form" v-if="dialog.type == '1'" @toSave="toSave" :statusList="statusList"></form-1>
-        <info-1 :form="form" v-else-if="dialog.type == '2'"></info-1>
+        <form-1 :form="form" v-if="dialog.type == '1'" @toSave="toSave" :typeList="typeList"></form-1>
+        <info-1 :form="form" v-else-if="dialog.type == '2'" :typeList="typeList"></info-1>
       </template>
     </e-dialog>
   </div>
@@ -39,7 +39,15 @@ export default {
       // 数据项
       fields: [
         { label: '商品名称', prop: 'name', filter: true },
-        { label: '商品类型', prop: 'type_name', filter: true },
+        {
+          label: '商品类型',
+          prop: 'type',
+          filter: true,
+          format: (i) => {
+            let data = this.typeList.find((r) => r.value == i);
+            if (data) return data.label;
+          },
+        },
         { label: '商品价格', prop: 'money' },
         {
           label: '商品状态',
@@ -77,7 +85,13 @@ export default {
       dialog: { title: '详细信息', show: false, type: '1' },
       form: { img_url: [] },
       // 状态
-      statusList: [],
+      statusList: [
+        { value: '0', label: '待上架' },
+        { value: '1', label: '已上架' },
+        { value: '2', label: '已下架' },
+      ],
+      // 类型
+      typeList: [],
     };
   },
   async created() {
@@ -97,7 +111,10 @@ export default {
     },
     //上架,下架,重新上架
     async toCheck({ data }) {
-      console.log(data);
+      if (data.status == '0') data.status = '1';
+      else if (data.status == '1') data.status = '2';
+      else if (data.status == '2') data.status = '1';
+      console.log(data.status);
     },
     // 提交保存,创建/修改
     async toSave({ data }) {

+ 5 - 5
src/views/menu/market/parts/form-1.vue

@@ -4,8 +4,8 @@
       <el-col :span="24" class="main">
         <data-form :fields="fields" :data="form" :rules="rules" @save="toSave">
           <template #options="{ item }">
-            <template v-if="item.model === 'type_name'">
-              <el-option v-for="(i, index) in statusList" :key="index" :label="`${i.label}`" :value="i.value"></el-option>
+            <template v-if="item.model === 'type'">
+              <el-option v-for="(i, index) in typeList" :key="index" :label="`${i.label}`" :value="i.value"></el-option>
             </template>
           </template>
           <template #custom="{ item }">
@@ -23,14 +23,14 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'form-1',
-  props: { form: { type: Object }, statusList: { type: Array } },
+  props: { form: { type: Object }, typeList: { type: Array } },
   components: {},
   data: function () {
     return {
       //表单配置项
       fields: [
         { label: '供货单位', model: 'mech_name', readonly: true },
-        { label: '商品类型', model: 'type_name', type: 'select' },
+        { label: '商品类型', model: 'type', type: 'select' },
         { label: '商品名称', model: 'name' },
         { label: '商品价格', model: 'money' },
         { label: '商品简介', model: 'brief', type: 'textarea' },
@@ -38,7 +38,7 @@ export default {
       ],
       rules: {
         mech_name: [{ required: true, message: '请输入供货单位' }],
-        type_name: [{ required: true, message: '请输入商品类型' }],
+        type: [{ required: true, message: '请输入商品类型' }],
         name: [{ required: true, message: '请输入商品名称' }],
         brief: [{ required: true, message: '请输入商品简介' }],
         money: [{ required: true, message: '请输入商品价格' }],

+ 16 - 3
src/views/menu/market/parts/info-1.vue

@@ -3,6 +3,11 @@
     <el-row>
       <el-col :span="24" class="main">
         <data-form :fields="fields" :data="form" :needSave="false">
+          <template #options="{ item }">
+            <template v-if="item.model === 'type'">
+              <el-option v-for="(i, index) in typeList" :key="index" :label="`${i.label}`" :value="i.value"></el-option>
+            </template>
+          </template>
           <template #custom="{ item }">
             <template v-if="item.model === 'img_url'">
               <el-image class="img" v-for="(item, index) in form.img_url" :key="index" :src="item.url"></el-image>
@@ -18,7 +23,7 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'info-1',
-  props: { form: { type: Object } },
+  props: { form: { type: Object }, typeList: { type: Array } },
   components: {},
   data: function () {
     return {
@@ -26,9 +31,17 @@ export default {
       fields: [
         { label: '商品图片', model: 'img_url', custom: true },
         { label: '商品名称', model: 'name' },
-        { label: '商品类型', model: 'type_name' },
+        {
+          label: '商品类型',
+          model: 'type',
+          type: 'select',
+          format: (i) => {
+            let data = this.typeList.find((r) => r.value == i);
+            if (data) return data.label;
+          },
+        },
         { label: '商品单价', model: 'money' },
-        { label: '商品简介', model: 'brief', type: 'textarea', readonly: true },
+        { label: '商品简介', model: 'brief', type: 'textarea' },
       ],
       // 商品列表
       orderField: [