From 27b55e6667d69f76653e91a71f8d81247523a02d Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 06 八月 2025 10:56:54 +0800 Subject: [PATCH] art: 订单BOM、物料工序 前端代码修改、优化 --- src/views/pms/modules/PmsProcessBillMaterialsForm.vue | 161 +++------ src/views/pms/modules/PmsProcessBillMaterialsModal.vue | 82 ++-- src/views/pms/PmsMaterialProcessList.vue | 247 +++++--------- src/views/pms/modules/PmsMaterialProcessForm.vue | 186 +++------- src/views/pms/PmsProcessBillMaterialsList.vue | 310 +++++++---------- 5 files changed, 366 insertions(+), 620 deletions(-) diff --git a/src/views/pms/PmsMaterialProcessList.vue b/src/views/pms/PmsMaterialProcessList.vue index 68bfa0c..99cd1c5 100644 --- a/src/views/pms/PmsMaterialProcessList.vue +++ b/src/views/pms/PmsMaterialProcessList.vue @@ -4,46 +4,38 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="璁㈠崟鍙�"> + <a-input placeholder="璇疯緭鍏ヨ鍗曞彿" v-model="queryParam.orderCode" allowClear></a-input> + </a-form-item> + </a-col> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-form-item label="鐗╂枡缂栫爜"> - <j-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber"></j-input> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber" allowClear></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="鐗╂枡鍚嶇О"> - <j-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName"></j-input> + <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName" allowClear></a-input> + </a-form-item> + </a-col> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="宸ュ簭鍙�"> + <a-input placeholder="璇疯緭鍏ュ伐搴忓彿" v-model="queryParam.processCode" allowClear></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> </span> </a-col> </a-row> </a-form> </div> <!-- 鏌ヨ鍖哄煙-END --> - - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <!-- 楂樼骇鏌ヨ鍖哄煙 --> - <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" @@ -54,160 +46,97 @@ :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> + <a @click="handleDetail(record)">璇︽儏</a> </span> - </a-table> </div> - <pms-material-process-modal ref="modalForm" @ok="modalFormOk"></pms-material-process-modal> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import PmsMaterialProcessModal from './modules/PmsMaterialProcessModal' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import PmsMaterialProcessModal from './modules/PmsMaterialProcessModal' - export default { - name: 'PmsMaterialProcessList', - mixins:[JeecgListMixin, mixinDevice], - components: { - PmsMaterialProcessModal - }, - 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: 'materialNumber' - }, - { - title:'鐗╂枡鍚嶇О', - align:"center", - dataIndex: 'materialName' - }, - { - title:'浜х嚎ID(SAP宸ヤ綔涓績)', - align:"center", - dataIndex: 'factoryId_dictText' - }, - { - title:'宸ュ簭鍙�', - align:"center", - dataIndex: 'processCode' - }, - { - title:'宸ュ簭鍚嶇О', - align:"center", - dataIndex: 'processName' - }, - { - title:'鎺у埗鐮�', - align:"center", - dataIndex: 'controlCode' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } +export default { + name: 'PmsMaterialProcessList', + mixins: [JeecgListMixin, mixinDevice], + components: { + PmsMaterialProcessModal + }, + data() { + return { + description: '鐗╂枡宸ュ簭绠$悊椤甸潰', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/pms/pmsMaterialProcess/list", - delete: "/pms/pmsMaterialProcess/delete", - deleteBatch: "/pms/pmsMaterialProcess/deleteBatch", - exportXlsUrl: "/pms/pmsMaterialProcess/exportXls", - importExcelUrl: "pms/pmsMaterialProcess/importExcel", - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + { + title: '璁㈠崟鍙�', + align: 'center', + dataIndex: 'orderCode' + }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '宸ュ簭鍙�', + align: 'center', + dataIndex: 'processCode' + }, + { + title: '宸ュ簭鍚嶇О', + align: 'center', + dataIndex: 'processName' + }, + { + title: '鎺у埗鐮�', + align: 'center', + dataIndex: 'controlCode' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/pms/materialProcess/list' + }, - }, - methods: { - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'int',value:'delFlag',text:'鍒犻櫎鏍囪',dictCode:''}) - fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''}) - fieldList.push({type:'string',value:'factoryId',text:'浜х嚎ID(SAP宸ヤ綔涓績)',dictCode:''}) - fieldList.push({type:'string',value:'processCode',text:'宸ュ簭鍙�',dictCode:''}) - fieldList.push({type:'string',value:'processName',text:'宸ュ簭鍚嶇О',dictCode:''}) - fieldList.push({type:'string',value:'controlCode',text:'鎺у埗鐮�',dictCode:''}) - this.superFieldList = fieldList - } + dictOptions: {} } - } + }, + created() { + }, + computed: {}, + methods: {} +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/pms/PmsProcessBillMaterialsList.vue b/src/views/pms/PmsProcessBillMaterialsList.vue index 8e8f6bd..ec47455 100644 --- a/src/views/pms/PmsProcessBillMaterialsList.vue +++ b/src/views/pms/PmsProcessBillMaterialsList.vue @@ -5,19 +5,24 @@ <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="璁㈠崟鍙�"> + <a-input placeholder="璇疯緭鍏ヨ鍗曞彿" v-model="queryParam.orderCode" allowClear></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="鐗╂枡缂栫爜"> - <j-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber"></j-input> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber" allowClear></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="鐗╂枡鍚嶇О"> - <j-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName"></j-input> + <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName" allowClear></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> </span> </a-col> </a-row> @@ -25,24 +30,8 @@ </div> <!-- 鏌ヨ鍖哄煙-END --> - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <!-- 楂樼骇鏌ヨ鍖哄煙 --> - <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" @@ -53,189 +42,152 @@ :dataSource="dataSource" :pagination="ipagination" :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap" + :expandedRowKeys.sync="expandedRowKeys" + @expand="handleExpand" @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> - + <a-table + slot="expandedRowRender" + slot-scope="text" + :scroll="{x:true}" + :columns="innerColumns" + :data-source="innerData" + :pagination="false" + ></a-table> <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> - <span slot="figureNum" slot-scope="text, record"> - <span v-if="record.materialNumber == null || '' == record.materialNumber">鏃犳暟鎹�</span> - <span v-else> - <a-popover placement="top" :title="'鐗╂枡鍩烘湰淇℃伅:'" arrow-point-at-center> - <template slot="content"> - </template> - <a-button class="fontweight" style="font-weight: bold;color: inherit;" @click="handleMaterialClick(record)"> - {{ record.materialNumber }} - </a-button> - </a-popover> - </span> + <a @click="handleDetail(record)">璇︽儏</a> </span> </a-table> </div> - <pms-process-bill-materials-modal ref="modalForm" @ok="modalFormOk"></pms-process-bill-materials-modal> - <PmsProcessBillMaterialsDetailModal ref="PmsProcessBillMaterialsDetailModal"></PmsProcessBillMaterialsDetailModal> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import PmsProcessBillMaterialsModal from './modules/PmsProcessBillMaterialsModal' - import PmsProcessBillMaterialsDetailModal from './modules/PmsProcessBillMaterialsDetailModal.vue' - import { getAction } from '@api/manage' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import PmsProcessBillMaterialsModal from './modules/PmsProcessBillMaterialsModal' +import { getAction } from '@api/manage' - export default { - name: 'PmsProcessBillMaterialsList', - mixins:[JeecgListMixin, mixinDevice], - components: { - PmsProcessBillMaterialsModal, - PmsProcessBillMaterialsDetailModal - }, - data () { - return { - description: '璁㈠崟BOM绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'鐢熸垚璁㈠崟ID', - align:"center", - dataIndex: 'orderId' - }, - { - title:'鐗╂枡缂栫爜', - align:"center", - dataIndex: 'materialNumber', - defaultSortOrder: 'descend', - scopedSlots: { customRender: 'figureNum', }, - }, - { - title:'鐗╂枡鍚嶇О', - align:"center", - dataIndex: 'materialName' - }, - { - title:'BOM浠g爜', - align:"center", - dataIndex: 'billMaterialsCode' - }, - { - title:'鍩烘湰鍗曚綅', - align:"center", - dataIndex: 'productionUnit' - }, - { - title:'璁㈠崟鏁伴噺', - align:"center", - dataIndex: 'productionQuantity' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } +export default { + name: 'PmsProcessBillMaterialsList', + mixins: [JeecgListMixin, mixinDevice], + components: { + PmsProcessBillMaterialsModal + }, + data() { + return { + description: '璁㈠崟BOM绠$悊椤甸潰', + innerData: [], + expandedRowKeys: [], + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/pmsprocessbillmaterials/pmsProcessBillMaterials/list", - delete: "/pmsprocessbillmaterials/pmsProcessBillMaterials/delete", - deleteBatch: "/pmsprocessbillmaterials/pmsProcessBillMaterials/deleteBatch", - exportXlsUrl: "/pmsprocessbillmaterials/pmsProcessBillMaterials/exportXls", - importExcelUrl: "pmsprocessbillmaterials/pmsProcessBillMaterials/importExcel", - queryByMaterialId:'/pms/pmsProcessBillMaterialsDetail/queryByMaterialId' }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + { + title: '璁㈠崟鍙�', + align: 'center', + dataIndex: 'orderCode' + }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '鍩烘湰鍗曚綅', + align: 'center', + dataIndex: 'productionUnit' + }, + { + title: '璁㈠崟鏁伴噺', + align: 'center', + dataIndex: 'productionQuantity' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + innerColumns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '鐗╂枡缂栫爜', + align: 'center', + dataIndex: 'materialNumber' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '鍩烘湰鍗曚綅', + align: 'center', + dataIndex: 'productionUnit' + }, + { + title: '闇�姹傛暟閲�', + align: 'center', + dataIndex: 'usageQuantity' + } + ], + url: { + list: '/pms/processBillMaterials/list', + queryByMaterialId: '/pms/processBillMaterialsDetail/queryByMaterialId' }, - }, - methods: { - handleMaterialClick(record){ - console.log('record----->',record) - getAction(this.url.queryByMaterialId,{'materialId':record.id}).then(res=>{ + } + }, + created() { + }, + computed: {}, + methods: { + handleExpand(expanded, record) { + let that = this + if(expanded) { + this.expandedRowKeys = [record.id]; + getAction(that.url.queryByMaterialId, {materialId: record.id}).then((res)=>{ if(res.success){ - this.$refs.PmsProcessBillMaterialsDetailModal.edit(res.result); - this.$refs.PmsProcessBillMaterialsDetailModal.title="鐗╂枡娓呭崟"; - this.$refs.PmsProcessBillMaterialsDetailModal.disableSubmit = true; + this.innerData = [...res.result]; }else{ - this.$message.error('娌℃煡鍒版暟鎹紝璇疯仈绯荤鐞嗗憳') + that.$message.warning(res.message); + this.innerData = []; } }) - }, - 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:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''}) - fieldList.push({type:'string',value:'billMaterialsCode',text:'BOM浠g爜',dictCode:''}) - fieldList.push({type:'string',value:'productionUnit',text:'鍩烘湰鍗曚綅',dictCode:''}) - fieldList.push({type:'double',value:'productionQuantity',text:'璁㈠崟鏁伴噺',dictCode:''}) - this.superFieldList = fieldList + } else { + this.expandedRowKeys = []; } } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/pms/modules/PmsMaterialProcessForm.vue b/src/views/pms/modules/PmsMaterialProcessForm.vue index d76e154..11de4cb 100644 --- a/src/views/pms/modules/PmsMaterialProcessForm.vue +++ b/src/views/pms/modules/PmsMaterialProcessForm.vue @@ -4,50 +4,33 @@ <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="orderCode"> + <a-input v-model="model.orderCode"></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-input v-model="model.materialNumber"></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="浜х嚎ID(SAP宸ヤ綔涓績)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryId"> - <a-row :gutter="24"> - <a-col :span="24"> - <a-form-item - :labelCol="labelCol" - :wrapperCol="wrapperCol" - label="" - > - <j-select-factory - :disabled="disabled" - v-model="model.factoryId" - :multi="true" - @back="backFactoryInfo" - :backProduction="true" - :treeProductOpera="true" - ></j-select-factory> - </a-form-item> - </a-col> - </a-row> + <a-input v-model="model.materialName"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> <a-form-model-item label="宸ュ簭鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processCode"> - <a-input v-model="model.processCode" placeholder="璇疯緭鍏ュ伐搴忓彿" ></a-input> + <a-input v-model="model.processCode"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> <a-form-model-item label="宸ュ簭鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processName"> - <a-input v-model="model.processName" placeholder="璇疯緭鍏ュ伐搴忓悕绉�" ></a-input> + <a-input v-model="model.processName"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> <a-form-model-item label="鎺у埗鐮�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="controlCode"> - <a-input v-model="model.controlCode" placeholder="璇疯緭鍏ユ帶鍒剁爜" ></a-input> + <a-input v-model="model.controlCode"></a-input> </a-form-model-item> </a-col> </a-row> @@ -58,115 +41,50 @@ <script> - import { httpAction, getAction } from '@/api/manage' - import { validateDuplicateValue } from '@/utils/util' - import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue' - import JTreeDict from '@/components/jeecg/JTreeDict'//鍒嗙被瀛楀吀鏍戝舰涓嬫媺缁勪欢 - - export default { - name: 'PmsMaterialProcessForm', - components: { - JSelectFactory, - JTreeDict - }, - 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: { - factoryId: [ - { required: true, message: '浜х嚎鏄繀閫夐」', trigger: 'change' } - ], - materialNumber: [ - { required: true, message: '鐗╂枡缂栫爜鏄繀閫夐」', trigger: 'change' } - ], - materialName: [ - { required: true, message: '鐗╂枡鍚嶇О鏄繀閫夐」', trigger: 'change' } - ], - processCode: [ - { required: true, message: '宸ュ簭鍙锋槸蹇呴�夐」', trigger: 'change' } - ], - processName: [ - { required: true, message: '宸ュ簭鍚嶇О鏄繀閫夐」', trigger: 'change' } - ], - }, - url: { - add: "/pms/pmsMaterialProcess/add", - edit: "/pms/pmsMaterialProcess/edit", - queryById: "/pms/pmsMaterialProcess/queryById" - } - } - }, - computed: { - formDisabled(){ - return this.disabled +export default { + name: 'PmsMaterialProcessForm', + 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: {} + } + }, + computed: { + formDisabled() { + return this.disabled + } + }, + created() { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)) + }, + methods: { + add() { + this.edit(this.modelDefault) }, - created () { - //澶囦唤model鍘熷鍊� - this.modelDefault = JSON.parse(JSON.stringify(this.model)); - }, - methods: { - backFactoryInfo(info) { - this.model.factoryIds = this.model.factoryId - this.nextFactoryOptions = info.map((item, index, arr) => { - let c = { label: item.text, value: item.value + '' } - return c - }) - }, - 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; - }) - } - - }) - }, + edit(record) { + this.model = Object.assign({}, record) + this.visible = true } } +} </script> \ No newline at end of file diff --git a/src/views/pms/modules/PmsProcessBillMaterialsForm.vue b/src/views/pms/modules/PmsProcessBillMaterialsForm.vue index 68e2d88..cc12488 100644 --- a/src/views/pms/modules/PmsProcessBillMaterialsForm.vue +++ b/src/views/pms/modules/PmsProcessBillMaterialsForm.vue @@ -4,33 +4,28 @@ <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="orderId"> - <a-input v-model="model.orderId" placeholder="璇疯緭鍏ョ敓鎴愯鍗旾D" ></a-input> + <a-form-model-item label="璁㈠崟鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCode"> + <a-input v-model="model.orderCode"></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-input v-model="model.materialNumber"></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="BOM浠g爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="billMaterialsCode"> - <a-input v-model="model.billMaterialsCode" placeholder="璇疯緭鍏OM浠g爜" ></a-input> + <a-input v-model="model.materialName"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> <a-form-model-item label="鍩烘湰鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionUnit"> - <a-input v-model="model.productionUnit" placeholder="璇疯緭鍏ュ熀鏈崟浣�" ></a-input> + <a-input v-model="model.productionUnit"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> <a-form-model-item label="璁㈠崟鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionQuantity"> - <a-input-number v-model="model.productionQuantity" placeholder="璇疯緭鍏ヨ鍗曟暟閲�" style="width: 100%" /> + <a-input-number v-model="model.productionQuantity" style="width: 100%" /> </a-form-model-item> </a-col> </a-row> @@ -41,104 +36,54 @@ <script> - import { httpAction, getAction } from '@/api/manage' - import { validateDuplicateValue } from '@/utils/util' +import { httpAction } from '@/api/manage' - export default { - name: 'PmsProcessBillMaterialsForm', - 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: { - orderId: [ - { required: true, message: '鐢熸垚璁㈠崟鏄繀閫夐」', trigger: 'change' } - ], - materialNumber: [ - { required: true, message: '鐗╂枡缂栫爜鏄繀濉」', trigger: 'change' } - ], - materialName: [ - { required: true, message: '鐗╂枡鍚嶇О鏄繀濉」', trigger: 'change' } - ], - productionUnit: [ - { required: true, message: '鍩烘湰鍗曚綅鏄繀濉」', trigger: 'change' } - ], - productionQuantity: [ - { required: true, message: '璁㈠崟鏁伴噺鏄繀濉」', trigger: 'change' } - ], - }, - url: { - add: "/pmsprocessbillmaterials/pmsProcessBillMaterials/add", - edit: "/pmsprocessbillmaterials/pmsProcessBillMaterials/edit", - queryById: "/pmsprocessbillmaterials/pmsProcessBillMaterials/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; - }) - } - - }) - }, +export default { + name: 'PmsProcessBillMaterialsForm', + 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: { + } + } + }, + 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 + }, } +} </script> \ No newline at end of file diff --git a/src/views/pms/modules/PmsProcessBillMaterialsModal.vue b/src/views/pms/modules/PmsProcessBillMaterialsModal.vue index 806a2e2..d6fce85 100644 --- a/src/views/pms/modules/PmsProcessBillMaterialsModal.vue +++ b/src/views/pms/modules/PmsProcessBillMaterialsModal.vue @@ -8,53 +8,55 @@ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @cancel="handleCancel" cancelText="鍏抽棴"> - <pms-process-bill-materials-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></pms-process-bill-materials-form> + <pms-process-bill-materials-form ref="realForm" @ok="submitCallback" + :disabled="disableSubmit"></pms-process-bill-materials-form> </j-modal> </template> <script> - import PmsProcessBillMaterialsForm from './PmsProcessBillMaterialsForm' - export default { - name: 'PmsProcessBillMaterialsModal', - components: { - PmsProcessBillMaterialsForm +import PmsProcessBillMaterialsForm from './PmsProcessBillMaterialsForm' + +export default { + name: 'PmsProcessBillMaterialsModal', + components: { + PmsProcessBillMaterialsForm + }, + data() { + return { + title: '', + width: 896, + visible: false, + disableSubmit: false + } + }, + methods: { + add() { + this.visible = true + this.$nextTick(() => { + this.$refs.realForm.add() + }) }, - data () { - return { - title:'', - width:896, - visible: false, - disableSubmit: false - } + edit(record) { + this.visible = true + this.$nextTick(() => { + this.$refs.realForm.edit(record) + }) }, - 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() - } + 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