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/wave/index.vue | 115 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 74 insertions(+), 41 deletions(-)
diff --git a/rsf-design/src/views/orders/wave/index.vue b/rsf-design/src/views/orders/wave/index.vue
index eaa0a3f..7b2a419 100644
--- a/rsf-design/src/views/orders/wave/index.vue
+++ b/rsf-design/src/views/orders/wave/index.vue
@@ -59,6 +59,7 @@
:columns="publicTaskColumns"
:pagination="publicTaskPagination"
:can-submit="publicTaskCanSubmit"
+ :warning-text="publicTaskWarningText"
@size-change="handlePublicTaskSizeChange"
@current-change="handlePublicTaskCurrentChange"
@submit="handleSubmitPublicTask"
@@ -69,6 +70,7 @@
<script setup>
import { computed, reactive, ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
+ import { useI18n } from 'vue-i18n'
import { useUserStore } from '@/store/modules/user'
import { useTable } from '@/hooks/core/useTable'
import { usePrintExportPage } from '@/views/system/common/usePrintExportPage'
@@ -82,6 +84,7 @@
buildWaveReportMeta,
buildWaveSearchParams,
createWaveSearchState,
+ getWaveReportTitle,
normalizeWaveItemRow,
normalizeWaveRow,
WAVE_REPORT_STYLE
@@ -107,8 +110,9 @@
defineOptions({ name: 'WaveOrder' })
+ const { t } = useI18n()
const userStore = useUserStore()
- const reportTitle = '娉㈡鍗曟姤琛�'
+ const reportTitle = computed(() => getWaveReportTitle(t))
const searchForm = ref(createWaveSearchState())
const selectedRows = ref([])
const detailDrawerVisible = ref(false)
@@ -135,43 +139,71 @@
})
const reportQueryParams = computed(() => buildWaveSearchParams(searchForm.value))
- const detailColumns = computed(() => createWaveDetailItemColumns())
- const publicTaskColumns = computed(() => createWavePreviewItemColumns())
+ const detailColumns = computed(() => createWaveDetailItemColumns(t))
+ const publicTaskColumns = computed(() => createWavePreviewItemColumns(t))
const publicTaskCanSubmit = computed(
() => publicTaskRows.value.length > 0 && publicTaskRows.value.every((row) => row.stockLocsText && row.stockLocsText !== '[]')
)
+ const publicTaskWarningText = computed(() => t('pages.orders.wave.messages.publicTaskWarning'))
const searchItems = computed(() => [
- { label: '鍏抽敭瀛�', key: 'condition', type: 'input', props: { clearable: true, placeholder: '璇疯緭鍏ユ尝娆″崟鍙�/澶囨敞' } },
- { label: '娉㈡鍗曞彿', key: 'code', type: 'input', props: { clearable: true, placeholder: '璇疯緭鍏ユ尝娆″崟鍙�' } },
{
- label: '娉㈡绫诲瀷',
- key: 'type',
- type: 'select',
- props: { clearable: true, options: [{ label: '鎵嬪姩', value: 0 }, { label: '鑷姩', value: 1 }] }
+ label: t('pages.orders.wave.search.condition'),
+ key: 'condition',
+ type: 'input',
+ props: { clearable: true, placeholder: t('pages.orders.wave.search.conditionPlaceholder') }
},
{
- label: '娉㈡鐘舵��',
+ label: t('pages.orders.wave.search.code'),
+ key: 'code',
+ type: 'input',
+ props: { clearable: true, placeholder: t('pages.orders.wave.search.codePlaceholder') }
+ },
+ {
+ label: t('pages.orders.wave.search.type'),
+ key: 'type',
+ type: 'select',
+ props: {
+ clearable: true,
+ options: [
+ { label: t('pages.orders.wave.status.type.0'), value: 0 },
+ { label: t('pages.orders.wave.status.type.1'), value: 1 }
+ ]
+ }
+ },
+ {
+ label: t('pages.orders.wave.search.exceStatus'),
key: 'exceStatus',
type: 'select',
props: {
clearable: true,
options: [
- { label: '绛夊緟鎵ц', value: 0 },
- { label: '姝e湪鎵ц', value: 1 },
- { label: '鏆傚仠鎵ц', value: 2 },
- { label: '鎵ц瀹屾垚', value: 3 }
+ { label: t('pages.orders.wave.status.exceStatus.0'), value: 0 },
+ { label: t('pages.orders.wave.status.exceStatus.1'), value: 1 },
+ { label: t('pages.orders.wave.status.exceStatus.2'), value: 2 },
+ { label: t('pages.orders.wave.status.exceStatus.3'), value: 3 }
]
}
},
{
- label: '鐘舵��',
+ label: t('pages.orders.wave.search.status'),
key: 'status',
type: 'select',
- props: { clearable: true, options: [{ label: '姝e父', value: 1 }, { label: '绂佺敤', value: 0 }] }
+ props: {
+ clearable: true,
+ options: [
+ { label: t('common.status.normal'), value: 1 },
+ { label: t('common.status.disabled'), value: 0 }
+ ]
+ }
},
- { label: '澶囨敞', key: 'memo', type: 'input', props: { clearable: true, placeholder: '璇疯緭鍏ュ娉�' } },
- { label: '寮�濮嬫椂闂�', key: 'timeStart', type: 'date', props: { clearable: true, type: 'date', valueFormat: 'YYYY-MM-DD' } },
- { label: '缁撴潫鏃堕棿', key: 'timeEnd', type: 'date', props: { clearable: true, type: 'date', valueFormat: 'YYYY-MM-DD' } }
+ {
+ label: t('pages.orders.wave.search.memo'),
+ key: 'memo',
+ type: 'input',
+ props: { clearable: true, placeholder: t('pages.orders.wave.search.memoPlaceholder') }
+ },
+ { label: t('pages.orders.wave.search.timeStart'), key: 'timeStart', type: 'date', props: { clearable: true, type: 'date', valueFormat: 'YYYY-MM-DD' } },
+ { label: t('pages.orders.wave.search.timeEnd'), key: 'timeEnd', type: 'date', props: { clearable: true, type: 'date', valueFormat: 'YYYY-MM-DD' } }
])
function updatePaginationState(target, response, fallbackCurrent, fallbackSize) {
@@ -188,7 +220,7 @@
}
async function openPublicTask(row) {
- publicTaskWave.value = normalizeWaveRow(row)
+ publicTaskWave.value = normalizeWaveRow(row, t)
publicTaskPagination.current = 1
publicTaskDialogVisible.value = true
await loadPublicTaskResources()
@@ -211,29 +243,29 @@
}
if (action.key === 'pause') {
await fetchPauseWave(row.id)
- ElMessage.success('娉㈡宸叉殏鍋�')
+ ElMessage.success(t('pages.orders.wave.messages.pauseSuccess'))
await refreshData()
return
}
if (action.key === 'continue') {
await fetchContinueWave(row.id)
- ElMessage.success('娉㈡宸茬户缁�')
+ ElMessage.success(t('pages.orders.wave.messages.continueSuccess'))
await refreshData()
return
}
if (action.key === 'stop') {
- await ElMessageBox.confirm(`纭畾缁堟娉㈡鍗� ${row.code || ''} 鍚楋紵`, '缁堟纭', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
+ await ElMessageBox.confirm(t('pages.orders.wave.messages.stopConfirm', { code: row.code || '' }), t('pages.orders.wave.messages.stopTitle'), {
+ confirmButtonText: t('common.confirm'),
+ cancelButtonText: t('common.cancel'),
type: 'warning'
})
await fetchStopWave(row.id)
- ElMessage.success('娉㈡宸茬粓姝�')
+ ElMessage.success(t('pages.orders.wave.messages.stopSuccess'))
await refreshData()
}
} catch (error) {
if (error === 'cancel' || error?.message === 'cancel') return
- ElMessage.error(error?.message || '娉㈡鎿嶄綔澶辫触')
+ ElMessage.error(error?.message || t('pages.orders.wave.messages.actionFailed'))
}
}
@@ -253,10 +285,10 @@
core: {
apiFn: fetchWavePage,
apiParams: buildWavePageQueryParams(searchForm.value),
- columnsFactory: () => createWaveTableColumns({ handleActionClick })
+ columnsFactory: () => createWaveTableColumns({ handleActionClick, t })
},
transform: {
- dataTransformer: (records) => (Array.isArray(records) ? records.map((item) => normalizeWaveRow(item)) : [])
+ dataTransformer: (records) => (Array.isArray(records) ? records.map((item) => normalizeWaveRow(item, t)) : [])
}
})
@@ -268,15 +300,15 @@
detailLoading.value = true
try {
const [detailResponse, previewResponse] = await Promise.all([
- guardRequestWithMessage(fetchGetWaveDetail(activeWaveId.value), {}, { timeoutMessage: '娉㈡鍗曡鎯呭姞杞借秴鏃讹紝宸插仠姝㈢瓑寰�' }),
+ guardRequestWithMessage(fetchGetWaveDetail(activeWaveId.value), {}, { timeoutMessage: t('pages.orders.wave.messages.detailTimeout') }),
guardRequestWithMessage(
fetchWavePreviewPage(buildWaveDetailQueryParams({ waveId: activeWaveId.value, current: detailPagination.current, pageSize: detailPagination.size })),
{ records: [], total: 0, current: detailPagination.current, size: detailPagination.size },
- { timeoutMessage: '娉㈡棰勮鏄庣粏鍔犺浇瓒呮椂锛屽凡鍋滄绛夊緟' }
+ { timeoutMessage: t('pages.orders.wave.messages.previewTimeout') }
)
])
- detailData.value = normalizeWaveRow(detailResponse)
- detailTableData.value = Array.isArray(previewResponse?.records) ? previewResponse.records.map((item) => normalizeWaveItemRow(item)) : []
+ detailData.value = normalizeWaveRow(detailResponse, t)
+ detailTableData.value = Array.isArray(previewResponse?.records) ? previewResponse.records.map((item) => normalizeWaveItemRow(item, t)) : []
updatePaginationState(detailPagination, previewResponse, detailPagination.current, detailPagination.size)
} finally {
detailLoading.value = false
@@ -293,9 +325,9 @@
const previewResponse = await guardRequestWithMessage(
fetchWavePreviewPage(buildWaveDetailQueryParams({ waveId: publicTaskWave.value.id, current: publicTaskPagination.current, pageSize: publicTaskPagination.size })),
{ records: [], total: 0, current: publicTaskPagination.current, size: publicTaskPagination.size },
- { timeoutMessage: '娉㈡涓嬪彂棰勮鍔犺浇瓒呮椂锛屽凡鍋滄绛夊緟' }
+ { timeoutMessage: t('pages.orders.wave.messages.publicTaskTimeout') }
)
- publicTaskRows.value = Array.isArray(previewResponse?.records) ? previewResponse.records.map((item) => normalizeWaveItemRow(item)) : []
+ publicTaskRows.value = Array.isArray(previewResponse?.records) ? previewResponse.records.map((item) => normalizeWaveItemRow(item, t)) : []
updatePaginationState(publicTaskPagination, previewResponse, publicTaskPagination.current, publicTaskPagination.size)
} finally {
publicTaskLoading.value = false
@@ -311,16 +343,16 @@
})
const result = defaultResponseAdapter(response)
if (result?.code !== 200 && result?.success !== true) {
- throw new Error(result?.message || '娉㈡涓嬪彂澶辫触')
+ throw new Error(result?.message || t('pages.orders.wave.messages.publicTaskFailed'))
}
- ElMessage.success(result?.message || '娉㈡宸蹭笅鍙�')
+ ElMessage.success(result?.message || t('pages.orders.wave.messages.publicTaskSuccess'))
publicTaskDialogVisible.value = false
await refreshData()
if (detailDrawerVisible.value && activeWaveId.value === publicTaskWave.value.id) {
await loadDetailResources()
}
} catch (error) {
- ElMessage.error(error?.message || '娉㈡涓嬪彂澶辫触')
+ ElMessage.error(error?.message || t('pages.orders.wave.messages.publicTaskFailed'))
} finally {
publicTaskSubmitting.value = false
}
@@ -390,11 +422,11 @@
}
}),
resolvePrintRecords,
- buildPreviewRows: (records) => buildWavePrintRows(records),
+ buildPreviewRows: (records) => buildWavePrintRows(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 || '',
@@ -410,7 +442,8 @@
buildWaveReportMeta({
previewMeta: rawPreviewMeta.value,
count: previewRows.value.length,
- orientation: rawPreviewMeta.value?.reportStyle?.orientation || WAVE_REPORT_STYLE.orientation
+ orientation: rawPreviewMeta.value?.reportStyle?.orientation || WAVE_REPORT_STYLE.orientation,
+ t
})
)
</script>
--
Gitblit v1.9.1