<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" :departId="departId" :isPermission="isPermission"
|
:factForm.sync="mainForm.factForm" :userList="userList" :currentResponsible="currentResponsible"
|
:disabled="active != 0" :step="active" @nextStep="submit" @cancel="cancel"></Fact>
|
<Reason v-if="pageStatus == 1" :isPermission="isPermission" :departId="departId"
|
:reasonForm.sync="mainForm.reasonForm" :userList="userList" :currentResponsible="currentResponsible"
|
:disabled="active != 1" :step="active" @nextStep="submit" @cancel="cancel"></Reason>
|
<Measure v-if="pageStatus == 2" :departId="departId" :isPermission="isPermission"
|
:measureForm.sync="mainForm.measureForm" :userList="userList" :currentResponsible="currentResponsible"
|
:disabled="active != 2" :step="active" @nextStep="submit" @cancel="cancel"></Measure>
|
<Result v-if="pageStatus == 3" :departId="departId" :isPermission="isPermission"
|
: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 { dateFormat } from '@/utils/date.js'
|
import {
|
selectUserList,
|
personSupervisionProcessingPage,
|
addOrUpdatePersonnelServiceProcessing
|
} from '@/api/cnas/personnel/personnelInfo.js'
|
export default {
|
props: {
|
departId: {
|
type: Number,
|
default: () => {
|
return null;
|
}
|
},
|
},
|
components: {
|
Fact, Reason, Measure, Result
|
},
|
data() {
|
return {
|
isPermission: true,
|
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: [],
|
}
|
},
|
mounted() {
|
// this.isPermission = isPermission("isSubmit")
|
console.log('权限', this.isPermission);
|
},
|
methods: {
|
openDialog(id) {
|
this.dialogVisible = true
|
this.getUserList()
|
this.getProcessData(id)
|
},
|
/**
|
* @desc 获取用户信息
|
*/
|
async getUserList() {
|
const { code, data } = await selectUserList()
|
if (code == 200) {
|
this.userList = data
|
}
|
},
|
/**
|
* @desc 查询监督记录处理单
|
* @param {监督记录id} id
|
*/
|
async getProcessData(id) {
|
const { code, data } = await personSupervisionProcessingPage({ id })
|
if (!data) {
|
this.controlType = '新增'
|
this.supervisionRecordId = id
|
this.active = 0
|
this.pageStatus = 0
|
this.processId = undefined
|
}
|
if (data && 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: this.$moment().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: this.$moment().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: this.$moment().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: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
|
currentState: currentState,
|
...resultForm
|
})
|
}
|
},
|
/**
|
* @desc 提交表单
|
*/
|
async submitForm(form) {
|
console.log('提交表单', form)
|
const { code } = await addOrUpdatePersonnelServiceProcessing({
|
processingId: this.processId,
|
supervisionRecordId: this.supervisionRecordId,
|
...form
|
})
|
if (this.controlType == '新增') {
|
if (code == 200) {
|
this.$message.success('提交成功')
|
}
|
} else if (this.controlType == '编辑') {
|
if (code == 200) {
|
this.$message.success('提交成功')
|
}
|
}
|
this.$emit('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>
|