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