From 6eaddd2b96f2d9f95f853976f3fd7d38c840da84 Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Fri, 21 Aug 2026 15:54:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E6=94=AF=E6=8C=81=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在多个组件中添加locale属性支持中英文切换 - 实现表格列标题的国际化显示 - 为首页代办功能添加菜单权限控制 - 移除菜单管理中不必要的"菜单"文字重复显示 - 禁止菜单路由字段在编辑时被修改 - 限制菜单删除功能仅对非一级菜单生效 - 新增英文版PO订单查询页面支持国际化显示 --- src/views/common/home.vue | 12 +- .../order/com_inspectionDetailList.vue | 37 +- .../modules/order/com_logisticsPoList.vue | 19 +- src/views/modules/order/com_poOrderDetail.vue | 87 ++ .../modules/order/com_poPartAttribute.vue | 14 +- src/views/modules/order/poOrder_search_en.vue | 960 ++++++++++++++++++ src/views/modules/sys/menu-add-or-update.vue | 2 +- src/views/modules/sys/menu.vue | 4 +- 8 files changed, 1107 insertions(+), 28 deletions(-) create mode 100644 src/views/modules/order/poOrder_search_en.vue diff --git a/src/views/common/home.vue b/src/views/common/home.vue index f6d612d..d20a2de 100644 --- a/src/views/common/home.vue +++ b/src/views/common/home.vue @@ -83,10 +83,10 @@ export default { inspectionAuditCount: 0, inspectionChangeApplyingCount: 0, homeTileShow: { - supplierDocExpire: true, - contractRequestExpire: true, - myPerformanceScore: true, - inspectionAudit: true, + supplierDocExpire: false, + contractRequestExpire: false, + myPerformanceScore: false, + inspectionAudit: false, inspectionChangeApplying: false, }, /** 代办卡片悬停外圈脉冲(双环);false 时无任何脉冲描边 */ @@ -276,6 +276,10 @@ export default { }, mounted () { // 首页代办需要按菜单权限控制:无排程菜单权限则不展示“验货变更提醒” - rqrq + this.homeTileShow.supplierDocExpire = this.hasRouteMenuAccess('srmSupplier-supplierList') + this.homeTileShow.contractRequestExpire = this.hasRouteMenuAccess('srmSupplier-supplierContractRequest') + this.homeTileShow.myPerformanceScore = this.hasRouteMenuAccess('supplierPerformance-perMyScore') + this.homeTileShow.inspectionAudit = this.hasRouteMenuAccess('inspection-inspectionRequestAudit') this.homeTileShow.inspectionChangeApplying = this.hasRouteMenuAccess('inspection-inspectionScheduleList') if (this.homeTileShow.supplierDocExpire) { this.loadDocExpireReminder() diff --git a/src/views/modules/order/com_inspectionDetailList.vue b/src/views/modules/order/com_inspectionDetailList.vue index 9de4986..12c8773 100644 --- a/src/views/modules/order/com_inspectionDetailList.vue +++ b/src/views/modules/order/com_inspectionDetailList.vue @@ -26,14 +26,14 @@ fixed="right" header-align="center" align="center" - label="操作" + :label="locale === 'en' ? 'Operation' : '操作'" min-width="100"> @@ -58,6 +58,12 @@ import { getInspectionByPODetail } from '@/api/order/poOrder.js' export default { name: 'InspectionDetailList', + props: { + locale: { + type: String, + default: 'zh' + } + }, data() { return { @@ -73,13 +79,18 @@ export default { pageIndex: 1, pageSize: 20, totalPage: 0, - dataListLoading: false, - columnList: [ + dataListLoading: false + } + }, + computed: { + columnList() { + const isEn = this.locale === 'en' + return [ { columnProp: 'requestNo', headerAlign: 'center', align: 'center', - columnLabel: '申请单号', + columnLabel: isEn ? 'Request No' : '申请单号', columnWidth: '140', columnHidden: false, columnSortable: false, @@ -90,7 +101,7 @@ export default { columnProp: 'inspectNo', headerAlign: 'center', align: 'center', - columnLabel: '检验单号', + columnLabel: isEn ? 'Inspection No' : '检验单号', columnWidth: '140', columnHidden: false, columnSortable: false, @@ -101,7 +112,7 @@ export default { columnProp: 'partNo', headerAlign: 'center', align: 'center', - columnLabel: '产品编码', + columnLabel: isEn ? 'Part No' : '产品编码', columnWidth: '120', columnHidden: false, columnSortable: false, @@ -112,7 +123,7 @@ export default { columnProp: 'partDesc', headerAlign: 'center', align: 'left', - columnLabel: '产品名称', + columnLabel: isEn ? 'Part Desc' : '产品名称', columnWidth: '200', columnHidden: false, columnSortable: false, @@ -123,7 +134,7 @@ export default { columnProp: 'inspectQty', headerAlign: 'center', align: 'center', - columnLabel: '验货数量', + columnLabel: isEn ? 'Inspection Qty' : '验货数量', columnWidth: '100', columnHidden: false, columnSortable: false, @@ -133,7 +144,7 @@ export default { columnProp: 'approveQty', headerAlign: 'center', align: 'center', - columnLabel: '检验通过数量', + columnLabel: isEn ? 'Approved Qty' : '检验通过数量', columnWidth: '120', columnHidden: false, columnSortable: false, @@ -143,7 +154,7 @@ export default { columnProp: 'status', headerAlign: 'center', align: 'center', - columnLabel: '验货状态', + columnLabel: isEn ? 'Inspection Status' : '验货状态', columnWidth: '100', columnHidden: false, columnSortable: false, @@ -153,7 +164,7 @@ export default { columnProp: 'inspectResult', headerAlign: 'center', align: 'center', - columnLabel: '验货结果', + columnLabel: isEn ? 'Inspection Result' : '验货结果', columnWidth: '100', columnHidden: false, columnSortable: false, @@ -218,7 +229,7 @@ export default { jumpToInspection(row) { const inspectionNo = row && row.inspectNo ? String(row.inspectNo).trim() : '' if (!inspectionNo) { - this.$message.warning('未找到检验单号') + this.$message.warning(this.locale === 'en' ? 'Inspection No not found' : '未找到检验单号') return } this.$router.push({ diff --git a/src/views/modules/order/com_logisticsPoList.vue b/src/views/modules/order/com_logisticsPoList.vue index fb4a452..cd21408 100644 --- a/src/views/modules/order/com_logisticsPoList.vue +++ b/src/views/modules/order/com_logisticsPoList.vue @@ -42,6 +42,12 @@ import { getPoList } from '@/api/npcIqc/npcIqc.js' export default { name: 'LogisticsPoList', + props: { + locale: { + type: String, + default: 'zh' + } + }, data() { return { @@ -57,13 +63,18 @@ export default { pageIndex: 1, pageSize: 20, totalPage: 0, - dataListLoading: false, - columnList: [ + dataListLoading: false + } + }, + computed: { + columnList() { + const isEn = this.locale === 'en' + return [ { columnProp: 'flexId', headerAlign: 'center', align: 'center', - columnLabel: '进仓编号', + columnLabel: isEn ? 'Warehouse No' : '进仓编号', columnWidth: '120', columnHidden: false, columnSortable: false, @@ -73,7 +84,7 @@ export default { columnProp: 'orderDate', headerAlign: 'center', align: 'center', - columnLabel: 'PO日期', + columnLabel: isEn ? 'PO Date' : 'PO日期', columnWidth: '120', columnHidden: false, columnSortable: false, diff --git a/src/views/modules/order/com_poOrderDetail.vue b/src/views/modules/order/com_poOrderDetail.vue index a84cf50..501964a 100644 --- a/src/views/modules/order/com_poOrderDetail.vue +++ b/src/views/modules/order/com_poOrderDetail.vue @@ -35,6 +35,90 @@ export default { schemaFields: { type: Array, default: () => [] + }, + locale: { + type: String, + default: 'zh' + } + }, + data () { + return { + labelMap: { + 'PO No': 'PO No', + 'PO号': 'PO No', + '订单类型': 'Order Type', + '类型': 'Type', + 'Customer': 'Customer', + '客户': 'Customer', + 'Buyer': 'Buyer', + '采购员': 'Buyer', + 'Vendor Name': 'Vendor Name', + '供应商名称': 'Vendor Name', + 'V_Short_Office': 'V_Short_Office', + 'V_Short_NPC': 'V_Short_NPC', + 'Part No': 'Part No', + '产品编码': 'Part No', + 'Item': 'Item', + '项目': 'Item', + 'Category': 'Category', + '品类': 'Category', + 'SKU': 'SKU', + 'Unit Price': 'Unit Price', + '单价': 'Unit Price', + 'PO Qty': 'PO Qty', + '数量': 'PO Qty', + 'PO Value': 'PO Value', + '金额': 'PO Value', + 'A-Qty': 'A-Qty', + 'A-Value': 'A-Value', + 'Departure Port': 'Departure Port', + '出发港': 'Departure Port', + 'Destination Port': 'Destination Port', + '目的港': 'Destination Port', + 'Method': 'Method', + '运输方式': 'Method', + 'Buyer Release Date': 'Buyer Release Date', + '采购发布日期': 'Buyer Release Date', + 'Planner Release Date': 'Planner Release Date', + '计划发布日期': 'Planner Release Date', + 'Status': 'Status', + '状态': 'Status', + 'PI Confirmed Date': 'PI Confirmed Date', + 'PI确认日期': 'PI Confirmed Date', + 'Original Arrival Date': 'Original Arrival Date', + '原始到货日期': 'Original Arrival Date', + 'Final Confirmed Arrival Date': 'Final Confirmed Arrival Date', + '最终确认到货日期': 'Final Confirmed Arrival Date', + 'PI Confirmed CRD': 'PI Confirmed CRD', + 'Original CRD': 'Original CRD', + 'Inspection Date': 'Inspection Date', + '验货日期': 'Inspection Date', + 'Actual Completion Date': 'Actual Completion Date', + '实际完成日期': 'Actual Completion Date', + 'ETA': 'ETA', + 'Flexport Id': 'Flexport Id', + 'On Board Date': 'On Board Date', + '装船日期': 'On Board Date', + 'Doc Sent': 'Doc Sent', + 'Telex Release': 'Telex Release', + 'Advance Payment': 'Advance Payment', + '预付款': 'Advance Payment', + 'Advanc Paid': 'Advanc Paid', + 'Create Date': 'Create Date', + '创建日期': 'Create Date', + 'M-Planner': 'M-Planner', + '计划员': 'M-Planner', + 'Edit Date': 'Edit Date', + '编辑日期': 'Edit Date', + 'Last Editor': 'Last Editor', + '最后编辑人': 'Last Editor', + 'Remark Delay': 'Remark Delay', + '延迟备注': 'Remark Delay', + 'Comments': 'Comments', + '备注': 'Comments', + 'Inspection Completed Qty': 'Inspection Completed Qty', + '已验货数量': 'Inspection Completed Qty' + } } }, computed: { @@ -151,6 +235,9 @@ export default { getFieldLabel (field) { const label = String((field && field.fieldLabel) || '').trim() if (label) { + if (this.locale === 'en' && this.labelMap[label]) { + return this.labelMap[label] + } return label } return this.getFieldProp(field) || this.getFieldCode(field) diff --git a/src/views/modules/order/com_poPartAttribute.vue b/src/views/modules/order/com_poPartAttribute.vue index 687d90a..a850a20 100644 --- a/src/views/modules/order/com_poPartAttribute.vue +++ b/src/views/modules/order/com_poPartAttribute.vue @@ -8,27 +8,27 @@ style="width: 100%; margin-top: 5px"> +
+ + + + + + + + + + + + + Part No + + + + Supplier Code + + + + + + + + + + + + + + + + Search + Export + Reset + Advanced Query + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/src/views/modules/sys/menu-add-or-update.vue b/src/views/modules/sys/menu-add-or-update.vue index b0333b6..c4c5ea7 100644 --- a/src/views/modules/sys/menu-add-or-update.vue +++ b/src/views/modules/sys/menu-add-or-update.vue @@ -38,7 +38,7 @@ - + diff --git a/src/views/modules/sys/menu.vue b/src/views/modules/sys/menu.vue index 7a4fdc7..52fe940 100644 --- a/src/views/modules/sys/menu.vue +++ b/src/views/modules/sys/menu.vue @@ -40,7 +40,7 @@
@@ -74,7 +74,7 @@ :label="buttons.cz||'操作'">