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