<template>
|
<div>
|
<el-dialog title="纠错处理单" :visible.sync="dialogVisible">
|
<el-steps :active="active" finish-status="success" :align-center="true">
|
<el-step
|
style="cursor: pointer;"
|
v-for="(item, index) in stepList"
|
:key="index"
|
:title="item.label"
|
@click.native="setStep(item.value)"
|
></el-step>
|
</el-steps>
|
<el-divider></el-divider>
|
<Fact
|
v-if="pageStatus == 0"
|
:factForm.sync="mainForm.factForm"
|
:userList="userList"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 0"
|
:step="active"
|
@nextStep="submit"
|
@cancel="cancel"
|
></Fact>
|
<Reason
|
v-if="pageStatus == 1"
|
:reasonForm.sync="mainForm.reasonForm"
|
:userList="userList"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 1"
|
:step="active"
|
@nextStep="submit"
|
@cancel="cancel"
|
></Reason>
|
<Measure
|
v-if="pageStatus == 2"
|
:measureForm.sync="mainForm.measureForm"
|
:userList="userList"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 2"
|
:step="active"
|
@nextStep="submit"
|
@cancel="cancel"
|
></Measure>
|
<Result
|
v-if="pageStatus == 3"
|
:resultForm.sync="mainForm.resultForm"
|
:userList="userList"
|
:currentResponsible="currentResponsible"
|
:disabled="active != 3"
|
:step="active"
|
@nextStep="submit"
|
@cancel="cancel"
|
></Result>
|
<!-- <div slot="footer" class="dialog-footer">
|
<el-button v-if="active == 4" type="primary" @click="submit(5)">完成</el-button>
|
</div> -->
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import Fact from "./Step/Fact.vue";
|
import Reason from "./Step/Reason.vue";
|
import Measure from "./Step/Measure.vue";
|
import Result from "./Step/Result.vue";
|
import dayjs from "dayjs";
|
import {
|
getUserListApi,
|
personSupervisionProcessingPage,
|
addOrUpdatePersonnelServiceProcessing
|
} from "../../../../../../assets/api/api";
|
|
export default {
|
components: {
|
Fact,
|
Reason,
|
Measure,
|
Result
|
},
|
data() {
|
return {
|
active: 0,
|
pageStatus: 0,
|
dialogVisible: false,
|
currentResponsible: undefined,
|
stepList: [
|
{
|
label: "问题描述",
|
value: 0
|
},
|
{
|
label: "原因分析",
|
value: 1
|
},
|
{
|
label: "纠正措施",
|
value: 2
|
},
|
{
|
label: "验证结果",
|
value: 3
|
}
|
],
|
supervisionRecordId: undefined,
|
processId: undefined,
|
mainForm: {
|
factForm: {
|
proposingDepartmentPersonId: undefined,
|
descriptionNonconformity: undefined
|
},
|
reasonForm: {
|
causeAnalysisPersonId: undefined,
|
causeAnalysis: undefined
|
},
|
measureForm: {
|
correctiveActionId: undefined,
|
correctiveMeasure: undefined,
|
requestDepartmentConfirmation: undefined
|
},
|
resultForm: {
|
verificationDepartmentPersonId: undefined,
|
implementationVerificationResults: undefined
|
}
|
},
|
userList: []
|
};
|
},
|
methods: {
|
openDialog(id) {
|
this.dialogVisible = true;
|
this.getUserList();
|
this.getProcessData(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 getProcessData(id) {
|
const { code, data } = await this.$axios({
|
method: "get",
|
url: personSupervisionProcessingPage,
|
params: { id }
|
});
|
if (code == 202) {
|
this.controlType = "新增";
|
this.supervisionRecordId = id;
|
this.active = 0;
|
this.pageStatus = 0;
|
this.processId = undefined;
|
}
|
if (code == 200) {
|
this.currentResponsible = data.currentResponsible;
|
this.controlType = "编辑";
|
this.supervisionRecordId = id;
|
this.processId = data.processingId;
|
this.active = Number(data.currentState);
|
this.pageStatus = Number(
|
data.currentState === 2 ? 0 : data.currentState
|
);
|
// 第1步数据
|
this.mainForm.factForm.proposingDepartmentPersonId =
|
data.proposingDepartmentPersonId;
|
this.mainForm.factForm.descriptionNonconformity =
|
data.descriptionNonconformity;
|
// 第2步数据
|
this.mainForm.reasonForm.causeAnalysisPersonId =
|
data.causeAnalysisPersonId;
|
this.mainForm.reasonForm.causeAnalysis = data.causeAnalysis;
|
// 第3步数据
|
this.mainForm.measureForm.correctiveActionId = data.correctiveActionId;
|
this.mainForm.measureForm.correctiveMeasure = data.correctiveMeasure;
|
this.mainForm.measureForm.requestDepartmentConfirmation =
|
data.requestDepartmentConfirmation;
|
// 第4步数据
|
this.mainForm.resultForm.verificationDepartmentPersonId =
|
data.verificationDepartmentPersonId;
|
this.mainForm.resultForm.implementationVerificationResults =
|
data.implementationVerificationResults;
|
}
|
},
|
closeDialog() {
|
this.dialogVisible = false;
|
},
|
submit(type) {
|
let currentState = undefined;
|
if (type == "submit") {
|
currentState = this.active + 1;
|
} else if (type == "save") {
|
currentState = undefined;
|
}
|
if (this.active == 0) {
|
// 第1步
|
console.log("第1步", this.active, currentState);
|
let { factForm } = this.mainForm;
|
this.submitForm({
|
proposingDepartmentDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
|
currentState: currentState,
|
...factForm
|
});
|
} else if (this.active == 1) {
|
// 第2步
|
console.log("第2步", this.active, currentState);
|
let { reasonForm } = this.mainForm;
|
this.submitForm({
|
causeAnalysisDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
|
currentState: currentState,
|
...reasonForm
|
});
|
} else if (this.active == 2) {
|
// 第3步
|
console.log("第3步", this.active, currentState);
|
let { measureForm } = this.mainForm;
|
let { requestDepartmentConfirmation, ...measureFormRest } = measureForm;
|
this.submitForm({
|
correctiveActionDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
|
currentState: currentState,
|
requestDepartmentConfirmation: requestDepartmentConfirmation ? 1 : 2,
|
...measureFormRest
|
});
|
} else if (this.active == 3) {
|
// 第4步
|
console.log("第4步", this.active, currentState);
|
let { resultForm } = this.mainForm;
|
this.submitForm({
|
verificationDepartmentDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
|
currentState: currentState,
|
...resultForm
|
});
|
}
|
},
|
/**
|
* @desc 提交表单
|
*/
|
async submitForm(form) {
|
console.log("提交表单", form);
|
const { code } = await this.$axios({
|
method: "post",
|
url: addOrUpdatePersonnelServiceProcessing,
|
data: {
|
processingId: this.processId,
|
supervisionRecordId: this.supervisionRecordId,
|
...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.processId,
|
supervisionRecordId: this.supervisionRecordId,
|
currentState: currentState
|
});
|
},
|
setStep(e) {
|
console.log(e);
|
this.pageStatus = e;
|
}
|
}
|
};
|
</script>
|