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