From 033c329be810727208e8e124f5f31314305b0808 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期四, 10 七月 2025 20:18:55 +0800 Subject: [PATCH] 1、点检工单流程开发 2、点检工单领取时增加列表loading提示 --- src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue | 521 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 273 insertions(+), 248 deletions(-) diff --git a/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue b/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue index 156c30d..4a6b56f 100644 --- a/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue +++ b/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue @@ -1,201 +1,184 @@ <template> - <j-modal - :title="title" - :width="1200" - :visible="visible" - :okButtonProps="{ class:{'jee-hidden': disableSubmit||!hasInspectionDateArrived} }" - @ok="submitForm" - @cancel="handleCancel" - :mask-closable="false" - :confirmLoading="confirmLoading" - switchFullscreen - centered - > + <j-modal :title="title" :width="1200" :visible="visible" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="submitForm" + @cancel="handleCancel" :mask-closable="false" :confirmLoading="confirmLoading" fullscreen> <a-spin :spinning="spinning"> <a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol" :rules="validatorRules"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鐐规鍩虹淇℃伅</a-divider> + <a-row :gutter="48"> + <a-col :span="8"> + <a-tabs> + <a-tab-pane tab="鍩虹淇℃伅"> + <a-row> + <a-col :span='span'> + <a-form-model-item label="宸ュ崟鍙�"> + <a-input readOnly v-model="tableRowRecord.orderNum"/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="璁惧缂栧彿"> + <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId" + :maintenanceCategory="'POINT_INSPECTION'" + disabled @autocompleteForm="autoCompleteForm"/> + </a-form-model-item> + </a-col> - <a-row> - <a-col :span='span'> - <a-form-model-item label="宸ュ崟鍙�"> - <a-input readOnly v-model="tableRowRecord.orderNum"/> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="璁惧缂栧彿"> - <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId" - :maintenanceCategory="'POINT_INSPECTION'" disabled - @autocompleteForm="autoCompleteForm"/> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="鏍囧噯鍚嶇О"> - <a-input readOnly v-model="tableRowRecord.standardName"/> - </a-form-model-item> - </a-col> - </a-row> + </a-row> - <a-row> - <a-col :span='span'> - <a-form-model-item label="鏍囧噯缂栫爜"> - <a-input readOnly v-model="tableRowRecord.standardCode"/> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="鐐规鏃ユ湡"> - <a-input v-model="tableRowRecord.inspectionDate" readOnly/> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="鐐规杩囨湡鏃堕棿"> - <a-input v-model="tableRowRecord.expirationTime" readOnly/> - </a-form-model-item> - </a-col> - </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label="瑙勮寖鍚嶇О"> + <a-input readOnly v-model="tableRowRecord.standardName"/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="瑙勮寖缂栫爜"> + <a-input readOnly v-model="tableRowRecord.standardCode"/> + </a-form-model-item> + </a-col> - <a-row> - <a-col :span='span'> - <a-form-model-item label="淇濆吇鍛ㄦ湡"> - <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/> - </a-form-model-item> + </a-row> + + <a-row> + <a-col :span='span'> + <a-form-model-item label="鐐规鏃ユ湡"> + <a-input v-model="tableRowRecord.inspectionDate" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="鐐规杩囨湡鏃堕棿"> + <a-input v-model="tableRowRecord.expirationTime" 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.maintenancePeriod" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="鐐规浜�"> + <a-input v-model="tableRowRecord.operator_dictText" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="span*2"> + <a-form-model-item label="澶囨敞" :labelCol="{span:4}" :wrapperCol="{span:20}"> + <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + </a-tab-pane> + </a-tabs> </a-col> - <a-col :span='span'> - <a-form-model-item label="鐐规浜�"> - <a-input v-model="tableRowRecord.operator_dictText" readOnly/> - </a-form-model-item> - </a-col> - </a-row> - <a-row> - <a-col :span="span*3"> - <a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}"> - <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/> - </a-form-model-item> - </a-col> - </a-row> + <a-col :span="!isDisplayConfirm?16:10"> + <a-tabs :active-key="activeTabKey" @change="handleTabChange"> + <a-tab-pane key="1" tab="鏃ョ偣妫�"> + <j-vxe-table ref="editableDetailTable1" :rowNumber="false" rowSelection bordered + alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading" + :dataSource="detail.dayInspectionList" :columns="detail.columns" + @selectRowChange="handleTableSelectRowChange($event,'Day')"> + <template v-slot:inspectionResult="props"> + <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="inspection_project_result" + :disabled="isDisableOperation" placeholder="璇烽�夋嫨鐐规缁撴灉" + @change="handleInspectionResultSelectChange($event,props.row)" + style="width: 100%"/> + </template> - <a-row> - <a-form-model-item prop="imageFilesResult" label="鐐规鍥剧墖" :labelCol="{span:2}" :wrapperCol="{span:21}"> - <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" - :disabled="isDisableOperation||!hasInspectionDateArrived" - v-model="tableRowRecord.fileList"/> - </a-form-model-item> - </a-row> + <template v-slot:exceptionDescription="props"> + <a-textarea style="height: 32px" v-model="props.row.exceptionDescription" + :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇疯緭鍏ュ紓甯告弿杩�':''" + :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"/> + </template> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> - 淇濆吇椤逛俊鎭� - </a-divider> + <template v-slot:reportFlag="props"> + <j-dict-select-tag v-model="props.row.reportFlag" + :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇烽�夋嫨寮傚父鏄惁鎶ヤ慨':''" + :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'" + dictCode="yn" style="width: 100%"/> + </template> + </j-vxe-table> + </a-tab-pane> - <a-tabs v-model="activeTabKey"> - <a-tab-pane key="1" tab="淇濆吇椤规槑缁�"> - <j-vxe-table - ref="editableDetailTable" - :rowNumber="false" - :rowSelection="true" - :bordered="true" - :alwaysEdit="true" - :toolbar="false" - keep-source - :height="300" - :loading="detail.loading" - :dataSource="detail.dataSource" - :columns="detail.columns" - @selectRowChange="handleTableSelectRowChange" - > - <template v-slot:inspectionResult="props"> - <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="eam_inspection_result" - :disabled="isDisableOperation" - placeholder="璇烽�夋嫨鐐规缁撴灉" - @change="handleInspectionResultSelectChange($event,props.row)" - style="width: 100%"/> + <a-tab-pane key="2" tab="鍛ㄧ偣妫�" forceRender> + <j-vxe-table ref="editableDetailTable2" :rowNumber="false" rowSelection bordered + alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading" + :dataSource="detail.weekInspectionList" :columns="detail.columns" + @selectRowChange="handleTableSelectRowChange($event,'Week')"> + <template v-slot:inspectionResult="props"> + <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="inspection_project_result" + :disabled="isDisableOperation||detail.weekInspectionFinishedFlag" + placeholder="璇烽�夋嫨鐐规缁撴灉" + @change="handleInspectionResultSelectChange($event,props.row)" + style="width: 100%"/> + </template> + + <template v-slot:exceptionDescription="props"> + <a-textarea style="height: 32px" v-model="props.row.exceptionDescription" + :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇疯緭鍏ュ紓甯告弿杩�':''" + :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"/> + </template> + + <template v-slot:reportFlag="props"> + <j-dict-select-tag v-model="props.row.reportFlag" + :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇烽�夋嫨寮傚父鏄惁鎶ヤ慨':''" + :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'" + dictCode="yn" style="width: 100%"/> + </template> + </j-vxe-table> + </a-tab-pane> + + <template v-if="selectShenpiData.procInstId"> + <a-tab-pane key='3' tab='娴佺▼鍥�'> + <img :src="imageSrc" v-if="imageSrc"/> + </a-tab-pane> </template> - <template v-slot:exceptionDescription="props"> - <a-textarea style="height: 32px" v-model="props.row.exceptionDescription" - :placeholder="props.row.inspectionResult==='2'?'璇疯緭鍏ュ紓甯告弿杩�':''" - :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"/> - </template> + <a-button + v-if="activeTabKey=='1'||activeTabKey=='2'" + :disabled="(activeTabKey=='1'&&selectedDayInspectionRowKeys.length==0)||(activeTabKey=='2'&&selectedWeekInspectionRowKeys.length==0)||(activeTabKey=='2'&&detail.weekInspectionFinishedFlag)||isDisableOperation" + slot="tabBarExtraContent" type="primary" + @click="handleSelectAllInspectionResult">鎵归噺鐐规姝e父 + </a-button> + </a-tabs> + </a-col> - <template v-slot:reportFlag="props"> - <j-dict-select-tag v-model="props.row.reportFlag" - :placeholder="props.row.inspectionResult==='2'?'璇烽�夋嫨寮傚父鏄惁鎶ヤ慨':''" - :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'" - dictCode="yn" - style="width: 100%"/> - </template> - </j-vxe-table> - </a-tab-pane> + <a-col v-if="isDisplayConfirm" :span="6"> + <a-tabs> + <a-tab-pane tab="缁翠慨宸ョ‘璁�"> + <a-row> + <a-col :span="24"> + <a-form-model-item prop="confirmDealType" label="澶勭悊绫诲瀷"> + <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType' + dictCode='approved_rejected' + :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/> + </a-form-model-item> + </a-col> - <template v-if="selectShenpiData.procInstId"> - <a-tab-pane key='2' tab='娴佺▼鑺傜偣'> - <a-card :bordered="false"> - <a-timeline> - <a-timeline-item v-for="(item,index) in hitaskDataSource" :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-tab-pane key='3' tab='娴佺▼鍥�'> - <img :src="imageSrc" alt="Fetched Image"/> - </a-tab-pane> - </template> - - <a-button - v-if="selectedRowKeys.length>0&&!isDisableOperation&&hasInspectionDateArrived&&activeTabKey==='1'" - slot="tabBarExtraContent" type="primary" - @click="handleSelectAllInspectionResult">鎵归噺鐐规姝e父 - </a-button> - - <!--<a-dropdown slot="tabBarExtraContent" v-if="selectedRowKeys.length>0">--> - <!--<a-menu slot="overlay">--> - <!--<a-menu-item key="1" @click="handleSelectAllInspectionResult('姝e父')">姝e父</a-menu-item>--> - <!--<a-menu-item key="2" @click="handleSelectAllInspectionResult('寮傚父')">寮傚父</a-menu-item>--> - <!--</a-menu>--> - - <!--<a-button> 鎵归噺閫夋嫨鐐规缁撴灉--> - <!--<a-icon type="down"/>--> - <!--</a-button>--> - <!--</a-dropdown>--> - </a-tabs> - - <template v-if="isDisplayConfirm"> - <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 prop="confirmDealType" label="澶勭悊绫诲瀷"> - <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType' dictCode='approved_rejected' - :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/> - </a-form-model-item> - </a-col> - - <a-col :span="12"> - <a-form-model-item prop="confirmComment" label="澶勭悊鎰忚"> - <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�" - :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'" - v-model="tableRowRecord.confirmComment"/> - </a-form-model-item> - </a-col> - </a-row> - </template> + <a-col :span="24"> + <a-form-model-item prop="confirmComment" label="澶勭悊鎰忚"> + <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�" + :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'" + v-model="tableRowRecord.confirmComment"/> + </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 '@assets/less/TableExpand.less' - import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage' + import { getAction, postAction, downFile } from '@api/manage' import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' import { JVXETypes } from '@comp/jeecg/JVxeTable' import moment from 'moment' @@ -210,12 +193,10 @@ }, data() { return { - span: 8, + span: 12, confirmLoading: false, spinning: false, tableRowRecord: {}, - assignFileStream: {}, - hitaskDataSource: [], validatorRules: { confirmDealType: [ { required: true, message: '璇烽�夋嫨澶勭悊绫诲瀷' } @@ -227,31 +208,29 @@ imageSrc: null, labelCol: { xs: { span: 24 }, - sm: { span: 6 } + sm: { span: 9 } }, wrapperCol: { xs: { span: 30 }, - sm: { span: 16 } + sm: { span: 15 } }, visible: false, // 琛ㄥご url: { - // queryBomDataById: '/eam/eamInspectionOrder/selectVoById', diagramView: '/assign/flow/diagramView', queryHisTaskList: '/assign/flow/queryHisTaskList', approve: '/eam/eamInspectionOrder/approval', queryById: '/eam/eamInspectionOrder/queryById', - detailList: '/eam/eamInspectionOrderDetail/queryList' + detailList: '/eam/eamInspectionOrderDetail/queryList', + weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList' }, detail: { - loading: false, - dataSource: [], columns: [ { title: '搴忓彿', key: 'itemCode', type: JVXETypes.normal, - width: '5%', + width: 60, align: 'center', fixed: 'left' }, @@ -259,7 +238,6 @@ title: '淇濆吇椤�', key: 'itemName', type: JVXETypes.normal, - width: '15%', align: 'center', fixed: 'left' }, @@ -267,7 +245,6 @@ title: '淇濆吇瑕佹眰', key: 'itemDemand', type: JVXETypes.normal, - width: '15%', align: 'center', fixed: 'left' }, @@ -276,10 +253,9 @@ key: 'inspectionResult', type: JVXETypes.slot, slotName: 'inspectionResult', - width: '15%', align: 'center', validateRules: [ - { required: true, message: '${title}涓嶈兘涓虹┖锛�' } + { required: true, message: '${title}涓嶈兘涓虹┖' } ] }, { @@ -287,7 +263,6 @@ key: 'exceptionDescription', type: JVXETypes.slot, slotName: 'exceptionDescription', - width: '20%', align: 'center', validateRules: [ { handler: this.customValidator } @@ -298,24 +273,24 @@ key: 'reportFlag', type: JVXETypes.slot, slotName: 'reportFlag', - width: '20%', align: 'center', validateRules: [ { handler: this.customValidator } ] } - ] + ], + dayInspectionList: [], + weekInspectionList: [], + weekInspectionFinishedFlag: false }, - selectedRowKeys: [], + selectedDayInspectionRowKeys: [], + selectedWeekInspectionRowKeys: [], disableSubmit: false, activeTabKey: '1', title: '' } }, computed: { - hasInspectionDateArrived() { - return moment(this.tableRowRecord.inspectionDate).diff(moment(), 'hours') <= 0 - }, isDisplayConfirm() { return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.inspectionStatus) }, @@ -334,11 +309,6 @@ const param = { procInstId } const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey } const that = this - - getAction(this.url.queryHisTaskList, param) - .then(res => { - that.hitaskDataSource = res.result - }) downFile(this.url.diagramView, imageParam, 'get') .then((res => { @@ -360,22 +330,70 @@ */ async getBasicInformation(record) { this.activeTabKey = '1' - this.detail.dataSource = [] + this.detail.dayInspectionList = this.detail.weekInspectionList = [] this.spinning = true const param = { id: record.dataId } - let res = await getAction(this.url.queryById, param); - this.tableRowRecord = Object.assign({}, res.result); - if (this.tableRowRecord.imageFiles) { - let obj = JSON.parse(this.tableRowRecord.imageFiles) - this.tableRowRecord.fileList = [...obj] - } - await this.loadDetail(record.dataId) + let res = await getAction(this.url.queryById, param) + this.tableRowRecord = Object.assign({}, res.result) + this.getDayInspectionOrderListByApi(record.dataId) + console.log('record', record) + this.getWeekInspectionOrderListByApi(this.tableRowRecord.standardId) }, + /** + * 鑾峰彇鐐规宸ュ崟涓殑鏃ョ偣妫�鍒楄〃 + * @param orderId 宸ュ崟鍙� + */ + getDayInspectionOrderListByApi(orderId) { + if (orderId) { + getAction(this.url.detailList, { orderId }) + .then(res => { + if (res.success) { + this.detail.dayInspectionList = [...res.result] + } + }) + .finally(() => { + this.spinning = false + }) + } + }, + + /** + * 鑾峰彇鐐规宸ュ崟涓殑鍛ㄧ偣妫�鍒楄〃 + * @param standardId 瑙勮寖id + */ + getWeekInspectionOrderListByApi(standardId) { + console.log('standardId-------------------------', standardId) + getAction(this.url.weekInspectionOrderList, { standardId, inspectionDate: this.tableRowRecord.inspectionDate }) + .then(res => { + if (res.success) { + this.detail.weekInspectionList = res.result.list + this.detail.weekInspectionFinishedFlag = res.result.weekInsFlag + } + }) + .finally(() => { + this.spinning = false + }) + }, + + handleTabChange(tabKey) { + if (this.activeTabKey == '1') this.$refs.editableDetailTable1.clearValidate() + this.activeTabKey = tabKey + }, + + // 鎻愪氦浜嬩欢 async submitForm() { - let errMap = await this.$refs.editableDetailTable.validateTable() + let errMap = await this.$refs.editableDetailTable1.validateTable() if (errMap) { - console.log('err', errMap) + if (this.activeTabKey != '1') { + this.activeTabKey = '1' + // 鍐呴儴鏍¢獙鎻愮ず鍥爐ab鍒囨崲鏃跺畾浣嶅嚭鐜伴棶棰樺洜姝ゅ湪姝ゅ娓呮鍐呴儴鏍¢獙鎻愮ず锛屽鍔爊otification鎻愮ず + this.$refs.editableDetailTable1.clearValidate() + this.$notification.warning({ + message: '娑堟伅', + description: '鏃ョ偣妫�缁撴灉涓嶈兘涓虹┖' + }) + } return } @@ -387,22 +405,26 @@ flowTaskVo.taskId = this.selectShenpiData.id flowTaskVo.userId = this.selectShenpiData.assignee flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.values = this.selectShenpiData.variables flowTaskVo.confirmDealType = this.tableRowRecord.confirmDealType flowTaskVo.confirmComment = this.tableRowRecord.confirmComment - flowTaskVo.fileList = this.tableRowRecord.fileList - flowTaskVo.tableDetailList = this.$refs.editableDetailTable.getTableData() + flowTaskVo.tableDetailList = this.$refs.editableDetailTable1.getTableData() + if (!this.detail.weekInspectionFinishedFlag) flowTaskVo.tableWeekDetailList = this.$refs.editableDetailTable2.getTableData() const that = this - console.log('琛ㄥ崟鎻愪氦鏁版嵁', flowTaskVo) - httpAction(this.url.approve, flowTaskVo, 'post') + postAction(this.url.approve, flowTaskVo) .then((res) => { if (res.success) { - that.$message.success(res.message) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) //鍒锋柊琛ㄦ牸 - that.$emit('searchReset') + that.$emit('modalFormOk') that.handleCancel() } else { - that.$message.warning(res.message) + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) } }) .finally(() => { @@ -422,24 +444,37 @@ // 鎵归噺閫夋嫨鎵�鏈夌偣妫�缁撴灉 handleSelectAllInspectionResult() { - this.selectedRowKeys.forEach(key => { - const dataItem = this.detail.dataSource.find(item => item.id === key) - if (dataItem && dataItem.inspectionResult !== '1') { + let selectedRowKeys, prefix + if (this.activeTabKey == '1') { + selectedRowKeys = this.selectedDayInspectionRowKeys + prefix = 'day' + } + else if (this.activeTabKey == '2') { + selectedRowKeys = this.selectedWeekInspectionRowKeys + prefix = 'week' + } + else selectedRowKeys = [] + if (selectedRowKeys.length == 0) return + + selectedRowKeys.forEach(key => { + const dataItem = this.detail[prefix + 'InspectionList'].find(item => item.id === key) + if (dataItem && dataItem.inspectionResult !== 'NORMAL') { delete dataItem.exceptionDescription delete dataItem.reportFlag - dataItem.inspectionResult = '1' + dataItem.inspectionResult = 'NORMAL' } }) - this.$refs.editableDetailTable.clearCheckboxRow() - this.selectedRowKeys = [] + this.$refs['editableDetailTable' + this.activeTabKey].clearCheckboxRow() + this['selected' + prefix.charAt(0).toUpperCase() + prefix.slice(1) + 'InspectionRowKeys'] = [] }, /** * 琛ㄦ牸澶氶�夋鍙戠敓鏀瑰彉鏃惰Е鍙� * @param {selectedRowIds} 琛ㄦ牸涓凡閫夋嫨鐨処D鍒楄〃 + * @param key 鐐规鍖哄垎key */ - handleTableSelectRowChange({ selectedRowIds }) { - this.selectedRowKeys = selectedRowIds + handleTableSelectRowChange({ selectedRowIds }, key) { + this['selected' + key + 'InspectionRowKeys'] = selectedRowIds }, /** @@ -452,10 +487,16 @@ if (record.reportFlag) delete record.reportFlag }, + /** + * 寮傚父鎻忚堪涓庡紓甯告槸鍚︿繚淇瓧娈佃嚜瀹氫箟鏍¢獙鏂规硶 + * @param cellValue 鍗曞厓鏍煎唴鐨勫�� + * @param row 褰撳墠琛岃褰� + * @param callback 缁撴灉鍥炶皟鍑芥暟 + */ customValidator({ cellValue, row }, callback) { - if (row.inspectionResult === '2') { + if (this.activeTabKey == '1' && row.inspectionResult != 'NORMAL') { if (!cellValue) { - callback(false, '${title}涓嶈兘涓虹┖锛�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀� + callback(false, '璇疯緭鍏�${title}') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀� } else { callback(true) // true = 閫氳繃楠岃瘉 } @@ -465,23 +506,9 @@ }, handleCancel() { - this.selectedRowKeys = [] + this.selectedDayInspectionRowKeys = this.selectedWeekInspectionRowKeys = [] this.visible = false - }, - //鏍囧噯閫夋嫨鍙樺寲 - loadDetail(orderId) { - if (orderId) { - getAction(this.url.detailList, { orderId: orderId }) - .then(res => { - if (res.success) { - this.detail.dataSource = [...res.result] - } - }) - .finally(() => { - this.spinning = false - }) - } - }, + } } } </script> @@ -489,6 +516,4 @@ /deep/ .ant-select-dropdown-menu { text-align: left; } - - @import '~@assets/less/common.less'; </style> \ No newline at end of file -- Gitblit v1.9.3