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