style:模具管理-适配国际化

main
黄伟杰 1 week ago
parent ff04961d4c
commit c1516c2afb

@ -980,5 +980,459 @@ export default {
validatorItemProductRequired: 'Spare part can not be empty',
validatorItemCountRequired: 'Spare part quantity can not be empty'
}
},
MoldManagement: {
MoldBrand: {
code: 'Model Code',
name: 'Model Name',
moldType: 'Specification',
orgType: 'Process',
moldSize: 'Cavity Number',
useTime: 'Expected Life (Times)',
remark: 'Remark',
createTime: 'Create Time',
operate: 'Operate',
tabMold: 'Mold',
emptyTip: 'Please select a mold model in the above list first',
exportFilename: 'MoldBrand.xls',
placeholderCode: 'Please input model code',
placeholderName: 'Please input model name',
placeholderOrgType: 'Please select process',
placeholderMoldType: 'Please input specification',
placeholderMoldSize: 'Please input cavity number',
placeholderUseTime: 'Input expected life (times)',
placeholderRemark: 'Please input remark',
validatorCodeRequired: 'Model code can not be empty',
validatorNameRequired: 'Model name can not be empty',
validatorMoldTypeRequired: 'Specification can not be empty',
validatorProductRequired: 'Product id can not be empty',
validatorMoldSizeRequired: 'Cavity number can not be empty',
orgTypeTooltip: 'Source: Data dictionary - Process'
},
Mold: {
code: 'Mold Code',
name: 'Mold Name',
unit: 'Unit',
inTime: 'Stock In Time',
status: 'Status',
images: 'Mold Images',
remark: 'Remark',
isEnable: 'Is Enable',
fileUrl: 'File',
machineName: 'Machine',
useTime: 'Used Times',
moldSize: 'Cavity Number',
createTime: 'Create Time',
operate: 'Operate',
detail: 'Detail',
add: 'Add',
edit: 'Edit',
delete: 'Delete',
placeholderCode: 'Please input mold code',
placeholderName: 'Please input mold name',
placeholderUnit: 'Please select unit',
placeholderInTime: 'Select stock in time',
placeholderRemark: 'Please input remark',
validatorCodeRequired: 'Mold code can not be empty',
validatorNameRequired: 'Mold name can not be empty',
validatorUnitRequired: 'Unit can not be empty',
validatorInTimeRequired: 'Stock in time can not be empty',
validatorIsEnableRequired: 'Is enable can not be empty',
validatorBrandRequired: 'Model can not be empty',
selectBrandTip: 'Please select a mold model',
statusTooltip: 'Source: Data dictionary - Mold status'
},
MoldReturn: {
moduleName: 'Mold Stock In',
no: 'Stock In No',
mold: 'Mold',
moldInfo: 'Mold Info',
inTime: 'Stock In Time',
warehouse: 'Warehouse',
creator: 'Creator',
status: 'Status',
remark: 'Remark',
select: 'Select',
operate: 'Operate',
detail: 'Detail',
edit: 'Edit',
approve: 'Approve',
unapprove: 'Unapprove',
delete: 'Delete',
export: 'Export',
add: 'Add',
inType: 'Stock In Type',
inNo: 'Stock In No',
inTimeSingle: 'Stock In Time',
remarkSingle: 'Remark',
attachment: 'Attachment',
itemListTitle: 'Mold Stock In List',
itemIndex: 'No',
itemWarehouseName: 'Warehouse Name',
itemMoldName: 'Mold Name',
itemStockCount: 'Stock',
itemMoldCode: 'Mold Code',
itemUnitName: 'Unit',
itemCount: 'Quantity',
itemRemark: 'Remark',
itemOperate: 'Operate',
itemAddButton: 'Add Stock In Mold',
sumLabel: 'Total',
exportFilename: 'MoldStockIn.xls',
placeholderNo: 'Please input stock in no',
placeholderMold: 'Please select mold',
placeholderInTimeStart: 'Start Date',
placeholderInTimeEnd: 'End Date',
placeholderWarehouse: 'Please select warehouse',
placeholderCreator: 'Please select creator',
placeholderStatus: 'Please select status',
placeholderRemark: 'Please input remark',
placeholderInType: 'Please select stock in type',
placeholderInTime: 'Select stock in time',
placeholderInNoAuto: 'Auto generated when saved',
validatorInTimeRequired: 'Stock in time can not be empty',
validatorInTypeRequired: 'Stock in type can not be empty',
validatorItemInIdRequired: 'Stock in id can not be empty',
validatorItemWarehouseRequired: 'Warehouse can not be empty',
validatorItemMoldRequired: 'Mold can not be empty',
validatorItemCountRequired: 'Quantity can not be empty',
approveConfirm: 'Confirm approve this stock in order?',
unapproveConfirm: 'Confirm unapprove this stock in order?',
approveSuccess: 'Approve successful',
unapproveSuccess: 'Unapprove successful'
},
MoldGet: {
moduleName: 'Mold Stock Out',
no: 'Mold Order No',
mold: 'Mold',
outTime: 'Stock Out Time',
warehouse: 'Warehouse',
creator: 'Creator',
status: 'Status',
remark: 'Remark',
select: 'Select',
operate: 'Operate',
detail: 'Detail',
edit: 'Edit',
approve: 'Approve',
unapprove: 'Unapprove',
delete: 'Delete',
export: 'Export',
add: 'Add',
outType: 'Stock Out Type',
outNo: 'Stock Out No',
outTimeSingle: 'Stock Out Time',
remarkSingle: 'Remark',
attachment: 'Attachment',
itemListTitle: 'Mold Stock Out List',
itemIndex: 'No',
itemWarehouseName: 'Warehouse Name',
itemMoldName: 'Mold Name',
itemStockCount: 'Stock',
itemMoldCode: 'Mold Code',
itemUnitName: 'Unit',
itemCount: 'Quantity',
itemRemark: 'Remark',
itemOperate: 'Operate',
itemAddButton: 'Add Stock Out Mold',
sumLabel: 'Total',
exportFilename: 'MoldStockOut.xls',
placeholderNo: 'Please input mold order no',
placeholderMold: 'Please select mold',
placeholderOutTimeStart: 'Start Date',
placeholderOutTimeEnd: 'End Date',
placeholderWarehouse: 'Please select warehouse',
placeholderCreator: 'Please select creator',
placeholderStatus: 'Please select status',
placeholderRemark: 'Please input remark',
placeholderOutType: 'Please select stock out type',
placeholderOutTime: 'Select stock out time',
placeholderOutNoAuto: 'Auto generated when saved',
validatorOutTimeRequired: 'Stock out time can not be empty',
validatorOutTypeRequired: 'Stock out type can not be empty',
validatorItemOutIdRequired: 'Stock out id can not be empty',
validatorItemWarehouseRequired: 'Warehouse can not be empty',
validatorItemMoldRequired: 'Mold can not be empty',
validatorItemCountRequired: 'Quantity can not be empty'
},
MoldInspectionItems: {
moduleName: 'Inspection Items',
code: 'Code',
name: 'Name',
inspectionMethod: 'Inspection Method',
valueType: 'Value Type',
judgmentCriteria: 'Judgment Criteria',
isEnable: 'Is Enable',
creatorName: 'Creator',
createTime: 'Create Time',
operate: 'Operate',
index: 'Index',
add: 'Add',
batchDelete: 'Batch Delete',
export: 'Export',
edit: 'Edit',
delete: 'Delete',
exportFilename: 'InspectionItems.xls',
placeholderCode: 'Please input code',
placeholderName: 'Please input name',
placeholderJudgmentCriteria: 'Please input judgment criteria',
placeholderSubjectCode: 'Please input item code',
placeholderSubjectName: 'Please input item name',
placeholderInspectionMethod: 'Please select inspection method',
placeholderValueType: 'Please select value type',
placeholderIsEnable: 'Please select enable status',
placeholderJudgmentCriteriaForm: 'Please input judgment criteria',
validatorSubjectCodeRequired: 'Item code can not be empty',
validatorSubjectNameRequired: 'Item name can not be empty',
validatorInspectionMethodRequired: 'Inspection method can not be empty',
validatorValueTypeRequired: 'Value type can not be empty',
validatorJudgmentCriteriaRequired: 'Judgment criteria can not be empty',
validatorIsEnableRequired: 'Enable status can not be empty',
selectDeleteTip: 'Please select the data to delete'
},
MoldInspectionPlan: {
moduleName: 'Inspection Plan',
planName: 'Plan Name',
planType: 'Plan Type',
planTypeMaintain: 'Maintenance',
planTypeInspect: 'Inspection',
description: 'Description',
creatorName: 'Creator',
createTime: 'Create Time',
updateTime: 'Update Time',
operate: 'Operate',
index: 'Index',
subjectCode: 'Item Code',
subjectName: 'Related Items',
inspectionMethod: 'Inspection Method',
judgmentCriteria: 'Judgment Criteria',
add: 'Add',
edit: 'Edit',
delete: 'Delete',
batchDelete: 'Batch Delete',
export: 'Export',
placeholderPlanName: 'Please input plan name',
placeholderDescription: 'Please input description',
placeholderPlanType: 'Please select plan type',
placeholderSubjectName: 'Please input item name',
placeholderSubjectDescription: 'Please input description',
placeholderSubjectSelect: 'Please select related items',
selectDeleteTip: 'Please select data to delete',
exportFilename: 'MoldInspectionPlan.xls',
validatorPlanNameRequired: 'Plan name can not be empty',
validatorPlanTypeRequired: 'Plan type can not be empty'
},
MoldRepair: {
moduleName: 'Mold Repair',
repairCode: 'Repair Order No',
repairName: 'Repair Order',
mold: 'Mold',
moldCode: 'Mold Code',
moldName: 'Mold Name',
repairUser: 'Repair User',
confirmUser: 'Acceptance User',
requireDate: 'Request Date',
finishDate: 'Finish Date',
confirmDate: 'Acceptance Date',
repairResult: 'Repair Result',
status: 'Order Status',
statusPending: 'Pending',
statusDone: 'Completed',
acceptUser: 'Repair User',
confirmUserShort: 'Acceptance User',
creator: 'Creator',
createTime: 'Create Time',
updateTime: 'Update Time',
operate: 'Operate',
index: 'Index',
remark: 'Remark',
listTitle: 'Mold Repair Records',
add: 'Add',
edit: 'Edit',
delete: 'Delete',
batchDelete: 'Batch Delete',
export: 'Export',
exportFilename: 'MoldRepairRecords.xls',
repair: 'Repair',
placeholderRepairCode: 'Please input repair order no',
placeholderRepairName: 'Please input repair order name',
placeholderMoldCode: 'Please input mold code',
placeholderMoldName: 'Please input mold name',
placeholderRequireDateStart: 'Start Date',
placeholderRequireDateEnd: 'End Date',
placeholderFinishDateStart: 'Start Date',
placeholderFinishDateEnd: 'End Date',
placeholderConfirmDateStart: 'Start Date',
placeholderConfirmDateEnd: 'End Date',
placeholderRepairUser: 'Please input repair user',
placeholderStatus: 'Please select order status',
placeholderMold: 'Please select mold',
placeholderAcceptUser: 'Please select repair user',
placeholderConfirmUser: 'Please select acceptance user',
placeholderRequireDate: 'Select request date',
placeholderFinishDate: 'Select finish date',
placeholderConfirmDate: 'Select acceptance date',
placeholderMoldNameAuto: 'Auto filled',
placeholderMoldCodeAuto: 'Auto filled',
search: 'Search',
reset: 'Reset',
selectDeleteTip: 'Please select the data to delete',
validatorRepairCodeRequired: 'Repair order no can not be empty',
validatorRepairNameRequired: 'Repair order can not be empty',
validatorMoldRequired: 'Mold can not be empty',
tabMoldRepairLine: 'Mold Repair Line Items',
dialogTitleCreate: 'Create Repair Order',
dialogTitleUpdate: 'Edit Repair Order',
dialogTitleRepair: 'Repair'
},
MoldRepairLine: {
index: 'Index',
subjectCode: 'Repair Code',
subjectName: 'Repair Name',
subjectContent: 'Repair Content',
addLine: 'Add Repair Item',
placeholderSubjectCode: 'Please input repair code',
placeholderSubjectName: 'Please input repair name',
placeholderSubjectContent: 'Please input repair content',
validatorRepairIdRequired: 'Repair order id can not be empty',
validatorSubjectIdRequired: 'Item id can not be empty',
validatorSubjectCodeRequired: 'Item code can not be empty',
validatorSubjectContentRequired: 'Item content can not be empty'
},
MoldRepairItems: {
moduleName: 'Repair Items',
subjectCode: 'Repair Code',
subjectName: 'Repair Name',
moldName: 'Mold Name',
projectContent: 'Repair Content',
isEnable: 'Is Enable',
createTime: 'Create Time',
operate: 'Operate',
index: 'Index',
add: 'Add',
edit: 'Edit',
delete: 'Delete',
batchDelete: 'Batch Delete',
export: 'Export',
exportFilename: 'MoldRepairItems.xls',
placeholderSubjectCode: 'Please input repair code',
placeholderSubjectName: 'Please input repair name',
placeholderProjectContent: 'Please input repair content',
placeholderCreateTimeStart: 'Start Date',
placeholderCreateTimeEnd: 'End Date',
search: 'Search',
reset: 'Reset',
selectDeleteTip: 'Please select the data to delete',
dialogSubjectCode: 'Repair Code',
dialogSubjectName: 'Repair Name',
dialogMold: 'Mold',
dialogProjectContent: 'Repair Content',
dialogIsEnable: 'Is Enable',
placeholderDialogSubjectCode: 'Please input repair code',
placeholderDialogSubjectName: 'Please input repair name',
placeholderDialogMold: 'Please select mold',
placeholderDialogProjectContent: 'Please input repair content',
validatorSubjectCodeRequired: 'Item code can not be empty',
validatorSubjectNameRequired: 'Item name can not be empty',
validatorMoldRequired: 'Mold can not be empty',
validatorIsEnableRequired: 'Enable status can not be empty'
},
MoldOperate: {
moduleName: 'Mold Up/Down',
operateType: 'Operation Type',
operateTypeUp: 'Mold Up',
operateTypeDown: 'Mold Down',
mold: 'Mold',
moldName: 'Mold Name',
device: 'Device',
deviceName: 'Device Name',
remark: 'Remark',
creatorName: 'Operator',
createTime: 'Operation Time',
operate: 'Operate',
tabUp: 'Mold Up',
tabDown: 'Mold Down',
index: 'Index',
add: 'Add',
delete: 'Delete',
export: 'Export',
exportFilename: 'MoldOperate.xls',
placeholderMold: 'Please select mold',
placeholderRemark: 'Please input remark',
placeholderCreateTimeStart: 'Start Date',
placeholderCreateTimeEnd: 'End Date',
placeholderDevice: 'Please select device',
search: 'Search',
reset: 'Reset',
validatorOperateTypeRequired: 'Operation type can not be empty',
validatorDeviceRequired: 'Device can not be empty',
validatorMoldRequired: 'Mold can not be empty',
alertNeedRemoveMoldFirst: 'Please remove the mold from this device first!',
alertNoMoldOnDevice: 'No mold is installed on this device!'
},
MoldWorkOrderInquiry: {
moduleName: 'Work Order Inquiry',
planNo: 'Order No',
planType: 'Type',
planTypeInspect: 'Inspection',
planTypeMaintain: 'Maintenance',
jobStatus: 'Job Status',
jobResult: 'Result',
jobResultOk: 'OK',
jobResultNg: 'NG',
moldName: 'Mold Name',
configName: 'Plan Config Name',
operatorName: 'Operator',
taskTime: 'Job Time',
taskEndTime: 'Planned End Time',
createTime: 'Create Time',
index: 'Index',
remark: 'Remark',
select: 'Select',
cancelTask: 'Cancel Task',
placeholderPlanNo: 'Please input order no',
placeholderPlanType: 'Please select type',
placeholderJobStatus: 'Please select job status',
placeholderJobResult: 'Please select result',
query: 'Query',
reset: 'Reset',
cancelConfirm: 'Confirm cancel selected tasks?',
cancelSuccess: 'Cancel task successful',
inspectResultTitlePrefix: 'Inspection Result-',
inspectResultTitle: 'Inspection Result'
},
TicketResultDialog: {
moduleName: 'Inspection Result',
index: 'Index',
inspectionItemName: 'Inspection Item Name',
inspectionMethod: 'Inspection Method',
judgmentCriteria: 'Judgment Criteria',
inspectionResult: 'Inspection Result',
inspectionResultPending: 'Pending',
inspectionResultPass: 'Pass',
inspectionResultFail: 'Fail',
images: 'Images',
remark: 'Remark',
operate: 'Operate',
pass: 'Pass',
fail: 'Fail',
save: 'Save',
cancel: 'Cancel',
selectDecisionTip: 'Please select pass or fail for pending records first',
updateSuccess: 'Update successful',
updateFail: 'Update failed'
}
}
}

@ -977,5 +977,458 @@ export default {
validatorItemProductRequired: '备件不能为空',
validatorItemCountRequired: '备件数量不能为空'
}
},
MoldManagement: {
MoldBrand: {
code: '型号编码',
name: '型号名称',
moldType: '规格',
orgType: '工序',
moldSize: '模穴数',
useTime: '预期寿命/次',
remark: '备注',
createTime: '创建时间',
operate: '操作',
tabMold: '模具',
emptyTip: '请先点击上方列表选择一个模具型号',
exportFilename: '模具型号.xls',
placeholderCode: '请输入型号编码',
placeholderName: '请输入型号名称',
placeholderOrgType: '请选择工序',
placeholderMoldType: '请输入规格',
placeholderMoldSize: '请输入模穴数',
placeholderUseTime: '输入预期寿命(次)',
placeholderRemark: '请输入备注',
validatorCodeRequired: '型号编码不能为空',
validatorNameRequired: '型号名称不能为空',
validatorMoldTypeRequired: '规格不能为空',
validatorProductRequired: '产品ID不能为空',
validatorMoldSizeRequired: '出模数不能为空',
orgTypeTooltip: '来源:数据字典-工序'
},
Mold: {
code: '模具编码',
name: '模具名称',
unit: '单位',
inTime: '入库时间',
status: '状态',
images: '模具图片',
remark: '备注',
isEnable: '是否启用',
fileUrl: '资料',
machineName: '使用设备',
useTime: '使用次数/次',
moldSize: '模穴数',
createTime: '创建时间',
operate: '操作',
detail: '详情',
add: '新增',
edit: '编辑',
delete: '删除',
placeholderCode: '请输入模具编码',
placeholderName: '请输入模具名称',
placeholderUnit: '请选择单位',
placeholderInTime: '选择入库时间',
placeholderRemark: '请输入备注',
validatorCodeRequired: '模具编码不能为空',
validatorNameRequired: '模具名称不能为空',
validatorUnitRequired: '单位不能为空',
validatorInTimeRequired: '入库时间不能为空',
validatorIsEnableRequired: '是否启用不能为空',
validatorBrandRequired: '型号不能为空',
selectBrandTip: '请选择一个模具型号',
statusTooltip: '来源:数据字典-模具状态'
},
MoldReturn: {
moduleName: '模具入库',
no: '入库单号',
mold: '模具',
moldInfo: '模具信息',
inTime: '入库时间',
warehouse: '仓库',
creator: '创建人',
status: '状态',
remark: '备注',
select: '选择',
operate: '操作',
detail: '详情',
edit: '编辑',
approve: '审批',
unapprove: '反审批',
delete: '删除',
export: '导出',
add: '新增',
inType: '入库类型',
inNo: '入库单号',
inTimeSingle: '入库时间',
remarkSingle: '备注',
attachment: '附件',
itemListTitle: '入库模具清单',
itemIndex: '序号',
itemWarehouseName: '仓库名称',
itemMoldName: '模具名称',
itemStockCount: '库存',
itemMoldCode: '模具编码',
itemUnitName: '单位',
itemCount: '数量',
itemRemark: '备注',
itemOperate: '操作',
itemAddButton: '添加入库模具',
sumLabel: '合计',
exportFilename: '模具入库单.xls',
placeholderNo: '请输入入库单号',
placeholderMold: '请选择模具',
placeholderInTimeStart: '开始日期',
placeholderInTimeEnd: '结束日期',
placeholderWarehouse: '请选择仓库',
placeholderCreator: '请选择创建人',
placeholderStatus: '请选择状态',
placeholderRemark: '请输入备注',
placeholderInType: '请选择入库类型',
placeholderInTime: '选择入库时间',
placeholderInNoAuto: '保存时自动生成',
validatorInTimeRequired: '入库时间不能为空',
validatorInTypeRequired: '入库类型不能为空',
validatorItemInIdRequired: '入库编号不能为空',
validatorItemWarehouseRequired: '仓库不能为空',
validatorItemMoldRequired: '模具不能为空',
validatorItemCountRequired: '数量不能为空',
approveConfirm: '确定审批该入库单吗?',
unapproveConfirm: '确定反审批该入库单吗?',
approveSuccess: '审批成功',
unapproveSuccess: '反审批成功'
},
MoldGet: {
moduleName: '模具出库',
no: '领模单号',
mold: '模具',
outTime: '出库时间',
warehouse: '仓库',
creator: '创建人',
status: '状态',
remark: '备注',
select: '选择',
operate: '操作',
detail: '详情',
edit: '编辑',
approve: '审批',
unapprove: '反审批',
delete: '删除',
export: '导出',
add: '新增',
outType: '出库类型',
outNo: '出库单号',
outTimeSingle: '出库时间',
remarkSingle: '备注',
attachment: '附件',
itemListTitle: '出库模具清单',
itemIndex: '序号',
itemWarehouseName: '仓库名称',
itemMoldName: '模具名称',
itemStockCount: '库存',
itemMoldCode: '模具编码',
itemUnitName: '单位',
itemCount: '数量',
itemRemark: '备注',
itemOperate: '操作',
itemAddButton: '添加出库模具',
sumLabel: '合计',
exportFilename: '模具出库单.xls',
placeholderNo: '请输入领模单号',
placeholderMold: '请选择模具',
placeholderOutTimeStart: '开始日期',
placeholderOutTimeEnd: '结束日期',
placeholderWarehouse: '请选择仓库',
placeholderCreator: '请选择创建人',
placeholderStatus: '请选择状态',
placeholderRemark: '请输入备注',
placeholderOutType: '请选择出库类型',
placeholderOutTime: '选择出库时间',
placeholderOutNoAuto: '保存时自动生成',
validatorOutTimeRequired: '出库时间不能为空',
validatorOutTypeRequired: '出库类型不能为空',
validatorItemOutIdRequired: '出库编号不能为空',
validatorItemWarehouseRequired: '仓库不能为空',
validatorItemMoldRequired: '模具不能为空',
validatorItemCountRequired: '数量不能为空'
},
MoldInspectionItems: {
moduleName: '检验项目',
code: '编码',
name: '名称',
inspectionMethod: '检验方式',
valueType: '值类型',
judgmentCriteria: '判定基准',
isEnable: '是否启用',
creatorName: '创建人',
createTime: '创建时间',
operate: '操作',
index: '序号',
add: '新增',
batchDelete: '批量删除',
export: '导出',
edit: '编辑',
delete: '删除',
exportFilename: '检验项目.xls',
placeholderCode: '请输入编码',
placeholderName: '请输入名称',
placeholderJudgmentCriteria: '请输入判定基准',
placeholderSubjectCode: '请输入项目编码',
placeholderSubjectName: '请输入项目名称',
placeholderInspectionMethod: '请选择检验方式',
placeholderValueType: '请选择值类型',
placeholderIsEnable: '请选择是否启用',
placeholderJudgmentCriteriaForm: '请输入判定基准',
validatorSubjectCodeRequired: '项目编码不能为空',
validatorSubjectNameRequired: '项目名称不能为空',
validatorInspectionMethodRequired: '检验方式不能为空',
validatorValueTypeRequired: '值类型不能为空',
validatorJudgmentCriteriaRequired: '判定基准不能为空',
validatorIsEnableRequired: '是否启用不能为空',
selectDeleteTip: '请选择需要删除的数据'
},
MoldInspectionPlan: {
moduleName: '检验方案',
planName: '方案名称',
planType: '方案类型',
planTypeMaintain: '保养',
planTypeInspect: '点检',
description: '描述',
creatorName: '创建人',
createTime: '创建时间',
updateTime: '更新时间',
operate: '操作',
index: '序号',
subjectCode: '项目编码',
subjectName: '关联项目',
inspectionMethod: '检验方式',
judgmentCriteria: '判定基准',
add: '新增',
edit: '编辑',
delete: '删除',
batchDelete: '批量删除',
export: '导出',
placeholderPlanName: '请输入方案名称',
placeholderDescription: '请输入描述',
placeholderPlanType: '请选择方案类型',
placeholderSubjectName: '请输入项目名称',
placeholderSubjectDescription: '请输入描述',
placeholderSubjectSelect: '请选择关联项目',
selectDeleteTip: '请选择需要删除的数据',
exportFilename: '模具检验方案.xls',
validatorPlanNameRequired: '方案名称不能为空',
validatorPlanTypeRequired: '方案类型不能为空'
},
MoldRepair: {
moduleName: '维修单',
repairCode: '维修单号',
repairName: '维修单',
mold: '模具',
moldCode: '模具编码',
moldName: '模具名称',
repairUser: '维修人员',
confirmUser: '验收人员',
requireDate: '报修日期',
finishDate: '完成日期',
confirmDate: '验收日期',
repairResult: '维修结果',
status: '单据状态',
statusPending: '待完成',
statusDone: '已完成',
acceptUser: '维修人员',
confirmUserShort: '验收人员',
creator: '创建人',
createTime: '创建时间',
updateTime: '更新时间',
operate: '操作',
index: '序号',
remark: '备注',
listTitle: '模具维修记录',
add: '新增',
edit: '编辑',
delete: '删除',
batchDelete: '批量删除',
export: '导出',
exportFilename: '模具维修记录.xls',
repair: '维修',
placeholderRepairCode: '请输入维修单编号',
placeholderRepairName: '请输入维修单名称',
placeholderMoldCode: '请输入模具编码',
placeholderMoldName: '请输入模具名称',
placeholderRequireDateStart: '开始日期',
placeholderRequireDateEnd: '结束日期',
placeholderFinishDateStart: '开始日期',
placeholderFinishDateEnd: '结束日期',
placeholderConfirmDateStart: '开始日期',
placeholderConfirmDateEnd: '结束日期',
placeholderRepairUser: '请输入维修人员',
placeholderStatus: '请选择单据状态',
placeholderMold: '请选择模具',
placeholderAcceptUser: '请选择维修人员',
placeholderConfirmUser: '请选择验收人员',
placeholderRequireDate: '选择报修日期',
placeholderFinishDate: '选择完成日期',
placeholderConfirmDate: '选择验收日期',
placeholderMoldNameAuto: '自动带出',
placeholderMoldCodeAuto: '自动带出',
search: '搜索',
reset: '重置',
selectDeleteTip: '请选择需要删除的数据',
validatorRepairCodeRequired: '维修单编号不能为空',
validatorRepairNameRequired: '维修单不能为空',
validatorMoldRequired: '模具不能为空',
tabMoldRepairLine: '模具维修项目行',
dialogTitleCreate: '新增维修单',
dialogTitleUpdate: '编辑维修单',
dialogTitleRepair: '维修'
},
MoldRepairLine: {
index: '序号',
subjectCode: '维修编码',
subjectName: '维修名称',
subjectContent: '维修内容',
addLine: '添加维修项目',
placeholderSubjectCode: '请输入维修编码',
placeholderSubjectName: '请输入维修名称',
placeholderSubjectContent: '请输入维修内容',
validatorRepairIdRequired: '维修单ID不能为空',
validatorSubjectIdRequired: '项目ID不能为空',
validatorSubjectCodeRequired: '项目编码不能为空',
validatorSubjectContentRequired: '项目内容不能为空'
},
MoldRepairItems: {
moduleName: '维修项目',
subjectCode: '维修编码',
subjectName: '维修名称',
moldName: '模具名称',
projectContent: '维修内容',
isEnable: '是否启用',
createTime: '创建时间',
operate: '操作',
index: '序号',
add: '新增',
edit: '编辑',
delete: '删除',
batchDelete: '批量删除',
export: '导出',
exportFilename: '模具维修项目.xls',
placeholderSubjectCode: '请输入维修编码',
placeholderSubjectName: '请输入维修名称',
placeholderProjectContent: '请输入维修内容',
placeholderCreateTimeStart: '开始日期',
placeholderCreateTimeEnd: '结束日期',
search: '搜索',
reset: '重置',
selectDeleteTip: '请选择需要删除的数据',
dialogSubjectCode: '维修编码',
dialogSubjectName: '维修名称',
dialogMold: '模具',
dialogProjectContent: '维修内容',
dialogIsEnable: '是否启用',
placeholderDialogSubjectCode: '请输入维修编码',
placeholderDialogSubjectName: '请输入维修名称',
placeholderDialogMold: '请选择模具',
placeholderDialogProjectContent: '请输入维修内容',
validatorSubjectCodeRequired: '项目编码不能为空',
validatorSubjectNameRequired: '项目名称不能为空',
validatorMoldRequired: '模具不能为空',
validatorIsEnableRequired: '是否启用不能为空'
},
MoldOperate: {
moduleName: '模具上下模',
operateType: '操作类型',
operateTypeUp: '上模',
operateTypeDown: '下模',
mold: '模具',
moldName: '模具名称',
device: '设备',
deviceName: '设备名称',
remark: '备注',
creatorName: '操作人',
createTime: '操作时间',
operate: '操作',
tabUp: '上模',
tabDown: '下模',
index: '序号',
add: '新增',
delete: '删除',
export: '导出',
exportFilename: '模具上下模.xls',
placeholderMold: '请选择模具',
placeholderRemark: '请输入备注',
placeholderCreateTimeStart: '开始日期',
placeholderCreateTimeEnd: '结束日期',
placeholderDevice: '请选择设备',
search: '搜索',
reset: '重置',
validatorOperateTypeRequired: '操作类型不能为空',
validatorDeviceRequired: '关联设备不能为空',
validatorMoldRequired: '关联模具不能为空',
alertNeedRemoveMoldFirst: '请先将该设备上的模具换下!',
alertNoMoldOnDevice: '该设备没有安装模具!'
},
MoldWorkOrderInquiry: {
moduleName: '工单查询',
planNo: '单号',
planType: '类型',
planTypeInspect: '点检',
planTypeMaintain: '保养',
jobStatus: '作业状态',
jobResult: '结果',
jobResultOk: '通过',
jobResultNg: '不通过',
moldName: '模具名称',
configName: '计划配置名称',
operatorName: '作业人',
taskTime: '作业时间',
taskEndTime: '计划结束作业时间',
createTime: '创建时间',
index: '序号',
remark: '备注',
select: '选择',
cancelTask: '取消任务',
placeholderPlanNo: '请输入单号',
placeholderPlanType: '请选择类型',
placeholderJobStatus: '请选择作业状态',
placeholderJobResult: '请选择结果',
query: '查询',
reset: '重置',
cancelConfirm: '确认取消选中的任务吗?',
cancelSuccess: '取消任务成功',
inspectResultTitlePrefix: '检验结果-',
inspectResultTitle: '检验结果'
},
TicketResultDialog: {
moduleName: '检验结果',
index: '序号',
inspectionItemName: '检验项名称',
inspectionMethod: '检验方式',
judgmentCriteria: '判定基准',
inspectionResult: '检验结果',
inspectionResultPending: '待检测',
inspectionResultPass: '通过',
inspectionResultFail: '不通过',
images: '图片',
remark: '备注',
operate: '操作',
pass: '通过',
fail: '不通过',
save: '保 存',
cancel: '取 消',
selectDecisionTip: '请先为待检测记录选择通过或不通过',
updateSuccess: '更新成功',
updateFail: '更新失败'
}
}
}

@ -7,25 +7,38 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="型号编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入型号编码" :disabled = "formType == 'update'"/>
<el-form-item :label="t('MoldManagement.MoldBrand.code')" prop="code">
<el-input
v-model="formData.code"
:placeholder="t('MoldManagement.MoldBrand.placeholderCode')"
:disabled="formType == 'update'"
/>
</el-form-item>
<el-form-item label="型号名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入型号名称" />
<el-form-item :label="t('MoldManagement.MoldBrand.name')" prop="name">
<el-input
v-model="formData.name"
:placeholder="t('MoldManagement.MoldBrand.placeholderName')"
/>
</el-form-item>
<el-form-item label="规格" prop="moldType">
<el-input v-model="formData.moldType" placeholder="请输入规格" />
<el-form-item :label="t('MoldManagement.MoldBrand.moldType')" prop="moldType">
<el-input
v-model="formData.moldType"
:placeholder="t('MoldManagement.MoldBrand.placeholderMoldType')"
/>
</el-form-item>
<el-form-item prop="orgType">
<template #label>
<span>
工序
<el-tooltip content="来源:数据字典-工序" placement="top">
<Icon icon="ep:question-filled" />
</el-tooltip>
</span>
<span>
{{ t('MoldManagement.MoldBrand.orgType') }}
<el-tooltip :content="t('MoldManagement.MoldBrand.orgTypeTooltip')" placement="top">
<Icon icon="ep:question-filled" />
</el-tooltip>
</span>
</template>
<el-select v-model="formData.orgType" placeholder="请选择工序">
<el-select
v-model="formData.orgType"
:placeholder="t('MoldManagement.MoldBrand.placeholderOrgType')"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
@ -35,15 +48,18 @@
</el-select>
</el-form-item>
<el-form-item label="模穴数" prop="moldSize">
<el-input v-model="formData.moldSize" placeholder="请输入模穴数" />
<el-form-item :label="t('MoldManagement.MoldBrand.moldSize')" prop="moldSize">
<el-input
v-model="formData.moldSize"
:placeholder="t('MoldManagement.MoldBrand.placeholderMoldSize')"
/>
</el-form-item>
<el-form-item label="预期寿命" prop="useTime">
<el-form-item :label="t('MoldManagement.MoldBrand.useTime')" prop="useTime">
<el-input-number
v-model="formData.useTime"
:min="0"
class="!w-1/1"
placeholder="输入预期寿命(次)"
:placeholder="t('MoldManagement.MoldBrand.placeholderUseTime')"
/>
</el-form-item>
<!-- <el-form-item label="维保模式" prop="maintainType">
@ -66,13 +82,18 @@
/>
</el-form-item> -->
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
<el-form-item :label="t('MoldManagement.MoldBrand.remark')" prop="remark">
<el-input
v-model="formData.remark"
:placeholder="t('MoldManagement.MoldBrand.placeholderRemark')"
/>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">
{{ t('action.save') }}
</el-button>
<el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
</template>
</Dialog>
</template>
@ -104,11 +125,21 @@ const formData = ref({
isEnable: undefined
})
const formRules = reactive({
code: [{ required: true, message: '型号编码不能为空', trigger: 'blur' }],
name: [{ required: true, message: '型号名称不能为空', trigger: 'blur' }],
moldType: [{ required: true, message: '规格不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品ID不能为空', trigger: 'blur' }],
moldSize: [{ required: true, message: '出模数不能为空', trigger: 'blur' }]
code: [
{ required: true, message: t('MoldManagement.MoldBrand.validatorCodeRequired'), trigger: 'blur' }
],
name: [
{ required: true, message: t('MoldManagement.MoldBrand.validatorNameRequired'), trigger: 'blur' }
],
moldType: [
{ required: true, message: t('MoldManagement.MoldBrand.validatorMoldTypeRequired'), trigger: 'blur' }
],
productId: [
{ required: true, message: t('MoldManagement.MoldBrand.validatorProductRequired'), trigger: 'blur' }
],
moldSize: [
{ required: true, message: t('MoldManagement.MoldBrand.validatorMoldSizeRequired'), trigger: 'blur' }
]
})
const formRef = ref() // Ref

@ -7,14 +7,26 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="模具编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入模具编码" :disabled = "formType == 'update'"/>
<el-form-item :label="t('MoldManagement.Mold.code')" prop="code">
<el-input
v-model="formData.code"
:placeholder="t('MoldManagement.Mold.placeholderCode')"
:disabled="formType == 'update'"
/>
</el-form-item>
<el-form-item label="模具名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入模具名称" />
<el-form-item :label="t('MoldManagement.Mold.name')" prop="name">
<el-input
v-model="formData.name"
:placeholder="t('MoldManagement.Mold.placeholderName')"
/>
</el-form-item>
<el-form-item label="单位" prop="unitId">
<el-select v-model="formData.unitId" clearable placeholder="请选择单位" class="w-1/1">
<el-form-item :label="t('MoldManagement.Mold.unit')" prop="unitId">
<el-select
v-model="formData.unitId"
clearable
:placeholder="t('MoldManagement.Mold.placeholderUnit')"
class="w-1/1"
>
<el-option
v-for="unit in unitList"
:key="unit.id"
@ -32,19 +44,19 @@
placeholder="输入预期寿命(小时)"
/>
</el-form-item> -->
<el-form-item label="入库时间" prop="inTime">
<el-form-item :label="t('MoldManagement.Mold.inTime')" prop="inTime">
<el-date-picker
v-model="formData.inTime"
type="date"
value-format="x"
placeholder="选择入库时间"
:placeholder="t('MoldManagement.Mold.placeholderInTime')"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-form-item prop="status">
<template #label>
<span>
状态
<el-tooltip content="来源:数据字典-模具状态" placement="top">
{{ t('MoldManagement.Mold.status') }}
<el-tooltip :content="t('MoldManagement.Mold.statusTooltip')" placement="top">
<Icon icon="ep:question-filled" />
</el-tooltip>
</span>
@ -59,13 +71,16 @@
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="模具图片" prop="images">
<el-form-item :label="t('MoldManagement.Mold.images')" prop="images">
<UploadImg v-model="formData.images" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
<el-form-item :label="t('MoldManagement.Mold.remark')" prop="remark">
<el-input
v-model="formData.remark"
:placeholder="t('MoldManagement.Mold.placeholderRemark')"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-form-item :label="t('MoldManagement.Mold.isEnable')" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
@ -76,13 +91,15 @@
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="资料" prop="fileUrl">
<el-form-item :label="t('MoldManagement.Mold.fileUrl')" prop="fileUrl">
<UploadFile v-model="formData.fileUrl" :limit="1" :isShowTip="false"/>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">
{{ t('action.save') }}
</el-button>
<el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
</template>
</Dialog>
</template>
@ -115,12 +132,24 @@ const formData = ref({
brandId: undefined
})
const formRules = reactive({
code: [{ required: true, message: '模具编码不能为空', trigger: 'blur' }],
name: [{ required: true, message: '模具名称不能为空', trigger: 'blur' }],
unitId: [{ required: true, message: '单位不能为空', trigger: 'blur' }],
inTime: [{ required: true, message: '入库时间不能为空', trigger: 'blur' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }],
brandId: [{ required: true, message: '型号不能为空', trigger: 'blur' }]
code: [
{ required: true, message: t('MoldManagement.Mold.validatorCodeRequired'), trigger: 'blur' }
],
name: [
{ required: true, message: t('MoldManagement.Mold.validatorNameRequired'), trigger: 'blur' }
],
unitId: [
{ required: true, message: t('MoldManagement.Mold.validatorUnitRequired'), trigger: 'blur' }
],
inTime: [
{ required: true, message: t('MoldManagement.Mold.validatorInTimeRequired'), trigger: 'blur' }
],
isEnable: [
{ required: true, message: t('MoldManagement.Mold.validatorIsEnableRequired'), trigger: 'blur' }
],
brandId: [
{ required: true, message: t('MoldManagement.Mold.validatorBrandRequired'), trigger: 'blur' }
]
})
const formRef = ref() // Ref

@ -2,34 +2,32 @@
<!-- 列表 -->
<ContentWrap>
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['erp:mold-brand:create']">
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('action.add') }}
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="模具编码" align="center" prop="code" />
<el-table-column label="模具名称" align="left" prop="name" />
<el-table-column :label="t('MoldManagement.Mold.code')" align="center" prop="code" />
<el-table-column :label="t('MoldManagement.Mold.name')" align="left" prop="name" />
<!-- <el-table-column label="单位" align="center" prop="unitName" /> -->
<el-table-column label="使用次数/次" align="center" prop="useTime" />
<el-table-column label="入库时间" align="center" prop="inTime" :formatter="dateFormatter" />
<el-table-column label="状态" align="center" prop="status">
<el-table-column :label="t('MoldManagement.Mold.useTime')" align="center" prop="useTime" />
<el-table-column :label="t('MoldManagement.Mold.inTime')" align="center" prop="inTime" :formatter="dateFormatter" />
<el-table-column :label="t('MoldManagement.Mold.status')" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ERP_MOLD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="使用设备" align="center" prop="machineName" />
<el-table-column :label="t('MoldManagement.Mold.machineName')" align="center" prop="machineName" />
<!-- <el-table-column label="模具图片" align="center" prop="images" /> -->
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<el-table-column :label="t('MoldManagement.Mold.remark')" align="center" prop="remark" />
<el-table-column :label="t('MoldManagement.Mold.isEnable')" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
<el-table-column label="操作" align="center" fixed="right" width="200px">
<el-table-column :label="t('MoldManagement.Mold.createTime')" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
<el-table-column :label="t('MoldManagement.Mold.operate')" align="center" fixed="right" width="200px">
<template #default="scope">
<el-button link @click="openDetail(scope.row.id)">
详情
{{ t('MoldManagement.Mold.detail') }}
</el-button>
<!-- <el-button
link
@ -40,12 +38,20 @@
维保
</el-button> -->
<el-button
link type="primary" @click="openForm('update', scope.row.id)"
v-hasPermi="['erp:mold-brand:update']">
编辑
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['erp:mold-brand:update']"
>
{{ t('action.edit') }}
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['erp:mold-brand:delete']">
删除
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['erp:mold-brand:delete']"
>
{{ t('action.del') }}
</el-button>
</template>
</el-table-column>

@ -6,30 +6,30 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="110px"
>
<el-form-item label="型号编码" prop="code">
<el-form-item :label="t('MoldManagement.MoldBrand.code')" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入型号编码"
:placeholder="t('MoldManagement.MoldBrand.placeholderCode')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="型号名称" prop="name">
<el-form-item :label="t('MoldManagement.MoldBrand.name')" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入型号名称"
:placeholder="t('MoldManagement.MoldBrand.placeholderName')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="工序" prop="orgType">
<el-form-item :label="t('MoldManagement.MoldBrand.orgType')" prop="orgType">
<el-select
v-model="queryParams.orgType"
placeholder="请选择工序"
:placeholder="t('MoldManagement.MoldBrand.placeholderOrgType')"
clearable
class="!w-240px"
>
@ -58,15 +58,15 @@
</el-form-item> -->
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['erp:mold-brand:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('action.add') }}
</el-button>
<el-button
type="success"
@ -75,7 +75,7 @@
:loading="exportLoading"
v-hasPermi="['erp:mold-brand:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }}
</el-button>
</el-form-item>
</el-form>
@ -95,32 +95,32 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" fixed="left" reserve-selection />
<el-table-column label="型号编码" align="center" prop="code"/>
<el-table-column label="型号名称" align="left" prop="name"/>
<el-table-column label="规格" align="center" prop="moldType" />
<el-table-column label="工序" align="center" prop="orgType">
<el-table-column :label="t('MoldManagement.MoldBrand.code')" align="center" prop="code" />
<el-table-column :label="t('MoldManagement.MoldBrand.name')" align="left" prop="name" />
<el-table-column :label="t('MoldManagement.MoldBrand.moldType')" align="center" prop="moldType" />
<el-table-column :label="t('MoldManagement.MoldBrand.orgType')" align="center" prop="orgType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.orgType" />
</template>
</el-table-column>
<el-table-column label="预期寿命/次" align="center" prop="useTime" />
<el-table-column :label="t('MoldManagement.MoldBrand.useTime')" align="center" prop="useTime" />
<!-- <el-table-column label="维保模式" align="center" prop="maintainType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ERP_MAINTAIN_TYPE" :value="scope.row.maintainType" />
</template>
</el-table-column>
<el-table-column label="维保周期" align="center" prop="maintainTime" /> -->
<el-table-column label="模穴数" align="center" prop="moldSize" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column :label="t('MoldManagement.MoldBrand.moldSize')" align="center" prop="moldSize" />
<el-table-column :label="t('MoldManagement.MoldBrand.remark')" align="center" prop="remark" />
<el-table-column
label="创建时间"
:label="t('MoldManagement.MoldBrand.createTime')"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center" fixed="right" width="150px">
<el-table-column :label="t('MoldManagement.MoldBrand.operate')" align="center" fixed="right" width="150px">
<template #default="scope">
<el-button
link
@ -128,7 +128,7 @@
@click="openForm('update', scope.row.id)"
v-hasPermi="['erp:mold-brand:update']"
>
编辑
{{ t('action.edit') }}
</el-button>
<el-button
link
@ -136,7 +136,7 @@
@click="handleDelete(scope.row.id)"
v-hasPermi="['erp:mold-brand:delete']"
>
删除
{{ t('action.del') }}
</el-button>
</template>
</el-table-column>
@ -158,7 +158,7 @@
{{ currentBrandDisplay }}
</div>
<el-tabs model-value="mold">
<el-tab-pane label="模具" name="mold">
<el-tab-pane :label="t('MoldManagement.MoldBrand.tabMold')" name="mold">
<MoldList :brand-id="currentBrandId" />
</el-tab-pane>
<!-- <el-tab-pane label="产品" name="moldBrandProduct">
@ -167,7 +167,7 @@
</el-tabs>
</ContentWrap>
<ContentWrap v-else>
<el-empty description="请先点击上方列表选择一个模具型号" />
<el-empty :description="t('MoldManagement.MoldBrand.emptyTip')" />
</ContentWrap>
</template>

@ -4,18 +4,18 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
label-width="110px"
v-loading="formLoading"
:disabled="disabled"
>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="出库类型" prop="outType">
<el-form-item :label="t('MoldManagement.MoldGet.outType')" prop="outType">
<el-select
v-model="formData.outType"
clearable
filterable
placeholder="请选择出库类型"
:placeholder="t('MoldManagement.MoldGet.placeholderOutType')"
class="!w-1/1"
disabled
>
@ -29,8 +29,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出库单号" prop="no">
<el-input disabled v-model="formData.no" placeholder="保存时自动生成" />
<el-form-item :label="t('MoldManagement.MoldGet.outNo')" prop="no">
<el-input
disabled
v-model="formData.no"
:placeholder="t('MoldManagement.MoldGet.placeholderOutNoAuto')"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
@ -52,30 +56,30 @@
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="出库时间" prop="outTime">
<el-form-item :label="t('MoldManagement.MoldGet.outTimeSingle')" prop="outTime">
<el-date-picker
v-model="formData.outTime"
type="date"
value-format="x"
placeholder="选择出库时间"
:placeholder="t('MoldManagement.MoldGet.placeholderOutTime')"
class="!w-1/1"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-form-item :label="t('MoldManagement.MoldGet.remarkSingle')" prop="remark">
<el-input
type="textarea"
v-model="formData.remark"
:rows="1"
placeholder="请输入备注"
:placeholder="t('MoldManagement.MoldGet.placeholderRemark')"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附件" prop="fileUrl">
<el-form-item :label="t('MoldManagement.MoldGet.attachment')" prop="fileUrl">
<UploadFile :is-show-tip="false" v-model="formData.fileUrl" :limit="1" />
</el-form-item>
</el-col>
@ -84,16 +88,16 @@
<!-- 子表的表单 -->
<ContentWrap>
<el-tabs v-model="subTabsName" class="-mt-15px -mb-10px">
<el-tab-pane label="出库模具清单" name="item">
<el-tab-pane :label="t('MoldManagement.MoldGet.itemListTitle')" name="item">
<StockOutItemForm ref="itemFormRef" :items="formData.items" :disabled="disabled" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading" v-if="!disabled">
{{ t('action.save') }}
</el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
</template>
</Dialog>
</template>
@ -123,8 +127,12 @@ const formData = ref({
items: []
})
const formRules = reactive({
outTime: [{ required: true, message: '出库时间不能为空', trigger: 'blur' }],
outType: [{ required: true, message: '出库类型不能为空', trigger: 'blur' }]
outTime: [
{ required: true, message: t('MoldManagement.MoldGet.validatorOutTimeRequired'), trigger: 'blur' }
],
outType: [
{ required: true, message: t('MoldManagement.MoldGet.validatorOutTypeRequired'), trigger: 'blur' }
]
})
const disabled = computed(() => formType.value === 'detail')
const formRef = ref() // Ref
@ -132,9 +140,8 @@ const customerList = ref<CustomerVO[]>([]) // 客户列表
const options = [
{
value: '模具出库',
label: '模具出库',
},
label: t('MoldManagement.MoldGet.moduleName')
}
]
/** 子表的表单 */
const subTabsName = ref('item')

@ -9,8 +9,8 @@
:disabled="disabled"
>
<el-table :data="formData" show-summary :summary-method="getSummaries" class="-mt-10px">
<el-table-column label="序号" type="index" align="center" width="60" />
<el-table-column label="仓库名称" min-width="125">
<el-table-column :label="t('MoldManagement.MoldGet.itemIndex')" type="index" align="center" width="60" />
<el-table-column :label="t('MoldManagement.MoldGet.itemWarehouseName')" min-width="125">
<template #default="{ row, $index }">
<el-form-item
:prop="`${$index}.warehouseId`"
@ -21,7 +21,7 @@
v-model="row.warehouseId"
clearable
filterable
placeholder="请选择仓库"
:placeholder="t('MoldManagement.MoldGet.placeholderWarehouse')"
@change="onChangeWarehouse($event, row)"
>
<el-option
@ -34,7 +34,7 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="模具名称" min-width="180">
<el-table-column :label="t('MoldManagement.MoldGet.itemMoldName')" min-width="180">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!">
<el-select
@ -42,7 +42,7 @@
clearable
filterable
@change="onChangeProduct($event, row)"
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldGet.placeholderMold')"
>
<el-option
v-for="item in productList"
@ -54,28 +54,28 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="库存" min-width="100">
<el-table-column :label="t('MoldManagement.MoldGet.itemStockCount')" min-width="100">
<template #default="{ row }">
<el-form-item class="mb-0px!">
<el-input disabled v-model="row.stockCount" :formatter="erpCountInputFormatter" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="模具编码" min-width="150">
<el-table-column :label="t('MoldManagement.MoldGet.itemMoldCode')" min-width="150">
<template #default="{ row }">
<el-form-item class="mb-0px!">
<el-input disabled v-model="row.productBarCode" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="单位" min-width="80">
<el-table-column :label="t('MoldManagement.MoldGet.itemUnitName')" min-width="80">
<template #default="{ row }">
<el-form-item class="mb-0px!">
<el-input disabled v-model="row.productUnitName" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="数量" prop="count" fixed="right" min-width="140">
<el-table-column :label="t('MoldManagement.MoldGet.itemCount')" prop="count" fixed="right" min-width="140">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.count`" :rules="formRules.count" class="mb-0px!">
<el-input-number
@ -108,14 +108,14 @@
</el-form-item>
</template>
</el-table-column> -->
<el-table-column label="备注" fixed="right" min-width="150">
<el-table-column :label="t('MoldManagement.MoldGet.itemRemark')" fixed="right" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" class="mb-0px!">
<el-input v-model="row.remark" placeholder="请输入备注" />
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<el-table-column align="center" fixed="right" :label="t('MoldManagement.MoldGet.itemOperate')" width="60">
<template #default="{ $index }">
<el-button type="danger" @click="handleDelete($index)" link>
<Icon icon="ep:delete" />
@ -125,7 +125,7 @@
</el-table>
</el-form>
<el-row justify="center" class="mt-3" v-if="!disabled">
<el-button @click="handleAdd" round>+ 添加出库模具</el-button>
<el-button @click="handleAdd" round>+ {{ t('MoldManagement.MoldGet.itemAddButton') }}</el-button>
</el-row>
</template>
<script setup lang="ts">
@ -146,11 +146,21 @@ const props = defineProps<{
}>()
const formLoading = ref(false) //
const formData = ref([])
const { t } = useI18n()
const formRules = reactive({
inId: [{ required: true, message: '出库编号不能为空', trigger: 'blur' }],
warehouseId: [{ required: true, message: '仓库不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '模具不能为空', trigger: 'blur' }],
count: [{ required: true, message: '数量不能为空', trigger: 'blur' }]
inId: [
{ required: true, message: t('MoldManagement.MoldGet.validatorItemOutIdRequired'), trigger: 'blur' }
],
warehouseId: [
{ required: true, message: t('MoldManagement.MoldGet.validatorItemWarehouseRequired'), trigger: 'blur' }
],
productId: [
{ required: true, message: t('MoldManagement.MoldGet.validatorItemMoldRequired'), trigger: 'blur' }
],
count: [
{ required: true, message: t('MoldManagement.MoldGet.validatorItemCountRequired'), trigger: 'blur' }
]
})
const formRef = ref([]) // Ref
const productList = ref<MoldVO[]>([]) //
@ -187,7 +197,7 @@ const getSummaries = (param: SummaryMethodProps) => {
const sums: string[] = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
sums[index] = t('MoldManagement.MoldGet.sumLabel')
return
}
if (['count', 'totalPrice'].includes(column.property)) {

@ -7,23 +7,23 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="110px"
>
<el-form-item label="领模单号" prop="no">
<el-form-item :label="t('MoldManagement.MoldGet.no')" prop="no">
<el-input
v-model="queryParams.no"
placeholder="请选择领模单号"
:placeholder="t('MoldManagement.MoldGet.placeholderNo')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="模具" prop="productId">
<el-form-item :label="t('MoldManagement.MoldGet.mold')" prop="productId">
<el-select
v-model="queryParams.productId"
clearable
filterable
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldGet.placeholderMold')"
class="!w-240px"
>
<el-option
@ -34,13 +34,13 @@
/>
</el-select>
</el-form-item>
<el-form-item label="出库时间" prop="outTime">
<el-form-item :label="t('MoldManagement.MoldGet.outTime')" prop="outTime">
<el-date-picker
v-model="queryParams.outTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldGet.placeholderOutTimeStart')"
:end-placeholder="t('MoldManagement.MoldGet.placeholderOutTimeEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
@ -61,12 +61,12 @@
/>
</el-select>
</el-form-item> -->
<el-form-item label="仓库" prop="warehouseId">
<el-form-item :label="t('MoldManagement.MoldGet.warehouse')" prop="warehouseId">
<el-select
v-model="queryParams.warehouseId"
clearable
filterable
placeholder="请选择仓库"
:placeholder="t('MoldManagement.MoldGet.placeholderWarehouse')"
class="!w-240px"
>
<el-option
@ -77,12 +77,12 @@
/>
</el-select>
</el-form-item>
<el-form-item label="创建人" prop="creator">
<el-form-item :label="t('MoldManagement.MoldGet.creator')" prop="creator">
<el-select
v-model="queryParams.creator"
clearable
filterable
placeholder="请选择创建人"
:placeholder="t('MoldManagement.MoldGet.placeholderCreator')"
class="!w-240px"
>
<el-option
@ -93,8 +93,13 @@
/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
<el-form-item :label="t('MoldManagement.MoldGet.status')" prop="status">
<el-select
v-model="queryParams.status"
:placeholder="t('MoldManagement.MoldGet.placeholderStatus')"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.ERP_AUDIT_STATUS)"
:key="dict.value"
@ -103,25 +108,25 @@
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-form-item :label="t('MoldManagement.MoldGet.remark')" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
:placeholder="t('MoldManagement.MoldGet.placeholderRemark')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('action.query') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('action.reset') }}</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['erp:stock-out:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldGet.add') }}
</el-button>
<el-button
type="success"
@ -130,7 +135,7 @@
:loading="exportLoading"
v-hasPermi="['erp:stock-out:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldGet.export') }}
</el-button>
<el-button
type="danger"
@ -139,7 +144,7 @@
v-hasPermi="['erp:stock-out:delete']"
:disabled="selectionList.length === 0"
>
<Icon icon="ep:delete" class="mr-5px" /> 删除
<Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldGet.delete') }}
</el-button>
</el-form-item>
</el-form>
@ -161,19 +166,19 @@
:show-overflow-tooltip="true"
@selection-change="handleSelectionChange"
>
<el-table-column width="30" label="选择" type="selection" />
<el-table-column min-width="180" label="领模单号" align="center" prop="no" />
<el-table-column label="模具信息" align="left" sortable prop="productNames" min-width="150" />
<el-table-column width="30" :label="t('MoldManagement.MoldGet.select')" type="selection" />
<el-table-column min-width="180" :label="t('MoldManagement.MoldGet.no')" align="center" prop="no" />
<el-table-column :label="t('MoldManagement.MoldGet.mold')" align="left" sortable prop="productNames" min-width="150" />
<!-- <el-table-column label="客户" align="center" prop="customerName" /> -->
<el-table-column
label="出库时间"
:label="t('MoldManagement.MoldGet.outTime')"
align="center"
sortable
prop="outTime"
:formatter="dateFormatter2"
width="120px"
/>
<el-table-column label="创建人" align="center" prop="creatorName" />
<el-table-column :label="t('MoldManagement.MoldGet.creator')" align="center" prop="creatorName" />
<!-- <el-table-column
label="数量"
align="right"
@ -188,19 +193,19 @@
prop="totalPrice"
:formatter="erpPriceTableColumnFormatter"
/> -->
<el-table-column label="状态" align="center" fixed="right" width="90" prop="status">
<el-table-column :label="t('MoldManagement.MoldGet.status')" align="center" fixed="right" width="90" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ERP_AUDIT_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="220">
<el-table-column :label="t('MoldManagement.MoldGet.operate')" align="center" fixed="right" width="220">
<template #default="scope">
<el-button
link
@click="openForm('detail', scope.row.id)"
v-hasPermi="['erp:stock-out:query']"
>
详情
{{ t('MoldManagement.MoldGet.detail') }}
</el-button>
<el-button
link
@ -209,7 +214,7 @@
v-hasPermi="['erp:stock-out:update']"
:disabled="scope.row.status === 20"
>
编辑
{{ t('MoldManagement.MoldGet.edit') }}
</el-button>
<el-button
link
@ -218,7 +223,7 @@
v-hasPermi="['erp:stock-out:update-status']"
v-if="scope.row.status === 10"
>
审批
{{ t('MoldManagement.MoldGet.approve') }}
</el-button>
<el-button
link
@ -227,7 +232,7 @@
v-hasPermi="['erp:stock-out:update-status']"
v-else
>
反审批
{{ t('MoldManagement.MoldGet.unapprove') }}
</el-button>
<el-button
link
@ -235,7 +240,7 @@
@click="handleDelete([scope.row.id])"
v-hasPermi="['erp:stock-out:delete']"
>
删除
{{ t('MoldManagement.MoldGet.delete') }}
</el-button>
</template>
</el-table-column>

@ -4,28 +4,28 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
label-width="120px"
v-loading="formLoading"
>
<el-form-item label="操作类型" prop="operateType">
<el-form-item :label="t('MoldManagement.MoldOperate.operateType')" prop="operateType">
<el-radio-group v-model="formData.operateType">
<el-radio :label="1">上模</el-radio>
<el-radio :label="2">下模</el-radio>
<el-radio :label="1">{{ t('MoldManagement.MoldOperate.operateTypeUp') }}</el-radio>
<el-radio :label="2">{{ t('MoldManagement.MoldOperate.operateTypeDown') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="设备" prop="deviceId">
<el-form-item :label="t('MoldManagement.MoldOperate.device')" prop="deviceId">
<el-select
v-model="formData.deviceId" filterable clearable :loading="deviceLoading"
placeholder="请选择设备" class="!w-full" @change="deviceChange(formData.deviceId)">
:placeholder="t('MoldManagement.MoldOperate.placeholderDevice')" class="!w-full" @change="deviceChange(formData.deviceId)">
<el-option v-for="opt in deviceOptions" :key="String(opt.value)" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item label="模具" prop="moldId" v-if = "formData.operateType == '1'">
<el-form-item :label="t('MoldManagement.MoldOperate.mold')" prop="moldId" v-if = "formData.operateType == '1'">
<el-select
v-model="formData.moldId"
clearable
filterable
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldOperate.placeholderMold')"
>
<el-option
v-for="item in moldList"
@ -35,13 +35,13 @@ v-model="formData.deviceId" filterable clearable :loading="deviceLoading"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
<el-form-item :label="t('MoldManagement.MoldOperate.remark')" prop="remark">
<el-input v-model="formData.remark" :placeholder="t('MoldManagement.MoldOperate.placeholderRemark')" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button>
</template>
</Dialog>
</template>
@ -73,9 +73,9 @@ const formData = ref({
remark: undefined,
})
const formRules = reactive({
moldId: [{ required: true, message: '关联模具不能为空', trigger: 'blur' }],
operateType: [{ required: true, message: '操作类型不能为空', trigger: 'blur' }],
deviceId: [{ required: true, message: '关联设备不能为空', trigger: 'blur' }],
moldId: [{ required: true, message: t('MoldManagement.MoldOperate.validatorMoldRequired'), trigger: 'blur' }],
operateType: [{ required: true, message: t('MoldManagement.MoldOperate.validatorOperateTypeRequired'), trigger: 'blur' }],
deviceId: [{ required: true, message: t('MoldManagement.MoldOperate.validatorDeviceRequired'), trigger: 'blur' }],
})
const formRef = ref() // Ref
@ -143,13 +143,13 @@ const submitForm = async () => {
if (formData.value.operateType == '1') {
const data = await MoldOperateApi.getMoldOperateMold(formData.value.deviceId)
if (data === true) {
message.alert('请先将该设备上的模具换下!')
message.alert(t('MoldManagement.MoldOperate.alertNeedRemoveMoldFirst'))
return
}
} else {
const data = await MoldOperateApi.getMoldOperateMold(formData.value.deviceId)
if (data === false) {
message.alert('该设备没有安装模具!')
message.alert(t('MoldManagement.MoldOperate.alertNoMoldOnDevice'))
return
}
}
@ -195,11 +195,11 @@ const deviceChange = async (deviceId:number) => {
const data = await MoldOperateApi.getMoldOperateMold(deviceId)
if (formData.value.operateType == '1') {
if (data === true) {
message.alert('请先将该设备上的模具换下!')
message.alert(t('MoldManagement.MoldOperate.alertNeedRemoveMoldFirst'))
}
} else {
if (data === false) {
message.alert('该设备没有安装模具!')
message.alert(t('MoldManagement.MoldOperate.alertNoMoldOnDevice'))
}
}
}
@ -215,4 +215,4 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
</script>
</script>

@ -6,7 +6,7 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="120px"
>
<!-- <el-form-item label="操作类型" prop="operateType">
<el-select
@ -18,12 +18,12 @@
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item> -->
<el-form-item label="模具" prop="moldId">
<el-form-item :label="t('MoldManagement.MoldOperate.mold')" prop="moldId">
<el-select
v-model="queryParams.moldId"
clearable
filterable
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldOperate.placeholderMold')"
class="!w-240px"
>
<el-option
@ -34,36 +34,36 @@
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-form-item :label="t('MoldManagement.MoldOperate.remark')" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
:placeholder="t('MoldManagement.MoldOperate.placeholderRemark')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-form-item :label="t('MoldManagement.MoldOperate.createTime')" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldOperate.placeholderCreateTimeStart')"
:end-placeholder="t('MoldManagement.MoldOperate.placeholderCreateTimeEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-220px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('MoldManagement.MoldOperate.search') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('MoldManagement.MoldOperate.reset') }}</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:mold-operate:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldOperate.add') }}
</el-button>
<el-button
type="success"
@ -72,7 +72,7 @@
:loading="exportLoading"
v-hasPermi="['mes:mold-operate:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldOperate.export') }}
</el-button>
</el-form-item>
</el-form>
@ -81,24 +81,24 @@
<!-- 列表 -->
<ContentWrap>
<el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-tab-pane label="上模" name="1" />
<el-tab-pane label="下模" name="2" />
<el-tab-pane :label="t('MoldManagement.MoldOperate.tabUp')" name="1" />
<el-tab-pane :label="t('MoldManagement.MoldOperate.tabDown')" name="2" />
</el-tabs>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<!-- <el-table-column label="ID" align="center" prop="id" /> -->
<!-- <el-table-column label="操作类型" align="center" prop="operateType" /> -->
<el-table-column label="模具名称" align="center" prop="moldName" />
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="操作人" align="center" prop="creatorName" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column :label="t('MoldManagement.MoldOperate.moldName')" align="center" prop="moldName" />
<el-table-column :label="t('MoldManagement.MoldOperate.deviceName')" align="center" prop="deviceName" />
<el-table-column :label="t('MoldManagement.MoldOperate.creatorName')" align="center" prop="creatorName" />
<el-table-column :label="t('MoldManagement.MoldOperate.remark')" align="center" prop="remark" />
<el-table-column
label="操作时间"
:label="t('MoldManagement.MoldOperate.createTime')"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center" min-width="120px">
<el-table-column :label="t('MoldManagement.MoldOperate.operate')" align="center" min-width="140px">
<template #default="scope">
<!-- <el-button
link
@ -113,9 +113,7 @@
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:mold-operate:delete']"
>
删除
</el-button>
>{{ t('MoldManagement.MoldOperate.delete') }}</el-button>
</template>
</el-table-column>
</el-table>
@ -213,7 +211,7 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await MoldOperateApi.exportMoldOperate(queryParams)
download.excel(data, '模具上下模.xls')
download.excel(data, t('MoldManagement.MoldOperate.exportFilename'))
} catch {
} finally {
exportLoading.value = false
@ -231,4 +229,4 @@ const handleTabClick = (tab: TabsPaneContext) => {
onMounted(() => {
getList()
})
</script>
</script>

@ -4,18 +4,18 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
label-width="110px"
v-loading="formLoading"
:disabled="disabled"
>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="入库类型" prop="inType">
<el-form-item :label="t('MoldManagement.MoldReturn.inType')" prop="inType">
<el-select
v-model="formData.inType"
clearable
filterable
placeholder="请选择入库类型"
:placeholder="t('MoldManagement.MoldReturn.placeholderInType')"
class="!w-1/1"
disabled
>
@ -29,8 +29,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库单号" prop="no">
<el-input disabled v-model="formData.no" placeholder="保存时自动生成" />
<el-form-item :label="t('MoldManagement.MoldReturn.inNo')" prop="no">
<el-input
disabled
v-model="formData.no"
:placeholder="t('MoldManagement.MoldReturn.placeholderInNoAuto')"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
@ -52,30 +56,30 @@
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="入库时间" prop="inTime">
<el-form-item :label="t('MoldManagement.MoldReturn.inTimeSingle')" prop="inTime">
<el-date-picker
v-model="formData.inTime"
type="date"
value-format="x"
placeholder="选择入库时间"
:placeholder="t('MoldManagement.MoldReturn.placeholderInTime')"
class="!w-1/1"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-form-item :label="t('MoldManagement.MoldReturn.remarkSingle')" prop="remark">
<el-input
type="textarea"
v-model="formData.remark"
:rows="1"
placeholder="请输入备注"
:placeholder="t('MoldManagement.MoldReturn.placeholderRemark')"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附件" prop="fileUrl">
<el-form-item :label="t('MoldManagement.MoldReturn.attachment')" prop="fileUrl">
<UploadFile :is-show-tip="false" v-model="formData.fileUrl" :limit="1" />
</el-form-item>
</el-col>
@ -84,16 +88,16 @@
<!-- 子表的表单 -->
<ContentWrap>
<el-tabs v-model="subTabsName" class="-mt-15px -mb-10px">
<el-tab-pane label="入库模具清单" name="item">
<el-tab-pane :label="t('MoldManagement.MoldReturn.itemListTitle')" name="item">
<StockInItemForm ref="itemFormRef" :items="formData.items" :disabled="disabled" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading" v-if="!disabled">
{{ t('action.save') }}
</el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
</template>
</Dialog>
</template>
@ -123,8 +127,12 @@ const formData = ref({
items: []
})
const formRules = reactive({
inTime: [{ required: true, message: '入库时间不能为空', trigger: 'blur' }],
inType: [{ required: true, message: '入库类型不能为空', trigger: 'blur' }]
inTime: [
{ required: true, message: t('MoldManagement.MoldReturn.validatorInTimeRequired'), trigger: 'blur' }
],
inType: [
{ required: true, message: t('MoldManagement.MoldReturn.validatorInTypeRequired'), trigger: 'blur' }
]
})
const disabled = computed(() => formType.value === 'detail')
const formRef = ref() // Ref
@ -132,9 +140,8 @@ const customerList = ref<CustomerVO[]>([]) // 客户列表
const options = [
{
value: '模具入库',
label: '模具入库',
},
label: t('MoldManagement.MoldReturn.moduleName')
}
]
/** 子表的表单 */
const subTabsName = ref('item')

@ -9,8 +9,8 @@
:disabled="disabled"
>
<el-table :data="formData" show-summary :summary-method="getSummaries" class="-mt-10px">
<el-table-column label="序号" type="index" align="center" width="60" />
<el-table-column label="仓库名称" min-width="125">
<el-table-column :label="t('MoldManagement.MoldReturn.itemIndex')" type="index" align="center" width="60" />
<el-table-column :label="t('MoldManagement.MoldReturn.itemWarehouseName')" min-width="125">
<template #default="{ row, $index }">
<el-form-item
:prop="`${$index}.warehouseId`"
@ -21,7 +21,7 @@
v-model="row.warehouseId"
clearable
filterable
placeholder="请选择仓库"
:placeholder="t('MoldManagement.MoldReturn.placeholderWarehouse')"
@change="onChangeWarehouse($event, row)"
>
<el-option
@ -34,7 +34,7 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="模具名称" min-width="180">
<el-table-column :label="t('MoldManagement.MoldReturn.itemMoldName')" min-width="180">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!">
<el-select
@ -42,7 +42,7 @@
clearable
filterable
@change="onChangeProduct($event, row)"
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldReturn.placeholderMold')"
>
<el-option
v-for="item in productList"
@ -54,28 +54,28 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="库存" min-width="100">
<el-table-column :label="t('MoldManagement.MoldReturn.itemStockCount')" min-width="100">
<template #default="{ row }">
<el-form-item class="mb-0px!">
<el-input disabled v-model="row.stockCount" :formatter="erpCountInputFormatter" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="模具编码" min-width="150">
<el-table-column :label="t('MoldManagement.MoldReturn.itemMoldCode')" min-width="150">
<template #default="{ row }">
<el-form-item class="mb-0px!">
<el-input disabled v-model="row.productBarCode" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="单位" min-width="80">
<el-table-column :label="t('MoldManagement.MoldReturn.itemUnitName')" min-width="80">
<template #default="{ row }">
<el-form-item class="mb-0px!">
<el-input disabled v-model="row.productUnitName" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="数量" prop="count" fixed="right" min-width="140">
<el-table-column :label="t('MoldManagement.MoldReturn.itemCount')" prop="count" fixed="right" min-width="140">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.count`" :rules="formRules.count" class="mb-0px!">
<el-input-number
@ -108,14 +108,14 @@
</el-form-item>
</template>
</el-table-column> -->
<el-table-column label="备注" fixed="right" min-width="150">
<el-table-column :label="t('MoldManagement.MoldReturn.itemRemark')" fixed="right" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" class="mb-0px!">
<el-input v-model="row.remark" placeholder="请输入备注" />
<el-input v-model="row.remark" :placeholder="t('MoldManagement.MoldReturn.placeholderRemark')" />
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<el-table-column align="center" fixed="right" :label="t('MoldManagement.MoldReturn.itemOperate')" width="60">
<template #default="{ $index }">
<el-button type="danger" @click="handleDelete($index)" link>
<Icon icon="ep:delete" />
@ -125,7 +125,7 @@
</el-table>
</el-form>
<el-row justify="center" class="mt-3" v-if="!disabled">
<el-button @click="handleAdd" round>+ 添加入库模具</el-button>
<el-button @click="handleAdd" round>+ {{ t('MoldManagement.MoldReturn.itemAddButton') }}</el-button>
</el-row>
</template>
<script setup lang="ts">
@ -146,11 +146,14 @@ const props = defineProps<{
}>()
const formLoading = ref(false) //
const formData = ref([])
const { t } = useI18n()
const formRules = reactive({
inId: [{ required: true, message: '入库编号不能为空', trigger: 'blur' }],
warehouseId: [{ required: true, message: '仓库不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '模具不能为空', trigger: 'blur' }],
count: [{ required: true, message: '数量不能为空', trigger: 'blur' }]
inId: [{ required: true, message: t('MoldManagement.MoldReturn.validatorItemInIdRequired'), trigger: 'blur' }],
warehouseId: [
{ required: true, message: t('MoldManagement.MoldReturn.validatorItemWarehouseRequired'), trigger: 'blur' }
],
productId: [{ required: true, message: t('MoldManagement.MoldReturn.validatorItemMoldRequired'), trigger: 'blur' }],
count: [{ required: true, message: t('MoldManagement.MoldReturn.validatorItemCountRequired'), trigger: 'blur' }]
})
const formRef = ref([]) // Ref
const productList = ref<MoldVO[]>([]) //
@ -187,7 +190,7 @@ const getSummaries = (param: SummaryMethodProps) => {
const sums: string[] = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
sums[index] = t('MoldManagement.MoldReturn.sumLabel')
return
}
if (['count', 'totalPrice'].includes(column.property)) {

@ -7,23 +7,23 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="110px"
>
<el-form-item label="入库单号" prop="no">
<el-form-item :label="t('MoldManagement.MoldReturn.no')" prop="no">
<el-input
v-model="queryParams.no"
placeholder="请选择入库单号"
:placeholder="t('MoldManagement.MoldReturn.placeholderNo')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="模具" prop="productId">
<el-form-item :label="t('MoldManagement.MoldReturn.mold')" prop="productId">
<el-select
v-model="queryParams.productId"
clearable
filterable
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldReturn.placeholderMold')"
class="!w-240px"
>
<el-option
@ -34,13 +34,13 @@
/>
</el-select>
</el-form-item>
<el-form-item label="入库时间" prop="outTime">
<el-form-item :label="t('MoldManagement.MoldReturn.inTime')" prop="outTime">
<el-date-picker
v-model="queryParams.outTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldReturn.placeholderInTimeStart')"
:end-placeholder="t('MoldManagement.MoldReturn.placeholderInTimeEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
@ -61,12 +61,12 @@
/>
</el-select>
</el-form-item> -->
<el-form-item label="仓库" prop="warehouseId">
<el-form-item :label="t('MoldManagement.MoldReturn.warehouse')" prop="warehouseId">
<el-select
v-model="queryParams.warehouseId"
clearable
filterable
placeholder="请选择仓库"
:placeholder="t('MoldManagement.MoldReturn.placeholderWarehouse')"
class="!w-240px"
>
<el-option
@ -77,12 +77,12 @@
/>
</el-select>
</el-form-item>
<el-form-item label="创建人" prop="creator">
<el-form-item :label="t('MoldManagement.MoldReturn.creator')" prop="creator">
<el-select
v-model="queryParams.creator"
clearable
filterable
placeholder="请选择创建人"
:placeholder="t('MoldManagement.MoldReturn.placeholderCreator')"
class="!w-240px"
>
<el-option
@ -93,8 +93,13 @@
/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
<el-form-item :label="t('MoldManagement.MoldReturn.status')" prop="status">
<el-select
v-model="queryParams.status"
:placeholder="t('MoldManagement.MoldReturn.placeholderStatus')"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.ERP_AUDIT_STATUS)"
:key="dict.value"
@ -103,25 +108,25 @@
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-form-item :label="t('MoldManagement.MoldReturn.remark')" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
:placeholder="t('MoldManagement.MoldReturn.placeholderRemark')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['erp:stock-out:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.add') }}
</el-button>
<el-button
type="success"
@ -130,7 +135,7 @@
:loading="exportLoading"
v-hasPermi="['erp:stock-out:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.export') }}
</el-button>
<el-button
type="danger"
@ -139,7 +144,7 @@
v-hasPermi="['erp:stock-out:delete']"
:disabled="selectionList.length === 0"
>
<Icon icon="ep:delete" class="mr-5px" /> 删除
<Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.delete') }}
</el-button>
</el-form-item>
</el-form>
@ -161,19 +166,19 @@
:show-overflow-tooltip="true"
@selection-change="handleSelectionChange"
>
<el-table-column width="30" label="选择" type="selection" />
<el-table-column min-width="180" label="入库单号" align="center" prop="no" />
<el-table-column label="模具信息" align="left" sortable prop="productNames" min-width="150" />
<el-table-column width="30" :label="t('MoldManagement.MoldReturn.select')" type="selection" />
<el-table-column min-width="180" :label="t('MoldManagement.MoldReturn.no')" align="center" prop="no" />
<el-table-column :label="t('MoldManagement.MoldReturn.moldInfo')" align="left" sortable prop="productNames" min-width="150" />
<!-- <el-table-column label="客户" align="center" prop="customerName" /> -->
<el-table-column
label="入库时间"
:label="t('MoldManagement.MoldReturn.inTime')"
align="center"
sortable
prop="outTime"
:formatter="dateFormatter2"
width="120px"
/>
<el-table-column label="创建人" align="center" prop="creatorName" />
<el-table-column :label="t('MoldManagement.MoldReturn.creator')" align="center" prop="creatorName" />
<!-- <el-table-column
label="数量"
align="right"
@ -188,19 +193,19 @@
prop="totalPrice"
:formatter="erpPriceTableColumnFormatter"
/> -->
<el-table-column label="状态" align="center" fixed="right" width="90" prop="status">
<el-table-column :label="t('MoldManagement.MoldReturn.status')" align="center" fixed="right" width="90" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ERP_AUDIT_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="220">
<el-table-column :label="t('MoldManagement.MoldReturn.operate')" align="center" fixed="right" width="220">
<template #default="scope">
<el-button
link
@click="openForm('detail', scope.row.id)"
v-hasPermi="['erp:stock-out:query']"
>
详情
{{ t('MoldManagement.MoldReturn.detail') }}
</el-button>
<el-button
link
@ -209,7 +214,7 @@
v-hasPermi="['erp:stock-out:update']"
:disabled="scope.row.status === 20"
>
编辑
{{ t('MoldManagement.MoldReturn.edit') }}
</el-button>
<el-button
link
@ -218,7 +223,7 @@
v-hasPermi="['erp:stock-out:update-status']"
v-if="scope.row.status === 10"
>
审批
{{ t('MoldManagement.MoldReturn.approve') }}
</el-button>
<el-button
link
@ -227,7 +232,7 @@
v-hasPermi="['erp:stock-out:update-status']"
v-else
>
反审批
{{ t('MoldManagement.MoldReturn.unapprove') }}
</el-button>
<el-button
link
@ -235,7 +240,7 @@
@click="handleDelete([scope.row.id])"
v-hasPermi="['erp:stock-out:delete']"
>
删除
{{ t('MoldManagement.MoldReturn.delete') }}
</el-button>
</template>
</el-table-column>
@ -343,11 +348,11 @@ const handleDelete = async (ids: number[]) => {
/** 审批/反审批操作 */
const handleUpdateStatus = async (id: number, status: number) => {
try {
//
await message.confirm(`确定${status === 20 ? '审批' : '反审批'}该入库单吗?`)
//
const confirmText = status === 20 ? t('MoldManagement.MoldReturn.approveConfirm') : t('MoldManagement.MoldReturn.unapproveConfirm')
await message.confirm(confirmText)
await StockInApi.updateStockInStatus(id, status)
message.success(`${status === 20 ? '审批' : '反审批'}成功`)
const successText = status === 20 ? t('MoldManagement.MoldReturn.approveSuccess') : t('MoldManagement.MoldReturn.unapproveSuccess')
message.success(successText)
//
await getList()
} catch {}
@ -361,7 +366,7 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await StockInApi.exportStockIn(queryParams)
download.excel(data, '模具入库单.xls')
download.excel(data, t('MoldManagement.MoldReturn.exportFilename'))
} catch {
} finally {
exportLoading.value = false

@ -166,7 +166,7 @@
:label="t('EquipmentManagement.TaskManagement.operate')"
fixed="right"
align="center"
width="230"
min-width="230"
>
<template #default="scope">
<el-button

@ -4,29 +4,51 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
label-width="110px"
v-loading="formLoading"
>
<el-form-item label="项目编码" prop="subjectCode">
<el-input v-model="formData.subjectCode" placeholder="请输入项目编码" />
<el-form-item :label="t('MoldManagement.MoldInspectionItems.code')" prop="subjectCode">
<el-input
v-model="formData.subjectCode"
:placeholder="t('MoldManagement.MoldInspectionItems.placeholderSubjectCode')"
/>
</el-form-item>
<el-form-item label="项目名称" prop="subjectName">
<el-input v-model="formData.subjectName" placeholder="请输入项目名称" />
<el-form-item :label="t('MoldManagement.MoldInspectionItems.name')" prop="subjectName">
<el-input
v-model="formData.subjectName"
:placeholder="t('MoldManagement.MoldInspectionItems.placeholderSubjectName')"
/>
</el-form-item>
<el-form-item label="检验方式" prop="inspectionMethod">
<el-select v-model="formData.inspectionMethod" placeholder="请选择检验方式" clearable filterable class="!w-full">
<el-form-item :label="t('MoldManagement.MoldInspectionItems.inspectionMethod')" prop="inspectionMethod">
<el-select
v-model="formData.inspectionMethod"
:placeholder="t('MoldManagement.MoldInspectionItems.placeholderInspectionMethod')"
clearable
filterable
class="!w-full"
>
<el-option v-for="dict in inspectionMethodOptions" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="值类型" prop="valueType">
<el-select v-model="formData.valueType" placeholder="请选择值类型" clearable filterable class="!w-full">
<el-form-item :label="t('MoldManagement.MoldInspectionItems.valueType')" prop="valueType">
<el-select
v-model="formData.valueType"
:placeholder="t('MoldManagement.MoldInspectionItems.placeholderValueType')"
clearable
filterable
class="!w-full"
>
<el-option v-for="dict in valueTypeOptions" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="判定基准" prop="judgmentCriteria">
<el-input v-model="formData.judgmentCriteria" placeholder="请输入判定基准" type="textarea" />
<el-form-item :label="t('MoldManagement.MoldInspectionItems.judgmentCriteria')" prop="judgmentCriteria">
<el-input
v-model="formData.judgmentCriteria"
:placeholder="t('MoldManagement.MoldInspectionItems.placeholderJudgmentCriteriaForm')"
type="textarea"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-form-item :label="t('MoldManagement.MoldInspectionItems.isEnable')" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)" :key="dict.value" :label="dict.value">
{{ dict.label }}
@ -35,8 +57,8 @@
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('action.save') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
</template>
</Dialog>
</template>
@ -71,12 +93,24 @@ const formData = ref({
judgmentCriteria: undefined,
})
const formRules = reactive({
subjectCode: [{ required: true, message: '项目编码不能为空', trigger: 'blur' }],
subjectName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
inspectionMethod: [{ required: true, message: '检验方式不能为空', trigger: 'change' }],
valueType: [{ required: true, message: '值类型不能为空', trigger: 'change' }],
judgmentCriteria: [{ required: true, message: '判定基准不能为空', trigger: 'blur' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'change' }],
subjectCode: [
{ required: true, message: t('MoldManagement.MoldInspectionItems.validatorSubjectCodeRequired'), trigger: 'blur' }
],
subjectName: [
{ required: true, message: t('MoldManagement.MoldInspectionItems.validatorSubjectNameRequired'), trigger: 'blur' }
],
inspectionMethod: [
{ required: true, message: t('MoldManagement.MoldInspectionItems.validatorInspectionMethodRequired'), trigger: 'change' }
],
valueType: [
{ required: true, message: t('MoldManagement.MoldInspectionItems.validatorValueTypeRequired'), trigger: 'change' }
],
judgmentCriteria: [
{ required: true, message: t('MoldManagement.MoldInspectionItems.validatorJudgmentCriteriaRequired'), trigger: 'blur' }
],
isEnable: [
{ required: true, message: t('MoldManagement.MoldInspectionItems.validatorIsEnableRequired'), trigger: 'change' }
],
})
const formRef = ref() // Ref
@ -148,4 +182,3 @@ const resetForm = () => {
formRef.value?.resetFields()
}
</script>

@ -1,39 +1,39 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
<el-form-item label="编码" prop="subjectCode">
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="110px">
<el-form-item :label="t('MoldManagement.MoldInspectionItems.code')" prop="subjectCode">
<el-input
v-model="queryParams.subjectCode" placeholder="请输入编码" clearable @keyup.enter="handleQuery"
v-model="queryParams.subjectCode" :placeholder="t('MoldManagement.MoldInspectionItems.placeholderCode')" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="名称" prop="subjectName">
<el-form-item :label="t('MoldManagement.MoldInspectionItems.name')" prop="subjectName">
<el-input
v-model="queryParams.subjectName" placeholder="请输入名称" clearable @keyup.enter="handleQuery"
v-model="queryParams.subjectName" :placeholder="t('MoldManagement.MoldInspectionItems.placeholderName')" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="判定基准" prop="judgmentCriteria">
<el-form-item :label="t('MoldManagement.MoldInspectionItems.judgmentCriteria')" prop="judgmentCriteria">
<el-input
v-model="queryParams.judgmentCriteria" placeholder="请输入判定基准" clearable @keyup.enter="handleQuery"
v-model="queryParams.judgmentCriteria" :placeholder="t('MoldManagement.MoldInspectionItems.placeholderJudgmentCriteria')" clearable @keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item>
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
<Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}
</el-button>
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['mes:dv-subject:create']">
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldInspectionItems.add') }}
</el-button>
<el-button type="danger" plain @click="handleBatchDelete" v-hasPermi="['mes:dv-subject:delete']">
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
<Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldInspectionItems.batchDelete') }}
</el-button>
<el-button
type="success" plain @click="handleExport" :loading="exportLoading"
v-hasPermi="['mes:dv-subject:export']">
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldInspectionItems.export') }}
</el-button>
</el-form-item>
</el-form>
@ -45,14 +45,14 @@ type="success" plain @click="handleExport" :loading="exportLoading"
ref="tableRef" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" row-key="id"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" fixed="left" reserve-selection />
<el-table-column label="序号" align="center" width="80" fixed="left">
<el-table-column :label="t('MoldManagement.MoldInspectionItems.index')" align="center" width="80" fixed="left">
<template #default="scope">
{{ (queryParams.pageNo - 1) * queryParams.pageSize + scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="编码" align="center" prop="subjectCode" />
<el-table-column label="名称" align="center" prop="subjectName" />
<el-table-column label="检验方式" align="center" prop="inspectionMethod" width="120px">
<el-table-column :label="t('MoldManagement.MoldInspectionItems.code')" align="center" prop="subjectCode" />
<el-table-column :label="t('MoldManagement.MoldInspectionItems.name')" align="center" prop="subjectName" />
<el-table-column :label="t('MoldManagement.MoldInspectionItems.inspectionMethod')" align="center" prop="inspectionMethod" width="120px">
<template #default="scope">
<el-tag
effect="light" :type="getTagType('Inspection_method', scope.row.inspectionMethod)"
@ -62,7 +62,7 @@ effect="light" :type="getTagType('Inspection_method', scope.row.inspectionMethod
</el-tag>
</template>
</el-table-column>
<el-table-column label="值类型" align="center" prop="valueType" width="120px">
<el-table-column :label="t('MoldManagement.MoldInspectionItems.valueType')" align="center" prop="valueType" width="120px">
<template #default="scope">
<el-tag
effect="light" :type="getTagType('value_types', scope.row.valueType)"
@ -72,18 +72,18 @@ effect="light" :type="getTagType('value_types', scope.row.valueType)"
</el-tag>
</template>
</el-table-column>
<el-table-column label="判定基准" align="center" prop="judgmentCriteria" />
<el-table-column label="创建人" align="center" prop="creatorName" />
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
<el-table-column label="操作" align="center" fixed="right" width="160px">
<el-table-column :label="t('MoldManagement.MoldInspectionItems.judgmentCriteria')" align="center" prop="judgmentCriteria" />
<el-table-column :label="t('MoldManagement.MoldInspectionItems.creatorName')" align="center" prop="creatorName" />
<el-table-column :label="t('MoldManagement.MoldInspectionItems.createTime')" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
<el-table-column :label="t('MoldManagement.MoldInspectionItems.operate')" align="center" fixed="right" width="160px">
<template #default="scope">
<el-button
link type="primary" @click="openForm('update', scope.row.id)"
v-hasPermi="['mes:dv-subject:update']">
编辑
{{ t('MoldManagement.MoldInspectionItems.edit') }}
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['mes:dv-subject:delete']">
删除
{{ t('MoldManagement.MoldInspectionItems.delete') }}
</el-button>
</template>
</el-table-column>
@ -218,7 +218,7 @@ const handleDelete = async (ids: number | number[]) => {
const handleBatchDelete = async () => {
if (!selectedIds.value.length) {
message.error('请选择需要删除的数据')
message.error(t('MoldManagement.MoldInspectionItems.selectDeleteTip'))
return
}
await handleDelete(selectedIds.value)
@ -234,7 +234,7 @@ const handleExport = async () => {
ids: selectedIds.value.length ? selectedIds.value.join(',') : undefined,
}
const data = await DvSubjectApi.exportDvSubject(params)
download.excel(data, '维保项目.xls')
download.excel(data, t('MoldManagement.MoldInspectionItems.exportFilename'))
} catch {
} finally {
exportLoading.value = false

@ -1,28 +1,45 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="720px">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
<el-form-item label="方案名称" prop="planName" required>
<el-input v-model="formData.planName" placeholder="请输入方案名称" />
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="110px"
v-loading="formLoading"
>
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.planName')" prop="planName" required>
<el-input
v-model="formData.planName"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderPlanName')"
/>
</el-form-item>
<el-form-item label="方案类型" prop="planType" required>
<el-select v-model="formData.planType" placeholder="请选择方案类型" class="!w-full">
<el-option :value="1" label="保养" />
<el-option :value="2" label="维护" />
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.planType')" prop="planType" required>
<el-select
v-model="formData.planType"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderPlanType')"
class="!w-full"
>
<el-option :value="1" :label="t('MoldManagement.MoldInspectionPlan.planTypeMaintain')" />
<el-option :value="2" :label="t('MoldManagement.MoldInspectionPlan.planTypeInspect')" />
</el-select>
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input v-model="formData.description" placeholder="请输入描述" type="textarea" />
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.description')" prop="description">
<el-input
v-model="formData.description"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderDescription')"
type="textarea"
/>
</el-form-item>
<el-form-item label="关联项目" prop="subjectIds">
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.subjectName')" prop="subjectIds">
<el-select
v-model="formData.subjectIds"
multiple
filterable
clearable
placeholder="请选择关联项目"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderSubjectSelect')"
class="!w-full"
>
<el-option v-for="item in subjectOptions" :key="item.id" :label="item.subjectName" :value="item.id" />
@ -31,8 +48,8 @@
</el-form>
<template #footer>
<el-button type="primary" @click="submitForm" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submitForm" :disabled="formLoading">{{ t('common.ok') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button>
</template>
</Dialog>
</template>
@ -91,8 +108,20 @@ const initFormData = () => ({
const formData = ref(initFormData())
const formRules = reactive<FormRules>({
planName: [{ required: true, message: '方案名称不能为空', trigger: 'blur' }],
planType: [{ required: true, message: '方案类型不能为空', trigger: 'change' }]
planName: [
{
required: true,
message: t('MoldManagement.MoldInspectionPlan.validatorPlanNameRequired'),
trigger: 'blur'
}
],
planType: [
{
required: true,
message: t('MoldManagement.MoldInspectionPlan.validatorPlanTypeRequired'),
trigger: 'change'
}
]
})
const formRef = ref()
@ -148,4 +177,3 @@ const resetForm = () => {
formRef.value?.resetFields()
}
</script>

@ -1,38 +1,45 @@
<template>
<ContentWrap>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="60px">
<el-form-item label="名称" prop="planName">
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="110px">
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.planName')" prop="planName">
<el-input
v-model="queryParams.planName"
placeholder="请输入名称"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderPlanName')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="类型" prop="planType">
<el-select v-model="queryParams.planType" placeholder="请选择类型" clearable class="!w-240px">
<el-option :value="1" label="保养" />
<el-option :value="2" label="维护" />
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.planType')" prop="planType">
<el-select
v-model="queryParams.planType"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderPlanType')"
clearable
class="!w-240px"
>
<el-option :value="1" :label="t('MoldManagement.MoldInspectionPlan.planTypeMaintain')" />
<el-option :value="2" :label="t('MoldManagement.MoldInspectionPlan.planTypeInspect')" />
</el-select>
</el-form-item>
<el-form-item label="描述" prop="description">
<el-form-item :label="t('MoldManagement.MoldInspectionPlan.description')" prop="description">
<el-input
v-model="queryParams.description"
placeholder="请输入描述"
:placeholder="t('MoldManagement.MoldInspectionPlan.placeholderDescription')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}</el-button>
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['mes:plan-maintenance:create']">
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" />
{{ t('MoldManagement.MoldInspectionPlan.add') }}
</el-button>
<el-button type="danger" plain @click="handleBatchDelete" v-hasPermi="['mes:plan-maintenance:delete']">
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
<Icon icon="ep:delete" class="mr-5px" />
{{ t('MoldManagement.MoldInspectionPlan.batchDelete') }}
</el-button>
<el-button
type="success"
@ -41,7 +48,8 @@
:loading="exportLoading"
v-hasPermi="['mes:plan-maintenance:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" />
{{ t('MoldManagement.MoldInspectionPlan.export') }}
</el-button>
</el-form-item>
</el-form>
@ -67,14 +75,19 @@
:show-overflow-tooltip="true"
size="small"
>
<el-table-column label="序号" align="center" width="80">
<el-table-column :label="t('MoldManagement.MoldInspectionPlan.index')" align="center" width="80">
<template #default="s2">
{{ s2.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="编码" align="center" prop="subjectCode" />
<el-table-column label="名称" align="center" prop="subjectName" />
<el-table-column label="检验方式" align="center" prop="inspectionMethod" width="120">
<el-table-column :label="t('MoldManagement.MoldInspectionPlan.subjectCode')" align="center" prop="subjectCode" />
<el-table-column :label="t('MoldManagement.MoldInspectionPlan.subjectName')" align="center" prop="subjectName" />
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.inspectionMethod')"
align="center"
prop="inspectionMethod"
width="120"
>
<template #default="s2">
<span v-if="s2.row.inspectionMethod === undefined || s2.row.inspectionMethod === null || s2.row.inspectionMethod === ''">-</span>
<el-tag
@ -89,36 +102,77 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="判定基准" align="center" prop="judgmentCriteria" />
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.judgmentCriteria')"
align="center"
prop="judgmentCriteria"
/>
</el-table>
</div>
</template>
</el-table-column>
<el-table-column label="序号" align="center" width="80">
<el-table-column :label="t('MoldManagement.MoldInspectionPlan.index')" align="center" width="80">
<template #default="scope">
{{ (queryParams.pageNo - 1) * queryParams.pageSize + scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="名称" align="center" prop="planName" min-width="160" />
<el-table-column label="类型" align="center" prop="planType" width="110">
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.planName')"
align="center"
prop="planName"
min-width="160"
/>
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.planType')"
align="center"
prop="planType"
width="110"
>
<template #default="scope">
<el-tag effect="light" :type="getPlanTypeTagType(scope.row.planType)">
{{ getPlanTypeLabel(scope.row.planType) }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="描述" align="center" prop="description" min-width="220" />
<el-table-column label="创建人" align="center" prop="creatorName" width="140" />
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180" />
<el-table-column label="更新时间" align="center" prop="updateTime" :formatter="dateFormatter" width="180" />
<el-table-column label="操作" align="center" fixed="right" width="160">
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.description')"
align="center"
prop="description"
min-width="220"
/>
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.creatorName')"
align="center"
prop="creatorName"
width="140"
/>
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.createTime')"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180"
/>
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.updateTime')"
align="center"
prop="updateTime"
:formatter="dateFormatter"
width="180"
/>
<el-table-column
:label="t('MoldManagement.MoldInspectionPlan.operate')"
align="center"
fixed="right"
width="160"
>
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row)" v-hasPermi="['mes:plan-maintenance:update']">
编辑
{{ t('MoldManagement.MoldInspectionPlan.edit') }}
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['mes:plan-maintenance:delete']">
删除
{{ t('MoldManagement.MoldInspectionPlan.delete') }}
</el-button>
</template>
</el-table-column>
@ -263,8 +317,8 @@ const handleExpandChange = async (row: PlanMaintenanceVO, expandedRows: PlanMain
const getPlanTypeLabel = (value: any) => {
const v = value === '' || value === null || value === undefined ? undefined : Number(value)
if (v === 1) return '保养'
if (v === 2) return '维护'
if (v === 1) return t('MoldManagement.MoldInspectionPlan.planTypeMaintain')
if (v === 2) return t('MoldManagement.MoldInspectionPlan.planTypeInspect')
return value ?? ''
}
@ -297,7 +351,7 @@ const handleDelete = async (ids: number | string | Array<number | string>) => {
const handleBatchDelete = async () => {
if (!selectedIds.value.length) {
message.error('请选择需要删除的数据')
message.error(t('MoldManagement.MoldInspectionPlan.selectDeleteTip'))
return
}
await handleDelete(selectedIds.value)
@ -312,7 +366,7 @@ const handleExport = async () => {
ids: selectedIds.value.length ? selectedIds.value.join(',') : undefined
}
const data = await PlanMaintenanceApi.exportPlanMaintenance(params)
download.excel(data, '方案维护.xls')
download.excel(data, t('MoldManagement.MoldInspectionPlan.exportFilename'))
} catch {
} finally {
exportLoading.value = false

@ -1,36 +1,47 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="1200px" @closed="handleDialogClosed">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px" v-loading="formLoading">
<el-row>
<el-col :span="8">
<el-form-item label="维修单编号" prop="repairCode">
<el-input v-model="formData.repairCode" placeholder="请输入维修单编号" :disabled="isRepairMode" />
<el-form-item :label="t('MoldManagement.MoldRepair.repairCode')" prop="repairCode">
<el-input
v-model="formData.repairCode"
:placeholder="t('MoldManagement.MoldRepair.placeholderRepairCode')"
:disabled="isRepairMode"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="维修单" prop="repairName">
<el-input v-model="formData.repairName" placeholder="请输入维修单名称" :disabled="isRepairMode" />
<el-form-item :label="t('MoldManagement.MoldRepair.repairName')" prop="repairName">
<el-input
v-model="formData.repairName"
:placeholder="t('MoldManagement.MoldRepair.placeholderRepairName')"
:disabled="isRepairMode"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="模具" prop="moldId">
<el-form-item :label="t('MoldManagement.MoldRepair.mold')" prop="moldId">
<el-select
v-model="formData.moldId" filterable clearable :loading="moldLoading"
:disabled="isRepairMode" placeholder="请选择模具" class="!w-full">
:disabled="isRepairMode"
:placeholder="t('MoldManagement.MoldRepair.placeholderMold')"
class="!w-full"
>
<el-option v-for="opt in moldOptions" :key="String(opt.value)" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="模具名称" prop="moldName" :required="false">
<el-input v-model="formData.moldName" placeholder="自动带出" disabled />
<el-form-item :label="t('MoldManagement.MoldRepair.moldName')" prop="moldName" :required="false">
<el-input v-model="formData.moldName" :placeholder="t('MoldManagement.MoldRepair.placeholderMoldNameAuto')" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="模具编码" prop="moldCode" :required="false">
<el-input v-model="formData.moldCode" placeholder="自动带出" disabled />
<el-form-item :label="t('MoldManagement.MoldRepair.moldCode')" prop="moldCode" :required="false">
<el-input v-model="formData.moldCode" :placeholder="t('MoldManagement.MoldRepair.placeholderMoldCodeAuto')" disabled />
</el-form-item>
</el-col>
<!-- <el-col :span="8">
@ -44,18 +55,22 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="维修人员" prop="acceptedBy">
<el-form-item :label="t('MoldManagement.MoldRepair.repairUser')" prop="acceptedBy">
<el-select
v-model="formData.acceptedBy" filterable clearable placeholder="请选择维修人员" class="!w-full"
v-model="formData.acceptedBy" filterable clearable
:placeholder="t('MoldManagement.MoldRepair.placeholderAcceptUser')"
class="!w-full"
:disabled="isRepairMode">
<el-option v-for="item in users" :key="String(item.id)" :label="item.nickname" :value="String(item.id)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="验收人员" prop="confirmBy">
<el-form-item :label="t('MoldManagement.MoldRepair.confirmUser')" prop="confirmBy">
<el-select
v-model="formData.confirmBy" filterable clearable placeholder="请选择验收人员" class="!w-full"
v-model="formData.confirmBy" filterable clearable
:placeholder="t('MoldManagement.MoldRepair.placeholderConfirmUser')"
class="!w-full"
:disabled="isRepairMode">
<el-option v-for="item in users" :key="String(item.id)" :label="item.nickname" :value="String(item.id)" />
</el-select>
@ -66,34 +81,46 @@
<template v-if="showRepairFields">
<el-row>
<el-col :span="8">
<el-form-item label="报修日期" prop="requireDate">
<el-date-picker v-model="formData.requireDate" type="date" value-format="x" placeholder="选择报修日期" class="!w-full" :disabled="repairFieldsDisabled" />
<el-form-item :label="t('MoldManagement.MoldRepair.requireDate')" prop="requireDate">
<el-date-picker
v-model="formData.requireDate" type="date" value-format="x"
:placeholder="t('MoldManagement.MoldRepair.placeholderRequireDate')"
class="!w-full" :disabled="repairFieldsDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="完成日期" prop="finishDate">
<el-date-picker v-model="formData.finishDate" type="date" value-format="x" placeholder="选择完成日期" class="!w-full" :disabled="repairFieldsDisabled" />
<el-form-item :label="t('MoldManagement.MoldRepair.finishDate')" prop="finishDate">
<el-date-picker
v-model="formData.finishDate" type="date" value-format="x"
:placeholder="t('MoldManagement.MoldRepair.placeholderFinishDate')"
class="!w-full" :disabled="repairFieldsDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="验收日期" prop="confirmDate">
<el-date-picker v-model="formData.confirmDate" type="date" value-format="x" placeholder="选择验收日期" class="!w-full" :disabled="repairFieldsDisabled" />
<el-form-item :label="t('MoldManagement.MoldRepair.confirmDate')" prop="confirmDate">
<el-date-picker
v-model="formData.confirmDate" type="date" value-format="x"
:placeholder="t('MoldManagement.MoldRepair.placeholderConfirmDate')"
class="!w-full" :disabled="repairFieldsDisabled"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="维修结果" prop="repairResult">
<el-form-item :label="t('MoldManagement.MoldRepair.repairResult')" prop="repairResult">
<Editor v-model="formData.repairResult" height="150px" :readonly="repairFieldsDisabled" />
</el-form-item>
</template>
</el-form>
<el-tabs v-model="subTabsName">
<el-tab-pane label="模具维修项目行" name="moldRepairLine">
<el-tab-pane :label="t('MoldManagement.MoldRepair.tabMoldRepairLine')" name="moldRepairLine">
<MoldRepairLineForm ref="moldRepairLineFormRef" :repair-id="formData.id" />
</el-tab-pane>
</el-tabs>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button>
</template>
</Dialog>
</template>
@ -214,9 +241,9 @@ watch(
}
)
const formRules = reactive({
repairCode: [{ required: true, message: '维修单编号不能为空', trigger: 'blur' }],
repairName: [{ required: true, message: '维修单不能为空', trigger: 'blur' }],
moldId: [{ required: true, message: '模具不能为空', trigger: 'change' }],
repairCode: [{ required: true, message: t('MoldManagement.MoldRepair.validatorRepairCodeRequired'), trigger: 'blur' }],
repairName: [{ required: true, message: t('MoldManagement.MoldRepair.validatorRepairNameRequired'), trigger: 'blur' }],
moldId: [{ required: true, message: t('MoldManagement.MoldRepair.validatorMoldRequired'), trigger: 'change' }],
})
const formRef = ref()
@ -266,7 +293,12 @@ let openRequestId = 0
const open = async (type: string, id?: number) => {
const currentOpenId = ++openRequestId
dialogVisible.value = true
dialogTitle.value = type === 'repair' ? '维修' : t('action.' + type)
dialogTitle.value =
type === 'repair'
? t('MoldManagement.MoldRepair.dialogTitleRepair')
: type === 'create'
? t('MoldManagement.MoldRepair.dialogTitleCreate')
: t('MoldManagement.MoldRepair.dialogTitleUpdate')
formType.value = type
resetForm()
await ensureUsersLoaded()

@ -8,47 +8,59 @@
:inline-message="true"
>
<el-table :data="formData" class="-mt-10px">
<el-table-column label="序号" type="index" width="100" />
<el-table-column label="维修编码" min-width="150">
<el-table-column :label="t('MoldManagement.MoldRepairLine.index')" type="index" width="100" />
<el-table-column :label="t('MoldManagement.MoldRepairLine.subjectCode')" min-width="180">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.subjectCode`" :rules="formRules.subjectCode" class="mb-0px!">
<el-input v-model="row.subjectCode" placeholder="请输入维修编码" />
<el-input
v-model="row.subjectCode"
:placeholder="t('MoldManagement.MoldRepairLine.placeholderSubjectCode')"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="维修名称" min-width="150">
<el-table-column :label="t('MoldManagement.MoldRepairLine.subjectName')" min-width="180">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.subjectName`" :rules="formRules.subjectName" class="mb-0px!">
<el-input v-model="row.subjectName" placeholder="请输入维修名称" />
<el-input
v-model="row.subjectName"
:placeholder="t('MoldManagement.MoldRepairLine.placeholderSubjectName')"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="维修内容" min-width="300">
<el-table-column :label="t('MoldManagement.MoldRepairLine.subjectContent')" min-width="320">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.subjectContent`" :rules="formRules.subjectContent" class="mb-0px!">
<el-input type="textarea" v-model="row.subjectContent" placeholder="请输入维修内容" />
<el-input
type="textarea"
v-model="row.subjectContent"
:placeholder="t('MoldManagement.MoldRepairLine.placeholderSubjectContent')"
/>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
<el-row justify="center" class="mt-3">
<el-button @click="handleAdd" round>+ 添加维修项目</el-button>
<el-button @click="handleAdd" round>+ {{ t('MoldManagement.MoldRepairLine.addLine') }}</el-button>
</el-row>
</template>
<script setup lang="ts">
import { MoldRepairApi } from '@/api/mold/moldrepair'
const { t } = useI18n()
const props = defineProps<{
repairId: undefined
}>()
const formLoading = ref(false)
const formData = ref([])
const formRules = reactive({
repairId: [{ required: true, message: '维修单ID不能为空', trigger: 'blur' }],
subjectId: [{ required: true, message: '项目ID不能为空', trigger: 'blur' }],
subjectCode: [{ required: true, message: '项目编码不能为空', trigger: 'blur' }],
subjectContent: [{ required: true, message: '项目内容不能为空', trigger: 'blur' }],
repairId: [{ required: true, message: t('MoldManagement.MoldRepairLine.validatorRepairIdRequired'), trigger: 'blur' }],
subjectId: [{ required: true, message: t('MoldManagement.MoldRepairLine.validatorSubjectIdRequired'), trigger: 'blur' }],
subjectCode: [{ required: true, message: t('MoldManagement.MoldRepairLine.validatorSubjectCodeRequired'), trigger: 'blur' }],
subjectContent: [{ required: true, message: t('MoldManagement.MoldRepairLine.validatorSubjectContentRequired'), trigger: 'blur' }],
})
const formRef = ref()
@ -106,4 +118,3 @@ const setData = (rows: any[]) => {
defineExpose({ validate, getData, setData })
</script>

@ -1,71 +1,100 @@
<template>
<ContentWrap>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
<el-form-item label="维修单号" prop="repairCode">
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
<el-form-item :label="t('MoldManagement.MoldRepair.repairCode')" prop="repairCode">
<el-input
v-model="queryParams.repairCode" placeholder="请输入维修单编号" clearable @keyup.enter="handleQuery"
v-model="queryParams.repairCode"
:placeholder="t('MoldManagement.MoldRepair.placeholderRepairCode')"
clearable
@keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="维修单" prop="repairName">
<el-form-item :label="t('MoldManagement.MoldRepair.repairName')" prop="repairName">
<el-input
v-model="queryParams.repairName" placeholder="请输入维修单名称" clearable @keyup.enter="handleQuery"
v-model="queryParams.repairName"
:placeholder="t('MoldManagement.MoldRepair.placeholderRepairName')"
clearable
@keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="模具编码" prop="moldCode">
<el-input v-model="queryParams.moldCode" placeholder="请输入模具编码" clearable @keyup.enter="handleQuery" class="!w-240px" />
<el-form-item :label="t('MoldManagement.MoldRepair.moldCode')" prop="moldCode">
<el-input
v-model="queryParams.moldCode"
:placeholder="t('MoldManagement.MoldRepair.placeholderMoldCode')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="模具名称" prop="moldName">
<el-input v-model="queryParams.moldName" placeholder="请输入模具名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
<el-form-item :label="t('MoldManagement.MoldRepair.moldName')" prop="moldName">
<el-input
v-model="queryParams.moldName"
:placeholder="t('MoldManagement.MoldRepair.placeholderMoldName')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="报修日期" prop="requireDate">
<el-form-item :label="t('MoldManagement.MoldRepair.requireDate')" prop="requireDate">
<el-date-picker
v-model="queryParams.requireDate" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
start-placeholder="开始日期" end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldRepair.placeholderRequireDateStart')"
:end-placeholder="t('MoldManagement.MoldRepair.placeholderRequireDateEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" class="!w-240px" />
</el-form-item>
<el-form-item label="完成日期" prop="finishDate">
<el-form-item :label="t('MoldManagement.MoldRepair.finishDate')" prop="finishDate">
<el-date-picker
v-model="queryParams.finishDate" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
start-placeholder="开始日期" end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldRepair.placeholderFinishDateStart')"
:end-placeholder="t('MoldManagement.MoldRepair.placeholderFinishDateEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" class="!w-240px" />
</el-form-item>
<el-form-item label="验收日期" prop="confirmDate">
<el-form-item :label="t('MoldManagement.MoldRepair.confirmDate')" prop="confirmDate">
<el-date-picker
v-model="queryParams.confirmDate" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
start-placeholder="开始日期" end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldRepair.placeholderConfirmDateStart')"
:end-placeholder="t('MoldManagement.MoldRepair.placeholderConfirmDateEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" class="!w-240px" />
</el-form-item>
<el-form-item label="维修人员" prop="acceptedBy">
<el-form-item :label="t('MoldManagement.MoldRepair.repairUser')" prop="acceptedBy">
<el-input
v-model="queryParams.acceptedBy" placeholder="请输入维修人员" clearable @keyup.enter="handleQuery"
v-model="queryParams.acceptedBy"
:placeholder="t('MoldManagement.MoldRepair.placeholderRepairUser')"
clearable
@keyup.enter="handleQuery"
class="!w-240px" />
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable class="!w-240px">
<el-form-item :label="t('MoldManagement.MoldRepair.status')" prop="status">
<el-select
v-model="queryParams.status"
:placeholder="t('MoldManagement.MoldRepair.placeholderStatus')"
clearable
class="!w-240px"
>
<el-option v-for="opt in statusOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
<Icon icon="ep:search" class="mr-5px" /> {{ t('MoldManagement.MoldRepair.search') }}
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('MoldManagement.MoldRepair.reset') }}
</el-button>
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['mes:dv-repair:create']">
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldRepair.add') }}
</el-button>
<el-button type="danger" plain @click="handleBatchDelete" v-hasPermi="['mes:dv-repair:delete']">
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
<Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldRepair.batchDelete') }}
</el-button>
<el-button
type="success" plain @click="handleExport" :loading="exportLoading"
v-hasPermi="['mes:dv-repair:export']">
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldRepair.export') }}
</el-button>
</el-form-item>
</el-form>
@ -76,14 +105,14 @@
ref="tableRef" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" row-key="id"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" fixed="left" reserve-selection />
<el-table-column label="维修单号" align="center" prop="repairCode" />
<el-table-column label="维修单" align="center" prop="repairName" />
<el-table-column label="模具名称" align="center" prop="moldName">
<el-table-column :label="t('MoldManagement.MoldRepair.repairCode')" align="center" prop="repairCode" min-width="150" />
<el-table-column :label="t('MoldManagement.MoldRepair.repairName')" align="center" prop="repairName" min-width="150" />
<el-table-column :label="t('MoldManagement.MoldRepair.moldName')" align="center" prop="moldName" min-width="160">
<template #default="scope">
{{ scope.row.moldName ?? scope.row.machineryName ?? '-' }}
</template>
</el-table-column>
<el-table-column label="模具编码" align="center" prop="moldCode">
<el-table-column :label="t('MoldManagement.MoldRepair.moldCode')" align="center" prop="moldCode" min-width="160">
<template #default="scope">
{{ scope.row.moldCode ?? scope.row.machineryCode ?? '-' }}
</template>
@ -95,13 +124,22 @@
<dict-tag :type="DICT_TYPE.MES_MACHINE_TYPE" :value="scope.row.machineryTypeId" />
</template>
</el-table-column> -->
<el-table-column label="报修日期" align="center" prop="requireDate" :formatter="dateFormatter2" width="110px" />
<el-table-column label="完成日期" align="center" prop="finishDate" :formatter="dateFormatter2" width="110px" />
<el-table-column label="验收日期" align="center" prop="confirmDate" :formatter="dateFormatter2" width="110px" />
<el-table-column label="维修结果" align="center" prop="repairResult" />
<el-table-column label="维修人员" align="center" prop="acceptedBy" />
<el-table-column label="验收人员" align="center" prop="confirmBy" />
<el-table-column label="单据状态" align="center" prop="status" width="110px">
<el-table-column
:label="t('MoldManagement.MoldRepair.requireDate')" align="center" prop="requireDate"
:formatter="dateFormatter2" min-width="130"
/>
<el-table-column
:label="t('MoldManagement.MoldRepair.finishDate')" align="center" prop="finishDate"
:formatter="dateFormatter2" min-width="130"
/>
<el-table-column
:label="t('MoldManagement.MoldRepair.confirmDate')" align="center" prop="confirmDate"
:formatter="dateFormatter2" min-width="130"
/>
<el-table-column :label="t('MoldManagement.MoldRepair.repairResult')" align="center" prop="repairResult" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldRepair.acceptUser')" align="center" prop="acceptedBy" min-width="140" />
<el-table-column :label="t('MoldManagement.MoldRepair.confirmUserShort')" align="center" prop="confirmBy" min-width="140" />
<el-table-column :label="t('MoldManagement.MoldRepair.status')" align="center" prop="status" min-width="130">
<template #default="scope">
<el-tag :type="getStatusTagType(scope.row.status)" effect="light">
{{ getStatusLabel(scope.row.status) }}
@ -109,20 +147,21 @@
</template>
</el-table-column>
<el-table-column
label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="170px"
fixed="right" />
<el-table-column label="操作" align="center" fixed="right" width="200px">
:label="t('MoldManagement.MoldRepair.createTime')" align="center" prop="createTime"
:formatter="dateFormatter" min-width="170" />
<el-table-column :label="t('MoldManagement.MoldRepair.operate')" align="center" fixed="right" min-width="220">
<template #default="scope">
<el-button
link type="primary" @click="openForm('repair', scope.row.id)"
v-if="String(scope.row.status) !== '1'" v-hasPermi="['mes:dv-repair:update']">维修</el-button>
v-if="String(scope.row.status) !== '1'" v-hasPermi="['mes:dv-repair:update']"
>{{ t('MoldManagement.MoldRepair.repair') }}</el-button>
<el-button
link type="primary" @click="openForm('update', scope.row.id)"
v-hasPermi="['mes:dv-repair:update']">
编辑
{{ t('MoldManagement.MoldRepair.edit') }}
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['mes:dv-repair:delete']">
删除
{{ t('MoldManagement.MoldRepair.delete') }}
</el-button>
</template>
</el-table-column>
@ -177,14 +216,14 @@ const queryFormRef = ref()
const exportLoading = ref(false)
const statusOptions = [
{ label: '待完成', value: '0' },
{ label: '已完成', value: '1' }
{ label: t('MoldManagement.MoldRepair.statusPending'), value: '0' },
{ label: t('MoldManagement.MoldRepair.statusDone'), value: '1' }
]
const getStatusLabel = (value: any) => {
const v = value === '' || value === null || value === undefined ? undefined : String(value)
if (v === '0') return '待完成'
if (v === '1') return '已完成'
if (v === '0') return t('MoldManagement.MoldRepair.statusPending')
if (v === '1') return t('MoldManagement.MoldRepair.statusDone')
return '-'
}

@ -1,13 +1,19 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="900px">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
<el-form-item label="维修编码" prop="subjectCode">
<el-input v-model="formData.subjectCode" placeholder="请输入维修编码" />
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px" v-loading="formLoading">
<el-form-item :label="t('MoldManagement.MoldRepairItems.dialogSubjectCode')" prop="subjectCode">
<el-input
v-model="formData.subjectCode"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderDialogSubjectCode')"
/>
</el-form-item>
<el-form-item label="维修名称" prop="subjectName">
<el-input v-model="formData.subjectName" placeholder="请输入维修名称" />
<el-form-item :label="t('MoldManagement.MoldRepairItems.dialogSubjectName')" prop="subjectName">
<el-input
v-model="formData.subjectName"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderDialogSubjectName')"
/>
</el-form-item>
<el-form-item label="模具" prop="moldId">
<el-form-item :label="t('MoldManagement.MoldRepairItems.dialogMold')" prop="moldId">
<el-select
v-model="formData.moldId"
filterable
@ -16,16 +22,20 @@
clearable
:remote-method="handleDeviceSearch"
:loading="deviceLoading"
placeholder="请选择模具"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderDialogMold')"
class="!w-full"
>
<el-option v-for="opt in deviceOptions" :key="String(opt.value)" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item label="维修内容" prop="projectContent">
<el-input v-model="formData.projectContent" placeholder="请输入维修内容" type="textarea" />
<el-form-item :label="t('MoldManagement.MoldRepairItems.dialogProjectContent')" prop="projectContent">
<el-input
v-model="formData.projectContent"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderDialogProjectContent')"
type="textarea"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-form-item :label="t('MoldManagement.MoldRepairItems.dialogIsEnable')" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)" :key="dict.value" :label="dict.value">
{{ dict.label }}
@ -34,8 +44,8 @@
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button>
</template>
</Dialog>
</template>
@ -89,17 +99,17 @@ const handleDeviceSearch = async (keyword: string) => {
}
const validateDeviceId = (_: any, value: any, callback: any) => {
if (value === undefined || value === null || value === '') {
callback(new Error('模具不能为空'))
callback(new Error(t('MoldManagement.MoldRepairItems.validatorMoldRequired')))
return
}
callback()
}
const formRules = reactive({
subjectCode: [{ required: true, message: '项目编码不能为空', trigger: 'blur' }],
subjectName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
subjectCode: [{ required: true, message: t('MoldManagement.MoldRepairItems.validatorSubjectCodeRequired'), trigger: 'blur' }],
subjectName: [{ required: true, message: t('MoldManagement.MoldRepairItems.validatorSubjectNameRequired'), trigger: 'blur' }],
moldId: [{ required: true, validator: validateDeviceId, trigger: 'change' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'change' }]
isEnable: [{ required: true, message: t('MoldManagement.MoldRepairItems.validatorIsEnableRequired'), trigger: 'change' }]
})
const open = async (type: string, row?: any) => {

@ -1,43 +1,55 @@
<template>
<ContentWrap>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
<el-form-item label="维修编码" prop="subjectCode">
<el-input v-model="queryParams.subjectCode" placeholder="请输入维修编码" clearable @keyup.enter="handleQuery" class="!w-240px" />
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
<el-form-item :label="t('MoldManagement.MoldRepairItems.subjectCode')" prop="subjectCode">
<el-input
v-model="queryParams.subjectCode"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderSubjectCode')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="维修名称" prop="subjectName">
<el-input v-model="queryParams.subjectName" placeholder="请输入维修名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
<el-form-item :label="t('MoldManagement.MoldRepairItems.subjectName')" prop="subjectName">
<el-input
v-model="queryParams.subjectName"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderSubjectName')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="维修内容" prop="projectContent">
<el-form-item :label="t('MoldManagement.MoldRepairItems.projectContent')" prop="projectContent">
<el-input
v-model="queryParams.projectContent"
placeholder="请输入维修内容"
:placeholder="t('MoldManagement.MoldRepairItems.placeholderProjectContent')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-form-item :label="t('MoldManagement.MoldRepairItems.createTime')" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:start-placeholder="t('MoldManagement.MoldRepairItems.placeholderCreateTimeStart')"
:end-placeholder="t('MoldManagement.MoldRepairItems.placeholderCreateTimeEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-220px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('MoldManagement.MoldRepairItems.search') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('MoldManagement.MoldRepairItems.reset') }}</el-button>
<el-button type="primary" plain @click="openForm('create')">
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldRepairItems.add') }}
</el-button>
<el-button type="danger" plain @click="handleBatchDelete" :disabled="!selectedIds.length">
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
<Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldRepairItems.batchDelete') }}
</el-button>
<el-button type="success" plain @click="handleExport" :loading="exportLoading">
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldRepairItems.export') }}
</el-button>
</el-form-item>
</el-form>
@ -54,15 +66,34 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" fixed="left" reserve-selection />
<el-table-column label="维修编码" align="center" prop="subjectCode" min-width="130" :formatter="cellOrDash" />
<el-table-column label="维修名称" align="center" prop="subjectName" min-width="160" :formatter="cellOrDash" />
<el-table-column label="模具名称" align="center" prop="moldName" min-width="160" :formatter="cellOrDash" />
<el-table-column label="维修内容" align="center" prop="projectContent" min-width="200" :formatter="cellOrDash" />
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateOrDash" width="180" />
<el-table-column label="操作" align="center" width="140" fixed="right">
<el-table-column
:label="t('MoldManagement.MoldRepairItems.subjectCode')" align="center" prop="subjectCode" min-width="150"
:formatter="cellOrDash"
/>
<el-table-column
:label="t('MoldManagement.MoldRepairItems.subjectName')" align="center" prop="subjectName" min-width="170"
:formatter="cellOrDash"
/>
<el-table-column
:label="t('MoldManagement.MoldRepairItems.moldName')" align="center" prop="moldName" min-width="170"
:formatter="cellOrDash"
/>
<el-table-column
:label="t('MoldManagement.MoldRepairItems.projectContent')" align="center" prop="projectContent" min-width="220"
:formatter="cellOrDash"
/>
<el-table-column
:label="t('MoldManagement.MoldRepairItems.createTime')" align="center" prop="createTime"
:formatter="dateOrDash" min-width="190"
/>
<el-table-column :label="t('MoldManagement.MoldRepairItems.operate')" align="center" min-width="160" fixed="right">
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row)">编辑</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)"></el-button>
<el-button link type="primary" @click="openForm('update', scope.row)">
{{ t('MoldManagement.MoldRepairItems.edit') }}
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)">
{{ t('MoldManagement.MoldRepairItems.delete') }}
</el-button>
</template>
</el-table-column>
</el-table>
@ -160,7 +191,7 @@ const handleDelete = async (ids: number | number[]) => {
const handleBatchDelete = async () => {
if (!selectedIds.value.length) {
message.error('请选择需要删除的数据')
message.error(t('MoldManagement.MoldRepairItems.selectDeleteTip'))
return
}
await handleDelete(selectedIds.value)
@ -175,7 +206,7 @@ const handleExport = async () => {
ids: selectedIds.value.length ? selectedIds.value.join(',') : undefined
}
const data = await MoldRepairItemsApi.exportRepairItems(params)
download.excel(data, '模具维修项目.xls')
download.excel(data, t('MoldManagement.MoldRepairItems.exportFilename'))
} catch {
} finally {
exportLoading.value = false

@ -1,39 +1,65 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="110px" v-loading="formLoading">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
<el-form-item :label="t('EquipmentManagement.TaskManagement.name')" prop="name">
<el-input v-model="formData.name" :placeholder="t('EquipmentManagement.TaskManagement.placeholderName')" />
</el-form-item>
<el-form-item label="类型" prop="taskType">
<el-form-item :label="t('EquipmentManagement.TaskManagement.taskType')" prop="taskType">
<el-radio-group v-model="formData.taskType">
<el-radio :label="1">点检</el-radio>
<el-radio :label="2">保养</el-radio>
<el-radio :label="1">{{ t('EquipmentManagement.TaskManagement.taskTypeInspect') }}</el-radio>
<el-radio :label="2">{{ t('EquipmentManagement.TaskManagement.taskTypeMaintain') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="模具列表" prop="moldList">
<el-select v-model="formData.moldList" multiple filterable clearable placeholder="请选择设备列表" class="!w-full">
<el-form-item :label="t('EquipmentManagement.TaskManagement.deviceList')" prop="moldList">
<el-select
v-model="formData.moldList"
multiple
filterable
clearable
:placeholder="t('EquipmentManagement.TaskManagement.placeholderDeviceList')"
class="!w-full"
>
<el-option v-for="item in deviceOptions" :key="String(item.id)" :label="item.name" :value="String(item.id)" />
</el-select>
</el-form-item>
<el-form-item label="项目表单" prop="projectForm">
<el-select v-model="formData.projectForm" multiple filterable clearable placeholder="请选择项目表单" class="!w-full">
<el-form-item :label="t('EquipmentManagement.TaskManagement.projectForm')" prop="projectForm">
<el-select
v-model="formData.projectForm"
multiple
filterable
clearable
:placeholder="t('EquipmentManagement.TaskManagement.placeholderProjectForm')"
class="!w-full"
>
<el-option v-for="item in planOptions" :key="String(item.id)" :label="item.planName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="起止日期" prop="dateRange">
<el-form-item :label="t('EquipmentManagement.TaskManagement.dateRange')" prop="dateRange">
<el-date-picker
v-model="formData.dateRange" value-format="YYYY-MM-DD" type="daterange" start-placeholder="开始日期"
end-placeholder="结束日期" class="!w-320px" />
v-model="formData.dateRange"
value-format="YYYY-MM-DD"
type="daterange"
:start-placeholder="t('EquipmentManagement.TaskManagement.placeholderStartDate')"
:end-placeholder="t('EquipmentManagement.TaskManagement.placeholderEndDate')"
class="!w-320px"
/>
</el-form-item>
<el-form-item label="cron 表达式" prop="cronExpression">
<el-form-item :label="t('EquipmentManagement.TaskManagement.cronExpression')" prop="cronExpression">
<crontab v-model="formData.cronExpression" />
</el-form-item>
<el-form-item label="可操作人" prop="operableUsers">
<el-select v-model="formData.operableUsers" multiple filterable clearable placeholder="请选择可操作人" class="!w-full">
<el-form-item :label="t('EquipmentManagement.TaskManagement.operableUsers')" prop="operableUsers">
<el-select
v-model="formData.operableUsers"
multiple
filterable
clearable
:placeholder="t('EquipmentManagement.TaskManagement.placeholderOperableUsers')"
class="!w-full"
>
<el-option v-for="item in users" :key="String(item.id)" :label="item.nickname" :value="String(item.id)" />
</el-select>
</el-form-item>
<el-form-item label="是否启用" prop="enabled">
<el-form-item :label="t('EquipmentManagement.TaskManagement.enabled')" prop="enabled">
<el-radio-group v-model="formData.enabled">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)" :key="String(dict.value)"
@ -44,8 +70,8 @@ v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)" :key="String(
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button>
</template>
</Dialog>
</template>
@ -120,12 +146,12 @@ const formData = ref({
})
const formRules = reactive({
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
taskType: [{ required: true, message: '类型不能为空', trigger: 'change' }],
enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }],
moldList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }],
projectForm: [{ required: true, message: '项目表单不能为空', trigger: 'change' }],
dateRange: [{ required: true, message: '起止日期不能为空', trigger: 'change' }]
name: [{ required: true, message: t('EquipmentManagement.TaskManagement.placeholderName'), trigger: 'blur' }],
taskType: [{ required: true, message: t('EquipmentManagement.TaskManagement.placeholderTaskType'), trigger: 'change' }],
enabled: [{ required: true, message: t('EquipmentManagement.TaskManagement.placeholderEnabled'), trigger: 'change' }],
moldList: [{ required: true, message: t('EquipmentManagement.TaskManagement.placeholderDeviceList'), trigger: 'change' }],
projectForm: [{ required: true, message: t('EquipmentManagement.TaskManagement.placeholderProjectForm'), trigger: 'change' }],
dateRange: [{ required: true, message: t('EquipmentManagement.TaskManagement.placeholderDateRange'), trigger: 'change' }]
})
const resetForm = () => {

@ -5,43 +5,45 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
label-width="110px"
>
<el-form-item label="名称" prop="name">
<el-form-item :label="t('EquipmentManagement.TaskManagement.name')" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
:placeholder="t('EquipmentManagement.TaskManagement.placeholderName')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="类型" prop="taskType">
<el-select v-model="queryParams.taskType" placeholder="请选择类型" clearable class="!w-240px">
<el-form-item :label="t('EquipmentManagement.TaskManagement.taskType')" prop="taskType">
<el-select
v-model="queryParams.taskType"
:placeholder="t('EquipmentManagement.TaskManagement.placeholderTaskType')"
clearable
class="!w-240px"
>
<el-option v-for="opt in taskTypeOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item label="项目表单" prop="projectForm">
<el-form-item :label="t('EquipmentManagement.TaskManagement.projectForm')" prop="projectForm">
<el-select
v-model="queryParams.projectForm"
multiple
filterable
clearable
placeholder="请选择项目表单"
:placeholder="t('EquipmentManagement.TaskManagement.placeholderProjectForm')"
class="!w-240px"
>
<el-option v-for="item in planOptions" :key="String(item.id)" :label="item.planName" :value="String(item.id)" />
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}</el-button>
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['mes:task-management:create']">
<Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:plus" class="mr-5px" />
{{ t('action.add') }}
</el-button>
<el-button
type="success"
@ -50,7 +52,8 @@
:loading="exportLoading"
v-hasPermi="['mes:task-management:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
<Icon icon="ep:download" class="mr-5px" />
{{ t('action.export') }}
</el-button>
</el-form-item>
</el-form>
@ -65,28 +68,33 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="70" />
<el-table-column label="名称" align="center" prop="name" min-width="140" />
<el-table-column label="类型" align="center" prop="taskType" width="90">
<el-table-column :label="t('EquipmentManagement.TaskManagement.index')" type="index" align="center" width="70" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.name')" align="center" prop="name" min-width="140" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.taskType')" align="center" prop="taskType" width="90">
<template #default="scope">
<el-tag v-if="scope.row.taskType === 1" type="primary"></el-tag>
<el-tag v-else-if="scope.row.taskType === 2" type="success">保养</el-tag>
<el-tag v-if="scope.row.taskType === 1" type="primary">{{ t('EquipmentManagement.TaskManagement.taskTypeInspect') }}</el-tag>
<el-tag v-else-if="scope.row.taskType === 2" type="success">{{ t('EquipmentManagement.TaskManagement.taskTypeMaintain') }}</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="项目表单" align="center" prop="projectFormName" min-width="140" />
<el-table-column label="开始日期" align="center" prop="startDate" :formatter="dateFormatter2" width="120" />
<el-table-column label="结束日期" align="center" prop="endDate" :formatter="dateFormatter2" width="120" />
<el-table-column label="cron 表达式" align="center" prop="cronExpression" min-width="180" />
<el-table-column label="启用" align="center" prop="enabled" width="90">
<el-table-column :label="t('EquipmentManagement.TaskManagement.projectForm')" align="center" prop="projectFormName" min-width="140" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.startDate')" align="center" prop="startDate" :formatter="dateFormatter2" width="120" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.endDate')" align="center" prop="endDate" :formatter="dateFormatter2" width="120" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.cronExpression')" align="center" prop="cronExpression" min-width="180" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.enabled')" align="center" prop="enabled" width="90">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.enabled" />
</template>
</el-table-column>
<el-table-column label="创建人" align="center" prop="creatorName" width="120" />
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180" />
<el-table-column label="更新时间" align="center" prop="updateTime" :formatter="dateFormatter" width="180" />
<el-table-column label="操作" fixed="right" align="center" width="230">
<el-table-column :label="t('EquipmentManagement.TaskManagement.creatorName')" align="center" prop="creatorName" width="120" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.createTime')" align="center" prop="createTime" :formatter="dateFormatter" width="180" />
<el-table-column :label="t('EquipmentManagement.TaskManagement.updateTime')" align="center" prop="updateTime" :formatter="dateFormatter" width="180" />
<el-table-column
:label="t('EquipmentManagement.TaskManagement.operate')"
fixed="right"
align="center"
min-width="230"
>
<template #default="scope">
<el-button
link
@ -94,18 +102,16 @@
@click="handleCreateTicket(scope.row.id)"
:loading="ticketLoadingId === scope.row.id"
>
新增工单管理
{{ t('EquipmentManagement.TaskManagement.createWorkOrder') }}
</el-button>
<el-button
link
type="primary"
@click="openForm('update', scope.row)"
v-hasPermi="['mes:task-management:update']"
>
编辑
</el-button>
>{{ t('action.update') }}</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['mes:task-management:delete']">
删除
{{ t('action.delete') }}
</el-button>
</template>
</el-table-column>
@ -136,8 +142,8 @@ const message = useMessage()
const { t } = useI18n()
const taskTypeOptions = [
{ label: '点检', value: 1 },
{ label: '保养', value: 2 }
{ label: t('EquipmentManagement.TaskManagement.taskTypeInspect'), value: 1 },
{ label: t('EquipmentManagement.TaskManagement.taskTypeMaintain'), value: 2 }
]
const loading = ref(true)
@ -236,9 +242,9 @@ const handleCreateTicket = async (id?: number) => {
ticketLoadingId.value = id
try {
await TaskManagementApi.createTaskManagementTicket(id)
message.success('创建工单成功')
message.success(t('EquipmentManagement.TaskManagement.createTicketSuccess'))
} catch {
message.error('创建工单失败')
message.error(t('EquipmentManagement.TaskManagement.createTicketFail'))
} finally {
ticketLoadingId.value = undefined
}
@ -253,7 +259,7 @@ const handleExport = async () => {
params.ids = selectedIds.value.join(',')
}
const data = await TaskManagementApi.exportTaskManagement(params)
download.excel(data, '任务配置.xls')
download.excel(data, t('EquipmentManagement.TaskManagement.exportFilename'))
} catch {
} finally {
exportLoading.value = false

@ -1,23 +1,23 @@
<template>
<Dialog v-model="dialogVisible" :title="dialogTitle" width="1100px">
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" :row-key="getRowKey">
<el-table-column type="index" label="序号" align="center" width="70" />
<el-table-column label="检验项名称" align="center" prop="inspectionItemName" min-width="180" />
<el-table-column label="检验方式" align="center" prop="inspectionMethod" min-width="140">
<el-table-column type="index" :label="t('MoldManagement.TicketResultDialog.index')" align="center" width="70" />
<el-table-column :label="t('MoldManagement.TicketResultDialog.inspectionItemName')" align="center" prop="inspectionItemName" min-width="200" />
<el-table-column :label="t('MoldManagement.TicketResultDialog.inspectionMethod')" align="center" prop="inspectionMethod" min-width="160">
<template #default="scope">
<dict-tag type="Inspection_method" :value="scope.row.inspectionMethod" />
</template>
</el-table-column>
<el-table-column label="判定基准" align="center" prop="judgmentCriteria" min-width="160" />
<el-table-column label="检验结果" align="center" prop="inspectionResult" width="120">
<el-table-column :label="t('MoldManagement.TicketResultDialog.judgmentCriteria')" align="center" prop="judgmentCriteria" min-width="180" />
<el-table-column :label="t('MoldManagement.TicketResultDialog.inspectionResult')" align="center" prop="inspectionResult" min-width="140">
<template #default="scope">
<el-tag v-if="String(scope.row.inspectionResult) === '0'" type="info"></el-tag>
<el-tag v-else-if="String(scope.row.inspectionResult) === '1'" type="success">通过</el-tag>
<el-tag v-else-if="String(scope.row.inspectionResult) === '2'" type="danger">不通过</el-tag>
<el-tag v-if="String(scope.row.inspectionResult) === '0'" type="info">{{ t('MoldManagement.TicketResultDialog.inspectionResultPending') }}</el-tag>
<el-tag v-else-if="String(scope.row.inspectionResult) === '1'" type="success">{{ t('MoldManagement.TicketResultDialog.inspectionResultPass') }}</el-tag>
<el-tag v-else-if="String(scope.row.inspectionResult) === '2'" type="danger">{{ t('MoldManagement.TicketResultDialog.inspectionResultFail') }}</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="图片" align="center" prop="images" width="160">
<el-table-column :label="t('MoldManagement.TicketResultDialog.images')" align="center" prop="images" min-width="180">
<template #default="scope">
<UploadImg
v-if="String(scope.row.inspectionResult) === '0'" v-model="imageMap[String(scope.row.id)]"
@ -29,12 +29,12 @@ v-else-if="scope.row.images" :src="parseFirstImage(scope.row.images)"
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" min-width="160" />
<el-table-column label="操作" align="center" width="200" fixed="right">
<el-table-column :label="t('MoldManagement.TicketResultDialog.remark')" align="center" prop="remark" min-width="180" />
<el-table-column :label="t('MoldManagement.TicketResultDialog.operate')" align="center" min-width="220" fixed="right">
<template #default="scope">
<el-radio-group v-if="String(scope.row.inspectionResult) === '0'" v-model="decisionMap[String(scope.row.id)]">
<el-radio :label="'1'">通过</el-radio>
<el-radio :label="'2'">不通过</el-radio>
<el-radio :label="'1'">{{ t('MoldManagement.TicketResultDialog.pass') }}</el-radio>
<el-radio :label="'2'">{{ t('MoldManagement.TicketResultDialog.fail') }}</el-radio>
</el-radio-group>
<span v-else>-</span>
</template>
@ -48,8 +48,8 @@ v-show="total > 0" v-model:current-page="queryParams.pageNo" v-model:page-size="
@size-change="handleSizeChange" @current-change="handleCurrentChange" />
<template #footer>
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="handleSave" :loading="submitLoading"> </el-button>
<el-button @click="dialogVisible = false">{{ t('MoldManagement.TicketResultDialog.cancel') }}</el-button>
<el-button type="primary" @click="handleSave" :loading="submitLoading">{{ t('MoldManagement.TicketResultDialog.save') }}</el-button>
</template>
</Dialog>
</template>
@ -59,6 +59,7 @@ import { TicketManagementApi, TicketResultVO } from '@/api/mold/ticketManagement
defineOptions({ name: 'TicketResultDialog' })
const { t } = useI18n()
const message = useMessage()
const dialogVisible = ref(false)
@ -79,7 +80,7 @@ const queryParams = reactive({
const open = async (options: { managementId: number; title?: string }) => {
dialogVisible.value = true
dialogTitle.value = options.title || '检验结果'
dialogTitle.value = options.title || t('MoldManagement.TicketResultDialog.moduleName')
managementId.value = options.managementId
for (const key of Object.keys(decisionMap)) delete decisionMap[key]
for (const key of Object.keys(imageMap)) delete imageMap[key]
@ -133,16 +134,16 @@ const handleSave = async () => {
payload.push({ ...(row as any), inspectionResult: decision, images: img || row.images })
}
if (!payload.length) {
message.error('请先为待检测记录选择通过或不通过')
message.error(t('MoldManagement.TicketResultDialog.selectDecisionTip'))
return
}
submitLoading.value = true
try {
await TicketManagementApi.batchUpdateTicketResults(payload)
message.success('更新成功')
message.success(t('MoldManagement.TicketResultDialog.updateSuccess'))
dialogVisible.value = false
} catch {
message.error('更新失败')
message.error(t('MoldManagement.TicketResultDialog.updateFail'))
} finally {
submitLoading.value = false
}

@ -1,36 +1,51 @@
<template>
<ContentWrap>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
<el-form-item label="单号" prop="planNo">
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="100px">
<el-form-item :label="t('MoldManagement.MoldWorkOrderInquiry.planNo')" prop="planNo">
<el-input
v-model="queryParams.planNo"
placeholder="请输入单号"
:placeholder="t('MoldManagement.MoldWorkOrderInquiry.placeholderPlanNo')"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="类型" prop="planType">
<el-select v-model="queryParams.planType" placeholder="请选择类型" clearable class="!w-240px">
<el-form-item :label="t('MoldManagement.MoldWorkOrderInquiry.planType')" prop="planType">
<el-select
v-model="queryParams.planType"
:placeholder="t('MoldManagement.MoldWorkOrderInquiry.placeholderPlanType')"
clearable
class="!w-240px"
>
<el-option v-for="opt in planTypeOptions" :key="String(opt.value)" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item label="作业状态" prop="jobStatus">
<el-select v-model="queryParams.jobStatus" placeholder="请选择作业状态" clearable class="!w-240px">
<el-form-item :label="t('MoldManagement.MoldWorkOrderInquiry.jobStatus')" prop="jobStatus">
<el-select
v-model="queryParams.jobStatus"
:placeholder="t('MoldManagement.MoldWorkOrderInquiry.placeholderJobStatus')"
clearable
class="!w-240px"
>
<el-option v-for="opt in getStrDictOptions('job_status')" :key="String(opt.value)" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item label="结果" prop="jobResult">
<el-select v-model="queryParams.jobResult" placeholder="请选择结果" clearable class="!w-240px">
<el-form-item :label="t('MoldManagement.MoldWorkOrderInquiry.jobResult')" prop="jobResult">
<el-select
v-model="queryParams.jobResult"
:placeholder="t('MoldManagement.MoldWorkOrderInquiry.placeholderJobResult')"
clearable
class="!w-240px"
>
<el-option v-for="opt in jobResultOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('MoldManagement.MoldWorkOrderInquiry.reset') }}
</el-button>
<el-button type="primary" @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 查询
<Icon icon="ep:search" class="mr-5px" /> {{ t('MoldManagement.MoldWorkOrderInquiry.query') }}
</el-button>
</el-form-item>
</el-form>
@ -39,7 +54,7 @@
<ContentWrap>
<div class="mb-10px">
<el-button type="warning" plain @click="handleBatchCancel" :disabled="!selectedIds.length" :loading="cancelLoading">
取消任务
{{ t('MoldManagement.MoldWorkOrderInquiry.cancelTask') }}
</el-button>
</div>
@ -52,34 +67,34 @@
@row-click="handleRowClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="70" />
<el-table-column label="单号" align="center" prop="planNo" min-width="160" />
<el-table-column label="模具名称" align="center" prop="moldName" min-width="160" />
<el-table-column label="类型" align="center" prop="planType" width="90">
<el-table-column type="index" :label="t('MoldManagement.MoldWorkOrderInquiry.index')" align="center" width="70" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.planNo')" align="center" prop="planNo" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.moldName')" align="center" prop="moldName" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.planType')" align="center" prop="planType" min-width="110">
<template #default="scope">
<el-tag v-if="String(scope.row.planType) === '1'" type="primary"></el-tag>
<el-tag v-else-if="String(scope.row.planType) === '2'" type="success">保养</el-tag>
<el-tag v-if="String(scope.row.planType) === '1'" type="primary">{{ t('MoldManagement.MoldWorkOrderInquiry.planTypeInspect') }}</el-tag>
<el-tag v-else-if="String(scope.row.planType) === '2'" type="success">{{ t('MoldManagement.MoldWorkOrderInquiry.planTypeMaintain') }}</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="计划配置名称" align="center" prop="configName" min-width="160" />
<el-table-column label="作业状态" align="center" prop="jobStatus" width="120">
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.configName')" align="center" prop="configName" min-width="180" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.jobStatus')" align="center" prop="jobStatus" min-width="140">
<template #default="scope">
<dict-tag :type="'job_status'" :value="scope.row.jobStatus" />
</template>
</el-table-column>
<el-table-column label="作业人" align="center" prop="operatorName" width="140" />
<el-table-column label="作业时间" align="center" prop="taskTime" :formatter="dateFormatter" width="180" />
<el-table-column label="计划结束作业时间" align="center" prop="taskEndTime" :formatter="dateFormatter" width="180" />
<el-table-column label="结果" align="center" prop="jobResult" width="90">
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.operatorName')" align="center" prop="operatorName" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.taskTime')" align="center" prop="taskTime" :formatter="dateFormatter" min-width="190" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.taskEndTime')" align="center" prop="taskEndTime" :formatter="dateFormatter" min-width="200" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.jobResult')" align="center" prop="jobResult" min-width="110">
<template #default="scope">
<el-tag v-if="scope.row.jobResult == '1'" type="success"></el-tag>
<el-tag v-else-if="scope.row.jobResult == '2'" type="danger">不通过</el-tag>
<el-tag v-if="scope.row.jobResult == '1'" type="success">{{ t('MoldManagement.MoldWorkOrderInquiry.jobResultOk') }}</el-tag>
<el-tag v-else-if="scope.row.jobResult == '2'" type="danger">{{ t('MoldManagement.MoldWorkOrderInquiry.jobResultNg') }}</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
<!-- <el-table-column label="备注" align="center" prop="remark" min-width="160" /> -->
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180" />
<el-table-column :label="t('MoldManagement.MoldWorkOrderInquiry.createTime')" align="center" prop="createTime" :formatter="dateFormatter" min-width="190" />
</el-table>
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
@ -95,18 +110,20 @@ import { useDictStoreWithOut } from '@/store/modules/dict'
import { TicketManagementApi, TicketManagementVO } from '@/api/mold/ticketManagement'
import TicketResultDialog from '@/views/mold/workOrderInquiry/components/TicketResultDialog.vue'
const { t } = useI18n()
defineOptions({ name: 'MoldWorkOrderInquiry' })
const message = useMessage()
const dictStore = useDictStoreWithOut()
const planTypeOptions = [
{ label: '点检', value: '1' },
{ label: '保养', value: '2' }
{ label: t('MoldManagement.MoldWorkOrderInquiry.planTypeInspect'), value: '1' },
{ label: t('MoldManagement.MoldWorkOrderInquiry.planTypeMaintain'), value: '2' }
]
const jobResultOptions = [
{ label: '通过', value: 'OK' },
{ label: '不通过', value: 'NG' }
{ label: t('MoldManagement.MoldWorkOrderInquiry.jobResultOk'), value: 'OK' },
{ label: t('MoldManagement.MoldWorkOrderInquiry.jobResultNg'), value: 'NG' }
]
const loading = ref(true)
@ -156,10 +173,10 @@ const handleSelectionChange = (rows: TicketManagementVO[]) => {
const handleBatchCancel = async () => {
if (!selectedIds.value.length) return
try {
await message.confirm('确认取消选中的任务吗?')
await message.confirm(t('MoldManagement.MoldWorkOrderInquiry.cancelConfirm'))
cancelLoading.value = true
await TicketManagementApi.batchUpdateTicketStatus({ ids: selectedIds.value.join(','), jobStatus: '2' })
message.success('取消任务成功')
message.success(t('MoldManagement.MoldWorkOrderInquiry.cancelSuccess'))
selectedIds.value = []
await getList()
} catch {
@ -175,7 +192,9 @@ const handleRowClick = async (row: TicketManagementVO, column: any) => {
if (!row?.id) return
await resultDialogRef.value?.open({
managementId: row.id,
title: row.planNo ? `检验结果-${row.planNo}` : '检验结果'
title: row.planNo
? `${t('MoldManagement.MoldWorkOrderInquiry.inspectResultTitlePrefix')}${row.planNo}`
: t('MoldManagement.MoldWorkOrderInquiry.inspectResultTitle')
})
}
@ -184,4 +203,3 @@ onMounted(async () => {
await getList()
})
</script>

Loading…
Cancel
Save