From 7c2bffa1a495cc4a3a263f654c08c231009c5c4e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 02 四月 2026 10:59:45 +0800
Subject: [PATCH] #i18n

---
 rsf-design/src/views/system/menu/index.vue |   58 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/rsf-design/src/views/system/menu/index.vue b/rsf-design/src/views/system/menu/index.vue
index e53a4dd..3a06c1b 100644
--- a/rsf-design/src/views/system/menu/index.vue
+++ b/rsf-design/src/views/system/menu/index.vue
@@ -1,4 +1,3 @@
-<!-- 鑿滃崟绠$悊椤甸潰 -->
 <template>
   <div class="menu-page art-full-height">
     <ArtSearchBar
@@ -17,9 +16,9 @@
         @refresh="handleRefresh"
       >
         <template #left>
-          <ElButton v-auth="'add'" @click="handleAddMenu" v-ripple>娣诲姞鑿滃崟</ElButton>
+          <ElButton v-auth="'add'" @click="handleAddMenu" v-ripple>{{ t('pages.system.menu.buttons.add') }}</ElButton>
           <ElButton @click="toggleExpand" v-ripple>
-            {{ isExpanded ? '鏀惰捣' : '灞曞紑' }}
+            {{ isExpanded ? t('pages.system.menu.actions.collapse') : t('pages.system.menu.actions.expand') }}
           </ElButton>
         </template>
       </ArtTableHeader>
@@ -48,6 +47,8 @@
 </template>
 
 <script setup>
+  import { computed, nextTick, onMounted, reactive, ref } from 'vue'
+  import { useI18n } from 'vue-i18n'
   import MenuDialog from './modules/menu-dialog.vue'
 
   import { formatMenuTitle } from '@/utils/router'
@@ -71,6 +72,7 @@
   } from './menuPage.helpers'
 
   defineOptions({ name: 'Menus' })
+  const { t } = useI18n()
 
   const loading = ref(false)
   const isExpanded = ref(false)
@@ -89,13 +91,13 @@
 
   const formItems = computed(() => [
     {
-      label: '鑿滃崟鍚嶇О',
+      label: t('pages.system.menu.search.name'),
       key: 'name',
       type: 'input',
       props: { clearable: true }
     },
     {
-      label: '璺敱鍦板潃',
+      label: t('pages.system.menu.search.route'),
       key: 'route',
       type: 'input',
       props: { clearable: true }
@@ -106,7 +108,7 @@
     loading.value = true
     try {
       const list = await guardRequestWithMessage(fetchGetMenuList({}), null, {
-        timeoutMessage: '鑿滃崟鍔犺浇瓒呮椂锛屽凡鍋滄绛夊緟'
+        timeoutMessage: t('pages.system.menu.messages.loadTimeout')
       })
       if (list === null) {
         tableData.value = []
@@ -116,7 +118,7 @@
       tableData.value = Array.isArray(list) ? list : []
       menuTreeOptions.value = buildMenuTreeOptions(tableData.value, formatMenuTitle)
     } catch (error) {
-      ElMessage.error(error?.message || '鑾峰彇鑿滃崟澶辫触')
+      ElMessage.error(error?.message || t('pages.system.menu.messages.loadFailed'))
     } finally {
       loading.value = false
     }
@@ -183,59 +185,67 @@
   async function handleSubmit(formData) {
     const payload = buildMenuSubmitPayload(formData)
     if (payload.id && payload.id === payload.parentId) {
-      ElMessage.error('涓婄骇鑿滃崟涓嶈兘閫夋嫨褰撳墠鑿滃崟')
+      ElMessage.error(t('pages.system.menu.messages.menuSelfParent'))
       return
     }
 
     try {
       if (payload.id) {
         await fetchUpdateMenu(payload)
-        ElMessage.success('淇敼鎴愬姛')
+        ElMessage.success(t('crud.messages.updateSuccess'))
       } else {
         await fetchSaveMenu(payload)
-        ElMessage.success('鏂板鎴愬姛')
+        ElMessage.success(t('crud.messages.createSuccess'))
       }
       closeDialog()
       await loadMenuResources()
     } catch (error) {
-      ElMessage.error(error?.message || '鎻愪氦澶辫触')
+      ElMessage.error(error?.message || t('pages.system.menu.messages.submitFailed'))
     }
   }
 
   async function handleDeleteMenu(row) {
     try {
       await ElMessageBox.confirm(
-        `纭畾瑕佸垹闄よ彍鍗曘��${getMenuDisplayTitle(row, formatMenuTitle)}銆嶅悧锛熷垹闄ゅ悗鏃犳硶鎭㈠`,
-        '鍒犻櫎纭',
+        t('pages.system.menu.messages.deleteMenuConfirm', {
+          title: getMenuDisplayTitle(row, formatMenuTitle)
+        }),
+        t('crud.confirm.deleteTitle'),
         {
-          confirmButtonText: '纭畾',
-          cancelButtonText: '鍙栨秷',
+          confirmButtonText: t('common.confirm'),
+          cancelButtonText: t('common.cancel'),
           type: 'warning'
         }
       )
       await fetchDeleteMenu(row.id)
-      ElMessage.success('鍒犻櫎鎴愬姛')
+      ElMessage.success(t('crud.messages.deleteSuccess'))
       await loadMenuResources()
     } catch (error) {
       if (error !== 'cancel') {
-        ElMessage.error(error?.message || '鍒犻櫎澶辫触')
+        ElMessage.error(error?.message || t('crud.messages.deleteFailed'))
       }
     }
   }
 
   async function handleDeleteAuth(row) {
     try {
-      await ElMessageBox.confirm(`纭畾瑕佸垹闄ゆ潈闄愩��${row.name || row.authority || row.id}銆嶅悧锛熷垹闄ゅ悗鏃犳硶鎭㈠`, '鍒犻櫎纭', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      })
+      await ElMessageBox.confirm(
+        t('pages.system.menu.messages.deleteAuthConfirm', {
+          title: row.name || row.authority || row.id
+        }),
+        t('crud.confirm.deleteTitle'),
+        {
+          confirmButtonText: t('common.confirm'),
+          cancelButtonText: t('common.cancel'),
+          type: 'warning'
+        }
+      )
       await fetchDeleteMenu(row.id)
-      ElMessage.success('鍒犻櫎鎴愬姛')
+      ElMessage.success(t('crud.messages.deleteSuccess'))
       await loadMenuResources()
     } catch (error) {
       if (error !== 'cancel') {
-        ElMessage.error(error?.message || '鍒犻櫎澶辫触')
+        ElMessage.error(error?.message || t('crud.messages.deleteFailed'))
       }
     }
   }

--
Gitblit v1.9.1