From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-admin/src/views/system/menu/edit.vue |   52 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 13 deletions(-)

diff --git a/zy-asrs-admin/src/views/system/menu/edit.vue b/zy-asrs-admin/src/views/system/menu/edit.vue
index 32e143f..30ae581 100644
--- a/zy-asrs-admin/src/views/system/menu/edit.vue
+++ b/zy-asrs-admin/src/views/system/menu/edit.vue
@@ -1,12 +1,16 @@
 <script setup>
-import { getCurrentInstance, ref, computed, reactive, watch } from 'vue';
+import { getCurrentInstance, ref, nextTick } from 'vue';
 import { get, post } from '@/utils/request.js'
 import * as Icons from "@ant-design/icons-vue";
+import { formatMessage } from '@/utils/localeUtils.js';
+import { message } from 'ant-design-vue';
 const context = getCurrentInstance()?.appContext.config.globalProperties;
 const components = {
     ...Icons,
 };
 
+const submitButton = ref(null);
+const isSave = ref(true);
 const open = ref(false);
 const initFormData = {
     name: null
@@ -17,16 +21,25 @@
 const emit = defineEmits(['tableReload'])
 
 const handleOk = (e) => {
-    open.value = false;
-    console.log(formData.value);
-    post('/api/menu/update', formData.value).then((result) => {
-        console.log(result);
-        emit('tableReload', 'reload')
-    })
+    nextTick(() => {
+        setTimeout(() => {
+            submitButton.value.$el.click();
+        }, 100);
+    });
 };
 
 const onFinish = values => {
-    console.log('Success:', values);
+    // console.log('Success:', values);
+    open.value = false;
+    post(isSave.value ? '/api/menu/save' : '/api/menu/update', formData.value).then((resp) => {
+        let result = resp.data;
+        if (result.code === 200) {
+            message.success(formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+        } else {
+            message.error(result.msg);
+        }
+        emit('tableReload', 'reload')
+    })
 };
 const onFinishFailed = errorInfo => {
     console.log('Failed:', errorInfo);
@@ -37,6 +50,7 @@
     formData,
     initFormData,
     treeData,
+    isSave,
 })
 
 </script>
@@ -49,16 +63,18 @@
 
 <template>
     <div>
-        <a-modal v-model:open="open" :title="formData == null ? '娣诲姞' : '缂栬緫'" @ok="handleOk" style="width: 600px;">
+        <a-modal v-model:open="open"
+            :title="isSave ? formatMessage('page.add', '娣诲姞') : formatMessage('page.edit', '缂栬緫')" @ok="handleOk"
+            style="width: 600px;">
             <a-form :model="formData" name="menu" :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="涓婄骇鑿滃崟" 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="Please select"
-                        allow-clea tree-data-simple-mode :tree-data="treeData" tree-node-filter-prop="name"
-                        :field-names="{
+                        :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+                        :placeholder="formatMessage('page.input', '璇疯緭鍏�')" allow-clea tree-data-simple-mode
+                        :tree-data="treeData" tree-node-filter-prop="name" :field-names="{
                             children: 'children',
                             label: 'name',
                             value: 'id',
@@ -85,8 +101,14 @@
                         { label: '鎸夐挳', value: 1 },
                     ]"></a-select>
                 </a-form-item>
-                <a-form-item label="鑿滃崟鍥炬爣" name="icon" style="width: 250px;">
+                <a-form-item v-if="formData.type == 0" label="鑿滃崟鍥炬爣" name="icon" style="width: 250px;">
                     <a-input v-model:value="formData.icon" />
+                </a-form-item>
+                <a-form-item v-else label="鏉冮檺" name="icon" style="width: 250px;">
+                    <a-input v-model:value="formData.authority" />
+                </a-form-item>
+                <a-form-item label="鍥介檯鍖朓D" name="icon" style="width: 250px;">
+                    <a-input v-model:value="formData.languageId" />
                 </a-form-item>
                 <a-form-item label="鎺掑簭" name="sort" style="width: 250px;">
                     <a-input v-model:value="formData.sort" />
@@ -97,6 +119,10 @@
                         { label: '姝e父', value: 1 },
                     ]"></a-select>
                 </a-form-item>
+                <a-form-item>
+                    <a-button type="primary" html-type="submit" ref="submitButton"
+                        style="visibility: hidden;">Submit</a-button>
+                </a-form-item>
             </a-form>
         </a-modal>
     </div>

--
Gitblit v1.9.1