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/orders/transfer-item/index.vue |  122 +++++++++++++++++++++-------------------
 1 files changed, 63 insertions(+), 59 deletions(-)

diff --git a/rsf-design/src/views/orders/transfer-item/index.vue b/rsf-design/src/views/orders/transfer-item/index.vue
index 4981645..3dc2aee 100644
--- a/rsf-design/src/views/orders/transfer-item/index.vue
+++ b/rsf-design/src/views/orders/transfer-item/index.vue
@@ -3,10 +3,10 @@
     <ElCard v-if="activeSourceSummary" class="mb-3">
       <div class="flex items-center justify-between gap-3">
         <div class="flex items-center gap-2 text-sm text-[var(--art-text-gray-600)]">
-          <span class="font-medium text-[var(--art-text-gray-900)]">褰撳墠鏉ユ簮</span>
-          <span>璋冩嫧鍗旾D锛歿{ activeSourceSummary.transferId }}</span>
+          <span class="font-medium text-[var(--art-text-gray-900)]">{{ t('pages.orders.transferItem.sourceTitle') }}</span>
+          <span>{{ t('pages.orders.transferItem.sourceLabel', { id: activeSourceSummary.transferId }) }}</span>
         </div>
-        <ElButton link type="primary" @click="handleClearSourceFilter">鏌ョ湅鍏ㄩ儴</ElButton>
+        <ElButton link type="primary" @click="handleClearSourceFilter">{{ t('common.actions.viewAll') }}</ElButton>
       </div>
     </ElCard>
 
@@ -59,6 +59,7 @@
 
 <script setup>
   import { computed, onMounted, ref, watch } from 'vue'
+  import { useI18n } from 'vue-i18n'
   import { ElButton, ElMessage } from 'element-plus'
   import { useRoute, useRouter } from 'vue-router'
   import { useUserStore } from '@/store/modules/user'
@@ -77,23 +78,24 @@
   import { createTransferItemTableColumns } from './transferItemTable.columns.js'
   import {
     TRANSFER_ITEM_REPORT_STYLE,
-    TRANSFER_ITEM_REPORT_TITLE,
     buildTransferItemPageQueryParams,
     buildTransferItemPrintRows,
     buildTransferItemReportMeta,
     buildTransferItemSearchParams,
     createTransferItemSearchState,
     getTransferItemPaginationKey,
+    getTransferItemReportTitle,
     getTransferItemStatusOptions,
     normalizeTransferItemRow
   } from './transferItemPage.helpers.js'
 
   defineOptions({ name: 'TransferItem' })
 
+  const { t } = useI18n()
   const userStore = useUserStore()
   const route = useRoute()
   const router = useRouter()
-  const reportTitle = TRANSFER_ITEM_REPORT_TITLE
+  const reportTitle = computed(() => getTransferItemReportTitle(t))
   const searchForm = ref(createTransferItemSearchState())
   const selectedRows = ref([])
   const detailDrawerVisible = ref(false)
@@ -111,220 +113,220 @@
 
   const searchItems = computed(() => [
     {
-      label: '鍏抽敭瀛�',
+      label: t('table.keyword'),
       key: 'condition',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ヨ皟鎷ㄥ崟鍙�/鐗╂枡缂栫爜/鐗╂枡鍚嶇О/澶囨敞'
+        placeholder: t('pages.orders.transferItem.search.conditionPlaceholder')
       }
     },
     {
-      label: '寮�濮嬫椂闂�',
+      label: t('pages.orders.transferItem.search.timeStart'),
       key: 'timeStart',
       type: 'datetime',
       props: {
         clearable: true,
         format: 'YYYY-MM-DD HH:mm:ss',
         valueFormat: 'YYYY-MM-DD HH:mm:ss',
-        placeholder: '璇烽�夋嫨寮�濮嬫椂闂�'
+        placeholder: t('pages.orders.transferItem.search.timeStartPlaceholder')
       }
     },
     {
-      label: '缁撴潫鏃堕棿',
+      label: t('pages.orders.transferItem.search.timeEnd'),
       key: 'timeEnd',
       type: 'datetime',
       props: {
         clearable: true,
         format: 'YYYY-MM-DD HH:mm:ss',
         valueFormat: 'YYYY-MM-DD HH:mm:ss',
-        placeholder: '璇烽�夋嫨缁撴潫鏃堕棿'
+        placeholder: t('pages.orders.transferItem.search.timeEndPlaceholder')
       }
     },
     {
-      label: '璋冩嫧鍗旾D',
+      label: t('pages.orders.transferItem.search.transferId'),
       key: 'transferId',
       type: 'inputNumber',
       props: {
         clearable: true,
         controlsPosition: 'right',
-        placeholder: '璇疯緭鍏ヨ皟鎷ㄥ崟ID'
+        placeholder: t('pages.orders.transferItem.search.transferIdPlaceholder')
       }
     },
     {
-      label: '璋冩嫧鍗曞彿',
+      label: t('pages.orders.transferItem.search.transferCode'),
       key: 'transferCode',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ヨ皟鎷ㄥ崟鍙�'
+        placeholder: t('pages.orders.transferItem.search.transferCodePlaceholder')
       }
     },
     {
-      label: '鐗╂枡ID',
+      label: t('pages.orders.transferItem.search.matnrId'),
       key: 'matnrId',
       type: 'inputNumber',
       props: {
         clearable: true,
         controlsPosition: 'right',
-        placeholder: '璇疯緭鍏ョ墿鏂橧D'
+        placeholder: t('pages.orders.transferItem.search.matnrIdPlaceholder')
       }
     },
     {
-      label: '鐗╂枡鍚嶇О',
+      label: t('table.materialName'),
       key: 'maktx',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�'
+        placeholder: t('pages.orders.transferItem.search.maktxPlaceholder')
       }
     },
     {
-      label: '鐗╂枡缂栫爜',
+      label: t('table.materialCode'),
       key: 'matnrCode',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮�'
+        placeholder: t('pages.orders.transferItem.search.matnrCodePlaceholder')
       }
     },
     {
-      label: '鍗曚綅',
+      label: t('table.unit'),
       key: 'unit',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ崟浣�'
+        placeholder: t('pages.orders.transferItem.search.unitPlaceholder')
       }
     },
     {
-      label: '鏁伴噺',
+      label: t('table.quantity'),
       key: 'anfme',
       type: 'inputNumber',
       props: {
         clearable: true,
         controlsPosition: 'right',
-        placeholder: '璇疯緭鍏ユ暟閲�'
+        placeholder: t('pages.orders.transferItem.search.anfmePlaceholder')
       }
     },
     {
-      label: '宸插畬鎴愭暟閲�',
+      label: t('pages.orders.transferItem.search.qty'),
       key: 'qty',
       type: 'inputNumber',
       props: {
         clearable: true,
         controlsPosition: 'right',
-        placeholder: '璇疯緭鍏ュ凡瀹屾垚鏁伴噺'
+        placeholder: t('pages.orders.transferItem.search.qtyPlaceholder')
       }
     },
     {
-      label: '鎵ц鏁伴噺',
+      label: t('pages.orders.transferItem.search.workQty'),
       key: 'workQty',
       type: 'inputNumber',
       props: {
         clearable: true,
         controlsPosition: 'right',
-        placeholder: '璇疯緭鍏ユ墽琛屾暟閲�'
+        placeholder: t('pages.orders.transferItem.search.workQtyPlaceholder')
       }
     },
     {
-      label: '鎵规',
+      label: t('table.batch'),
       key: 'batch',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ユ壒娆�'
+        placeholder: t('pages.orders.transferItem.search.batchPlaceholder')
       }
     },
     {
-      label: '渚涘簲鍟咺D',
+      label: t('pages.orders.transferItem.search.splrId'),
       key: 'splrId',
       type: 'inputNumber',
       props: {
         clearable: true,
         controlsPosition: 'right',
-        placeholder: '璇疯緭鍏ヤ緵搴斿晢ID'
+        placeholder: t('pages.orders.transferItem.search.splrIdPlaceholder')
       }
     },
     {
-      label: '瑙勬牸',
+      label: t('pages.orders.transferItem.search.spec'),
       key: 'spec',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ヨ鏍�'
+        placeholder: t('pages.orders.transferItem.search.specPlaceholder')
       }
     },
     {
-      label: '鍨嬪彿',
+      label: t('pages.orders.transferItem.search.model'),
       key: 'model',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ瀷鍙�'
+        placeholder: t('pages.orders.transferItem.search.modelPlaceholder')
       }
     },
     {
-      label: '瀛楁绱㈠紩',
+      label: t('pages.orders.transferItem.search.fieldsIndex'),
       key: 'fieldsIndex',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ瓧娈电储寮�'
+        placeholder: t('pages.orders.transferItem.search.fieldsIndexPlaceholder')
       }
     },
     {
-      label: '骞冲彴琛屽彿',
+      label: t('pages.orders.transferItem.search.platItemId'),
       key: 'platItemId',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ钩鍙拌鍙�'
+        placeholder: t('pages.orders.transferItem.search.platItemIdPlaceholder')
       }
     },
     {
-      label: '瀹㈡埛璁㈠崟鍙�',
+      label: t('pages.orders.transferItem.search.platOrderCode'),
       key: 'platOrderCode',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ鎴疯鍗曞彿'
+        placeholder: t('pages.orders.transferItem.search.platOrderCodePlaceholder')
       }
     },
     {
-      label: '宸ュ崟鍙�',
+      label: t('pages.orders.transferItem.search.platWorkCode'),
       key: 'platWorkCode',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ伐鍗曞彿'
+        placeholder: t('pages.orders.transferItem.search.platWorkCodePlaceholder')
       }
     },
     {
-      label: '椤圭洰鍙�',
+      label: t('pages.orders.transferItem.search.projectCode'),
       key: 'projectCode',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ラ」鐩彿'
+        placeholder: t('pages.orders.transferItem.search.projectCodePlaceholder')
       }
     },
     {
-      label: '澶囨敞',
+      label: t('table.memo'),
       key: 'memo',
       type: 'input',
       props: {
         clearable: true,
-        placeholder: '璇疯緭鍏ュ娉�'
+        placeholder: t('pages.orders.transferItem.search.memoPlaceholder')
       }
     },
     {
-      label: '鐘舵��',
+      label: t('table.status'),
       key: 'status',
       type: 'select',
       props: {
         clearable: true,
-        options: getTransferItemStatusOptions()
+        options: getTransferItemStatusOptions(t)
       }
     }
   ])
@@ -354,12 +356,13 @@
       paginationKey: getTransferItemPaginationKey(),
       columnsFactory: () =>
         createTransferItemTableColumns({
-          handleView: openDetail
+          handleView: openDetail,
+          t
         })
     },
     transform: {
       dataTransformer: (records) =>
-        Array.isArray(records) ? records.map((item) => normalizeTransferItemRow(item)) : []
+        Array.isArray(records) ? records.map((item) => normalizeTransferItemRow(item, t)) : []
     }
   })
 
@@ -368,13 +371,13 @@
     detailLoading.value = true
     try {
       const detail = await guardRequestWithMessage(fetchTransferItemDetail(row.id), {}, {
-        timeoutMessage: '璋冩嫧鏄庣粏璇︽儏鍔犺浇瓒呮椂锛屽凡鍋滄绛夊緟'
+        timeoutMessage: t('pages.orders.transferItem.messages.detailTimeout')
       })
-      detailData.value = normalizeTransferItemRow(detail)
+      detailData.value = normalizeTransferItemRow(detail, t)
     } catch (error) {
       detailDrawerVisible.value = false
       detailData.value = {}
-      ElMessage.error(error?.message || '鑾峰彇璋冩嫧鏄庣粏璇︽儏澶辫触')
+      ElMessage.error(error?.message || t('pages.orders.transferItem.messages.detailFailed'))
     } finally {
       detailLoading.value = false
     }
@@ -447,11 +450,11 @@
         }
       }),
     resolvePrintRecords,
-    buildPreviewRows: (records) => buildTransferItemPrintRows(records),
+    buildPreviewRows: (records) => buildTransferItemPrintRows(records, t),
     buildPreviewMeta: (rows) => {
       const now = new Date()
       return {
-        reportTitle,
+        reportTitle: reportTitle.value,
         reportDate: now.toLocaleDateString('zh-CN'),
         printedAt: now.toLocaleString('zh-CN', { hour12: false }),
         operator: userStore.getUserInfo?.name || userStore.getUserInfo?.username || '',
@@ -467,7 +470,8 @@
     buildTransferItemReportMeta({
       previewMeta: previewMeta.value,
       count: previewRows.value.length,
-      orientation: previewMeta.value?.reportStyle?.orientation || TRANSFER_ITEM_REPORT_STYLE.orientation
+      orientation: previewMeta.value?.reportStyle?.orientation || TRANSFER_ITEM_REPORT_STYLE.orientation,
+      t
     })
   )
 

--
Gitblit v1.9.1