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/classification/edit.vue  |   88 +++++++-----
 admin-web/src/views/foundation/material/edit.vue        |  141 ++++++++++++-------
 admin-web/src/views/foundation/store/edit.vue           |   98 ++++++++-----
 admin-web/src/views/foundation/classification/index.vue |   11 -
 admin-web/src/views/foundation/store/index.vue          |   10 
 admin-web/src/views/foundation/material/index.vue       |   23 +--
 6 files changed, 217 insertions(+), 154 deletions(-)

diff --git a/admin-web/src/views/foundation/classification/edit.vue b/admin-web/src/views/foundation/classification/edit.vue
index f73ff82..7227f2c 100644
--- a/admin-web/src/views/foundation/classification/edit.vue
+++ b/admin-web/src/views/foundation/classification/edit.vue
@@ -1,33 +1,35 @@
 <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 v-if="setting.pid" label="涓婄骇鍒嗙被" prop="fatherCategoryName" :key="key">
         <el-input
-          v-model="formData.fatherCategoryName"
-          clearable
-          maxlength="20"
-          show-word-limit
-          style="width: 100%"
-          disabled
+            v-model="formData.fatherCategoryName"
+            clearable
+            maxlength="20"
+            show-word-limit
+            style="width: 100%"
+            disabled
         />
       </el-form-item>
       <el-form-item label="鍒嗙被鍚嶇О" prop="categoryName">
-        <el-input v-model="formData.categoryName" clearable maxlength="20" show-word-limit style="width: 100%" />
+        <el-input v-model="formData.categoryName" placeholder="璇疯緭鍏ュ垎绫诲悕绉�" clearable maxlength="20" show-word-limit
+                  style="width: 100%"/>
       </el-form-item>
       <!-- 鍙湁绗笁绾у垎绫讳俊鎭淮鎶ゆ椂闇�瑕侀�夌被鍒� -->
-      <el-form-item label="绫诲埆" prop="classification" v-if="plevels==2">
-        <el-select v-model="formData.classification" placeholder="" clearable style="width: 100%">
-          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
+      <el-form-item label="浠峰�肩被鍒�" prop="classification" v-if="plevels==2">
+        <el-select v-model="formData.classification" placeholder="璇烽�夋嫨浠峰�肩被鍒�" clearable style="width: 100%">
+          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="椤哄簭" prop="orderNumber">
         <el-input
-          type="number"
-          v-model="formData.orderNumber"
-          clearable
-          maxlength="20"
-          show-word-limit
-          style="width: 100%"
+            type="number"
+            v-model="formData.orderNumber"
+            placeholder="璇峰~鍐欓『搴忓彿"
+            clearable
+            maxlength="20"
+            show-word-limit
+            style="width: 100%"
         />
       </el-form-item>
       <el-form-item label="鐘舵��" prop="states">
@@ -38,8 +40,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>
@@ -52,15 +54,17 @@
 import {getCategoryDetail} from '@/api/foudation/classification';
 
 export default {
-  components: { winSm, myButton },
+  components: {winSm, myButton},
   props: {
     setting: {
       type: Object,
-      default: () => {},
+      default: () => {
+      },
     },
   },
   data() {
     return {
+      loading: false,
       checkAll: false,
       checkedList: [],
       options: [], // 绫诲埆鍒楄〃
@@ -73,13 +77,13 @@
         states: 1, // 鐘舵��
       },
       rules: {
-        fatherCategoryName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-        categoryName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-        classification: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        orderNumber: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        fatherCategoryName: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
+        categoryName: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
+        classification: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}],
+        orderNumber: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
       },
       key: Math.random(),
-      plevels:1
+      plevels: 1
     };
   },
   created() {
@@ -98,11 +102,12 @@
     });
   },
   methods: {
-    getEditInfo(id) {},
+    getEditInfo(id) {
+    },
     // 鍒嗙被鍚嶇О鑾峰彇
     getCategoryName() {
-      if(!this.formData.fatherCategoryId) return
-      getCategoryDetail({ id: this.formData.fatherCategoryId }).then((res) => {
+      if (!this.formData.fatherCategoryId) return
+      getCategoryDetail({id: this.formData.fatherCategoryId}).then((res) => {
         this.formData.fatherCategoryName = res.categoryName;
         this.key = Math.random();
         this.plevels = res.levels
@@ -115,27 +120,32 @@
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
           const params = Object.assign({}, this.formData);
+          if (this.loading) return
+          this.loading = true
           if (this.setting.id) {
-            debugger;
             // 缂栬緫鎺ュ彛
             finsystenant.edit(params).then((res) => {
+              this.loading = false
               this.$message.success('淇濆瓨鎴愬姛锛�');
               this.close();
               this.$emit('search');
+            }).catch((err) => {
+              this.loading = false
             });
           } else {
             params.orgId = this.setting.orgId;
             console.log(params);
             finsystenant
-              .add(params)
-              .then((res) => {
-                this.$message.success('淇濆瓨鎴愬姛锛�');
-                this.close();
-                this.$emit('search');
-              })
-              .catch((err) => {
-                console.log('err', err);
-              });
+                .add(params)
+                .then((res) => {
+                  this.loading = false
+                  this.$message.success('淇濆瓨鎴愬姛锛�');
+                  this.close();
+                  this.$emit('search');
+                })
+                .catch((err) => {
+                  this.loading = false
+                });
           }
         } else {
           this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��');
diff --git a/admin-web/src/views/foundation/classification/index.vue b/admin-web/src/views/foundation/classification/index.vue
index 46e7eb7..b2705c7 100644
--- a/admin-web/src/views/foundation/classification/index.vue
+++ b/admin-web/src/views/foundation/classification/index.vue
@@ -114,9 +114,9 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          { title: '鍒嗙被鍚嶇О', field: 'categoryName', align: 'center' },
-          { title: '绫诲埆', field: 'classification', align: 'left' },
-          { title: '鏄剧ず椤哄簭', field: 'orderNumber', align: 'center', width: '80px' },
+          { title: '鍒嗙被鍚嶇О', field: 'categoryName', align: 'left', minWidth: 140 },
+          { title: '绫诲埆', field: 'classification', align: 'center', width: 100 },
+          { title: '鏄剧ず椤哄簭', field: 'orderNumber', align: 'center', width: 100 },
           {
             field: 'states',
             title: '鐘舵��',
@@ -149,7 +149,7 @@
         // 鎿嶄綔淇℃伅
         operation: {
           show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '150', // 鍒楀
+          width: '160', // 鍒楀
           attr: [
             {
               title: '缂栬緫',
@@ -207,8 +207,6 @@
     // 宸︿晶鏍戝垵濮嬪寲
     initTreeData() {
       getTree().then((res) => {
-        console.log(res, 'restree');
-        console.log(this.importSetting, 'this.importSetting');
         const content = res || [];
         // this.treeDataList.splice(0, this.treeDataList.length)
         this.treeDataList = content;
@@ -264,7 +262,6 @@
       this.editSetting.show = true;
     },
     nodeClick(param) {
-      console.log(param, 'param');
       param = param || {};
       this.p = Object.assign(
         {},
diff --git a/admin-web/src/views/foundation/material/edit.vue b/admin-web/src/views/foundation/material/edit.vue
index 404a19d..37b9590 100644
--- a/admin-web/src/views/foundation/material/edit.vue
+++ b/admin-web/src/views/foundation/material/edit.vue
@@ -1,27 +1,45 @@
 <template>
-  <win-md :title="setting.title" @close="close" :width="'800px'">
+  <win-md :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="鐗╁搧缂栧彿">
-        <el-input v-model="formData.goodsCode" disabled clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
+      <!--      <el-form-item label="鐗╁搧缂栧彿">
+              <el-input v-model="formData.goodsCode" disabled clearable maxlength="20" show-word-limit style="width: 100%"/>
+            </el-form-item>-->
       <el-form-item label="鐗╁搧鍚嶇О" prop="goodsName">
-        <el-input v-model="formData.goodsName" clearable maxlength="20" show-word-limit style="width: 100%"/>
+        <el-input v-model="formData.goodsName" placeholder="璇疯緭鍏ョ墿鍝佸悕绉�" clearable maxlength="20" show-word-limit
+                  style="width: 100%"/>
       </el-form-item>
-      <el-form-item label="鍒嗙被" prop="categoryId">
-        <el-select v-model="formData.categoryId" clearable placeholder="璇烽�夋嫨"  style="width: 100%">
-          <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName" :value="item.id"></el-option>
-        </el-select>
+      <el-form-item label="鐗╁搧鍒嗙被" prop="categoryId">
+        <!--        <el-select v-model="formData.categoryId" clearable placeholder="璇烽�夋嫨" style="width: 100%">
+                  <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName"
+                             :value="item.id"></el-option>
+                </el-select>-->
+        <el-cascader
+            clearable
+            filterable
+            placeholder="璇烽�夋嫨鐗╁搧鍒嗙被"
+            v-model="formData.categoryId"
+            :options="categoryList"
+            :props="{emitPath: false,value: 'id'}"
+            style="width: 100%"/>
       </el-form-item>
-      <el-form-item style="margin-left: -100px;" v-for="(m, i) in formData.models">
-        <el-form-item label="瑙勬牸鍨嬪彿" prop="modelName" style="float: left;">
-          <el-input v-model="m.modelName" clearable maxlength="20" show-word-limit style="width: 100%"/>
-        </el-form-item>
-        <el-form-item label="鍗曚綅" prop="unit" style="float: left;">
-          <el-input v-model="m.unit" clearable maxlength="20" show-word-limit style="width: 100%"/>
-        </el-form-item>
-        <my-button name="鏂板鍨嬪彿" type="" @click="addCode"/>
-        <my-button name="鍒犻櫎" type="" @click="delCode(i)"/>
-      </el-form-item>
+      <el-row :gutter="20" v-for="(m, i) in formData.models">
+        <el-col :span="9">
+          <el-form-item label="瑙勬牸鍨嬪彿" :prop="`models.${i}.modelName`" :rules="rules.modelName">
+            <el-input v-model="m.modelName" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙峰悕绉�" clearable maxlength="20" show-word-limit
+                      style="width: 100%"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="9">
+          <el-form-item label="鍗曚綅" :prop="`models.${i}.unit`" :rules="rules.unit">
+            <el-input v-model="m.unit" placeholder="璇疯緭鍏ュ崟浣�" clearable maxlength="20" show-word-limit
+                      style="width: 100%"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <my-button :key="'d'+i" v-if="formData.models.length>1" name="鍒犻櫎" type="danger" @click="delCode(i)"/>
+          <my-button :key="'a'+i" v-if="i===formData.models.length-1" name="鏂板鍨嬪彿" type="" @click="addCode"/>
+        </el-col>
+      </el-row>
       <el-form-item label="鐘舵��" prop="states">
         <el-radio-group v-model="formData.states">
           <el-radio :label="1" border>鍚敤</el-radio>
@@ -40,6 +58,7 @@
 import winMd from '@/components/win/win-md'
 import myButton from '@/components/myButton/myButton'
 import * as finsystenant from '@/api/baseSetting/finsystenant'
+import {getTree} from '@/api/foudation/classification';
 import {mapGetters} from 'vuex'
 
 export default {
@@ -53,66 +72,76 @@
   },
   data() {
     return {
-      categoryList:[],
+      loading: true,
+      categoryList: [],
       checkAll: false,
       checkedList: [],
       formData: {
-        radio1: '',
-        code: '',
-        name: '',
+        goodsName: '',
         states: 1,
         summary: '',
         categoryId: null,
-        agencyId:'',
-        agencyName:'',
-        models:[
+        agencyId: '',
+        agencyName: '',
+        models: [
           {
-            modelName:'',
-            unit:''
+            modelName: '',
+            unit: ''
           }
         ]
       },
       rules: {
-        name: [
+        goodsName: [
           {required: true, message: '璇疯緭鍏ョ墿鍝佸悕绉�', trigger: 'blur'}
+        ],
+        categoryId: [
+          {required: true, message: '璇烽�夋嫨鐗╁搧鍒嗙被', trigger: 'blur'}
+        ],
+        modelName: [
+          {required: true, message: '璇疯緭鍏ヨ鏍煎悕绉�', trigger: 'blur'}
+        ],
+        unit: [
+          {required: true, message: '璇疯緭鍏ュ崟浣�', trigger: 'blur'}
         ]
       }
     }
   },
-  computed:{
+  computed: {
     ...mapGetters(['userInfo'])
   },
-  created() {
-    this.tree_List()
-    if(this.setting.info){
-      this.formData = Object.assign({},JSON.parse(this.setting.info))
+  async created() {
+    if (this.setting.id) {
+      await finsystenant.editmaterial(this.setting.id).then(res => {
+        this.formData = res
+        if (!this.formData.agencyId) {
+          this.formData.agencyId = this.userInfo.tenantId
+          this.formData.agencyName = this.userInfo.tenantName
+        }
+      })
     }
-    if(!this.formData.agencyId) {
-      this.formData.agencyId = this.userInfo.tenantId
-      this.formData.agencyName = this.userInfo.tenantName
-    }
+    await this.tree_List()
+    this.loading = false
   },
   methods: {
-    tree_List (){
-      finsystenant.treeList().then(res => {
+    async tree_List() {
+      await getTree().then(res => {
         if (res) {
-          console.log(res,'res');
           this.categoryList = res
         }
       })
     },
-    addCode(){
+    addCode() {
       this.formData.models.push(
-        {
-          modelName:'',
-          unit:''
-        }
+          {
+            modelName: '',
+            unit: ''
+          }
       )
     },
-    delCode(index){
+    delCode(index) {
       this.formData.models.splice(index, 1)
     },
-    getEditInfo(id){
+    getEditInfo(id) {
 
     },
     close() {
@@ -122,9 +151,12 @@
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
           const params = Object.assign({}, this.formData)
-          if(this.setting.id){
+          if (this.loading) return
+          this.loading = true
+          if (this.setting.id) {
             // 缂栬緫鎺ュ彛
             finsystenant.editcode(params).then(res => {
+              this.loading = false
               if (res) {
                 this.$message.success('淇濆瓨鎴愬姛锛�')
                 this.close()
@@ -132,10 +164,13 @@
               } else {
                 this.$message.error('淇濆瓨澶辫触')
               }
-            })
-          }else{
+            }).catch(() => {
+              this.loading = false
+            });
+          } else {
             params.orgId = this.setting.orgId
             finsystenant.addcode(params).then(res => {
+              this.loading = false
               if (res) {
                 this.$message.success('淇濆瓨鎴愬姛锛�')
                 this.close()
@@ -143,7 +178,9 @@
               } else {
                 this.$message.error('淇濆瓨澶辫触')
               }
-            })
+            }).catch(() => {
+              this.loading = false
+            });
           }
         } else {
           this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
diff --git a/admin-web/src/views/foundation/material/index.vue b/admin-web/src/views/foundation/material/index.vue
index 314fbb1..b38160b 100644
--- a/admin-web/src/views/foundation/material/index.vue
+++ b/admin-web/src/views/foundation/material/index.vue
@@ -159,12 +159,12 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          {title: '鐗╁搧缂栧彿', field: 'goodsCode', align: 'center'},
-          {title: '鐗╁搧鍚嶇О', field: 'goodsName', align: 'center'},
-          {title: '鍒嗙被', field: 'categoryName', align: 'center'},
-          {title: '绫诲埆', field: 'classification', align: 'center'},
+          {title: '鐗╁搧缂栧彿', field: 'goodsCode', align: 'center', width: 120},
+          {title: '鐗╁搧鍚嶇О', field: 'goodsName', align: 'left', minWidth: 140},
+          {title: '鍒嗙被', field: 'categoryName', align: 'left', minWidth: 140},
+          {title: '绫诲埆', field: 'classification', align: 'center', width: 80},
           // {title: '閲囪喘绫诲瀷', field: 'categoryId', align: 'center'},
-          {title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'center'},
+          {title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left', minWidth: 140},
           {
             title: '鍒涘缓鏃堕棿',
             field: 'createDate',
@@ -205,7 +205,7 @@
         // 鎿嶄綔淇℃伅
         operation: {
           show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '250', // 鍒楀
+          width: 160, // 鍒楀
           attr: [
             {
               title: '缂栬緫',
@@ -290,19 +290,14 @@
       //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
       // } else {
         this.editSetting.id = null;
-        this.editSetting.info = null;
         this.editSetting.title = '鏂板';
         this.editSetting.show = true;
       // }
     },
     showAudit(row) {
-      finsystenant.editmaterial(row.id).then(res => {
-        // console.log(res,'res');
-        this.editSetting.id = res.id;
-        this.editSetting.info = JSON.stringify(res);
-        this.editSetting.title = '缂栬緫';
-        this.editSetting.show = true;
-      })
+      this.editSetting.id = row.id;
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
     },
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
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 {
diff --git a/admin-web/src/views/foundation/store/index.vue b/admin-web/src/views/foundation/store/index.vue
index 965ccfe..0578ce5 100644
--- a/admin-web/src/views/foundation/store/index.vue
+++ b/admin-web/src/views/foundation/store/index.vue
@@ -133,10 +133,10 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          {title: '鍚嶇О浠撳簱', field: 'warehouseName', align: 'left',},
-          {title: '缂栧彿', field: 'warehouseCode', align: 'center'},
-          {title: '绫诲瀷', field: 'classificationName', align: 'center', },
-          {title: '鍦板潃', field: 'adress', align: 'center', },
+          {title: '浠撳簱鍚嶇О', field: 'warehouseName', align: 'left', minWidth: 140},
+          {title: '缂栧彿', field: 'warehouseCode', align: 'center', width: 120},
+          {title: '绫诲瀷', field: 'classificationName', align: 'center', width: 120 },
+          {title: '鍦板潃', field: 'adress', align: 'left', minWidth: 140 },
           // {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
           {
             field: 'states',
@@ -169,7 +169,7 @@
         // 鎿嶄綔淇℃伅
         operation: {
           show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '250', // 鍒楀
+          width: 240, // 鍒楀
           attr: [
             {
               title: '缂栬緫',

--
Gitblit v1.9.1