From 255ea18d2a0f7b991e28db72ee2cda49f6d7ea90 Mon Sep 17 00:00:00 2001 From: houshuai <17802598606@163.com> Date: 星期四, 10 七月 2025 14:58:48 +0800 Subject: [PATCH] 生产管控模块 基本搭建4.1 --- src/views/mes/MesProductionOrderListView.vue | 551 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 551 insertions(+), 0 deletions(-) diff --git a/src/views/mes/MesProductionOrderListView.vue b/src/views/mes/MesProductionOrderListView.vue new file mode 100644 index 0000000..eb8d92a --- /dev/null +++ b/src/views/mes/MesProductionOrderListView.vue @@ -0,0 +1,551 @@ +<template> + <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-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.orderStatus"></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 -- Gitblit v1.9.3