From d4668912f889828beea49751da5f5b5097620d61 Mon Sep 17 00:00:00 2001 From: hwj Date: Thu, 29 Jan 2026 16:41:18 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=B7=A5=E5=8E=82=E5=BB=BA?= =?UTF-8?q?=E6=A8=A1=E6=B7=BB=E5=8A=A0=E5=A4=9A=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/en.ts | 410 ++++++++++++++++++ src/locales/zh-CN.ts | 409 +++++++++++++++++ src/views/erp/autocode/AutocodeIndex.vue | 58 +-- src/views/erp/autocode/AutocodeRuleForm.vue | 63 ++- .../autocode/components/AutocodePartForm.vue | 116 +++-- .../autocode/components/AutocodePartList.vue | 96 +++- .../product/category/ProductCategoryForm.vue | 36 +- src/views/erp/product/category/index.vue | 36 +- src/views/erp/product/product/ProductForm.vue | 62 +-- src/views/erp/product/product/index.vue | 34 +- .../erp/product/unit/ProductUnitForm.vue | 92 ++-- src/views/erp/product/unit/index.vue | 54 ++- src/views/mes/bom/BomForm.vue | 44 +- .../mes/bom/components/BomDetailForm.vue | 38 +- .../mes/bom/components/BomDetailList.vue | 10 +- src/views/mes/bom/index.vue | 51 ++- .../mes/organization/OrganizationForm.vue | 54 +-- src/views/mes/organization/WorkerIndex.vue | 56 +-- src/views/mes/organization/index.vue | 50 +-- src/views/mes/workteam/WorkTeamForm.vue | 40 +- .../components/WorkTeamDetailForm.vue | 53 ++- .../components/WorkTeamDetailList.vue | 18 +- src/views/mes/workteam/index.vue | 54 +-- 23 files changed, 1482 insertions(+), 452 deletions(-) diff --git a/src/locales/en.ts b/src/locales/en.ts index 0b970e36..97fba0be 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -1214,6 +1214,416 @@ export default { } }, + FactoryModeling: { + FactoryStructure: { + moduleName: 'Factory Structure', + searchCodeLabel: 'Organization Code', + searchCodePlaceholder: 'Please enter organization code', + searchParentLabel: 'Parent Organization', + searchParentPlaceholder: 'Please select parent organization', + searchNameLabel: 'Organization Name', + searchNamePlaceholder: 'Please enter organization name', + searchOrgClassLabel: 'Organization Level', + searchOrgClassPlaceholder: 'Please select organization level', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + expandButtonText: 'Expand/Collapse', + tableCodeColumn: 'Organization Code', + tableNameColumn: 'Organization Name', + tableSortColumn: 'Display Order', + tableMachineColumn: 'Related Device', + tableOrgClassColumn: 'Organization Level', + tableOrgTypeColumn: 'Process', + tableCreateTimeColumn: 'Create Time', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + dialogCodeLabel: 'Code', + dialogCodeTooltip: 'Factory structure code', + dialogCodePlaceholder: 'Code is auto generated after saving', + dialogParentLabel: 'Parent Organization', + dialogParentPlaceholder: 'Please select parent organization', + dialogNameLabel: 'Organization Name', + dialogNamePlaceholder: 'Please enter organization name', + dialogOrgClassLabel: 'Organization Level', + dialogSortLabel: 'Display Order', + dialogSortTooltip: 'Same parent nodes are sorted in ascending order', + dialogSortPlaceholder: 'Please enter display order', + dialogOrgTypeLabel: 'Process', + dialogOrgTypeTooltip: 'Source: Data dictionary - Process', + dialogOrgTypePlaceholder: 'Please select type', + dialogMachineLabel: 'Related Device', + dialogMachinePlaceholder: 'Please select device', + dialogCancelButton: 'Cancel', + dialogSubmitButton: 'Confirm', + orgTreeRootName: 'Top Organization', + validatorNameRequired: 'Organization name can not be empty', + validatorParentRequired: 'Parent organization can not be empty', + validatorOrgClassRequired: 'Organization level can not be empty' + }, + FactoryWorker: { + moduleName: 'Workstation Worker', + searchNameLabel: 'Organization Name', + searchNamePlaceholder: 'Please enter organization name', + searchStatusLabel: 'Organization Status', + searchStatusPlaceholder: 'Please select organization status', + searchButtonText: 'Search', + resetButtonText: 'Reset', + exportButtonText: 'Export', + expandButtonText: 'Expand/Collapse', + tabsZhijiang: 'Pulping', + tabsChengxing: 'Forming', + tabsHonggan: 'Drying', + tabsZhuanyi: 'Transfer', + tabsJiashi: 'Humidifying', + tabsReya: 'Hot Press', + tabsQiebian: 'Trimming', + tabsPanjian: 'Inspection', + tabsDabao: 'Packing', + tabsTiebiao: 'Labeling', + tabsPinyin: 'Printing', + tabsSufeng: 'Sealing', + tabsAll: 'All', + tableNameColumn: 'Organization Name', + tableOrgClassColumn: 'Organization Level', + tableOrgTypeColumn: 'Type', + tableWorkerColumn: 'Today Worker', + tableOperateColumn: 'Operation', + tableDispatchAction: 'Dispatch', + exportFileName: 'Workstation.xls' + }, + ProductCategory: { + moduleName: 'Product Material Category', + searchNameLabel: 'Category Name', + searchNamePlaceholder: 'Please enter category name', + searchStatusLabel: 'Enable Status', + searchStatusPlaceholder: 'Please select enable status', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + expandButtonText: 'Expand/Collapse', + tableCodeColumn: 'Category Code', + tableNameColumn: 'Category Name', + tableSortColumn: 'Sort', + tableStatusColumn: 'Status', + tableCreateTimeColumn: 'Create Time', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + dialogParentLabel: 'Parent Category', + dialogParentPlaceholder: 'Please select parent category', + dialogCodeLabel: 'Code', + dialogCodePlaceholder: 'Please enter code', + dialogNameLabel: 'Name', + dialogNamePlaceholder: 'Please enter name', + dialogSortLabel: 'Sort', + dialogSortPlaceholder: 'Please enter sort', + dialogStatusLabel: 'Status', + dialogCancelButton: 'Cancel', + dialogSubmitButton: 'Confirm', + treeRootName: 'Top Product Category', + validatorParentRequired: 'Parent category can not be empty', + validatorNameRequired: 'Name can not be empty', + validatorCodeRequired: 'Code can not be empty', + validatorSortRequired: 'Sort can not be empty', + validatorStatusRequired: 'Status can not be empty' + }, + ProductInformation: { + moduleName: 'Product Material Information', + searchNameLabel: 'Name', + searchNamePlaceholder: 'Please enter name', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + tableBarCodeColumn: 'Code', + tableNameColumn: 'Name', + tableStandardColumn: 'Specification', + tableCategoryColumn: 'Category', + tableUnitColumn: 'Unit', + tableStatusColumn: 'Status', + tableCreateTimeColumn: 'Create Time', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + dialogBarCodeLabel: 'Code', + dialogBarCodePlaceholder: 'Please enter code', + dialogNameLabel: 'Name', + dialogNamePlaceholder: 'Please enter name', + dialogCategoryLabel: 'Category', + dialogCategoryPlaceholder: 'Please select category', + dialogUnitLabel: 'Unit', + dialogUnitPlaceholder: 'Please select unit', + dialogStandardLabel: 'Specification', + dialogStandardPlaceholder: 'Please enter specification', + dialogExpiryDayLabel: 'Shelf Life (Days)', + dialogExpiryDayPlaceholder: 'Please enter shelf life (days)', + dialogWeightLabel: 'Weight (g)', + dialogWeightPlaceholder: 'Please enter weight (g)', + dialogPurchasePriceLabel: 'Purchase Price', + dialogPurchasePricePlaceholder: 'Please enter purchase price (CNY)', + dialogSalePriceLabel: 'Sale Price', + dialogSalePricePlaceholder: 'Please enter sale price (CNY)', + dialogMinPriceLabel: 'Minimum Price', + dialogMinPricePlaceholder: 'Please enter minimum price (CNY)', + dialogStatusLabel: 'Status', + dialogRemarkLabel: 'Remark', + dialogRemarkPlaceholder: 'Please enter remark', + dialogCancelButton: 'Cancel', + dialogSubmitButton: 'Confirm', + validatorNameRequired: 'Product name can not be empty', + validatorBarCodeRequired: 'Product barcode can not be empty', + validatorCategoryRequired: 'Product category id can not be empty', + validatorUnitRequired: 'Unit id can not be empty', + validatorStatusRequired: 'Product status can not be empty' + }, + AutocodeRule: { + moduleName: 'Code Rules', + searchRuleCodeLabel: 'Rule Code', + searchRuleCodePlaceholder: 'Please enter rule code', + searchRuleNameLabel: 'Rule Name', + searchRuleNamePlaceholder: 'Please enter rule name', + searchRuleDescLabel: 'Description', + searchRuleDescPlaceholder: 'Please enter description', + searchRemarkLabel: 'Remark', + searchRemarkPlaceholder: 'Please enter remark', + searchIsEnableLabel: 'Enabled', + searchIsEnablePlaceholder: 'Please select enabled', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + tableRuleCodeColumn: 'Rule Code', + tableRuleNameColumn: 'Rule Name', + tableRuleDescColumn: 'Description', + tableMaxLengthColumn: 'Max Length', + tableIsPaddedColumn: 'Pad', + tablePaddedCharColumn: 'Pad Char', + tablePaddedMethodColumn: 'Pad Method', + tableIsEnableColumn: 'Enabled', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + tableTestCodeAction: 'Test Code', + listPartTabLabel: 'Code Parts', + dialogPartTabLabel: 'Code Rule Parts', + exportFilename: 'CodeRules.xls', + dialogRuleCodeLabel: 'Rule Code', + dialogRuleCodePlaceholder: 'Please enter rule code', + dialogRuleNameLabel: 'Rule Name', + dialogRuleNamePlaceholder: 'Please enter rule name', + dialogRuleDescLabel: 'Description', + dialogRuleDescPlaceholder: 'Please enter description', + dialogMaxLengthLabel: 'Max Length', + dialogMaxLengthPlaceholder: 'Please enter max length', + dialogIsPaddedLabel: 'Pad', + dialogPaddedCharLabel: 'Pad Char', + dialogPaddedCharPlaceholder: 'Please enter pad char', + dialogPaddedMethodLabel: 'Pad Method', + dialogRemarkLabel: 'Remark', + dialogRemarkPlaceholder: 'Please enter remark', + dialogIsEnableLabel: 'Enabled', + validatorIsEnableRequired: 'Enabled can not be empty', + validatorRuleIdRequired: 'Rule id can not be empty', + validatorPartIndexRequired: 'Part index can not be empty', + validatorPartLengthRequired: 'Part length can not be empty', + partTableIndexColumn: 'Index', + partTableIdColumn: 'ID', + partTablePartIndexColumn: 'Part Index', + partTablePartTypeColumn: 'Part Type', + partTablePartCodeColumn: 'Part Code', + partTablePartNameColumn: 'Part Name', + partTablePartLengthColumn: 'Part Length', + partTableDatetimeFormatColumn: 'Datetime Format', + partTableInputCharacterColumn: 'Input Char', + partTableFixCharacterColumn: 'Fixed Char', + partTableSeriaStartNoColumn: 'Serial Start', + partTableSeriaStepColumn: 'Serial Step', + partTableSeriaNowNoColumn: 'Serial Current', + partTableCycleFlagColumn: 'Serial Cycle', + partTableCycleMethodColumn: 'Cycle Method', + partTableRemarkColumn: 'Remark', + partTableIsEnableColumn: 'Enabled', + partTableCreateTimeColumn: 'Create Time', + partTableOperateColumn: 'Operation', + partPlaceholderPartIndex: 'Please enter part index', + partPlaceholderPartCode: 'Please enter part code', + partPlaceholderPartName: 'Please enter part name', + partPlaceholderPartLength: 'Please enter part length', + partPlaceholderDatetimeFormat: 'Please enter datetime format', + partPlaceholderInputCharacter: 'Please enter input char', + partPlaceholderFixCharacter: 'Please enter fixed char', + partPlaceholderSeriaStartNo: 'Please enter serial start', + partPlaceholderSeriaStep: 'Please enter serial step', + partPlaceholderSeriaNowNo: 'Please enter current serial', + partPlaceholderRemark: 'Please enter remark', + addPartButtonText: 'Add Code Rule Part' + }, + ProductBOM: { + moduleName: 'Product BOM', + searchCodeLabel: 'BOM Code', + searchCodePlaceholder: 'Please enter BOM code', + searchProductLabel: 'Product', + searchProductPlaceholder: 'Please select product', + searchRemarkLabel: 'Remark', + searchRemarkPlaceholder: 'Please enter remark', + searchEnableLabel: 'Enable Status', + searchEnablePlaceholder: 'Please select enable status', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + tableCodeColumn: 'BOM Code', + tableVersionColumn: 'BOM Version', + tableProductColumn: 'Product', + tableUnitColumn: 'Unit', + tableYieldRateColumn: 'Yield Rate %', + tableRemarkColumn: 'Remark', + tableEnableColumn: 'Enabled', + tableCreateTimeColumn: 'Create Time', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + detailTabLabel: 'Product BOM Detail', + dialogCodeLabel: 'BOM Code', + dialogCodePlaceholder: 'Please enter BOM code', + dialogVersionLabel: 'BOM Version', + dialogVersionPlaceholder: 'Please enter BOM version', + dialogProductLabel: 'Product', + dialogProductPlaceholder: 'Please select product', + dialogUnitLabel: 'Unit', + dialogUnitPlaceholder: 'Please select unit', + dialogYieldRateLabel: 'Yield Rate %', + dialogYieldRatePlaceholder: 'Please enter yield rate', + dialogRemarkLabel: 'Remark', + dialogRemarkPlaceholder: 'Please enter remark', + dialogEnableLabel: 'Enabled', + dialogCancelButton: 'Cancel', + dialogSubmitButton: 'Confirm', + detailTableIndexColumn: 'No.', + detailTableMaterialColumn: 'Material', + detailTableUsageNumberColumn: 'Usage Quantity', + detailTableUnitColumn: 'Unit', + detailTableLossRateColumn: 'Loss Rate %', + detailTableRemarkColumn: 'Remark', + detailTableOperateColumn: 'Operation', + detailMaterialPlaceholder: 'Please select material', + detailUnitPlaceholder: 'Please select unit', + detailUsageNumberPlaceholder: 'Please enter usage quantity', + detailLossRatePlaceholder: 'Please enter loss rate', + detailRemarkPlaceholder: 'Please enter remark', + detailAddButtonText: 'Add Product BOM Detail', + validatorCodeRequired: 'BOM code can not be empty', + validatorVersionRequired: 'BOM version can not be empty', + validatorProductRequired: 'Product can not be empty', + validatorUnitRequired: 'Unit can not be empty', + validatorEnableRequired: 'Enable status can not be empty', + validatorDetailMaterialRequired: 'Material can not be empty', + validatorDetailBomRequired: 'BOM id can not be empty', + validatorDetailUsageNumberRequired: 'Usage quantity can not be empty' + }, + WorkTeam: { + moduleName: 'Work Team Management', + searchTeamNameLabel: 'Team Name', + searchTeamNamePlaceholder: 'Please enter team name', + searchProcessLabel: 'Process', + searchProcessPlaceholder: 'Please select process', + searchRemarkLabel: 'Remark', + searchRemarkPlaceholder: 'Please enter remark', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + tabsAll: 'All', + tabsDay: 'Day Shift', + tabsNight: 'Night Shift', + tabsLongDay: 'Long Day Shift', + tableTeamNameColumn: 'Team Name', + tableLeaderColumn: 'Leader', + tableGroupTypeColumn: 'Team Type', + tableWorkTimeColumn: 'Working Time', + tableProcessColumn: 'Process', + tableRemarkColumn: 'Remark', + tableEnableColumn: 'Enabled', + tableCreateTimeColumn: 'Create Time', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + detailTabLabel: 'Team Members', + dialogTeamNameLabel: 'Team Name', + dialogTeamNamePlaceholder: 'Please enter team name', + dialogProcessLabel: 'Process', + dialogProcessTooltip: 'Source: Data dictionary - Process', + dialogGroupTypeLabel: 'Team Type', + dialogGroupTypeTooltip: 'Source: Data dictionary - Team Type', + dialogWorkTimeLabel: 'Working Time', + dialogWorkTimeRangeSeparator: 'To', + dialogWorkTimeStartPlaceholder: 'Start Time', + dialogWorkTimeEndPlaceholder: 'End Time', + dialogRemarkLabel: 'Remark', + dialogRemarkPlaceholder: 'Please enter remark', + dialogEnableLabel: 'Enabled', + dialogCancelButton: 'Cancel', + dialogSubmitButton: 'Confirm', + detailAddButtonText: 'Add', + detailTableJobNoColumn: 'Job No.', + detailTableRoleColumn: 'Role', + detailTableRemarkColumn: 'Remark', + detailTableCreateTimeColumn: 'Create Time', + detailTableOperateColumn: 'Operation', + detailDialogJobNoLabel: 'Job No.', + detailDialogJobNoPlaceholder: 'Please select job no.', + detailDialogRoleLabel: 'Role', + detailDialogRoleTooltip: 'Source: Data dictionary - Team Member Role', + detailDialogRemarkLabel: 'Remark', + detailDialogRemarkPlaceholder: 'Please enter remark', + detailDialogMemberSuffix: 'Member', + validatorTeamNameRequired: 'Team name can not be empty', + validatorProcessRequired: 'Process type can not be empty', + validatorGroupTypeRequired: 'Team type can not be empty', + validatorEnableRequired: 'Enable status can not be empty', + validatorDetailUserRequired: 'User id can not be empty', + validatorDetailRoleRequired: 'Role can not be empty', + validatorSelectWorkTeamFirst: 'Please select a work team first' + }, + + ProductUnit: { + moduleName: 'Unit Management', + searchNameLabel: 'Unit Name', + searchNamePlaceholder: 'Please enter unit name', + searchStatusLabel: 'Unit Status', + searchStatusPlaceholder: 'Please select unit status', + searchButtonText: 'Search', + resetButtonText: 'Reset', + addButtonText: 'Add', + exportButtonText: 'Export', + tableNameColumn: 'Unit Name', + tablePrimaryFlagColumn: 'Is Primary Unit', + tableChangeRateColumn: 'Conversion Rate to Primary Unit', + tableStatusColumn: 'Status', + tableCreateTimeColumn: 'Create Time', + tableOperateColumn: 'Operation', + tableEditAction: 'Edit', + tableDeleteAction: 'Delete', + dialogNameLabel: 'Unit Name', + dialogNamePlaceholder: 'Please enter unit name', + dialogPrimaryFlagLabel: 'Is Primary Unit', + dialogPrimaryUnitLabel: 'Related Primary Unit', + dialogPrimaryUnitPlaceholder: 'Please select primary unit', + dialogChangeRateLabel: 'Conversion Rate', + dialogChangeRatePlaceholder: 'Please enter conversion rate', + dialogStatusLabel: 'Unit Status', + dialogCancelButton: 'Cancel', + dialogSubmitButton: 'Confirm', + validatorNameRequired: 'Unit name can not be empty', + validatorStatusRequired: 'Unit status can not be empty', + validatorPrimaryFlagRequired: 'Primary unit flag can not be empty' + } + }, + MoldManagement: { MoldBrand: { code: 'Model Code', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 54e97d2d..b414f0d7 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1998,5 +1998,414 @@ export default { manualTableReferColumn: '参考值', manualTableRemarkColumn: '备注' } + }, + FactoryModeling: { + FactoryStructure: { + moduleName: '厂区结构', + searchCodeLabel: '组织编码', + searchCodePlaceholder: '请输入组织编码', + searchParentLabel: '父组织', + searchParentPlaceholder: '请选择父组织', + searchNameLabel: '组织名称', + searchNamePlaceholder: '请输入组织名称', + searchOrgClassLabel: '组织等级', + searchOrgClassPlaceholder: '请选择组织等级', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + expandButtonText: '展开/折叠', + tableCodeColumn: '组织编码', + tableNameColumn: '组织名称', + tableSortColumn: '显示顺序', + tableMachineColumn: '关联设备', + tableOrgClassColumn: '组织等级', + tableOrgTypeColumn: '工序', + tableCreateTimeColumn: '创建时间', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + dialogCodeLabel: '编码', + dialogCodeTooltip: '厂区结构编码', + dialogCodePlaceholder: '编码保存后自动生成', + dialogParentLabel: '父组织', + dialogParentPlaceholder: '请选择父组织', + dialogNameLabel: '组织名称', + dialogNamePlaceholder: '请输入组织名称', + dialogOrgClassLabel: '组织等级', + dialogSortLabel: '显示顺序', + dialogSortTooltip: '同父级按照显示顺序从小到大排序', + dialogSortPlaceholder: '请输入显示顺序', + dialogOrgTypeLabel: '工序', + dialogOrgTypeTooltip: '来源:数据字典-工序', + dialogOrgTypePlaceholder: '请选择类型', + dialogMachineLabel: '关联设备', + dialogMachinePlaceholder: '请选择设备', + dialogCancelButton: '取 消', + dialogSubmitButton: '确 定', + orgTreeRootName: '顶级组织', + validatorNameRequired: '组织名称不能为空', + validatorParentRequired: '父组织不能为空', + validatorOrgClassRequired: '组织等级不能为空' + }, + FactoryWorker: { + moduleName: '工位人员', + searchNameLabel: '组织名称', + searchNamePlaceholder: '请输入组织名称', + searchStatusLabel: '组织状态', + searchStatusPlaceholder: '请选择组织状态', + searchButtonText: '搜索', + resetButtonText: '重置', + exportButtonText: '导出', + expandButtonText: '展开/折叠', + tabsZhijiang: '制浆', + tabsChengxing: '成型', + tabsHonggan: '烘干', + tabsZhuanyi: '转移', + tabsJiashi: '加湿', + tabsReya: '热压', + tabsQiebian: '切边', + tabsPanjian: '品检', + tabsDabao: '打包', + tabsTiebiao: '贴标', + tabsPinyin: '品印', + tabsSufeng: '塑封', + tabsAll: '所有', + tableNameColumn: '组织名称', + tableOrgClassColumn: '组织等级', + tableOrgTypeColumn: '类型', + tableWorkerColumn: '今日工人', + tableOperateColumn: '操作', + tableDispatchAction: '派工', + exportFileName: '产线工位.xls' + }, + ProductCategory: { + moduleName: '产品物料分类', + searchNameLabel: '分类名称', + searchNamePlaceholder: '请输入分类名称', + searchStatusLabel: '开启状态', + searchStatusPlaceholder: '请选择开启状态', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + expandButtonText: '展开/折叠', + tableCodeColumn: '分类编码', + tableNameColumn: '分类名称', + tableSortColumn: '排序', + tableStatusColumn: '状态', + tableCreateTimeColumn: '创建时间', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + dialogParentLabel: '上级编号', + dialogParentPlaceholder: '请选择上级编号', + dialogCodeLabel: '编码', + dialogCodePlaceholder: '请输入编码', + dialogNameLabel: '名称', + dialogNamePlaceholder: '请输入名称', + dialogSortLabel: '排序', + dialogSortPlaceholder: '请输入排序', + dialogStatusLabel: '状态', + dialogCancelButton: '取 消', + dialogSubmitButton: '确 定', + treeRootName: '顶级产品分类', + validatorParentRequired: '上级编号不能为空', + validatorNameRequired: '名称不能为空', + validatorCodeRequired: '编码不能为空', + validatorSortRequired: '排序不能为空', + validatorStatusRequired: '状态不能为空' + }, + ProductInformation: { + moduleName: '产品物料信息', + searchNameLabel: '名称', + searchNamePlaceholder: '请输入名称', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + tableBarCodeColumn: '编码', + tableNameColumn: '名称', + tableStandardColumn: '规格', + tableCategoryColumn: '分类', + tableUnitColumn: '单位', + tableStatusColumn: '状态', + tableCreateTimeColumn: '创建时间', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + dialogBarCodeLabel: '编码', + dialogBarCodePlaceholder: '请输入编码', + dialogNameLabel: '名称', + dialogNamePlaceholder: '请输入名称', + dialogCategoryLabel: '分类', + dialogCategoryPlaceholder: '请选择分类', + dialogUnitLabel: '单位', + dialogUnitPlaceholder: '请选择单位', + dialogStandardLabel: '规格', + dialogStandardPlaceholder: '请输入规格', + dialogExpiryDayLabel: '保质期天数', + dialogExpiryDayPlaceholder: '请输入保质期天数', + dialogWeightLabel: '重量(g)', + dialogWeightPlaceholder: '请输入重量(g)', + dialogPurchasePriceLabel: '采购价格', + dialogPurchasePricePlaceholder: '请输入采购价格,单位:元', + dialogSalePriceLabel: '销售价格', + dialogSalePricePlaceholder: '请输入销售价格,单位:元', + dialogMinPriceLabel: '最低价格', + dialogMinPricePlaceholder: '请输入最低价格,单位:元', + dialogStatusLabel: '状态', + dialogRemarkLabel: '备注', + dialogRemarkPlaceholder: '请输入备注', + dialogCancelButton: '取 消', + dialogSubmitButton: '确 定', + validatorNameRequired: '产品名称不能为空', + validatorBarCodeRequired: '产品条码不能为空', + validatorCategoryRequired: '产品分类编号不能为空', + validatorUnitRequired: '单位编号不能为空', + validatorStatusRequired: '产品状态不能为空' + }, + AutocodeRule: { + moduleName: '编码规则', + searchRuleCodeLabel: '规则编码', + searchRuleCodePlaceholder: '请输入规则编码', + searchRuleNameLabel: '规则名称', + searchRuleNamePlaceholder: '请输入规则名称', + searchRuleDescLabel: '描述', + searchRuleDescPlaceholder: '请输入描述', + searchRemarkLabel: '备注', + searchRemarkPlaceholder: '请输入备注', + searchIsEnableLabel: '是否启用', + searchIsEnablePlaceholder: '请选择是否启用', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + tableRuleCodeColumn: '规则编码', + tableRuleNameColumn: '规则名称', + tableRuleDescColumn: '描述', + tableMaxLengthColumn: '最大长度', + tableIsPaddedColumn: '是否补齐', + tablePaddedCharColumn: '补齐字符', + tablePaddedMethodColumn: '补齐方式', + tableIsEnableColumn: '是否启用', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + tableTestCodeAction: '测试编码', + listPartTabLabel: '编码组成', + dialogPartTabLabel: '编码规则组成', + exportFilename: '编码规则.xls', + dialogRuleCodeLabel: '规则编码', + dialogRuleCodePlaceholder: '请输入规则编码', + dialogRuleNameLabel: '规则名称', + dialogRuleNamePlaceholder: '请输入规则名称', + dialogRuleDescLabel: '描述', + dialogRuleDescPlaceholder: '请输入描述', + dialogMaxLengthLabel: '最大长度', + dialogMaxLengthPlaceholder: '请输入最大长度', + dialogIsPaddedLabel: '是否补齐', + dialogPaddedCharLabel: '补齐字符', + dialogPaddedCharPlaceholder: '请输入补齐字符', + dialogPaddedMethodLabel: '补齐方式', + dialogRemarkLabel: '备注', + dialogRemarkPlaceholder: '请输入备注', + dialogIsEnableLabel: '是否启用', + validatorIsEnableRequired: '是否启用不能为空', + validatorRuleIdRequired: '规则ID不能为空', + validatorPartIndexRequired: '分段序号不能为空', + validatorPartLengthRequired: '分段长度不能为空', + partTableIndexColumn: '序号', + partTableIdColumn: 'ID', + partTablePartIndexColumn: '分段序号', + partTablePartTypeColumn: '分段类型', + partTablePartCodeColumn: '分段编号', + partTablePartNameColumn: '分段名称', + partTablePartLengthColumn: '分段长度', + partTableDatetimeFormatColumn: '日期时间格式', + partTableInputCharacterColumn: '输入字符', + partTableFixCharacterColumn: '固定字符', + partTableSeriaStartNoColumn: '流水号起始值', + partTableSeriaStepColumn: '流水号步长', + partTableSeriaNowNoColumn: '流水号当前值', + partTableCycleFlagColumn: '流水号是否循环', + partTableCycleMethodColumn: '循环方式', + partTableRemarkColumn: '备注', + partTableIsEnableColumn: '是否启用', + partTableCreateTimeColumn: '创建时间', + partTableOperateColumn: '操作', + partPlaceholderPartIndex: '请输入分段序号', + partPlaceholderPartCode: '请输入分段编号', + partPlaceholderPartName: '请输入分段名称', + partPlaceholderPartLength: '请输入分段长度', + partPlaceholderDatetimeFormat: '请输入日期时间格式', + partPlaceholderInputCharacter: '请输入输入字符', + partPlaceholderFixCharacter: '请输入固定字符', + partPlaceholderSeriaStartNo: '请输入流水号起始值', + partPlaceholderSeriaStep: '请输入流水号步长', + partPlaceholderSeriaNowNo: '请输入流水号当前值', + partPlaceholderRemark: '请输入备注', + addPartButtonText: '添加编码规则组成' + }, + ProductBOM: { + moduleName: '产品BOM', + searchCodeLabel: 'BOM编码', + searchCodePlaceholder: '请输入BOM编码', + searchProductLabel: '产品', + searchProductPlaceholder: '请选择产品', + searchRemarkLabel: '备注', + searchRemarkPlaceholder: '请输入备注', + searchEnableLabel: '开启状态', + searchEnablePlaceholder: '请选择是否启用', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + tableCodeColumn: 'BOM编码', + tableVersionColumn: 'BOM版本', + tableProductColumn: '产品', + tableUnitColumn: '单位', + tableYieldRateColumn: '成品率%', + tableRemarkColumn: '备注', + tableEnableColumn: '是否启用', + tableCreateTimeColumn: '创建时间', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + detailTabLabel: '产品BOM明细', + dialogCodeLabel: 'BOM编码', + dialogCodePlaceholder: '请输入BOM编码', + dialogVersionLabel: 'BOM版本', + dialogVersionPlaceholder: '请输入BOM版本', + dialogProductLabel: '产品', + dialogProductPlaceholder: '请选择产品', + dialogUnitLabel: '单位', + dialogUnitPlaceholder: '请选择单位', + dialogYieldRateLabel: '成品率%', + dialogYieldRatePlaceholder: '请输入成品率', + dialogRemarkLabel: '备注', + dialogRemarkPlaceholder: '请输入备注', + dialogEnableLabel: '是否启用', + dialogCancelButton: '取 消', + dialogSubmitButton: '确 定', + detailTableIndexColumn: '序号', + detailTableMaterialColumn: '原料', + detailTableUsageNumberColumn: '用量', + detailTableUnitColumn: '单位', + detailTableLossRateColumn: '损耗率%', + detailTableRemarkColumn: '备注', + detailTableOperateColumn: '操作', + detailMaterialPlaceholder: '请选择原料', + detailUnitPlaceholder: '请选择单位', + detailUsageNumberPlaceholder: '请输入用量', + detailLossRatePlaceholder: '请输入损耗率', + detailRemarkPlaceholder: '请输入备注', + detailAddButtonText: '添加产品BOM明细', + validatorCodeRequired: 'BOM编码不能为空', + validatorVersionRequired: 'BOM版本不能为空', + validatorProductRequired: '产品不能为空', + validatorUnitRequired: '单位不能为空', + validatorEnableRequired: '是否启用不能为空', + validatorDetailMaterialRequired: '原料不能为空', + validatorDetailBomRequired: 'BOM 不能为空', + validatorDetailUsageNumberRequired: '用量不能为空' + }, + WorkTeam: { + moduleName: '班组管理', + searchTeamNameLabel: '班组名称', + searchTeamNamePlaceholder: '请输入班组名称', + searchProcessLabel: '工序', + searchProcessPlaceholder: '请选择工序', + searchRemarkLabel: '备注', + searchRemarkPlaceholder: '请输入备注', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + tabsAll: '所有', + tabsDay: '白班', + tabsNight: '夜班', + tabsLongDay: '长白班', + tableTeamNameColumn: '班组名称', + tableLeaderColumn: '组长', + tableGroupTypeColumn: '班组类型', + tableWorkTimeColumn: '工作时间', + tableProcessColumn: '工序', + tableRemarkColumn: '备注', + tableEnableColumn: '是否启用', + tableCreateTimeColumn: '创建时间', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + detailTabLabel: '班组成员', + dialogTeamNameLabel: '班组名称', + dialogTeamNamePlaceholder: '请输入班组名称', + dialogProcessLabel: '工序', + dialogProcessTooltip: '来源:数据字典-工序', + dialogGroupTypeLabel: '班组类型', + dialogGroupTypeTooltip: '来源:数据字典-班组类型', + dialogWorkTimeLabel: '工作时间', + dialogWorkTimeRangeSeparator: '至', + dialogWorkTimeStartPlaceholder: '开始时间', + dialogWorkTimeEndPlaceholder: '结束时间', + dialogRemarkLabel: '备注', + dialogRemarkPlaceholder: '请输入备注', + dialogEnableLabel: '是否启用', + dialogCancelButton: '取 消', + dialogSubmitButton: '确 定', + detailAddButtonText: '新增', + detailTableJobNoColumn: '工号', + detailTableRoleColumn: '角色', + detailTableRemarkColumn: '备注', + detailTableCreateTimeColumn: '创建时间', + detailTableOperateColumn: '操作', + detailDialogJobNoLabel: '工号', + detailDialogJobNoPlaceholder: '请选择工号', + detailDialogRoleLabel: '角色', + detailDialogRoleTooltip: '来源:数据字典-班组成员角色', + detailDialogRemarkLabel: '备注', + detailDialogRemarkPlaceholder: '请输入备注', + detailDialogMemberSuffix: '成员', + validatorTeamNameRequired: '班组名称不能为空', + validatorProcessRequired: '工序类型不能为空', + validatorGroupTypeRequired: '班组类型不能为空', + validatorEnableRequired: '是否启用不能为空', + validatorDetailUserRequired: '用户ID不能为空', + validatorDetailRoleRequired: '角色不能为空', + validatorSelectWorkTeamFirst: '请选择一个生产班组' + }, + + ProductUnit: { + moduleName: '单位管理', + searchNameLabel: '单位名称', + searchNamePlaceholder: '请输入单位名称', + searchStatusLabel: '单位状态', + searchStatusPlaceholder: '请选择单位状态', + searchButtonText: '搜索', + resetButtonText: '重置', + addButtonText: '新增', + exportButtonText: '导出', + tableNameColumn: '单位名称', + tablePrimaryFlagColumn: '是否主单位', + tableChangeRateColumn: '与主单位换算比例', + tableStatusColumn: '状态', + tableCreateTimeColumn: '创建时间', + tableOperateColumn: '操作', + tableEditAction: '编辑', + tableDeleteAction: '删除', + dialogNameLabel: '单位名称', + dialogNamePlaceholder: '请输入单位名称', + dialogPrimaryFlagLabel: '是否主单位', + dialogPrimaryUnitLabel: '关联主单位', + dialogPrimaryUnitPlaceholder: '请选择主单位', + dialogChangeRateLabel: '换算比例', + dialogChangeRatePlaceholder: '请输入换算比例', + dialogStatusLabel: '单位状态', + dialogCancelButton: '取 消', + dialogSubmitButton: '确 定', + validatorNameRequired: '单位名称不能为空', + validatorStatusRequired: '单位状态不能为空', + validatorPrimaryFlagRequired: '是否主单位不能为空' + } } } diff --git a/src/views/erp/autocode/AutocodeIndex.vue b/src/views/erp/autocode/AutocodeIndex.vue index 21767d5d..c79471e5 100644 --- a/src/views/erp/autocode/AutocodeIndex.vue +++ b/src/views/erp/autocode/AutocodeIndex.vue @@ -6,49 +6,49 @@ :model="queryParams" ref="queryFormRef" :inline="true" - label-width="68px" + min-label-width="68px" > - + - + - + - + - + @@ -61,15 +61,15 @@ - 搜索 - 重置 + {{ t('FactoryModeling.AutocodeRule.searchButtonText') }} + {{ t('FactoryModeling.AutocodeRule.resetButtonText') }} - 新增 + {{ t('FactoryModeling.AutocodeRule.addButtonText') }} - 导出 + {{ t('FactoryModeling.AutocodeRule.exportButtonText') }} @@ -91,36 +91,36 @@ - - - - - + + + + + - - + + - + - + @@ -257,7 +257,7 @@ const handleExport = async () => { // 发起导出 exportLoading.value = true const data = await AutocodeRuleApi.exportAutocodeRule(queryParams) - download.excel(data, '编码规则.xls') + download.excel(data, t('FactoryModeling.AutocodeRule.exportFilename')) } catch { } finally { exportLoading.value = false diff --git a/src/views/erp/autocode/AutocodeRuleForm.vue b/src/views/erp/autocode/AutocodeRuleForm.vue index 7a6403a0..3dea51d5 100644 --- a/src/views/erp/autocode/AutocodeRuleForm.vue +++ b/src/views/erp/autocode/AutocodeRuleForm.vue @@ -1,5 +1,5 @@ @@ -99,7 +118,9 @@ const formData = ref({ isEnable: undefined }) const formRules = reactive({ - isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }] + isEnable: [ + { required: true, message: t('FactoryModeling.AutocodeRule.validatorIsEnableRequired'), trigger: 'blur' } + ] }) const formRef = ref() // 表单 Ref @@ -174,4 +195,4 @@ const resetForm = () => { } formRef.value?.resetFields() } - \ No newline at end of file + diff --git a/src/views/erp/autocode/components/AutocodePartForm.vue b/src/views/erp/autocode/components/AutocodePartForm.vue index 9eecd03d..ee89b1eb 100644 --- a/src/views/erp/autocode/components/AutocodePartForm.vue +++ b/src/views/erp/autocode/components/AutocodePartForm.vue @@ -8,15 +8,18 @@ :inline-message="true" > - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -155,23 +193,33 @@ - + 添加编码规则组成 + + {{ t('FactoryModeling.AutocodeRule.addPartButtonText') }} \ No newline at end of file + diff --git a/src/views/erp/autocode/components/AutocodePartList.vue b/src/views/erp/autocode/components/AutocodePartList.vue index 9c6881e6..ddd03b5c 100644 --- a/src/views/erp/autocode/components/AutocodePartList.vue +++ b/src/views/erp/autocode/components/AutocodePartList.vue @@ -2,40 +2,100 @@ - - - + + + - - - - - - - - - - + + + + + + + + + + - + - - + + { onMounted(() => { getList() }) - \ No newline at end of file + diff --git a/src/views/erp/product/category/ProductCategoryForm.vue b/src/views/erp/product/category/ProductCategoryForm.vue index ab512f91..98d74133 100644 --- a/src/views/erp/product/category/ProductCategoryForm.vue +++ b/src/views/erp/product/category/ProductCategoryForm.vue @@ -4,29 +4,29 @@ ref="formRef" :model="formData" :rules="formRules" - label-width="100px" + label-width="120px" v-loading="formLoading" > - + - - + + - - + + - - + + - + @@ -69,11 +69,11 @@ const formData = ref({ status: CommonStatusEnum.ENABLE }) const formRules = reactive({ - parentId: [{ required: true, message: '上级编号不能为空', trigger: 'blur' }], - name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], - code: [{ required: true, message: '编码不能为空', trigger: 'blur' }], - sort: [{ required: true, message: '排序不能为空', trigger: 'blur' }], - status: [{ required: true, message: '状态不能为空', trigger: 'blur' }] + parentId: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorParentRequired'), trigger: 'blur' }], + name: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorNameRequired'), trigger: 'blur' }], + code: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorCodeRequired'), trigger: 'blur' }], + sort: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorSortRequired'), trigger: 'blur' }], + status: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorStatusRequired'), trigger: 'blur' }] }) const formRef = ref() // 表单 Ref const productCategoryTree = ref() // 树形结构 @@ -138,7 +138,7 @@ const resetForm = () => { const getProductCategoryTree = async () => { productCategoryTree.value = [] const data = await ProductCategoryApi.getProductCategoryList() - const root: Tree = { id: 0, name: '顶级产品分类', children: [] } + const root: Tree = { id: 0, name: t('FactoryModeling.ProductCategory.treeRootName'), children: [] } root.children = handleTree(data, 'id', 'parentId') productCategoryTree.value.push(root) } diff --git a/src/views/erp/product/category/index.vue b/src/views/erp/product/category/index.vue index b88f664e..fd50c91d 100644 --- a/src/views/erp/product/category/index.vue +++ b/src/views/erp/product/category/index.vue @@ -8,21 +8,21 @@ :model="queryParams" ref="queryFormRef" :inline="true" - label-width="68px" + label-width="120px" > - + - + @@ -35,15 +35,15 @@ - 搜索 - 重置 + {{ t('FactoryModeling.ProductCategory.searchButtonText') }} + {{ t('FactoryModeling.ProductCategory.resetButtonText') }} - 新增 + {{ t('FactoryModeling.ProductCategory.addButtonText') }} - 导出 + {{ t('FactoryModeling.ProductCategory.exportButtonText') }} - 展开/折叠 + {{ t('FactoryModeling.ProductCategory.expandButtonText') }} @@ -72,22 +72,22 @@ :default-expand-all="isExpandAll" v-if="refreshTable" > - - - - + + + + - + diff --git a/src/views/erp/product/product/ProductForm.vue b/src/views/erp/product/product/ProductForm.vue index be37cbc4..7f223bcd 100644 --- a/src/views/erp/product/product/ProductForm.vue +++ b/src/views/erp/product/product/ProductForm.vue @@ -5,36 +5,36 @@ ref="formRef" :model="formData" :rules="formRules" - label-width="100px" + label-width="120px" v-loading="formLoading" > - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - - + + @@ -164,11 +164,11 @@ const formData = ref({ safetyNumber: undefined }) const formRules = reactive({ - name: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }], - barCode: [{ required: true, message: '产品条码不能为空', trigger: 'blur' }], - categoryId: [{ required: true, message: '产品分类编号不能为空', trigger: 'blur' }], - unitId: [{ required: true, message: '单位编号不能为空', trigger: 'blur' }], - status: [{ required: true, message: '产品状态不能为空', trigger: 'blur' }] + name: [{ required: true, message: t('FactoryModeling.ProductInformation.validatorNameRequired'), trigger: 'blur' }], + barCode: [{ required: true, message: t('FactoryModeling.ProductInformation.validatorBarCodeRequired'), trigger: 'blur' }], + categoryId: [{ required: true, message: t('FactoryModeling.ProductInformation.validatorCategoryRequired'), trigger: 'blur' }], + unitId: [{ required: true, message: t('FactoryModeling.ProductInformation.validatorUnitRequired'), trigger: 'blur' }], + status: [{ required: true, message: t('FactoryModeling.ProductInformation.validatorStatusRequired'), trigger: 'blur' }] }) const formRef = ref() // 表单 Ref const categoryList = ref([]) // 产品分类列表 diff --git a/src/views/erp/product/product/index.vue b/src/views/erp/product/product/index.vue index 789b3d62..adee6a47 100644 --- a/src/views/erp/product/product/index.vue +++ b/src/views/erp/product/product/index.vue @@ -9,27 +9,27 @@ :model="queryParams" ref="queryFormRef" :inline="true" - label-width="68px" + label-width="120px" > - + - 搜索 - 重置 + {{ t('FactoryModeling.ProductInformation.searchButtonText') }} + {{ t('FactoryModeling.ProductInformation.resetButtonText') }} - 新增 + {{ t('FactoryModeling.ProductInformation.addButtonText') }} - 导出 + {{ t('FactoryModeling.ProductInformation.exportButtonText') }} @@ -63,24 +63,24 @@ --> - - - - - - + + + + + + - + diff --git a/src/views/erp/product/unit/ProductUnitForm.vue b/src/views/erp/product/unit/ProductUnitForm.vue index 292dbf38..501fc5be 100644 --- a/src/views/erp/product/unit/ProductUnitForm.vue +++ b/src/views/erp/product/unit/ProductUnitForm.vue @@ -4,13 +4,17 @@ ref="formRef" :model="formData" :rules="formRules" - label-width="100px" + label-width="120px" v-loading="formLoading" > - - + + - + - - - - + + + + - - + + - + @@ -82,9 +104,27 @@ const formData = ref({ changeRate: undefined, }) const formRules = reactive({ - name: [{ required: true, message: '单位名字不能为空', trigger: 'blur' }], - status: [{ required: true, message: '单位状态不能为空', trigger: 'blur' }], - primaryFlag: [{ required: true, message: '是否主单位不能为空', trigger: 'blur' }], + name: [ + { + required: true, + message: t('FactoryModeling.ProductUnit.validatorNameRequired'), + trigger: 'blur' + } + ], + status: [ + { + required: true, + message: t('FactoryModeling.ProductUnit.validatorStatusRequired'), + trigger: 'blur' + } + ], + primaryFlag: [ + { + required: true, + message: t('FactoryModeling.ProductUnit.validatorPrimaryFlagRequired'), + trigger: 'blur' + } + ] }) const formRef = ref() // 表单 Ref diff --git a/src/views/erp/product/unit/index.vue b/src/views/erp/product/unit/index.vue index 9cedd84e..d8fd7b71 100644 --- a/src/views/erp/product/unit/index.vue +++ b/src/views/erp/product/unit/index.vue @@ -6,21 +6,21 @@ :model="queryParams" ref="queryFormRef" :inline="true" - label-width="68px" + label-width="120px" > - + - + @@ -33,15 +33,22 @@ - 搜索 - 重置 + + + {{ t('FactoryModeling.ProductUnit.searchButtonText') }} + + + + {{ t('FactoryModeling.ProductUnit.resetButtonText') }} + - 新增 + + {{ t('FactoryModeling.ProductUnit.addButtonText') }} - 导出 + + {{ t('FactoryModeling.ProductUnit.exportButtonText') }} @@ -59,23 +67,35 @@ - - + + - - + + - + diff --git a/src/views/mes/bom/BomForm.vue b/src/views/mes/bom/BomForm.vue index fa15e694..f5bac62d 100644 --- a/src/views/mes/bom/BomForm.vue +++ b/src/views/mes/bom/BomForm.vue @@ -4,21 +4,21 @@ ref="formRef" :model="formData" :rules="formRules" - label-width="100px" + label-width="120px" v-loading="formLoading" > - - + + - - + + - + - - + + - + - - + + - + - + @@ -107,11 +107,11 @@ const formData = ref({ isEnable: undefined }) const formRules = reactive({ - code: [{ required: true, message: 'BOM编码不能为空', trigger: 'blur' }], - version: [{ required: true, message: 'BOM版本不能为空', trigger: 'blur' }], - productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }], - unitId: [{ required: true, message: '单位不能为空', trigger: 'blur' }], - isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }] + code: [{ required: true, message: t('FactoryModeling.ProductBOM.validatorCodeRequired'), trigger: 'blur' }], + version: [{ required: true, message: t('FactoryModeling.ProductBOM.validatorVersionRequired'), trigger: 'blur' }], + productId: [{ required: true, message: t('FactoryModeling.ProductBOM.validatorProductRequired'), trigger: 'blur' }], + unitId: [{ required: true, message: t('FactoryModeling.ProductBOM.validatorUnitRequired'), trigger: 'blur' }], + isEnable: [{ required: true, message: t('FactoryModeling.ProductBOM.validatorEnableRequired'), trigger: 'blur' }] }) const formRef = ref() // 表单 Ref diff --git a/src/views/mes/bom/components/BomDetailForm.vue b/src/views/mes/bom/components/BomDetailForm.vue index 26b7c57a..66de58bf 100644 --- a/src/views/mes/bom/components/BomDetailForm.vue +++ b/src/views/mes/bom/components/BomDetailForm.vue @@ -8,15 +8,15 @@ :inline-message="true" > - - + + - +