<template>
|
<div>
|
<el-dialog :visible.sync="dialogVisible" title="不符合工作控制单">
|
<el-steps :active="active" :align-center="true" finish-status="success">
|
<el-step
|
v-for="(item, index) in stepList"
|
:key="index"
|
:title="item.label"
|
style="cursor: pointer;"
|
@click.native="setStep(item.value)"
|
></el-step>
|
</el-steps>
|
<el-divider></el-divider>
|
<ConditionForm
|
v-if="pageStatus == 0"
|
:condiForm.sync="mainForm.condiForm"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 0"
|
:step="active"
|
:userList="userList"
|
@nextStep="submit"
|
></ConditionForm>
|
<ConditionForm
|
v-if="pageStatus == 1"
|
:condiForm.sync="mainForm.condiForm"
|
:currentResponsible="currentResponsible"
|
:disabled="true"
|
:step="active"
|
:userList="userList"
|
@cancel="cancel"
|
@nextStep="submit"
|
></ConditionForm>
|
<MeasureForm
|
v-if="pageStatus == 2"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 2"
|
:handleForm.sync="mainForm.handleForm"
|
:step="active"
|
:userList="userList"
|
@cancel="cancel"
|
@nextStep="submit"
|
></MeasureForm>
|
<RectifyForm
|
v-if="pageStatus == 3"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 3"
|
:rectifyForm.sync="mainForm.rectifyForm"
|
:step="active"
|
:userList="userList"
|
@cancel="cancel"
|
@nextStep="submit"
|
></RectifyForm>
|
<Inform
|
v-if="pageStatus == 4"
|
:disabled="active != 4"
|
:inform.sync="mainForm.inform"
|
:step="active"
|
:userList="userList"
|
@cancel="cancel"
|
@nextStep="submit"
|
></Inform>
|
<el-result
|
v-if="pageStatus == 5"
|
icon="success"
|
subTitle="处理完成"
|
title="审核完成"
|
>
|
</el-result>
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import ConditionForm from "./Step/ConditionForm.vue";
|
import MeasureForm from "./Step/MeasureForm.vue";
|
import RectifyForm from "./Step/RectifyForm.vue";
|
import Inform from "./Step/Inform.vue";
|
import {
|
personSupervisionControlSheetPage,
|
getUserListApi,
|
addOrUpdatePersonSupervisionControl
|
} from "../../../../../../assets/api/api";
|
|
export default {
|
components: {
|
ConditionForm,
|
MeasureForm,
|
RectifyForm,
|
Inform
|
},
|
data() {
|
return {
|
active: 0,
|
pageStatus: 0,
|
dialogVisible: false,
|
currentResponsible: undefined,
|
stepList: [
|
{
|
label: "工作情况",
|
value: 0
|
},
|
{
|
label: "被监督人确认",
|
value: 1
|
},
|
{
|
label: "处理措施",
|
value: 2
|
},
|
{
|
label: "纠正措施",
|
value: 3
|
},
|
{
|
label: "通知客户",
|
value: 4
|
}
|
],
|
supervisionRecordId: undefined,
|
controlId: undefined,
|
mainForm: {
|
condiForm: {
|
departmentHeadId: undefined,
|
supervisedPersonId: undefined,
|
discoveryApproach: [],
|
notConformDetails: undefined,
|
nonConformityClause: undefined
|
},
|
handleForm: {
|
responsibleDepartmentPersonId: undefined,
|
treatmentMeasures: undefined
|
},
|
rectifyForm: {
|
correctiveMeasure: undefined,
|
correctiveMeasureFollowTracks: undefined,
|
correctiveMeasurePersonId: undefined
|
},
|
inform: {
|
whetherInformCustomer: undefined,
|
whetherResumeWork: undefined,
|
qualitySupervisorId: undefined
|
}
|
},
|
userList: [],
|
controlType: undefined
|
};
|
},
|
methods: {
|
/**
|
* @desc 初始化表单
|
*/
|
initForm() {
|
this.mainForm.condiForm.departmentHeadId = undefined;
|
this.mainForm.condiForm.supervisedPersonId = undefined;
|
this.mainForm.condiForm.discoveryApproach = [];
|
this.mainForm.condiForm.notConformDetails = undefined;
|
this.mainForm.condiForm.nonConformityClause = undefined;
|
this.mainForm.handleForm.responsibleDepartmentPersonId = undefined;
|
this.mainForm.handleForm.treatmentMeasures = undefined;
|
this.mainForm.rectifyForm.correctiveMeasure = undefined;
|
this.mainForm.rectifyForm.correctiveMeasureFollowTracks = undefined;
|
this.mainForm.rectifyForm.correctiveMeasurePersonId = undefined;
|
this.mainForm.inform.whetherInformCustomer = undefined;
|
this.mainForm.inform.whetherResumeWork = undefined;
|
this.mainForm.inform.qualitySupervisorId = undefined;
|
},
|
/**
|
* @desc 打开模态框
|
* @param {监督记录id} id
|
*/
|
openDialog(id) {
|
this.dialogVisible = true;
|
this.getUserList();
|
this.getControlData(id);
|
},
|
/**
|
* @desc 获取用户信息
|
*/
|
async getUserList() {
|
const { code, data } = await this.$axios({
|
method: "get",
|
url: getUserListApi
|
});
|
if (code == 200) {
|
this.userList = data;
|
}
|
},
|
/**
|
* @desc 查询监督记录控制单
|
* @param {监督记录id} id
|
*/
|
async getControlData(id) {
|
const { code, data } = await this.$axios({
|
method: "get",
|
url: personSupervisionControlSheetPage,
|
params: { id }
|
});
|
if (code == 202) {
|
this.controlType = "新增";
|
this.supervisionRecordId = id;
|
this.active = 0;
|
this.pageStatus = 0;
|
this.controlId = undefined;
|
this.initForm();
|
}
|
if (code == 200) {
|
this.currentResponsible = data.currentResponsible;
|
this.controlType = "编辑";
|
this.controlId = data.id;
|
this.active = Number(data.currentState);
|
this.pageStatus = Number(
|
data.currentState === 4 ? 0 : data.currentState
|
);
|
// 第1、2步数据
|
this.mainForm.condiForm.departmentHeadId = data.departmentHeadId;
|
this.mainForm.condiForm.supervisedPersonId = data.supervisedPersonId;
|
this.mainForm.condiForm.notConformDetails = data.notConformDetails;
|
this.mainForm.condiForm.nonConformityClause = data.nonConformityClause;
|
// 第3步数据
|
this.mainForm.handleForm.responsibleDepartmentPersonId =
|
data.responsibleDepartmentPersonId;
|
this.mainForm.handleForm.treatmentMeasures = data.treatmentMeasures;
|
// 第4步数据
|
this.mainForm.rectifyForm.correctiveMeasure = data.correctiveMeasure;
|
this.mainForm.rectifyForm.correctiveMeasureFollowTracks =
|
data.correctiveMeasureFollowTracks;
|
this.mainForm.rectifyForm.correctiveMeasurePersonId =
|
data.correctiveMeasurePersonId;
|
// 第5步数据
|
this.mainForm.whetherInformCustomer = data.whetherInformCustomer;
|
this.mainForm.whetherResumeWork = data.whetherResumeWork;
|
this.mainForm.qualitySupervisorId = data.qualitySupervisorId;
|
this.supervisionRecordId = data.supervisionRecordId;
|
}
|
},
|
submit(type) {
|
let currentState = undefined;
|
if (type == "submit") {
|
currentState = this.active + 1;
|
} else if (type == "save") {
|
currentState = undefined;
|
}
|
if (this.active == 0) {
|
let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm;
|
let approcahStr = discoveryApproach.join(",");
|
this.submitForm({
|
id: this.controlId,
|
supervisionRecordId: this.supervisionRecordId,
|
discoveryApproach: approcahStr,
|
currentState: currentState,
|
discovererDate: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
|
...condiFormRest
|
});
|
}
|
if (this.active == 1) {
|
let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm;
|
let approcahStr = discoveryApproach.join(",");
|
this.submitForm({
|
id: this.controlId,
|
supervisionRecordId: this.supervisionRecordId,
|
discoveryApproach: approcahStr,
|
currentState: currentState,
|
supervisedPersonDate: this.$moment().format("YYYY-MM-DD"),
|
...condiFormRest
|
});
|
}
|
if (this.active == 2) {
|
let { handleForm } = this.mainForm;
|
this.submitForm({
|
id: this.controlId,
|
supervisionRecordId: this.supervisionRecordId,
|
currentState: currentState,
|
responsibleDepartmentDate: this.$moment().format(
|
"YYYY-MM-DD HH:mm:ss"
|
),
|
...handleForm
|
});
|
}
|
if (this.active == 3) {
|
let { rectifyForm } = this.mainForm;
|
this.submitForm({
|
id: this.controlId,
|
supervisionRecordId: this.supervisionRecordId,
|
currentState: currentState,
|
correctiveMeasureDate: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
|
...rectifyForm
|
});
|
}
|
if (this.active == 4) {
|
let { inform } = this.mainForm;
|
this.submitForm({
|
id: this.controlId,
|
supervisionRecordId: this.supervisionRecordId,
|
currentState: currentState,
|
qualitySupervisorDate: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
|
...inform
|
});
|
}
|
},
|
/**
|
* @desc 提交表单
|
*/
|
async submitForm(form) {
|
let user = JSON.parse(localStorage.getItem("user"));
|
const { code } = await this.$axios({
|
method: "post",
|
url: addOrUpdatePersonSupervisionControl,
|
data: {
|
currentResponsible: user.name,
|
...form
|
},
|
noQs: true
|
});
|
if (this.controlType == "新增") {
|
if (code == 200) {
|
this.$message.success("提交成功");
|
this.$parent.getTableData();
|
}
|
} else if (this.controlType == "编辑") {
|
if (code == 200) {
|
this.$message.success("提交成功");
|
this.$parent.getTableData();
|
}
|
}
|
this.dialogVisible = false;
|
},
|
/**
|
* @desc 驳回
|
*/
|
cancel() {
|
let currentState = this.active - 1;
|
this.submitForm({
|
id: this.controlId,
|
supervisionRecordId: this.supervisionRecordId,
|
currentState: currentState
|
});
|
},
|
setStep(e) {
|
this.pageStatus = e;
|
}
|
}
|
};
|
</script>
|
<style scoped>
|
.dialog-footer {
|
width: 100%;
|
}
|
>>> .el-dialog__footer {
|
padding-right: 20px;
|
}
|
</style>
|