From 9cb389b74302ce6b0a2333328922e7c462234a56 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期五, 01 十二月 2023 18:31:27 +0800
Subject: [PATCH] feat: 基础信息 新增、编辑增加防重提交 列表也优化

---
 admin-web/src/views/foundation/store/edit.vue |   98 ++++++++++++++++++++++++++++++------------------
 1 files changed, 61 insertions(+), 37 deletions(-)

diff --git a/admin-web/src/views/foundation/store/edit.vue b/admin-web/src/views/foundation/store/edit.vue
index f4f8a08..404140c 100644
--- a/admin-web/src/views/foundation/store/edit.vue
+++ b/admin-web/src/views/foundation/store/edit.vue
@@ -1,27 +1,41 @@
 <template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
+  <win-sm :title="setting.title" @close="close" :width="'800px'" :loading="loading">
     <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="缂栧彿" prop="warehouseCode">
-        <el-input disabled v-model="formData.warehouseCode" clearable maxlength="20" show-word-limit style="width: 100%" />
-      </el-form-item>
+      <!--      <el-form-item label="缂栧彿" prop="warehouseCode">
+              <el-input disabled v-model="formData.warehouseCode" clearable maxlength="20" show-word-limit style="width: 100%" />
+            </el-form-item>-->
       <el-form-item label="浠撳簱鍚嶇О" prop="warehouseName">
-        <el-input v-model="formData.warehouseName" clearable maxlength="20" show-word-limit style="width: 100%" />
+        <el-input v-model="formData.warehouseName" placeholder="璇疯緭鍏ヤ粨搴撳悕绉�" clearable maxlength="20" show-word-limit
+                  style="width: 100%"/>
       </el-form-item>
       <el-form-item label="浠撳簱绫诲瀷" prop="classificationCode">
-        <el-select v-model="formData.classificationCode" clearable placeholder="璇烽�夋嫨" style="width: 100%">
+        <el-select v-model="formData.classificationCode" clearable placeholder="璇烽�夋嫨浠撳簱绫诲瀷" style="width: 100%">
           <el-option
-            v-for="item in classList"
-            :key="item.dict_code"
-            :label="item.dict_label"
-            :value="item.dict_code"
+              v-for="item in classList"
+              :key="item.dict_code"
+              :label="item.dict_label"
+              :value="item.dict_code"
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="鎵�灞炴満鏋�" prop="agencyIds">
-          <el-cascader v-model="formData.agencyIds" :options="treeList" :props="{checkStrictly: true,value:'id'}" @change="handleChange" style="width: 100%"></el-cascader>
+      <el-form-item label="鎵�灞炴満鏋�" prop="agencyId">
+        <el-cascader
+            v-model="formData.agencyId"
+            placeholder="璇烽�夋嫨鎵�灞炴満鏋�"
+            :options="treeList"
+            :props="{checkStrictly: true,emitPath: false,value:'id'}"
+            style="width: 100%"></el-cascader>
       </el-form-item>
       <el-form-item label="鍦板潃">
-        <el-input v-model="formData.adress" clearable maxlength="20" show-word-limit style="width: 100%" />
+        <el-input
+            style="width: 100%"
+            maxlength="200"
+            show-word-limit
+            type="textarea"
+            :rows="3"
+            placeholder="璇疯緭鍏ュ唴瀹�"
+            v-model="formData.adress"/>
+
       </el-form-item>
       <el-form-item label="鐘舵��" prop="states">
         <el-radio-group v-model="formData.states">
@@ -31,8 +45,8 @@
       </el-form-item>
     </el-form>
     <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close" />
-      <my-button name="淇濆瓨" site="form" @click="save" />
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
     </div>
   </win-sm>
 </template>
@@ -44,63 +58,65 @@
 import {findParentIds} from '@/utils/index';
 
 export default {
-  components: { winSm, myButton },
+  components: {winSm, myButton},
   props: {
     setting: {
       type: Object,
-      default: () => {},
+      default: () => {
+      },
     },
   },
   data() {
     return {
+      loading: true,
       classList: [],
       treeList: [],
       checkAll: false,
       checkedList: [],
       formData: {
-        warehouseCode:null,
+        warehouseCode: null,
         classificationId: null,
-        classificationCode:null,
+        classificationCode: null,
         states: 1,
-        agencyIds:[],
-        agencyId:''
+        agencyId: ''
       },
       rules: {
-        warehouseName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-        classificationCode: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
-        agencyIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
-        states: [{ required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur' }],
+        warehouseName: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
+        classificationCode: [{required: true, message: '璇烽�夋嫨', trigger: 'blur'}],
+        agencyId: [{required: true, message: '璇烽�夋嫨', trigger: ['blur', 'change']}],
+        states: [{required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}],
       },
     };
   },
-  created() {
-    this.class_List();
-    this.tree_List();
+  async created() {
+    await this.class_List();
+    await this.tree_List();
+    this.loading = false
     if (this.setting.info) {
       this.formData = Object.assign({}, JSON.parse(this.setting.info));
     }
   },
   methods: {
-    class_List() {
-      finsystenant.classList().then((res) => {
+    async class_List() {
+      await finsystenant.classList().then((res) => {
         if (res) {
-          console.log(res, 'res');
+          res.map(item => {
+            item.dict_code = item.dict_code.toString()
+          })
           this.classList = res;
         }
       });
     },
-    tree_List() {
-      finsystenant.getTree().then((res) => {
+    async tree_List() {
+      await finsystenant.getTree().then((res) => {
         if (res) {
           this.treeList = res;
-          this.$set(this.formData,'agencyIds',findParentIds(this.treeList,this.formData.agencyId))
+          this.$set(this.formData, 'agencyIds', findParentIds(this.treeList, this.formData.agencyId))
         }
       });
     },
-    handleChange(e){
-      this.formData.agencyId = e[e.length-1]
+    getEditInfo(id) {
     },
-    getEditInfo(id) {},
     close() {
       this.$emit('close');
     },
@@ -108,9 +124,12 @@
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
           const params = Object.assign({}, this.formData);
+          if (this.loading) return
+          this.loading = true
           if (this.setting.id) {
             // 缂栬緫鎺ュ彛
             finsystenant.editstore(params).then((res) => {
+              this.loading = false
               if (res) {
                 this.$message.success('淇濆瓨鎴愬姛锛�');
                 this.close();
@@ -118,10 +137,13 @@
               } else {
                 this.$message.error('淇濆瓨澶辫触');
               }
+            }).catch(()=>{
+              this.loading = false
             });
           } else {
             params.orgId = this.setting.orgId;
             finsystenant.addstore(params).then((res) => {
+              this.loading = false
               if (res) {
                 this.$message.success('淇濆瓨鎴愬姛锛�');
                 this.close();
@@ -129,6 +151,8 @@
               } else {
                 this.$message.error('淇濆瓨澶辫触');
               }
+            }).catch(()=>{
+              this.loading = false
             });
           }
         } else {

--
Gitblit v1.9.1