From a8c8b16ab3526c7c68b5a7f7ed9fdc022c1edd57 Mon Sep 17 00:00:00 2001
From: houshuai <17802598606@163.com>
Date: 星期五, 04 七月 2025 15:56:59 +0800
Subject: [PATCH] 生产管控模块 基本搭建
---
src/views/mes/MesMaterialLoadingList.vue | 207 +++
src/views/mes/modules/MesKittingCompletenessCheckModal.vue | 60 +
src/views/mes/modules/MesWorkReportingModal.vue | 60 +
src/views/mes/modules/MesMaterialTransferRequestForm.vue | 154 ++
src/views/mes/modules/MesTransferOrderPrintForm.vue | 154 ++
src/views/mes/modules/MesKittingCompletenessCheckForm.vue | 129 ++
src/views/mes/MesMaterialUnloadingList.vue | 201 +++
src/views/mes/modules/MesProductionOrderForm.vue | 189 +++
src/views/mes/modules/MesTransferOrderPrintModal.vue | 60 +
src/views/mes/modules/MesProductionWorkOrderForm.vue | 174 ++
src/views/mes/MesMaterialTransferRequestList.vue | 232 +++
src/views/mes/modules/MesMaterialLoadingModal.vue | 60 +
src/views/mes/modules/MesWorkReportingForm.vue | 154 ++
src/views/mes/MesTransferOrderPrintList.vue | 232 +++
src/views/mes/modules/MesProductionWorkOrderModal.vue | 60 +
src/views/mes/modules/MesProductionOrderModal.vue | 60 +
src/views/mes/MesKittingCompletenessCheckList.vue | 201 +++
src/views/mes/modules/MesMaterialUnloadingForm.vue | 129 ++
src/views/mes/MesProductionWorkOrderList.vue | 256 ++++
src/views/mes/MesProductionOrderList.vue | 274 ++++
src/views/mes/MesWorkReportingList.vue | 232 +++
src/views/mes/modules/MesMaterialTransferRequestModal.vue | 60 +
src/views/mes/modules/MesMaterialUnloadingModal.vue | 60 +
src/views/mes/modules/MesMaterialLoadingForm.vue | 134 ++
24 files changed, 3,532 insertions(+), 0 deletions(-)
diff --git a/src/views/mes/MesKittingCompletenessCheckList.vue b/src/views/mes/MesKittingCompletenessCheckList.vue
new file mode 100644
index 0000000..f6842b9
--- /dev/null
+++ b/src/views/mes/MesKittingCompletenessCheckList.vue
@@ -0,0 +1,201 @@
+<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>
+ </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>
+
+ <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>
+
+ <mes-kitting-completeness-check-modal ref="modalForm" @ok="modalFormOk"></mes-kitting-completeness-check-modal>
+ </a-card>
+</template>
+
+<script>
+
+ import '@/assets/less/TableExpand.less'
+ import { mixinDevice } from '@/utils/mixin'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+ import MesKittingCompletenessCheckModal from './modules/MesKittingCompletenessCheckModal'
+
+ export default {
+ name: 'MesKittingCompletenessCheckList',
+ mixins:[JeecgListMixin, mixinDevice],
+ components: {
+ MesKittingCompletenessCheckModal
+ },
+ data () {
+ return {
+ description: '榻愬鎬ф鏌ヨ褰曠鐞嗛〉闈�',
+ // 琛ㄥご
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key:'rowIndex',
+ width:60,
+ align:"center",
+ customRender:function (t,r,index) {
+ return parseInt(index)+1;
+ }
+ },
+ {
+ title:'宸ュ崟ID',
+ align:"center",
+ dataIndex: 'workOrderId'
+ },
+ {
+ title:'鐗╂枡缂栧彿',
+ align:"center",
+ dataIndex: 'materialNumber'
+ },
+ {
+ title:'鐗╂枡鍚嶇О',
+ align:"center",
+ dataIndex: 'materialName'
+ },
+ {
+ title:'闇�姹傛暟閲�',
+ align:"center",
+ dataIndex: 'requiredQuantity'
+ },
+ {
+ title:'瀹為檯鏁伴噺',
+ align:"center",
+ dataIndex: 'actualQuantity'
+ },
+ {
+ title:'鏄惁榻愬',
+ align:"center",
+ dataIndex: 'checkFlag'
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align:"center",
+ fixed:"right",
+ width:147,
+ scopedSlots: { customRender: 'action' }
+ }
+ ],
+ url: {
+ list: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/list",
+ delete: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/delete",
+ deleteBatch: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/deleteBatch",
+ exportXlsUrl: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/exportXls",
+ importExcelUrl: "meskittingcompletenesscheck/mesKittingCompletenessCheck/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ created() {
+ this.getSuperFieldList();
+ },
+ computed: {
+ importExcelUrl: function(){
+ return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+ },
+ },
+ methods: {
+ initDictConfig(){
+ },
+ getSuperFieldList(){
+ let fieldList=[];
+ fieldList.push({type:'string',value:'workOrderId',text:'宸ュ崟ID',dictCode:''})
+ fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栧彿',dictCode:''})
+ fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''})
+ fieldList.push({type:'double',value:'requiredQuantity',text:'闇�姹傛暟閲�',dictCode:''})
+ fieldList.push({type:'double',value:'actualQuantity',text:'瀹為檯鏁伴噺',dictCode:''})
+ fieldList.push({type:'string',value:'checkFlag',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/MesMaterialLoadingList.vue b/src/views/mes/MesMaterialLoadingList.vue
new file mode 100644
index 0000000..06cd945
--- /dev/null
+++ b/src/views/mes/MesMaterialLoadingList.vue
@@ -0,0 +1,207 @@
+<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>
+ </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>
+
+ <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>
+
+ <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'
+
+ 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: '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: "/mesmaterialloading/mesMaterialLoading/list",
+ delete: "/mesmaterialloading/mesMaterialLoading/delete",
+ deleteBatch: "/mesmaterialloading/mesMaterialLoading/deleteBatch",
+ exportXlsUrl: "/mesmaterialloading/mesMaterialLoading/exportXls",
+ importExcelUrl: "mesmaterialloading/mesMaterialLoading/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ 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:'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';
+</style>
\ No newline at end of file
diff --git a/src/views/mes/MesMaterialTransferRequestList.vue b/src/views/mes/MesMaterialTransferRequestList.vue
new file mode 100644
index 0000000..b370b82
--- /dev/null
+++ b/src/views/mes/MesMaterialTransferRequestList.vue
@@ -0,0 +1,232 @@
+<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>
+ </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>
+
+ <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>
+
+ <mes-material-transfer-request-modal ref="modalForm" @ok="modalFormOk"></mes-material-transfer-request-modal>
+ </a-card>
+</template>
+
+<script>
+
+ import '@/assets/less/TableExpand.less'
+ import { mixinDevice } from '@/utils/mixin'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+ import MesMaterialTransferRequestModal from './modules/MesMaterialTransferRequestModal'
+ import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+
+ export default {
+ name: 'MesMaterialTransferRequestList',
+ mixins:[JeecgListMixin, mixinDevice],
+ components: {
+ MesMaterialTransferRequestModal
+ },
+ 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:'鎷夊姩鍗曞彿',
+ align:"center",
+ dataIndex: 'requestCode'
+ },
+ {
+ title:'宸ュ崟ID',
+ align:"center",
+ dataIndex: 'workOrderId'
+ },
+ {
+ title:'SAP棰勭暀鍙�',
+ align:"center",
+ dataIndex: 'reservationCode'
+ },
+ {
+ title:'鍙戝竷鐘舵��',
+ align:"center",
+ dataIndex: 'publishStatus_dictText'
+ },
+ {
+ title:'璇锋眰鐘舵��',
+ align:"center",
+ dataIndex: 'requestStatus_dictText'
+ },
+ {
+ title:'璇锋眰鏃堕棿',
+ align:"center",
+ dataIndex: 'requestTime'
+ },
+ {
+ title:'鍘熷簱瀛樺湴',
+ align:"center",
+ dataIndex: 'originalWarehouseId'
+ },
+ {
+ title:'鐩爣搴撳瓨鍦�',
+ align:"center",
+ dataIndex: 'targetWarehouseId'
+ },
+ {
+ title:'浼樺厛绾э紙鎷夊姩绫诲瀷锛�',
+ align:"center",
+ dataIndex: 'priority_dictText'
+ },
+ {
+ title:'鏈�鏅氶厤閫佹椂闂�',
+ align:"center",
+ dataIndex: 'latestDeliveryTime'
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align:"center",
+ fixed:"right",
+ width:147,
+ scopedSlots: { customRender: 'action' }
+ }
+ ],
+ url: {
+ list: "/mesmaterialtransferrequest/mesMaterialTransferRequest/list",
+ delete: "/mesmaterialtransferrequest/mesMaterialTransferRequest/delete",
+ deleteBatch: "/mesmaterialtransferrequest/mesMaterialTransferRequest/deleteBatch",
+ exportXlsUrl: "/mesmaterialtransferrequest/mesMaterialTransferRequest/exportXls",
+ importExcelUrl: "mesmaterialtransferrequest/mesMaterialTransferRequest/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ 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:'requestCode',text:'鎷夊姩鍗曞彿',dictCode:''})
+ fieldList.push({type:'string',value:'workOrderId',text:'宸ュ崟ID',dictCode:''})
+ fieldList.push({type:'string',value:'reservationCode',text:'SAP棰勭暀鍙�',dictCode:''})
+ fieldList.push({type:'string',value:'publishStatus',text:'鍙戝竷鐘舵��',dictCode:'publish_status'})
+ fieldList.push({type:'string',value:'requestStatus',text:'璇锋眰鐘舵��',dictCode:'request_status'})
+ fieldList.push({type:'datetime',value:'requestTime',text:'璇锋眰鏃堕棿'})
+ fieldList.push({type:'string',value:'originalWarehouseId',text:'鍘熷簱瀛樺湴',dictCode:''})
+ fieldList.push({type:'string',value:'targetWarehouseId',text:'鐩爣搴撳瓨鍦�',dictCode:''})
+ fieldList.push({type:'string',value:'priority',text:'浼樺厛绾э紙鎷夊姩绫诲瀷锛�',dictCode:'priority'})
+ fieldList.push({type:'datetime',value:'latestDeliveryTime',text:'鏈�鏅氶厤閫佹椂闂�'})
+ this.superFieldList = fieldList
+ }
+ }
+ }
+</script>
+<style scoped>
+ @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
new file mode 100644
index 0000000..c4eb7a3
--- /dev/null
+++ b/src/views/mes/MesMaterialUnloadingList.vue
@@ -0,0 +1,201 @@
+<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>
+ </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>
+
+ <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>
+
+ <mes-material-unloading-modal ref="modalForm" @ok="modalFormOk"></mes-material-unloading-modal>
+ </a-card>
+</template>
+
+<script>
+
+ 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' }
+ }
+ ],
+ 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: {
+ 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';
+</style>
\ No newline at end of file
diff --git a/src/views/mes/MesProductionOrderList.vue b/src/views/mes/MesProductionOrderList.vue
new file mode 100644
index 0000000..03f21f5
--- /dev/null
+++ b/src/views/mes/MesProductionOrderList.vue
@@ -0,0 +1,274 @@
+<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('SAP鐢熶骇璁㈠崟')">瀵煎嚭</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>
+ </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>
+
+ <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>
+
+ <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'
+
+ export default {
+ name: 'MesProductionOrderList',
+ mixins:[JeecgListMixin, mixinDevice],
+ components: {
+ MesProductionOrderModal
+ },
+ data () {
+ return {
+ description: 'SAP鐢熶骇璁㈠崟绠$悊椤甸潰',
+ // 琛ㄥご
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key:'rowIndex',
+ width:60,
+ align:"center",
+ customRender:function (t,r,index) {
+ return parseInt(index)+1;
+ }
+ },
+ {
+ title:'鍒犻櫎鏍囪',
+ align:"center",
+ dataIndex: 'delFlag'
+ },
+ {
+ 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' }
+ }
+ ],
+ url: {
+ list: "/mesproductionwork/mesProductionOrder/list",
+ delete: "/mesproductionwork/mesProductionOrder/delete",
+ deleteBatch: "/mesproductionwork/mesProductionOrder/deleteBatch",
+ exportXlsUrl: "/mesproductionwork/mesProductionOrder/exportXls",
+ importExcelUrl: "mesproductionwork/mesProductionOrder/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ 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:'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/MesProductionWorkOrderList.vue b/src/views/mes/MesProductionWorkOrderList.vue
new file mode 100644
index 0000000..46029a3
--- /dev/null
+++ b/src/views/mes/MesProductionWorkOrderList.vue
@@ -0,0 +1,256 @@
+<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>
+ </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>
+
+ <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>
+
+ <mes-production-work-order-modal ref="modalForm" @ok="modalFormOk"></mes-production-work-order-modal>
+ </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'
+
+ export default {
+ name: 'MesProductionWorkOrderList',
+ mixins:[JeecgListMixin, mixinDevice],
+ components: {
+ MesProductionWorkOrderModal
+ },
+ 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:'宸ュ崟鍙�(浠诲姟鍙�)',
+ align:"center",
+ dataIndex: 'workOrderCode'
+ },
+ {
+ title:'鐗╂枡缂栫爜',
+ align:"center",
+ dataIndex: 'materialNumber'
+ },
+ {
+ title:'鐗╂枡鍚嶇О',
+ align:"center",
+ dataIndex: 'materialName'
+ },
+ {
+ title:'璁″垝鐢熶骇鏁伴噺',
+ align:"center",
+ dataIndex: 'planQuantity'
+ },
+ {
+ title:'浜х嚎ID(鍐椾綑)',
+ align:"center",
+ dataIndex: 'factoryId'
+ },
+ {
+ title:'鐝粍ID',
+ align:"center",
+ dataIndex: 'groupId'
+ },
+ {
+ title:'鐝ID(鍐椾綑)',
+ align:"center",
+ dataIndex: 'shiftId'
+ },
+ {
+ 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' }
+ }
+ ],
+ url: {
+ list: "/mesproductionworkorder/mesProductionWorkOrder/list",
+ delete: "/mesproductionworkorder/mesProductionWorkOrder/delete",
+ deleteBatch: "/mesproductionworkorder/mesProductionWorkOrder/deleteBatch",
+ exportXlsUrl: "/mesproductionworkorder/mesProductionWorkOrder/exportXls",
+ importExcelUrl: "mesproductionworkorder/mesProductionWorkOrder/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ 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:'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';
+</style>
\ No newline at end of file
diff --git a/src/views/mes/MesTransferOrderPrintList.vue b/src/views/mes/MesTransferOrderPrintList.vue
new file mode 100644
index 0000000..9570e0e
--- /dev/null
+++ b/src/views/mes/MesTransferOrderPrintList.vue
@@ -0,0 +1,232 @@
+<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>
+ </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>
+
+ <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>
+
+ <mes-transfer-order-print-modal ref="modalForm" @ok="modalFormOk"></mes-transfer-order-print-modal>
+ </a-card>
+</template>
+
+<script>
+
+ import '@/assets/less/TableExpand.less'
+ import { mixinDevice } from '@/utils/mixin'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+ import MesTransferOrderPrintModal from './modules/MesTransferOrderPrintModal'
+ import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+
+ export default {
+ name: 'MesTransferOrderPrintList',
+ mixins:[JeecgListMixin, mixinDevice],
+ components: {
+ MesTransferOrderPrintModal
+ },
+ 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: 'orderId'
+ },
+ {
+ title:'绉诲簱鍗曞彿',
+ align:"center",
+ dataIndex: 'workOrderCode'
+ },
+ {
+ title:'绉诲簱绫诲瀷',
+ align:"center",
+ dataIndex: 'orderCategory_dictText'
+ },
+ {
+ title:'鍘熷簱瀛樺湴',
+ align:"center",
+ dataIndex: 'originalWarehouseId'
+ },
+ {
+ title:'鐩爣搴撳瓨鍦�',
+ align:"center",
+ dataIndex: 'targetWarehouseId'
+ },
+ {
+ title:'鎵樺彿',
+ align:"center",
+ dataIndex: 'palletNumber'
+ },
+ {
+ title:'鏁伴噺',
+ align:"center",
+ dataIndex: 'quantity'
+ },
+ {
+ title:'鎿嶄綔浜�',
+ align:"center",
+ dataIndex: 'operator'
+ },
+ {
+ title:'鎿嶄綔鏃堕棿',
+ align:"center",
+ dataIndex: 'operateTime'
+ },
+ {
+ title:'绉诲簱鍗曠姸鎬�',
+ align:"center",
+ dataIndex: 'orderStatus_dictText'
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align:"center",
+ fixed:"right",
+ width:147,
+ scopedSlots: { customRender: 'action' }
+ }
+ ],
+ url: {
+ list: "/mestransferorderprint/mesTransferOrderPrint/list",
+ delete: "/mestransferorderprint/mesTransferOrderPrint/delete",
+ deleteBatch: "/mestransferorderprint/mesTransferOrderPrint/deleteBatch",
+ exportXlsUrl: "/mestransferorderprint/mesTransferOrderPrint/exportXls",
+ importExcelUrl: "mestransferorderprint/mesTransferOrderPrint/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ 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:'orderId',text:'鐢熶骇璁㈠崟ID',dictCode:''})
+ fieldList.push({type:'string',value:'workOrderCode',text:'绉诲簱鍗曞彿',dictCode:''})
+ fieldList.push({type:'string',value:'orderCategory',text:'绉诲簱绫诲瀷',dictCode:'order_category'})
+ fieldList.push({type:'string',value:'originalWarehouseId',text:'鍘熷簱瀛樺湴',dictCode:''})
+ fieldList.push({type:'string',value:'targetWarehouseId',text:'鐩爣搴撳瓨鍦�',dictCode:''})
+ fieldList.push({type:'string',value:'palletNumber',text:'鎵樺彿',dictCode:''})
+ fieldList.push({type:'double',value:'quantity',text:'鏁伴噺',dictCode:''})
+ fieldList.push({type:'string',value:'operator',text:'鎿嶄綔浜�',dictCode:''})
+ fieldList.push({type:'datetime',value:'operateTime',text:'鎿嶄綔鏃堕棿'})
+ fieldList.push({type:'string',value:'orderStatus',text:'绉诲簱鍗曠姸鎬�',dictCode:'order_status'})
+ this.superFieldList = fieldList
+ }
+ }
+ }
+</script>
+<style scoped>
+ @import '~@assets/less/common.less';
+</style>
\ No newline at end of file
diff --git a/src/views/mes/MesWorkReportingList.vue b/src/views/mes/MesWorkReportingList.vue
new file mode 100644
index 0000000..142f6f5
--- /dev/null
+++ b/src/views/mes/MesWorkReportingList.vue
@@ -0,0 +1,232 @@
+<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>
+ </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>
+
+ <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>
+
+ <mes-work-reporting-modal ref="modalForm" @ok="modalFormOk"></mes-work-reporting-modal>
+ </a-card>
+</template>
+
+<script>
+
+ import '@/assets/less/TableExpand.less'
+ import { mixinDevice } from '@/utils/mixin'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+ import MesWorkReportingModal from './modules/MesWorkReportingModal'
+ import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+
+ export default {
+ name: 'MesWorkReportingList',
+ mixins:[JeecgListMixin, mixinDevice],
+ components: {
+ MesWorkReportingModal
+ },
+ 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: 'orderId'
+ },
+ {
+ title:'宸ュ崟ID',
+ align:"center",
+ dataIndex: 'workOrderId'
+ },
+ {
+ title:'浜х嚎ID',
+ align:"center",
+ dataIndex: 'factoryId'
+ },
+ {
+ title:'鎵规鍙�',
+ align:"center",
+ dataIndex: 'batchNumber'
+ },
+ {
+ title:'鎵樺彿',
+ align:"center",
+ dataIndex: 'palletNumber'
+ },
+ {
+ title:'鏁伴噺',
+ align:"center",
+ dataIndex: 'quantity'
+ },
+ {
+ title:'鎶ュ伐浜�',
+ align:"center",
+ dataIndex: 'reporter'
+ },
+ {
+ title:'鎶ュ伐鏃堕棿',
+ align:"center",
+ dataIndex: 'reportTime'
+ },
+ {
+ title:'绾胯竟浠揑D',
+ align:"center",
+ dataIndex: 'warehouseId'
+ },
+ {
+ title:'鎴愬搧涓嬬嚎鎵撳嵃鐘舵��',
+ align:"center",
+ dataIndex: 'printStatus_dictText'
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align:"center",
+ fixed:"right",
+ width:147,
+ scopedSlots: { customRender: 'action' }
+ }
+ ],
+ url: {
+ list: "/mesworkreporting/mesWorkReporting/list",
+ delete: "/mesworkreporting/mesWorkReporting/delete",
+ deleteBatch: "/mesworkreporting/mesWorkReporting/deleteBatch",
+ exportXlsUrl: "/mesworkreporting/mesWorkReporting/exportXls",
+ importExcelUrl: "mesworkreporting/mesWorkReporting/importExcel",
+
+ },
+ dictOptions:{},
+ superFieldList:[],
+ }
+ },
+ 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:'orderId',text:'璁㈠崟ID',dictCode:''})
+ fieldList.push({type:'string',value:'workOrderId',text:'宸ュ崟ID',dictCode:''})
+ fieldList.push({type:'string',value:'factoryId',text:'浜х嚎ID',dictCode:''})
+ fieldList.push({type:'string',value:'batchNumber',text:'鎵规鍙�',dictCode:''})
+ fieldList.push({type:'string',value:'palletNumber',text:'鎵樺彿',dictCode:''})
+ fieldList.push({type:'double',value:'quantity',text:'鏁伴噺',dictCode:''})
+ fieldList.push({type:'string',value:'reporter',text:'鎶ュ伐浜�',dictCode:''})
+ fieldList.push({type:'datetime',value:'reportTime',text:'鎶ュ伐鏃堕棿'})
+ fieldList.push({type:'string',value:'warehouseId',text:'绾胯竟浠揑D',dictCode:''})
+ fieldList.push({type:'string',value:'printStatus',text:'鎴愬搧涓嬬嚎鎵撳嵃鐘舵��',dictCode:'print_status'})
+ this.superFieldList = fieldList
+ }
+ }
+ }
+</script>
+<style scoped>
+ @import '~@assets/less/common.less';
+</style>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesKittingCompletenessCheckForm.vue b/src/views/mes/modules/MesKittingCompletenessCheckForm.vue
new file mode 100644
index 0000000..30e7c6f
--- /dev/null
+++ b/src/views/mes/modules/MesKittingCompletenessCheckForm.vue
@@ -0,0 +1,129 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ崟ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderId">
+ <a-input v-model="model.workOrderId" placeholder="璇疯緭鍏ュ伐鍗旾D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber">
+ <a-input v-model="model.materialNumber" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+ <a-input v-model="model.materialName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="闇�姹傛暟閲�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requiredQuantity">
+ <a-input-number v-model="model.requiredQuantity" placeholder="璇疯緭鍏ラ渶姹傛暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="瀹為檯鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualQuantity">
+ <a-input-number v-model="model.actualQuantity" placeholder="璇疯緭鍏ュ疄闄呮暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鏄惁榻愬" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="checkFlag">
+ <a-input v-model="model.checkFlag" placeholder="璇疯緭鍏ユ槸鍚﹂綈澶�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesKittingCompletenessCheckForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/add",
+ edit: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/edit",
+ queryById: "/meskittingcompletenesscheck/mesKittingCompletenessCheck/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesKittingCompletenessCheckModal.vue b/src/views/mes/modules/MesKittingCompletenessCheckModal.vue
new file mode 100644
index 0000000..f9e8a5b
--- /dev/null
+++ b/src/views/mes/modules/MesKittingCompletenessCheckModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-kitting-completeness-check-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-kitting-completeness-check-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesKittingCompletenessCheckForm from './MesKittingCompletenessCheckForm'
+ export default {
+ name: 'MesKittingCompletenessCheckModal',
+ components: {
+ MesKittingCompletenessCheckForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesMaterialLoadingForm.vue b/src/views/mes/modules/MesMaterialLoadingForm.vue
new file mode 100644
index 0000000..5c2df9a
--- /dev/null
+++ b/src/views/mes/modules/MesMaterialLoadingForm.vue
@@ -0,0 +1,134 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐢宠鍗旾D" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestId">
+ <a-input v-model="model.requestId" placeholder="璇疯緭鍏ョ敵璇峰崟ID" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber">
+ <a-input v-model="model.materialNumber" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+ <a-input v-model="model.materialName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐞嗚鎷夊姩鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="specifiedQuantity">
+ <a-input-number v-model="model.specifiedQuantity" placeholder="璇疯緭鍏ョ悊璁烘媺鍔ㄦ暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="瀹為檯鎷夊姩鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualQuantity">
+ <a-input-number v-model="model.actualQuantity" placeholder="璇疯緭鍏ュ疄闄呮媺鍔ㄦ暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="杞﹂棿鍓╀綑鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remainingQuantity">
+ <a-input-number v-model="model.remainingQuantity" placeholder="璇疯緭鍏ヨ溅闂村墿浣欐暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesMaterialLoadingForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mesmaterialloading/mesMaterialLoading/add",
+ edit: "/mesmaterialloading/mesMaterialLoading/edit",
+ queryById: "/mesmaterialloading/mesMaterialLoading/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesMaterialLoadingModal.vue b/src/views/mes/modules/MesMaterialLoadingModal.vue
new file mode 100644
index 0000000..8cbe830
--- /dev/null
+++ b/src/views/mes/modules/MesMaterialLoadingModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-material-loading-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-material-loading-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesMaterialLoadingForm from './MesMaterialLoadingForm'
+ export default {
+ name: 'MesMaterialLoadingModal',
+ components: {
+ MesMaterialLoadingForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesMaterialTransferRequestForm.vue b/src/views/mes/modules/MesMaterialTransferRequestForm.vue
new file mode 100644
index 0000000..2ec3134
--- /dev/null
+++ b/src/views/mes/modules/MesMaterialTransferRequestForm.vue
@@ -0,0 +1,154 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎷夊姩鍗曞彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestCode">
+ <a-input v-model="model.requestCode" placeholder="璇疯緭鍏ユ媺鍔ㄥ崟鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ崟ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderId">
+ <a-input v-model="model.workOrderId" placeholder="璇疯緭鍏ュ伐鍗旾D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="SAP棰勭暀鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reservationCode">
+ <a-input v-model="model.reservationCode" placeholder="璇疯緭鍏AP棰勭暀鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鍙戝竷鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="publishStatus">
+ <j-dict-select-tag type="list" v-model="model.publishStatus" dictCode="publish_status" placeholder="璇烽�夋嫨鍙戝竷鐘舵��" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璇锋眰鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestStatus">
+ <j-dict-select-tag type="list" v-model="model.requestStatus" dictCode="request_status" placeholder="璇烽�夋嫨璇锋眰鐘舵��" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璇锋眰鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestTime">
+ <j-date placeholder="璇烽�夋嫨璇锋眰鏃堕棿" v-model="model.requestTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鍘熷簱瀛樺湴" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originalWarehouseId">
+ <a-input v-model="model.originalWarehouseId" placeholder="璇疯緭鍏ュ師搴撳瓨鍦�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐩爣搴撳瓨鍦�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="targetWarehouseId">
+ <a-input v-model="model.targetWarehouseId" placeholder="璇疯緭鍏ョ洰鏍囧簱瀛樺湴" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="浼樺厛绾э紙鎷夊姩绫诲瀷锛�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="priority">
+ <j-dict-select-tag type="list" v-model="model.priority" dictCode="priority" placeholder="璇烽�夋嫨浼樺厛绾э紙鎷夊姩绫诲瀷锛�" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鏈�鏅氶厤閫佹椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latestDeliveryTime">
+ <j-date placeholder="璇烽�夋嫨鏈�鏅氶厤閫佹椂闂�" v-model="model.latestDeliveryTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesMaterialTransferRequestForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mesmaterialtransferrequest/mesMaterialTransferRequest/add",
+ edit: "/mesmaterialtransferrequest/mesMaterialTransferRequest/edit",
+ queryById: "/mesmaterialtransferrequest/mesMaterialTransferRequest/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesMaterialTransferRequestModal.vue b/src/views/mes/modules/MesMaterialTransferRequestModal.vue
new file mode 100644
index 0000000..af069b2
--- /dev/null
+++ b/src/views/mes/modules/MesMaterialTransferRequestModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-material-transfer-request-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-material-transfer-request-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesMaterialTransferRequestForm from './MesMaterialTransferRequestForm'
+ export default {
+ name: 'MesMaterialTransferRequestModal',
+ components: {
+ MesMaterialTransferRequestForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesMaterialUnloadingForm.vue b/src/views/mes/modules/MesMaterialUnloadingForm.vue
new file mode 100644
index 0000000..8df1b81
--- /dev/null
+++ b/src/views/mes/modules/MesMaterialUnloadingForm.vue
@@ -0,0 +1,129 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="涓婃枡id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="loadingId">
+ <a-input v-model="model.loadingId" placeholder="璇疯緭鍏ヤ笂鏂檌d" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber">
+ <a-input v-model="model.materialNumber" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+ <a-input v-model="model.materialName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎵规鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchNumber">
+ <a-input v-model="model.batchNumber" placeholder="璇疯緭鍏ユ壒娆″彿" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="quantity">
+ <a-input-number v-model="model.quantity" placeholder="璇疯緭鍏ユ暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesMaterialUnloadingForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mes/mesMaterialUnloading/add",
+ edit: "/mes/mesMaterialUnloading/edit",
+ queryById: "/mes/mesMaterialUnloading/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesMaterialUnloadingModal.vue b/src/views/mes/modules/MesMaterialUnloadingModal.vue
new file mode 100644
index 0000000..8aa07fd
--- /dev/null
+++ b/src/views/mes/modules/MesMaterialUnloadingModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-material-unloading-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-material-unloading-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesMaterialUnloadingForm from './MesMaterialUnloadingForm'
+ export default {
+ name: 'MesMaterialUnloadingModal',
+ components: {
+ MesMaterialUnloadingForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesProductionOrderForm.vue b/src/views/mes/modules/MesProductionOrderForm.vue
new file mode 100644
index 0000000..bd915ce
--- /dev/null
+++ b/src/views/mes/modules/MesProductionOrderForm.vue
@@ -0,0 +1,189 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐢熶骇璁㈠崟鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCode">
+ <a-input v-model="model.orderCode" placeholder="璇疯緭鍏ョ敓浜ц鍗曞彿" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁㈠崟绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCategory">
+ <a-input v-model="model.orderCategory" placeholder="璇疯緭鍏ヨ鍗曠被鍨�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber">
+ <a-input v-model="model.materialNumber" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+ <a-input v-model="model.materialName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁″垝寮�濮嬫棩鏈�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStart">
+ <j-date placeholder="璇烽�夋嫨璁″垝寮�濮嬫棩鏈�" v-model="model.planStart" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁″垝缁撴潫鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planEnd">
+ <j-date placeholder="璇烽�夋嫨璁″垝缁撴潫鏃ユ湡" v-model="model.planEnd" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁㈠崟鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderQuantity">
+ <a-input-number v-model="model.orderQuantity" placeholder="璇疯緭鍏ヨ鍗曟暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="浜у搧鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionUnit">
+ <j-dict-select-tag type="list" v-model="model.productionUnit" dictCode="production_unit" placeholder="璇烽�夋嫨浜у搧鍗曚綅" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁㈠崟鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus">
+ <j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="order_status" placeholder="璇烽�夋嫨璁㈠崟鐘舵��" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="浼樺厛绾�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="priority">
+ <j-dict-select-tag type="list" v-model="model.priority" dictCode="priority" placeholder="璇烽�夋嫨浼樺厛绾�" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁″垝宸ヨ壓璺嚎" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processRoute">
+ <a-input v-model="model.processRoute" placeholder="璇疯緭鍏ヨ鍒掑伐鑹鸿矾绾�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁″垝鐗╂枡娓呭崟" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialListCode">
+ <a-input v-model="model.materialListCode" placeholder="璇疯緭鍏ヨ鍒掔墿鏂欐竻鍗�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ巶缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryCode">
+ <a-input v-model="model.factoryCode" placeholder="璇疯緭鍏ュ伐鍘傜紪鐮�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ巶鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryName">
+ <a-input v-model="model.factoryName" placeholder="璇疯緭鍏ュ伐鍘傚悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="瀹㈡埛鍨嬪彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="customerOrderModel">
+ <a-input v-model="model.customerOrderModel" placeholder="璇疯緭鍏ュ鎴峰瀷鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="瀹㈡埛鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="customer">
+ <a-input v-model="model.customer" placeholder="璇疯緭鍏ュ鎴峰悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
+ <a-input v-model="model.remark" placeholder="璇疯緭鍏ュ娉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesProductionOrderForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mesproductionwork/mesProductionOrder/add",
+ edit: "/mesproductionwork/mesProductionOrder/edit",
+ queryById: "/mesproductionwork/mesProductionOrder/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesProductionOrderModal.vue b/src/views/mes/modules/MesProductionOrderModal.vue
new file mode 100644
index 0000000..a21838d
--- /dev/null
+++ b/src/views/mes/modules/MesProductionOrderModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-production-order-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-production-order-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesProductionOrderForm from './MesProductionOrderForm'
+ export default {
+ name: 'MesProductionOrderModal',
+ components: {
+ MesProductionOrderForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesProductionWorkOrderForm.vue b/src/views/mes/modules/MesProductionWorkOrderForm.vue
new file mode 100644
index 0000000..54298b7
--- /dev/null
+++ b/src/views/mes/modules/MesProductionWorkOrderForm.vue
@@ -0,0 +1,174 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ崟鍙�(浠诲姟鍙�)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderCode">
+ <a-input v-model="model.workOrderCode" placeholder="璇疯緭鍏ュ伐鍗曞彿(浠诲姟鍙�)" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber">
+ <a-input v-model="model.materialNumber" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+ <a-input v-model="model.materialName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁″垝鐢熶骇鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planQuantity">
+ <a-input-number v-model="model.planQuantity" placeholder="璇疯緭鍏ヨ鍒掔敓浜ф暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="浜х嚎ID(鍐椾綑)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryId">
+ <a-input v-model="model.factoryId" placeholder="璇疯緭鍏ヤ骇绾縄D(鍐椾綑)" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐝粍ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="groupId">
+ <a-input v-model="model.groupId" placeholder="璇疯緭鍏ョ彮缁処D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐝ID(鍐椾綑)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shiftId">
+ <a-input v-model="model.shiftId" placeholder="璇疯緭鍏ョ彮娆D(鍐椾綑)" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎺掍骇鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderDate">
+ <j-date placeholder="璇烽�夋嫨鎺掍骇鏃ユ湡" v-model="model.workOrderDate" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ崟鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderStatus">
+ <j-dict-select-tag type="list" v-model="model.workOrderStatus" dictCode="work_order_status" placeholder="璇烽�夋嫨宸ュ崟鐘舵��" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="瀹為檯鎶ュ伐鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualQuantity">
+ <a-input-number v-model="model.actualQuantity" placeholder="璇疯緭鍏ュ疄闄呮姤宸ユ暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鍙戝竷浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="publisher">
+ <a-input v-model="model.publisher" placeholder="璇疯緭鍏ュ彂甯冧汉" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鍙戝竷鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="publishTime">
+ <j-date placeholder="璇烽�夋嫨鍙戝竷鏃堕棿" v-model="model.publishTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="閲嶅彂甯冧汉" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="republisher">
+ <a-input v-model="model.republisher" placeholder="璇疯緭鍏ラ噸鍙戝竷浜�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="閲嶅彂甯冩椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="republishTime">
+ <j-date placeholder="璇烽�夋嫨閲嶅彂甯冩椂闂�" v-model="model.republishTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesProductionWorkOrderForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mesproductionworkorder/mesProductionWorkOrder/add",
+ edit: "/mesproductionworkorder/mesProductionWorkOrder/edit",
+ queryById: "/mesproductionworkorder/mesProductionWorkOrder/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesProductionWorkOrderModal.vue b/src/views/mes/modules/MesProductionWorkOrderModal.vue
new file mode 100644
index 0000000..33c60fc
--- /dev/null
+++ b/src/views/mes/modules/MesProductionWorkOrderModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-production-work-order-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-production-work-order-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesProductionWorkOrderForm from './MesProductionWorkOrderForm'
+ export default {
+ name: 'MesProductionWorkOrderModal',
+ components: {
+ MesProductionWorkOrderForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesTransferOrderPrintForm.vue b/src/views/mes/modules/MesTransferOrderPrintForm.vue
new file mode 100644
index 0000000..13a1a31
--- /dev/null
+++ b/src/views/mes/modules/MesTransferOrderPrintForm.vue
@@ -0,0 +1,154 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐢熶骇璁㈠崟ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderId">
+ <a-input v-model="model.orderId" placeholder="璇疯緭鍏ョ敓浜ц鍗旾D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="绉诲簱鍗曞彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderCode">
+ <a-input v-model="model.workOrderCode" placeholder="璇疯緭鍏ョЩ搴撳崟鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="绉诲簱绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCategory">
+ <j-dict-select-tag type="list" v-model="model.orderCategory" dictCode="order_category" placeholder="璇烽�夋嫨绉诲簱绫诲瀷" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鍘熷簱瀛樺湴" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originalWarehouseId">
+ <a-input v-model="model.originalWarehouseId" placeholder="璇疯緭鍏ュ師搴撳瓨鍦�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鐩爣搴撳瓨鍦�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="targetWarehouseId">
+ <a-input v-model="model.targetWarehouseId" placeholder="璇疯緭鍏ョ洰鏍囧簱瀛樺湴" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎵樺彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="palletNumber">
+ <a-input v-model="model.palletNumber" placeholder="璇疯緭鍏ユ墭鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="quantity">
+ <a-input-number v-model="model.quantity" placeholder="璇疯緭鍏ユ暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎿嶄綔浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator">
+ <a-input v-model="model.operator" placeholder="璇疯緭鍏ユ搷浣滀汉" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎿嶄綔鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operateTime">
+ <j-date placeholder="璇烽�夋嫨鎿嶄綔鏃堕棿" v-model="model.operateTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="绉诲簱鍗曠姸鎬�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus">
+ <j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="order_status" placeholder="璇烽�夋嫨绉诲簱鍗曠姸鎬�" />
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesTransferOrderPrintForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mestransferorderprint/mesTransferOrderPrint/add",
+ edit: "/mestransferorderprint/mesTransferOrderPrint/edit",
+ queryById: "/mestransferorderprint/mesTransferOrderPrint/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesTransferOrderPrintModal.vue b/src/views/mes/modules/MesTransferOrderPrintModal.vue
new file mode 100644
index 0000000..4e03e2d
--- /dev/null
+++ b/src/views/mes/modules/MesTransferOrderPrintModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-transfer-order-print-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-transfer-order-print-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesTransferOrderPrintForm from './MesTransferOrderPrintForm'
+ export default {
+ name: 'MesTransferOrderPrintModal',
+ components: {
+ MesTransferOrderPrintForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesWorkReportingForm.vue b/src/views/mes/modules/MesWorkReportingForm.vue
new file mode 100644
index 0000000..4e8986e
--- /dev/null
+++ b/src/views/mes/modules/MesWorkReportingForm.vue
@@ -0,0 +1,154 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-row>
+ <a-col :span="12">
+ <a-form-model-item label="鍒犻櫎鏍囪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
+ <a-input-number v-model="model.delFlag" placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="璁㈠崟ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderId">
+ <a-input v-model="model.orderId" placeholder="璇疯緭鍏ヨ鍗旾D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="宸ュ崟ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderId">
+ <a-input v-model="model.workOrderId" placeholder="璇疯緭鍏ュ伐鍗旾D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="浜х嚎ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryId">
+ <a-input v-model="model.factoryId" placeholder="璇疯緭鍏ヤ骇绾縄D" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎵规鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchNumber">
+ <a-input v-model="model.batchNumber" placeholder="璇疯緭鍏ユ壒娆″彿" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎵樺彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="palletNumber">
+ <a-input v-model="model.palletNumber" placeholder="璇疯緭鍏ユ墭鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="quantity">
+ <a-input-number v-model="model.quantity" placeholder="璇疯緭鍏ユ暟閲�" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎶ュ伐浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reporter">
+ <a-input v-model="model.reporter" placeholder="璇疯緭鍏ユ姤宸ヤ汉" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎶ュ伐鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportTime">
+ <j-date placeholder="璇烽�夋嫨鎶ュ伐鏃堕棿" v-model="model.reportTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="绾胯竟浠揑D" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouseId">
+ <a-input v-model="model.warehouseId" placeholder="璇疯緭鍏ョ嚎杈逛粨ID" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item label="鎴愬搧涓嬬嚎鎵撳嵃鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="printStatus">
+ <j-dict-select-tag type="list" v-model="model.printStatus" dictCode="print_status" placeholder="璇烽�夋嫨鎴愬搧涓嬬嚎鎵撳嵃鐘舵��" />
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+
+ import { httpAction, getAction } from '@/api/manage'
+ import { validateDuplicateValue } from '@/utils/util'
+
+ export default {
+ name: 'MesWorkReportingForm',
+ components: {
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ data () {
+ return {
+ model:{
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ validatorRules: {
+ },
+ url: {
+ add: "/mesworkreporting/mesWorkReporting/add",
+ edit: "/mesworkreporting/mesWorkReporting/edit",
+ queryById: "/mesworkreporting/mesWorkReporting/queryById"
+ }
+ }
+ },
+ computed: {
+ formDisabled(){
+ return this.disabled
+ },
+ },
+ created () {
+ //澶囦唤model鍘熷鍊�
+ this.modelDefault = JSON.parse(JSON.stringify(this.model));
+ },
+ methods: {
+ add () {
+ this.edit(this.modelDefault);
+ },
+ edit (record) {
+ this.model = Object.assign({}, record);
+ this.visible = true;
+ },
+ submitForm () {
+ const that = this;
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true;
+ let httpurl = '';
+ let method = '';
+ if(!this.model.id){
+ httpurl+=this.url.add;
+ method = 'post';
+ }else{
+ httpurl+=this.url.edit;
+ method = 'put';
+ }
+ httpAction(httpurl,this.model,method).then((res)=>{
+ if(res.success){
+ that.$message.success(res.message);
+ that.$emit('ok');
+ }else{
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.confirmLoading = false;
+ })
+ }
+
+ })
+ },
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/mes/modules/MesWorkReportingModal.vue b/src/views/mes/modules/MesWorkReportingModal.vue
new file mode 100644
index 0000000..b98831a
--- /dev/null
+++ b/src/views/mes/modules/MesWorkReportingModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <mes-work-reporting-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mes-work-reporting-form>
+ </j-modal>
+</template>
+
+<script>
+
+ import MesWorkReportingForm from './MesWorkReportingForm'
+ export default {
+ name: 'MesWorkReportingModal',
+ components: {
+ MesWorkReportingForm
+ },
+ data () {
+ return {
+ title:'',
+ width:896,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add () {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.add();
+ })
+ },
+ edit (record) {
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.edit(record);
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ }
+ }
+ }
+</script>
\ No newline at end of file
--
Gitblit v1.9.3