From 66dcbf3fcfc3bb27a5619626d24ce19f50a4b79f Mon Sep 17 00:00:00 2001 From: chenlu <1320612696@qq.com> Date: 星期五, 26 一月 2024 16:04:58 +0800 Subject: [PATCH] 工单管理查询前后端代码文件;pp模块实体类修改 --- north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue | 377 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 223 insertions(+), 154 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue b/north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue index 9789002..6bd8678 100644 --- a/north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue @@ -1,21 +1,58 @@ <script setup> +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 {reactive, ref} from "vue"; -import {useRouter} from 'vue-router' -let router=useRouter() -const getTableRow = (row,type) =>{ + +let productGlassTypeStore = useProductGlassTypeStore() +let router = useRouter() +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 } } } + + + +function padLeftZero(str) { + return ('00' + str).substr(str.length) +} + +//瀹氫箟鏃堕棿 +const form = reactive({ + date1: '', +}) + + +//瀹氫箟杞崟鐘舵�� +const optionVal = ref('0') +const options = [ + { + value: '0', + label: '宸茶浆', + }, + { + value: '1', + label: '鏈浆', + }, +] + //琛ㄥ熬姹傚拰 const sumNum = (list, field) => { @@ -26,21 +63,156 @@ return count.toFixed(2) } +//瀹氫箟婊氬姩鏉¢珮搴� +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 + +//鑾峰彇涓冨ぉ鍓嶅埌褰撳墠鏃堕棿 +function getNowTime() { + const start = new Date(new Date().getTime()- 3600 * 1000 * 24 * 7) + .toISOString() + .replace('T', ' ') + .slice(0,10) //榛樿寮�濮嬫椂闂�7澶╁墠 + const end = new Date(new Date().getTime()) + .toISOString() + .replace('T', ' ') + .slice(0,10)//榛樿缁撴潫鏃堕棿褰撳墠鏃堕棿 + return [start, end] +} + + +//绗竴娆″姞杞借幏鍙栬繎涓冨ぉ鏃堕棿鍜岄粯璁ょ姸鎬� +form.date1=getNowTime() +let startTime = form.date1[0] +let endTime = form.date1[1] +let state = optionVal.value + +//绗竴娆″姞杞芥暟鎹� + +request.post(`/workOrder/orderGlassDetail/${startTime}/${endTime}/${state}`, filterData.value).then((res) => { + + if (res.code == 200) { + console.log(res.data.data) + 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 getWorkOrder = () => { + + let startTime = form.date1[0] + let endTime = form.date1[1] + let selectState=optionVal.value + request.post(`/workOrder/orderGlassDetail/${startTime}/${endTime}/${selectState}`, filterData.value).then((res) => { + if (res.code == 200) { + + pageTotal.value = res.data.total + xGrid.value.loadData(res.data.data) + gridOptions.loading = false + } else { + ElMessage.warning(res.msg) + } + }) +} + +/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/ +const changeFilterEvent = (event, option, $panel,) => { + // 鎵嬪姩瑙﹀彂绛涢�� + $panel.changeOption(event, !!option.data, option) +} + +function filterChanged(column) { + gridOptions.loading = true + //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖� + let value = column.datas[0] != undefined ? column.datas[0] : '' + value = value.trim() + //鍒ゆ柇鏄惁瀛樺湪澶栭敭 + if (column.property.indexOf('.') > -1) { + const columnArr = column.property.split('.') + filterData.value[columnArr[0]] = { + [columnArr[1]]: value + } + } else { + filterData.value[column.property] = value + } + +//鑾峰彇閫変腑鏃堕棿鍜屾槸鍚﹁浆鍗曠姸鎬� + let startTime = form.date1[0] + let endTime = form.date1[1] + let selectState=optionVal.value + + request.post(`/workOrder/orderGlassDetail/${startTime}/${endTime}/${selectState}`, filterData.value).then((res) => { + if(res.code==200){ + pageTotal.value=res.data.total + + produceList = deepClone(res.data.data) + xGrid.value.loadData(produceList) + gridOptions.loading=false + }else{ + ElMessage.warning(res.msg) + } + }) +} + +/*鍚庣杩斿洖缁撴灉澶氬眰宓屽灞曠ず*/ +const hasDecimal = (value) => { + const regex = /\./; // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐� + return regex.test(value); // 杩斿洖true/false +} + //瀛愮粍浠舵帴鏀跺弬鏁� +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: 60, useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒 + 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,22 +228,28 @@ mode: 'row', showStatus: true },//琛ㄥご鍙傛暟 - columns:[ - {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, - {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left"}, - { type: 'seq',fixed:"left", title: '鑷簭', width: 50 }, - {field: 'salesOrderNo', title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, }, - {field: 'productionOrderNo', title: '鐢熶骇璁㈠崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, - {field: 'batch', title: '鎵规', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, - {field: 'productName', title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, - {field: 'monolithicTotalArea', title: '鍗曠墖鎬婚潰绉�', sortable: true,showOverflow:"ellipsis"}, - {field: 'total', title: '鎬绘暟閲�', sortable: true}, - {field: 'productTotalArea', title: '鎴愬搧鎬婚潰绉�', sortable: true}, - {field: 'perimeter', title: '鍛ㄩ暱', sortable: true,showOverflow:"ellipsis"}, - {field: 'radius', title: '鍗婂緞', sortable: true}, - {field: 'createTime', title: '鍔犲伐瑕佹眰', sortable: true} + columns: [ + {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, + {title: '鎿嶄綔', width: 110, slots: {default: 'button_slot'}, fixed: "left"}, + {type: 'seq', fixed: "left", title: '鑷簭', width: 50}, + {field: 'orderId', title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'},}, + { + field: 'productionId', + title: '鐢熶骇璁㈠崟鍙�', + showOverflow: "ellipsis", + filters: [{data: ''}], + slots: {filter: 'num1_filter'} + }, + {field: 'order.batch', title: '鎵规', filters: [{data: ''}], slots: {filter: 'num1_filter'}}, + {field: 'orderDetail.productName', title: '浜у搧鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'},}, + {field: 'orderDetail.computeArea', title: '鍗曠墖鎬婚潰绉�', showOverflow: "ellipsis"}, + {field: 'orderDetail.quantity', title: '鎬绘暟閲�',}, + {field: 'orderDetail.computeGrossArea', title: '鎴愬搧鎬婚潰绉�',}, + {field: 'orderDetail.perimeter', title: '鍛ㄩ暱', showOverflow: "ellipsis"}, + {field: 'orderDetail.bendRadius', title: '鍗婂緞',}, + {field: 'orderDetail.processingNote', title: '鍔犲伐瑕佹眰',} ],//琛ㄥご鎸夐挳 - + data: null,//琛ㄦ牸鏁版嵁 toolbarConfig: { // buttons: [{ // @@ -82,103 +260,10 @@ zoom: true, custom: true }, - data: [ - { - salesOrderNo: 'NG231201', - productionOrderNo: 'NG231201A', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - { - salesOrderNo: 'NG231201', - productionOrderNo: 'NG231201B', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - { - salesOrderNo: 'NG231202', - productionOrderNo: 'NG231202A', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - { - salesOrderNo: 'NG231203', - productionOrderNo: 'NG231203A', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - { - salesOrderNo: 'NG231204', - productionOrderNo: 'NG231204A', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - { - salesOrderNo: 'NG231205', - productionOrderNo: 'NG231205A', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - { - salesOrderNo: 'NG231206', - productionOrderNo: 'NG231206A', - entryName: '淇″悎鏄ュぉ閲�', - batch: '23鎵�', - productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)', - monolithicTotalArea: '509.78', - total: '169', - productTotalArea: '175.31', - perimeter: '99.84', - radius: '0', - createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��', - }, - ],//table body瀹為檯鏁版嵁 //鑴氶儴姹傚拰 - footerMethod ({ columns, data }) {//椤佃剼鍑芥暟 - let footList=['total','monolithicTotalArea','productTotalArea'] - return[ + footerMethod({columns, data}) {//椤佃剼鍑芥暟 + let footList = ['', '', ''] + return [ columns.map((column, columnIndex) => { if (columnIndex === 0) { return '鍚堣:' @@ -193,32 +278,6 @@ }) -const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', -}) - -const value = ref('') -const options = [ - { - value: 'Option1', - label: 'Option1', - }, - { - value: 'Option2', - label: 'Option2', - }, - { - value: 'Option3', - label: 'Option3', - }, -] </script> @@ -229,12 +288,15 @@ <el-date-picker v-model="form.date1" type="daterange" + format="YYYY/MM/DD" + value-format="YYYY-MM-DD" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" :default-time="defaultTime" + /> - <el-select v-model="value" class="m-2" placeholder="鏄惁杞伐鍗�"> + <el-select :default-first-option="true" ref="getSelect" style="width: 120px" v-model="optionVal" class="m-2" placeholder="鏄惁杞伐鍗�"> <el-option v-for="item in options" :key="item.value" @@ -243,7 +305,11 @@ /> </el-select> - <el-button type="primary">鏌ヨ</el-button> + <el-button + @click="getWorkOrder" + id="select" + type="primary" :icon="Search">鏌ヨ + </el-button> </el-row> </div> @@ -261,7 +327,9 @@ <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> - <span>{{ row[item.field] }}</span> + <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span> + <span v-else>{{ row[item.field] }}</span> + </li> </ul> </template> @@ -286,10 +354,11 @@ </template> <style scoped> -.main-div-customer{ +.main-div-customer { width: 99%; height: 100%; } + #selectForm { width: 50%; text-align: center; -- Gitblit v1.8.0