diff --git a/src/api/mes/moldrepair.js b/src/api/mes/moldrepair.js
new file mode 100644
index 0000000..17192cc
--- /dev/null
+++ b/src/api/mes/moldrepair.js
@@ -0,0 +1,67 @@
+import upload from '@/utils/upload'
+import request from '@/utils/request'
+
+export function getMoldRepairPage(params = {}) {
+ return request({
+ url: '/admin-api/mes/mold-repair/page',
+ method: 'get',
+ params
+ })
+}
+
+export function getMoldRepair(id) {
+ return request({
+ url: '/admin-api/mes/mold-repair/get',
+ method: 'get',
+ params: { id }
+ })
+}
+
+export function createMoldRepair(data) {
+ return request({
+ url: '/admin-api/mes/mold-repair/create',
+ method: 'post',
+ data
+ })
+}
+
+export function updateMoldRepair(data) {
+ return request({
+ url: '/admin-api/mes/mold-repair/update',
+ method: 'put',
+ data
+ })
+}
+
+export function deleteMoldRepair(ids) {
+ return request({
+ url: '/admin-api/mes/mold-repair/delete',
+ method: 'delete',
+ params: { ids }
+ })
+}
+
+export function updateMoldRepairStatus(data) {
+ return request({
+ url: '/admin-api/mes/mold-repair/updateMoldRepairStatus',
+ method: 'put',
+ data
+ })
+}
+
+export function getMoldRepairLineListByRepairId(repairId) {
+ return request({
+ url: '/admin-api/mes/mold-repair/mold-repair-line/list-by-repair-id',
+ method: 'get',
+ params: { repairId }
+ })
+}
+
+export function uploadRepairImage(filePath, name = 'file') {
+ return upload({
+ url: '/admin-api/infra/file/upload',
+ name,
+ filePath,
+ showLoading: false
+ })
+}
\ No newline at end of file
diff --git a/src/locales/en-US.js b/src/locales/en-US.js
index 5899d53..bde9954 100644
--- a/src/locales/en-US.js
+++ b/src/locales/en-US.js
@@ -985,5 +985,88 @@ export default {
validatorCodeRequired: 'Component code is required',
validatorNameRequired: 'Component name is required',
confirmDeleteContent: 'Confirm delete component [{name}]?'
+ },
+ moldRepair: {
+ moduleName: 'Mold Repair',
+ createTitle: 'Create Mold Repair',
+ editTitle: 'Edit Mold Repair',
+ detailTitle: 'Mold Repair Detail',
+ repairTitle: 'Repair Processing',
+ basicInfo: 'Basic Info',
+ repairObject: 'Repair Object',
+ repairCode: 'Repair Code',
+ repairName: 'Repair Name',
+ requireDate: 'Require Date',
+ acceptedBy: 'Repair User',
+ confirmBy: 'Confirm User',
+ mold: 'Mold',
+ moldCode: 'Mold Code',
+ moldName: 'Mold Name',
+ faultLevel: 'Fault Level',
+ isShutdown: 'Is Shutdown',
+ status: 'Status',
+ faultInfo: 'Fault Info',
+ faultPhenomenon: 'Fault Phenomenon',
+ faultDescription: 'Fault Description',
+ faultImages: 'Fault Images',
+ repairResultSection: 'Repair Result',
+ repairResult: 'Repair Result',
+ finishDate: 'Finish Date',
+ confirmDate: 'Confirm Date',
+ downtimeDuration: 'Downtime Duration',
+ faultReason: 'Fault Reason',
+ handlingMeasures: 'Handling Measures',
+ replacementParts: 'Replacement Parts',
+ repairContent: 'Repair Content',
+ repairedImages: 'Repaired Images',
+ remark: 'Remark',
+ autoCode: 'Auto Code',
+ moldLabel: 'Mold',
+ reportTimeLabel: 'Report Time',
+ searchPlaceholder: 'Enter code or mold code',
+ empty: 'No repair records',
+ statusPending: 'Pending',
+ statusPassed: 'Passed',
+ statusRejected: 'Rejected',
+ placeholderRepairCode: 'Enter repair code',
+ placeholderRepairName: 'Enter repair name',
+ placeholderRequireDate: 'Select require date',
+ placeholderAcceptedBy: 'Select repair user',
+ placeholderConfirmBy: 'Select confirm user',
+ placeholderMold: 'Select mold',
+ placeholderMoldNameAuto: 'Auto filled',
+ placeholderMoldCodeAuto: 'Auto filled',
+ placeholderFaultPhenomenon: 'Enter fault phenomenon',
+ placeholderFaultDescription: 'Enter fault description',
+ placeholderFinishDate: 'Select finish date',
+ placeholderConfirmDate: 'Select confirm date',
+ placeholderDowntimeDuration: 'Enter downtime duration (hours)',
+ placeholderFaultReason: 'Enter fault reason',
+ placeholderHandlingMeasures: 'Enter handling measures',
+ placeholderReplacementParts: 'Enter replacement parts',
+ placeholderRepairContent: 'Enter repair content',
+ placeholderRemark: 'Enter remark',
+ loadDetailFailed: 'Failed to load detail',
+ scanUnrecognized: 'Unrecognized content',
+ scanMoldRequired: 'Please scan mold QR code',
+ moldNotFound: 'Mold not found',
+ scanFailed: 'Scan failed',
+ maxUploadCount: 'Max 9 images',
+ saving: 'Saving',
+ saveSuccess: 'Saved successfully',
+ submitSuccess: 'Submitted successfully',
+ submitFailed: 'Submit failed',
+ noId: 'Missing repair ID',
+ confirmDeleteContent: 'Confirm delete repair "{code}"?',
+ validatorRepairCodeRequired: 'Repair code is required',
+ validatorRepairNameRequired: 'Repair name is required',
+ validatorMoldRequired: 'Mold is required',
+ validatorRequireDateRequired: 'Require date is required',
+ validatorFaultLevelRequired: 'Fault level is required',
+ validatorIsShutdownRequired: 'Is shutdown is required',
+ validatorFaultPhenomenonRequired: 'Fault phenomenon is required',
+ validatorRepairStatusRequired: 'Repair result is required',
+ validatorFinishDateRequired: 'Finish date is required',
+ validatorConfirmDateRequired: 'Confirm date is required'
}
}
diff --git a/src/locales/zh-CN.js b/src/locales/zh-CN.js
index 9a8cafd..b2d66c4 100644
--- a/src/locales/zh-CN.js
+++ b/src/locales/zh-CN.js
@@ -985,5 +985,88 @@ export default {
validatorCodeRequired: '关键件编码不能为空',
validatorNameRequired: '关键件名称不能为空',
confirmDeleteContent: '确认删除关键件【{name}】吗?'
+ },
+ moldRepair: {
+ moduleName: '模具维修',
+ createTitle: '新增模具维修',
+ editTitle: '编辑模具维修',
+ detailTitle: '模具维修详情',
+ repairTitle: '维修处理',
+ basicInfo: '基本信息',
+ repairObject: '维修对象',
+ repairCode: '维修单编号',
+ repairName: '维修单名称',
+ requireDate: '报修日期',
+ acceptedBy: '维修人员',
+ confirmBy: '验收人员',
+ mold: '模具',
+ moldCode: '模具编码',
+ moldName: '模具名称',
+ faultLevel: '故障等级',
+ isShutdown: '是否停机',
+ status: '单据状态',
+ faultInfo: '故障信息',
+ faultPhenomenon: '故障现象',
+ faultDescription: '故障描述',
+ faultImages: '故障图片',
+ repairResultSection: '处理结果',
+ repairResult: '维修结果',
+ finishDate: '完成日期',
+ confirmDate: '验收日期',
+ downtimeDuration: '停机时长',
+ faultReason: '故障原因',
+ handlingMeasures: '处理措施',
+ replacementParts: '更换配件',
+ repairContent: '维修内容',
+ repairedImages: '维修后图片',
+ remark: '备注',
+ autoCode: '自动生成',
+ moldLabel: '模具',
+ reportTimeLabel: '报修时间',
+ searchPlaceholder: '请输入单号或模具编码',
+ empty: '暂无维修记录',
+ statusPending: '待维修',
+ statusPassed: '通过',
+ statusRejected: '不通过',
+ placeholderRepairCode: '请输入维修单编号',
+ placeholderRepairName: '请输入维修单名称',
+ placeholderRequireDate: '请选择报修日期',
+ placeholderAcceptedBy: '请选择维修人员',
+ placeholderConfirmBy: '请选择验收人员',
+ placeholderMold: '请选择模具',
+ placeholderMoldNameAuto: '自动带出',
+ placeholderMoldCodeAuto: '自动带出',
+ placeholderFaultPhenomenon: '请输入故障现象',
+ placeholderFaultDescription: '请输入故障描述',
+ placeholderFinishDate: '请选择完成日期',
+ placeholderConfirmDate: '请选择验收日期',
+ placeholderDowntimeDuration: '请输入停机时长,单位小时',
+ placeholderFaultReason: '请输入故障原因',
+ placeholderHandlingMeasures: '请输入处理措施',
+ placeholderReplacementParts: '请输入更换配件',
+ placeholderRepairContent: '请输入维修内容',
+ placeholderRemark: '请输入备注',
+ loadDetailFailed: '加载详情失败',
+ scanUnrecognized: '未识别到内容',
+ scanMoldRequired: '请扫描模具二维码',
+ moldNotFound: '未找到对应模具',
+ scanFailed: '扫码失败',
+ maxUploadCount: '最多上传 9 张图片',
+ saving: '保存中',
+ saveSuccess: '保存成功',
+ submitSuccess: '提交成功',
+ submitFailed: '提交失败',
+ noId: '缺少维修单 ID',
+ confirmDeleteContent: '确定删除维修单"{code}"吗?',
+ validatorRepairCodeRequired: '请输入维修单编号',
+ validatorRepairNameRequired: '请输入维修单名称',
+ validatorMoldRequired: '请选择模具',
+ validatorRequireDateRequired: '请选择报修日期',
+ validatorFaultLevelRequired: '请选择故障等级',
+ validatorIsShutdownRequired: '请选择是否停机',
+ validatorFaultPhenomenonRequired: '请输入故障现象',
+ validatorRepairStatusRequired: '请选择维修结果',
+ validatorFinishDateRequired: '请选择完成日期',
+ validatorConfirmDateRequired: '请选择验收日期'
}
}
diff --git a/src/pages.json b/src/pages.json
index 6e2378f..b6a1bfb 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -589,6 +589,20 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "moldRepair/index",
+ "style": {
+ "navigationBarTitleText": "模具维修",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "moldRepair/form",
+ "style": {
+ "navigationBarTitleText": "模具维修",
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "moldInspectionItems/index",
"style": {
diff --git a/src/pages_function/pages/moldRepair/form.vue b/src/pages_function/pages/moldRepair/form.vue
new file mode 100644
index 0000000..2e96ab0
--- /dev/null
+++ b/src/pages_function/pages/moldRepair/form.vue
@@ -0,0 +1,960 @@
+
+
+
+
+
+
+ {{ t('moldRepair.basicInfo') }}
+
+
+ {{ t('moldRepair.repairCode') }}
+
+
+
+ {{ t('moldRepair.autoCode') }}
+
+
+
+
+
+
+ {{ t('moldRepair.repairName') }}
+
+
+
+
+ {{ t('moldRepair.requireDate') }}
+ onDateChange('requireDate', e)">
+ {{ formData.requireDate || t('moldRepair.placeholderRequireDate') }}
+
+
+
+
+ {{ t('moldRepair.acceptedBy') }}
+ onUserChange('acceptedBy', e)">
+ {{ acceptedByLabel }}
+
+
+
+
+ {{ t('moldRepair.confirmBy') }}
+ onUserChange('confirmBy', e)">
+ {{ confirmByLabel }}
+
+
+
+
+ {{ t('moldRepair.faultLevel') }}
+
+
+
+
+
+
+ {{ t('moldRepair.isShutdown') }}
+
+
+
+
+
+
+
+ {{ t('moldRepair.status') }}
+ {{ statusLabel }}
+
+
+
+
+ {{ t('moldRepair.repairObject') }}
+
+
+
+ {{ t('moldRepair.mold') }}
+
+
+
+
+
+ {{ selectedMoldLabel }}
+
+
+
+
+ {{ t('moldRepair.moldName') }}
+
+
+
+
+ {{ t('moldRepair.moldCode') }}
+
+
+
+
+
+ {{ t('moldRepair.faultInfo') }}
+
+
+ {{ t('moldRepair.faultPhenomenon') }}
+
+
+
+
+ {{ t('moldRepair.faultDescription') }}
+
+
+
+
+ {{ t('moldRepair.faultImages') }}
+
+
+
+ ×
+
+
+ +
+
+
+
+
+
+
+ {{ t('moldRepair.repairResultSection') }}
+
+
+ {{ t('moldRepair.repairResult') }}
+
+
+
+
+
+
+
+ {{ t('moldRepair.finishDate') }}
+ onDateChange('finishDate', e)">
+ {{ formData.finishDate || t('moldRepair.placeholderFinishDate') }}
+
+
+
+
+ {{ t('moldRepair.confirmDate') }}
+ onDateChange('confirmDate', e)">
+ {{ formData.confirmDate || t('moldRepair.placeholderConfirmDate') }}
+
+
+
+
+ {{ t('moldRepair.downtimeDuration') }}
+
+
+
+
+ {{ t('moldRepair.faultReason') }}
+
+
+
+
+ {{ t('moldRepair.handlingMeasures') }}
+
+
+
+
+ {{ t('moldRepair.replacementParts') }}
+
+
+
+
+ {{ t('moldRepair.repairContent') }}
+
+
+
+
+ {{ t('moldRepair.repairedImages') }}
+
+
+
+ ×
+
+
+ +
+
+
+
+
+
+
+ {{ t('moldRepair.remark') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages_function/pages/moldRepair/index.vue b/src/pages_function/pages/moldRepair/index.vue
new file mode 100644
index 0000000..6f9e446
--- /dev/null
+++ b/src/pages_function/pages/moldRepair/index.vue
@@ -0,0 +1,612 @@
+
+
+
+
+
+
+
+
+
+
+ {{ selectedStatusLabel }}
+
+
+
+ {{ t('functionCommon.reset') }}
+
+
+
+
+
+
+
+
+
+
+ {{ textValue(item.repairCode) }}
+ {{ getRepairStatusText(item.repairStatus) }}
+
+
+ {{ t('moldRepair.moldLabel') }}
+ {{ formatMoldDisplay(item) }}
+
+
+ {{ t('moldRepair.reportTimeLabel') }}
+ {{ formatDateValue(item.requireDate || item.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('functionCommon.loading') }}
+ {{ t('moldRepair.empty') }}
+ {{ t('functionCommon.loadingMore') }}
+ {{ t('functionCommon.noMore') }}
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
\ No newline at end of file