From d9d0f272b06e5c97c871c7e7b82db635a204629f Mon Sep 17 00:00:00 2001 From: c Date: Tue, 10 Mar 2026 18:07:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E6=88=90=E5=93=81?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/languages/locales/en-US.ts | 51 +++ src/common/languages/locales/zh-CN.ts | 53 ++- .../languages/mapping/base-info-mapping.ts | 35 ++ .../FinishedProductReceiptView.vue | 397 +++++++++++++++--- 4 files changed, 450 insertions(+), 86 deletions(-) diff --git a/src/common/languages/locales/en-US.ts b/src/common/languages/locales/en-US.ts index 480fb0c..d36d3d7 100644 --- a/src/common/languages/locales/en-US.ts +++ b/src/common/languages/locales/en-US.ts @@ -180,6 +180,21 @@ export default { formName: "Form Name", formMark: "Form Mark", storeName: "Store", + storeId: "Store", + storeNo: "Store No", + formStatus: "Status", + productType: "Model", + productSn: "SN", + macAddress: "MAC Address", + serialNumber: "Serial Number", + softwareVersion: "Software Version", + algorithmVersion: "Algorithm Version", + algorithmFlag: "Algorithm Flag", + activationStatus: "Activation Status", + productionDate: "Production Date", + remark: "Remark", + createDate: "Create Date", + keyAccountId: "Customer", }, }, purchase: { @@ -318,6 +333,7 @@ export default { viewLossRate: "View Loss Rate", shortageFilterButton: "Shortage Data", unfilterButton: "All Data", + outstock: "Outstock", approve: "Approve", reject: "Reject", productionReturn: "Return", @@ -449,7 +465,29 @@ export default { }, production_return: {}, finishedproductreceipt: { + select_storeId: "Please select store", + input_formName: "Please enter form name", + input_formMark: "Please enter form remark", + input_formCode: "Please enter form code", + input_productType: "Please enter model", + input_productSn: "Please enter SN", + input_macAddress: "Please enter MAC address", + input_serialNumber: "Please enter serial number", + input_softwareVersion: "Please enter software version", + input_algorithmVersion: "Please enter algorithm version", + input_algorithmFlag: "Please enter algorithm flag", + input_activationStatus: "Please select activation status", + input_productionDate: "Please enter production date", + input_remark: "Please enter remark", delete_message: "Delete Receipt", + only_pending_outstocking_can_outstock: "Only pending outstock and outstocking receipts can be shipped", + get_outstock_data_failed: "Failed to get outstock data", + select_key_account: "Please select customer", + select_devices: "Please select devices to ship", + outstock_confirm: "Confirm to ship?", + outstock_success: "Outstock success", + outstock_fail: "Outstock failed", + input_outstock_mark: "Please enter outstock remark", }, }, purchase: { @@ -556,6 +594,10 @@ export default { finishedproductreceipt: { add: "Add Receipt", edit: "Edit Receipt", + showItem: "Product Details", + baseTitle: "Receipt Basic Info", + tableTitle: "Product Details", + outstockDialog: "Product Outstock", }, finishedproductshipment: { add: "Add Shipment", @@ -854,5 +896,14 @@ export default { approving: "Approving", returned: "Returned", }, + finished_product_receipt_status: { + pending_outstock: "Pending Outstock", + outstocking: "Outstocking", + completed: "Completed", + }, + activation_status: { + activated: "Activated", + not_activated: "Not Activated", + }, }, }; diff --git a/src/common/languages/locales/zh-CN.ts b/src/common/languages/locales/zh-CN.ts index 9b80d63..7f25b41 100644 --- a/src/common/languages/locales/zh-CN.ts +++ b/src/common/languages/locales/zh-CN.ts @@ -204,18 +204,20 @@ export default { formMark: "单据备注", storeName: "仓库", storeId: "仓库", + storeNo: "仓库编号", formStatus: "单据状态", productType: "型号", productSn: "SN号", - mac: "MAC地址", - serialNum: "序列号", - softVersion: "软件版本", - alVersion: "算法版本", - alNum: "算法标志", - alTxt: "激活状态", - manufacturingDate: "时间", - mark: "备注", + macAddress: "MAC地址", + serialNumber: "序列号", + softwareVersion: "软件版本", + algorithmVersion: "算法版本", + algorithmFlag: "算法标志", + activationStatus: "激活状态", + productionDate: "生产日期", + remark: "备注", createDate: "创建时间", + keyAccountId: "客户", }, }, purchase: { @@ -400,6 +402,7 @@ export default { viewLossRate: "查看损耗率", shortageFilterButton: "缺料数据", unfilterButton: "全部数据", + outstock: "出货", approve: "审核", reject: "反审", productionReturn: "退料", @@ -598,14 +601,14 @@ export default { input_formCode: "请输入单据编号", input_productType: "请输入型号", input_productSn: "请输入SN号", - input_mac: "请输入MAC地址", - input_serialNum: "请输入序列号", - input_softVersion: "请输入软件版本", - input_alVersion: "请输入算法版本", - input_alNum: "请输入算法标志", - input_alTxt: "请输入激活状态", - input_manufacturingDate: "请输入时间", - input_mark: "请输入备注", + input_macAddress: "请输入MAC地址", + input_serialNumber: "请输入序列号", + input_softwareVersion: "请输入软件版本", + input_algorithmVersion: "请输入算法版本", + input_algorithmFlag: "请输入算法标志", + input_activationStatus: "请选择激活状态", + input_productionDate: "请输入生产日期", + input_remark: "请输入备注", approve_confirm: "是否审核通过", approve_success: "审核成功", approve_fail: "审核失败", @@ -622,6 +625,14 @@ export default { import_success: "导入成功", import_fail: "导入失败", delete_message: "删除成品入库单", + only_pending_outstocking_can_outstock: "只有待出货和出货中状态的入库单才能出货", + get_outstock_data_failed: "获取出货数据失败", + select_key_account: "请选择客户", + select_devices: "请选择要出货的设备", + outstock_confirm: "确认出货吗?", + outstock_success: "出货成功", + outstock_fail: "出货失败", + input_outstock_mark: "请输入出货备注", }, finishedproductshipment: { select_storeId: "请选择仓库", @@ -849,6 +860,7 @@ export default { showItem: "成品明细", baseTitle: "成品入库单基本信息", tableTitle: "成品明细", + outstockDialog: "成品出货", }, finishedproductshipment: { add: "添加成品出货单", @@ -1167,6 +1179,15 @@ export default { approving: "审批中", returned: "已退料", }, + finished_product_receipt_status: { + pending_outstock: "待出货", + outstocking: "出货中", + completed: "已完成", + }, + activation_status: { + activated: "已激活", + not_activated: "未激活", + }, }, _status: { in_progress: "入库中", diff --git a/src/common/languages/mapping/base-info-mapping.ts b/src/common/languages/mapping/base-info-mapping.ts index 987e122..362b83e 100644 --- a/src/common/languages/mapping/base-info-mapping.ts +++ b/src/common/languages/mapping/base-info-mapping.ts @@ -39,6 +39,36 @@ export const useStatus = () => { 8: "_base_info.form_status.returned", }; + const finishedProductReceiptStatusKeyMap: Record = { + 1: "_base_info.finished_product_receipt_status.pending_outstock", + 3: "_base_info.finished_product_receipt_status.outstocking", + 4: "_base_info.finished_product_receipt_status.completed", + }; + + const getFinishedProductReceiptStatusLabel = (code: number | null): string => { + if (code === null || code === undefined) return ""; + const key = finishedProductReceiptStatusKeyMap[code]; + return key ? t(key) : t(unknown); + }; + + const activationStatusKeyMap: Record = { + true: "_base_info.activation_status.activated", + false: "_base_info.activation_status.not_activated", + }; + + const getActivationStatusLabel = (status: boolean | null): string => { + if (status === null || status === undefined) return ""; + const key = activationStatusKeyMap[status]; + return key ? t(key) : t(unknown); + }; + + const getActivationStatusTxtLabel = (status: string | null): string => { + if (status === null || status === undefined) return ""; + if (status === "已激活" || status === "Activated") return t("_base_info.activation_status.activated"); + if (status === "未激活" || status === "Not Activated") return t("_base_info.activation_status.not_activated"); + return status; + }; + const getFormStatusLabel = (code: number | null): string => { if (code === null || code === undefined) return ""; const key = formStatusKeyMap[code]; @@ -76,6 +106,11 @@ export const useStatus = () => { getProductionPlanStatusLabel, formStatusKeyMap, getFormStatusLabel, + finishedProductReceiptStatusKeyMap, + getFinishedProductReceiptStatusLabel, + activationStatusKeyMap, + getActivationStatusLabel, + getActivationStatusTxtLabel, purchasePlanItemStatusKeyMap, getPurchasePlanItemStatusLabel, purchasePlanStatusKeyMap, diff --git a/src/views/production/finished-product-receipt/FinishedProductReceiptView.vue b/src/views/production/finished-product-receipt/FinishedProductReceiptView.vue index fe1cc10..bb99716 100644 --- a/src/views/production/finished-product-receipt/FinishedProductReceiptView.vue +++ b/src/views/production/finished-product-receipt/FinishedProductReceiptView.vue @@ -1,18 +1,20 @@ - + + { :table-title="$t('_title.production.finishedproductreceipt.tableTitle')" :item-array-name="itemArrayName" upload-desc="设备信息" - :import-url="importItemsUrl" + :mapping-config="mappingConfig" @reset="handleReset" > - + - - + - - + - - + - - + - - + - - + @@ -347,17 +508,113 @@ const handleReset = () => { :url="getDetailUrl" parent-param-name="id" v-model:parent-param-value="itemParentId" + width="80%" > + + + + + + + + +