From 83f051915bbe4562abfb5f1589642dd393ea8490 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期五, 22 八月 2025 10:43:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/mes/MesProductionWorkOrderListView.vue | 636 +++++++++++++++++++++++---------------------------------- 1 files changed, 258 insertions(+), 378 deletions(-) diff --git a/src/views/mes/MesProductionWorkOrderListView.vue b/src/views/mes/MesProductionWorkOrderListView.vue index 6b524e3..0f244cd 100644 --- a/src/views/mes/MesProductionWorkOrderListView.vue +++ b/src/views/mes/MesProductionWorkOrderListView.vue @@ -5,26 +5,40 @@ <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="宸ュ崟鍙�(浠诲姟鍙�)"> - <j-input placeholder="璇疯緭鍏ュ伐鍗曞彿(浠诲姟鍙�)" v-model="queryParam.workOrderCode"></j-input> + <a-form-item label="浜х嚎"> + <j-tree-select dict="base_factory,factory_name,id" pid-field="parent_id" + v-model="queryParam.factoryId" style="width: 100%"></j-tree-select> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鐗╂枡缂栧彿"> - <j-input placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" v-model="queryParam.materialNumber"></j-input> + <a-form-item label="鐗╂枡缂栫爜"> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber"></a-input> + </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.materialName"></a-input> </a-form-item> </a-col> <template v-if="toggleSearchStatus"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="宸ュ崟鐘舵��"> - <j-dict-select-tag dictCode="work_order_status" placeholder="璇疯緭鍏ュ伐鍗曠姸鎬�" + <j-dict-select-tag dictCode="work_order_status" placeholder="璇烽�夋嫨宸ュ崟鐘舵��" v-model="queryParam.workOrderStatus"></j-dict-select-tag> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="閲嶅彂甯冧汉"> - <j-select-user-by-dep placeholder="璇疯緭鍏ラ噸鍙戝竷浜�" - v-model="queryParam.republisher"></j-select-user-by-dep> + <a-form-item label="宸ュ崟鍙�(浠诲姟鍙�)"> + <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿(浠诲姟鍙�)" v-model="queryParam.workOrderCode"></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="鎺掍骇鏃ユ湡"> + <a-range-picker + style="width: 100%" + @change="dateRangeChange" + :value="dateRange"> + </a-range-picker> </a-form-item> </a-col> </template> @@ -41,8 +55,24 @@ </a-row> <a-row> <a-button type="primary" @click="productionSchedule" icon="retweet" style="margin-bottom: 8px">鎺掍骇</a-button> + <a-dropdown v-if="selectedRowKeys.length > 1"> + <a-menu slot="overlay"> + <a-menu-item key="1" @click="batchPublish"> + <a-icon type="check"/> + 鍙戝竷 + </a-menu-item> + </a-menu> + <a-button style="margin-left: 8px"> + 鎵归噺鎿嶄綔 + <a-icon type="down"/> + </a-button> + </a-dropdown> </a-row> </a-form> + </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-spin :spinning="confirmLoading"> <div> @@ -56,30 +86,11 @@ :dataSource="dataSource" :pagination="ipagination" :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type: 'radio'}" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type: 'checkbox'}" class="j-table-force-nowrap" - @change="handleTableChange"> - - <template slot="htmlSlot" slot-scope="text"> - <div v-html="text"></div> - </template> - <template slot="imgSlot" slot-scope="text,record"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" - style="max-width:80px;font-size: 12px;font-style: italic;" /> - </template> - <template slot="fileSlot" slot-scope="text"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> - <a-button - v-else - :ghost="true" - type="primary" - icon="download" - size="small" - @click="downloadFile(text)"> - 涓嬭浇 - </a-button> - </template> + @change="handleTableChange" + :customRow="clickSelect" + > <span slot="action" slot-scope="text, record"> <span v-if="record.workOrderStatus === 'NEW'"> @@ -95,11 +106,11 @@ <a-divider type="vertical" /> <a @click="handleCompletenessCheck(record)">榻愬鎬ф鏌�</a> </span> - <span v-if="record.workOrderStatus === 'PUBLISHED' && record.equipmentInspectionFlag === '0'"> + <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '0'"> <a-divider type="vertical" /> <a @click="handleCompletenessCheck(record)">璁惧鐐规</a> </span> - <span v-if="record.workOrderStatus === 'PUBLISHED' && record.processInspectionFlag === '0'"> + <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '0'"> <a-divider type="vertical" /> <a @click="handleCompletenessCheck(record)">宸ヨ壓鐐规</a> </span> @@ -130,92 +141,51 @@ </a-menu-item> </a-menu> </a-dropdown> - </span> </a-table> </div> <a-tabs v-model="activeKey" @change="handleChangeTabs"> - <a-tab-pane tab="宸ュ崟鎶ュ伐" :key="refKeys1[0]" :forceRender="true"> - <div style="display: flex; align-items: center; margin-bottom: 10px;"> - </div> - <j-vxe-table - keep-source - :ref="refKeys1[0]" + <a-tab-pane tab="宸ュ崟鎶ュ伐" :key="tabsRefKeys[0]" :forceRender="true"> + <a-table + :ref="tabsRefKeys[0]" :loading="mesWorkReporting.loading" :columns="mesWorkReporting.columns" :dataSource="mesWorkReporting.dataSource" - :maxHeight="300" - :rowNumber="true" - :rowSelection="true" - :toolbar="false"> - <template slot="showDetail" slot-scope="{row}"> - <a-button type="primary" @click="handleOrderDetail(row)" size="small"> - <a-icon type="eye" />璁㈠崟璇︽儏 - </a-button> - </template> - </j-vxe-table> + :pagination="false" + :scroll="{ y: 300 }" + size="middle" + bordered> + </a-table> </a-tab-pane> - <a-tab-pane tab="鐗╂枡鎷夊姩鐢宠" :key="refKeys2[0]" :forceRender="true"> - <div style="display: flex; align-items: center; margin-bottom: 10px;"> - </div> - <j-vxe-table - keep-source - :ref="refKeys2[0]" - :loading="mesMaterialTransferRequest.loading" - :columns="mesMaterialTransferRequest.columns" - :dataSource="mesMaterialTransferRequest.dataSource" - :maxHeight="300" - :rowNumber="true" - :rowSelection="true" - :toolbar="false"> - <template slot="showTransferDetail" slot-scope="{row}"> - <a-button type="primary" @click="handleTransferDetail(row)" size="small"> - <a-icon type="eye" />鐗╂枡鎷夊姩鏄庣粏 - </a-button> - </template> - </j-vxe-table> - </a-tab-pane> - <a-tab-pane tab="涓婁笅鏂欐煡璇�" :key="refKeys3[0]" :forceRender="true"> - <div style="display: flex; align-items: center; margin-bottom: 10px;"> - </div> - <j-vxe-table - keep-source - :ref="refKeys3[0]" + <a-tab-pane tab="涓婁笅鏂欐煡璇�" :key="tabsRefKeys[1]" :forceRender="true"> + <a-table + :ref="tabsRefKeys[1]" :loading="mesMaterialLoading.loading" :columns="mesMaterialLoading.columns" :dataSource="mesMaterialLoading.dataSource" - :maxHeight="300" - :rowNumber="true" - :rowSelection="true" - :toolbar="false"> - <template slot="showUnloadingDetail" slot-scope="{row}"> - <a-button type="primary" @click="handleUnLoadingDetail(row)" size="small"> - <a-icon type="eye" />涓嬫枡璇︽儏 - </a-button> - </template> - </j-vxe-table> + :pagination="false" + :scroll="{ y: 300 }" + size="middle" + bordered> + </a-table> </a-tab-pane> - <a-tab-pane tab="榻愬鎬ф鏌ヨ褰�" :key="refKeys4[0]" :forceRender="true"> - <div style="display: flex; align-items: center; margin-bottom: 10px;"> - </div> - <j-vxe-table - keep-source - :ref="refKeys4[0]" + <a-tab-pane tab="榻愬鎬ф鏌ヨ褰�" :key="tabsRefKeys[2]" :forceRender="true"> + <a-table + :ref="tabsRefKeys[2]" :loading="mesKittingCompletenessCheck.loading" :columns="mesKittingCompletenessCheck.columns" :dataSource="mesKittingCompletenessCheck.dataSource" - :maxHeight="300" - :rowNumber="true" - :rowSelection="true" - :toolbar="false" - /> + :pagination="false" + :scroll="{ y: 300 }" + size="middle" + bordered> + </a-table> </a-tab-pane> </a-tabs> </a-spin> <mes-production-work-order-modal ref="modalForm" @ok="modalFormOk"></mes-production-work-order-modal> <mes-production-order-modal ref="MesProductionOrderModal"></mes-production-order-modal> <MesMaterialUnloadingList ref="MesMaterialUnloadingList"></MesMaterialUnloadingList> - <MesMaterialTransferDetailList ref="MesMaterialTransferDetailList"></MesMaterialTransferDetailList> <MesProductionWorkOrderScheduleModal ref="MesProductionWorkOrderScheduleModal" @ok="modalFormOk"></MesProductionWorkOrderScheduleModal> <MesProductionWorkOrderRepublishModal ref="MesProductionWorkOrderRepublishModal" @ok="modalFormOk"></MesProductionWorkOrderRepublishModal> <MesProductionWorkOrderReportModal ref="MesProductionWorkOrderReportModal" @ok="modalFormOk"></MesProductionWorkOrderReportModal> @@ -229,26 +199,25 @@ import { mixinDevice } from '@/utils/mixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import MesProductionWorkOrderModal from './modules/MesProductionWorkOrderModal' -import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' -import { JVXETypes } from '@/components/jeecg/JVxeTable' import { filterMultiDictText } from '@/components/dict/JDictSelectUtil' import { getAction, requestPut } from '@api/manage' import MesProductionOrderModal from '@views/mes/modules/MesProductionOrderModal.vue' import MesMaterialUnloadingList from '@views/mes/MesMaterialUnloadingList.vue' -import MesMaterialTransferDetailList from '@views/mes/MesMaterialTransferDetailList.vue' import MesProductionWorkOrderScheduleModal from '@views/mes/modules/MesProductionWorkOrderScheduleModal.vue' import MesProductionWorkOrderRepublishModal from '@views/mes/modules/MesProductionWorkOrderRepublishModal.vue' import MesProductionWorkOrderReportModal from '@views/mes/modules/MesProductionWorkOrderReportModal.vue' import MesProductionWorkOrderCompletenessCheckModal from '@views/mes/modules/MesProductionWorkOrderCompletenessCheckModal.vue' +import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue' +import moment from 'moment/moment' export default { name: 'MesProductionWorkOrderList', - mixins: [JeecgListMixin, mixinDevice, JVxeTableModelMixin, JVXETypes], + mixins: [JeecgListMixin, mixinDevice], components: { + JSelectFactory, MesProductionWorkOrderModal, MesProductionOrderModal, MesMaterialUnloadingList, - MesMaterialTransferDetailList, MesProductionWorkOrderScheduleModal, MesProductionWorkOrderRepublishModal, MesProductionWorkOrderReportModal, @@ -258,18 +227,20 @@ return { description: '鎺掍骇宸ュ崟绠$悊椤甸潰', activeKey : 'mesWorkReporting', - // 宸ュ崟鎶ュ伐 - refKeys1: ['mesWorkReporting'], - tableKeys1: ['mesWorkReporting'], - //鐗╂枡鎷夊姩鐢宠 - refKeys2: ['mesMaterialTransferRequest'], - tableKeys2: ['mesMaterialTransferRequest'], - //涓婃枡 - refKeys3: ['mesMaterialLoading'], - tableKeys3: ['mesMaterialLoading'], - //榻愬鎬ф鏌ヨ褰� - refKeys4: ['mesKittingCompletenessCheck'], - tableKeys4: ['mesKittingCompletenessCheck'], + confirmLoading: false, + tabsRefKeys: ['mesWorkReporting', 'mesMaterialLoading', 'mesKittingCompletenessCheck'], + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 5, + pageSizeOptions: ['5', '10', '20'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, // 琛ㄥご columns: [ { @@ -366,188 +337,65 @@ dataSource: [], columns: [ { - title: '鎿嶄綔', - key: 'action', - type: JVXETypes.slot, - slotName: 'showDetail', - width: '120px', - align: 'center' + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } }, { title: '璁㈠崟鍙�', - key: 'orderCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'orderCode' }, { title: '宸ュ崟鍙�', - key: 'workOrderCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'workOrderCode' }, { title: '浜х嚎鍚嶇О', - key: 'factoryName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'factoryName' }, { title: '鎵规鍙�', - key: 'batchNumber', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'batchNumber' }, { title: '鎵樺彿', - key: 'palletNumber', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'palletNumber' }, { title: '鏁伴噺', - key: 'quantity', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'quantity' }, { title: '鎶ュ伐浜�', - key: 'reporter', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'reporter' }, { title: '鎶ュ伐鏃堕棿', - key: 'reportTime', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'reportTime' }, { title: '绾胯竟浠撳悕绉�', - key: 'warehouseName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'warehouseName' }, - { - title: '鎴愬搧涓嬬嚎鎵撳嵃鐘舵��', - key: 'printStatus', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - ] - }, - mesMaterialTransferRequest: { - loading: false, - dataSource: [], - columns: [ - { - title: '鎿嶄綔', - key: 'action', - type: JVXETypes.slot, - slotName: 'showTransferDetail', - width: '120px', - align: 'center' - }, - { - title: '鎷夊姩鍗曞彿', - key: 'requestCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '宸ュ崟鍙�', - key: 'workOrderCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: 'SAP棰勭暀鍙�', - key: 'reservationCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '鍙戝竷鐘舵��', - key: 'publishStatus', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '璇锋眰鐘舵��', - key: 'requestStatus', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '璇锋眰鏃堕棿', - key: 'requestTime', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '鍘熷簱瀛樺湴', - key: 'originalWarehouseName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '鐩爣搴撳瓨鍦�', - key: 'targetWarehouseName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '浼樺厛绾�', - key: 'priority', - type: JVXETypes.select, - dictCode: 'priority', - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, - { - title: '鏈�鏅氶厤閫佹椂闂�', - key: 'latestDeliveryTime', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, + // { + // title: '鎴愬搧涓嬬嚎鎵撳嵃鐘舵��', + // align: 'center', + // dataIndex: 'printStatus' + // } ] }, mesMaterialLoading: { @@ -555,85 +403,60 @@ dataSource: [], columns: [ { - title: '鎿嶄綔', - key: 'action', - type: JVXETypes.slot, - slotName: 'showUnloadingDetail', - width: '120px', - align: 'center' + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } }, { title: '宸ュ崟鍙�', - key: 'workOrderCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'workOrderCode' }, { - title: '璁惧ID', - key: 'equipmentId', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + title: '璁惧', + align: 'center', + dataIndex: 'equipmentId' }, { title: '宸ュ簭缂栫爜', - key: 'processCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'processCode' }, { title: '宸ュ簭鍚嶇О', - key: 'processName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'processName' }, { title: '鐗╂枡缂栫爜', - key: 'materialNumber', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'materialNumber' }, { title: '鐗╂枡鍚嶇О', - key: 'materialName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'materialName' }, { title: '鎵规鍙�', - key: 'batchNumber', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'batchNumber' }, { title: '鏁伴噺', - key: 'quantity', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'quantity' }, { title: '鍓╀綑鏁伴噺', - key: 'remainingQuantity', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, + align: 'center', + dataIndex: 'remainingQuantity' + } ] }, mesKittingCompletenessCheck: { @@ -641,86 +464,154 @@ dataSource: [], columns: [ { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { title: '宸ュ崟鍙�', - key: 'workOrderCode', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'workOrderCode' }, { title: '鐗╂枡缂栧彿', - key: 'materialNumber', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'materialNumber' }, { title: '鐗╂枡鍚嶇О', - key: 'materialName', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'materialName' }, { title: '闇�姹傛暟閲�', - key: 'requiredQuantity', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'requiredQuantity' }, { title: '瀹為檯鏁伴噺', - key: 'actualQuantity', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' + align: 'center', + dataIndex: 'actualQuantity' }, { title: '鏄惁榻愬', - key: 'checkFlag', - type: JVXETypes.input, - width: '200px', - placeholder: '璇疯緭鍏�${title}', - defaultValue: '' - }, + align: 'center', + dataIndex: 'checkFlag', + customRender: function(text) { + return text === '0' ? '鍚�' : text === '1' ? '鏄�' : '' + } + } ] }, url: { - list: '/mesproductionworkorder/mesProductionWorkOrder/list', - delete: '/mesproductionworkorder/mesProductionWorkOrder/delete', - deleteBatch: '/mesproductionworkorder/mesProductionWorkOrder/deleteBatch', - exportXlsUrl: '/mesproductionworkorder/mesProductionWorkOrder/exportXls', - importExcelUrl: 'mesproductionworkorder/mesProductionWorkOrder/importExcel', - queryWorkReportingByWorkOrderId:'/mesworkreporting/mesWorkReporting/queryWorkReportingByWorkOrderId', - queryMaterialTransferRequestByWorkOrderId:'/mesmaterialtransferrequest/mesMaterialTransferRequest/queryMaterialTransferRequestByWorkOrderId', + list: '/mes/mesProductionWorkOrder/list', + delete: '/mes/mesProductionWorkOrder/delete', + deleteBatch: '/mes/mesProductionWorkOrder/deleteBatch', + exportXlsUrl: '/mes/mesProductionWorkOrder/exportXls', + importExcelUrl: 'mes/mesProductionWorkOrder/importExcel', + queryWorkReportingByWorkOrderId:'/mes/mesWorkReporting/queryWorkReportingByWorkOrderId', queryLoadingByWorkOrderId:'/mes/mesMaterialLoading/queryLoadingByWorkOrderId', - queryCompletenessCheckByWorkOrderId:'/meskittingcompletenesscheck/mesKittingCompletenessCheck/queryCompletenessCheckByWorkOrderId', - queryOrderById:'/mesproductionwork/mesProductionOrder/queryById', + queryCompletenessCheckByWorkOrderId:'/mes/mesKittingCompletenessCheck/queryCompletenessCheckByWorkOrderId', + queryOrderById:'/mes/productionOrder/queryById', queryUnloadingByLoadingId:'/mes/mesMaterialUnloading/queryUnloadingByLoadingId', - queryTransferDetailBy:'/mes/mesMaterialTransferDetail/queryTransferDetailBy', - publish: '/mesproductionworkorder/mesProductionWorkOrder/publish', - execute: '/mesproductionworkorder/mesProductionWorkOrder/execute', + publish: '/mes/mesProductionWorkOrder/publish', + execute: '/mes/mesProductionWorkOrder/execute', }, dictOptions: {}, - superFieldList: [] + superFieldList: [], + dateRange: [] } }, created() { this.getSuperFieldList() }, computed: { + tabsKeyMap() { + return { + mesWorkReporting: { + url: this.url.queryWorkReportingByWorkOrderId, + loading: this.mesWorkReporting.loading, + data: this.mesWorkReporting.dataSource, + setLoading: (loading) => { this.mesWorkReporting.loading = loading }, + setData: (data) => { this.mesWorkReporting.dataSource = data } + }, + mesMaterialLoading: { + url: this.url.queryLoadingByWorkOrderId, + loading: this.mesMaterialLoading.loading, + data: this.mesMaterialLoading.dataSource, + setLoading: (loading) => { this.mesMaterialLoading.loading = loading }, + setData: (data) => { this.mesMaterialLoading.dataSource = data } + }, + mesKittingCompletenessCheck: { + url: this.url.queryCompletenessCheckByWorkOrderId, + loading: this.mesKittingCompletenessCheck.loading, + data: this.mesKittingCompletenessCheck.dataSource, + setLoading: (loading) => { this.mesKittingCompletenessCheck.loading = loading }, + setData: (data) => { this.mesKittingCompletenessCheck.dataSource = data } + } + } + }, importExcelUrl: function() { return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` } }, methods: { + handleChangeTabs(key) { + this.activeKey = key + this.selectTabData(key, this.selectedRowKeys[0]) + }, + clickSelect(record) { + return { + on: { + click: () => { + this.selectedRowKeys = [record.id] + this.selectTabData(this.activeKey, record.id) + } + } + } + }, + selectTabData(tabKey, workOrderId) { + const tab = this.tabsKeyMap[tabKey] + if (tab) { + tab.setLoading(true) + getAction(tab.url, { workOrderId: workOrderId }).then(res => { + if (res.success) { + tab.setData(res.result || []) + } + }).catch(error => { + console.error('Error loading tab data:', error) + tab.setData([]) + }).finally(() => { + tab.setLoading(false) + }) + } + }, + searchReset() { + this.queryParam = {} + this.dateRange = [] + this.loadData(1); + }, + dateRangeChange(dates, dateStrings) { + this.dateRange = dates + this.queryParam.startDate = dateStrings[0] + this.queryParam.endDate = dateStrings[1] + }, productionSchedule() { this.$refs.MesProductionWorkOrderScheduleModal.scheduleOpen() + }, + batchPublish() { + if (this.selectedRowKeys.length < 1) { + this.$message.warning('璇烽�夋嫨澶氭潯璁板綍锛�') + return + } + const ids = this.selectedRowKeys.join(',') + this.handlePublish(ids) + this.selectedRowKeys = [] }, handlePublish(id) { requestPut(this.url.publish, null, { ids: id }).then((res) => { @@ -751,12 +642,6 @@ handleCompletenessCheck(record) { this.$refs.MesProductionWorkOrderCompletenessCheckModal.check(record) }, - async handleTransferDetail(row){ - console.log('row---->',row) - const transferDetailResult = await getAction(this.url.queryTransferDetailBy,{'requestId':row.id}) - this.$refs.MesMaterialTransferDetailList.visible = true - this.$refs.MesMaterialTransferDetailList.dataSource = transferDetailResult.result.records - }, async handleUnLoadingDetail(row){ console.log('row---->',row) const unloadingResult = await getAction(this.url.queryUnloadingByLoadingId,{'loadingId':row.id}) @@ -770,15 +655,13 @@ this.$refs.MesProductionOrderModal.disableSubmit = true; }, async onSelectChange(selectedRowKeys){ - //mesWorkReporting,mesMaterialTransferRequest,mesMaterialLoading,mesKittingCompletenessCheck + //mesWorkReporting,路,mesMaterialLoading,mesKittingCompletenessCheck this.mesWorkReporting.loading = true - this.mesMaterialTransferRequest.loading = true this.mesMaterialLoading.loading = true this.mesKittingCompletenessCheck.loading = true this.selectedRowKeys = selectedRowKeys this.mesWorkReporting.dataSource=[] - this.mesMaterialTransferRequest.dataSource=[] this.mesMaterialLoading.dataSource=[] this.mesKittingCompletenessCheck.dataSource=[] if (selectedRowKeys.length > 0) { @@ -787,15 +670,12 @@ 'workOrderId':selectedId } const mesWorkReportingResult = await getAction(this.url.queryWorkReportingByWorkOrderId, parm) - const mesMaterialTransferRequestResult = await getAction(this.url.queryMaterialTransferRequestByWorkOrderId, parm) const mesMaterialLoadingResult = await getAction(this.url.queryLoadingByWorkOrderId, parm) const mesKittingCompletenessCheckResult = await getAction(this.url.queryCompletenessCheckByWorkOrderId, parm) this.mesWorkReporting.dataSource = mesWorkReportingResult.result - this.mesMaterialTransferRequest.dataSource = mesMaterialTransferRequestResult.result this.mesMaterialLoading.dataSource = mesMaterialLoadingResult.result this.mesKittingCompletenessCheck.dataSource = mesKittingCompletenessCheckResult.result this.mesWorkReporting.loading = false - this.mesMaterialTransferRequest.loading = false this.mesMaterialLoading.loading = false this.mesKittingCompletenessCheck.loading = false } -- Gitblit v1.9.3