From fc498f7eb979c5d90b7c9787dd9bd936799b3cbf Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 05 七月 2024 19:51:41 +0800
Subject: [PATCH] #

---
 zy-asrs-admin/src/views/base/locType/edit.vue |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/zy-asrs-admin/src/views/base/locType/edit.vue b/zy-asrs-admin/src/views/base/locType/edit.vue
index 4521e19..1274ac1 100644
--- a/zy-asrs-admin/src/views/base/locType/edit.vue
+++ b/zy-asrs-admin/src/views/base/locType/edit.vue
@@ -1,5 +1,5 @@
 <script setup>
-import { ref, nextTick } from 'vue';
+import { ref, nextTick, watch } from 'vue';
 import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { formatMessage } from '@/utils/localeUtils.js';
 import { message } from 'ant-design-vue';
@@ -26,6 +26,10 @@
 const onFinish = values => {
     // console.log('Success:', values);
     open.value = false;
+    formData.value.contain = JSON.stringify(locTypeSelected.value);
+    if(locTypeSelected.value.length == 0) {
+        formData.value.contain = "";
+    }
     post(isSave.value ? '/api/locType/save' : '/api/locType/update', formData.value).then((resp) => {
         let result = resp.data;
         if (result.code === 200) {
@@ -52,6 +56,24 @@
     })
 }
 
+const locTypeQueryList = ref(null);
+const locTypeSelected = ref([]);
+locTypeQuery();
+function locTypeQuery() {
+    post('/api/locType/tree', {}).then(resp => {
+        let result = resp.data;
+        locTypeQueryList.value = result.data;
+    })
+}
+
+watch(formData, (newVal, oldVal) => {
+    let contain = JSON.parse(formData.value.contain)
+    if (contain != null && contain.length > 0) {
+        locTypeSelected.value = contain;
+    }else {
+        locTypeSelected.value = [];
+    }
+})
 
 defineExpose({
     open,
@@ -77,8 +99,8 @@
             <a-form :model="formData" ref="formTable" name="formTable" :label-col="{ span: 8 }"
                 :wrapper-col="{ span: 16 }" style="display: flex;justify-content: space-between;flex-wrap: wrap;"
                 autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed">
-                <a-form-item :label="formatMessage('db.man_loc_area_type.parent_id', '涓婄骇绫诲瀷')" name="parentId" style="width: 250px;"
-                    :rules="[{ required: true, message: '涓婄骇鍖哄煙涓嶈兘涓虹┖!' }]">
+                <a-form-item :label="formatMessage('db.man_loc_area_type.parent_id', '涓婄骇绫诲瀷')" name="parentId"
+                    style="width: 250px;" :rules="[{ required: true, message: '涓婄骇鍖哄煙涓嶈兘涓虹┖!' }]">
                     <a-tree-select v-model:value="formData.parentId" show-search style="width: 100%"
                         :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                         :placeholder="formatMessage('page.input', '璇疯緭鍏�')" allow-clea tree-data-simple-mode
@@ -100,7 +122,18 @@
                 </a-form-item>
                 <a-form-item :label="formatMessage('db.man_loc_type.contain', '鍖呭惈鍏崇郴')" name="contain"
                     style="width: 250px;">
-                    <a-input v-model:value="formData.contain" />
+                    <a-tree-select v-model:value="locTypeSelected" style="width: 100%"
+                        :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+                        :placeholder="formatMessage('page.input', '璇疯緭鍏�')" tree-checkable tree-default-expand-all
+                        :tree-data="locTypeQueryList" tree-node-filter-prop="name" :field-names="{
+                            children: 'children',
+                            label: 'name',
+                            value: 'id',
+                        }">
+                        <template #title="{ value: id, name }">
+                            {{ name }}
+                        </template>
+                    </a-tree-select>
                 </a-form-item>
                 <a-form-item :label="formatMessage('db.man_loc_type.type', '绫诲瀷')" name="type" style="width: 250px;">
                     <a-select v-model:value="formData.type" :options="[
@@ -112,8 +145,7 @@
                 <a-form-item :label="formatMessage('db.man_loc_type.uuid', '缂栧彿')" name="uuid" style="width: 250px;">
                     <a-input v-model:value="formData.uuid" />
                 </a-form-item>
-                <a-form-item :label="formatMessage('db.man_loc_type.status', '鐘舵��')" name="status"
-                    style="width: 250px;">
+                <a-form-item :label="formatMessage('db.man_loc_type.status', '鐘舵��')" name="status" style="width: 250px;">
                     <a-select v-model:value="formData.status" :options="[
                         { label: '姝e父', value: 1 },
                         { label: '绂佺敤', value: 0 },

--
Gitblit v1.9.1