| | |
| | | <el-select v-model="form.dealResult" |
| | | placeholder="请选择" |
| | | clearable> |
| | | <el-option :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in rejection_handling" |
| | | :key="item.value" /> |
| | | <el-option label="报工" value="报工" /> |
| | | <el-option label="报废" value="报废" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-select v-model="form.dealType" |
| | | placeholder="请选择" |
| | | clearable |
| | | :disabled="!form.dealResult" |
| | | style="width: 100%"> |
| | | <el-option label="轻微返工" :value="0" /> |
| | | <el-option label="严重返工" :value="1" /> |
| | | <el-option label="报废" :value="2" /> |
| | | <el-option v-for="item in availableDealTypeOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | :precision="2" |
| | | style="width: 100%" |
| | | :disabled="form.dealType !== 0" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="重新生成新单:" |
| | | prop="regenerateNewOrder"> |
| | | <el-select v-model="form.regenerateNewOrder" |
| | | placeholder="请选择" |
| | | clearable |
| | | style="width: 100%"> |
| | | <el-option label="否" :value="0" /> |
| | | <el-option label="是" :value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | |
| | | const dialogFormVisible = ref(false); |
| | | const operationType = ref(""); |
| | | const { rejection_handling } = proxy.useDict("rejection_handling"); |
| | | const data = reactive({ |
| | | form: { |
| | | checkTime: "", |
| | |
| | | inspectType: "", |
| | | defectivePhenomena: "", |
| | | dealResult: "", |
| | | dealType: 0, |
| | | dealType: null, |
| | | repairWorkHour: 0, |
| | | regenerateNewOrder: 0, |
| | | dealName: "", |
| | |
| | | const modelOptions = ref([]); |
| | | const userList = ref([]); // 检验员/处理人下拉列表 |
| | | const watermarkText = computed(() => { |
| | | const userName = userStore.nickName || userStore.user?.nickName || "未知人员"; |
| | | const now = new Date(); |
| | | const pad = (n) => String(n).padStart(2, "0"); |
| | | return `不合格处理\n${userName}\n${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())} ${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`; |
| | | return `天津市玮苓乐器有限公司\n${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())} ${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`; |
| | | }); |
| | | watch(() => form.value.dealType, (val) => { |
| | | const availableDealTypeOptions = computed(() => { |
| | | if (form.value.dealResult === "报废") { |
| | | return [{ label: "报废", value: 2 }]; |
| | | } |
| | | if (form.value.dealResult === "报工") { |
| | | return [ |
| | | { label: "轻微返工", value: 0 }, |
| | | { label: "严重返工", value: 1 }, |
| | | ]; |
| | | } |
| | | return []; |
| | | }); |
| | | |
| | | watch(() => form.value.dealResult, val => { |
| | | if (val === "报废") { |
| | | form.value.dealType = 2; |
| | | form.value.repairWorkHour = 0; |
| | | return; |
| | | } |
| | | if (val === "报工" && form.value.dealType === 2) { |
| | | form.value.dealType = null; |
| | | } |
| | | }); |
| | | |
| | | watch(() => form.value.dealType, val => { |
| | | if (val !== 0) { |
| | | form.value.repairWorkHour = 0; |
| | | } |
| | | if (val === 2) { |
| | | form.value.dealResult = "报废"; |
| | | } |
| | | if ((val === 0 || val === 1) && !form.value.dealResult) { |
| | | form.value.dealResult = "报工"; |
| | | } |
| | | }); |
| | | |
| | |
| | | dealName: "", |
| | | dealTime: "", |
| | | dealResult: "", |
| | | dealType: 0, |
| | | dealType: null, |
| | | repairWorkHour: 0, |
| | | regenerateNewOrder: 0, |
| | | photoUrls: [], |
| | |
| | | } |
| | | getProductOptions(); |
| | | if (operationType.value === "edit") { |
| | | getQualityUnqualifiedInfo(row.id).then(res => { |
| | | const { inspectState, ...rest } = res.data || {}; |
| | | form.value = { |
| | | ...rest, |
| | | photoUrls: rest.photoUrls |
| | | getQualityUnqualifiedInfo(row.id).then(res => { |
| | | const { inspectState, ...rest } = res.data || {}; |
| | | form.value = { |
| | | ...rest, |
| | | photoUrls: rest.photoUrls |
| | | ? String(rest.photoUrls).split(",").filter(Boolean).map((url, index) => ({ |
| | | name: `image-${index + 1}`, |
| | | url, |
| | | })) |
| | | })) |
| | | : [], |
| | | }; |
| | | }); |
| | | } |
| | | }; |
| | | if (Number(form.value.dealType) === 0) { |
| | | form.value.regenerateNewOrder = 0; |
| | | } else if (Number(form.value.dealType) === 1 || Number(form.value.dealType) === 2) { |
| | | form.value.regenerateNewOrder = 1; |
| | | } |
| | | if (!form.value.dealResult) { |
| | | form.value.dealResult = Number(form.value.dealType) === 2 ? "报废" : "报工"; |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | const getProductOptions = () => { |
| | | productTreeList().then(res => { |
| | |
| | | if (valid) { |
| | | // 状态字段不在表单填写,也不传给后端 |
| | | const { inspectState, ...payload } = form.value || {}; |
| | | if (!payload.dealResult) { |
| | | proxy.$modal.msgError("请选择处理结果"); |
| | | return; |
| | | } |
| | | if (payload.dealResult === "报工" && (payload.dealType === null || payload.dealType === undefined || payload.dealType === 2)) { |
| | | proxy.$modal.msgError("报工时请选择轻微返工或严重返工"); |
| | | return; |
| | | } |
| | | if (payload.dealResult === "报废") { |
| | | payload.dealType = 2; |
| | | } |
| | | if (payload.dealType === 0 && (!payload.repairWorkHour || payload.repairWorkHour <= 0)) { |
| | | proxy.$modal.msgError("轻微返工必须填写大于0的修理工时"); |
| | | return; |