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/ai-param/index.vue |   82 ++++++++++++++++++++++------------------
 1 files changed, 45 insertions(+), 37 deletions(-)

diff --git a/rsf-design/src/views/system/ai-param/index.vue b/rsf-design/src/views/system/ai-param/index.vue
index 972e5ba..245d427 100644
--- a/rsf-design/src/views/system/ai-param/index.vue
+++ b/rsf-design/src/views/system/ai-param/index.vue
@@ -13,14 +13,14 @@
     <ElCard class="art-table-card ai-param-list-card">
       <div class="mb-5 flex flex-wrap items-center justify-between gap-4">
         <div>
-          <h3 class="text-lg font-semibold text-[var(--art-gray-900)]">AI 鍙傛暟</h3>
-          <p class="mt-1 text-sm text-[var(--art-gray-500)]">鎸夊崱鐗囩鐞嗗綋鍓嶇鎴风殑妯″瀷鎺ュ叆鍙傛暟涓庨粯璁ら厤缃��</p>
+          <h3 class="text-lg font-semibold text-[var(--art-gray-900)]">{{ t('pages.system.aiParam.title') }}</h3>
+          <p class="mt-1 text-sm text-[var(--art-gray-500)]">{{ t('pages.system.aiParam.subtitle') }}</p>
         </div>
 
         <ElSpace wrap>
-          <ElButton v-auth="'add'" @click="openCreateDialog" v-ripple>鏂板缓鍙傛暟</ElButton>
-          <ElButton :loading="exportLoading" @click="handleExport" v-ripple>瀵煎嚭</ElButton>
-          <ElButton :loading="loading" @click="refreshData" v-ripple>鍒锋柊</ElButton>
+          <ElButton v-auth="'add'" @click="openCreateDialog" v-ripple>{{ t('pages.system.aiParam.buttons.add') }}</ElButton>
+          <ElButton :loading="exportLoading" @click="handleExport" v-ripple>{{ t('common.actions.export') }}</ElButton>
+          <ElButton :loading="loading" @click="refreshData" v-ripple>{{ t('common.actions.refresh') }}</ElButton>
         </ElSpace>
       </div>
 
@@ -59,14 +59,14 @@
               <div
                 class="min-w-0 rounded-2xl bg-slate-50 px-3 py-2.5"
               >
-                <p class="text-xs text-[var(--art-gray-500)]">鍩虹鍦板潃</p>
+                <p class="text-xs text-[var(--art-gray-500)]">{{ t('pages.system.aiParam.fields.baseUrl') }}</p>
                 <p class="mt-1.5 break-all text-sm leading-6 text-[var(--art-gray-900)]">{{ item.baseUrl || '--' }}</p>
               </div>
               <div
                 class="min-w-0 rounded-2xl bg-slate-50 px-3 py-2.5"
               >
-                <p class="text-xs text-[var(--art-gray-500)]">鏈�杩戞牎楠�</p>
-                <p class="mt-1.5 text-sm text-[var(--art-gray-900)]">{{ item['lastValidateTime$'] || '鏈牎楠�' }}</p>
+                <p class="text-xs text-[var(--art-gray-500)]">{{ t('pages.system.aiParam.fields.lastValidateTime') }}</p>
+                <p class="mt-1.5 text-sm text-[var(--art-gray-900)]">{{ item['lastValidateTime$'] || t('pages.system.aiParam.validation.notTested') }}</p>
               </div>
             </div>
 
@@ -84,25 +84,25 @@
                 <p class="mt-1 text-sm font-medium text-[var(--art-gray-900)]">{{ item.maxTokens ?? '--' }}</p>
               </div>
               <div class="min-w-0 rounded-2xl bg-slate-50 px-3 py-2">
-                <p class="text-xs text-[var(--art-gray-500)]">瓒呮椂鏃堕棿</p>
+                <p class="text-xs text-[var(--art-gray-500)]">{{ t('pages.system.aiParam.fields.timeoutMs') }}</p>
                 <p class="mt-1 text-sm font-medium text-[var(--art-gray-900)]">{{ item.timeoutMs ?? '--' }} ms</p>
               </div>
             </div>
 
             <div class="mt-4 rounded-2xl bg-amber-50/70 px-3 py-2.5">
-              <p class="text-xs text-[var(--art-gray-500)]">澶囨敞</p>
+              <p class="text-xs text-[var(--art-gray-500)]">{{ t('table.remark') }}</p>
               <p class="mt-1.5 line-clamp-2 text-sm leading-6 text-[var(--art-gray-900)]">{{ item.memo || '--' }}</p>
             </div>
 
             <div class="mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-[var(--art-border-color)] pt-3">
               <div class="flex items-center gap-2 text-xs text-[var(--art-gray-500)]">
-                <span>鏇存柊鏃堕棿</span>
+                <span>{{ t('table.updateTime') }}</span>
                 <span>{{ item['updateTime$'] || '--' }}</span>
               </div>
 
               <ElSpace wrap>
-                <ElButton text @click="openDetailDialog(item)">璇︽儏</ElButton>
-                <ElButton v-auth="'edit'" text @click="openEditDialog(item)">缂栬緫</ElButton>
+                <ElButton text @click="openDetailDialog(item)">{{ t('common.actions.detail') }}</ElButton>
+                <ElButton v-auth="'edit'" text @click="openEditDialog(item)">{{ t('common.actions.edit') }}</ElButton>
                 <ElButton
                   v-auth="'edit'"
                   text
@@ -110,15 +110,15 @@
                   :loading="defaultUpdatingId === item.id"
                   @click="handleSetDefault(item)"
                 >
-                  璁句负榛樿
+                  {{ t('pages.system.aiParam.actions.setDefault') }}
                 </ElButton>
-                <ElButton v-auth="'delete'" text type="danger" @click="handleDelete(item)">鍒犻櫎</ElButton>
+                <ElButton v-auth="'delete'" text type="danger" @click="handleDelete(item)">{{ t('common.actions.delete') }}</ElButton>
               </ElSpace>
             </div>
           </article>
         </div>
 
-        <ElEmpty v-else description="鏆傛棤 AI 鍙傛暟鏁版嵁" :image-size="110" />
+        <ElEmpty v-else :description="t('pages.system.aiParam.empty')" :image-size="110" />
       </div>
 
       <div class="mt-6 flex justify-end">
@@ -146,6 +146,7 @@
 
 <script setup>
   import { ElMessage, ElMessageBox } from 'element-plus'
+  import { useI18n } from 'vue-i18n'
   import { useUserStore } from '@/store/modules/user'
   import { useTable } from '@/hooks/core/useTable'
   import { guardRequestWithMessage } from '@/utils/sys/requestGuard'
@@ -172,6 +173,7 @@
 
   defineOptions({ name: 'AiParam' })
 
+  const { t } = useI18n()
   const userStore = useUserStore()
   const searchForm = ref(createAiParamSearchState())
   const dialogVisible = ref(false)
@@ -183,41 +185,41 @@
 
   const searchItems = computed(() => [
     {
-      label: '鍏抽敭瀛�',
+      label: t('pages.system.aiParam.search.condition'),
       key: 'condition',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ弬鏁板悕绉�'
+        placeholder: t('pages.system.aiParam.search.conditionPlaceholder')
       }
     },
     {
-      label: '鎻愪緵鏂�',
+      label: t('pages.system.aiParam.search.providerType'),
       key: 'providerType',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ユ彁渚涙柟绫诲瀷'
+        placeholder: t('pages.system.aiParam.search.providerTypePlaceholder')
       }
     },
     {
-      label: '妯″瀷',
+      label: t('pages.system.aiParam.search.model'),
       key: 'model',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ユā鍨嬪悕绉�'
+        placeholder: t('pages.system.aiParam.search.modelPlaceholder')
       }
     },
     {
-      label: '榛樿鐘舵��',
+      label: t('pages.system.aiParam.search.status'),
       key: 'status',
       type: 'select',
       props: {
         clearable: true,
         options: [
-          { label: '榛樿', value: 1 },
-          { label: '鍊欓��', value: 0 }
+          { label: t('pages.system.aiParam.status.default'), value: 1 },
+          { label: t('pages.system.aiParam.status.candidate'), value: 0 }
         ]
       }
     }
@@ -282,14 +284,14 @@
     try {
       if (dialogMode.value === 'edit') {
         await fetchUpdateAiParam(buildAiParamSavePayload(payload))
-        ElMessage.success('淇敼鎴愬姛')
+        ElMessage.success(t('crud.messages.updateSuccess'))
         dialogVisible.value = false
         summaryRefreshSeed.value += 1
         await refreshUpdate()
         return
       }
       await fetchSaveAiParam(buildAiParamSavePayload(payload))
-      ElMessage.success('鏂板鎴愬姛')
+      ElMessage.success(t('crud.messages.createSuccess'))
       dialogVisible.value = false
       summaryRefreshSeed.value += 1
       await refreshCreate()
@@ -303,7 +305,7 @@
     defaultUpdatingId.value = record.id
     try {
       await fetchSetAiParamDefault(record.id)
-      ElMessage.success('榛樿鍙傛暟宸插垏鎹�')
+      ElMessage.success(t('pages.system.aiParam.messages.setDefaultSuccess'))
       summaryRefreshSeed.value += 1
       await refreshUpdate()
     } catch {
@@ -315,17 +317,23 @@
 
   async function handleDelete(record) {
     try {
-      await ElMessageBox.confirm(`纭畾瑕佸垹闄� AI 鍙傛暟銆�${record?.name || record?.id}銆嶅悧锛焋, '鍒犻櫎纭', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
+      await ElMessageBox.confirm(
+        t('crud.confirm.deleteMessage', {
+          entity: t('pages.system.aiParam.entity'),
+          label: record?.name || record?.id
+        }),
+        t('crud.confirm.deleteTitle'),
+        {
+        confirmButtonText: t('common.confirm'),
+        cancelButtonText: t('common.cancel'),
         type: 'warning'
       })
       await fetchDeleteAiParam(record.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'))
       }
     }
   }
@@ -341,12 +349,12 @@
         }),
         null,
         {
-          timeoutMessage: '瀵煎嚭璇锋眰瓒呮椂锛屽凡鍋滄绛夊緟'
+          timeoutMessage: t('message.exportTimeoutStopped')
         }
       )
       if (!response) return
       if (!response.ok) {
-        throw new Error(`瀵煎嚭澶辫触 (${response.status})`)
+        throw new Error(t('crud.messages.exportFailedWithStatus', { status: response.status }))
       }
       const blob = await response.blob()
       const url = window.URL.createObjectURL(blob)
@@ -357,9 +365,9 @@
       link.click()
       link.remove()
       window.URL.revokeObjectURL(url)
-      ElMessage.success('瀵煎嚭鎴愬姛')
+      ElMessage.success(t('crud.messages.exportSuccess'))
     } catch (error) {
-      ElMessage.error(error?.message || '瀵煎嚭澶辫触')
+      ElMessage.error(error?.message || t('crud.messages.exportFailed'))
     } finally {
       exportLoading.value = false
     }

--
Gitblit v1.9.1