From bddbe86f046ce76500b69f1352b29aee327aab0f Mon Sep 17 00:00:00 2001 From: houshuai <17802598606@163.com> Date: 星期四, 10 七月 2025 14:55:09 +0800 Subject: [PATCH] 生产管控模块 基本搭建3 --- src/views/mes/MesProductionWorkOrderListView.vue | 821 +++++++++++++++---- src/views/base/FactoryManager.vue | 4 src/views/mes/MesMaterialUnloadingList.vue | 318 +++---- src/views/mes/MesProductionOrderListView.vue | 551 +++++++++++++ src/views/mes/MesMaterialTransferDetailList.vue | 335 ++++---- src/views/mes/MesMaterialLoadingListView.vue | 412 +++++---- 6 files changed, 1,762 insertions(+), 679 deletions(-) diff --git a/src/views/base/FactoryManager.vue b/src/views/base/FactoryManager.vue index 7808668..93ea983 100644 --- a/src/views/base/FactoryManager.vue +++ b/src/views/base/FactoryManager.vue @@ -119,11 +119,11 @@ </a-row> </template> <script> - import UserFactory from './modules/factoryManager/UserFactory' + import UserFactory from './modules/FactoryManager/UserFactory' import { queryFactoryTreeList, searchByKeywords, deleteByFactory } from '@/api/api' import { httpAction, deleteAction } from '@/api/manage' import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import FactoryModal from './modules/factoryManager/FactoryModal' + import FactoryModal from './modules/FactoryManager/FactoryModal' export default { name: 'FactoryManager', diff --git a/src/views/mes/MesMaterialLoadingListView.vue b/src/views/mes/MesMaterialLoadingListView.vue index 25dd3fe..8bedb56 100644 --- a/src/views/mes/MesMaterialLoadingListView.vue +++ b/src/views/mes/MesMaterialLoadingListView.vue @@ -1,12 +1,13 @@ <template> - <a-card :bordered="false" title="涓婃枡"> + <a-card :bordered="false" title="涓婁笅鏂欐煡璇�"> <!-- 鏌ヨ鍖哄煙 --> <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="宸ュ崟鍙�"> - <j-search-select-tag placeholder="璇疯緭鍏ュ伐宸ュ崟鍙�" v-model="queryParam.workOrderId" dict="mes_production_work_order,work_order_code,id"></j-search-select-tag> + <j-search-select-tag placeholder="璇疯緭鍏ュ伐宸ュ崟鍙�" v-model="queryParam.workOrderId" + dict="mes_production_work_order,work_order_code,id"></j-search-select-tag> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> @@ -16,12 +17,14 @@ </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="鐗╂枡缂栫爜"> - <j-input dictCode="work_order_status" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber"></j-input> + <j-input dictCode="work_order_status" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" + v-model="queryParam.materialNumber"></j-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="鐗╂枡鍚嶇О"> - <j-input dictCode="work_order_status" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName"></j-input> + <j-input dictCode="work_order_status" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" + v-model="queryParam.materialName"></j-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> @@ -40,58 +43,45 @@ </div> <!-- 鏌ヨ鍖哄煙-END --> - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <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-spin :spinning="confirmLoading"> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type: 'radio'}" + class="j-table-force-nowrap" + @change="handleTableChange"> - <a-table - ref="table" - size="middle" - :scroll="{x:true}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - 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> - <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> - - <span slot="action" slot-scope="text, record"> + <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">缂栬緫</a> <a-divider type="vertical" /> @@ -109,136 +99,218 @@ </a-menu> </a-dropdown> </span> - - </a-table> - </div> - + </a-table> + </div> + <a-tabs v-model="activeKey" @change="handleChangeTabs"> + <a-tab-pane tab="涓嬫枡" :key="refKeys[0]" :forceRender="true"> + <div style="display: flex; align-items: center; margin-bottom: 10px;"> + </div> + <j-vxe-table + keep-source + :ref="refKeys[0]" + :loading="mesMaterialUnloading.loading" + :columns="mesMaterialUnloading.columns" + :dataSource="mesMaterialUnloading.dataSource" + :maxHeight="300" + :rowNumber="true" + :rowSelection="true" + :toolbar="false" + /> + </a-tab-pane> + </a-tabs> + </a-spin> <mes-material-loading-modal ref="modalForm" @ok="modalFormOk"></mes-material-loading-modal> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import MesMaterialLoadingModal from './modules/MesMaterialLoadingModal' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import MesMaterialLoadingModal from './modules/MesMaterialLoadingModal' +import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' +import { JVXETypes } from '@/components/jeecg/JVxeTable' +import { getAction } from '@api/manage' - export default { - name: 'MesMaterialLoadingList', - mixins:[JeecgListMixin, mixinDevice], - components: { - MesMaterialLoadingModal - }, - data () { - return { - description: '涓婃枡绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'宸ュ崟鍙�', - align:"center", - dataIndex: 'workOrderId_dictText' - }, - { - title:'璁惧ID', - align:"center", - dataIndex: 'equipmentId' - }, - { - title:'宸ュ簭缂栫爜', - align:"center", - dataIndex: 'processCode' - }, - { - title:'宸ュ簭鍚嶇О', - align:"center", - dataIndex: 'processName' - }, - { - title:'鐗╂枡缂栫爜', - align:"center", - dataIndex: 'materialNumber' - }, - { - title:'鐗╂枡鍚嶇О', - align:"center", - dataIndex: 'materialName' - }, - { - title:'鎵规鍙�', - align:"center", - dataIndex: 'batchNumber' - }, - { - title:'鏁伴噺', - align:"center", - dataIndex: 'quantity' - }, - { - title:'鍓╀綑鏁伴噺', - align:"center", - dataIndex: 'remainingQuantity' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } +export default { + name: 'MesMaterialLoadingList', + mixins: [JeecgListMixin, mixinDevice,JVxeTableModelMixin,JVXETypes], + components: { + MesMaterialLoadingModal + }, + data() { + return { + description: '涓婃枡绠$悊椤甸潰', + refKeys: ['mesMaterialUnloading'], + tableKeys: ['mesMaterialUnloading'], + activeKey: 'mesMaterialUnloading', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/mes/mesMaterialLoading/list", - delete: "/mes/mesMaterialLoading/delete", - deleteBatch: "/mes/mesMaterialLoading/deleteBatch", - exportXlsUrl: "/mes/mesMaterialLoading/exportXls", - importExcelUrl: "mes/mesMaterialLoading/importExcel", - }, - dictOptions:{}, - superFieldList:[], + { + title: '宸ュ崟鍙�', + align: 'center', + dataIndex: 'workOrderId_dictText' + }, + { + title: '璁惧ID', + align: 'center', + dataIndex: 'equipmentId' + }, + { + title: '宸ュ簭缂栫爜', + align: 'center', + dataIndex: 'processCode' + }, + { + title: '宸ュ簭鍚嶇О', + align: 'center', + dataIndex: 'processName' + }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '鎵规鍙�', + align: 'center', + dataIndex: 'batchNumber' + }, + { + title: '鏁伴噺', + align: 'center', + dataIndex: 'quantity' + }, + { + title: '鍓╀綑鏁伴噺', + align: 'center', + dataIndex: 'remainingQuantity' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + mesMaterialUnloading: { + loading: false, + dataSource: [], + columns: [ + // { + // title: '涓婃枡', + // key: 'loadingId', + // type: JVXETypes.input, + // width: '200px', + // placeholder: '璇疯緭鍏�${title}', + // defaultValue: '' + // }, + { + title: '鐗╂枡缂栫爜', + key: 'materialNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鐗╂枡鍚嶇О', + key: 'materialName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎵规鍙�', + key: 'batchNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鏁伴噺', + key: 'quantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + } + ] + }, + url: { + list: '/mes/mesMaterialLoading/list', + delete: '/mes/mesMaterialLoading/delete', + deleteBatch: '/mes/mesMaterialLoading/deleteBatch', + exportXlsUrl: '/mes/mesMaterialLoading/exportXls', + importExcelUrl: 'mes/mesMaterialLoading/importExcel', + queryUnloadingByLoadingId:'/mes/mesMaterialLoading/queryUnloadingByLoadingId' + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + initDictConfig() { + }, + async onSelectChange(selectedRowKeys) { + this.mesMaterialUnloading.loading = true + // 鍗曢�夋ā寮忎笅锛宻electedRowKeys 鏄暟缁勶紝浣嗛暱搴︽渶澶氫负1 + console.log('鐐瑰嚮浜�---->',selectedRowKeys[0]) + this.selectedRowKeys = selectedRowKeys + this.mesMaterialUnloading.dataSource=[] + // 鑾峰彇閫変腑琛岀殑瀹屾暣鏁版嵁 + if (selectedRowKeys.length > 0) { + const selectedId = selectedRowKeys[0] // 閫変腑琛岀殑id + const mesMaterialUnloading = await getAction(this.url.queryUnloadingByLoadingId, { 'loadingId': selectedId }) + this.mesMaterialUnloading.dataSource = mesMaterialUnloading.result + this.mesMaterialUnloading.loading = false } }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - }, - }, - methods: { - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'int',value:'delFlag',text:'鍒犻櫎鏍囪',dictCode:''}) - fieldList.push({type:'string',value:'workOrderId',text:'宸ュ崟ID',dictCode:''}) - fieldList.push({type:'string',value:'equipmentId',text:'璁惧ID',dictCode:''}) - fieldList.push({type:'string',value:'processCode',text:'宸ュ簭缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'processName',text:'宸ュ簭鍚嶇О',dictCode:''}) - fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''}) - fieldList.push({type:'string',value:'batchNumber',text:'鎵规鍙�',dictCode:''}) - fieldList.push({type:'double',value:'quantity',text:'鏁伴噺',dictCode:''}) - fieldList.push({type:'double',value:'remainingQuantity',text:'鍓╀綑鏁伴噺',dictCode:''}) - this.superFieldList = fieldList - } + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'int', value: 'delFlag', text: '鍒犻櫎鏍囪', dictCode: '' }) + fieldList.push({ type: 'string', value: 'workOrderId', text: '宸ュ崟ID', dictCode: '' }) + fieldList.push({ type: 'string', value: 'equipmentId', text: '璁惧ID', dictCode: '' }) + fieldList.push({ type: 'string', value: 'processCode', text: '宸ュ簭缂栫爜', dictCode: '' }) + fieldList.push({ type: 'string', value: 'processName', text: '宸ュ簭鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialNumber', text: '鐗╂枡缂栫爜', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialName', text: '鐗╂枡鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'string', value: 'batchNumber', text: '鎵规鍙�', dictCode: '' }) + fieldList.push({ type: 'double', value: 'quantity', text: '鏁伴噺', dictCode: '' }) + fieldList.push({ type: 'double', value: 'remainingQuantity', text: '鍓╀綑鏁伴噺', dictCode: '' }) + this.superFieldList = fieldList } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/mes/MesMaterialTransferDetailList.vue b/src/views/mes/MesMaterialTransferDetailList.vue index c39b5eb..1048ae3 100644 --- a/src/views/mes/MesMaterialTransferDetailList.vue +++ b/src/views/mes/MesMaterialTransferDetailList.vue @@ -1,73 +1,60 @@ <template> - <a-card :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> - <a-row :gutter="24"> - </a-row> - </a-form> - </div> - <!-- 鏌ヨ鍖哄煙-END --> - - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <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> - <!-- 楂樼骇鏌ヨ鍖哄煙 --> - <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> - <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> + <j-modal + :title="title" + :width="width" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + @cancel="handleCancel" + :okButtonProps="{ style: { display: 'none' } }" + cancelText="鍏抽棴"> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + </a-row> + </a-form> </div> - <a-table - ref="table" - size="middle" - :scroll="{x:true}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - class="j-table-force-nowrap" - @change="handleTableChange"> + <!-- table鍖哄煙-begin --> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + 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> + <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> - <span slot="action" slot-scope="text, record"> + <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">缂栬緫</a> <a-divider type="vertical" /> @@ -86,122 +73,132 @@ </a-dropdown> </span> - </a-table> - </div> + </a-table> + </div> - <mes-material-transfer-detail-modal ref="modalForm" @ok="modalFormOk"></mes-material-transfer-detail-modal> - </a-card> + <mes-material-transfer-detail-modal ref="modalForm" @ok="modalFormOk"></mes-material-transfer-detail-modal> + </a-card> + </j-modal> </template> <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import MesMaterialTransferDetailModal from './modules/MesMaterialTransferDetailModal' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import MesMaterialTransferDetailModal from './modules/MesMaterialTransferDetailModal' - export default { - name: 'MesMaterialTransferDetailList', - mixins:[JeecgListMixin, mixinDevice], - components: { - MesMaterialTransferDetailModal - }, - data () { - return { - description: '鐗╂枡鎷夊姩鏄庣粏绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'鍒犻櫎鏍囪', - align:"center", - dataIndex: 'delFlag' - }, - { - title:'鐢宠鍗旾D', - align:"center", - dataIndex: 'requestId' - }, - { - title:'鐗╂枡缂栫爜', - align:"center", - dataIndex: 'materialNumber' - }, - { - title:'鐗╂枡鍚嶇О', - align:"center", - dataIndex: 'materialName' - }, - { - title:'鐞嗚鎷夊姩鏁伴噺', - align:"center", - dataIndex: 'specifiedQuantity' - }, - { - title:'瀹為檯鎷夊姩鏁伴噺', - align:"center", - dataIndex: 'actualQuantity' - }, - { - title:'杞﹂棿鍓╀綑鏁伴噺', - align:"center", - dataIndex: 'remainingQuantity' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } +export default { + name: 'MesMaterialTransferDetailList', + mixins: [JeecgListMixin, mixinDevice], + components: { + MesMaterialTransferDetailModal + }, + data() { + return { + description: '鐗╂枡鎷夊姩鏄庣粏绠$悊椤甸潰', + title: '鐗╂枡鎷夊姩鏄庣粏', + width: 1000, + toolsVisable: true, + visible: false, + confirmLoading: false, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/mes/mesMaterialTransferDetail/list", - delete: "/mes/mesMaterialTransferDetail/delete", - deleteBatch: "/mes/mesMaterialTransferDetail/deleteBatch", - exportXlsUrl: "/mes/mesMaterialTransferDetail/exportXls", - importExcelUrl: "mes/mesMaterialTransferDetail/importExcel", - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + // { + // title: '鍒犻櫎鏍囪', + // align: 'center', + // dataIndex: 'delFlag' + // }, + // { + // title: '鐢宠鍗旾D', + // align: 'center', + // dataIndex: 'requestId' + // }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '鐞嗚鎷夊姩鏁伴噺', + align: 'center', + dataIndex: 'specifiedQuantity' + }, + { + title: '瀹為檯鎷夊姩鏁伴噺', + align: 'center', + dataIndex: 'actualQuantity' + }, + { + title: '杞﹂棿鍓╀綑鏁伴噺', + align: 'center', + dataIndex: 'remainingQuantity' + }, + // { + // title: '鎿嶄綔', + // dataIndex: 'action', + // align: 'center', + // fixed: 'right', + // width: 147, + // scopedSlots: { customRender: 'action' } + // } + ], + url: { + list: '/mes/mesMaterialTransferDetail/list', + delete: '/mes/mesMaterialTransferDetail/delete', + deleteBatch: '/mes/mesMaterialTransferDetail/deleteBatch', + exportXlsUrl: '/mes/mesMaterialTransferDetail/exportXls', + importExcelUrl: 'mes/mesMaterialTransferDetail/importExcel' + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + handleCancel(){ + this.visible=false + this.dataSource = [] }, - methods: { - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'int',value:'delFlag',text:'鍒犻櫎鏍囪',dictCode:''}) - fieldList.push({type:'string',value:'requestId',text:'鐢宠鍗旾D',dictCode:''}) - fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''}) - fieldList.push({type:'double',value:'specifiedQuantity',text:'鐞嗚鎷夊姩鏁伴噺',dictCode:''}) - fieldList.push({type:'double',value:'actualQuantity',text:'瀹為檯鎷夊姩鏁伴噺',dictCode:''}) - fieldList.push({type:'double',value:'remainingQuantity',text:'杞﹂棿鍓╀綑鏁伴噺',dictCode:''}) - this.superFieldList = fieldList - } + initDictConfig() { + }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'int', value: 'delFlag', text: '鍒犻櫎鏍囪', dictCode: '' }) + fieldList.push({ type: 'string', value: 'requestId', text: '鐢宠鍗旾D', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialNumber', text: '鐗╂枡缂栫爜', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialName', text: '鐗╂枡鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'double', value: 'specifiedQuantity', text: '鐞嗚鎷夊姩鏁伴噺', dictCode: '' }) + fieldList.push({ type: 'double', value: 'actualQuantity', text: '瀹為檯鎷夊姩鏁伴噺', dictCode: '' }) + fieldList.push({ type: 'double', value: 'remainingQuantity', text: '杞﹂棿鍓╀綑鏁伴噺', dictCode: '' }) + this.superFieldList = fieldList } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/mes/MesMaterialUnloadingList.vue b/src/views/mes/MesMaterialUnloadingList.vue index c4eb7a3..8c8bc4f 100644 --- a/src/views/mes/MesMaterialUnloadingList.vue +++ b/src/views/mes/MesMaterialUnloadingList.vue @@ -1,73 +1,60 @@ <template> - <a-card :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> - <a-row :gutter="24"> - </a-row> - </a-form> - </div> - <!-- 鏌ヨ鍖哄煙-END --> - - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <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> - <!-- 楂樼骇鏌ヨ鍖哄煙 --> - <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> - <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> + <j-modal + :title="title" + :width="width" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + @cancel="handleCancel" + :okButtonProps="{ style: { display: 'none' } }" + cancelText="鍏抽棴"> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + </a-row> + </a-form> </div> + <!-- 鏌ヨ鍖哄煙-END --> + <!-- table鍖哄煙-begin --> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + class="j-table-force-nowrap" + @change="handleTableChange"> - <a-table - ref="table" - size="middle" - :scroll="{x:true}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - 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> - <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> - - <span slot="action" slot-scope="text, record"> + <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">缂栬緫</a> <a-divider type="vertical" /> @@ -86,116 +73,117 @@ </a-dropdown> </span> - </a-table> - </div> - - <mes-material-unloading-modal ref="modalForm" @ok="modalFormOk"></mes-material-unloading-modal> - </a-card> + </a-table> + </div> + <mes-material-unloading-modal ref="modalForm" @ok="modalFormOk"></mes-material-unloading-modal> + </a-card> + </j-modal> </template> <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import MesMaterialUnloadingModal from './modules/MesMaterialUnloadingModal' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import MesMaterialUnloadingModal from './modules/MesMaterialUnloadingModal' - export default { - name: 'MesMaterialUnloadingList', - mixins:[JeecgListMixin, mixinDevice], - components: { - MesMaterialUnloadingModal - }, - data () { - return { - description: '涓嬫枡绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'鍒犻櫎鏍囪', - align:"center", - dataIndex: 'delFlag' - }, - { - title:'涓婃枡id', - align:"center", - dataIndex: 'loadingId' - }, - { - title:'鐗╂枡缂栫爜', - align:"center", - dataIndex: 'materialNumber' - }, - { - title:'鐗╂枡鍚嶇О', - align:"center", - dataIndex: 'materialName' - }, - { - title:'鎵规鍙�', - align:"center", - dataIndex: 'batchNumber' - }, - { - title:'鏁伴噺', - align:"center", - dataIndex: 'quantity' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } +export default { + name: 'MesMaterialUnloadingList', + mixins: [JeecgListMixin, mixinDevice], + components: { + MesMaterialUnloadingModal + }, + data() { + return { + description: '涓嬫枡绠$悊椤甸潰', + title: '涓嬫枡璇︽儏', + width: 1000, + toolsVisable: true, + visible: false, + confirmLoading: false, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/mes/mesMaterialUnloading/list", - delete: "/mes/mesMaterialUnloading/delete", - deleteBatch: "/mes/mesMaterialUnloading/deleteBatch", - exportXlsUrl: "/mes/mesMaterialUnloading/exportXls", - importExcelUrl: "mes/mesMaterialUnloading/importExcel", - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + // { + // title: '鍒犻櫎鏍囪', + // align: 'center', + // dataIndex: 'delFlag' + // }, + // { + // title: '涓婃枡id', + // align: 'center', + // dataIndex: 'loadingId' + // }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '鎵规鍙�', + align: 'center', + dataIndex: 'batchNumber' + }, + { + title: '鏁伴噺', + align: 'center', + dataIndex: 'quantity' + }, + ], + url: { + list: '/mes/mesMaterialUnloading/list', + delete: '/mes/mesMaterialUnloading/delete', + deleteBatch: '/mes/mesMaterialUnloading/deleteBatch', + exportXlsUrl: '/mes/mesMaterialUnloading/exportXls', + importExcelUrl: 'mes/mesMaterialUnloading/importExcel' + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + handleCancel(){ + this.visible=false + this.dataSource = [] }, - methods: { - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'int',value:'delFlag',text:'鍒犻櫎鏍囪',dictCode:''}) - fieldList.push({type:'string',value:'loadingId',text:'涓婃枡id',dictCode:''}) - fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''}) - fieldList.push({type:'string',value:'batchNumber',text:'鎵规鍙�',dictCode:''}) - fieldList.push({type:'double',value:'quantity',text:'鏁伴噺',dictCode:''}) - this.superFieldList = fieldList - } + initDictConfig() { + }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'int', value: 'delFlag', text: '鍒犻櫎鏍囪', dictCode: '' }) + fieldList.push({ type: 'string', value: 'loadingId', text: '涓婃枡id', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialNumber', text: '鐗╂枡缂栫爜', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialName', text: '鐗╂枡鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'string', value: 'batchNumber', text: '鎵规鍙�', dictCode: '' }) + fieldList.push({ type: 'double', value: 'quantity', text: '鏁伴噺', dictCode: '' }) + this.superFieldList = fieldList } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/mes/MesProductionOrderListView.vue b/src/views/mes/MesProductionOrderListView.vue new file mode 100644 index 0000000..6413c24 --- /dev/null +++ b/src/views/mes/MesProductionOrderListView.vue @@ -0,0 +1,551 @@ +<template> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <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="鐢熶骇璁㈠崟鍙�"> + <j-input placeholder="璇疯緭鍏ョ敓浜ц鍗曞彿" v-model="queryParam.orderCode"></j-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="璁㈠崟绫诲瀷"> + <j-dict-select-tag dictCode="orderCategory" placeholder="璇疯緭鍏ヨ鍗曠被鍨�" + v-model="queryParam.orderCategory"></j-dict-select-tag> + </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> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="鐗╂枡鍚嶇О"> + <j-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName"></j-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="璁㈠崟鐘舵��"> + <j-dict-select-tag dictCode="order_status" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�" + v-model="queryParam.order_status"></j-dict-select-tag> + </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.processRoute"></j-input> + </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.materialListCode"></j-input> + </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.factoryCode"></j-input> + </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.factoryName"></j-input> + </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.customerOrderModel"></j-input> + </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.customer"></j-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + + <!-- table鍖哄煙-begin --> + <a-spin :spinning="confirmLoading"> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type: 'radio'}" + 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> + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)">缂栬緫</a> + + <a-divider type="vertical" /> + <a-dropdown> + <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> + <a-menu slot="overlay"> + <a-menu-item> + <a @click="handleDetail(record)">璇︽儏</a> + </a-menu-item> + <a-menu-item> + <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> + <a>鍒犻櫎</a> + </a-popconfirm> + </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]" + :loading="mesWorkReporting.loading" + :columns="mesWorkReporting.columns" + :dataSource="mesWorkReporting.dataSource" + :maxHeight="300" + :rowNumber="true" + :rowSelection="true" + :toolbar="false"> + </j-vxe-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="mesTransferOrderPrint.loading" + :columns="mesTransferOrderPrint.columns" + :dataSource="mesTransferOrderPrint.dataSource" + :maxHeight="300" + :rowNumber="true" + :rowSelection="true" + :toolbar="false"> + </j-vxe-table> + </a-tab-pane> + </a-tabs> + </a-spin> + <mes-production-order-modal ref="modalForm" @ok="modalFormOk"></mes-production-order-modal> + </a-card> + +</template> + +<script> + +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import MesProductionOrderModal from './modules/MesProductionOrderModal' +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil' +import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' +import { JVXETypes } from '@/components/jeecg/JVxeTable' +import { getAction } from '@api/manage' +export default { + name: 'MesProductionOrderList', + mixins: [JeecgListMixin, mixinDevice,JVxeTableModelMixin,JVXETypes], + components: { + MesProductionOrderModal, + }, + data() { + return { + description: 'SAP鐢熶骇璁㈠崟绠$悊椤甸潰', + activeKey : 'mesWorkReporting', + // 宸ュ崟鎶ュ伐 + refKeys1: ['mesWorkReporting'], + tableKeys1: ['mesWorkReporting'], + //绉诲簱鍗曟墦鍗� + refKeys2: ['mesTransferOrderPrint'], + tableKeys2: ['mesTransferOrderPrint'], + + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '鐢熶骇璁㈠崟鍙�', + align: 'center', + dataIndex: 'orderCode' + }, + { + title: '璁㈠崟绫诲瀷', + align: 'center', + dataIndex: 'orderCategory' + }, + { + title: '鐗╂枡缂栧彿', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '璁″垝寮�濮嬫棩鏈�', + align: 'center', + dataIndex: 'planStart' + }, + { + title: '璁″垝缁撴潫鏃ユ湡', + align: 'center', + dataIndex: 'planEnd' + }, + { + title: '璁㈠崟鏁伴噺', + align: 'center', + dataIndex: 'orderQuantity' + }, + { + title: '浜у搧鍗曚綅', + align: 'center', + dataIndex: 'productionUnit_dictText' + }, + { + title: '璁㈠崟鐘舵��', + align: 'center', + dataIndex: 'orderStatus_dictText' + }, + { + title: '浼樺厛绾�', + align: 'center', + dataIndex: 'priority_dictText' + }, + { + title: '璁″垝宸ヨ壓璺嚎', + align: 'center', + dataIndex: 'processRoute' + }, + { + title: '璁″垝鐗╂枡娓呭崟', + align: 'center', + dataIndex: 'materialListCode' + }, + { + title: '宸ュ巶缂栫爜', + align: 'center', + dataIndex: 'factoryCode' + }, + { + title: '宸ュ巶鍚嶇О', + align: 'center', + dataIndex: 'factoryName' + }, + { + title: '瀹㈡埛鍨嬪彿', + align: 'center', + dataIndex: 'customerOrderModel' + }, + { + title: '瀹㈡埛鍚嶇О', + align: 'center', + dataIndex: 'customer' + }, + { + title: '澶囨敞', + align: 'center', + dataIndex: 'remark' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + mesWorkReporting: { + loading: false, + dataSource: [], + columns: [ + { + title: '璁㈠崟鍙�', + key: 'orderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '宸ュ崟鍙�', + key: 'workOrderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '浜х嚎鍚嶇О', + key: 'factoryName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎵规鍙�', + key: 'batchNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎵樺彿', + key: 'palletNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鏁伴噺', + key: 'quantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎶ュ伐浜�', + key: 'reporter', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎶ュ伐鏃堕棿', + key: 'reportTime', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '绾胯竟浠撳悕绉�', + key: 'warehouseName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎴愬搧涓嬬嚎鎵撳嵃鐘舵��', + key: 'printStatus', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + ] + }, + mesTransferOrderPrint: { + loading: false, + dataSource: [], + columns: [ + { + title: '璁㈠崟鍙�', + key: 'orderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '绉诲簱鍗曞彿', + key: 'workOrderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '绉诲簱绫诲瀷', + key: 'orderCategory', + 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: 'palletNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鏁伴噺', + key: 'quantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎿嶄綔浜�', + key: 'operator', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎿嶄綔鏃堕棿', + key: 'operateTime', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '绉诲簱鍗曠姸鎬�', + key: 'orderStatus', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + ] + }, + url: { + list: '/mesproductionwork/mesProductionOrder/list', + delete: '/mesproductionwork/mesProductionOrder/delete', + deleteBatch: '/mesproductionwork/mesProductionOrder/deleteBatch', + exportXlsUrl: '/mesproductionwork/mesProductionOrder/exportXls', + importExcelUrl: 'mesproductionwork/mesProductionOrder/importExcel', + queryWorkReportingByOrderId:'/mesworkreporting/mesWorkReporting/queryWorkReportingByOrderId', + queryOrderPrintByOrderId:'/mestransferorderprint/mesTransferOrderPrint/queryOrderPrintByOrderId' + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + //mesWorkReporting,mesTransferOrderPrint + async onSelectChange(selectedRowKeys) { + this.mesWorkReporting.loading = true + this.mesTransferOrderPrint.loading = true + + this.selectedRowKeys = selectedRowKeys + this.mesWorkReporting.dataSource = [] + this.mesTransferOrderPrint.dataSource = [] + + if (selectedRowKeys.length > 0) { + const selectedId = selectedRowKeys[0] // 閫変腑琛岀殑id + let parm = { + 'orderId': selectedId + } + const mesWorkReportingResult = await getAction(this.url.queryWorkReportingByOrderId, parm) + const mesTransferOrderPrintResult = await getAction(this.url.queryOrderPrintByOrderId, parm) + this.mesWorkReporting.dataSource = mesWorkReportingResult.result + this.mesTransferOrderPrint.dataSource = mesTransferOrderPrintResult.result + this.mesWorkReporting.loading = false + this.mesTransferOrderPrint.loading = false + } + }, + + initDictConfig() { + }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'int', value: 'delFlag', text: '鍒犻櫎鏍囪', dictCode: '' }) + fieldList.push({ type: 'string', value: 'orderCode', text: '鐢熶骇璁㈠崟鍙�', dictCode: '' }) + fieldList.push({ type: 'string', value: 'orderCategory', text: '璁㈠崟绫诲瀷', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialNumber', text: '鐗╂枡缂栧彿', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialName', text: '鐗╂枡鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'datetime', value: 'planStart', text: '璁″垝寮�濮嬫棩鏈�' }) + fieldList.push({ type: 'datetime', value: 'planEnd', text: '璁″垝缁撴潫鏃ユ湡' }) + fieldList.push({ type: 'double', value: 'orderQuantity', text: '璁㈠崟鏁伴噺', dictCode: '' }) + fieldList.push({ type: 'string', value: 'productionUnit', text: '浜у搧鍗曚綅', dictCode: 'production_unit' }) + fieldList.push({ type: 'string', value: 'orderStatus', text: '璁㈠崟鐘舵��', dictCode: 'order_status' }) + fieldList.push({ type: 'string', value: 'priority', text: '浼樺厛绾�', dictCode: 'priority' }) + fieldList.push({ type: 'string', value: 'processRoute', text: '璁″垝宸ヨ壓璺嚎', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialListCode', text: '璁″垝鐗╂枡娓呭崟', dictCode: '' }) + fieldList.push({ type: 'string', value: 'factoryCode', text: '宸ュ巶缂栫爜', dictCode: '' }) + fieldList.push({ type: 'string', value: 'factoryName', text: '宸ュ巶鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'string', value: 'customerOrderModel', text: '瀹㈡埛鍨嬪彿', dictCode: '' }) + fieldList.push({ type: 'string', value: 'customer', text: '瀹㈡埛鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'string', value: 'remark', text: '澶囨敞', dictCode: '' }) + this.superFieldList = fieldList + } + } +} +</script> +<style scoped> +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/mes/MesProductionWorkOrderListView.vue b/src/views/mes/MesProductionWorkOrderListView.vue index 4225fef..f9e9b5f 100644 --- a/src/views/mes/MesProductionWorkOrderListView.vue +++ b/src/views/mes/MesProductionWorkOrderListView.vue @@ -16,12 +16,14 @@ </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="宸ュ崟鐘舵��"> - <j-dict-select-tag dictCode="work_order_status" placeholder="璇疯緭鍏ュ伐鍗曠姸鎬�" v-model="queryParam.workOrderStatus"></j-dict-select-tag> + <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> + <j-select-user-by-dep placeholder="璇疯緭鍏ラ噸鍙戝竷浜�" + v-model="queryParam.republisher"></j-select-user-by-dep> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> @@ -33,56 +35,44 @@ </a-row> </a-form> </div> + <a-spin :spinning="confirmLoading"> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type: 'radio'}" + class="j-table-force-nowrap" + @change="handleTableChange"> - <div class="table-operator"> - <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> - <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> + <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> - <a-table - ref="table" - size="middle" - :scroll="{x:true}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - 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> - - <span slot="action" slot-scope="text, record"> + <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">缂栬緫</a> <a-divider type="vertical" /> @@ -100,167 +90,652 @@ </a-menu> </a-dropdown> </span> - - </a-table> - </div> - + </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]" + :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> + </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]" + :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> + </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]" + :loading="mesKittingCompletenessCheck.loading" + :columns="mesKittingCompletenessCheck.columns" + :dataSource="mesKittingCompletenessCheck.dataSource" + :maxHeight="300" + :rowNumber="true" + :rowSelection="true" + :toolbar="false" + /> + </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> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import MesProductionWorkOrderModal from './modules/MesProductionWorkOrderModal' - import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' +import '@/assets/less/TableExpand.less' +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 } 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' - export default { - name: 'MesProductionWorkOrderList', - mixins:[JeecgListMixin, mixinDevice], - components: { - MesProductionWorkOrderModal - }, - data () { - return { - description: '鎺掍骇宸ュ崟绠$悊椤甸潰', - // 琛ㄥご +export default { + name: 'MesProductionWorkOrderList', + mixins: [JeecgListMixin, mixinDevice, JVxeTableModelMixin, JVXETypes], + components: { + MesProductionWorkOrderModal, + MesProductionOrderModal, + MesMaterialUnloadingList, + MesMaterialTransferDetailList + }, + data() { + return { + description: '鎺掍骇宸ュ崟绠$悊椤甸潰', + activeKey : 'mesWorkReporting', + // 宸ュ崟鎶ュ伐 + refKeys1: ['mesWorkReporting'], + tableKeys1: ['mesWorkReporting'], + //鐗╂枡鎷夊姩鐢宠 + refKeys2: ['mesMaterialTransferRequest'], + tableKeys2: ['mesMaterialTransferRequest'], + //涓婃枡 + refKeys3: ['mesMaterialLoading'], + tableKeys3: ['mesMaterialLoading'], + //榻愬鎬ф鏌ヨ褰� + refKeys4: ['mesKittingCompletenessCheck'], + tableKeys4: ['mesKittingCompletenessCheck'], + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '宸ュ崟鍙�(浠诲姟鍙�)', + align: 'center', + dataIndex: 'workOrderCode' + }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '璁″垝鐢熶骇鏁伴噺', + align: 'center', + dataIndex: 'planQuantity' + }, + { + title: '浜х嚎(鍐椾綑)', + align: 'center', + dataIndex: 'factoryId_dictText' + }, + { + title: '鐝粍', + align: 'center', + dataIndex: 'groupId_dictText' + }, + { + title: '鐝(鍐椾綑)', + align: 'center', + dataIndex: 'shiftId_dictText' + }, + { + title: '鎺掍骇鏃ユ湡', + align: 'center', + dataIndex: 'workOrderDate' + }, + { + title: '宸ュ崟鐘舵��', + align: 'center', + dataIndex: 'workOrderStatus_dictText' + }, + { + title: '瀹為檯鎶ュ伐鏁伴噺', + align: 'center', + dataIndex: 'actualQuantity' + }, + { + title: '鍙戝竷浜�', + align: 'center', + dataIndex: 'publisher' + }, + { + title: '鍙戝竷鏃堕棿', + align: 'center', + dataIndex: 'publishTime' + }, + { + title: '閲嶅彂甯冧汉', + align: 'center', + dataIndex: 'republisher' + }, + { + title: '閲嶅彂甯冩椂闂�', + align: 'center', + dataIndex: 'republishTime' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + mesWorkReporting: { + loading: false, + dataSource: [], columns: [ { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } + title: '鎿嶄綔', + key: 'action', + type: JVXETypes.slot, + slotName: 'showDetail', + width: '120px', + align: 'center' }, { - title:'宸ュ崟鍙�(浠诲姟鍙�)', - align:"center", - dataIndex: 'workOrderCode' + title: '璁㈠崟鍙�', + key: 'orderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'鐗╂枡缂栫爜', - align:"center", - dataIndex: 'materialNumber' + title: '宸ュ崟鍙�', + key: 'workOrderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'鐗╂枡鍚嶇О', - align:"center", - dataIndex: 'materialName' + title: '浜х嚎鍚嶇О', + key: 'factoryName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'璁″垝鐢熶骇鏁伴噺', - align:"center", - dataIndex: 'planQuantity' + title: '鎵规鍙�', + key: 'batchNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'浜х嚎(鍐椾綑)', - align:"center", - dataIndex: 'factoryId_dictText' + title: '鎵樺彿', + key: 'palletNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'鐝粍', - align:"center", - dataIndex: 'groupId_dictText' + title: '鏁伴噺', + key: 'quantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'鐝(鍐椾綑)', - align:"center", - dataIndex: 'shiftId_dictText' + title: '鎶ュ伐浜�', + key: 'reporter', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'鎺掍骇鏃ユ湡', - align:"center", - dataIndex: 'workOrderDate' + title: '鎶ュ伐鏃堕棿', + key: 'reportTime', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'宸ュ崟鐘舵��', - align:"center", - dataIndex: 'workOrderStatus_dictText' + title: '绾胯竟浠撳悕绉�', + key: 'warehouseName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, { - title:'瀹為檯鎶ュ伐鏁伴噺', - align:"center", - dataIndex: 'actualQuantity' + title: '鎴愬搧涓嬬嚎鎵撳嵃鐘舵��', + key: 'printStatus', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' }, - { - title:'鍙戝竷浜�', - align:"center", - dataIndex: 'publisher' - }, - { - title:'鍙戝竷鏃堕棿', - align:"center", - dataIndex: 'publishTime' - }, - { - title:'閲嶅彂甯冧汉', - align:"center", - dataIndex: 'republisher' - }, - { - title:'閲嶅彂甯冩椂闂�', - align:"center", - dataIndex: 'republishTime' - }, + ] + }, + mesMaterialTransferRequest: { + loading: false, + dataSource: [], + columns: [ { title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } - } - ], - url: { - list: "/mesproductionworkorder/mesProductionWorkOrder/list", - delete: "/mesproductionworkorder/mesProductionWorkOrder/delete", - deleteBatch: "/mesproductionworkorder/mesProductionWorkOrder/deleteBatch", - exportXlsUrl: "/mesproductionworkorder/mesProductionWorkOrder/exportXls", - importExcelUrl: "mesproductionworkorder/mesProductionWorkOrder/importExcel", + 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: '' + }, + ] + }, + mesMaterialLoading: { + loading: false, + dataSource: [], + columns: [ + { + title: '鎿嶄綔', + key: 'action', + type: JVXETypes.slot, + slotName: 'showUnloadingDetail', + width: '120px', + align: 'center' + }, + { + title: '宸ュ崟鍙�', + key: 'workOrderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '璁惧ID', + key: 'equipmentId', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '宸ュ簭缂栫爜', + key: 'processCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '宸ュ簭鍚嶇О', + key: 'processName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鐗╂枡缂栫爜', + key: 'materialNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鐗╂枡鍚嶇О', + key: 'materialName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鎵规鍙�', + key: 'batchNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鏁伴噺', + key: 'quantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鍓╀綑鏁伴噺', + key: 'remainingQuantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + ] + }, + mesKittingCompletenessCheck: { + loading: false, + dataSource: [], + columns: [ + { + title: '宸ュ崟鍙�', + key: 'workOrderCode', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鐗╂枡缂栧彿', + key: 'materialNumber', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鐗╂枡鍚嶇О', + key: 'materialName', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '闇�姹傛暟閲�', + key: 'requiredQuantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '瀹為檯鏁伴噺', + key: 'actualQuantity', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + { + title: '鏄惁榻愬', + key: 'checkFlag', + type: JVXETypes.input, + width: '200px', + placeholder: '璇疯緭鍏�${title}', + defaultValue: '' + }, + ] + }, + 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', + queryLoadingByWorkOrderId:'/mes/mesMaterialLoading/queryLoadingByWorkOrderId', + queryCompletenessCheckByWorkOrderId:'/meskittingcompletenesscheck/mesKittingCompletenessCheck/queryCompletenessCheckByWorkOrderId', + queryOrderById:'/mesproductionwork/mesProductionOrder/queryById', + queryUnloadingByLoadingId:'/mes/mesMaterialUnloading/queryUnloadingByLoadingId', + queryTransferDetailBy:'/mes/mesMaterialTransferDetail/queryTransferDetailBy' + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + 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}) + this.$refs.MesMaterialUnloadingList.visible = true + this.$refs.MesMaterialUnloadingList.dataSource = unloadingResult.result.records + }, + async handleOrderDetail(row){ + const orderResult = await getAction(this.url.queryOrderById,{'id':row.orderId}) + this.$refs.MesProductionOrderModal.edit(orderResult.result) + this.$refs.MesProductionOrderModal.title="璁㈠崟璇︽儏"; + this.$refs.MesProductionOrderModal.disableSubmit = true; + }, + async onSelectChange(selectedRowKeys){ + //mesWorkReporting,mesMaterialTransferRequest,mesMaterialLoading,mesKittingCompletenessCheck + this.mesWorkReporting.loading = true + this.mesMaterialTransferRequest.loading = true + this.mesMaterialLoading.loading = true + this.mesKittingCompletenessCheck.loading = true - }, - dictOptions:{}, - superFieldList:[], + this.selectedRowKeys = selectedRowKeys + this.mesWorkReporting.dataSource=[] + this.mesMaterialTransferRequest.dataSource=[] + this.mesMaterialLoading.dataSource=[] + this.mesKittingCompletenessCheck.dataSource=[] + if (selectedRowKeys.length > 0) { + const selectedId = selectedRowKeys[0] // 閫変腑琛岀殑id + let parm = { + '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 } }, - created() { - this.getSuperFieldList(); + initDictConfig() { }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - }, - }, - methods: { - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'int',value:'delFlag',text:'鍒犻櫎鏍囪',dictCode:''}) - fieldList.push({type:'string',value:'workOrderCode',text:'宸ュ崟鍙�(浠诲姟鍙�)',dictCode:''}) - fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''}) - fieldList.push({type:'double',value:'planQuantity',text:'璁″垝鐢熶骇鏁伴噺',dictCode:''}) - fieldList.push({type:'string',value:'factoryId',text:'浜х嚎ID(鍐椾綑)',dictCode:''}) - fieldList.push({type:'string',value:'groupId',text:'鐝粍ID',dictCode:''}) - fieldList.push({type:'string',value:'shiftId',text:'鐝ID(鍐椾綑)',dictCode:''}) - fieldList.push({type:'datetime',value:'workOrderDate',text:'鎺掍骇鏃ユ湡'}) - fieldList.push({type:'string',value:'workOrderStatus',text:'宸ュ崟鐘舵��',dictCode:'work_order_status'}) - fieldList.push({type:'double',value:'actualQuantity',text:'瀹為檯鎶ュ伐鏁伴噺',dictCode:''}) - fieldList.push({type:'string',value:'publisher',text:'鍙戝竷浜�',dictCode:''}) - fieldList.push({type:'datetime',value:'publishTime',text:'鍙戝竷鏃堕棿'}) - fieldList.push({type:'string',value:'republisher',text:'閲嶅彂甯冧汉',dictCode:''}) - fieldList.push({type:'datetime',value:'republishTime',text:'閲嶅彂甯冩椂闂�'}) - this.superFieldList = fieldList - } + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'int', value: 'delFlag', text: '鍒犻櫎鏍囪', dictCode: '' }) + fieldList.push({ type: 'string', value: 'workOrderCode', text: '宸ュ崟鍙�(浠诲姟鍙�)', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialNumber', text: '鐗╂枡缂栫爜', dictCode: '' }) + fieldList.push({ type: 'string', value: 'materialName', text: '鐗╂枡鍚嶇О', dictCode: '' }) + fieldList.push({ type: 'double', value: 'planQuantity', text: '璁″垝鐢熶骇鏁伴噺', dictCode: '' }) + fieldList.push({ type: 'string', value: 'factoryId', text: '浜х嚎ID(鍐椾綑)', dictCode: '' }) + fieldList.push({ type: 'string', value: 'groupId', text: '鐝粍ID', dictCode: '' }) + fieldList.push({ type: 'string', value: 'shiftId', text: '鐝ID(鍐椾綑)', dictCode: '' }) + fieldList.push({ type: 'datetime', value: 'workOrderDate', text: '鎺掍骇鏃ユ湡' }) + fieldList.push({ type: 'string', value: 'workOrderStatus', text: '宸ュ崟鐘舵��', dictCode: 'work_order_status' }) + fieldList.push({ type: 'double', value: 'actualQuantity', text: '瀹為檯鎶ュ伐鏁伴噺', dictCode: '' }) + fieldList.push({ type: 'string', value: 'publisher', text: '鍙戝竷浜�', dictCode: '' }) + fieldList.push({ type: 'datetime', value: 'publishTime', text: '鍙戝竷鏃堕棿' }) + fieldList.push({ type: 'string', value: 'republisher', text: '閲嶅彂甯冧汉', dictCode: '' }) + fieldList.push({ type: 'datetime', value: 'republishTime', text: '閲嶅彂甯冩椂闂�' }) + this.superFieldList = fieldList } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file -- Gitblit v1.9.3