<template>
|
<j-modal :title="title" :visible="visible" fullscreen
|
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="submitForm"
|
@cancel="handleCancel" :mask-closable="false" :confirmLoading="confirmLoading">
|
<a-spin :spinning="spinning">
|
<a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol"
|
:rules="validatorRules">
|
<a-row :gutter="24" id="outer-row">
|
<a-col :span="8" class="scroll-col">
|
<a-tabs>
|
<a-tab-pane tab="基础信息" key="1">
|
<a-row>
|
<a-col :span="span">
|
<a-form-model-item prop="standardCode" label="规范编码">
|
<a-input v-model="tableRowRecord.standardCode" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span="span">
|
<a-form-model-item prop="standardName" label="规范名称">
|
<a-input v-model="tableRowRecord.standardName" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
|
<a-row>
|
<a-col :span='span'>
|
<a-form-model-item label="统一编码">
|
<a-input v-model="tableRowRecord.equipmentCode" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span='span'>
|
<a-form-model-item label="保养分类">
|
<a-input v-model="tableRowRecord.maintenanceCategory_dictText" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
|
</a-row>
|
|
<a-row>
|
<a-col :span='span'>
|
<a-form-model-item label="保养周期单位">
|
<a-input v-model="tableRowRecord.periodUnit" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span='span'>
|
<a-form-model-item label="保养周期">
|
<a-input v-model="tableRowRecord.maintenancePeriod" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
|
<a-row>
|
<a-col :span='span'>
|
<a-form-model-item label="初始日期">
|
<a-input v-model="tableRowRecord.initialDate" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span='span'>
|
<a-form-model-item label="规范状态">
|
<a-input v-model="tableRowRecord.standardStatus_dictText" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
|
<a-row>
|
<a-col :span="span">
|
<a-form-model-item label="规范版本">
|
<a-input v-model="tableRowRecord.standardVersion" readOnly/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
</a-tab-pane>
|
</a-tabs>
|
</a-col>
|
|
<a-col :span="10" class="scroll-col">
|
<a-tabs default-active-key="1">
|
<a-tab-pane key="1" tab="保养项明细">
|
<j-vxe-table ref="editableDetailTable" :rowNumber="false" :bordered="true"
|
:alwaysEdit="true" :toolbar="false" keep-source :loading="detail.loading"
|
:dataSource="detail.dataSource" :columns="detail.columns">
|
<template v-slot:itemCategory="props">
|
<j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
|
</template>
|
</j-vxe-table>
|
</a-tab-pane>
|
|
<template v-if="selectShenpiData.procInstId">
|
<a-tab-pane tab='流程图' forceRender>
|
<img :src="imageSrc" width="100%" v-if="imageSrc"/>
|
</a-tab-pane>
|
</template>
|
</a-tabs>
|
</a-col>
|
|
<a-col :span="6" class="scroll-col">
|
<a-tabs>
|
<a-tab-pane tab="维修主任审批">
|
<a-row :gutter="24">
|
<a-col :span="24">
|
<a-form-model-item prop="repairManagerApproveResult" label="处理类型">
|
<j-dict-select-tag type='radio' v-model='tableRowRecord.repairManagerApproveResult'
|
dictCode='approved_rejected'
|
:disabled="disableSubmit||tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'"/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :span="24">
|
<a-form-model-item label="处理意见">
|
<a-textarea placeholder="请输入意见"
|
:disabled="disableSubmit||tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'"
|
v-model="tableRowRecord.repairManagerApproveComment"/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
</a-tab-pane>
|
</a-tabs>
|
|
<a-tabs v-if="tableRowRecord.standardStatus&&tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'">
|
<a-tab-pane tab="技术主管审批">
|
<a-row :gutter="24">
|
<a-col :span="24">
|
<a-form-model-item prop="technicalManagerApproveResult" label="处理类型">
|
<j-dict-select-tag type='radio' v-model='tableRowRecord.technicalManagerApproveResult'
|
dictCode='approved_rejected'/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :span="24">
|
<a-form-model-item label="处理意见">
|
<a-textarea placeholder="请输入意见" v-model="tableRowRecord.technicalManagerApproveComment"/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
</a-tab-pane>
|
</a-tabs>
|
</a-col>
|
</a-row>
|
</a-form-model>
|
</a-spin>
|
</j-modal>
|
</template>
|
|
<script>
|
import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage'
|
import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
|
import { JVXETypes } from '@comp/jeecg/JVxeTable'
|
import moment from 'moment'
|
|
export default {
|
name: 'MaintenanceStandardApprovalModal',
|
components: { MaintenanceEquipmentSelect },
|
props: {
|
selectShenpiData: {
|
type: Object
|
}
|
},
|
data() {
|
return {
|
span: 12,
|
confirmLoading: false,
|
spinning: false,
|
tableRowRecord: {},
|
validatorRules: {
|
repairManagerApproveResult: [
|
{ required: true, message: '请选择处理类型' }
|
],
|
technicalManagerApproveResult: [
|
{ required: true, message: '请选择处理类型' }
|
]
|
},
|
imageSrc: null,
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 8 }
|
},
|
wrapperCol: {
|
xs: { span: 30 },
|
sm: { span: 16 }
|
},
|
visible: false,
|
// 表头
|
url: {
|
diagramView: '/assign/flow/diagramView',
|
queryHisTaskList: '/assign/flow/queryHisTaskList',
|
approve: '/eam/maintenanceStandard/audit',
|
queryById: '/eam/maintenanceStandard/list',
|
detailList: '/eam/eamMaintenanceStandardDetail/queryList'
|
},
|
detail: {
|
loading: false,
|
dataSource: [],
|
columns: [],
|
defaultColumns: [
|
{
|
title: 'ID',
|
key: 'id',
|
type: JVXETypes.hidden
|
},
|
{
|
title: 'standardId',
|
key: 'standardId',
|
type: JVXETypes.hidden
|
},
|
{
|
title: '项目序号',
|
key: 'itemCode',
|
type: JVXETypes.inputNumber,
|
align: 'center',
|
disabled: true
|
},
|
{
|
title: '部位',
|
key: 'itemPart',
|
type: JVXETypes.textarea,
|
align: 'center',
|
disabled: true
|
},
|
{
|
title: '保养项分类',
|
key: 'itemCategory',
|
type: JVXETypes.slot,
|
slotName: 'itemCategory',
|
align: 'center'
|
},
|
{
|
title: '保养项目',
|
key: 'itemName',
|
type: JVXETypes.textarea,
|
align: 'center',
|
disabled: true
|
},
|
{
|
title: '保养规范或要求',
|
key: 'itemDemand',
|
type: JVXETypes.textarea,
|
align: 'center',
|
disabled: true
|
}
|
]
|
},
|
disableSubmit: false,
|
title: ''
|
}
|
},
|
watch: {
|
'tableRowRecord.maintenanceCategory': {
|
handler(val) {
|
if (val) {
|
if (val != 'THIRD_MAINTENANCE') this.detail.columns = [...this.detail.defaultColumns.filter(item => item.key != 'itemPart')]
|
else this.detail.columns = [...this.detail.defaultColumns.filter(item => item.key != 'itemCategory')]
|
}
|
else this.detail.columns = [...this.detail.defaultColumns]
|
}
|
}
|
},
|
computed: {
|
encodedDictCode() {
|
const dictCode = `sys_dict_item,item_text,item_value,dict_id='1940598438685134850'`
|
return encodeURIComponent(dictCode)
|
}
|
},
|
methods: {
|
/**
|
* 获取流程节点和流程图
|
* @param record 待办记录信息
|
*/
|
getAllApproveData(record) {
|
if (record.procInstId) {
|
const { processDefinitionId, processInstanceId, processDefinitionKey, procInstId } = record
|
const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey }
|
const that = this
|
this.imageSrc = null
|
|
downFile(this.url.diagramView, imageParam, 'get')
|
.then((res => {
|
const urlObject = window.URL.createObjectURL(new Blob([res]))
|
that.imageSrc = urlObject
|
}))
|
.finally(() => {
|
this.spinning = false
|
})
|
}
|
},
|
|
/**
|
* 获取待办记录的基本信息
|
* @param record 待办记录信息
|
*/
|
async getBasicInformation(record) {
|
this.detail.dataSource = []
|
this.tableRowRecord = {}
|
this.spinning = true
|
const param = { id: record.dataId }
|
let res = await getAction(this.url.queryById, param)
|
this.tableRowRecord = Object.assign({}, res.result.records[0])
|
await this.loadDetail(record.dataId)
|
},
|
|
/**
|
* 获取保养明细
|
* @param dataId 业务ID
|
*/
|
loadDetail(dataId) {
|
if (dataId) {
|
getAction(this.url.detailList, { standardId: dataId })
|
.then(res => {
|
if (res.success) {
|
this.detail.dataSource = [...res.result]
|
}
|
})
|
}
|
},
|
|
async submitForm() {
|
let errMap = await this.$refs.editableDetailTable.validateTable()
|
if (errMap) {
|
return
|
}
|
|
this.$refs.form.validate(valid => {
|
if (valid) {
|
this.confirmLoading = this.spinning = true
|
const flowTaskVo = {}
|
flowTaskVo.dataId = this.selectShenpiData.dataId
|
flowTaskVo.taskId = this.selectShenpiData.id
|
flowTaskVo.userId = this.selectShenpiData.assignee
|
flowTaskVo.instanceId = this.selectShenpiData.procInstId
|
if (this.tableRowRecord.standardStatus == 'WAIT_REPAIR_DIRECTOR') {
|
flowTaskVo.repairManagerApproveResult = this.tableRowRecord.repairManagerApproveResult
|
flowTaskVo.repairManagerApproveComment = this.tableRowRecord.repairManagerApproveComment
|
} else {
|
flowTaskVo.technicalManagerApproveResult = this.tableRowRecord.technicalManagerApproveResult
|
flowTaskVo.technicalManagerApproveComment = this.tableRowRecord.technicalManagerApproveComment
|
}
|
const that = this
|
console.log('表单提交数据', flowTaskVo)
|
httpAction(this.url.approve, flowTaskVo, 'post')
|
.then((res) => {
|
if (res.success) {
|
that.$notification.success({
|
message: '消息',
|
description: res.message
|
})
|
//刷新表格
|
that.$emit('modalFormOk')
|
that.handleCancel()
|
} else {
|
that.$notification.warning({
|
message: '消息',
|
description: res.message
|
})
|
}
|
})
|
.finally(() => {
|
that.confirmLoading = this.spinning = false
|
})
|
} else {
|
return false
|
}
|
})
|
},
|
|
handleCancel() {
|
this.visible = false
|
}
|
}
|
}
|
</script>
|
<style scoped lang="less">
|
/deep/ .ant-select-dropdown-menu {
|
text-align: left;
|
}
|
|
/deep/ .ant-spin-nested-loading {
|
height: 100%;
|
|
.ant-spin-container {
|
height: 100%;
|
|
.ant-form {
|
height: 100%;
|
|
#outer-row {
|
height: 100%;
|
|
.scroll-col {
|
height: 100%;
|
overflow: auto;
|
}
|
}
|
}
|
}
|
}
|
</style>
|