From 37931d04e87cbae60cf833890c2c8432b389fa1a Mon Sep 17 00:00:00 2001 From: chenlu <1320612696@qq.com> Date: 星期五, 01 三月 2024 08:56:51 +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 | 141 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 132 insertions(+), 9 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 9ba0119..e0335aa 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 @@ -8,6 +8,8 @@ import useUserInfoStore from '@/stores/userInfo' import SelectProduct from "@/views/sd/product/SelectProduct.vue" import {changeFilterEvent,filterChanged} from "@/hook" +import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove"; +import {CaretBottom} from "@element-plus/icons-vue"; let dialogTableVisible = ref(false) let productVisible = ref(false) @@ -15,6 +17,8 @@ const router = useRouter() const route = useRoute() const xGrid = ref() +let cellArea = ref() + // 瀹氫箟琛ㄥご涓婁紶鏁版嵁 const titleUploadData = ref({ project:'', @@ -56,6 +60,7 @@ }) let filterData = ref({}) let rowIndex = ref(null) +let rowClickIndex = ref(null) const gridOptions = reactive({ border: "full",//琛ㄦ牸鍔犺竟妗� @@ -74,7 +79,12 @@ body: { options: [ [ - { code: 'addRow', name: '娣诲姞', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false } + { code: 'addRow', name: '娣诲姞', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false }, + { code: 'deleteRow', name: '鍒犻櫎', prefixIcon: 'vxe-icon-delete', visible: true, disabled: true }, + { code: 'copyChecked', name: '閫変腑鐩稿悓', prefixIcon: 'vxe-icon-copy', visible: true, disabled: false }, + { code: 'copyAll', name: '涔嬪悗鐩稿悓', prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false }, + { code: 'clearChecked', name: '娓呴櫎閫変腑', prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false }, + { code: 'computedMoney', name: '璁$畻閲戦', prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true }, ] ] } @@ -123,6 +133,9 @@ { min: 0, max: 255, message: '鍚嶇О闀垮害鍦� 0 鍒� 255 涓瓧绗�' } ], productId: [ + { required: true, message: '璇烽�夋嫨浜у搧' } + ], + productName: [ { required: true, message: '璇烽�夋嫨浜у搧' } ], price: [ @@ -181,6 +194,7 @@ {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'}, {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary',disabled: true}, {'code': 'review', 'name': '瀹℃牳',status: 'primary',disabled: true}, + {'code': 'updateMoney', 'name': '閲戦閲嶇疆',status: 'primary',disabled: true}, {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save',disabled: false} ], slots: { @@ -218,6 +232,10 @@ dialogTableVisible.value=true break } + case 'updateMoney': { + updateMoney() + break + } case 'Craft': { await router.push({path: '/main/order/updateOrderCraft', query: {orderId: titleUploadData.value.orderId }}) break @@ -235,6 +253,11 @@ ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�') return } + if(!gridOptions.menuConfig.body.options[0][5].disabled){ + ElMessage.error('璇峰厛鎵撳紑鍙冲嚮鑿滃崟閲嶆柊璁$畻閲戦鍚庯紝鍐嶄繚瀛橈紒') + return + } + const project = titleUploadData.value.project if(project === null || project === undefined || project === ''){ ElMessage.error('杈撳叆椤圭洰鍚嶇О锛�') @@ -287,7 +310,69 @@ return } $grid.insert({}) - //console.log($grid.getRecordset().insertRecords) + break + } + case 'deleteRow':{ + + $grid.remove(rowClickIndex.value) + rowClickIndex.value = null + gridOptions.menuConfig.body.options[0][1].disabled=true + gridOptions.menuConfig.body.options[0][5].disabled=false + break + } + case 'copyChecked' :{ + let result = toolbarButtonClickEvent() + if(result){ + const dataList = xGrid.value.getTableData().visibleData + const val = dataList[result.start][result.cell] + dataList.forEach((item,index) =>{ + if(index>=result.start && index<=result.end){ + item[result.cell] = val + } + }) + } + gridOptions.menuConfig.body.options[0][5].disabled=false + break + } + case 'copyAll' :{ + let result = toolbarButtonClickEvent() + if(result){ + const dataList = xGrid.value.getTableData().visibleData + const val = dataList[result.start][result.cell] + dataList.forEach((item,index) =>{ + if(index>=result.start ){ + item[result.cell] = val + } + }) + } + gridOptions.menuConfig.body.options[0][5].disabled=false + break + } + case 'clearChecked' :{ + let result = toolbarButtonClickEvent() + if(result){ + const dataList = xGrid.value.getTableData().visibleData + dataList.forEach((item,index) =>{ + if(index>=result.start && index<=result.end){ + item[result.cell] = '' + } + }) + } + gridOptions.menuConfig.body.options[0][5].disabled=false + break + } + case 'computedMoney' :{ + const dataList = xGrid.value.getTableData().fullData + dataList.forEach((item,index) =>{ + item.area = area(item) + item.grossArea = countArea(item) + item.computeArea = item.area + item.computeGrossArea = item.grossArea + item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) + }) + titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString() + + gridOptions.menuConfig.body.options[0][5].disabled=true break } } @@ -297,8 +382,11 @@ const { row } = params productVisible.value = true rowIndex=row - //console.log(row) - //alert("鎴戞墦寮�浜嗕骇鍝佺晫闈�") + }, + cellClick({ row }){ + rowClickIndex.value = row + //鍙抽敭鑿滃崟鍒犻櫎鍚敤 + gridOptions.menuConfig.body.options[0][1].disabled=false } } //鑾峰彇瀛愰〉闈骇鍝佹柟娉� @@ -308,20 +396,25 @@ productVisible.value = false } + + //鍒濆鍖栧垽鏂槸鍚︽湁id浼犲叆 onMounted(()=>{ + //鍚敤琛ㄦ牸鎷栧姩閫変腑 + addListener(xGrid.value,gridOptions) 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){ + console.log(res.data.order) titleUploadData.value = res.data.order //鍙栨秷宸ヨ壓鎸夐挳绂佺敤 gridOptions.toolbarConfig.buttons[1].disabled = false //宸ヨ壓瀹℃牳鍚庝繚瀛樻寜閽鐢� if(res.data.order.processReview === 2){ - gridOptions.toolbarConfig.buttons[3].disabled = true + gridOptions.toolbarConfig.buttons[4].disabled = true } //鍙栨秷瀹℃牳鎸夐挳绂佺敤 if(res.data.order.processReview === 2 && res.data.order.orderReview === 0){ @@ -333,12 +426,13 @@ gridOptions.toolbarConfig.buttons[2].disabled = false gridOptions.toolbarConfig.buttons[2].code='reviews' gridOptions.toolbarConfig.buttons[2].name='鍙嶅' + gridOptions.toolbarConfig.buttons[3].disabled = false } if(res.data.order.productionOrder !==0 ){ gridOptions.toolbarConfig.buttons[2].disabled = true } - + //鍔犺浇鍓〃鏁版嵁 xGrid.value.reloadData(res.data.orderDetails) }else{ ElMessage.error(res.msg) @@ -377,6 +471,24 @@ } }) } + +//鏇存柊閲戦 +const updateMoney = () => { + const updateData = { + order: titleUploadData.value, + detail: xGrid.value.getTableData().fullData + } + request.post(`/order/updateOrderMoney`,updateData).then(res => { + if (res.code == 200){ + ElMessage.success('鏇存柊閲戦鎴愬姛') + router.push({path:'/main/order/createOrder',query:{orderId:titleUploadData.value.orderId,random:Math.random()}}) + } + + }) + +} + + // 瀹℃牳璁㈠崟 const reviewOrder = (state) => { request.post(`/order/reviewOrderById/${titleUploadData.value.orderId}/${state}`).then(res =>{ @@ -475,8 +587,6 @@ - - </script> <template> @@ -557,7 +667,7 @@ <el-col :span="2"><el-text>璁$畻鏂瑰紡锛�</el-text></el-col> <el-col :span="2"> <el-select v-model="titleUploadData.calculateType" clearable placeholder=" " > - <el-option value="1" label="闈㈢Н閲戦锛堝崟鐗囷級"/> + <el-option :value="1" label="闈㈢Н閲戦锛堝崟鐗囷級"/> </el-select> </el-col> <el-col :span="2"><el-text>*涓氬姟鍛橈細</el-text></el-col> @@ -641,6 +751,12 @@ <el-dialog v-model="productVisible" style="width: 80%;height:75% "> <select-product :rowIndex="rowIndex" @getProductRow="getProductRow" style="width: 100%;height: 100%" /> </el-dialog> +<!--閫変腑琛ㄦ牸 --> +<!-- <div class="vxe-table--cell-area" ref="cellArea" >--> +<!-- <span class="vxe-table--cell-main-area" ></span>--> + +<!-- <span class="vxe-table--cell-active-area" ></span>--> +<!-- </div>--> </div> </template> @@ -667,5 +783,12 @@ width: 100%; height: 85%; } + .vxe-grid { + /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } </style> \ No newline at end of file -- Gitblit v1.8.0