| | |
| | | <lx-upload :returnUrl="false" |
| | | :isMultiple="true" |
| | | file-type="image" |
| | | v-model="model.fileList" /> |
| | | :disabled="confirmDisable" |
| | | v-model="model.imageFilesResult" /> |
| | | </a-form-model-item> |
| | | </a-row> |
| | | <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 保养项信息 |
| | |
| | | <template v-slot:maintenanceResult="props"> |
| | | <j-dict-select-tag v-model="props.row.maintenanceResult" dictCode="eam_inspection_result" |
| | | placeholder="请选择保养结果" |
| | | :disabled="confirmDisable" |
| | | @change="handleInspectionResultSelectChange($event,props.row)" |
| | | style="width: 100%" /> |
| | | </template> |
| | | |
| | | <template v-slot:exceptionDescription="props"> |
| | | <a-textarea style="height: 32px" v-model="props.row.exceptionDescription" |
| | | :disabled="!props.row.maintenanceResult||props.row.maintenanceResult==='1'" /> |
| | | :disabled="confirmDisable || !props.row.maintenanceResult || props.row.maintenanceResult === '1'" /> |
| | | </template> |
| | | |
| | | <template v-slot:reportFlag="props"> |
| | | <j-dict-select-tag v-model="props.row.reportFlag" |
| | | :disabled="!props.row.maintenanceResult||props.row.maintenanceResult==='1'" |
| | | :disabled="confirmDisable || !props.row.maintenanceResult || props.row.maintenanceResult === '1'" |
| | | dictCode="yn" |
| | | style="width: 100%" /> |
| | | </template> |
| | | </j-vxe-table> |
| | | </a-tab-pane> |
| | | <a-tab-pane key='2' tab='流程节点'> |
| | | <a-card :bordered="false"> |
| | | <a-timeline> |
| | | <a-timeline-item v-for="(item,index) in taskData" :key="index"> |
| | | <div> |
| | | <h3 style="font-weight: bold;">{{item.taskName}}</h3> |
| | | <div>处理人:{{item.assignee_dictText}}</div> |
| | | <div v-if="index !==0">处理时长:{{item.duration}}</div> |
| | | <div v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</div> |
| | | <div v-if="item.description">处理意见:{{item.description}}</div> |
| | | </div> |
| | | </a-timeline-item> |
| | | </a-timeline> |
| | | </a-card> |
| | | </a-tab-pane> |
| | | <a-button v-if="selectedRowKeys.length>0" slot="tabBarExtraContent" type="primary" |
| | | @click="handleSelectAllInspectionResult">批量保养正常 |
| | | @click="handleSelectAllInspectionResult">保养正常 |
| | | </a-button> |
| | | </a-tabs> |
| | | </a-row> |
| | | <div v-if="['WAIT_CONFIRM', 'WAIT_INITIAL_ACCEPTANCE', 'WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(model.maintenanceStatus)"> |
| | | <div v-if="confirmDisable"> |
| | | <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 班组长确认信息 |
| | | </a-divider> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="12"> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmDealType" label="确认类型"> |
| | | <j-dict-select-tag type='radio' v-model='model.confirmDealType' dictCode='approved_rejected' placeholder="请选择处理类型" :disabled="initialAcceptanceDisable" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmComment" label="确认意见"> |
| | | <a-textarea placeholder="请输入意见" v-model="model.confirmComment" :disabled="initialAcceptanceDisable" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | <div v-if="['WAIT_INITIAL_ACCEPTANCE', 'WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(model.maintenanceStatus)"> |
| | | <div v-if="initialAcceptanceDisable"> |
| | | <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 初验收信息 |
| | | </a-divider> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="12"> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="initialAcceptanceComment" label="初验收意见"> |
| | | <a-textarea placeholder="请输入意见" v-model="model.initialAcceptanceComment" :disabled="finalAcceptanceDisable" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="initialAcceptanceFilesResult" label="初验收附件"> |
| | | <lx-upload :returnUrl="false" |
| | | :isMultiple="true" |
| | | :disabled="finalAcceptanceDisable" |
| | | v-model="model.initialAcceptanceFilesResult" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | <div v-if="['WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(model.maintenanceStatus)"> |
| | | <div v-if="finalAcceptanceDisable"> |
| | | <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 终验收信息 |
| | | </a-divider> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="12"> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="finalAcceptanceComment" label="终验收意见"> |
| | | <a-textarea placeholder="请输入意见" v-model="model.finalAcceptanceComment" :disabled="completionDisable" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="finalAcceptanceFilesResult" label="终验收附件"> |
| | | <lx-upload :returnUrl="false" |
| | | :isMultiple="true" |
| | | :disabled="completionDisable" |
| | | v-model="model.finalAcceptanceFilesResult" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | </a-form-model> |
| | | </a-spin> |
| | |
| | | visible: false, |
| | | //状态控制 |
| | | //保养中 不可编辑 |
| | | underMaintenanceDisable: false, |
| | | confirmDisable: false, |
| | | initialAcceptanceDisable: false, |
| | | finalAcceptanceDisable: false, |
| | | // confirmDisable: false, |
| | | // initialAcceptanceDisable: false, |
| | | // finalAcceptanceDisable: false, |
| | | editable: false, |
| | | model: {}, |
| | | maintenanceCategory: 'WEEK_MAINTENANCE', |
| | |
| | | sm: { span: 21 } |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: {}, |
| | | validatorRules: { |
| | | confirmDealType: [ |
| | | { required: true, message: '请选择通过或驳回!' } |
| | | ], |
| | | confirmComment: [ |
| | | { required: true, message: '请输入确认意见!' } |
| | | ], |
| | | initialAcceptanceComment: [ |
| | | { required: true, message: '请输入初验收意见!' } |
| | | ], |
| | | finalAcceptanceComment: [ |
| | | { required: true, message: '请输入终验收意见!' } |
| | | ], |
| | | }, |
| | | url: { |
| | | queryById: '/eam/weekMaintenanceOrder/queryById', |
| | | detail: '/eam/weekMaintenanceOrderDetail/queryList', |
| | | approval: '/eam/weekMaintenanceOrder/approval', |
| | | userSelect: '/eam/user_select/list' |
| | | userSelect: '/eam/user_select/list', |
| | | queryHisTaskList: '/assign/flow/queryHisTaskList', |
| | | }, |
| | | taskData: [], |
| | | isDisplayBmp: false, |
| | | showBmpButtonLoading: false, |
| | | selectedRowKeys: [], |
| | | detail: { |
| | | loading: false, |
| | | dataSource: [], |
| | |
| | | { |
| | | title: '保养结果', |
| | | key: 'maintenanceResult', |
| | | type: JVXETypes.selectSearch, |
| | | dictCode: 'eam_inspection_result', |
| | | type: JVXETypes.slot, |
| | | width: '10%', |
| | | align: 'center', |
| | | slotName: 'maintenanceResult', |
| | |
| | | { |
| | | title: '异常描述', |
| | | key: 'exceptionDescription', |
| | | type: JVXETypes.textarea, |
| | | type: JVXETypes.slot, |
| | | width: '20%', |
| | | align: 'center', |
| | | slotName: 'exceptionDescription', |
| | |
| | | { |
| | | title: '是否报修', |
| | | key: 'reportFlag', |
| | | type: JVXETypes.selectSearch, |
| | | dictCode: 'yn', |
| | | type: JVXETypes.slot, |
| | | width: '10%', |
| | | align: 'center', |
| | | slotName: 'reportFlag', |
| | | } |
| | | ], |
| | | isDisplayBmp: false, |
| | | showBmpButtonLoading: false, |
| | | selectedRowKeys: [], |
| | | toolbarConfig: { |
| | | // prefix 前缀;suffix 后缀 |
| | | slot: ['prefix', 'suffix'], |
| | |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | confirmDisable: function(){ |
| | | return ['WAIT_CONFIRM', 'WAIT_INITIAL_ACCEPTANCE', 'WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(this.model.maintenanceStatus); |
| | | }, |
| | | initialAcceptanceDisable: function() { |
| | | return ['WAIT_INITIAL_ACCEPTANCE', 'WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(this.model.maintenanceStatus); |
| | | }, |
| | | finalAcceptanceDisable: function() { |
| | | return ['WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(this.model.maintenanceStatus); |
| | | }, |
| | | completionDisable: function() { |
| | | return ['COMPLETE', 'ABOLISH'].includes(this.model.maintenanceStatus); |
| | | } |
| | | }, |
| | | methods: { |
| | | async handleDetail(item) { |
| | | this.loading = true |
| | | this.visible = true |
| | | this.detail.dataSource = [] |
| | | let param = { |
| | | id: item.dataId |
| | | let taskDataList = await getAction(this.url.queryHisTaskList, { procInstId: item.procInstId }); |
| | | this.taskData = [...taskDataList.result]; |
| | | let res = await getAction(this.url.queryById, {id: item.dataId}) |
| | | this.model = Object.assign({}, res.result) |
| | | if(this.model.imageFiles) { |
| | | let obj = JSON.parse(this.model.imageFiles); |
| | | this.model.imageFilesResult = [...obj]; |
| | | } |
| | | let res = await getAction(this.url.queryById, param) |
| | | this.model = Object.assign({}, res.result, item) |
| | | if(this.model.initialAcceptanceFiles) { |
| | | let obj = JSON.parse(this.model.initialAcceptanceFiles); |
| | | this.model.initialAcceptanceFilesResult = [...obj]; |
| | | } |
| | | if(this.model.finalAcceptanceFiles) { |
| | | let obj = JSON.parse(this.model.finalAcceptanceFiles); |
| | | this.model.finalAcceptanceFilesResult = [...obj]; |
| | | } |
| | | this.model.dataId = item.dataId |
| | | this.model.taskId = item.id |
| | | this.model.userId = item.assignee |
| | | this.model.instanceId = item.procInstId |
| | | this.model.values = item.variables |
| | | await this.loadDetail(item.dataId) |
| | | this.loading = false |
| | | }, |
| | |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | let tableData = that.$refs.editableDetailTable.getTableData() |
| | | let tableData = that.$refs.editableDetailTable.getTableData(); |
| | | |
| | | let checkMsg = null; |
| | | tableData.some(row => { |
| | | if(!row.maintenanceResult) { |
| | | checkMsg = '保养结果不能为空!'; |
| | | return true; |
| | | } |
| | | if(row.maintenanceResult === '2' && (!row.exceptionDescription || !row.reportFlag)) { |
| | | checkMsg = '保养结果为异常,需要填写异常原因及是否报修!'; |
| | | return true; |
| | | } |
| | | }) |
| | | if(checkMsg) { |
| | | that.$message.warning(checkMsg); |
| | | return; |
| | | } |
| | | |
| | | that.model.tableDetailList = [...tableData] |
| | | |
| | | that.confirmLoading = true |
| | |
| | | httpAction(httpurl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | that.$emit('searchReset') |
| | | that.close() |
| | | } else { |
| | | that.$message.warning(res.message) |