From 736dd5afb982ce1c19b15633ffd3495f6f8822ec Mon Sep 17 00:00:00 2001 From: chenlu <1320612696@qq.com> Date: 星期二, 20 二月 2024 16:19:38 +0800 Subject: [PATCH] 工单管理转生产订单、删除,流程卡管理部分查询相关代码 --- north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue | 191 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 142 insertions(+), 49 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue b/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue index d6a2423..cf516a9 100644 --- a/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue @@ -1,21 +1,86 @@ <script setup> -import {reactive} from "vue"; -import {useRouter} from 'vue-router' -let router=useRouter() -const getTableRow = (row,type) =>{ +import request from "@/utils/request" +import deepClone from "@/utils/deepClone" +import {ElDatePicker, ElMessage} from "element-plus" +import useProductGlassTypeStore from "@/stores/sd/product/productGlassType" +import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue" +import {Search} from "@element-plus/icons-vue" +import GlassType from "@/components/sd/product/GlassType.vue" +import {useRouter} from 'vue-router' +import Sortable from 'sortablejs' +import BasicTable from '@/components/basic/BasicTable.vue' +import {VXETable} from "vxe-table"; +import useUserInfoStore from "@/stores/userInfo"; + +let router = useRouter() +const userStore = useUserInfoStore() +const username = userStore.user.userName +const getTableRow = (row, type) => { switch (type) { - case 'edit' :{ + case 'edit' : { //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅') - router.push({path: '/main/workOrder/addWorkOrder', query: { id: row.id }}) + router.push({path: '/main/workOrder/addWorkOrder', query: {id: row.id}}) break } - case 'delete':{ + case 'delete': { alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅') break } } } + + +//瀹氫箟婊氬姩鏉¢珮搴� +let scrollTop = ref(null) +let scrollHeight = ref(null) +let clientHeight = ref(null) +const scrollEvnt = (row) => { + // 鍐呭楂樺害 + scrollTop.value = row.$event.target.scrollTop + scrollHeight.value = row.$event.target.scrollHeight + clientHeight.value = row.$event.target.clientHeight +} +//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹� +let filterData = ref({ + order: { + batch: '' + }, + orderDetail: { + productName: '', + computeArea: '', + quantity: '', + computeGrossArea: '', + perimeter: '', + bendRadius: '', + processingNote: '' + } + +}) +//瀹氫箟椤甸潰鎬婚〉鏁� +let pageTotal = ref('') +//瀹氫箟鏁版嵁杩斿洖缁撴灉 +let produceList = ref([]) +//瀹氫箟褰撳墠椤垫暟 +let pageNum = $ref(1) +let pageState = null + +const {currentRoute} = useRouter() +const route = currentRoute.value + +let id = route.query.orderId + +request.post(`/workOrder/addWork/${id}`, filterData.value).then((res) => { + + if (res.code == 200) { + pageTotal.value = res.data.total + produceList = produceList.value.concat(deepClone(res.data.data)) + xGrid.value.reloadData(produceList) + gridOptions.loading = false + } else { + ElMessage.warning(res.msg) + } +}) //琛ㄥ熬姹傚拰 const sumNum = (list, field) => { @@ -27,20 +92,22 @@ } //瀛愮粍浠舵帴鏀跺弬鏁� - +const xGrid = ref() const gridOptions = reactive({ - border: "full",//琛ㄦ牸鍔犺竟妗� + loading: true, + border: "full",//琛ㄦ牸鍔犺竟妗� keepSource: true,//淇濇寔婧愭暟鎹� align: 'center',//鏂囧瓧灞呬腑 - stripe:true,//鏂戦┈绾� - rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒 - id: 'CustomerList', + stripe: true,//鏂戦┈绾� + rowConfig: {isCurrent: true, isHover: true, height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒 + id: 'demo_1', showFooter: true,//鏄剧ず鑴� printConfig: {}, importConfig: {}, exportConfig: {}, - scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔� - showOverflow:true, + scrollX: {enabled: true}, + scrollY: {enabled: true, gt: 0},//寮�鍚櫄鎷熸粴鍔� + showOverflow: true, columnConfig: { resizable: true, useKey: true @@ -56,21 +123,28 @@ mode: 'row', showStatus: true },//琛ㄥご鍙傛暟 - columns:[ - {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, - { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: 80 }, - { type: 'seq',fixed:"left", title: '鑷簭', width: 50 }, - {field: 'salesOrderNo', title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, }, - {field: 'productID', title: '浜у搧缂栧彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, - {field: 'productName', title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'total', title: '鎬绘暟閲�', sortable: true}, - {field: 'totalArea', title: '鎬婚潰绉�', sortable: true}, - {field: 'perimeter', title: '鍛ㄩ暱', sortable: true,showOverflow:"ellipsis"}, + columns: [ + {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, + {type: 'checkbox', fixed: "left", title: '閫夋嫨', width: 80}, + {type: 'seq', fixed: "left", title: '鑷簭', width: 50}, + {field: 'orderId', title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true,}, + { + field: 'productId', + title: '浜у搧缂栧彿', + sortable: true, + showOverflow: "ellipsis", + filters: [{data: ''}], + slots: {filter: 'num1_filter'} + }, + {field: 'productName', title: '浜у搧鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, + {field: 'quantity', title: '鎬绘暟閲�', sortable: true}, + {field: 'computeGrossArea', title: '鎬婚潰绉�', sortable: true}, + {field: 'perimeter', title: '鍛ㄩ暱', sortable: true, showOverflow: "ellipsis"}, ],//琛ㄥご鎸夐挳 toolbarConfig: { buttons: [ - {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'}, + {code: 'saveWorkOrder', name: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save'}, ], import: false, export: true, @@ -78,28 +152,11 @@ zoom: true, custom: true }, - data: [ - { - salesOrderNo: 'NG231201', - productID: '9001010208000021', - productName: '6mm瓒呯櫧UD60骞抽挗(澶�)+12A(缁�)+6mm瓒呯櫧骞抽挗(鍐�)', - total:"123", - totalArea:"1233.12", - perimeter:"133" - }, - { - salesOrderNo: 'NG231201', - productID: '9001010203000008', - productName: '6mm瓒呯櫧LYDE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)', - total:"123", - totalArea:"1233.12", - perimeter:"133" - }, - ],//table body瀹為檯鏁版嵁 + data: null,//琛ㄦ牸鏁版嵁 //鑴氶儴姹傚拰 - footerMethod ({ columns, data }) {//椤佃剼鍑芥暟 - let footList=['total','totalArea'] - return[ + footerMethod({columns, data}) {//椤佃剼鍑芥暟 + let footList = ['total', 'totalArea'] + return [ columns.map((column, columnIndex) => { if (columnIndex === 0) { return '鍚堣:' @@ -114,7 +171,42 @@ }) +const gridEvents = { + toolbarButtonClick({code}) { + const $grid = xGrid.value + if ($grid) { + switch (code) { + case 'saveWorkOrder': { + const $table = xGrid.value + if ($table) { + const selectRecords = $table.getCheckboxRecords() + let workOrderData = ref({ + orderdetail: selectRecords, + userName:username + }) + + console.log(workOrderData.value) + request.post("/workOrder/addOrderWork", workOrderData.value).then((res) => { + if (res.code == 200) { + ElMessage.success("淇濆瓨鎴愬姛") + location.reload(); + } else { + ElMessage.warning(res.msg) + router.push("/login") + } + }) + + } + return; + + } + + } + } + }, + +} </script> @@ -126,14 +218,15 @@ class="mytable-scrollbar" ref="xGrid" v-bind="gridOptions" + v-on="gridEvents" > <!-- @toolbar-button-click="toolbarButtonClickEvent"--> <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�--> <template #content="{ row }"> <ul class="expand-wrapper"> - <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> - <span style="font-weight: bold">{{item.title+': '}}</span> + <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> + <span style="font-weight: bold">{{ item.title + ': ' }}</span> <span>{{ row[item.field] }}</span> </li> </ul> @@ -159,7 +252,7 @@ </template> <style scoped> -.main-div-customer{ +.main-div-customer { width: 99%; height: 100%; } -- Gitblit v1.8.0