From 6965db086df978e46e0a1bd7227b981ad48a9b1c Mon Sep 17 00:00:00 2001 From: chenlu <1320612696@qq.com> Date: 星期二, 20 二月 2024 16:19:52 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 224 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 154 insertions(+), 70 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue index f346c66..92b18e1 100644 --- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue @@ -1,6 +1,6 @@ <script lang="ts" setup> -import {reactive, ref} from "vue" -import {useRouter} from "vue-router" +import {onMounted, reactive, ref, watch} from "vue" +import {useRouter,useRoute} from "vue-router" import * as XLXS from "xlsx" import {ElMessage} from "element-plus" import request from "@/utils/request" @@ -9,7 +9,55 @@ let dialogTableVisible = ref(false) const userStore = useUserInfoStore() const router = useRouter() +const route = useRoute() const xGrid = ref() +// 瀹氫箟琛ㄥご涓婁紶鏁版嵁 +const titleUploadData = ref({ + project:'', + orderType:'', + customerId:'', + customerName:'', + icon:'', + orderClassify:'', + packType:'', + orderId:'', + deliveryDate:'', + batch:'', + calculateType:'', + salesmanId:'', + salesman:'', + alType:'', + money:'', + contractId:'', + customerBatch:'', + contacts:'', + contactNumber:'', + deliveryAddress:'', + otherMoney:'', + otherMoneyRemarks:'', + processingNote:'', + createOrder:0, + creatorId:userStore.user.userName, + creator:userStore.user.userId, +}) +//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁 +const titleSelectJson = ref({ + orderType:[], + alType:[], + icon:[], + orderClassify:[], + packType:[], + customer:[], + saleMan:[] +}) +let filterData = ref({}) +const filterChanged = ({ option, row, column }) => { + if (option.data) { + return row[column.field].toString().toLowerCase().indexOf(option.data) > -1 + } + return true + //@filter-change="filterChanged" +} const gridOptions = reactive({ border: "full",//琛ㄦ牸鍔犺竟妗� keepSource: true,//淇濇寔婧愭暟鎹� @@ -37,7 +85,7 @@ useKey: true }, filterConfig: { //绛涢�夐厤缃」 - remote: true + //remote: true //杩滅绛涢�� }, customConfig: { storage: true @@ -48,25 +96,24 @@ showStatus: true },//琛ㄥご鍙傛暟 columns:[ - // {title: '鎿嶄綔', width: 110,fixed:"left",slots: { default: 'openProductList' }}, {type: 'seq',fixed:"left", title: '鑷簭', width: 80 }, - {field: 'buildingNumber',width:120, title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'productId',width:140, title: '浜у搧ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'productName',width:120, title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'price',width:140, title: '鍗曚环',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'quantity',width:120, title: '鏁伴噺',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'grossAmount',width:120, title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'width',width:120, title: '瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'height',width:120, title: '楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'area',width:150, title: '瀹為檯鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true}, - {field: 'grossArea',width:140, title: '瀹為檯鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true}, - {field: 'computeArea',width:180, title: '缁撶畻鍗曠墖闈㈢Н',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'computeGrossArea',width:140, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'shape',width:120, title: '褰㈢姸',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'bendRadius',width:140, title: '寮挗寮у害',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'edgingType',width:140, title: '纾ㄨ竟绫诲瀷',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'processingNote',width:140, title: '鍔犲伐瑕佹眰',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'remarks',width:120, title: '澶囨敞',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true} + // {field: 'buildingNumber',width:120, title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, + {field: 'productId',width:100, title: '浜у搧ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'productName',width:120, title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'price',width:140, title: '鍗曚环',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'quantity',width:120, title: '鏁伴噺',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'grossAmount',width:120, title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'width',width:120, title: '瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'height',width:120, title: '楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'area',width:150, title: '瀹為檯鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, + {field: 'grossArea',width:140, title: '瀹為檯鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, + {field: 'computeArea',width:180, title: '缁撶畻鍗曠墖闈㈢Н',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'computeGrossArea',width:140, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'shape',width:120, title: '褰㈢姸',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'bendRadius',width:140, title: '寮挗寮у害',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'edgingType',width:140, title: '纾ㄨ竟绫诲瀷',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'processingNote',width:140, title: '鍔犲伐瑕佹眰',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, + {field: 'remarks',width:120, title: '澶囨敞',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged} ], @@ -83,7 +130,7 @@ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ - if (cellValue && !regex.test(cellValue)) { + if ( !regex.test(cellValue) ) { return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�') } } @@ -93,7 +140,7 @@ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ - if (cellValue && !regex.test(cellValue)) { + if (!regex.test(cellValue)) { return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�') } } @@ -106,7 +153,7 @@ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ - if (cellValue && !regex.test(cellValue)) { + if (!regex.test(cellValue)) { return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�') } } @@ -116,7 +163,7 @@ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ - if (cellValue && !regex.test(cellValue)) { + if ( !regex.test(cellValue)) { return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�') } } @@ -126,9 +173,9 @@ toolbarConfig: { buttons: [ {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'}, - {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary'}, - {'code': 'add', 'name': '瀹℃牳',status: 'primary',disabled: true}, - {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'} + {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary',disabled: true}, + {'code': 'review', 'name': '瀹℃牳',status: 'primary',disabled: true}, + {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save',disabled: false} ], slots: { tools: 'toolbar_buttons' @@ -166,7 +213,15 @@ break } case 'Craft': { - await router.push({path: '/main/order/updateOrderCraft', query: {orderID: 12123}}) + await router.push({path: '/main/order/updateOrderCraft', query: {orderId: titleUploadData.value.orderId }}) + break + } + case 'review': { + reviewOrder(2) + break + } + case 'reviews': {//鍙嶅 + reviewOrder(0) break } case 'saveOrder': { @@ -238,45 +293,44 @@ } } -// 瀹氫箟琛ㄥご涓婁紶鏁版嵁 -const titleUploadData = ref({ - project:'', - orderType:'', - customerId:'', - customerName:'', - icon:'', - orderClassify:'', - packType:'', - orderId:'', - deliveryDate:'', - batch:'', - calculateType:'', - salesmanId:'', - salesman:'', - alType:'', - money:'', - contractId:'', - customerBatch:'', - contacts:'', - contactNumber:'', - deliveryAddress:'', - otherMoney:'', - otherMoneyRemarks:'', - processingNote:'', - creatorId:userStore.user.userName, - creator:userStore.user.userId, +//鍒濆鍖栧垽鏂槸鍚︽湁id浼犲叆 +onMounted(()=>{ + const str = route.query.orderId + if (typeof str === 'undefined' || str === null || str === '' || str === '\n' || str === '\r'){ + return + } + request.post(`/order/getOrderById/${str}`).then((res) => { + if(res.code==200){ + titleUploadData.value = res.data.order + //鍙栨秷宸ヨ壓鎸夐挳绂佺敤 + gridOptions.toolbarConfig.buttons[1].disabled = false + //宸ヨ壓瀹℃牳鍚庝繚瀛樻寜閽鐢� + if(res.data.order.processReview === 2){ + gridOptions.toolbarConfig.buttons[3].disabled = true + } + //鍙栨秷瀹℃牳鎸夐挳绂佺敤 + if(res.data.order.processReview === 2 && res.data.order.orderReview === 0){ + gridOptions.toolbarConfig.buttons[2].disabled = false + } + + //鎸夐挳瀹℃牳杩囧悗鍙樹负鍙嶅 + if(res.data.order.orderReview === 2){ + gridOptions.toolbarConfig.buttons[2].disabled = false + gridOptions.toolbarConfig.buttons[2].code='reviews' + gridOptions.toolbarConfig.buttons[2].name='鍙嶅' + } + if(res.data.order.productionOrder !==0 ){ + gridOptions.toolbarConfig.buttons[2].disabled = true + } + + + xGrid.value.reloadData(res.data.orderDetails) + }else{ + ElMessage.error(res.msg) + } + }) }) -//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁 -const titleSelectJson = ref({ - orderType:[], - alType:[], - icon:[], - orderClassify:[], - packType:[], - customer:[], - saleMan:[] -}) //椤甸潰绗竴娆″姞杞芥墽琛� request.get(`/basicData/orderBasicData`).then((res) => { @@ -297,17 +351,36 @@ } }) +//淇濆瓨璁㈠崟鏂规硶 const saveOrder = (order) => { request.post(`/order/saveOrder`,order).then((res) => { if(res.code==200){ - location.reload() ElMessage.success('淇濆瓨鎴愬姛') + router.push({path:'/main/order/selectOrder'}) }else { ElMessage.error(res.msg) } }) } +// 瀹℃牳璁㈠崟 +const reviewOrder = (state) => { + request.post(`/order/reviewOrderById/${titleUploadData.value.orderId}/${state}`).then(res =>{ + if(res.code==200){ + gridOptions.toolbarConfig.buttons[2].disabled = true + if(state==2){ + ElMessage.success('瀹℃牳鎴愬姛锛�') + }else if (state==0){ + ElMessage.success('鍙嶅鎴愬姛锛�') + } + setTimeout(() =>{ + location.reload() + },1500) + }else{ + ElMessage.error(res.msg) + } + }) +} const changeCustomer = () => { const changedCustomerId = titleUploadData.value.customerId @@ -384,6 +457,15 @@ titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString() } + +// 鎵嬪姩瑙﹀彂绛涢�� +const changeFilterEvent = (event, option, $panel) => { + // 鎵嬪姩瑙﹀彂绛涢�� + $panel.changeOption(event, !!option.data, option) +} + + + </script> <template> @@ -515,7 +597,7 @@ </div> <div class="order-detail"> <vxe-grid - max-height="97%" + max-height="100%" class="mytable-scrollbar" ref="xGrid" v-bind="gridOptions" @@ -525,7 +607,9 @@ <template #num1_filter="{ column, $panel }"> <div> <div v-for="(option, index) in column.filters" :key="index"> - <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/> + <input type="text" + v-model="option.data" + @input="changeFilterEvent($event, option, $panel)"/> </div> </div> </template> @@ -566,7 +650,7 @@ } .order-detail{ width: 100%; - height: 80%; + height: 85%; } </style> \ No newline at end of file -- Gitblit v1.8.0