From a1b85ef72062ca80db35546e4216dd564f3e0f57 Mon Sep 17 00:00:00 2001
From: WangHan <wwh_work@126,com>
Date: 星期四, 03 四月 2025 15:58:19 +0800
Subject: [PATCH] 问题与漏洞修改

---
 admin-web/src/views/foundation/store/edit.vue |  134 ++++++++++++++++++++------------------------
 1 files changed, 62 insertions(+), 72 deletions(-)

diff --git a/admin-web/src/views/foundation/store/edit.vue b/admin-web/src/views/foundation/store/edit.vue
index c60e02f..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>
@@ -41,65 +55,68 @@
 import winSm from '@/components/win/win-sm';
 import myButton from '@/components/myButton/myButton';
 import * as finsystenant from '@/api/baseSetting/finsystenant';
+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',this.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');
     },
@@ -107,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();
@@ -117,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();
@@ -128,47 +151,14 @@
               } else {
                 this.$message.error('淇濆瓨澶辫触');
               }
+            }).catch(()=>{
+              this.loading = false
             });
           }
         } else {
           this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��');
         }
       });
-    },
-    // 閫氳繃瀛愰泦id鏌ュ埌鎵�浠ョ浉鍏崇埗绾d骞惰繑鍥炴暟缁�
-    findParentIds(dataSource, nodeId) {
-      const parentIds = [nodeId]; // 鐢ㄤ簬瀛樺偍鎵�鏈夌埗鑺傜偣ID鐨勬暟缁�
-
-      // 瀹氫箟涓�涓�掑綊鍑芥暟锛岀敤浜庨亶鍘嗘暣妫垫爲骞舵煡鎵惧瓙鑺傜偣鐨勬墍鏈夌埗鑺傜偣
-      function traverse(node, nodeId) {
-        if (node.id === nodeId) {
-          // 濡傛灉褰撳墠鑺傜偣鐨処D绛変簬瀛愯妭鐐圭殑ID锛屽垯琛ㄧず宸茬粡鎵惧埌浜嗗瓙鑺傜偣锛屽彲浠ュ紑濮嬪悜涓婃煡鎵剧埗鑺傜偣
-          return true; // 杩斿洖true琛ㄧず宸茬粡鎵惧埌浜嗗瓙鑺傜偣
-        }
-
-        if (node.children) {
-          // 濡傛灉褰撳墠鑺傜偣鏈夊瓙鑺傜偣锛屽垯缁х画閬嶅巻瀛愯妭鐐�
-          for (const childNode of node.children) {
-            if (traverse(childNode, nodeId)) {
-              // 濡傛灉鍦ㄥ瓙鑺傜偣涓壘鍒颁簡瀛愯妭鐐圭殑鐖惰妭鐐癸紝鍒欏皢褰撳墠鑺傜偣鐨処D娣诲姞鍒扮埗鑺傜偣ID鏁扮粍涓紝骞惰繑鍥瀟rue琛ㄧず宸茬粡鎵惧埌浜嗗瓙鑺傜偣
-              parentIds.unshift(node.id);
-              return true;
-            }
-          }
-        }
-
-        return false; // 濡傛灉褰撳墠鑺傜偣涓嶆槸瀛愯妭鐐圭殑鐖惰妭鐐癸紝鍒欒繑鍥瀎alse
-      }
-
-      // 浠庢牴鑺傜偣寮�濮嬮亶鍘嗘暣妫垫爲锛屽苟璋冪敤閫掑綊鍑芥暟鏌ユ壘瀛愯妭鐐圭殑鎵�鏈夌埗鑺傜偣
-      for (const node of dataSource) {
-        if (traverse(node, nodeId)) {
-          // 濡傛灉鍦ㄥ綋鍓嶈妭鐐圭殑瀛愭爲涓壘鍒颁簡瀛愯妭鐐圭殑鐖惰妭鐐癸紝鍒欑洿鎺ラ��鍑哄惊鐜�
-          break;
-        }
-      }
-
-      return parentIds; // 杩斿洖鎵�鏈夌埗鑺傜偣ID鐨勬暟缁�
     },
   },
 };

--
Gitblit v1.9.1