|
@@ -5,7 +5,7 @@
|
|
:show-close="false"
|
|
:show-close="false"
|
|
destroy-on-close
|
|
destroy-on-close
|
|
direction="rtl"
|
|
direction="rtl"
|
|
- size="972px"
|
|
|
|
|
|
+ size="990px"
|
|
>
|
|
>
|
|
<template #header>
|
|
<template #header>
|
|
<div class="drawerTitle">报故</div>
|
|
<div class="drawerTitle">报故</div>
|
|
@@ -67,90 +67,87 @@
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="不合格原因分类" prop="reasonList">
|
|
|
|
- <el-select
|
|
|
|
- v-model="formLabelAlign.reasonList"
|
|
|
|
- multiple
|
|
|
|
- placeholder="请选择"
|
|
|
|
- value-key="dictValue"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in dictStroe.dicts.unqualified_type"
|
|
|
|
- :key="item.dictValue"
|
|
|
|
- :label="item.dictLabel"
|
|
|
|
- :value="item.dictValue"
|
|
|
|
- />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="是否首检" prop="firstInspection">
|
|
|
|
- <el-radio-group v-model="formLabelAlign.firstInspection">
|
|
|
|
- <el-radio :value="0" border size="large">否</el-radio>
|
|
|
|
- <el-radio :value="1" border size="large">是</el-radio>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="不合格品分布情况及工序" prop="processesList">
|
|
|
|
- <el-select
|
|
|
|
- v-model="formLabelAlign.processesList"
|
|
|
|
- multiple
|
|
|
|
- placeholder="请选择"
|
|
|
|
- value-key="operationId"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in operationList"
|
|
|
|
- :key="item.operationId"
|
|
|
|
- :label="item.operationName"
|
|
|
|
- :value="item.operationId"
|
|
|
|
- />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
|
|
- <el-row :gutter="20" style="width: 100%">
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="责任/经办者" prop="personResponsible">
|
|
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="11">
|
|
|
|
+ <el-form-item label="缺陷分类" prop="reasonType">
|
|
<el-select
|
|
<el-select
|
|
- v-model="formLabelAlign.personResponsible"
|
|
|
|
- filterable
|
|
|
|
|
|
+ v-model="formLabelAlign.reasonType"
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
- value-key="id"
|
|
|
|
|
|
+ value-key="dictValue"
|
|
|
|
+ @change="selectQuexianType"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in dictStroe.allUsers"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.userName"
|
|
|
|
- :value="item.userName"
|
|
|
|
|
|
+ v-for="item in dictStroe.dicts.defect_mana"
|
|
|
|
+ :key="item.dictValue"
|
|
|
|
+ :label="item.dictLabel"
|
|
|
|
+ :value="item.dictValue"
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="检验员" prop="userName">
|
|
|
|
|
|
+ <el-col :offset="1" :span="12">
|
|
|
|
+ <el-form-item label="缺陷名称" prop="reasonList">
|
|
<el-select
|
|
<el-select
|
|
- v-model="formLabelAlign.userName"
|
|
|
|
|
|
+ v-model="formLabelAlign.reasonList"
|
|
filterable
|
|
filterable
|
|
|
|
+ multiple
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
value-key="id"
|
|
value-key="id"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in dictStroe.allUsers"
|
|
|
|
|
|
+ v-for="item in quexianList"
|
|
:key="item.id"
|
|
:key="item.id"
|
|
- :label="item.userName"
|
|
|
|
- :value="item.userName"
|
|
|
|
|
|
+ :label="item.bugName"
|
|
|
|
+ :value="item.bugCode"
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
- <el-form-item label="归档编号" prop="archiveNumber">
|
|
|
|
- <el-input v-model="formLabelAlign.archiveNumber" />
|
|
|
|
|
|
+ <el-form-item label="是否首检" prop="firstInspection">
|
|
|
|
+ <el-radio-group v-model="formLabelAlign.firstInspection">
|
|
|
|
+ <el-radio :value="0" border size="large">否</el-radio>
|
|
|
|
+ <el-radio :value="1" border size="large">是</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="不合格品分布情况及工序" prop="processesList">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="formLabelAlign.processesList"
|
|
|
|
+ multiple
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ value-key="operationId"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in operationList"
|
|
|
|
+ :key="item.operationId"
|
|
|
|
+ :label="item.operationName"
|
|
|
|
+ :value="item.operationId"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="工作令号" prop="workOrderNumber">
|
|
|
|
- <el-input v-model="formLabelAlign.workOrderNumber" />
|
|
|
|
|
|
+
|
|
|
|
+ <el-form-item label="责任/经办者" prop="personResponsible">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="formLabelAlign.personResponsible"
|
|
|
|
+ filterable
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ value-key="id"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in dictStroe.allUsers"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.userName"
|
|
|
|
+ :value="item.userName"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="追踪卡号" prop="trackingNumber">
|
|
|
|
- <el-input v-model="formLabelAlign.trackingNumber" />
|
|
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <MultiUpload v-model="formLabelAlign.fileList" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="特征和程度" prop="remark">
|
|
|
|
|
|
+
|
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
<el-input
|
|
<el-input
|
|
v-model="formLabelAlign.remark"
|
|
v-model="formLabelAlign.remark"
|
|
:rows="3"
|
|
:rows="3"
|
|
@@ -175,12 +172,14 @@
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
import {
|
|
import {
|
|
addBreakReport,
|
|
addBreakReport,
|
|
|
|
+ basebugsByType,
|
|
breakReportInfoById,
|
|
breakReportInfoById,
|
|
operationListByIds,
|
|
operationListByIds,
|
|
} from "@/api/process/reportBreak";
|
|
} from "@/api/process/reportBreak";
|
|
import { useProcessStore } from "@/store/modules/processView";
|
|
import { useProcessStore } from "@/store/modules/processView";
|
|
import { useDictionaryStore } from "@/store/modules/dictionary";
|
|
import { useDictionaryStore } from "@/store/modules/dictionary";
|
|
import { getProcessInfo } from "@/api/prosteps";
|
|
import { getProcessInfo } from "@/api/prosteps";
|
|
|
|
+import MultiUpload from "@/components/Upload/MultiUpload.vue";
|
|
|
|
|
|
const processStore = useProcessStore();
|
|
const processStore = useProcessStore();
|
|
const dictStroe = useDictionaryStore();
|
|
const dictStroe = useDictionaryStore();
|
|
@@ -192,14 +191,13 @@ const infoData = ref<any>({});
|
|
const formRef = ref<InstanceType<typeof ElForm>>();
|
|
const formRef = ref<InstanceType<typeof ElForm>>();
|
|
const formLabelAlign = reactive({
|
|
const formLabelAlign = reactive({
|
|
seqNoList: [],
|
|
seqNoList: [],
|
|
|
|
+ reasonType: "",
|
|
reasonList: [],
|
|
reasonList: [],
|
|
processesList: [],
|
|
processesList: [],
|
|
|
|
+ fileList: [],
|
|
firstInspection: 0,
|
|
firstInspection: 0,
|
|
personResponsible: "",
|
|
personResponsible: "",
|
|
userName: "",
|
|
userName: "",
|
|
- archiveNumber: "",
|
|
|
|
- workOrderNumber: "",
|
|
|
|
- trackingNumber: "",
|
|
|
|
remark: "",
|
|
remark: "",
|
|
});
|
|
});
|
|
const rules = reactive({
|
|
const rules = reactive({
|
|
@@ -238,12 +236,19 @@ const selectProcessWorkSeqChange = useDebounceFn(() => {
|
|
});
|
|
});
|
|
}, 2000);
|
|
}, 2000);
|
|
|
|
|
|
|
|
+const quexianList = ref<any>([]);
|
|
|
|
+const selectQuexianType = (value: string) => {
|
|
|
|
+ basebugsByType(value).then((res) => {
|
|
|
|
+ quexianList.value = res.data || [];
|
|
|
|
+ });
|
|
|
|
+};
|
|
|
|
+
|
|
const cancelClick = () => {
|
|
const cancelClick = () => {
|
|
drawerVisible.value = false;
|
|
drawerVisible.value = false;
|
|
};
|
|
};
|
|
|
|
|
|
const confirmClick = () => {
|
|
const confirmClick = () => {
|
|
- // drawerVisible.value = false;
|
|
|
|
|
|
+ drawerVisible.value = false;
|
|
formRef.value &&
|
|
formRef.value &&
|
|
formRef.value.validate((valid: boolean) => {
|
|
formRef.value.validate((valid: boolean) => {
|
|
if (valid) {
|
|
if (valid) {
|