| src/views/equipmentManagement/inspectionManagement/components/uploadFiles.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/equipmentManagement/repair/Modal/RepairModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/equipmentManagement/repair/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/equipmentManagement/inspectionManagement/components/uploadFiles.vue
@@ -14,7 +14,7 @@ <div class="exception-section"> <div class="section-title">是否存在异常?</div> <el-radio-group v-model="hasException"> <el-radio-group v-model="currentHasException"> <el-radio :value="false">正常</el-radio> <el-radio :value="true">存在异常</el-radio> </el-radio-group> @@ -135,11 +135,27 @@ const afterModelValue = ref([]); const issueModelValue = ref([]); const currentUploadType = ref("before"); const hasException = ref(null); const hasExceptionBefore = ref(null); const hasExceptionAfter = ref(null); const hasExceptionIssue = ref(null); const currentTask = ref(null); const showVideoDialog = ref(false); const currentVideoFile = ref(null); // 根据当前 Tab 获取/设置对应的异常状态 const currentHasException = computed({ get: () => { if (currentUploadType.value === "before") return hasExceptionBefore.value; if (currentUploadType.value === "after") return hasExceptionAfter.value; return hasExceptionIssue.value; }, set: (val) => { if (currentUploadType.value === "before") hasExceptionBefore.value = val; else if (currentUploadType.value === "after") hasExceptionAfter.value = val; else hasExceptionIssue.value = val; } }); const uploadConfig = { action: "/file/upload", @@ -216,7 +232,9 @@ afterModelValue.value = []; issueModelValue.value = []; currentUploadType.value = "before"; hasException.value = null; hasExceptionBefore.value = null; hasExceptionAfter.value = null; hasExceptionIssue.value = null; currentTask.value = null; uploadProgress.value = 0; uploading.value = false; @@ -243,8 +261,12 @@ : []; currentUploadType.value = "before"; hasException.value = typeof rawTask.hasException === "boolean" ? rawTask.hasException : null; hasExceptionBefore.value = typeof rawTask.hasExceptionBefore === "boolean" ? rawTask.hasExceptionBefore : null; hasExceptionAfter.value = typeof rawTask.hasExceptionAfter === "boolean" ? rawTask.hasExceptionAfter : null; hasExceptionIssue.value = typeof rawTask.hasExceptionIssue === "boolean" ? rawTask.hasExceptionIssue : null; uploadFileList.value = []; showUploadDialog.value = true; }; @@ -427,7 +449,9 @@ return { ...rest, hasException: hasException.value, hasExceptionBefore: hasExceptionBefore.value, hasExceptionAfter: hasExceptionAfter.value, hasExceptionIssue: hasExceptionIssue.value, tempFileIds, commonFileListBefore: buildGroupedFiles(beforeModelValue.value), commonFileListAfter: buildGroupedFiles(afterModelValue.value), @@ -436,14 +460,17 @@ }; const submitUpload = async () => { if (hasException.value === null) { ElMessage.warning("请选择是否存在异常"); // 只验证当前 Tab 的异常状态 const currentException = currentHasException.value; if (currentException === null) { ElMessage.warning(`请选择${getUploadTypeText()}是否存在异常`); return; } const files = buildSubmitFiles(); if (!files.length) { ElMessage.warning("请先上传文件"); const currentFiles = getCurrentFiles(); // 只有选择"存在异常"时才需要上传文件 if (currentException === true && !currentFiles.length) { ElMessage.warning(`${getUploadTypeText()}存在异常时请上传图片或视频`); return; } src/views/equipmentManagement/repair/Modal/RepairModal.vue
@@ -38,14 +38,16 @@ /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="报修日期"> <el-col :span="24"> <el-form-item label="报修时间"> <el-date-picker v-model="form.repairTime" placeholder="请选择报修日期" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" v-model="form.repairTimeRange" type="datetimerange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" clearable style="width: 100%" /> @@ -120,7 +122,7 @@ deviceName: undefined, // 设备名称 deviceModel: undefined, // 规格型号 repairProject: undefined, // 报修项目 repairTime: dayjs().format("YYYY-MM-DD"), // 报修日期,默认当天 repairTimeRange: [dayjs().format("YYYY-MM-DD HH:mm:ss"), dayjs().format("YYYY-MM-DD HH:mm:ss")], // 报修时间范围,默认当天 repairName: userStore.nickName, // 报修人 remark: undefined, // 故障现象 status: 0, // 报修状态 @@ -136,7 +138,14 @@ form.deviceName = data.deviceName; form.deviceModel = data.deviceModel; form.repairProject = data.repairProject; form.repairTime = data.repairTime; // 设置时间范围,如果后端返回的是单个时间则范围选择 if (data.repairTimeStart && data.repairTimeEnd) { form.repairTimeRange = [data.repairTimeStart, data.repairTimeEnd]; } else if (data.repairTime) { form.repairTimeRange = [data.repairTime, data.repairTime]; } else { form.repairTimeRange = null; } form.repairName = data.repairName; form.remark = data.remark; form.status = data.status; @@ -145,9 +154,17 @@ const sendForm = async () => { loading.value = true; try { // 将时间范围拆分为开始时间和结束时间 const submitData = { ...form, repairTimeStart: form.repairTimeRange?.[0] || null, repairTimeEnd: form.repairTimeRange?.[1] || null, }; delete submitData.repairTimeRange; const { code } = id.value ? await editRepair({ id: unref(id), ...form }) : await addRepair(form); ? await editRepair({ id: unref(id), ...submitData }) : await addRepair(submitData); if (code == 200) { ElMessage.success(`${id.value ? "编辑" : "新增"}报修成功`); visible.value = false; src/views/equipmentManagement/repair/index.vue
@@ -102,6 +102,22 @@ <el-tag v-if="row.status === 1" type="success">完结</el-tag> <el-tag v-if="row.status === 0" type="warning">待维修</el-tag> </template> <template #repairTimeSlot="{ row }"> <span v-if="row.repairTimeStart || row.repairTimeEnd"> <template v-if="row.repairTimeStart && row.repairTimeEnd"> <span v-if="row.repairTimeStart === row.repairTimeEnd"> {{ dayjs(row.repairTimeStart).format("YYYY-MM-DD HH:mm:ss") }} </span> <span v-else> {{ dayjs(row.repairTimeStart).format("YYYY-MM-DD HH:mm:ss") }} 至 {{ dayjs(row.repairTimeEnd).format("YYYY-MM-DD HH:mm:ss") }} </span> </template> <template v-else> {{ row.repairTimeStart ? dayjs(row.repairTimeStart).format("YYYY-MM-DD HH:mm:ss") : dayjs(row.repairTimeEnd).format("YYYY-MM-DD HH:mm:ss") }} </template> </span> <span v-else>-</span> </template> <template #operation="{ row }"> <el-button type="primary" @@ -193,10 +209,11 @@ prop: "repairProject", }, { label: "报修日期", label: "报修时间", align: "center", prop: "repairTime", formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"), prop: "repairTimeStart", dataType: "slot", slot: "repairTimeSlot", }, { label: "报修人",