diff --git a/src/api/mold/moldrepair/index.ts b/src/api/mold/moldrepair/index.ts
index 62f19421..9f6f6ec7 100644
--- a/src/api/mold/moldrepair/index.ts
+++ b/src/api/mold/moldrepair/index.ts
@@ -50,6 +50,10 @@ export const MoldRepairApi = {
return await request.download({ url: `/mes/mold-repair/export-excel`, params })
},
+ updateMoldRepairStatus: async (data: any) => {
+ return await request.put({ url: `/mes/mold-repair/updateMoldRepairStatus`, data })
+ },
+
getMoldRepairLineListByRepairId: async (repairId) => {
return await request.get({ url: `/mes/mold-repair/mold-repair-line/list-by-repair-id?repairId=` + repairId })
},
diff --git a/src/locales/en.ts b/src/locales/en.ts
index 4a594b68..a06f6511 100644
--- a/src/locales/en.ts
+++ b/src/locales/en.ts
@@ -1886,6 +1886,10 @@ export default {
finishDate: 'Finish Date',
confirmDate: 'Acceptance Date',
repairResult: 'Repair Result',
+ repairResultPending: 'Pending Repair',
+ repairResultOk: 'Pass',
+ repairResultNg: 'Fail',
+ repairStatus: 'Result',
status: 'Order Status',
statusPending: 'Pending',
statusDone: 'Completed',
@@ -1942,10 +1946,15 @@ export default {
subjectCode: 'Repair Code',
subjectName: 'Repair Name',
subjectContent: 'Repair Content',
+ remark: 'Remark',
+ result: 'Result',
+ resultOk: 'Pass',
+ resultNg: 'Fail',
addLine: 'Add Repair Item',
placeholderSubjectCode: 'Please input repair code',
placeholderSubjectName: 'Please input repair name',
placeholderSubjectContent: 'Please input repair content',
+ placeholderRemark: 'Please input remark',
validatorRepairIdRequired: 'Repair order id can not be empty',
validatorSubjectIdRequired: 'Item id can not be empty',
validatorSubjectCodeRequired: 'Item code can not be empty',
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
index d225c86e..0c5ba671 100644
--- a/src/locales/zh-CN.ts
+++ b/src/locales/zh-CN.ts
@@ -1468,6 +1468,10 @@ export default {
finishDate: '完成日期',
confirmDate: '验收日期',
repairResult: '维修结果',
+ repairResultPending: '待维修',
+ repairResultOk: '通过',
+ repairResultNg: '不通过',
+ repairStatus: '结果',
status: '单据状态',
statusPending: '待完成',
statusDone: '已完成',
@@ -1524,10 +1528,15 @@ export default {
subjectCode: '维修编码',
subjectName: '维修名称',
subjectContent: '维修内容',
+ remark: '备注',
+ result: '结果',
+ resultOk: '通过',
+ resultNg: '不通过',
addLine: '添加维修项目',
placeholderSubjectCode: '请输入维修编码',
placeholderSubjectName: '请输入维修名称',
placeholderSubjectContent: '请输入维修内容',
+ placeholderRemark: '请输入备注',
validatorRepairIdRequired: '维修单ID不能为空',
validatorSubjectIdRequired: '项目ID不能为空',
validatorSubjectCodeRequired: '项目编码不能为空',
diff --git a/src/views/Home/Index.vue b/src/views/Home/Index.vue
index d5d62411..2f9e230f 100644
--- a/src/views/Home/Index.vue
+++ b/src/views/Home/Index.vue
@@ -766,6 +766,24 @@ const getKanban = async () => {
getAllApi()
diff --git a/src/views/mold/moldrepair/MoldRepairForm.vue b/src/views/mold/moldrepair/MoldRepairForm.vue
index 4fabeb68..a89f1477 100644
--- a/src/views/mold/moldrepair/MoldRepairForm.vue
+++ b/src/views/mold/moldrepair/MoldRepairForm.vue
@@ -115,7 +115,7 @@
-
+
@@ -168,6 +168,17 @@ const moldLoading = ref(false)
const moldOptions = ref<{ label: string; value: number; raw?: MoldVO }[]>([])
const moldOptionsLoaded = ref(false)
+const lineMode = computed(() => {
+ if (formType.value === 'repair') return 'repair' as const
+ if (formType.value === 'update') {
+ const v = formData.value.status === '' || formData.value.status === null || formData.value.status === undefined
+ ? undefined
+ : String(formData.value.status)
+ if (v === '1') return 'readonlyWithResult' as const
+ }
+ return 'edit' as const
+})
+
const users = ref([])
const ensureUsersLoaded = async () => {
@@ -244,6 +255,54 @@ const formRules = reactive({
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' }],
+ requireDate: [
+ {
+ validator: (_: any, value: any, callback: any) => {
+ if (formType.value === 'repair' && !value) {
+ callback(new Error(t('MoldManagement.MoldRepair.validatorRequireDateRequired')))
+ return
+ }
+ callback()
+ },
+ trigger: 'change',
+ },
+ ],
+ finishDate: [
+ {
+ validator: (_: any, value: any, callback: any) => {
+ if (formType.value === 'repair' && !value) {
+ callback(new Error(t('MoldManagement.MoldRepair.validatorFinishDateRequired')))
+ return
+ }
+ callback()
+ },
+ trigger: 'change',
+ },
+ ],
+ confirmDate: [
+ {
+ validator: (_: any, value: any, callback: any) => {
+ if (formType.value === 'repair' && !value) {
+ callback(new Error(t('MoldManagement.MoldRepair.validatorConfirmDateRequired')))
+ return
+ }
+ callback()
+ },
+ trigger: 'change',
+ },
+ ],
+ repairResult: [
+ {
+ validator: (_: any, value: any, callback: any) => {
+ if (formType.value === 'repair' && !value) {
+ callback(new Error(t('MoldManagement.MoldRepair.validatorRepairResultRequired')))
+ return
+ }
+ callback()
+ },
+ trigger: 'blur',
+ },
+ ],
})
const formRef = ref()
@@ -379,13 +438,32 @@ const submitForm = async () => {
;(data as any).status = 1
}
;(data as any).moldId = formData.value.moldId
- ;(data as any).moldRepairLines = moldRepairLineFormRef.value.getData()
- if (formType.value === 'create') {
- await MoldRepairApi.createMoldRepair(data)
- message.success(t('common.createSuccess'))
- } else {
- await MoldRepairApi.updateMoldRepair(data)
+ const lineList = moldRepairLineFormRef.value.getData() || []
+
+ if (formType.value === 'repair') {
+ const requireDate = (data as any).requireDate
+ const finishDate = (data as any).finishDate
+ const confirmDate = (data as any).confirmDate
+ const repairResult = (data as any).repairResult
+ const updateReqVOList = lineList
+ await MoldRepairApi.updateMoldRepairStatus({
+ id: (data as any).id,
+ requireDate,
+ finishDate,
+ confirmDate,
+ repairResult,
+ updateReqVOList,
+ })
message.success(t('common.updateSuccess'))
+ } else {
+ ;(data as any).moldRepairLines = lineList
+ if (formType.value === 'create') {
+ await MoldRepairApi.createMoldRepair(data)
+ message.success(t('common.createSuccess'))
+ } else {
+ await MoldRepairApi.updateMoldRepair(data)
+ message.success(t('common.updateSuccess'))
+ }
}
dialogVisible.value = false
emit('success')
diff --git a/src/views/mold/moldrepair/components/MoldRepairLineForm.vue b/src/views/mold/moldrepair/components/MoldRepairLineForm.vue
index e7478416..fc1fb1ba 100644
--- a/src/views/mold/moldrepair/components/MoldRepairLineForm.vue
+++ b/src/views/mold/moldrepair/components/MoldRepairLineForm.vue
@@ -40,6 +40,35 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('MoldManagement.MoldRepairLine.resultOk') }}
+ {{ t('MoldManagement.MoldRepairLine.resultNg') }}
+
+
+
+
@@ -53,6 +82,7 @@ const { t } = useI18n()
const props = defineProps<{
repairId: undefined
+ lineMode?: 'edit' | 'repair' | 'readonlyWithResult'
}>()
const formLoading = ref(false)
const formData = ref([])
@@ -61,6 +91,30 @@ const formRules = reactive({
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' }],
+ remark: [
+ {
+ validator: (_: any, value: any, callback: any) => {
+ if (props.lineMode === 'repair' && !value) {
+ callback(new Error(t('MoldManagement.MoldRepairLine.validatorRemarkRequired')))
+ return
+ }
+ callback()
+ },
+ trigger: 'blur',
+ },
+ ],
+ result: [
+ {
+ validator: (_: any, value: any, callback: any) => {
+ if (props.lineMode === 'repair' && (value === undefined || value === null || value === '')) {
+ callback(new Error(t('MoldManagement.MoldRepairLine.validatorResultRequired')))
+ return
+ }
+ callback()
+ },
+ trigger: 'change',
+ },
+ ],
})
const formRef = ref()
@@ -95,6 +149,7 @@ const handleAdd = () => {
malfunctionUrl: undefined,
repairDes: undefined,
remark: undefined,
+ result: undefined,
}
row.repairId = props.repairId
formData.value.push(row)
diff --git a/src/views/mold/moldrepair/index.vue b/src/views/mold/moldrepair/index.vue
index adae9cc9..31f3aade 100644
--- a/src/views/mold/moldrepair/index.vue
+++ b/src/views/mold/moldrepair/index.vue
@@ -137,6 +137,13 @@
:formatter="dateFormatter2" min-width="130"
/>
+
+
+
+ {{ getResultLabel(scope.row.repairStatus) }}
+
+
+
@@ -220,6 +227,22 @@ const statusOptions = [
{ label: t('MoldManagement.MoldRepair.statusDone'), value: '1' }
]
+const getResultLabel = (value: any) => {
+ const v = value === '' || value === null || value === undefined ? undefined : String(value)
+ if (v === '0') return t('MoldManagement.MoldRepair.repairResultPending')
+ if (v === '1') return t('MoldManagement.MoldRepair.repairResultOk')
+ if (v === '2') return t('MoldManagement.MoldRepair.repairResultNg')
+ return '-'
+}
+
+const getResultTagType = (value: any) => {
+ const v = value === '' || value === null || value === undefined ? undefined : String(value)
+ if (v === '1') return 'success'
+ if (v === '2') return 'danger'
+ if (v === '0') return 'info'
+ return 'info'
+}
+
const getStatusLabel = (value: any) => {
const v = value === '' || value === null || value === undefined ? undefined : String(value)
if (v === '0') return t('MoldManagement.MoldRepair.statusPending')
diff --git a/src/views/report/dashboardList/index.vue b/src/views/report/dashboardList/index.vue
index 623b90fa..bf98f4ee 100644
--- a/src/views/report/dashboardList/index.vue
+++ b/src/views/report/dashboardList/index.vue
@@ -516,21 +516,21 @@ onMounted(() => {
}
.dashboard-card-title {
+ margin-bottom: 4px;
+ overflow: hidden;
font-size: 14px;
font-weight: 600;
color: var(--el-text-color-primary);
- margin-bottom: 4px;
- white-space: nowrap;
- overflow: hidden;
text-overflow: ellipsis;
+ white-space: nowrap;
}
.dashboard-card-remark {
+ overflow: hidden;
font-size: 12px;
color: var(--el-text-color-secondary);
- white-space: nowrap;
- overflow: hidden;
text-overflow: ellipsis;
+ white-space: nowrap;
}
.dashboard-card-actions {
diff --git a/src/views/report/dashboardPage/dashboard1/components/DashboardHeader.vue b/src/views/report/dashboardPage/dashboard1/components/DashboardHeader.vue
index 41670787..7042234b 100644
--- a/src/views/report/dashboardPage/dashboard1/components/DashboardHeader.vue
+++ b/src/views/report/dashboardPage/dashboard1/components/DashboardHeader.vue
@@ -103,22 +103,22 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard1/components/ProductionTrend.vue b/src/views/report/dashboardPage/dashboard1/components/ProductionTrend.vue
index 3a1fae63..5c4dc557 100644
--- a/src/views/report/dashboardPage/dashboard1/components/ProductionTrend.vue
+++ b/src/views/report/dashboardPage/dashboard1/components/ProductionTrend.vue
@@ -104,31 +104,31 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard1/index.vue b/src/views/report/dashboardPage/dashboard1/index.vue
index 35ebe61e..509f05c9 100644
--- a/src/views/report/dashboardPage/dashboard1/index.vue
+++ b/src/views/report/dashboardPage/dashboard1/index.vue
@@ -160,12 +160,19 @@ onMounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/DashboardHeader.vue b/src/views/report/dashboardPage/dashboard8/components/DashboardHeader.vue
index 581b99f6..9c10a97d 100644
--- a/src/views/report/dashboardPage/dashboard8/components/DashboardHeader.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/DashboardHeader.vue
@@ -64,24 +64,24 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/EnergyTrend.vue b/src/views/report/dashboardPage/dashboard8/components/EnergyTrend.vue
index 12eeb558..bbaac737 100644
--- a/src/views/report/dashboardPage/dashboard8/components/EnergyTrend.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/EnergyTrend.vue
@@ -135,30 +135,30 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/OpsTrend.vue b/src/views/report/dashboardPage/dashboard8/components/OpsTrend.vue
index 2a0a4ddd..c3f08095 100644
--- a/src/views/report/dashboardPage/dashboard8/components/OpsTrend.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/OpsTrend.vue
@@ -132,30 +132,30 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/QualityTrend.vue b/src/views/report/dashboardPage/dashboard8/components/QualityTrend.vue
index 4ee08af9..4f0ac060 100644
--- a/src/views/report/dashboardPage/dashboard8/components/QualityTrend.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/QualityTrend.vue
@@ -118,30 +118,30 @@ onMounted(async () => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/RealAlarm.vue b/src/views/report/dashboardPage/dashboard8/components/RealAlarm.vue
index fb9833fb..560b8a20 100644
--- a/src/views/report/dashboardPage/dashboard8/components/RealAlarm.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/RealAlarm.vue
@@ -114,30 +114,30 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/TaskBoard.vue b/src/views/report/dashboardPage/dashboard8/components/TaskBoard.vue
index 0a2dae65..e88a7145 100644
--- a/src/views/report/dashboardPage/dashboard8/components/TaskBoard.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/TaskBoard.vue
@@ -125,30 +125,30 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/components/WeekTrend.vue b/src/views/report/dashboardPage/dashboard8/components/WeekTrend.vue
index c5daccef..864221ca 100644
--- a/src/views/report/dashboardPage/dashboard8/components/WeekTrend.vue
+++ b/src/views/report/dashboardPage/dashboard8/components/WeekTrend.vue
@@ -96,30 +96,30 @@ onUnmounted(() => {
diff --git a/src/views/report/dashboardPage/dashboard8/index.vue b/src/views/report/dashboardPage/dashboard8/index.vue
index 5c1e3c66..5949eb3a 100644
--- a/src/views/report/dashboardPage/dashboard8/index.vue
+++ b/src/views/report/dashboardPage/dashboard8/index.vue
@@ -73,12 +73,23 @@ import EnergyTrend from './components/EnergyTrend.vue'