¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal :title="title" :width="1300" :fullscreen="fullScreen" :visible="visible" :confirmLoading="confirmLoading" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="handleOk" |
| | | @cancel="handleCancel" cancelText="å
³é"> |
| | | <a-spin :spinning="spinning"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-row id="outer-row" :gutter="24"> |
| | | <!--左侧åºç¡ä¿¡æ¯å--> |
| | | <a-col :span="!disableSubmit?8:14" class="scroll-col"> |
| | | <a-tabs> |
| | | <a-tab-pane tab="åºç¡ä¿¡æ¯"> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ç³è¯·åå·"> |
| | | <a-input v-model="model.applicationOrderNum" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ç»ä¸ç¼ç "> |
| | | <technical-status-equipment-select v-model="model.equipmentId" |
| | | @autocompleteForm="autocompleteForm" disabled/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | |
| | | |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ç³è¯·é¨é¨"> |
| | | <a-input v-model="model.factoryOrgCode_dictText" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ç³è¯·äºº"> |
| | | <a-input v-model="model.applicant_dictText" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ææ¯ç¶æé´å®æ¥æ"> |
| | | <a-input v-model="model.evaluationDate" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="夿³¨"> |
| | | <a-textarea v-model="model.remark" readOnly/> |
| | | </a-form-model-item> |
| | | </a-row> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | |
| | | <!-- ä¸é´æç»é¡¹å--> |
| | | <a-col v-if="selectShenpiData.procInstId" :span="10" class="scroll-col"> |
| | | <a-tabs> |
| | | <a-tab-pane key='1' tab='æµç¨å¾'> |
| | | <img :src="imageSrc" alt="Fetched Image" style="width: 100%" v-if="imageSrc"/> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | |
| | | <!--å³ä¾§å®¡æ¹å--> |
| | | <a-col :span="!disableSubmit?6:10" class="scroll-col"> |
| | | <a-tabs v-if="displayDepartHeaderFlag"> |
| | | <a-tab-pane tab="使ç¨åä½å®¤çº§é¢å¯¼ç¡®è®¤"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item prop="departHeaderSignatureResult" label="确认类å" :labelCol="rightColLabelCol" |
| | | :wrapperCol="rightColWrapperCol"> |
| | | <j-dict-select-tag type='radio' v-model='model.departHeaderSignatureResult' |
| | | dictCode='approve_reject' |
| | | :disabled="disableSubmit||(model.applicationStatus&&model.applicationStatus!=='DEPART_HEADER_SIGNING')"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="确认æè§" :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"> |
| | | <a-textarea placeholder="请è¾å
¥æè§" v-model="model.departHeaderComment" |
| | | :disabled="disableSubmit||(model.applicationStatus&&model.applicationStatus!=='DEPART_HEADER_SIGNING')"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | |
| | | <a-tabs v-if="displayProductionHeaderFlag"> |
| | | <a-tab-pane tab="ç产设å¤ç®¡ç主管确认"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item prop="productionHeaderSignatureResult" label="确认类å" :labelCol="rightColLabelCol" |
| | | :wrapperCol="rightColWrapperCol"> |
| | | <j-dict-select-tag type='radio' v-model='model.productionHeaderSignatureResult' |
| | | dictCode='approve_reject' |
| | | :disabled="disableSubmit||(model.applicationStatus&&model.applicationStatus!=='PRODUCTION_HEADER_SIGNING')"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="确认æè§" :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"> |
| | | <a-textarea placeholder="请è¾å
¥æè§" v-model="model.productionHeaderComment" |
| | | :disabled="disableSubmit||(model.applicationStatus&&model.applicationStatus!=='PRODUCTION_HEADER_SIGNING')"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | |
| | | <a-tabs v-if="displayProductionSupportFlag"> |
| | | <a-tab-pane tab="ç产ä¿éé¨é¢å¯¼ç¡®è®¤"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item prop="productionSupportSignatureResult" label="确认类å" |
| | | :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"> |
| | | <j-dict-select-tag type='radio' v-model='model.productionSupportSignatureResult' |
| | | dictCode='approve_reject' |
| | | :disabled="disableSubmit||(model.applicationStatus&&model.applicationStatus!=='PRODUCTION_SUPPORT_SIGNING')"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="确认æè§" :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"> |
| | | <a-textarea placeholder="请è¾å
¥æè§" v-model="model.productionSupportComment" |
| | | :disabled="disableSubmit||(model.applicationStatus&&model.applicationStatus!=='PRODUCTION_SUPPORT_SIGNING')"/> |
| | | </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 { downFile, getAction, postAction } from '@/api/manage' |
| | | import TechnicalStatusEquipmentSelect from '../../../eam/equipment/modules/TechnicalStatusEquipmentSelect' |
| | | |
| | | export default { |
| | | name: 'TechnicalStatusEvaluationApplicationApprovalModal', |
| | | components: { |
| | | TechnicalStatusEquipmentSelect |
| | | }, |
| | | props: { |
| | | selectShenpiData: { |
| | | type: Object |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title: 'æä½', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 10 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 14 } |
| | | }, |
| | | labelColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 19 } |
| | | }, |
| | | rightColLabelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 } |
| | | }, |
| | | rightColWrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | confirmLoading: false, |
| | | spinning: false, |
| | | imageSrc: null, |
| | | fullScreen: true, |
| | | validatorRules: { |
| | | departHeaderSignatureResult: [{ required: true, message: 'è¯·éæ©ç¡®è®¤ç±»å' }], |
| | | productionHeaderSignatureResult: [{ required: true, message: 'è¯·éæ©ç¡®è®¤ç±»å' }], |
| | | productionSupportSignatureResult: [{ required: true, message: 'è¯·éæ©ç¡®è®¤ç±»å' }] |
| | | }, |
| | | url: { |
| | | queryById: '/eam/eamTechnicalStatusEvaluationApplication/queryById', |
| | | approval: '/eam/eamTechnicalStatusEvaluationApplication/approval', |
| | | diagramView: '/assign/flow/diagramView' |
| | | }, |
| | | disableSubmit: false, |
| | | selectedRowKeys: [] |
| | | } |
| | | }, |
| | | computed: { |
| | | displayDepartHeaderFlag() { |
| | | return this.model.applicationStatus && ['DEPART_HEADER_SIGNING', 'PRODUCTION_HEADER_SIGNING', 'PRODUCTION_SUPPORT_SIGNING', 'COMPLETED', 'REJECTED'].includes(this.model.applicationStatus) |
| | | }, |
| | | displayProductionHeaderFlag() { |
| | | return this.model.applicationStatus && ['PRODUCTION_HEADER_SIGNING', 'PRODUCTION_SUPPORT_SIGNING', 'COMPLETED', 'REJECTED'].includes(this.model.applicationStatus) && this.model.departHeaderSignatureResult === '1' |
| | | }, |
| | | displayProductionSupportFlag() { |
| | | return this.model.applicationStatus && ['PRODUCTION_SUPPORT_SIGNING', 'COMPLETED', 'REJECTED'].includes(this.model.applicationStatus) && this.model.productionHeaderSignatureResult === '1' |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * 主页é¢ç¹å»æ§è¡å®¡æ¹æ¶è§¦å |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | handleApprove(record) { |
| | | this.fullScreen = true |
| | | this.model = {} |
| | | this.getBasicInformationByApi(record) |
| | | this.getFlowChartImageByApi(record) |
| | | }, |
| | | |
| | | /** |
| | | * 主页é¢ç¹å»è¯¦æ
æ¶è§¦å |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | handleDetail(record) { |
| | | this.fullScreen = false |
| | | this.model = Object.assign({}, record) |
| | | }, |
| | | |
| | | /** |
| | | * è·ååºç¡ä¿¡æ¯ |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | getBasicInformationByApi(record) { |
| | | this.spinning = true |
| | | const that = this |
| | | getAction(this.url.queryById, { id: record.dataId }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | that.model = Object.assign({}, res.result) |
| | | that.model.dataId = record.dataId |
| | | that.model.taskId = record.id |
| | | that.model.userId = record.assignee |
| | | that.model.instanceId = record.procInstId |
| | | } |
| | | else { |
| | | that.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * è·åæµç¨å¾ |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | getFlowChartImageByApi(record) { |
| | | const { processDefinitionId, processInstanceId, processDefinitionKey } = record |
| | | this.imageSrc = null |
| | | downFile(this.url.diagramView, { |
| | | processDefinitionId, |
| | | processInstanceId, |
| | | TaskDefinitionKey: processDefinitionKey |
| | | }, 'get') |
| | | .then((res => { |
| | | this.imageSrc = window.URL.createObjectURL(new Blob([res])) |
| | | })) |
| | | .catch(err => { |
| | | this.$notification.error({ |
| | | message: 'æ¶æ¯', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | async handleOk() { |
| | | const that = this |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = that.spinning = true |
| | | |
| | | postAction(this.url.approval, this.model) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | that.$notification.success({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | that.$emit('modalFormOk') |
| | | that.close() |
| | | } else { |
| | | that.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | that.confirmLoading = that.spinning = false |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | autocompleteForm(selectObj) { |
| | | this.$set(this.model, 'equipmentId', selectObj.equipmentId) |
| | | this.spinning = false |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | /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> |