From 50e95b985a72fcec4a93a2470e9efdfb2620148a Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 02 四月 2026 15:46:09 +0800
Subject: [PATCH] #i18n

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

diff --git a/rsf-design/src/views/system/operation-record/index.vue b/rsf-design/src/views/system/operation-record/index.vue
index b8005c6..5103f6b 100644
--- a/rsf-design/src/views/system/operation-record/index.vue
+++ b/rsf-design/src/views/system/operation-record/index.vue
@@ -52,6 +52,7 @@
 </template>
 
 <script setup>
+  import { useI18n } from 'vue-i18n'
   import { ElMessage, ElMessageBox } from 'element-plus'
   import { useUserStore } from '@/store/modules/user'
   import { useAuth } from '@/hooks/core/useAuth'
@@ -73,15 +74,16 @@
     createOperationRecordSearchState,
     getOperationRecordPaginationKey,
     getOperationRecordReportColumns,
+    getOperationRecordReportTitle,
     mergeOperationRecordDetail,
-    normalizeOperationRecordRow,
-    OPERATION_RECORD_REPORT_TITLE
+    normalizeOperationRecordRow
   } from './operationRecordPage.helpers'
   import { createOperationRecordTableColumns } from './operationRecordTable.columns'
   import OperationRecordDetailDrawer from './modules/operation-record-detail-drawer.vue'
 
   defineOptions({ name: 'OperationRecord' })
 
+  const { t } = useI18n()
   const userStore = useUserStore()
   const { hasAuth } = useAuth()
 
@@ -90,52 +92,52 @@
   const detailLoading = ref(false)
   const detailData = ref({})
   const selectedRows = ref([])
-  const reportTitle = OPERATION_RECORD_REPORT_TITLE
+  const reportTitle = computed(() => getOperationRecordReportTitle(t))
   const reportQueryParams = computed(() => buildOperationRecordSearchParams(searchForm.value))
-  const reportColumns = getOperationRecordReportColumns()
+  const reportColumns = computed(() => getOperationRecordReportColumns(t))
 
   const searchItems = computed(() => [
     {
-      label: '鍏抽敭瀛�',
+      label: t('table.keyword'),
       key: 'condition',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ悕绉扮┖闂�'
+        placeholder: t('pages.system.operationRecord.search.conditionPlaceholder')
       }
     },
     {
-      label: '鎺ュ彛鍦板潃',
+      label: t('pages.system.operationRecord.table.url'),
       key: 'url',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ユ帴鍙e湴鍧�'
+        placeholder: t('pages.system.operationRecord.search.urlPlaceholder')
       }
     },
     {
-      label: '瀹㈡埛绔疘P',
+      label: t('pages.system.operationRecord.table.clientIp'),
       key: 'clientIp',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ鎴风IP'
+        placeholder: t('pages.system.operationRecord.search.clientIpPlaceholder')
       }
     },
     {
-      label: '缁撴灉',
+      label: t('pages.system.operationRecord.table.result'),
       key: 'result',
       type: 'select',
       props: {
         clearable: true,
         options: [
-          { label: '鎴愬姛', value: 1 },
-          { label: '澶辫触', value: 0 }
+          { label: t('pages.system.operationRecord.result.success'), value: 1 },
+          { label: t('pages.system.operationRecord.result.failed'), value: 0 }
         ]
       }
     },
     {
-      label: '寮�濮嬫棩鏈�',
+      label: t('pages.system.operationRecord.search.timeStart'),
       key: 'timeStart',
       type: 'date',
       props: {
@@ -145,7 +147,7 @@
       }
     },
     {
-      label: '缁撴潫鏃ユ湡',
+      label: t('pages.system.operationRecord.search.timeEnd'),
       key: 'timeEnd',
       type: 'date',
       props: {
@@ -163,17 +165,24 @@
 
   async function handleDelete(row) {
     try {
-      await ElMessageBox.confirm(`纭畾瑕佸垹闄ゆ搷浣滄棩蹇椼��${row.namespace || row.id}銆嶅悧锛焋, '鍒犻櫎纭', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      })
+      await ElMessageBox.confirm(
+        t('crud.confirm.deleteMessage', {
+          entity: t('pages.system.operationRecord.entity'),
+          label: row.namespace || row.id
+        }),
+        t('crud.confirm.deleteTitle'),
+        {
+          confirmButtonText: t('common.confirm'),
+          cancelButtonText: t('common.cancel'),
+          type: 'warning'
+        }
+      )
       await fetchDeleteOperationRecord(row.id)
-      ElMessage.success('鍒犻櫎鎴愬姛')
+      ElMessage.success(t('crud.messages.deleteSuccess'))
       await refreshRemove()
     } catch (error) {
       if (error !== 'cancel') {
-        ElMessage.error(error?.message || '鍒犻櫎澶辫触')
+        ElMessage.error(error?.message || t('crud.messages.deleteFailed'))
       }
     }
   }
@@ -198,6 +207,7 @@
       paginationKey: getOperationRecordPaginationKey(),
       columnsFactory: () =>
         createOperationRecordTableColumns({
+          t,
           handleView: openDetail,
           handleDelete: hasAuth('delete') ? handleDelete : null
         })
@@ -243,7 +253,7 @@
     resolvePrintRecords,
     buildPreviewRows: (records) => buildOperationRecordPrintRows(records),
     buildPreviewMeta: (rows) => ({
-      reportTitle,
+      reportTitle: reportTitle.value,
       reportDate: new Date().toLocaleDateString('zh-CN'),
       printedAt: new Date().toLocaleString('zh-CN', { hour12: false }),
       operator: userStore.getUserInfo?.name || userStore.getUserInfo?.username || '',
@@ -259,7 +269,7 @@
     } catch (error) {
       detailDrawerVisible.value = false
       detailData.value = {}
-      ElMessage.error(error?.message || '鑾峰彇鎿嶄綔鏃ュ織璇︽儏澶辫触')
+      ElMessage.error(error?.message || t('pages.system.operationRecord.messages.detailFailed'))
     } finally {
       detailLoading.value = false
     }

--
Gitblit v1.9.1