zs 3 years ago
parent
commit
876d640046
2 changed files with 35 additions and 12 deletions
  1. 10 3
      src/views/menu/market/index.vue
  2. 25 9
      src/views/menu/market/parts/form-1.vue

+ 10 - 3
src/views/menu/market/index.vue

@@ -9,6 +9,9 @@
                 <el-option v-for="item in statusList" :key="item.label" :label="item.label" :value="item.label"></el-option>
               </template>
             </template>
+            <template #selfbtn>
+              <el-button type="primary" size="mini" @click="toAdd()">添加信息</el-button>
+            </template>
           </data-table>
         </el-col>
       </el-col>
@@ -23,7 +26,7 @@
 </template>
 
 <script>
-const { apply_status } = require('@common/src/layout/deploy/dict');
+const { type } = require('@common/src/layout/deploy/dict');
 import { mapState, createNamespacedHelpers } from 'vuex';
 const moment = require('moment');
 export default {
@@ -75,9 +78,9 @@ export default {
       total: 0,
       //弹框
       dialog: { title: '详细信息', show: false, type: '1' },
-      form: { order: [] },
+      form: { order: [], img_url: [] },
       // 状态
-      statusList: apply_status,
+      statusList: type,
     };
   },
   async created() {
@@ -99,6 +102,10 @@ export default {
     async toSave({ data }) {
       console.log(data);
     },
+    // 添加
+    toAdd() {
+      this.dialog = { title: '添加信息', show: true, type: '1', widths: '40%' };
+    },
     //关闭
     toClose() {
       this.form = { order: [] };

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

@@ -4,10 +4,15 @@
       <el-col :span="24" class="main">
         <data-form :fields="fields" :data="form" :rules="rules" @save="toSave">
           <template #options="{ item }">
-            <template v-if="item.model === 'status'">
+            <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>
           </template>
+          <template #custom="{ item }">
+            <template v-if="item.model === 'img_url'">
+              <s-upload :limit="4" :data="form.img_url" type="img_url" url="/files/live/upload" @upload="uplSuc" @delete="uplDel"></s-upload>
+            </template>
+          </template>
         </data-form>
       </el-col>
     </el-row>
@@ -24,16 +29,18 @@ export default {
     return {
       //表单配置项
       fields: [
-        { label: '申请人姓名', model: 'examine_name' },
-        { label: '商品状态', model: 'status', type: 'select' },
-        { label: '开始时间', model: 'start_time', type: 'date' },
-        { label: '结束时间', model: 'end_time', type: 'date' },
+        { label: '商品类型', model: 'type_name', type: 'select' },
+        { label: '商品名称', model: 'name' },
+        { label: '商品简介', model: 'brief', type: 'textarea' },
+        { label: '商品价格', model: 'money' },
+        { label: '商品图片', model: 'img_url', custom: true },
       ],
       rules: {
-        examine_name: [{ required: true, message: '请输入申请人姓名' }],
-        start_time: [{ required: true, message: '请选择开始时间' }],
-        end_time: [{ required: true, message: '请选择结束时间' }],
-        status: [{ required: true, message: '请选择商品状态' }],
+        type_name: [{ required: true, message: '请输入商品类型' }],
+        name: [{ required: true, message: '请输入商品名称' }],
+        brief: [{ required: true, message: '请输入商品简介' }],
+        money: [{ required: true, message: '请输入商品价格' }],
+        img_url: [{ required: true, message: '请选择商品图片' }],
       },
     };
   },
@@ -42,6 +49,15 @@ export default {
     toSave({ data }) {
       this.$emit('toSave', { data: data });
     },
+    // 上传图片
+    uplSuc({ type, data }) {
+      let list = this.form[type];
+      this.$set(this.form, `${type}`, [...list, { name: data.name, url: data.uri }]);
+    },
+    // 删除图片
+    uplDel({ type, data, list }) {
+      this.$set(this.form, `${type}`, list);
+    },
   },
   computed: {
     ...mapState(['user']),