| | |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å 餿 è®°"> |
| | | <a-input placeholder="请è¾å
¥å 餿 è®°" v-model="queryParam.delFlag"></a-input> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="12"> |
| | | <a-form-item label="ç»ä¸ç¼ç "> |
| | | <lx-search-equipment-select placeholder="请è¾å
¥ç»ä¸ç¼ç æåç§°æç´¢" v-model="queryParam.equipmentId"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="åå åæ"> |
| | | <a-input placeholder="请è¾å
¥åå åæ" v-model="queryParam.causeAnalysis"></a-input> |
| | | <a-form-item label="ç¶æ"> |
| | | <j-dict-select-tag dict-code="report_three_no_spare_submit_status" placeholder="è¯·éæ©ç¶æ" v-model="queryParam.submitStatus"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <template v-if="toggleSearchStatus"> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å¹è®æè²;æ¯ å¦"> |
| | | <a-input placeholder="请è¾å
¥å¹è®æè²;æ¯ å¦" v-model="queryParam.isTrainingEducation"></a-input> |
| | | <a-form-item label="åå åæ"> |
| | | <a-input placeholder="请è¾å
¥åå åæ" v-model="queryParam.causeAnalysis"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button> |
| | | <a-button type="primary" icon="download" @click="handleExportXls('âä¸ä¸æ¾è¿çååâåæè¡¨')">导åº</a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> |
| | | <a-button type="primary" icon="import">导å
¥</a-button> |
| | | </a-upload> |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>å é¤</a-menu-item> |
| | | </a-menu> |
| | | <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down" /></a-button> |
| | | </a-dropdown> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onClearSelected">æ¸
空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | class="j-table-force-nowrap" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | :scroll="{x:'max-content'}" |
| | | @change="handleTableChange"> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | <template> |
| | | <a v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" @click="handleFillIn(record)">å¡«æ¥</a> |
| | | <a-divider v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" type="vertical"/> |
| | | <a-popconfirm v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" title="ç¡®å®æäº¤å?" @confirm="() => handleSubmit(record.id)"> |
| | | <a>æäº¤</a> |
| | | </a-popconfirm> |
| | | </template> |
| | | <a-divider v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" type="vertical"/> |
| | | <a @click="handleDetail(record)">详æ
</a> |
| | | </span> |
| | | |
| | | <a-divider type="vertical" /> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item> |
| | | <a-popconfirm title="ç¡®å®å é¤å?" @confirm="() => handleDelete(record.id)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="accidentPhenomenon" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="measure" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="causingResults" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="causeAnalysis" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="preventionMeasures" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="trainingFormat" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | <!--å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | | <span slot="trainingContent" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8"/> |
| | | </span> |
| | | |
| | | </a-table> |
| | |
| | | |
| | | <!-- 表ååºå --> |
| | | <eamReportThreeNoSpare-modal ref="modalForm" @ok="modalFormOk"></eamReportThreeNoSpare-modal> |
| | | |
| | | <!--审æ¹çªå£--> |
| | | <report-threeNo-spare-approval-modal ref="reportThreeNoSpareApprovalModal" |
| | | :selectShenpiData="selectedRowData"/> |
| | | |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamReportThreeNoSpareModal from './modules/EamReportThreeNoSpareModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import {getAction} from "@api/manage"; |
| | | import LxSearchEquipmentSelect from "@views/eam/equipment/modules/LxSearchEquipmentSelect.vue"; |
| | | import ReportThreeNoSpareApprovalModal |
| | | from '../../flowable/workflow/repairOrder/ReportThreeNoSpareApprovalModal' |
| | | |
| | | export default { |
| | | name: "EamReportThreeNoSpareList", |
| | | mixins:[JeecgListMixin], |
| | | components: { |
| | | ReportThreeNoSpareApprovalModal, |
| | | LxSearchEquipmentSelect, |
| | | EamReportThreeNoSpareModal |
| | | }, |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | propsQueryParam: { |
| | | type: Object |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'âä¸ä¸æ¾è¿çååâåæè¡¨ç®¡ç页é¢', |
| | | disableMixinCreated: true, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title: 'å 餿 è®°', |
| | | align:"center", |
| | | dataIndex: 'delFlag' |
| | | }, |
| | | { |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | }, |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: 'ç»ä¸ç¼ç ', |
| | | align: 'center', |
| | | dataIndex: 'equipmentCode', |
| | | fixed: 'left', |
| | | scopedSlots: { customRender: 'equipmentCode' } |
| | | }, |
| | | { |
| | | title: '设å¤åç§°', |
| | | align: 'center', |
| | | dataIndex: 'equipmentName', |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: '设å¤åå·', |
| | | align: 'center', |
| | | dataIndex: 'equipmentModel', |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | | align: 'center', |
| | | dataIndex: 'submitStatus_dictText', |
| | | }, |
| | | { |
| | | title: 'äºæ
ç°è±¡', |
| | | align: 'center', |
| | | dataIndex: 'accidentPhenomenon', |
| | | scopedSlots: {customRender: 'accidentPhenomenon'}, |
| | | }, |
| | | { |
| | | title: 'éåæªæ½', |
| | | align: 'center', |
| | | dataIndex: 'measure', |
| | | scopedSlots: {customRender: 'measure'}, |
| | | }, |
| | | { |
| | | title: 'é æç»æ', |
| | | align: 'center', |
| | | dataIndex: 'causingResults', |
| | | scopedSlots: {customRender: 'causingResults'}, |
| | | }, |
| | | { |
| | | title: 'åå åæ', |
| | | align:"center", |
| | | dataIndex: 'causeAnalysis' |
| | | }, |
| | | { |
| | | title: 'å¹è®æè²;æ¯ å¦', |
| | | dataIndex: 'causeAnalysis', |
| | | scopedSlots: {customRender: 'causeAnalysis'}, |
| | | }, |
| | | { |
| | | title: 'é¢é²æªæ½', |
| | | align: 'center', |
| | | dataIndex: 'preventionMeasures', |
| | | scopedSlots: {customRender: 'preventionMeasures'}, |
| | | }, |
| | | { |
| | | title: 'å¹è®æè²', |
| | | align:"center", |
| | | dataIndex: 'isTrainingEducation' |
| | | }, |
| | | { |
| | | dataIndex: 'isTrainingEducation_dictText', |
| | | }, |
| | | { |
| | | title: 'å¹è®å½¢å¼', |
| | | align:"center", |
| | | dataIndex: 'trainingFormat' |
| | | }, |
| | | { |
| | | dataIndex: 'trainingFormat', |
| | | scopedSlots: {customRender: 'trainingFormat'}, |
| | | }, |
| | | { |
| | | title: 'å¹è®å
容', |
| | | align:"center", |
| | | dataIndex: 'trainingContent' |
| | | }, |
| | | { |
| | | dataIndex: 'trainingContent', |
| | | scopedSlots: {customRender: 'trainingContent'}, |
| | | }, |
| | | { |
| | | title: 'å¹è®äºº', |
| | | align:"center", |
| | | dataIndex: 'trainingUser' |
| | | }, |
| | | { |
| | | dataIndex: 'trainingUser_dictText' |
| | | }, |
| | | { |
| | | title: 'å¹è®æ¶é´', |
| | | align:"center", |
| | | dataIndex: 'trainingUserTime' |
| | | }, |
| | | { |
| | | title: 'æ¥ä¿®ID', |
| | | }, |
| | | { |
| | | title: 'åä½é¢å¯¼', |
| | | align:"center", |
| | | dataIndex: 'reportId' |
| | | }, |
| | | { |
| | | title: '设å¤ID', |
| | | dataIndex: 'unitLeader_dictText' |
| | | }, |
| | | { |
| | | title: 'é¢å¯¼æè§', |
| | | align:"center", |
| | | dataIndex: 'equipmentId' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | dataIndex: 'leaderOpinion' |
| | | }, |
| | | { |
| | | title: 'é¢å¯¼ç¡®è®¤æ¶é´', |
| | | align:"center", |
| | | scopedSlots: { customRender: 'action' }, |
| | | } |
| | | dataIndex: 'leaderConfirmTime' |
| | | }, |
| | | ], |
| | | url: { |
| | | selectedRowData: {}, |
| | | url: { |
| | | list: "/eam/eamReportThreeNoSpare/list", |
| | | delete: "/eam/eamReportThreeNoSpare/delete", |
| | | deleteBatch: "/eam/eamReportThreeNoSpare/deleteBatch", |
| | | exportXlsUrl: "eam/eamReportThreeNoSpare/exportXls", |
| | | importExcelUrl: "eam/eamReportThreeNoSpare/importExcel", |
| | | }, |
| | | submit:"eam/eamReportThreeNoSpare/submit" |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | } |
| | | }, |
| | | created() { |
| | | if (!this.isDisplayOperation) this.queryParam = Object.assign({}, this.propsQueryParam) |
| | | else { |
| | | const operationColumn = { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'action' }, |
| | | width: 200, |
| | | fixed: 'right' |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | | } |
| | | this.loadData(1) |
| | | }, |
| | | methods: { |
| | | |
| | | /** |
| | | * ç¹å»å¡«æ¥æ¶è§¦å |
| | | * @param record |
| | | */ |
| | | handleFillIn(record) { |
| | | this.$refs.modalForm.title = 'å¡«æ¥' |
| | | this.$refs.modalForm.handleFillIn(record) |
| | | }, |
| | | |
| | | /** |
| | | * ç¹å»æäº¤æ¶è§¦å |
| | | * @param id |
| | | */ |
| | | handleSubmit(id) { |
| | | this.loading = true |
| | | getAction(this.url.submit, { id }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.$notification.success({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | this.loadData() |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | this.loading = false |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * ç¹å»è¯¦æ
触å |
| | | * @param record è¡¨æ ¼è¡ä¿¡æ¯ |
| | | */ |
| | | handleDetail(record) { |
| | | this.selectRepairOrderData = Object.assign({}, record) |
| | | this.$refs.reportThreeNoSpareApprovalModal.visible = true |
| | | this.$refs.reportThreeNoSpareApprovalModal.title = '详æ
' |
| | | this.$refs.reportThreeNoSpareApprovalModal.disableSubmit = true |
| | | this.$refs.reportThreeNoSpareApprovalModal.handleDetail(record) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | }, |
| | | labelColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 3 } |
| | | sm: { span: 6 } |
| | | }, |
| | | wrapperColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 20 } |
| | | sm: { span: 17 } |
| | | }, |
| | | |
| | | confirmLoading: false, |
| | |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | |
| | | |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
| | | |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="å 餿 è®°"> |
| | | <a-input-number v-model="model.delFlag"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causeAnalysis" label="åå åæ"> |
| | | <a-input placeholder="请è¾å
¥åå åæ" v-model="model.causeAnalysis" /> |
| | | <a-textarea :rows="3" placeholder="请è¾å
¥åå åæ" v-model="model.causeAnalysis"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isTrainingEducation" label="å¹è®æè²;æ¯ å¦"> |
| | | <a-input placeholder="请è¾å
¥å¹è®æè²;æ¯ å¦" v-model="model.isTrainingEducation" /> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causeAnalysis" label="é¢é²æªæ½"> |
| | | <a-textarea :rows="3" placeholder="请è¾å
¥é¢é²æªæ½" v-model="model.preventionMeasures"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isTrainingEducation" label="å¹è®æè²"> |
| | | <j-dict-select-tag dict-code="yn" placeholder="è¯·éæ©å¹è®æè²" v-model="model.isTrainingEducation"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingFormat" label="å¹è®å½¢å¼"> |
| | | <a-input placeholder="请è¾å
¥å¹è®å½¢å¼" v-model="model.trainingFormat" /> |
| | | <a-textarea :rows="3" placeholder="请è¾å
¥å¹è®å½¢å¼" v-model="model.trainingFormat"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingContent" label="å¹è®å
容"> |
| | | <a-input placeholder="请è¾å
¥å¹è®å
容" v-model="model.trainingContent" /> |
| | | <a-textarea :rows="3" placeholder="请è¾å
¥å¹è®å
容" v-model="model.trainingContent"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingUser" label="å¹è®äºº"> |
| | | <a-input placeholder="请è¾å
¥å¹è®äºº" v-model="model.trainingUser" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingUserTime" label="å¹è®æ¶é´"> |
| | | <a-input placeholder="请è¾å
¥å¹è®æ¶é´" v-model="model.trainingUserTime" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId" label="æ¥ä¿®ID"> |
| | | <a-input placeholder="请è¾å
¥æ¥ä¿®ID" v-model="model.reportId" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设å¤ID"> |
| | | <a-input placeholder="请è¾å
¥è®¾å¤ID" v-model="model.equipmentId" /> |
| | | </a-form-model-item> |
| | | |
| | | |
| | | </a-form-model> |
| | | </a-spin> |
| | | </j-modal> |
| | |
| | | created () { |
| | | }, |
| | | methods: { |
| | | handleFillIn(record) { |
| | | this.visible = true |
| | | this.model = Object.assign({}, record) |
| | | this.getRepairDetailByApi(record.id) |
| | | }, |
| | | add () { |
| | | //åå§åé»è®¤å¼ |
| | | this.edit({}); |
| | |
| | | <!--设å¤äºæ
ç»è®°--> |
| | | <report-accidents-register-approval-modal ref="reportAccidentsRegisterApprovalModal" |
| | | :selectShenpiData="selectedRowData"/> |
| | | |
| | | <!--产åå®å
¨ç¡®è®¤--> |
| | | <eam-report-product-hazards-modal ref="reportProductHazardsApprovalModal" |
| | | :selectShenpiData="selectedRowData"/> |
| | | <!--ä¸ä¸åå--> |
| | | <eam-report-three-no-spare-modal ref="reportThreeNoSpareApprovalModal" |
| | | :selectShenpiData="selectedRowData"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import ThirdMaintenanceOrderChangeApprovalModal from './thirdMaintenance/ThirdMaintenanceOrderChangeApprovalModal' |
| | | import ThirdMaintenanceFurnaceApprovalModal from './thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal' |
| | | import ReportAccidentsRegisterApprovalModal from './repairOrder/ReportAccidentsRegisterApprovalModal' |
| | | import EamReportProductHazardsModal from "@views/flowable/workflow/repairOrder/ReportProductHazardsApprovalModal.vue"; |
| | | import EamReportThreeNoSpareModal from "@views/flowable/workflow/repairOrder/ReportThreeNoSpareApprovalModal.vue"; |
| | | |
| | | export default { |
| | | name: 'FlowCompleted', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | EamReportThreeNoSpareModal, EamReportProductHazardsModal, |
| | | ReportAccidentsRegisterApprovalModal, |
| | | ThirdMaintenanceFurnaceApprovalModal, |
| | | ThirdMaintenanceOrderChangeApprovalModal, |
| | |
| | | break |
| | | case 'eam_report_accidents_register': |
| | | this.handleAccidentsRegister(record) |
| | | break |
| | | case 'eam_report_product_hazards': |
| | | this.handleProductHazard(record) |
| | | break |
| | | case 'eam_report_three_no_spare_process': |
| | | this.handleThreeNoSpare(record) |
| | | break |
| | | default: |
| | | alert('没æ¾å°è¯¥æµç¨') |
| | |
| | | this.$refs.reportAccidentsRegisterApprovalModal.handleApprove(record) |
| | | }, |
| | | |
| | | /** |
| | | * ç¹å»äº§åå®å
¨éæ£ç¡®è®¤æµç¨å®¡æ¹æ¶è§¦å |
| | | * @param record |
| | | */ |
| | | handleProductHazard(record){ |
| | | this.selectedRowData = Object.assign({}, record) |
| | | this.$refs.reportProductHazardsApprovalModal.visible = true |
| | | this.$refs.reportProductHazardsApprovalModal.title = record.name |
| | | this.$refs.reportProductHazardsApprovalModal.disableSubmit = true |
| | | this.$refs.reportProductHazardsApprovalModal.handleApprove(record) |
| | | }, |
| | | |
| | | /** |
| | | * ä¸ä¸åååææµç¨å®¡æ¹è§¦å |
| | | * @param record |
| | | */ |
| | | handleThreeNoSpare(record){ |
| | | this.selectedRowData = Object.assign({}, record) |
| | | this.$refs.reportThreeNoSpareApprovalModal.visible = true |
| | | this.$refs.reportThreeNoSpareApprovalModal.title = record.name |
| | | this.$refs.reportThreeNoSpareApprovalModal.disableSubmit = true |
| | | this.$refs.reportThreeNoSpareApprovalModal.handleApprove(record) |
| | | }, |
| | | |
| | | splitProcessType(title) { |
| | | let parts = title.split('ï¼') // 注æåå·æ¯å
¨è§å符ï¼ä½¿ç¨å¯¹åºçåè¿è¡åå² |
| | | let result = parts[0] |
| | |
| | | <eam-report-product-hazards-modal ref="reportProductHazardsApprovalModal" |
| | | :selectShenpiData="selectedRowData" |
| | | @modalFormOk="modalFormOk"/> |
| | | <!--ä¸ä¸åå--> |
| | | <eam-report-three-no-spare-modal ref="reportThreeNoSpareApprovalModal" |
| | | :selectShenpiData="selectedRowData" |
| | | @modalFormOk="modalFormOk"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import ThirdMaintenanceFurnaceApprovalModal from './thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal' |
| | | import ReportAccidentsRegisterApprovalModal from './repairOrder/ReportAccidentsRegisterApprovalModal' |
| | | import EamReportProductHazardsModal from "./repairOrder/ReportProductHazardsApprovalModal.vue"; |
| | | import EamReportThreeNoSpareModal from "./repairOrder/ReportThreeNoSpareApprovalModal.vue"; |
| | | |
| | | export default { |
| | | name: 'FlowTodo', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | EamReportThreeNoSpareModal, |
| | | EamReportProductHazardsModal, |
| | | ReportAccidentsRegisterApprovalModal, |
| | | ThirdMaintenanceFurnaceApprovalModal, |
| | |
| | | break |
| | | case 'eam_report_product_hazards': |
| | | this.handleProductHazard(record) |
| | | break |
| | | case 'eam_report_three_no_spare_process': |
| | | this.handleThreeNoSpare(record) |
| | | break |
| | | default: |
| | | alert('没æ¾å°è¯¥æµç¨') |
| | |
| | | this.$refs.reportProductHazardsApprovalModal.handleApprove(record) |
| | | }, |
| | | |
| | | /** |
| | | * ä¸ä¸åååææµç¨å®¡æ¹è§¦å |
| | | * @param record |
| | | */ |
| | | handleThreeNoSpare(record){ |
| | | this.selectedRowData = Object.assign({}, record) |
| | | this.$refs.reportThreeNoSpareApprovalModal.visible = true |
| | | this.$refs.reportThreeNoSpareApprovalModal.title = record.name |
| | | this.$refs.reportThreeNoSpareApprovalModal.handleApprove(record) |
| | | }, |
| | | |
| | | batchHandle() { |
| | | const categorySet = new Set(this.selectionRows.map(item => item.category)) |
| | | const nameSet = new Set(this.selectionRows.map(item => item.name)) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal :title="title" :visible="visible" :confirmLoading="confirmLoading" :width="1300" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" fullscreen @ok="handleOk" |
| | | @cancel="handleCancel" centered 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="selectShenpiData.procInstId?8:12" class="scroll-col"> |
| | | <a-tabs> |
| | | <a-tab-pane tab="åºç¡ä¿¡æ¯"> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ç»ä¸ç¼ç "> |
| | | <lx-search-equipment-select v-model="model.equipmentId" disabled/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="å¹è®æè²"> |
| | | <j-dict-select-tag dict-code="yn" v-model="model.isTrainingEducation" disabled/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="å¹è®äºº"> |
| | | <a-input v-model="model.trainingUser_dictText" disabled/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="å¹è®æ¶é´"> |
| | | <a-date-picker v-model="model.trainingUserTime" value-format="YYYY-MM-DD" |
| | | style="width: 100%" disabled/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="åå åæ"> |
| | | <a-textarea v-model="model.causeAnalysis" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | ã <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="é¢é²æªæ½"> |
| | | <a-textarea v-model="model.preventionMeasures" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="å¹è®å½¢å¼"> |
| | | <a-textarea v-model="model.trainingFormat" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="å¹è®å
容"> |
| | | <a-textarea v-model="model.trainingContent" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | |
| | | <!-- ä¸é´æç»é¡¹å--> |
| | | <a-col v-if="selectShenpiData.procInstId" :span="10" class="scroll-col"> |
| | | <a-tabs default-active-key="1"> |
| | | <a-tab-pane key='1' tab='æµç¨å¾'> |
| | | <img :src="imageSrc" v-if="imageSrc" style="width: 100%"/> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | |
| | | <!--å³ä¾§å®¡æ¹å--> |
| | | <a-col :span="selectShenpiData.procInstId?6:12" class="scroll-col"> |
| | | <a-tabs> |
| | | <a-tab-pane tab="é¢å¯¼å®¡æ¹"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item prop="technologistResult" label="确认类å" |
| | | :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"> |
| | | <j-dict-select-tag type='radio' v-model='model.leaderConfirmResult' |
| | | dictCode='approve_reject' |
| | | :disabled="disableSubmit||(model.confirmStatus&&model.confirmStatus!=='PENDING_SUPERIOR_TECHNICAL_CONFIRMATION')"/> |
| | | </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.leaderOpinion" |
| | | :disabled="disableSubmit||(model.confirmStatus&&model.confirmStatus!=='PENDING_SUPERIOR_TECHNICAL_CONFIRMATION')"/> |
| | | </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, httpAction } from '@/api/manage' |
| | | import TechnicalStatusEquipmentSelect from '../../../eam/equipment/modules/TechnicalStatusEquipmentSelect' |
| | | import LxSearchEquipmentSelect from '../../../eam/equipment/modules/LxSearchEquipmentSelect' |
| | | |
| | | export default { |
| | | name: 'reportProductHazardsApprovalModal', |
| | | components: { |
| | | LxSearchEquipmentSelect, |
| | | 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: 8 } |
| | | }, |
| | | rightColWrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | confirmLoading: false, |
| | | spinning: false, |
| | | imageSrc: null, |
| | | validatorRules: { |
| | | technicalDirectorLeaderResult: [{ required: true, message: 'è¯·éæ©ç¡®è®¤ç±»å' }], |
| | | technicalDirectorPartResult: [{ required: true, message: 'è¯·éæ©ç¡®è®¤ç±»å' }] |
| | | }, |
| | | url: { |
| | | queryById: '/eam/eamReportThreeNoSpare/queryById', |
| | | approval: '/eam/eamReportThreeNoSpare/perform', |
| | | diagramView: '/assign/flow/diagramView' |
| | | }, |
| | | disableSubmit: false |
| | | } |
| | | }, |
| | | computed: { |
| | | }, |
| | | methods: { |
| | | /** |
| | | * 主页é¢ç¹å»æ§è¡å®¡æ¹æ¶è§¦å |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | async handleApprove(record) { |
| | | this.model = {} |
| | | this.getBasicInformationByApi(record) |
| | | this.getFlowChartImageByApi(record) |
| | | }, |
| | | |
| | | /** |
| | | * 主页é¢ç¹å»è¯¦æ
æ¶è§¦å |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | handleDetail(record) { |
| | | 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, { repairConfirmResult: '1' }) |
| | | 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 |
| | | }) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | that.spinning = false |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * è·åæµç¨å¾ |
| | | * @param record 主页é¢å表è¡è®°å½ |
| | | */ |
| | | getFlowChartImageByApi(record) { |
| | | const { processDefinitionId, processInstanceId, processDefinitionKey } = record |
| | | |
| | | 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 |
| | | |
| | | httpAction(that.url.approval, that.model, 'post') |
| | | .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 |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * åå åææ ¸å¯¹å¼åçæ¹åæ¶è§¦å |
| | | * @param value |
| | | */ |
| | | handleCheckAgreeChange(value) { |
| | | if (value === '1') delete this.model.disagreeReason |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | if (this.$refs.form) 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> |