<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('提交成功')
|
}
|
} else if(this.controlType == '编辑') {
|
if(code == 200) {
|
this.$message.success('提交成功')
|
}
|
}
|
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>
|