From 84138b3f42b218ecc2efaa54ec31a1c1be29e326 Mon Sep 17 00:00:00 2001 From: liuying <1427574514@qq.com> Date: 周一, 25 11月 2024 19:30:59 +0800 Subject: [PATCH] 前端页面 --- LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/index.vue | 605 +++- LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/index.vue | 675 +++--- LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts | 2 LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/ContentView.vue | 88 LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/storageView.ts | 4 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/component/openAllprop.vue | 122 LA24030_LuLiPackageLine_Web/src/views/home/index.vue | 255 +- LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts | 6 LA24030_LuLiPackageLine_Web/src/views/main/PrintCenter/wmsStockQuanPrint/index.vue | 68 /dev/null | 1774 ---------------- LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/index.vue | 713 +++-- LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/备份index.vue | 399 +++ LA24030_LuLiPackageLine_Web/src/theme/index.scss | 2 LA24030_LuLiPackageLine_Web/src/views/main/inventoryWarning/transitionChart/index.vue | 12 LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/CountView.vue | 44 LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchaseDetails.ts | 4 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllprop.vue | 1159 ++++++++++ LA24030_LuLiPackageLine_Web/src/views/main/WmsBase/wmsSubstituteGood/index.vue | 470 ++-- 18 files changed, 3,236 insertions(+), 3,166 deletions(-) diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/storageView.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/storageView.ts index 5b410bd..db287cf 100644 --- a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/storageView.ts +++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/storageView.ts @@ -1,6 +1,8 @@ import request from '/@/utils/request'; enum Api { - STORAGE_VIEW='/api/wmsPlaceContainerInfo/list', + // STORAGE_VIEW='/api/wmsPlaceContainerInfo/list', + STORAGE_VIEW='/api/wmsBasePlace/listView', + } // 澧炲姞鍒嗘嫞淇℃伅 diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts index 61d73db..48c02ec 100644 --- a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts +++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts @@ -3,7 +3,7 @@ AddWmsStockQuan = '/api/wmsStockQuan/add', DeleteWmsStockQuan = '/api/wmsStockQuan/delete', UpdateWmsStockQuan = '/api/wmsStockQuan/update', - PageWmsStockQuan = '/api/wmsStockQuan/pageView', + PageWmsStockQuan = '/api/wmsStockQuan/page', //888 PageStockQuanForUse= '/api/wmsStockQuan/getStockQuanPageForUse', ListWmsStockQuan = '/api/wmsStockQuan/list', DetailWmsStockQuan = '/api/wmsStockQuan/detail', diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts index bf891e8..da6522b 100644 --- a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts +++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts @@ -3,8 +3,8 @@ AddWmsOrderPurchase = '/api/wmsOrderPurchase/add', DeleteWmsOrderPurchase = '/api/wmsOrderPurchase/delete', UpdateWmsOrderPurchase = '/api/wmsOrderPurchase/update', - PageWmsOrderPurchase = '/api/wmsOrderPurchase/page', - ListWmsOrderPurchase = '/api/wmsOrderPurchase/list', + PageWmsOrderPurchase = '/api/wmsStockQuan/list', ///api/wmsOrderPurchase/page + ListWmsOrderPurchase = '/api/wmsStockQuan/list', DetailWmsOrderPurchase = '/api/wmsOrderPurchase/detail', ImportExcelWmsOrderPurchase = '/api/wmsOrderPurchase/importExcel', DownloadExcelTemplateWmsOrderPurchase = '/api/wmsOrderPurchase/downloadExcelTemplate', @@ -39,7 +39,7 @@ export const pageWmsOrderPurchase = (params?: any) => request({ url: Api.PageWmsOrderPurchase, - method: 'post', + method: 'get', data: params, }); diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchaseDetails.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchaseDetails.ts index ba07c74..ae2f48b 100644 --- a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchaseDetails.ts +++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchaseDetails.ts @@ -3,7 +3,7 @@ AddWmsOrderPurchaseDetails = '/api/wmsOrderPurchaseDetails/add', DeleteWmsOrderPurchaseDetails = '/api/wmsOrderPurchaseDetails/delete', UpdateWmsOrderPurchaseDetails = '/api/wmsOrderPurchaseDetails/update', - PageWmsOrderPurchaseDetails = '/api/wmsOrderPurchaseDetails/page', + PageWmsOrderPurchaseDetails = '/api/wmsStockQuan/page', PageWmsOrderPurchaseDetailsForRelatedAsn = '/api/WmsOrderPurchaseDetails/PageForRelatedAsn', ListWmsOrderPurchaseDetails = '/api/wmsOrderPurchaseDetails/list', DetailWmsOrderPurchaseDetails = '/api/wmsOrderPurchaseDetails/detail', @@ -33,7 +33,7 @@ data: params, }); -// 鍒嗛〉鏌ヨPO鍗曟槑缁� +// 88888888 export const pageWmsOrderPurchaseDetails = (params?: any) => request({ url: Api.PageWmsOrderPurchaseDetails, diff --git a/LA24030_LuLiPackageLine_Web/src/theme/index.scss b/LA24030_LuLiPackageLine_Web/src/theme/index.scss index 2c4f178..020f5f7 100644 --- a/LA24030_LuLiPackageLine_Web/src/theme/index.scss +++ b/LA24030_LuLiPackageLine_Web/src/theme/index.scss @@ -3,7 +3,7 @@ @import 'common/transition.scss'; @import './other.scss'; @import './element.scss'; -@import './media/media.scss'; +// @import './media/media.scss'; @import './waves.scss'; @import './dark.scss'; @import './iconfont/font_2298093_rnp72ifj3ba.scss'; diff --git a/LA24030_LuLiPackageLine_Web/src/views/home/index.vue b/LA24030_LuLiPackageLine_Web/src/views/home/index.vue index 20d3c5e..6ae4a8f 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/home/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/home/index.vue @@ -1,12 +1,12 @@ <template> <div class="home-container layout-pd"> - <el-row :gutter="15" class="home-card-one mb15"> + <el-row :gutter="15" class="home-card-one mb15"> <el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8" class="home-media home-media-lg"> <div class="home-card-item flex"> <div class="flex-margin flex w100" :class="` home-one-animation${1}`"> <div class="flex-auto"> <span class="ml5 font16">褰撴棩璁㈠崟鎬绘暟</span> - <div class="font30">{{state.orderNum}}</div> + <div class="font30">{{ state.orderNum }}</div> </div> </div> </div> @@ -14,13 +14,13 @@ <el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8" v-for="(v, k) in state.homeOne" :key="k" :class="{ 'home-media home-media-lg': k > 1, 'home-media-sm': k === 1 }"> <div class="home-card-item flex"> <div class="flex-margin flex w100" :class="` home-one-animation${k}`"> - <div class="flex-auto"> + <div class="flex-auto"> <div class="mt10">{{ v.num3 }}</div> <span class="font30">{{ v.num2 }}</span> - <div class="font16" :style="{ color: v.color1 }">宸插畬鎴恵{ v.num1 }}</div> + <div class="font16" :style="{ color: v.color1 }">宸插畬鎴恵{ v.num1 }}</div> </div> <div class="home-card-item-icon flex"> - <el-progress type="circle" width="80" :stroke-width="10" :percentage="v.numA" :color="v.color1"/> + <el-progress type="circle" width="80" :stroke-width="10" :percentage="v.numA" :color="v.color1" /> </div> </div> </div> @@ -33,7 +33,6 @@ </div> </el-col> <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8" class="home-media"> - <div class="home-card-item"> <div class="home-card-item-title">蹇嵎瀵艰埅宸ュ叿</div> <div class="home-monitor"> @@ -50,36 +49,34 @@ </div> </div> </div> - - </el-col> </el-row> <el-row :gutter="15" class="home-card-three"> <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8"> - <div class="home-card-item"> + <div class="home-card-item"> <div style="height: 100%" ref="homePieRef"></div> </div> </el-col> <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16" class="home-media"> - <div class="home-card-item" > - <el-tabs v-model="activeName" @tab-click="handleClick" :lazy="true"> + <div class="home-card-item"> + <el-tabs v-model="activeName" @tab-click="handleClick" :lazy="true"> <el-tab-pane label="鏃�" name="1"> - <div class="home-card-item" > - <div style="height: 100%" ref="homeBarRef" id="homeBarRef" v-if="activeName=='1'"></div> + <div class="home-card-item"> + <div style="height: 100%" ref="homeBarRef" id="homeBarRef" v-if="activeName == '1'"></div> </div> </el-tab-pane> <el-tab-pane label="鍛�" name="2"> - <div class="home-card-item" > - <div style="height: 100%" ref="homeBarRef" id="homeBarRef" v-if="activeName=='2'"></div> + <div class="home-card-item"> + <div style="height: 100%" ref="homeBarRef" id="homeBarRef" v-if="activeName == '2'"></div> </div> </el-tab-pane> <el-tab-pane label="鏈�" name="3"> - <div class="home-card-item" > - <div style="height: 100%" ref="homeBarRef" id="homeBarRef" v-if="activeName=='3'"></div> + <div class="home-card-item"> + <div style="height: 100%" ref="homeBarRef" id="homeBarRef" v-if="activeName == '3'"></div> </div> </el-tab-pane> </el-tabs> - </div> + </div> </el-col> </el-row> </div> @@ -91,105 +88,105 @@ import { storeToRefs } from 'pinia'; import { useThemeConfig } from '/@/stores/themeConfig'; import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes'; -import { wmsStockPassMap,wmsHomePageQuery,wmsHomePlaceQuery,wmsTransitionDiagramQuery } from '/@/api/main/inventoryWarning/inventoryWarning'; -import type { TabsPaneContext } from 'element-plus' +import { wmsStockPassMap, wmsHomePageQuery, wmsHomePlaceQuery, wmsTransitionDiagramQuery } from '/@/api/main/inventoryWarning/inventoryWarning'; +import type { TabsPaneContext } from 'element-plus'; import { useRoute, useRouter } from 'vue-router'; const router = useRouter(); // 鎺ュ彛鏁版嵁 const loadingwms = ref(false); // 鏌ヨ const handleQuery1 = async () => { - loadingwms.value = true; - var res = await wmsHomePageQuery(); - if(res.data.type=="success"){ - let result = res.data.result || []; - state.orderNum = result.allOrderNumber || 0 - state.homeOne[0].num1 = result.outtingPlaceNumber || 0 - state.homeOne[0].num2 = result.allOuttingNumber || 0 - state.homeOne[0].numA = Math.round((result.outtingPlaceNumber || 0) / (result.allOuttingNumber || 0) * 10000) / 100 || 0 - state.homeOne[1].num1 = result.warehousingNumber || 0 - state.homeOne[1].num2 = result.allWarehousingNumber || 0 - state.homeOne[1].numA = Math.round((result.warehousingNumber || 0) / (result.allWarehousingNumber || 0)* 10000) / 100 || 0 - - } - loadingwms.value = false; + loadingwms.value = true; + // var res = await wmsHomePageQuery(); + // if(res.data.type=="success"){ + // let result = res.data.result || []; + // state.orderNum = result.allOrderNumber || 0 + // state.homeOne[0].num1 = result.outtingPlaceNumber || 0 + // state.homeOne[0].num2 = result.allOuttingNumber || 0 + // state.homeOne[0].numA = Math.round((result.outtingPlaceNumber || 0) / (result.allOuttingNumber || 0) * 10000) / 100 || 0 + // state.homeOne[1].num1 = result.warehousingNumber || 0 + // state.homeOne[1].num2 = result.allWarehousingNumber || 0 + // state.homeOne[1].numA = Math.round((result.warehousingNumber || 0) / (result.allWarehousingNumber || 0)* 10000) / 100 || 0 + + // } + loadingwms.value = false; }; const handleQuery2 = async () => { -loadingwms.value = true; -var res = await wmsHomePlaceQuery(); -if(res.data.type=="success"){ - let result = res.data.result || {}; - nextTick(() => { - setTimeout(() => { - initPieChart(result); - }, 500); - }); -} -loadingwms.value = false; + loadingwms.value = true; + // var res = await wmsHomePlaceQuery(); + // if (res.data.type == 'success') { + // let result = res.data.result || {}; + // nextTick(() => { + // setTimeout(() => { + // initPieChart(result); + // }, 500); + // }); + // } + loadingwms.value = false; }; const dataAll = ref({ - arr1:[], - arr2:[], - arr3:[], - arr4:[], - arr5:[] -}) -const handleQuery3 = async (val:any) => { + arr1: [], + arr2: [], + arr3: [], + arr4: [], + arr5: [], +}); +const handleQuery3 = async (val: any) => { dataAll.value.arr1 = []; dataAll.value.arr2 = []; dataAll.value.arr3 = []; dataAll.value.arr4 = []; dataAll.value.arr5 = []; loadingwms.value = true; - let para = {DayOrWeekOrMonth:Number(val)} + let para = { DayOrWeekOrMonth: Number(val) }; var res = await wmsStockPassMap(para); - if(res.data.type=="success"){ + if (res.data.type == 'success') { let result = res.data.result || []; - result.forEach((item:any,index:number) => { - dataAll.value.arr1.push({value:item.inWare,stationName:'s'+item.time}) - dataAll.value.arr2.push({value:item.outWare,stationName:'s'+item.time}) - dataAll.value.arr3.push({value:item.stockNum,stationName:'s'+item.time}) - dataAll.value.arr4.push({value:item.aveStockNum,stationName:'s'+item.time}) - dataAll.value.arr5.push(item.date) - }) + result.forEach((item: any, index: number) => { + dataAll.value.arr1.push({ value: item.inWare, stationName: 's' + item.time }); + dataAll.value.arr2.push({ value: item.outWare, stationName: 's' + item.time }); + dataAll.value.arr3.push({ value: item.stockNum, stationName: 's' + item.time }); + dataAll.value.arr4.push({ value: item.aveStockNum, stationName: 's' + item.time }); + dataAll.value.arr5.push(item.date); + }); nextTick(() => { setTimeout(() => { if (!state.global.dispose.some((b: any) => b === state.global.homeCharThree)) state.global.homeCharThree.dispose(); - initChart() + initChart(); }, 500); }); } loadingwms.value = false; }; const handleQuery4 = async () => { -loadingwms.value = true; -var res = await wmsTransitionDiagramQuery(); -if(res.data.type=="success"){ - let arr1: any[] = []; - let arr2: any = []; - let arrA: any = []; - let result = res.data.result || []; - result.forEach((item:any,index:number) => { - arr1.push(item.receiptNumber) - arr2.push(item.deliveryNumber) - arrA.push(item.day.slice(0, 10)) - }) - nextTick(() => { - setTimeout(() => { - initLineChart(arr1,arr2,arrA); - }, 500); - }); -} -loadingwms.value = false; -}; -handleQuery1(); -handleQuery2(); -handleQuery3('1'); -handleQuery4(); -const activeName = ref('1') + loadingwms.value = true; + var res = await wmsTransitionDiagramQuery(); + if (res.data.type == 'success') { + let arr1: any[] = []; + let arr2: any = []; + let arrA: any = []; + let result = res.data.result || []; + result.forEach((item: any, index: number) => { + arr1.push(item.receiptNumber); + arr2.push(item.deliveryNumber); + arrA.push(item.day.slice(0, 10)); + }); + nextTick(() => { + setTimeout(() => { + initLineChart(arr1, arr2, arrA); + }, 500); + }); + } + loadingwms.value = false; +}; +// handleQuery1(); +// handleQuery2(); +// handleQuery3('1'); +// handleQuery4(); +const activeName = ref('1'); const handleClick = (tab: TabsPaneContext, event: Event) => { - handleQuery3(tab.props.name); -} + handleQuery3(tab.props.name); +}; // 瀹氫箟鍙橀噺鍐呭 const homeLineRef = ref(); @@ -200,7 +197,7 @@ const { themeConfig } = storeToRefs(storesThemeConfig); const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes); const state = reactive({ - orderNum:{}, + orderNum: {}, global: { homeChartOne: null, homeChartTwo: null, @@ -211,7 +208,7 @@ { num1: '0', num2: '0', - numA:0, + numA: 0, num3: '鍑哄簱鍗曟暟', num4: 'fa fa-meetup', color1: '#FF6462', @@ -222,7 +219,7 @@ { num1: '0', num2: '0', - numA:0, + numA: 0, num3: '鍏ュ簱鍗曟暟', num4: 'iconfont icon-ditu', color1: '#6690F9', @@ -254,7 +251,7 @@ // label: '娴呯矇绾�', label: '鍩虹鏁版嵁', value: '搴撲綅淇℃伅', - route:'/wmsbase/wmsplace', + route: '/wmsbase/wmsplace', // value: '2.1%OBS/M', iconColor: '#F72B3F', }, @@ -263,7 +260,7 @@ // label: '娣辩孩(鐚╃孩)', label: '鍗曟嵁绠$悊', value: '涓婃灦鍗�', - route:'/wmsOrder/wmsordermovement', + route: '/wmsOrder/wmsordermovement', // value: '30鈩�', iconColor: '#91BFF8', }, @@ -273,7 +270,7 @@ // label: '娣$传绾�', // value: '57%RH', value: '搴撲綅瑙嗗浘', - route:'/reportCenter/storageView', + route: '/reportCenter/storageView', iconColor: '#88D565', }, { @@ -282,7 +279,7 @@ label: '鐩樼偣绠$悊', value: '鐩樼偣鍗曟嵁', // value: '107w', - route:'/Check/wmsinventorycheckorder', + route: '/Check/wmsinventorycheckorder', iconColor: '#88D565', }, { @@ -291,7 +288,7 @@ // label: '涓传缃楀叞绾�', value: '璺熻釜鐮佹墦鍗�', // value: '57DB', - route:'/printCenter/wmsstockquanPrint', + route: '/printCenter/wmsstockquanPrint', iconColor: '#FBD4A0', }, // { @@ -328,7 +325,7 @@ }); // 鎶樼嚎鍥� -const initLineChart = (arr1:any,arr2:any,arrA:any) => { +const initLineChart = (arr1: any, arr2: any, arrA: any) => { if (!state.global.dispose.some((b: any) => b === state.global.homeChartOne)) state.global.homeChartOne.dispose(); state.global.homeChartOne = markRaw(echarts.init(homeLineRef.value, state.charts.theme)); const option = { @@ -410,21 +407,21 @@ state.myCharts.push(state.global.homeChartOne); }; // 楗煎浘 -const initPieChart = (arr:any) => { - if(arr==null) return false; +const initPieChart = (arr: any) => { + if (arr == null) return false; if (!state.global.dispose.some((b: any) => b === state.global.homeChartTwo)) state.global.homeChartTwo.dispose(); state.global.homeChartTwo = markRaw(echarts.init(homePieRef.value, state.charts.theme)); - var getname = ['绌哄簱浣嶆暟閲�', '绌哄鍣ㄥ簱浣嶆暟閲�', '瀛樿揣鏁伴噺','鎬诲簱浣嶏細1000']; - var getvalue = [arr.emptyPlaceNumber,arr.containerPlaceNumber, arr.stockPlaceNumber]; + var getname = ['绌哄簱浣嶆暟閲�', '绌哄鍣ㄥ簱浣嶆暟閲�', '瀛樿揣鏁伴噺', '鎬诲簱浣嶏細1000']; + var getvalue = [arr.emptyPlaceNumber, arr.containerPlaceNumber, arr.stockPlaceNumber]; var data = []; - for (var i = 0; i < getname.length-1; i++) { + for (var i = 0; i < getname.length - 1; i++) { data.push({ name: getname[i], value: getvalue[i] }); } const colorList = ['#51A3FC', '#36C78B', '#FEC279', '#968AF5', '#E790E8']; const option = { backgroundColor: state.charts.bgColor, title: { - text: '搴撲綅鍗犳瘮 鎬诲簱浣嶏細'+arr.allPlaceNumber, + text: '搴撲綅鍗犳瘮 鎬诲簱浣嶏細' + arr.allPlaceNumber, x: 'left', textStyle: { fontSize: '15', color: state.charts.color }, }, @@ -506,7 +503,7 @@ }, tooltip: { trigger: 'axis' }, //legend: { data: ['鍏ュ簱','鍑哄簱', '搴撳瓨', '骞冲潎'], right: 0 }, - legend: { data: ['涓婃灦','涓嬫灦'], right: 0 }, + legend: { data: ['涓婃灦', '涓嬫灦'], right: 0 }, grid: { top: 50, right: 80, bottom: 100, left: 60 }, // grid: { top: 70, right: 80, bottom: 30, left: 80 }, xAxis: [ @@ -514,7 +511,7 @@ type: 'category', // data: ['1鏈�', '2鏈�', '3鏈�', '4鏈�', '5鏈�', '6鏈�', '7鏈�', '8鏈�', '9鏈�', '10鏈�', '11鏈�', '12鏈�'], // data:dataAll.value.arr5, - data:[], + data: [], boundaryGap: true, axisTick: { show: false }, }, @@ -568,7 +565,7 @@ // { value: 2, stationName: 's6' }, // ], // data:dataAll.value.arr1 - data:[], + data: [], }, { name: '涓嬫灦', @@ -595,7 +592,7 @@ color: '#3bbc86', }, // data:dataAll.value.arr2 - data:[], + data: [], }, // { // name: '骞冲潎', @@ -637,22 +634,22 @@ }; const initChart = () => { if (!state.global.dispose.some((b: any) => b === state.global.homeCharThree)) state.global.homeCharThree.dispose(); - const chart = document.getElementById("homeBarRef") - if (chart!=null) chart.removeAttribute('_echarts_instance_')//瑙e喅鍒囨崲椤甸潰echarts涓嶆樉绀虹殑闂 + const chart = document.getElementById('homeBarRef'); + if (chart != null) chart.removeAttribute('_echarts_instance_'); //瑙e喅鍒囨崲椤甸潰echarts涓嶆樉绀虹殑闂 state.global.homeCharThree = markRaw(echarts.init(chart, state.charts.theme)); //鎵嬪姩璧嬪�� - option.xAxis[0].data = dataAll.value.arr5 - option.series[0].data = dataAll.value.arr1 - option.series[1].data = dataAll.value.arr2 + option.xAxis[0].data = dataAll.value.arr5; + option.series[0].data = dataAll.value.arr1; + option.series[1].data = dataAll.value.arr2; // option.series[2].data = dataAll.value.arr3 // option.series[3].data = dataAll.value.arr4 // 缁樺埗鍥捐〃 state.global.homeCharThree.setOption(option); - state.myCharts.push(state.global.homeCharThree); -} + state.myCharts.push(state.global.homeCharThree); +}; // 鎵归噺璁剧疆 echarts resize -const routerJupm = (v:any) => { +const routerJupm = (v: any) => { router.push(v.route); }; @@ -675,21 +672,21 @@ let timeInter: any = null; // 椤甸潰鍔犺浇鏃� onMounted(() => { - initEchartsResize(); + // initEchartsResize(); - timeInter = setInterval(() => { - nextTick(() => { - handleQuery1(); - handleQuery2(); - handleQuery3('1'); - handleQuery4(); - }); - }, 15000); //璋冪敤棰戠巼鏀逛负 15绉掍竴娆℃煡璇€�� + // timeInter = setInterval(() => { + // nextTick(() => { + // handleQuery1(); + // handleQuery2(); + // handleQuery3('1'); + // handleQuery4(); + // }); + // }, 15000); //璋冪敤棰戠巼鏀逛负 15绉掍竴娆℃煡璇€�� }); onUnmounted(() => { - clearInterval(timeInter); //閿�姣� - timeInter = null; + clearInterval(timeInter); //閿�姣� + timeInter = null; }); // 鐢变簬椤甸潰缂撳瓨鍘熷洜锛宬eep-alive @@ -727,8 +724,6 @@ immediate: true, } ); - - </script> <style scoped lang="scss"> @@ -832,4 +827,4 @@ color: var(--el-text-color-primary); border: 1px solid var(--next-border-color-light); } -</style> \ No newline at end of file +</style> diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/PrintCenter/wmsStockQuanPrint/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/PrintCenter/wmsStockQuanPrint/index.vue index 4e6f171..c715d65 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/PrintCenter/wmsStockQuanPrint/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/PrintCenter/wmsStockQuanPrint/index.vue @@ -135,57 +135,39 @@ <el-table-column align="center" width="60" type="selection" /> <el-table-column type="index" fixed="left" label="搴忓彿" width="55" align="center"/> - <el-table-column prop="snCode" fixed="left" width="230" label="璺熻釜鐮�" show-overflow-tooltip="" /> - <el-table-column prop="quantity" label="搴撳瓨鎬绘暟" show-overflow-tooltip="" /> - <el-table-column prop="containerCode" width="100" label="瀹瑰櫒缂栧彿" show-overflow-tooltip="" /> - <el-table-column prop="placeName" width="100" label="鎵�鍦ㄥ簱浣�" show-overflow-tooltip="" /> - <el-table-column prop="areaName" width="100" label="鎵�鍦ㄥ簱鍖�" show-overflow-tooltip="" /> - <el-table-column prop="materialCode" label="鐗╂枡缂栧彿" min-width="130px" show-overflow-tooltip="" /> - <el-table-column prop="materialName" label="鐗╂枡鍚嶇О" min-width="130px" show-overflow-tooltip="" /> - + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> <el-table-column prop="stockStatus" label="搴撳瓨鐘舵��" show-overflow-tooltip="" > <template #default="scope"> - {{ getEnumDesc(scope.row.stockStatus, getEnumStockStatusData_Index)}} + <el-tag>{{ getEnumDesc(scope.row.stockStatus, getEnumStockStatusData_Index)}}</el-tag> </template> </el-table-column> - <el-table-column prop="qcStatus" label="璐ㄦ鐘舵��" show-overflow-tooltip="" > + <el-table-column prop="stockStatusName" label="搴撳瓨鐘舵�佸悕绉�" show-overflow-tooltip="" /> + <el-table-column prop="operReason" label="鎿嶄綔鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="operUser" label="鎿嶄綔浜�" show-overflow-tooltip="" /> + <el-table-column prop="operTime" label="鎿嶄綔鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="lockStatus" label="閿佸畾鐘舵��" show-overflow-tooltip="" > <template #default="scope"> - {{ getEnumDesc(scope.row.qcStatus, getEnumQCStatusData_Index)}} + <el-tag>{{ getEnumDesc(scope.row.lockStatus, getEnumLockStatusData_Index)}}</el-tag> </template> </el-table-column> - - <!-- <el-table-column prop="lockedQty" label="閿佸畾鏁伴噺" show-overflow-tooltip="" /> --> - - <!-- todo 鍚庨潰鐪嬫�庝箞缁熻杩欎釜搴撳瓨鏁�--> - <!-- <el-table-column prop="inStockQty" label="鍦ㄥ簱鏁伴噺" show-overflow-tooltip="" /> - <el-table-column prop="outStockQty" label="鍑哄簱鏁伴噺" show-overflow-tooltip="" /> - <el-table-column prop="inStockQty" label="鍦ㄥ簱鏁伴噺" show-overflow-tooltip="" /> --> - - <el-table-column prop="supplierBatch" label="渚涘簲鍟嗘壒娆�" show-overflow-tooltip="" /> - <el-table-column prop="batch" label="鎵规" min-width="130px" show-overflow-tooltip="" /> - - <el-table-column prop="recordInsertTime" label="鏀惰揣鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> - <el-table-column prop="supplierCode" label="渚涘簲鍟嗙紪鍙�" show-overflow-tooltip="" /> - <el-table-column prop="supplierName" label="渚涘簲鍟嗗悕绉�" show-overflow-tooltip="" /> - - <el-table-column prop="sN_1d" width="180" label="涓�缁存潯鐮�" show-overflow-tooltip="" /> - <el-table-column prop="sN_2d" width="180" label="浜岀淮鏉$爜" show-overflow-tooltip="" /> - <el-table-column prop="erpOrderNo" label="ERP鍗曞彿" show-overflow-tooltip="" /> - <el-table-column prop="erpCode" label="ERP搴撳瓨鍦�" show-overflow-tooltip="" /> - - <el-table-column prop="erpVoucher" width="120" label="ERP鍑瘉" show-overflow-tooltip="" /> - <!-- <el-table-column prop="actionRemark" label="鎿嶄綔澶囨敞" show-overflow-tooltip="" /> - <el-table-column prop="actionTime" label="鎿嶄綔鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> --> + <el-table-column prop="lockReason" label="閿佸畾鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="lockUser" label="閿佸畾浜�" show-overflow-tooltip="" /> + <el-table-column prop="lockTime" label="閿佸畾鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="remarks" label="澶囨敞" show-overflow-tooltip="" /> <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> - <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsStockQuan:update') || auth('wmsStockQuan:delete')"> - <template #default="scope"> - <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsStockQuan(scope.row)" v-auth="'wmsStockQuan:update'"> 缂栬緫 </el-button> - <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsStockQuan(scope.row)" v-auth="'wmsStockQuan:delete'"> 鍒犻櫎 </el-button> - </template> - </el-table-column> + </el-table> <el-pagination v-model:currentPage="tableParamsWmsStockQuan.page" @@ -227,8 +209,8 @@ import commonFunction from '/@/utils/commonFunction'; import { addWmsRecordSncodePrint } from "/@/api/main/PrintCenter/wmsRecordSncodePrint"; - const getEnumStockStatusData_Index = ref<any>([]); const getEnumQCStatusData_Index = ref<any>([]); + const getEnumStockStatusData_Index = ref<any>([]); const { getEnumDesc } = commonFunction(); @@ -400,9 +382,11 @@ }; /***************************************************[瀹炴椂搴撳瓨瀵煎嚭]缁撴潫***************************************************/ // 瀹炴椂搴撳瓨椤甸潰鍔犺浇鏃� + + const getEnumLockStatusData_Index = ref<any>([]); onMounted(async () => { getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? []; - getEnumQCStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockQcStatusEnum')).data.result ?? []; + getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? []; }); handleQueryWmsStockQuan(); diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/ContentView.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/ContentView.vue index b24b17b..ad7d5ba 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/ContentView.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/ContentView.vue @@ -1,61 +1,63 @@ <template> <div> - <div v-for="(itemW,indexW) in storageList" :key="indexW"> - <p> 宸烽亾锛歿{itemW.laneCode}}</p> - <div v-for="(itemIN,indexIN) in itemW.rows" :key="indexIN" > - <div class="content-view" > - <!-- 姣忎釜搴撲綅鏂瑰潡 鏌ヨ搴撲綅鍏ㄩ儴搴撳瓨 --> - <div class="mask100" v-for="(itemSmall,itemSmallIndex) in itemIN.rowLocations2" :key="itemSmallIndex"> - - <content-item v-for="item in itemSmall" :key="item.wareLocationCode" :itemData="item" - :index="item.wareLocationCode" @show="show(item,item.wareLocationCode)" - - @click="openDialog(item.wareLocationCode)" - :class="'laneCodeBox_' + (item.showInventoryType)"> - </content-item> + <!-- 搴撲綅鍒楄〃 --> - </div> - + <div v-for="(itemW, indexW) in storageList" :key="indexW"> + <p>宸烽亾锛歿{ itemW.laneCode }}</p> + <div v-for="(itemIN, indexIN) in itemW.rows" :key="indexIN"> + <div class="content-view"> + <!-- 姣忎釜搴撲綅鏂瑰潡 鏌ヨ搴撲綅鍏ㄩ儴搴撳瓨 --> + <div class="mask100" v-for="(itemSmall, itemSmallIndex) in itemIN.rowLocations2" :key="itemSmallIndex"> + <content-item + v-for="item in itemSmall" + :key="item.wareLocationCode" + :itemData="item" + :index="item.wareLocationCode" + @show="show(item, item.wareLocationCode)" + @click="openDialog(item.wareLocationCode)" + :class="'laneCodeBox_' + item.showInventoryType" + > + </content-item> </div> - <div v-if="itemW.rows.length>1" class="stripe stripeM"></div> + </div> + <div v-if="itemW.rows.length > 1" class="stripe stripeM"></div> </div> </div> <!-- 搴撲綅鎮诞灞� --> <teleport :to="'#item' + count" v-if="itemVisible"> <div class="item-detail" v-if="!detailData.isDeleted"> - <p > {{ setKwStauts(detailData.inventoryType) }} </p> + <p>{{ setKwStauts(detailData.inventoryType) }}</p> {{ containerCodeSHsow }} </div> </teleport> <!-- 璇︽儏寮规 --> <prop-detail ref="propDetailRef"></prop-detail> - </div> </template> <script lang="ts" setup> import { ElMessage } from 'element-plus'; -import { ref, defineProps, computed, getCurrentInstance } from 'vue' -import ContentItem from './ContentItem.vue' +import { ref, defineProps, computed, getCurrentInstance } from 'vue'; +import ContentItem from './ContentItem.vue'; import PropDetail from './propDetail.vue'; -const { proxy} :any = getCurrentInstance();// 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜 +const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜 //props const props = defineProps({ contentData: { type: Array, required: true, - default: [] - } -}) -const containerCodeSHsow = ref('') + default: [], + }, +}); +const containerCodeSHsow = ref(''); //搴撲綅鍒楄〃 const storageList: Record<any, any> = computed(() => props.contentData); //姣忎釜搴撲綅璇︽儏鐨勬樉绀� const itemVisible = ref(false); //璇︽儏鏁版嵁 -const detailData = ref({} as Record<string, any>) +const detailData = ref({} as Record<string, any>); //褰撳墠閫変腑鐨勫簱浣� -const count = ref(String) +const count = ref(String); //鏄剧ず 闅愯棌璇︽儏 const show = (item: any, index: any) => { // console.log('item:'+JSON.stringify(item) ) @@ -64,18 +66,18 @@ itemVisible.value = true; count.value = index; detailData.value = item; - containerCodeSHsow.value = item.wareContainerCode; + containerCodeSHsow.value = item.wareContainerCode; } else { itemVisible.value = false; count.value = index; detailData.value = {}; - containerCodeSHsow.value = ""; + containerCodeSHsow.value = ''; } -} +}; // 鏄剧ず搴撲綅鐘舵�� const setKwStauts = (type: number): string => { - let status = '' + let status = ''; switch (type) { case 0: status = '绌哄簱浣�'; @@ -87,13 +89,14 @@ status = '鏈夎揣搴撲綅锛堢墿鏂欙級'; } return status; -} +}; //鎵撳紑绐楀彛 -const openDialog = (type: string) => { //鎵樼洏鍙� +const openDialog = (type: string) => { + //鎵樼洏鍙� if (!type || type == null) { - ElMessage.warning("涓嶅瓨鍦ㄦ墭鐩樺彿锛�"); - return + ElMessage.warning('涓嶅瓨鍦ㄦ墭鐩樺彿锛�'); + return; } proxy.$refs['propDetailRef'].openDialog(type); }; @@ -135,7 +138,6 @@ margin: 5px; } } - } .stripe { @@ -150,21 +152,20 @@ /*鏂戦┈鏉$汗*/ .stripeM { - background: linear-gradient(#dbd4b4 50%, #f5be6a 50%, ); + background: linear-gradient(#dbd4b4 50%, #f5be6a 50%); background-size: 100% 40px; } -.laneCodeBox_0{ +.laneCodeBox_0 { visibility: hidden; } -.laneCodeBox_1{ +.laneCodeBox_1 { visibility: visible; } - -.mask100{ +.mask100 { height: 100%; display: flex; - flex-direction: column-reverse; + flex-direction: column-reverse; } // #item3-4-3-3,#item3-4-1-3,#item3-4-2-3,#item3-4-4-3{ // margin-bottom: 104px; @@ -173,5 +174,4 @@ // margin-bottom: 149px; // } - -</style> \ No newline at end of file +</style> diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/CountView.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/CountView.vue index 401857a..2a06347 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/CountView.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/CountView.vue @@ -1,45 +1,45 @@ <template> <div class="count"> - <div class="count_item" v-for="(item,index) in countList" :key="index"> - <div class="square" :style="{background: setBgColor(item.type)}"></div> - <span>{{item.title}}</span> - <span class="count_num">{{item.count}}</span> + <div class="count_item" v-for="(item, index) in countList" :key="index"> + <div class="square" :style="{ background: setBgColor(item.type) }"></div> + <span>{{ item.title }}</span> + <span class="count_num">{{ item.count }}</span> </div> </div> </template> <script lang="ts" setup> -import { defineProps, computed } from 'vue' +import { defineProps, computed } from 'vue'; const props = defineProps({ countData: { type: Array, - required: true - } -}) -const countList: Record<any, any> = computed(() => props.countData) -//璁剧疆鑳屾櫙 + required: true, + }, +}); +const countList: Record<any, any> = computed(() => props.countData); +//璁剧疆鑳屾櫙 姝e父 = 1, 灏佸瓨 = 2, 绂佸嚭 = 3, 绂佸叆 = 4, 閿佸畾 = 5 const setBgColor = (type: number): string => { - let color = '' + let color = ''; switch (type) { - case 0: - color = '#A2A2A2'; - break; case 1: - color = '#F18201'; + color = '#F18201'; //姗樿壊 姝e父 break; case 2: - color = '#2BA6FF'; + color = '#2BA6FF'; //钃濊壊 灏佸瓨 break; case 3: - color = '#FFFF00'; - + color = '#FFFF00'; //榛勮壊 绂佸嚭 break; + case 4: - color = '#FF0000'; + color = '#A2A2A2'; //鐏拌壊 绂佸叆 + break; + + case 5: + color = '#FF0000'; //绾㈣壊 閿佸畾 break; } return color; -} - +}; </script> <style lang="less" scoped> .count { @@ -70,4 +70,4 @@ } } } -</style> \ No newline at end of file +</style> diff --git "a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/\345\244\207\344\273\275index.vue" "b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/\345\244\207\344\273\275index.vue" new file mode 100644 index 0000000..9bd7970 --- /dev/null +++ "b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/\345\244\207\344\273\275index.vue" @@ -0,0 +1,399 @@ +<template> + <div> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="formModel" ref="queryForm" labelWidth="90"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="鍏抽敭瀛�"> + <el-input v-model="formModel.searchKey" clearable="" + placeholder="搴撲綅缂栧彿,瀹瑰櫒缂栧彿" /> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鎵�鍦ㄥ簱鍖�" prop="areaCode"> + <el-select v-model="formModel.areaCode" placeholder="璇烽�夋嫨鎵�鍦ㄥ簱鍖�"> + <el-option v-for="(item,index) in arr1" :key="index" :value="item.code" :label="`[${item.code}] ${item.value}`"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="搴撲綅缂栧彿:"> + <el-input v-model.trim="formModel.WareLocationCode" placeholder="璇疯緭鍏ュ簱浣嶇紪鍙�" clearable></el-input> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="瀹瑰櫒缂栧彿:"> + <el-input v-model.trim="formModel.WareContainerCode" placeholder="璇疯緭鍏ュ鍣ㄧ紪鍙�" clearable></el-input> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="搴撲綅鐘舵��:"> + <el-select v-model="formModel.inventoryType" clearable placeholder="璇烽�夋嫨搴撲綅鐘舵��" style="width: 100%;"> + <el-option v-for="item in storageStatusEnum" :key="item.value" :label="item.title" + :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + + <!-- 闅愯棌鐨勭瓫閫夋潯浠� --> + <!-- <template> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="閿佸畾鐘舵��:"> + <el-select v-model="formModel.isLocked" clearable placeholder="璇烽�夋嫨閿佸畾鐘舵��"> + <el-option v-for="item in isAutoEnum" :key="item.value" :label="item.title" :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + + <el-form-item label="宸烽亾:"> + <el-select v-model="formModel.Lane" clearable placeholder="璇烽�夋嫨宸烽亾"> + <el-option v-for="item in LangEnum" :key="item.value" :label="item.title" :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="鎵�灞炴帓:"> + <el-select v-model="formModel.Row" clearable placeholder="璇烽�夋嫨鎵�灞炴帓"> + <el-option v-for="(item, index) in strorageRowEnum" :key="item" :label="`绗�${index + 1}鎺抈" + :value="index + 1" /> + </el-select> + </el-form-item> + </el-col> + </template> --> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label-width="20px"> + <el-button type="primary" icon="el-icon-search" @click="getLocationPage(2)">鏌ヨ</el-button> + <el-button icon="ele-Refresh" @click="() => formModel = {}"> 閲嶇疆 </el-button> + </el-form-item> + </el-col> --> + + + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> + <el-form-item> + <el-button-group style="display: flex; align-items: center"> + <el-button type="primary" icon="ele-Search" @click="getLocationPage(2)"> + 鏌ヨ + </el-button> + <el-button icon="ele-Refresh" @click="() => formModel = {}"> + 閲嶇疆 + </el-button> + <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" + v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> + 楂樼骇鏌ヨ + </el-button> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" + v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> + 闅愯棌 + </el-button> + + </el-button-group> + </el-form-item> + </el-col> + + </el-row> + + </el-form> + </el-card> + +<el-card class="full-table" shadow="hover" style="margin-top: 5px"> + <div class="msi-content" style="height:calc(100vh - 200px)"> + +<div> + <p>1#绔嬩綋搴�</p> + <div class="storage-grid"> + <!-- 閬嶅巻姣忎竴鎺� --> + <div class="row" :class="'rowMy' + rowIndex" v-for="(row, rowIndex) in storageList" :key="rowIndex"> + <!-- 閬嶅巻姣忎竴鍧� --> + <div class="cell " v-for="(cell, cellIndex) in row" :key="cellIndex"> + {{ cell }} <!-- 鏄剧ず姣忎釜搴撲綅鐨勫唴瀹� --> + </div> + </div> + </div> +</div> + + + <!-- 缁熻鍖哄煙 --> + <count-view :countData="countList"></count-view> + <!-- 搴撲綅灞曠ず --> + <content-view :contentData="dataList"></content-view> + </div> +</el-card> + + </div> +</template> +<script lang="ts" setup> +import { nextTick, onMounted, ref } from 'vue' +//import SearchBar from '@/components/SearchBar.vue' +import { getStorageView } from '/@/api/main/ReportCenter/storageView'; + +import CountView from './component/CountView.vue' +import ContentView from './component/ContentView.vue' +import { ElMessage } from 'element-plus'; +import { handleSlectDataWmsArea } from '/@/utils/selectData'; + +const showAdvanceQueryUIWmsStockQuan = ref(false); +// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� +const changeAdvanceQueryUIWmsStockQuan = () => { + showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value; +}; + + +const LangEnum = ref([ // 鎵�灞炲贩閬� + { + value: '1', + title: '1宸烽亾' + }, + { + value: '2', + title: '2宸烽亾' + }, + { + value: '3', + title: '3宸烽亾' + } +]) +const isAutoEnum: any[] = [ + { + title: '鍚�', + value: 0 + }, + { + title: '鏄�', + value: 1 + } +] + + +//搴撲綅鐘舵�� +const storageStatusEnum = ref([ + { + value: '0', + title: '绌哄簱浣�' + }, + { + value: '1', + title: '绌哄鍣ㄥ簱浣�' + }, + { + value: '2', + title: '鏈夎揣搴撲綅' + }, +]) + +const strorageRowEnum = ref<any>([]) // 鎵�灞炴帓 +//鍒楄〃璇锋眰鏁版嵁 +const formModel = ref({ + Lane: '', + Row: '', + MaterialCode: '', + inventoryType: '', + ShelfCode: '', + Code: '', + ContainerCode: '', + Status: '', + isLocked: '', + areaCode:"A2", + PageNo: 1, + PageSize: 10000 +}) + +//搴撲綅鍒楄〃鏁版嵁 +const dataList = ref([]); +//缁熻鐨勬暟鎹� +const countList = ref([ + { + type: 0, + title: '绌哄簱浣�:', + count: 0 + }, + { + type: 1, + title: '鏈夎揣搴撲綅锛堢┖瀹瑰櫒锛�:', + count: 0 + }, + { + type: 2, + title: '鏈夎揣搴撲綅锛堢墿鏂欙級:', + count: 0 + }, + // { + // type: 3, + // title: '閿佸畾搴撲綅:', + // count: 0 + // }, + // { + // type: 4, + // title: '绂佺敤搴撲綅:', + // count: 0 + // } +]); + +// 鎸夌収琛屽垪鐩稿悓杩涜鍒嗙粍 +const sortClass = (sortData: any) => { + const groupBy = (array: any, f: any) => { + let groups = {}; + array.forEach((o) => { + let group = JSON.stringify(f(o)); + groups[group] = groups[group] || []; + groups[group].push(o); + }); + return Object.keys(groups).map((group) => { + return groups[group]; + }); + }; + const sorted = groupBy(sortData, (item) => { + return item.lane + '-' + item.column; // 杩斿洖闇�瑕佸垎缁勭殑瀵硅薄 + }); + return sorted; +}; + +// 鍒嗙粍鍓� +// console.log(listData); +// 鍒嗙粍鍚� +// console.log(sortClass(listData)); + +//搴撲綅鍥惧垪琛� +const getLocationPage = async (param?: any) => { + if (param && param == 2) { + if (formModel.value.Lane == "" && formModel.value.Row != "") { + ElMessage.warning("璇烽�夋嫨鎵�灞炲贩閬擄紒") + return + } + } + + if(!formModel.value.areaCode){ + ElMessage.warning("璇烽�夋嫨鎵�鍦ㄥ簱鍖猴紒") + return + } + + var res = await getStorageView(Object.assign(formModel.value, {})); + if (res.data.code == 200) { + const { data } = res; + const result = data.result; + strorageRowEnum.value = new Array(4).fill(0); + countList.value[0].count = result.emptyLocation || 0; //绌哄簱浣� + countList.value[1].count = result.emptyContainerLocation || 0; //绌哄鍣ㄥ簱浣� + countList.value[2].count = result.materialLocation || 0; //鏈夎揣搴撲綅 + // countList.value[3].count = result.lockedLocation || 0; //閿佸畾搴撲綅 + // countList.value[4].count = result.disableLocation || 0; //绂佺敤搴撲綅 + debugger + if (res.data.result.lanes) { + res.data.result.lanes.forEach((element: any) => { + element.rows.forEach((item: any) => { + item.rowLocations2 = sortClass(item.rowLocations) + }) + }); + } + dataList.value = res.data.result.lanes; + + } + +} +getLocationPage() + +const resetFormModel = JSON.parse(JSON.stringify(formModel.value)); +//閲嶇疆鎼滅储 +const resetForm = () => { + formModel.value = JSON.parse(JSON.stringify(resetFormModel)); + // getLocationPage() +}; + +let arr1:any =ref("") //涓嬫媺璇诲彇鎺ュ彛 +// 椤甸潰鍔犺浇鏃� +onMounted(async () => { + nextTick(async () => { + arr1.value = await handleSlectDataWmsArea({ + page: 1, + pageSize: 1000, + total: 0, + IsDisabled:false, + isVirtually:false, + areaType:1 //绔嬩綋搴� + }); //涓嬫媺璇诲彇鎺ュ彛 + }); +}); + + + + + + + +//==================88888888888888====================== + +const storageList = ref([]); // 鐢ㄤ簬瀛樻斁搴撲綅鐨勬暟缁� + +onMounted(() => { + initializeStorage(); // 鍦ㄧ粍浠舵寕杞藉悗鍒濆鍖栧簱浣嶆暟鎹� +}); + +function initializeStorage() { + const rows = 3; // 鎬绘帓鏁� + const cellsPerRow = 20; // 姣忔帓鐨勬牸瀛愭暟 + + for (let i = 0; i < rows; i++) { + let row = []; // 姣忔帓鐨勬牸瀛愭暟缁� + for (let j = 1; j <= cellsPerRow; j++) { + // 鏍规嵁琛屾暟鍜屽垪鏁扮敓鎴愬簱浣嶅悕绉� + row.push(` ${(i * cellsPerRow) + j}`); + } + storageList.value.push(row); // 灏嗘瘡鎺掔殑搴撲綅鏁扮粍鎺ㄥ叆鎬绘暟缁� + } +} + + + +</script> +<style lang="less" scoped> +.msi-content { + overflow: auto; +} + + + + +.storage-grid { + width: 48%; + display: flex; + flex-direction: column; /* 鍨傜洿鎺掑垪姣忎竴鎺� */ +} + +.row { + display: flex; /* 姘村钩鎺掑垪姣忎竴琛� */ +} + +.cell { + border: 1px solid black; /* 姣忎釜鏍煎瓙鐨勯粦绾� */ + flex: 1; /* 姣忎釜鏍煎瓙瀹藉害鐩哥瓑 */ + height: 50px; /* 姣忎釜鏍煎瓙鐨勯珮搴� */ + display: flex; + justify-content: center; + align-items: center; /* 灞呬腑鏄剧ず鍐呭 */ +} + + +.rowMy0 { + // background-color: #f9f9f9; /* 绗竴鎺掔殑鑳屾櫙鑹� */ + div{ + height: 120px; + } +} + +.rowMy1 { + // background-color: #eeeeee; /* 绗簩鎺掔殑鑳屾櫙鑹� */ + div{ + height: 50px; + } +} + +.rowMy2 { + // background-color: #dddddd; /* 绗笁鎺掔殑鑳屾櫙鑹� */ + div{ + height: 80px; + } +} +</style> \ No newline at end of file diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/index.vue index 154e743..4652b77 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/index.vue @@ -1,45 +1,43 @@ <template> - <div> - <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> - <el-form :model="formModel" ref="queryForm" labelWidth="90"> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="鍏抽敭瀛�"> - <el-input v-model="formModel.searchKey" clearable="" - placeholder="搴撲綅缂栧彿,瀹瑰櫒缂栧彿" /> - </el-form-item> - </el-col> + <div> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="formModel" ref="queryForm" labelWidth="90"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="鍏抽敭瀛�"> + <el-input v-model="formModel.searchKey" clearable="" placeholder="搴撲綅缂栧彿,瀹瑰櫒缂栧彿" /> + </el-form-item> + </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> <el-form-item label="鎵�鍦ㄥ簱鍖�" prop="areaCode"> <el-select v-model="formModel.areaCode" placeholder="璇烽�夋嫨鎵�鍦ㄥ簱鍖�"> - <el-option v-for="(item,index) in arr1" :key="index" :value="item.code" :label="`[${item.code}] ${item.value}`"></el-option> + <el-option v-for="(item, index) in arr1" :key="index" :value="item.code" :label="`[${item.code}] ${item.value}`"></el-option> </el-select> </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> - <el-form-item label="搴撲綅缂栧彿:"> - <el-input v-model.trim="formModel.WareLocationCode" placeholder="璇疯緭鍏ュ簱浣嶇紪鍙�" clearable></el-input> - </el-form-item> - </el-col> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="搴撲綅缂栧彿:"> + <el-input v-model.trim="formModel.WareLocationCode" placeholder="璇疯緭鍏ュ簱浣嶇紪鍙�" clearable></el-input> + </el-form-item> + </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> - <el-form-item label="瀹瑰櫒缂栧彿:"> - <el-input v-model.trim="formModel.WareContainerCode" placeholder="璇疯緭鍏ュ鍣ㄧ紪鍙�" clearable></el-input> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="搴撲綅鐘舵��:"> - <el-select v-model="formModel.inventoryType" clearable placeholder="璇烽�夋嫨搴撲綅鐘舵��" style="width: 100%;"> - <el-option v-for="item in storageStatusEnum" :key="item.value" :label="item.title" - :value="item.value" /> - </el-select> - </el-form-item> - </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="瀹瑰櫒缂栧彿:"> + <el-input v-model.trim="formModel.WareContainerCode" placeholder="璇疯緭鍏ュ鍣ㄧ紪鍙�" clearable></el-input> + </el-form-item> + </el-col> - <!-- 闅愯棌鐨勭瓫閫夋潯浠� --> - <!-- <template> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="搴撲綅鐘舵��:"> + <el-select v-model="formModel.inventoryType" clearable placeholder="璇烽�夋嫨搴撲綅鐘舵��" style="width: 100%"> + <el-option v-for="item in storageStatusEnum" :key="item.value" :label="item.title" :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + + <!-- 闅愯棌鐨勭瓫閫夋潯浠� --> + <!-- <template> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item label="閿佸畾鐘舵��:"> <el-select v-model="formModel.isLocked" clearable placeholder="璇烽�夋嫨閿佸畾鐘舵��"> @@ -64,176 +62,228 @@ </el-form-item> </el-col> </template> --> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item label-width="20px"> <el-button type="primary" icon="el-icon-search" @click="getLocationPage(2)">鏌ヨ</el-button> <el-button icon="ele-Refresh" @click="() => formModel = {}"> 閲嶇疆 </el-button> </el-form-item> </el-col> --> + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> + <el-form-item> + <el-button-group style="display: flex; align-items: center"> + <el-button type="primary" icon="ele-Search" @click="getLocationPage(2)"> 鏌ヨ </el-button> + <el-button icon="ele-Refresh" @click="() => (formModel = {})"> 閲嶇疆 </el-button> + <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> 楂樼骇鏌ヨ </el-button> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> 闅愯棌 </el-button> + </el-button-group> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-card> - <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> - <el-form-item> - <el-button-group style="display: flex; align-items: center"> - <el-button type="primary" icon="ele-Search" @click="getLocationPage(2)"> - 鏌ヨ - </el-button> - <el-button icon="ele-Refresh" @click="() => formModel = {}"> - 閲嶇疆 - </el-button> - <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" - v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> - 楂樼骇鏌ヨ - </el-button> - <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" - v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> - 闅愯棌 - </el-button> - - </el-button-group> - </el-form-item> - </el-col> + <el-card class="full-table" shadow="hover" style="margin-top: 5px"> + <div class="msi-content" style="height: calc(100vh - 200px)"> + <div class="box100"> + <div v-for="(item, index) in dataList" :key="index" class="box100Inner"> + <p class="t1">{{ item.laneNo }}#绔嬩綋搴�</p> + <div class="storage-grid"> + <div class="row rowMy0"> + <div class="cell" v-for="(cell, cellIndex) in item.data" :key="cellIndex" v-show="cellIndex < 20"> + <span class="textK" - </el-row> + :style="{ background: setBgColor(cell.placeStatus), boxShadow: '0 1px 1px' + setBgColor(cell.placeStatus) }" + > + {{ cell.laneNo }}{{ cell.layerNo }}{{ cell.columnNo }} + </span> + </div> + </div> + <div class="row rowMy1"> + <div class="cell" v-for="(cell, cellIndex) in item.data" :key="cellIndex" v-show="cellIndex >= 20 && cellIndex < 40"> + <span class="textK" :style="{ background: setBgColor(cell.placeStatus), boxShadow: '0 1px 1px' + setBgColor(cell.placeStatus) }"> + {{ cell.laneNo }}{{ cell.layerNo }}{{ cell.columnNo }} + </span> + </div> + </div> + <div class="row rowMy2"> + <div class="cell" v-for="(cell, cellIndex) in item.data" :key="cellIndex" v-show="cellIndex >= 40 && cellIndex <= 60"> + <span class="textK" :style="{ background: setBgColor(cell.placeStatus), boxShadow: '0 1px 1px' + setBgColor(cell.placeStatus) }"> + {{ cell.laneNo }}{{ cell.layerNo }}{{ cell.columnNo }} + </span> + </div> + </div> + </div> + </div> + </div> - </el-form> - </el-card> + <!-- <div> + <p>1#绔嬩綋搴�</p> + <div class="storage-grid"> + 閬嶅巻姣忎竴鎺� + <div class="row" :class="'rowMy' + rowIndex" v-for="(row, rowIndex) in storageList" :key="rowIndex"> + 閬嶅巻姣忎竴鍧� + <div class="cell" v-for="(cell, cellIndex) in row" :key="cellIndex"> + {{ cell }} + </div> + </div> + </div> + </div> --> -<el-card class="full-table" shadow="hover" style="margin-top: 5px"> - <div class="msi-content" style="height:calc(100vh - 200px)"> - <!-- 缁熻鍖哄煙 --> - <count-view :countData="countList"></count-view> - <!-- 搴撲綅灞曠ず --> - <content-view :contentData="dataList"></content-view> - </div> -</el-card> - - </div> + <!-- 缁熻鍖哄煙 --> + <!-- <count-view :countData="countList"></count-view> --> + <!-- 搴撲綅灞曠ず --> + <!-- <content-view :contentData="dataList"></content-view> --> + </div> + </el-card> + </div> </template> <script lang="ts" setup> -import { nextTick, onMounted, ref } from 'vue' +import { nextTick, onMounted, ref } from 'vue'; //import SearchBar from '@/components/SearchBar.vue' import { getStorageView } from '/@/api/main/ReportCenter/storageView'; -import CountView from './component/CountView.vue' -import ContentView from './component/ContentView.vue' +import CountView from './component/CountView.vue'; +import ContentView from './component/ContentView.vue'; import { ElMessage } from 'element-plus'; import { handleSlectDataWmsArea } from '/@/utils/selectData'; const showAdvanceQueryUIWmsStockQuan = ref(false); // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� const changeAdvanceQueryUIWmsStockQuan = () => { - showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value; + showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value; }; +//璁剧疆鑳屾櫙 姝e父 = 1, 灏佸瓨 = 2, 绂佸嚭 = 3, 绂佸叆 = 4, 閿佸畾 = 5 +const setBgColor = (type: number): string => { + let color = ''; + switch (type) { + case 1: + color = '#F18201'; //姗樿壊 姝e父 + break; + case 2: + color = '#2BA6FF'; //钃濊壊 灏佸瓨 + break; + case 3: + color = '#FFFF00'; //榛勮壊 绂佸嚭 + break; + case 4: + color = '#A2A2A2'; //鐏拌壊 绂佸叆 + break; -const LangEnum = ref([ // 鎵�灞炲贩閬� - { - value: '1', - title: '1宸烽亾' - }, - { - value: '2', - title: '2宸烽亾' - }, - { - value: '3', - title: '3宸烽亾' - } -]) + case 5: + color = '#FF0000'; //绾㈣壊 閿佸畾 + break; + } + return color; +}; +const LangEnum = ref([ + // 鎵�灞炲贩閬� + { + value: '1', + title: '1宸烽亾', + }, + { + value: '2', + title: '2宸烽亾', + }, + { + value: '3', + title: '3宸烽亾', + }, +]); const isAutoEnum: any[] = [ - { - title: '鍚�', - value: 0 - }, - { - title: '鏄�', - value: 1 - } -] - + { + title: '鍚�', + value: 0, + }, + { + title: '鏄�', + value: 1, + }, +]; //搴撲綅鐘舵�� const storageStatusEnum = ref([ - { - value: '0', - title: '绌哄簱浣�' - }, - { - value: '1', - title: '绌哄鍣ㄥ簱浣�' - }, - { - value: '2', - title: '鏈夎揣搴撲綅' - }, -]) + { + value: '0', + title: '绌哄簱浣�', + }, + { + value: '1', + title: '绌哄鍣ㄥ簱浣�', + }, + { + value: '2', + title: '鏈夎揣搴撲綅', + }, +]); -const strorageRowEnum = ref<any>([]) // 鎵�灞炴帓 +const strorageRowEnum = ref<any>([]); // 鎵�灞炴帓 //鍒楄〃璇锋眰鏁版嵁 const formModel = ref({ - Lane: '', - Row: '', - MaterialCode: '', - inventoryType: '', - ShelfCode: '', - Code: '', - ContainerCode: '', - Status: '', - isLocked: '', - areaCode:"A2", - PageNo: 1, - PageSize: 10000 -}) + Lane: '', + Row: '', + MaterialCode: '', + inventoryType: '', + ShelfCode: '', + Code: '', + ContainerCode: '', + Status: '', + isLocked: '', + areaCode: 'A2', + PageNo: 1, + PageSize: 10000, +}); //搴撲綅鍒楄〃鏁版嵁 const dataList = ref([]); //缁熻鐨勬暟鎹� const countList = ref([ - { - type: 0, - title: '绌哄簱浣�:', - count: 0 - }, - { - type: 1, - title: '鏈夎揣搴撲綅锛堢┖瀹瑰櫒锛�:', - count: 0 - }, - { - type: 2, - title: '鏈夎揣搴撲綅锛堢墿鏂欙級:', - count: 0 - }, - // { - // type: 3, - // title: '閿佸畾搴撲綅:', - // count: 0 - // }, - // { - // type: 4, - // title: '绂佺敤搴撲綅:', - // count: 0 - // } + { + type: 0, + title: '绌哄簱浣�:', + count: 0, + }, + { + type: 1, + title: '鏈夎揣搴撲綅锛堢┖瀹瑰櫒锛�:', + count: 0, + }, + { + type: 2, + title: '鏈夎揣搴撲綅锛堢墿鏂欙級:', + count: 0, + }, + // { + // type: 3, + // title: '閿佸畾搴撲綅:', + // count: 0 + // }, + // { + // type: 4, + // title: '绂佺敤搴撲綅:', + // count: 0 + // } ]); // 鎸夌収琛屽垪鐩稿悓杩涜鍒嗙粍 const sortClass = (sortData: any) => { - const groupBy = (array: any, f: any) => { - let groups = {}; - array.forEach((o) => { - let group = JSON.stringify(f(o)); - groups[group] = groups[group] || []; - groups[group].push(o); - }); - return Object.keys(groups).map((group) => { - return groups[group]; - }); - }; - const sorted = groupBy(sortData, (item) => { - return item.lane + '-' + item.column; // 杩斿洖闇�瑕佸垎缁勭殑瀵硅薄 - }); - return sorted; + const groupBy = (array: any, f: any) => { + let groups = {}; + array.forEach((o) => { + let group = JSON.stringify(f(o)); + groups[group] = groups[group] || []; + groups[group].push(o); + }); + return Object.keys(groups).map((group) => { + return groups[group]; + }); + }; + const sorted = groupBy(sortData, (item) => { + return item.lane + '-' + item.column; // 杩斿洖闇�瑕佸垎缁勭殑瀵硅薄 + }); + return sorted; }; // 鍒嗙粍鍓� @@ -243,69 +293,200 @@ //搴撲綅鍥惧垪琛� const getLocationPage = async (param?: any) => { - if (param && param == 2) { - if (formModel.value.Lane == "" && formModel.value.Row != "") { - ElMessage.warning("璇烽�夋嫨鎵�灞炲贩閬擄紒") - return - } - } + // if (param && param == 2) { + // if (formModel.value.Lane == "" && formModel.value.Row != "") { + // ElMessage.warning("璇烽�夋嫨鎵�灞炲贩閬擄紒") + // return + // } + // } - if(!formModel.value.areaCode){ - ElMessage.warning("璇烽�夋嫨鎵�鍦ㄥ簱鍖猴紒") - return - } + // if(!formModel.value.areaCode){ + // ElMessage.warning("璇烽�夋嫨鎵�鍦ㄥ簱鍖猴紒") + // return + // } + //璁剧疆鑳屾櫙 + + var res = await getStorageView(Object.assign(formModel.value, {})); + if (res.data.code == 200) { + const { data } = res; + const result = data.result; - var res = await getStorageView(Object.assign(formModel.value, {})); - if (res.data.code == 200) { - const { data } = res; - const result = data.result; - strorageRowEnum.value = new Array(4).fill(0); - countList.value[0].count = result.emptyLocation || 0; //绌哄簱浣� - countList.value[1].count = result.emptyContainerLocation || 0; //绌哄鍣ㄥ簱浣� - countList.value[2].count = result.materialLocation || 0; //鏈夎揣搴撲綅 - // countList.value[3].count = result.lockedLocation || 0; //閿佸畾搴撲綅 - // countList.value[4].count = result.disableLocation || 0; //绂佺敤搴撲綅 - debugger - if (res.data.result.lanes) { - res.data.result.lanes.forEach((element: any) => { - element.rows.forEach((item: any) => { - item.rowLocations2 = sortClass(item.rowLocations) - }) - }); - } - dataList.value = res.data.result.lanes; + // 鍋囪 result 鏄竴涓寘鍚涓璞$殑鏁扮粍锛屾瘡涓璞¢兘鏈� LaneNo 鍜� ColumnNo 灞炴�� + const groupedResult = []; - } + // 鎸� LaneNo 鍒嗙粍 杈撳嚭缁撴瀯 + // { + // 'laneNo':1, + // 'data': [{ }, {}, {}] + // } -} -getLocationPage() + // 鍋囪缁撴灉鏁版嵁瀛樺偍鍦� result 鏁扮粍涓� + + // 鎸� laneNo 鍒嗙粍 + result.forEach((item) => { + const laneNo = item.laneNo; + + // 鏌ユ壘鏄惁宸茬粡鏈夎 laneNo 鐨勫璞� + let laneGroup = groupedResult.find((group) => group.laneNo == laneNo); + + // 濡傛灉娌℃湁锛屽垱寤轰竴涓柊鐨勫垎缁� + if (!laneGroup) { + laneGroup = { laneNo: laneNo, data: [] }; + groupedResult.push(laneGroup); + } + + // 灏嗗綋鍓嶉」娣诲姞鍒板搴旂殑鍒嗙粍鐨� data 鏁扮粍涓� + laneGroup.data.push(item); + }); + + // 鏈�缁堣緭鍑虹粨鏋� + console.log(8888888); + console.log(groupedResult); + + // groupedResult 鍒嗙粍鎸� data涓殑columnNo 鍐嶇粍 灏嗘瘡缁�20 涓厓绱� + + function initializeStorage3() { + const rows = 3; // 鎬绘帓鏁� + const cellsPerRow = 20; // 姣忔帓鐨勬牸瀛愭暟 + + for (let i = 0; i < rows; i++) { + let row = []; // 姣忔帓鐨勬牸瀛愭暟缁� + for (let j = 1; j <= cellsPerRow; j++) { + // 鏍规嵁琛屾暟鍜屽垪鏁扮敓鎴愬簱浣嶅悕绉� + row.push(` ${i * cellsPerRow + j}`); + } + storageList.value.push(row); // 灏嗘瘡鎺掔殑搴撲綅鏁扮粍鎺ㄥ叆鎬绘暟缁� + } + } + + dataList.value = groupedResult; // 濡傛灉瑕佸皢缁撴灉璧嬪�肩粰 dataList + + // const finalResult = []; + + // 鏈�缁堢粨鏋� + + // ColumnNo 60 + // result 鎸夌収LaneNo鍒嗙粍 + // 鍐嶆寜鐓olumnNo 鍒嗙粍 绗竴缁� 20涓� 绗簩缁� 20涓� 绗笁缁� 20涓� + + // dataList.value = result; + + // strorageRowEnum.value = new Array(4).fill(0); + // countList.value[0].count = result.emptyLocation || 0; //绌哄簱浣� + // countList.value[1].count = result.emptyContainerLocation || 0; //绌哄鍣ㄥ簱浣� + // countList.value[2].count = result.materialLocation || 0; //鏈夎揣搴撲綅 + // // countList.value[3].count = result.lockedLocation || 0; //閿佸畾搴撲綅 + // // countList.value[4].count = result.disableLocation || 0; //绂佺敤搴撲綅 + // if (res.data.result.lanes) { + // res.data.result.lanes.forEach((element: any) => { + // element.rows.forEach((item: any) => { + // item.rowLocations2 = sortClass(item.rowLocations) + // }) + // }); + // } + // dataList.value = res.data.result; + } +}; +getLocationPage(); const resetFormModel = JSON.parse(JSON.stringify(formModel.value)); //閲嶇疆鎼滅储 const resetForm = () => { - formModel.value = JSON.parse(JSON.stringify(resetFormModel)); - // getLocationPage() + formModel.value = JSON.parse(JSON.stringify(resetFormModel)); + // getLocationPage() }; -let arr1:any =ref("") //涓嬫媺璇诲彇鎺ュ彛 +let arr1: any = ref(''); //涓嬫媺璇诲彇鎺ュ彛 // 椤甸潰鍔犺浇鏃� -onMounted(async () => { - nextTick(async () => { - arr1.value = await handleSlectDataWmsArea({ - page: 1, - pageSize: 1000, - total: 0, - IsDisabled:false, - isVirtually:false, - areaType:1 //绔嬩綋搴� - }); //涓嬫媺璇诲彇鎺ュ彛 - }); +onMounted(async () => {}); + +//==================88888888888888====================== + +const storageList = ref([]); // 鐢ㄤ簬瀛樻斁搴撲綅鐨勬暟缁� + +onMounted(() => { + initializeStorage(); // 鍦ㄧ粍浠舵寕杞藉悗鍒濆鍖栧簱浣嶆暟鎹� }); +function initializeStorage() { + const rows = 3; // 鎬绘帓鏁� + const cellsPerRow = 20; // 姣忔帓鐨勬牸瀛愭暟 + for (let i = 0; i < rows; i++) { + let row = []; // 姣忔帓鐨勬牸瀛愭暟缁� + for (let j = 1; j <= cellsPerRow; j++) { + // 鏍规嵁琛屾暟鍜屽垪鏁扮敓鎴愬簱浣嶅悕绉� + row.push(` ${i * cellsPerRow + j}`); + } + storageList.value.push(row); // 灏嗘瘡鎺掔殑搴撲綅鏁扮粍鎺ㄥ叆鎬绘暟缁� + } +} +console.log(66666666); + +console.log(storageList.value); </script> <style lang="less" scoped> .msi-content { - overflow: auto; + overflow: auto; } -</style> \ No newline at end of file + +.storage-grid { + display: flex; + flex-direction: column; /* 鍨傜洿鎺掑垪姣忎竴鎺� */ + width: 610px; + // border: 1px solid red; +} + +.row { + display: block; /* 姘村钩鎺掑垪姣忎竴琛� */ +} + +.cell { + border: 1px solid gray; /* 姣忎釜鏍煎瓙鐨勯粦绾� */ + height: 50px; /* 姣忎釜鏍煎瓙鐨勯珮搴� */ + display: inline-block; + justify-content: center; + align-items: center; /* 灞呬腑鏄剧ず鍐呭 */ + width: 30px; +} + +.rowMy0 { + // background-color: #f9f9f9; /* 绗竴鎺掔殑鑳屾櫙鑹� */ + div { + height: 120px; + } +} + +.rowMy1 { + // background-color: #eeeeee; /* 绗簩鎺掔殑鑳屾櫙鑹� */ + div { + height: 50px; + } +} + +.rowMy2 { + // background-color: #dddddd; /* 绗笁鎺掔殑鑳屾櫙鑹� */ + div { + height: 80px; + } +} + +.box100 { + .box100Inner { + display: inline-block; + // width: 50%; + } +} +.t1 { + margin: 10px 0 2px 0; +} +.textK { + display: flex; /* 浣跨敤 Flexbox 甯冨眬 */ + flex-direction: column; + font-size: 12px; + text-align: center; + width: 100%; + height: 100%; + color: white; +} +</style> diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsBase/wmsSubstituteGood/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsBase/wmsSubstituteGood/index.vue index 2a322d8..5d3e34b 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsBase/wmsSubstituteGood/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsBase/wmsSubstituteGood/index.vue @@ -1,240 +1,252 @@ 锘�<template> - <div class="wmsSubstituteGood-container"> - <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> - <el-form :model="queryParams" ref="queryForm" labelWidth="100"> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="10" :xl="4" class="mb10"> - <el-form-item label="鍏抽敭瀛�"> - <el-input v-model="queryParams.searchKey" clearable="" placeholder="鐗╂枡缂栧彿,鐗╂枡鍚嶇О,鏇夸唬鍝佺墿鏂欑紪鍙�,鏇夸唬鍝佺墿鏂欏悕绉�"/> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鐗╂枡缂栧彿"> - <el-select clearable="" v-model="queryParams.materialCode" placeholder="璇烽�夋嫨鐗╂枡缂栧彿"> - <el-option v-for="(item,index) in dl('')" :key="index" :value="item.code" :label="`[${item.code}] ${item.value}`" /> - - </el-select> - - </el-form-item> - </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鐗╂枡缂栧彿"> - <el-input v-model="queryParams.materialCode" clearable="" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�"/> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鐗╂枡鍚嶇О"> - <el-input v-model="queryParams.materialName" clearable="" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"/> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鏇夸唬鍝佺墿鏂欑紪鍙�"> - <el-input v-model="queryParams.substituteMaterialCode" clearable="" placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿"/> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鏇夸唬鍝佺墿鏂欏悕绉�"> - <el-input v-model="queryParams.substituteMaterialName" clearable="" placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О"/> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鏄惁绂佺敤"> - <el-select clearable="" v-model="queryParams.isDisabled" placeholder="璇烽�夋嫨鏄惁绂佺敤"> - <el-option v-for="(item,index) in getIsDisabledData" :key="index" :value="item.value" :label="`${item.text}`" /> - - </el-select> - - </el-form-item> - </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> - <el-form-item> - <el-button-group style="display: flex; align-items: center;"> - <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wmsSubstituteGood:page'"> 鏌ヨ </el-button> - <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 閲嶇疆 </el-button> + <div class="wmsSubstituteGood-container"> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="queryParams" ref="queryForm" labelWidth="100"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="10" :xl="4" class="mb10"> + <el-form-item label="鐗╂枡鐮�"> + <el-input v-model="queryParams.searchKey" clearable="" placeholder="璇风墿鏂欑爜" /> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> + <el-form-item> + <el-button-group style="display: flex; align-items: center"> + <el-button type="primary" icon="ele-Search" @click="handleQuery"> 鏌ヨ </el-button> + <!-- <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 閲嶇疆 </el-button> <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button> - <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 闅愯棌 </el-button> - <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsSubstituteGood" v-auth="'wmsSubstituteGood:add'"> 鏂板 </el-button> --> - - </el-button-group> - </el-form-item> - - </el-col> - </el-row> - </el-form> - </el-card> - <el-card class="full-table" shadow="hover" style="margin-top: 5px"> - <el-table - :data="tableData" - style="width: 100%" - v-loading="loading" - tooltip-effect="light" - row-key="id" - @sort-change="sortChange" - border=""> - <el-table-column type="index" label="搴忓彿" width="55" align="center"/> - <el-table-column prop="substituteCode" label="鏇夸唬缂栧彿" min-width="120px" show-overflow-tooltip="" /> - <el-table-column prop="materialCode" label="鐗╂枡缂栧彿" min-width="120px" show-overflow-tooltip="" > - <template #default="scope"> - {{ scope.row.materialCode }} - <!-- <el-tag :type="di('', )?.tagType"> {{di("", scope.row.materialCode)?.value}} </el-tag> --> - </template> - </el-table-column> - <el-table-column prop="materialName" label="鐗╂枡鍚嶇О" min-width="120px" show-overflow-tooltip="" /> - <el-table-column prop="substituteMaterialCode" min-width="130px" label="鏇夸唬鍝佺墿鏂欑紪鍙�" show-overflow-tooltip="" /> - <el-table-column prop="substituteMaterialName" min-width="130px" label="鏇夸唬鍝佺墿鏂欏悕绉�" show-overflow-tooltip="" /> - <el-table-column prop="substituteIndex" label="鏇夸唬娆″簭" show-overflow-tooltip="" /> - <!-- <el-table-column prop="versionNO" label="鐗堟湰鍙�" show-overflow-tooltip="" /> - <el-table-column prop="isDisabled" label="鏄惁绂佺敤" show-overflow-tooltip=""> - <template #default="scope"> - <el-tag v-if="scope.row.isDisabled"> 鏄� </el-tag> - <el-tag type="danger" v-else> 鍚� </el-tag> - - </template> - - </el-table-column> --> - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" show-overflow-tooltip="" width="130px" /> - <el-table-column prop="updateTime" label="淇敼鏃堕棿" show-overflow-tooltip="" width="130px" /> - <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip=""/> - <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> - <!-- <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsSubstituteGood:update') || auth('wmsSubstituteGood:delete')"> - <template #default="scope"> - <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsSubstituteGood(scope.row)" v-auth="'wmsSubstituteGood:update'"> 缂栬緫 </el-button> - <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsSubstituteGood(scope.row)" v-auth="'wmsSubstituteGood:delete'"> 鍒犻櫎 </el-button> - </template> - </el-table-column> --> - </el-table> - <el-pagination - v-model:currentPage="tableParams.page" - v-model:page-size="tableParams.pageSize" - :total="tableParams.total" - :page-sizes="[10, 20, 50, 100, 200, 500]" - small="" - background="" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - layout="total, sizes, prev, pager, next, jumper" - /> - <printDialog - ref="printDialogRef" - :title="printWmsSubstituteGoodTitle" - @reloadTable="handleQuery" /> - <editDialog - ref="editDialogRef" - :title="editWmsSubstituteGoodTitle" - @reloadTable="handleQuery" - /> - </el-card> - </div> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 闅愯棌 </el-button> --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsSubstituteGood" v-auth="'wmsSubstituteGood:add'"> 鏂板 </el-button> --> + </el-button-group> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-card> + <el-card class="full-table" shadow="hover" style="margin-top: 5px"> + <div class="detailBox"> + <ul> + <!-- <li v-for="(item,index) in sourceEnum" :key="index"> + {{ titleP[index] }} : {{ warehousOrderDetails[item] }} + </li> --> + <li> + <span class="text_left">鐗╂枡缂栧彿:</span> + <span class="text_rt">{{ tableData.Info16 }}</span> + </li> + <li> + <span class="text_left">榻愬寘:</span> + <span class="text_rt">{{ tableData.planNo }}</span> + </li> + <li> + <span class="text_left">榻愬:</span> + <span class="text_rt">{{ tableData.planNo }}</span> + </li> + <li> + <span class="text_left">鎵规鍙�:</span> + <span class="text_rt">{{ tableData.planNo }}</span> + </li> + <li> + <span class="text_left">璁㈠崟鍙�:</span> + <span class="text_rt">{{ tableData.OrderId }}</span> + </li> + <li> + <span class="text_left">閮ㄤ欢鏉$爜:</span> + <span class="text_rt">{{ tableData.upi }}</span> + </li> + + <li> + <span class="text_left">閮ㄤ欢鍚嶇О:</span> + <span class="text_rt">{{ tableData.DetailName }}</span> + </li> + <li> + <span class="text_left">瀹㈡埛鍚嶇О:</span> + <span class="text_rt">{{ tableData.Info10 }}</span> + </li> + + <li> + <span class="text_left">闀�:</span> + <span class="text_rt">{{ ruleForm.length }}</span> + </li> + <li> + <span class="text_left">瀹�:</span> + <span class="text_rt">{{ ruleForm.width }}</span> + </li> + <li> + <span class="text_left">鍘�:</span> + <span class="text_rt">{{ ruleForm.thk }}</span> + </li> + <li> + <span class="text_left">閮ㄤ欢绾圭悊:</span> + <span class="text_rt">{{ ruleForm.matgrid }}</span> + </li> + <li> + <span class="text_left">鏄惁灏佽竟:</span> + <span class="text_rt">{{ ruleForm.isEB }}</span> + </li> + <li> + <span class="text_left">鎵撳瓟璁惧缂栧彿:</span> + <span class="text_rt">{{ ruleForm.dRNum }}</span> + </li> + </ul> + </div> + <!-- 鐢熸垚form 榻愬 榻愬寘 璁剧疆ng鍖� --> + <!-- 鐢熸垚form 榻愬 榻愬寘 璁剧疆ng鍖� --> + <!-- <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules"> + <el-row :gutter="35"> + <el-form-item v-show="false"> + <el-input v-model="ruleForm.id" /> + </el-form-item> + + <el-form-item label="榻愬" prop="completeSet"> + <el-select v-model="ruleForm.completeSet" placeholder="璇烽�夋嫨榻愬"> + <el-option label="閫夐」1" value="option1"></el-option> + <el-option label="閫夐」2" value="option2"></el-option> + </el-select> + </el-form-item> + + <el-form-item label="榻愬寘" prop="packageSetup"> + <el-input v-model="ruleForm.packageSetup" placeholder="璇疯緭鍏ラ綈鍖呰缃�"></el-input> + </el-form-item> + + <el-form-item label="ng鍖�" prop="ngPackage"> + <el-input v-model="ruleForm.ngPackage" placeholder="璇疯緭鍏g鍖�"></el-input> + </el-form-item> + + </el-row> + </el-form> --> + </el-card> + </div> </template> <script lang="ts" setup="" name="wmsSubstituteGood"> - import { ref } from "vue"; - import { ElMessageBox, ElMessage } from "element-plus"; - import { auth } from '/@/utils/authFunction'; - import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; - import { formatDate } from '/@/utils/formatTime'; +import { ref } from 'vue'; +import { ElMessageBox, ElMessage } from 'element-plus'; +import { auth } from '/@/utils/authFunction'; +import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; +import { formatDate } from '/@/utils/formatTime'; +import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New'; +import printDialog from '/@/views/system/print/component/hiprint/preview.vue'; +import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue'; +import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood'; +const showAdvanceQueryUI = ref(false); +const printDialogRef = ref(); +const editDialogRef = ref(); +const loading = ref(false); +const tableData = ref<any>([]); +const queryParams = ref<any>({}); +const tableParams = ref({ + page: 1, + pageSize: 10, + total: 0, +}); +const getIsDisabledData = [ + { + value: true, + text: '鏄�', + }, + { + value: false, + text: '鍚�', + }, +]; +const printWmsSubstituteGoodTitle = ref(''); +const editWmsSubstituteGoodTitle = ref(''); - import printDialog from '/@/views/system/print/component/hiprint/preview.vue' - import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue' - import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood'; +// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� +const changeAdvanceQueryUI = () => { + showAdvanceQueryUI.value = !showAdvanceQueryUI.value; +}; +// 鏌ヨ鎿嶄綔 888888888 +const handleQuery = async () => { + console.log("鏌ヨ"); + loading.value = true; + var res = await listMes_BatchOrderUPI_New(Object.assign(queryParams.value, tableParams.value)); + if (res.data.result.length != 1) { + ElMessage.warning('娌℃湁鏌ヨ鍒版暟鎹�'); + tableData.value = [] + return; + } + tableData.value = res.data.result[0] ?? []; + loading.value = false; +}; - const showAdvanceQueryUI = ref(false); - const printDialogRef = ref(); - const editDialogRef = ref(); - const loading = ref(false); - const tableData = ref<any>([]); - const queryParams = ref<any>({}); - const tableParams = ref({ - page: 1, - pageSize: 10, - total: 0, - }); - const getIsDisabledData = [{ - "value":true,"text":"鏄�" - },{ - "value":false,"text":"鍚�" - }] - const printWmsSubstituteGoodTitle = ref(""); - const editWmsSubstituteGoodTitle = ref(""); - - // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� - const changeAdvanceQueryUI = () => { - showAdvanceQueryUI.value = !showAdvanceQueryUI.value; - } - - - // 鏌ヨ鎿嶄綔 - const handleQuery = async () => { - loading.value = true; - var res = await pageWmsSubstituteGood(Object.assign(queryParams.value, tableParams.value)); - tableData.value = res.data.result?.items ?? []; - tableParams.value.total = res.data.result?.total; - loading.value = false; - }; - - // 鍒楁帓搴� - const sortChange = async (column: any) => { +// 鍒楁帓搴� +const sortChange = async (column: any) => { queryParams.value.field = column.prop; queryParams.value.order = column.order; await handleQuery(); - }; +}; - // 鎵撳紑鏂板椤甸潰 - const openAddWmsSubstituteGood = () => { - editWmsSubstituteGoodTitle.value = '娣诲姞鏇夸唬鍝佺鐞�'; - editDialogRef.value.openDialog({}); - }; +// 鎵撳紑鏂板椤甸潰 +const openAddWmsSubstituteGood = () => { + editWmsSubstituteGoodTitle.value = '娣诲姞鏇夸唬鍝佺鐞�'; + editDialogRef.value.openDialog({}); +}; - // 鎵撳紑鎵撳嵃椤甸潰 - const openPrintWmsSubstituteGood = async (row: any) => { - printWmsSubstituteGoodTitle.value = '鎵撳嵃鏇夸唬鍝佺鐞�'; - } - - // 鎵撳紑缂栬緫椤甸潰 - const openEditWmsSubstituteGood = (row: any) => { - editWmsSubstituteGoodTitle.value = '缂栬緫鏇夸唬鍝佺鐞�'; - editDialogRef.value.openDialog(row); - }; +// 鎵撳紑鎵撳嵃椤甸潰 +const openPrintWmsSubstituteGood = async (row: any) => { + printWmsSubstituteGoodTitle.value = '鎵撳嵃鏇夸唬鍝佺鐞�'; +}; - // 鍒犻櫎 - const delWmsSubstituteGood = (row: any) => { - ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(async () => { - var ret = await deleteWmsSubstituteGood(row); - if(ret.data.type=="success"){ - handleQuery(); - ElMessage.success("鍒犻櫎鎴愬姛"); - } - }) - .catch(() => {}); - }; +// 鎵撳紑缂栬緫椤甸潰 +const openEditWmsSubstituteGood = (row: any) => { + editWmsSubstituteGoodTitle.value = '缂栬緫鏇夸唬鍝佺鐞�'; + editDialogRef.value.openDialog(row); +}; - // 鏀瑰彉椤甸潰瀹归噺 - const handleSizeChange = (val: number) => { - tableParams.value.pageSize = val; - handleQuery(); - }; +// 鍒犻櫎 +const delWmsSubstituteGood = (row: any) => { + ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(async () => { + var ret = await deleteWmsSubstituteGood(row); + if (ret.data.type == 'success') { + handleQuery(); + ElMessage.success('鍒犻櫎鎴愬姛'); + } + }) + .catch(() => {}); +}; - // 鏀瑰彉椤电爜搴忓彿 - const handleCurrentChange = (val: number) => { - tableParams.value.page = val; - handleQuery(); - }; +// 鏀瑰彉椤甸潰瀹归噺 +const handleSizeChange = (val: number) => { + tableParams.value.pageSize = val; + handleQuery(); +}; - handleQuery(); +// 鏀瑰彉椤电爜搴忓彿 +const handleCurrentChange = (val: number) => { + tableParams.value.page = val; + handleQuery(); +}; + +// handleQuery(); + +const rules = { + // 杩欓噷瀹氫箟琛ㄥ崟楠岃瘉瑙勫垯 + completeSet: [{ required: true, message: '璇烽�夋嫨榻愬', trigger: 'change' }], + packageSetup: [{ required: true, message: '璇疯緭鍏ラ綈鍖呰缃�', trigger: 'blur' }], + ngPackage: [{ required: true, message: '璇疯緭鍏g鍖�', trigger: 'blur' }], +}; + +const ruleForm = ref({ + id: '', + completeSet: '', + packageSetup: '', + ngPackage: '', +}); + +const sourceEnum: any = ref([ + { + value: 'id', + text: 'ID', + }, +]); </script> <style scoped> :deep(.el-input), @@ -242,5 +254,23 @@ :deep(.el-input-number) { width: 100%; } -</style> +.detailBox { + width: 90%; + margin: 0 auto; + display: block; + padding-bottom: 10px; + ul { + margin: 0; + padding: 0; + li { + display: block; + line-height: 30px; + text-align: left; + list-style-type: none; + width: 25%; + word-wrap: break-word; + } + } +} +</style> diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllprop.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllprop.vue new file mode 100644 index 0000000..4491a01 --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllprop.vue @@ -0,0 +1,1159 @@ +<template> + <div> + <!-- 娣诲姞銆佺紪杈� --> + <el-dialog v-model="dialogVisible" width="95%" @close="closeDialog" :close-on-click-modal="false"> + <template #header> + <div style="color: #fff"> + <span>{{ dialogType == 'add' ? '娣诲姞' : '缂栬緫' }}</span> + </div> + </template> + + <el-form :model="addForm" ref="dialogRef" labelWidth="90" :rules="formRules"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20"> + <el-form-item label="涓氬姟绫诲瀷" prop="businessType"> + <el-select clearable v-model="addForm.businessType" placeholder="璇烽�夋嫨涓氬姟绫诲瀷"> + <el-option v-for="(item, index) in getBusinessTypeData_Index" :key="index" :value="item.businessTypeValue" :label="`[${item.businessTypeValue}] ${item.businessTypeName}`"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20"> + <el-form-item label="渚涘簲鍟�" prop="supplierCode"> + <el-select + v-model="addForm.supplierCode" + filterable + remote + reserve-keyword + remote-show-suffix + :remote-method="remoteMethod" + :loading="loading" + placeholder="璇烽�夋嫨渚涘簲鍟�" + clearable + style="width: 100%" + @change="changeXmbh(addForm.supplierCode)" + > + <el-option v-for="(item, index) in arrTdp" :key="index" :value="item.custCode" :label="`[${item.custCode}]${item.custChinaName}`"></el-option> + </el-select> + </el-form-item> + </el-col> + + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20"> + <el-form-item label="鏀惰揣閬撳彛" prop="dock"> + <el-select clearable v-model="addForm.dock" placeholder="璇烽�夋嫨鏀惰揣閬撳彛"> + <el-option + v-for="(item, index) in getEnumDockData" + :key="index" + :value="item.value" + :label="`${item.describe}`" + ></el-option> + </el-select> + </el-form-item> + </el-col> --> + + <!--<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20"> + <el-form-item label="鏀惰揣閬撳彛" prop="dock"> + <el-input + v-model="addForm.dock" + placeholder="璇疯緭鍏ユ敹璐ч亾鍙�" + maxlength="50" + show-word-limit + clearable + /> + </el-form-item> + </el-col> --> + + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20"> + <el-form-item label="ERP鍗曞彿" prop="erpOrderNo"> + <el-input v-model="addForm.erpOrderNo" placeholder="璇疯緭鍏RP鍗曞彿" maxlength="50" show-word-limit clearable /> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20"> + <el-form-item label="椤圭洰鍙�" prop="projectNo"> + <el-input v-model="addForm.projectNo" placeholder="璇疯緭鍏ラ」鐩彿" maxlength="50" show-word-limit clearable /> + </el-form-item> + </el-col> + + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="dialogType == 'add'"> + <el-form-item label="璁㈠崟绫诲瀷:" prop="materialType"> + <el-select v-model="addForm.materialType" placeholder="璇烽�夋嫨璁㈠崟绫诲瀷" @change="changDdlx" + style="width: 100%"> + <el-option v-for="item in statusEnums" :key="item.value" :label="item.title" :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + + <el-col :span="8" v-if="dialogType == 'edit'"> + <el-form-item label="璁㈠崟绫诲瀷:" prop="materialType"> + <el-select v-model="addForm.materialType" disabled placeholder="璇烽�夋嫨璁㈠崟绫诲瀷" style="width: 100%"> + <el-option v-for="item in outInTypeEnum" :key="item.value" :label="item.title" :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + + <el-col :span="8" v-if="addForm.materialType == 5"> + <el-form-item label="鍏嶈垂浠剁被鍨�:" prop="freeOrderType"> + <el-select v-model="addForm.freeOrderType" placeholder="璇烽�夋嫨鍏嶈垂浠剁被鍨�" style="width: 100%" + @change="changMfj" :disabled="dialogType == 'edit'"> + <el-option v-for="item in statusEnumsMFj" :key="item.value" :label="item.title" :value="item.value" /> + </el-select> + </el-form-item> + </el-col> + + <el-col :span="8"> + <el-form-item label="鍗曞彿:" prop="purchaseNo"> + <el-input v-model="addForm.purchaseNo" :disabled="dialogType == 'edit'" clearable placeholder="璇疯緭鍏ュ崟鍙�" /> + </el-form-item> + </el-col> + + <el-col :span="8"> + <el-form-item label="澶囨敞:"> + <el-input v-model="addForm.remark" clearable placeholder="璇疯緭鍏ュ娉�" /> + </el-form-item> + </el-col> + + <el-col :span="8"> + <el-form-item label="棰勮鍒拌揪鏃堕棿:" prop="EstimatedDate"> + <el-date-picker v-model="addForm.EstimatedDate" type="datetime" :disabled-date="disabledDate" + value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨棰勮鍒拌揪鏃堕棿" + style="width: 100%;" /> + </el-form-item> + </el-col> --> + </el-row> + </el-form> + <div class="msi-content" style="margin-top: 10px"> + <div class="header" style="margin-bottom: 10px"> + <div> + <el-button type="primary" icon="el-icon-plus" @click="addMaterialDialog">鏂板鐗╂枡</el-button> + + <el-button icon="el-icon-delete" plain :disabled="checkedDetails.length == 0" @click="delCheckedDetails">鍒犻櫎閫変腑琛�</el-button> + </div> + </div> + + <el-table :data="warehousOrderDetails" border style="width: 100%" row-key="setRowKey" ref="detailRef" @selection-change="detailsCheckChange" max-height="480"> + <el-table-column align="center" width="60" type="selection" /> + <el-table-column label="搴忓彿" align="center" width="60" type="index" /> + <el-table-column label="鐗╂枡缂栧彿" min-width="140" prop="materialCode" align="center" show-overflow-tooltip /> + <el-table-column label="鐗╂枡鍚嶇О" min-width="140" prop="materialName" align="center" show-overflow-tooltip /> + + <!-- clientCode --> + <el-table-column label="瀹㈡埛缂栧彿" v-if="isShowBomBtn" prop="diCustomCode" align="center" min-width="110" /> + <el-table-column label="瀹㈡埛涓枃鍚嶇О" v-if="isShowBomBtn" prop="diCustomChinaName" align="center" min-width="110" /> + + <el-table-column label="琛屽彿" prop="poLineNumber" align="center" min-width="120"> + <template #default="scope"> + <el-input v-model.trim="scope.row.poLineNumber" clearable min-width="150" placeholder="璇疯緭鍏ヨ鍙�" /> + </template> + </el-table-column> + + <el-table-column label="渚涘簲鍟嗘壒娆�" prop="supplierBatch" align="center" min-width="120"> + <template #default="scope"> + <el-input v-model.trim="scope.row.supplierBatch" clearable min-width="150" placeholder="璇疯緭鍏ヤ緵搴斿晢鎵规" /> + </template> + </el-table-column> + + <el-table-column label="ERP搴撳瓨鍦�" prop="erpCode" align="center" min-width="120"> + <template #default="scope"> + <el-input v-model.trim="scope.row.erpCode" clearable min-width="150" placeholder="璇疯緭鍏RP搴撳瓨鍦�" /> + </template> + </el-table-column> + + <el-table-column label="鏁伴噺" align="center" min-width="180"> + <template #default="scope"> + <el-input-number :precision="3" min="0" v-model="scope.row.quantity" size="small" /> + </template> + </el-table-column> + + <el-table-column label="璁″垝寮�濮嬫椂闂�" align="center" min-width="180"> + <template #default="scope"> + <el-date-picker + v-model="scope.row.plannedStartTime" + type="datetime" + :disabled-date="disabledDate" + value-format="YYYY-MM-DD HH:mm:ss" + format="YYYY-MM-DD HH:mm:ss" + placeholder="璇烽�夋嫨璁″垝寮�濮嬫椂闂�" + style="width: 100%" + /> + </template> + </el-table-column> + <el-table-column label="璁″垝缁撴潫鏃堕棿" align="center" min-width="180"> + <template #default="scope"> + <el-date-picker + v-model="scope.row.plannedEndTime" + type="datetime" + :disabled-date="disabledDate" + value-format="YYYY-MM-DD HH:mm:ss" + format="YYYY-MM-DD HH:mm:ss" + placeholder="璇烽�夋嫨璁″垝缁撴潫鏃堕棿" + style="width: 100%" + /> + </template> + </el-table-column> + <el-table-column label="閲囪喘鍗曚綅" prop="unit" align="center" min-width="80" /> + </el-table> + </div> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" :disabled="load" @click="confirm">纭</el-button> + </span> + </template> + </el-dialog> + <!-- 娣诲姞鐗╂枡 --> + <el-dialog v-model="addMaterialVisible" title="娣诲姞鐗╂枡璇︽儏" width="60%" @close="closeMaterialDialog"> + <template #header> + <div style="color: #fff"> + <span>娣诲姞鐗╂枡璇︽儏</span> + </div> + </template> + + <div class="msi-form" style="padding-top: 0px"> + <el-form :model="materialForm"> + <el-row> + <el-col :span="8"> + <el-form-item label="鐗╂枡缂栧彿"> + <el-input v-model="materialForm.MaterialCode" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" clearable></el-input> + </el-form-item> + </el-col> + + <!-- <el-col :span="8"> + <el-form-item label="鐗╂枡澶х被:"> + <el-input v-model="materialForm.MaterialTypeId" placeholder="璇疯緭鍏ョ墿鏂欏ぇ绫�" clearable></el-input> + </el-form-item> + </el-col> --> + + <el-col :span="8"> + <el-form-item label-width="20px"> + <el-button type="primary" icon="el-icon-search" @click="getMaterialList">鏌ヨ</el-button> + <!-- <el-button icon="el-icon-refresh-right" @click="resetMaterialForm" + >閲嶇疆</el-button + > --> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <div class="msi-content" style="padding-top: 0; margin-top: 10px"> + <el-table :data="materialList" border style="width: 100%" row-key="id" ref="materialRef" @selection-change="materialSelectionChange" :max-height="480"> + <el-table-column align="center" width="60" type="selection" /> + <el-table-column label="搴忓彿" align="center" width="60" type="index" /> + <el-table-column label="鐗╂枡缂栧彿" prop="materialCode" align="center" min-width="140" show-overflow-tooltip /> + <el-table-column label="鐗╂枡鍚嶇О" prop="materialName" align="center" min-width="140" show-overflow-tooltip /> + <el-table-column label="閲囪喘鍗曚綅" prop="poUnit" align="center" min-width="140" show-overflow-tooltip /> + </el-table> + <Pagination + :total="materialTotal" + v-model:page="materialForm.Page" + v-model:limit="materialForm.PageSize" + @pagination="getMaterialList" + style="margin-top: 20px; text-align: center" + ></Pagination> + </div> + <template #footer> + <span class="dialog-footer"> + <el-button @click="addMaterialVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="confirmAddMaterial">纭</el-button> + </span> + </template> + </el-dialog> + <!-- 鍗曡鎯� --> + <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}鐗╂枡璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose"> + <template #title> + <div class="slot_title"> + <div class="title_orderNo">{{ title }}</div> + <div>鐗╂枡璇︽儏</div> + </div> + </template> + + <div class="detailBoxWrap"> + <!-- 璇︽儏缁勪欢 --> + <open-details ref="propDetailRef"></open-details> + <div class="msi-form"> + <el-form :model="detailForm"> + <el-row> + <el-col :span="6"> + <el-form-item label="鐗╂枡缂栧彿"> + <el-input v-model="detailForm.materialCode" clearable placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" /> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label-width="20px"> + <el-button type="primary" icon="el-icon-search" @click="getDetail">鏌ヨ</el-button> + + <el-button type="primary" icon="ele-Printer" @click="getPrint">鎵撳嵃</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <div class="msi-content"> + <!-- <p style="margin-bottom: 10px">鐗╂枡鏄庣粏</p> --> + <el-table :data="drawerList" border striped :max-height="480"> + <el-table-column fixed="left" type="index" label="搴忓彿" width="55" align="center" /> + <!-- <el-table-column prop="poId" label="PO鍗旾D" show-overflow-tooltip="" /> --> + <!-- <el-table-column prop="poNo" label="PO鍗曞彿" show-overflow-tooltip="" /> --> + + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + <el-table-column prop="stockStatus" label="搴撳瓨鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.stockStatus, getEnumStockStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="stockStatusName" label="搴撳瓨鐘舵�佸悕绉�" show-overflow-tooltip="" /> + <el-table-column prop="operReason" label="鎿嶄綔鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="operUser" label="鎿嶄綔浜�" show-overflow-tooltip="" /> + <el-table-column prop="operTime" label="鎿嶄綔鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="lockStatus" label="閿佸畾鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.lockStatus, getEnumLockStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="lockReason" label="閿佸畾鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="lockUser" label="閿佸畾浜�" show-overflow-tooltip="" /> + <el-table-column prop="lockTime" label="閿佸畾鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="remarks" label="澶囨敞" show-overflow-tooltip="" /> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> + <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> + </el-table> + <Pagination :total="detailCount" v-model:page="detailForm.Page" v-model:limit="detailForm.PageSize" @pagination="getDetail" style="margin-top: 20px; text-align: center"></Pagination> + + <div></div> + </div> + </div> + </el-drawer> + + <el-dialog v-model="outVisible2" title="SPA鑾峰彇" width="20%" @close="closeOutDialog2"> + <el-form :model="outerForm2" label-width="120px"> + <el-row style="font-size: 16px"> + <el-col :span="23"> + <el-form-item label="鍗曞彿:" required> + <el-input v-model="outerForm2.purchaseNo" clearable placeholder="璇疯緭鍏ュ崟鍙�" /> + </el-form-item> + </el-col> + </el-row> + </el-form> + + <template #footer> + <span class="dialog-footer"> + <el-button @click="outVisible2 = false">鍙栨秷</el-button> + <el-button type="primary" @click="getSapOrderPO">纭</el-button> + </span> + </template> + </el-dialog> + + <printDialogTestStudent ref="printDialogRefTestStudent" :title="printTestStudentTitle" @reloadTable="handleQueryTestStudent" /> + </div> +</template> +<script lang="ts" setup> +import Pagination from '/@/components/Pagination/index.vue'; +import { ElMessage, ElMessageBox } from 'element-plus'; +import { ref, nextTick, computed, getCurrentInstance, watch, defineExpose, defineProps, onMounted } from 'vue'; +import { getTypeStatus } from '/@/utils/formate'; + +import { formatDecimalData } from '/@/utils/formate'; +import { expandMore } from '/@/hooks/expandMore'; +import cache from '/@/utils/cache'; +import { pageWmsMaterial } from '/@/api/main/WmsBase/wmsMaterial'; +import { getAPI } from '/@/utils/axios-utils'; +import { SysEnumApi } from '/@/api-services/api'; + +import printDialogTestStudent from '/@/views/system/print/component/hiprint/preview.vue'; + +import { addWmsOrderPurchase, updateWmsOrderPurchase, detailWmsOrderPurchase } from '/@/api/main/WmsOrder/wmsOrderPurchase'; +import OpenDetails from '/@/components/openDetails/openDetails.vue'; +import { pageBaseCustomer } from '/@/api/main/WmsBase/baseCustomer'; +import { listWmsOrderPurchaseDetails, pageWmsOrderPurchaseDetails } from '/@/api/main/WmsOrder/wmsOrderPurchaseDetails'; +import { formatDate, formatDate_T_Date, formatDate_T_Time, defaultTimeRange } from '/@/utils/formatTime'; +import commonFunction from '/@/utils/commonFunction'; +import { handleSlectDataWmsBusinessType } from '/@/utils/selectData'; +// 鎺ㄨ崘璁剧疆鎿嶄綔 width 涓� 200 +import { hiprint } from 'vue-plugin-hiprint'; +import { SysPrintApi } from '/@/api-services/api'; +import { SysPrint } from '/@/api-services/models'; + +const moveType = 10; //绉诲姩绫诲瀷 鍏ュ簱 +const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜 +const getEnumOrderTypeData = ref<any>([]); + +const getEnumDockData = ref<any>([]); +const getBusinessTypeData_Index = ref<any>([]); //涓氬姟绫诲瀷 create by liuwq +// const getEnumBusinessTypeData = ref<any>([]); update by liuwq +const getEnumPoStatusData = ref<any>([]); +const { getEnumDesc } = commonFunction(); +const emits = defineEmits(['getTabelData']); +const getEnumPoDetailStatusData_Index = ref<any>([]); +const getEnumOrderTypeData_Index = ref<any>([]); + +const props = defineProps({ + titleAuthor: { + type: Number, + required: true, + }, + hexiao: { + type: Number, + default: 1, + required: true, + }, +}); +//鎺у埗璁㈠崟绫诲瀷 - 涓嬫媺鑿滃崟 +const titleAuthor = computed(() => props.titleAuthor); +// 鏄惁鏄剧ず鏍搁攢鎸夐挳 +const hexiao = computed(() => props.hexiao); +const loading = ref(false); + + + +const getEnumStockStatusData_Index = ref<any>([]); + const getEnumLockStatusData_Index = ref<any>([]); +// 鐧诲綍鐢ㄦ埛id +// const LoginUserID = computed(() => store.state.login.userInfo.id || localCache.getCache("LoginUserID")) + +// const EnumWriteOffState = computed( +// () => store.state.login.enums.enumWriteOffState +// ); + +let itemBtnArr = ['鎵归噺鍒犻櫎', '缂栬緫', '鏂板']; +const boolEnum = ref([ + { + title: '鏄�', + value: true, + }, + { + title: '鍚�', + value: false, + }, +]); + +// form琛ㄥ崟灞曞紑 + +const orderType = ref(''); +const orderDoRuType = ref(); // 鐢ㄤ簬瀵煎叆鐨勫彉閲� +const itemBtn = ref(1); +// 鎺у埗bom鐗╂枡鏉冮檺 +const isShowBomBtn = ref(0); + +// 绂佹涔嬪墠鐨勬棩鏈� +const disabledDate = (time: Date) => { + return time.getTime() + 3600 * 1000 * 24 < Date.now(); +}; +// 涓婁紶绐楀彛 +const uploadVisible = ref(false); +//鎵撳紑瀵煎叆绐楀彛 +const openUploadDialog = (param: any) => { + orderDoRuType.value = param; + uploadVisible.value = true; +}; +//鍏抽棴绐楀彛 +const closeUploadDialog = () => { + getTabelData(); +}; +//sap鑾峰彇 +const getSapOrder = () => { + ElMessageBox.confirm('鏄惁纭鑾峰彇鏇存柊锛�', '鎻愮ず', { + confirmButtonText: '纭', + cancelButtonText: '鍙栨秷', + type: 'warning', + }).then(() => { + // getSapRkPurchase().then((res) => { + // if (res.code == 200) { + // ElMessage.success("宸插紑濮嬮噸鏂拌幏鍙栵紝璇风◢鍚庢煡鐪嬬粨鏋滐紒"); + // } else { + // ElMessage.error( + // `sap鑾峰彇澶辫触${res.code}:${JSON.stringify(res.message)}` + // ); + // } + // }) + }); +}; + +//------------sap鑾峰彇PO鍗� +const outVisible2 = ref(false); +const outerForm2 = ref({ + purchaseNo: '', +}); +const getSapOrderPO = (param?: number) => { + if (param && param == 1) { + outVisible2.value = true; + return; + } + if (outerForm2.value.purchaseNo == '') { + ElMessage.warning('璇疯緭鍏ュ崟鍙�'); + return; + } +}; +//鍏抽棴鍑哄簱绐楀彛鐨勫洖璋� +const closeOutDialog2 = () => { + outerForm2.value.purchaseNo = ''; +}; + +//------------sap鑾峰彇PO鍗� + +// --------------------PO鍗曞垪琛�----------------------------------- +//鏌ヨ +const formModel = ref({ + WareMaterialCode: '', + WareMaterialName: '', + PurchaseNo: '', + CreatedUserName: '', + CreatedTimeBegin: '', + CreatedTimeEnd: '', + CreateDate: [], + IssueTimeBegin: '', + IssueTimeEnd: '', + IssueDate: [], + MaterialTypeStaus: '', + SourceBy: '', + WriteOffState: '', + signStatus: '', + status: '', + freeOrderType: '', + IsQueryAll: false, //鏄惁鏄剧ず鍏ㄩ儴鏁版嵁 + // LoginUserID: LoginUserID, //鐢ㄦ埛id + OrderMenuType: '', //鍒ゆ柇鏄摢涓彍鍗曞叆搴� + Page: 1, + PageSize: 10, + poApprovalStatus: '', + keyCode: '', + IsDisable: '', //鏄惁浣滃簾 +}); + +//鍏ュ簱鍗曞垪琛ㄦ暟鎹� +let tableData = ref([]); +const tableRef = ref(); + +//鍒楄〃鐨勬暟鎹潯鏁� +const totalItems = ref<number>(0); + +//缂撳瓨鏋氫妇 +const enumList: any = cache.getCache('enumList'); +console.log(enumList.inEnumOrderType); + +// .inEnumOrderType + +//鑾峰彇PO鍗曞垪琛� +const getTabelData = () => { + //鍒ゆ柇鍒涘缓鏃堕棿鏄惁鏈夐�夋嫨 + if (formModel.value.CreateDate && formModel.value.CreateDate.length > 0) { + formModel.value.CreatedTimeBegin = formModel.value.CreateDate[0]; + formModel.value.CreatedTimeEnd = ''; //addDate(formModel.value.CreateDate[1], 1); //鏃ユ湡鏌ヨ 缁撴潫鏃堕棿 闇�瑕佸姞涓�澶� + } else { + // 鏃ュ巻娓呯┖ 鍐嶆煡璇ug + if (formModel.value.CreatedTimeBegin || formModel.value.CreatedTimeEnd) { + formModel.value.CreatedTimeBegin = ''; + formModel.value.CreatedTimeEnd = ''; + } + } + //鍒ゆ柇涓嬪彂鏃堕棿鏄惁鏈夐�夋嫨 + if (formModel.value.IssueDate && formModel.value.IssueDate.length > 0) { + formModel.value.IssueTimeBegin = formModel.value.IssueDate[0]; + formModel.value.IssueTimeEnd = formModel.value.IssueDate[1]; + } else { + // 鏃ュ巻娓呯┖ 鍐嶆煡璇ug + if (formModel.value.IssueTimeBegin || formModel.value.IssueTimeEnd) { + formModel.value.IssueTimeBegin = ''; + formModel.value.IssueTimeEnd = ''; + } + } +}; +getTabelData(); + +//閲嶇疆鎼滅储 +const resetForm = () => { + formModel.value = { + WareMaterialCode: '', + WareMaterialName: '', + PurchaseNo: '', + CreatedUserName: '', + CreatedTimeBegin: '', + CreatedTimeEnd: '', + CreateDate: [], + IssueTimeBegin: '', + IssueTimeEnd: '', + IssueDate: [], + MaterialTypeStaus: '', + SourceBy: '', + WriteOffState: '', + signStatus: '', + status: '', + freeOrderType: '', + IsQueryAll: false, //鏄惁鏄剧ず鍏ㄩ儴鏁版嵁 + // LoginUserID: LoginUserID, //鐢ㄦ埛id + OrderMenuType: '', //鍒ゆ柇鏄摢涓彍鍗曞叆搴� + Page: 1, + PageSize: 10, + poApprovalStatus: '', + keyCode: '', + IsDisable: '', //鏄惁浣滃簾 + }; + getTabelData(); +}; +// -----------------鍒犻櫎銆佸鍑烘搷浣�-------------------------- +//閫変腑鐨勮 +const checkRows = ref<{ id: number }[]>([]); +// 閫夋嫨 +const handleSelectionChange = (val: any) => { + checkRows.value = val; +}; + +// -------------------鑾峰彇PO鍗曚笅鐗╂枡璇︽儏----------------------------------- +//鍏ュ簱鍗曚笅鐗╂枡璇︽儏璇锋眰 +const detailForm = ref({ + poId: '', + materialCode: '', + Page: 1, + PageSize: 10, +}); + +// 鐗╂枡璇︽儏鎶藉眽 +const drawerVisible = ref(false); +const drawerType = ref('drawerAll'); +// const +//鍗曞彿 +const purchaseNo = ref(''); + +//鎵撳紑鎶藉眽 +const openDrawer = async (type: number, scope: any = {}, entozhExcell?: any) => { + detailForm.value.Page = 1; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏 + detailForm.value.PageSize = 10; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏 + if (scope.packageCode) { + title.value = `${scope.packageCode}`; + } + drawerType.value = 'drawerAll'; + drawerVisible.value = true; + //褰撳墠鍏ュ簱鍗曞彿id + detailForm.value.poId = scope.id; + //鍏ュ簱鍗� + purchaseNo.value = scope.packageCode; + debugger; + detailForm.value.poId = scope.id; + //鑾峰彇鐗╂枡鍒楄〃 + if (detailForm.value.poId == '') { + drawerList.value = []; + detailCount.value = 0; + return; + } + //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 + getDetail(); + //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 + getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? []; + getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? []; + // getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇涓氬姟绫诲瀷鎺ュ彛 create by liuwq + + // getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; + + // getEnumPoDetailStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; + // getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; + //----------------鐗╂枡鏄庣粏 + // 鏍规嵁鐘舵�佽浆涓枃 淇濈暀3浣嶅皬鏁� + let scopetrans = JSON.parse(JSON.stringify(scope)); + // scopetrans.totalquantity = Number(scopetrans.totalquantity).toFixed(3); + nextTick(() => { + scopetrans.poStatus = getEnumDesc(scopetrans.poStatus, getEnumPoDetailStatusData_Index.value); + scopetrans.businessType = getEnumDesc(scopetrans.businessType, getBusinessTypeData_Index.value); + scopetrans.orderType = getEnumDesc(scopetrans.orderType, getEnumOrderTypeData_Index.value); + proxy.$refs['propDetailRef'].openADialog(scopetrans, entozhExcell); + }); +}; + +//鍏抽棴鎶藉眽 +const handleDrawerClose = () => { + detailForm.value = { + poId: '', + materialCode: '', + Page: 1, + PageSize: 10, + }; + deltailList.value = []; + detailCount.value = 0; + drawerList.value = []; + detailCount.value = 0; +}; + +//鐗╂枡璇︽儏绫诲瀷 +interface DetailType { + id: number; +} + +//鍏ュ簱鍗曡鎯呭垪琛� +const deltailList = ref<DetailType[]>([]); +//寮瑰嚭灞傛暟鎹� +const drawerList = ref<DetailType[]>([]); + +//鍏ュ簱鍗曡鎯呭垪琛ㄦ暟鎹潯鏁� +const detailCount = ref(0); + +//寮瑰嚭灞傛爣棰� +let title = ref(''); +//鑾峰彇鍏ュ簱鍗曚笅鐗╂枡璇︽儏 +const getDetail = async (callback?: any) => { + loading.value = true; + + var res = await pageWmsOrderPurchaseDetails(Object.assign(detailForm.value)); + if (callback == 1) { + //缂栬緫鍏ュ彛 + warehousOrderDetails.value = res.data.result?.items ?? []; + detailCount.value = res.data.result?.total; + } else { + drawerList.value = res.data.result?.items ?? []; + detailCount.value = res.data.result?.total; + } + loading.value = false; +}; +// ----------------鏂板銆佺紪杈�------------------------------- +//绐楀彛绫诲瀷 +const dialogType = ref('add'); + +const dialogVisible = ref(false); + +//娣诲姞缂栬緫琛ㄥ崟ref +const dialogRef = ref(); + +//娣诲姞/缂栬緫鍙傛暟 +let addForm = ref({ + createdTime: '', + updatedTime: '', + createdUserName: '', + createdUserId: '', + purchaseNo: '', + purchaserUserId: 0, + basicExpressInfoCode: null, + materialType: '', //5 + status: 0, + supplierCode: '', + supplierName: '', + remark: '', + deliveryType: 1, + EstimatedDate: '', + purchaseOrderDetails: [] as any[], + dI_NO: '', + sJ_NO: '', + machineToolTypeName: '', + machineToolNo: '', + freeOrderType: '', +}); + +//rules +const formRules = { + businessType: [{ required: true, message: '璇烽�夋嫨涓氬姟绫诲瀷锛�', trigger: 'change' }], + supplierCode: [{ required: true, message: '璇疯緭鍏ヤ緵搴斿晢锛�', trigger: 'blur' }], + purchaseNo: [{ required: true, message: '璇疯緭鍏O鍗曞彿锛�', trigger: 'blur' }], + orderTypeName: [{ required: true, message: '璇疯緭鍏ヨ鍗曠被鍨嬪悕绉帮紒', trigger: 'blur' }], +}; +//鎵撳紑鏂板銆佺紪杈戠獥鍙� +const openDialog = async (type: number, scope: any = {}) => { + handleQueryTdp(); + getEnumOrderTypeData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; + getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇涓氬姟绫诲瀷鎺ュ彛 create by liuwq + getEnumPoStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; + + getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; + + if (type == 1) { + detailForm.value.PageSize = 10; + dialogType.value = 'add'; + } else { + dialogType.value = 'edit'; + detailForm.value.PageSize = 1000; + addForm.value = { ...scope }; + + console.log(addForm.value); + detailForm.value.poId = scope.id; + //鑾峰彇鐗╂枡 - 鍥炶皟鍑芥暟鏇挎崲瀹氭椂鍣� + + //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 + getDetail(1); + //----------------鐗╂枡鏄庣粏 + } + dialogVisible.value = true; + load.value = false; + //娓呴櫎閫変腑椤� + nextTick(() => { + if (dialogRef.value) { + dialogRef.value.clearValidate(); + } + }); +}; + +//鐗╂枡璇︽儏鐨則able ref +const detailRef = ref(); +const setRowKey = (row: any) => { + return row.id + row.poLineNumber; +}; +//鍏抽棴绐楀彛 +const closeDialog = () => { + load.value = false; + addForm.value = { + createdTime: '', + updatedTime: '', + createdUserName: '', + createdUserId: '', + purchaseNo: '', + purchaserUserId: 0, + basicExpressInfoCode: null, + materialType: '', //5 + status: 0, + supplierCode: '', + supplierName: '', + remark: '', + deliveryType: 1, + EstimatedDate: '', + purchaseOrderDetails: [] as any[], + dI_NO: '', + sJ_NO: '', + machineToolTypeName: '', + machineToolNo: '', + freeOrderType: '', + }; + warehousOrderDetails.value = []; + checkedDetails.value = []; + deltailList.value = []; + detailCount.value = 0; + detailRef.value.clearSelection(); +}; + +//娣诲姞缂栬緫绐楀彛鐗╂枡鍒楄〃 +const warehousOrderDetails = ref<any[]>([]); + +//鐗╂枡璇︽儏鍒楄〃閫変腑鐨勭墿鏂� +const checkedDetails = ref<any[]>([]); + +//鐗╂枡璇︽儏鍒楄〃涓嬀閫変簨浠� +const detailsCheckChange = (val: any) => { + checkedDetails.value = val; +}; + +//鍒犻櫎閫変腑鐨勭墿鏂欒鎯� +const delCheckedDetails = () => { + ElMessageBox.confirm('鏄惁纭鍒犻櫎锛�', '鎻愮ず', { + confirmButtonText: '纭', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + let arr = []; + if (checkedDetails.value[0].diRelationID) { + checkedDetails.value.forEach((item) => { + console.log(item); + let index = warehousOrderDetails.value.findIndex((detail) => detail.code == item.code && detail.diRelationID == item.diRelationID); + if (index > -1) { + warehousOrderDetails.value.splice(index, 1); + } + }); + } else { + checkedDetails.value.forEach((item) => { + let index = warehousOrderDetails.value.findIndex((detail) => detail.code == item.code && detail.poLineNumber == item.poLineNumber); + warehousOrderDetails.value.splice(index, 1); + }); + } + arr = warehousOrderDetails.value; + warehousOrderDetails.value = []; + //bug 鐩稿悓鐗╂枡 涓嶅悓Bom + nextTick(() => { + warehousOrderDetails.value = arr; + checkedDetails.value = []; + detailRef.value.clearSelection(); + }); + }) + .catch(() => ElMessage.info('宸插彇娑堝垹闄�')); +}; + +const load = ref(false); +//缂栬緫銆佹坊鍔犳彁浜� +const confirm = () => { + dialogRef.value.validate(async (vali: any) => { + if (vali) { + console.log('纭'); + if (warehousOrderDetails.value.length < 0) { + ElMessage.warning('璇烽�夋嫨鐗╂枡'); + return; + } + let idx = warehousOrderDetails.value.findIndex((v) => v.poLineNumber == '' || v.poLineNumber == undefined); + if (idx > -1) { + ElMessage.warning('璇疯緭鍏ヨ鍙�'); + return; + } + let isNext = ''; + warehousOrderDetails.value.forEach((item) => { + const arr: any = warehousOrderDetails.value.filter((detail) => detail.poLineNumber == item.poLineNumber); + if (arr.length > 1) { + isNext = `琛屽彿锛�${arr[0].poLineNumber}涓嶈兘鐩稿悓`; + return; + } + }); + if (isNext != '') { + ElMessage.warning(isNext); + return; + } + + let idx2 = warehousOrderDetails.value.findIndex((v) => v.quantity == '' || v.quantity == undefined || v.quantity <= 0); + if (idx2 > -1) { + ElMessage.warning('鏁伴噺涓嶅悎瑙勮寖锛�'); + return; + } + addForm.value.purchaseOrderDetails = []; + warehousOrderDetails.value.forEach((item) => { + const obj = { + poId: item.poId || 0, + materialCode: item.materialCode, + materialName: item.materialName, + id: item.id || '', + quantity: item.quantity, + barNo: item.barNo, + remark: addForm.value.remark, + poLineNumber: item.poLineNumber, + materialType: item.deliveryType, + clientCode: item.diCustomCode || '', + clientChinaName: item.diCustomChinaName || '', + plannedStartTime: item.plannedStartTime, + plannedEndTime: item.plannedEndTime, + projectNo: item.projectNo, + erpCode: item.erpCode, + supplierBatch: item.supplierBatch, + unit: item.unit, + }; + addForm.value.purchaseOrderDetails.push(obj); + }); + load.value = true; + //娣诲姞 + if (dialogType.value == 'add') { + load.value = true; + let res = await addWmsOrderPurchase(addForm.value); + if (res.data && res.data.code == 200) { + ElMessage.success('娣诲姞鎴愬姛'); + dialogVisible.value = false; + emits('getTabelData'); + } + load.value = false; + } else { + load.value = true; + let res = await updateWmsOrderPurchase(addForm.value); + if (res.data && res.data.code == 200) { + ElMessage.success('缂栬緫鎴愬姛'); + dialogVisible.value = false; + emits('getTabelData'); + } + load.value = false; + } + } else { + ElMessage.warning('琛ㄥ崟楠岃瘉澶辫触'); + } + }); +}; +// -----------------娣诲姞鐗╂枡鎿嶄綔------------------------- +//鐗╂枡鍩虹鏁版嵁绐楀彛 +const addMaterialVisible = ref(false); + +//鐗╂枡鍩虹鏁版嵁鍒楄〃 +const materialList = ref([]); + +//鐗╂枡鍩虹鏁版嵁鏉℃暟 +const materialTotal = ref(0); + +//鐗╂枡鍩虹鏁版嵁form +const materialForm = ref({ + MaterialTypeId: '', + Code: '', + MaterialCode: '', + // MaterialType: 1, + Page: 1, + PageSize: 10, +}); + +//鑾峰彇鐗╂枡鍩虹鍒楄〃 +const getMaterialList = async () => { + loading.value = true; + // var res = await pageWmsMaterial(Object.assign(queryParams.value, tableParams.value)); + var res = await pageWmsMaterial(Object.assign(materialForm.value)); + + materialList.value = res.data.result?.items ?? []; + //tableParams.value.total = res.data.result?.total; + materialTotal.value = res.data.result?.total; + loading.value = false; +}; + +//閲嶇疆鐗╂枡 +const resetMaterialForm = () => { + materialForm.value = { + MaterialTypeId: '', + Code: '', + MaterialCode: '', + Page: 1, + // MaterialType: 1, + PageSize: 10, + }; + getMaterialList(); +}; + +//閫変腑鐨勫熀纭�鐗╂枡鏁版嵁 +const checkedMaterial = ref<any[]>([]); + +//鐗╂枡鍩虹鏁版嵁鍕鹃�� +const materialSelectionChange = (val: any) => { + checkedMaterial.value = val; +}; + +//鎵撳紑鏂板鐗╂枡绐楀彛 +const addMaterialDialog = () => { + // if ( addForm.value.freeOrderType && isShowBomBtn.value ) { + // ElMessage.warning("鍏嶈垂浠剁被鍨嬫槸PR2锛屽彧鑳芥柊澧濪I缁存姢鐨勭墿鏂欙紒"); + // return; + // } + getMaterialList(); + addMaterialVisible.value = true; +}; + +//鍩虹鐗╂枡table鐨剅ef瀵硅薄 +const materialRef = ref(); + +//纭娣诲姞鏉愭枡 +const confirmAddMaterial = () => { + //鐗╂枡鍒楄〃娌℃暟鎹紝鐩存帴娣诲姞 + if (warehousOrderDetails.value.length == 0) { + // 鑷姩缁欒鍙峰鍊� + checkedMaterial.value.forEach((item, index) => { + item.unit = item.poUnit; + if (!item.poLineNumber) { + item.poLineNumber = index + 1 + warehousOrderDetails.value.length; + } + }); + + warehousOrderDetails.value.push(...checkedMaterial.value); + } else { + for (let i = 0; i < checkedMaterial.value.length; i++) { + let idx = warehousOrderDetails.value.findIndex( + (item: { poLineNumber: any; code: any }) => item.code == checkedMaterial.value[i].code && item.poLineNumber == checkedMaterial.value[i].poLineNumber + ); + if (idx > -1) { + return ElMessage.warning(`鐗╂枡缂栧彿${checkedMaterial.value[i].code}锛岃鍙凤細${checkedMaterial.value[i].poLineNumber || ''}鍦ㄧ墿鏂欏垪琛ㄤ腑宸插瓨鍦�,璇峰幓闄ゅ嬀閫塦); + } + } + + // 鑷姩缁欒鍙峰鍊� + checkedMaterial.value.forEach((item, index) => { + item.unit = item.poUnit; + if (!item.poLineNumber) { + item.poLineNumber = index + 1 + warehousOrderDetails.value.length; + } + }); + warehousOrderDetails.value.push(...checkedMaterial.value); + } + + addMaterialVisible.value = false; +}; + +//鍏抽棴鏂板鐗╂枡绐楀彛 +const closeMaterialDialog = () => { + materialForm.value = { + MaterialTypeId: '', + Code: '', + Page: 1, + // MaterialType: 1, + PageSize: 10, + }; + materialList.value = []; + checkedMaterial.value = []; + materialRef.value.clearSelection(); +}; + +// 椤甸潰鍔犺浇鏃� +onMounted(async () => {}); + +//================ +const arrTdp = ref<any[]>([]); +const queryParamsW = ref<any>({}); +const tableParamsW = ref({ + page: 1, + pageSize: 200, + total: 0, + custType: '渚涘簲鍟�', +}); + +//-----------------杩滅▼鎼滅储---------------- +const handleQueryTdp = async () => { + var res = await pageBaseCustomer(Object.assign(queryParamsW.value, tableParamsW.value)); + arrTdp.value = res.data.result?.items ?? []; +}; +const changeXmbh = async (query?: any) => { + loading.value = true; + var res = await pageBaseCustomer({ + page: 1, + pageSize: 200, + custCode: query, + custType: '渚涘簲鍟�', + }); + loading.value = false; + arrTdp.value = res.data.result?.items ?? []; +}; +// 杩滅▼鎼滅储 杈撳叆鍏抽敭瀛椾互浠庤繙绋嬫湇鍔″櫒涓煡鎵炬暟鎹�� +const remoteMethod = async (query: string) => { + loading.value = true; + var res = await pageBaseCustomer({ + page: 1, + pageSize: 200, + custCode: query, + custType: '渚涘簲鍟�', + }); + loading.value = false; + arrTdp.value = res.data.result?.items ?? []; +}; +//-----------------杩滅▼鎼滅储---------------- + +const printDialogRefTestStudent = ref(); +const printTestStudentTitle = ref(''); +//鎵撳嵃 +const getPrint = async (row?: any) => { + printTestStudentTitle.value = '鎵撳嵃'; + var res = await getAPI(SysPrintApi).apiSysPrintPrintNameGet('娴嬭瘯鎵撳嵃妯$増'); + var printTemplate = res.data.result as SysPrint; + var template = JSON.parse(printTemplate.template); + var resList = await listWmsOrderPurchaseDetails(detailForm.value); + var printData = resList.data.result || []; + printData.forEach((item: any, index?: any) => { + item.no = index + 1; + }); + //鎵撳嵃鏁版嵁 + var row: any = { + text1: title.value, //鍗曞彿 + table: printData, //琛ㄦ牸鏁版嵁 + }; + printDialogRefTestStudent.value.showDialog(new hiprint.PrintTemplate({ template: template }), row, template.panels[0].width); +}; + +// 鏆撮湶鏂规硶 +defineExpose({ openDialog, openDrawer }); +</script> +<style lang="less" scoped> +.detailBoxWrap { + margin: 10px; +} + +.msi-form { + margin-top: 10px; +} +.msi-form { + margin-bottom: 10px; +} +.slot_title { + display: flex; + align-items: center; + // margin-left: 20px; + .title_orderNo { + font-size: 18px; + color: #f18201; + font-weight: bold; + margin-right: 5px; + } +} +</style> diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllpropAsn.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllpropAsn.vue deleted file mode 100644 index 0d79eff..0000000 --- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/component/openAllpropAsn.vue +++ /dev/null @@ -1,1774 +0,0 @@ -<template> - <!-- 娣诲姞銆佺紪杈戙�� 鎵撳嵃--> - <el-dialog v-model="dialogVisible" width="95%" @close="closeDialog" :close-on-click-modal="false"> - <template #header> - <div style="color: #fff"> - <span v-if="dialogType == 'add'"> - 娣诲姞 - </span> - <span v-if="dialogType == 'edit'"> - 缂栬緫 - </span> - <span v-if="dialogType == 'print'"> - 鎵撳嵃 - </span> - </div> - </template> - - <!-- 娣诲姞 缂栬緫--> - <div v-if="dialogType != 'print'"> - <el-form :model="addForm" ref="dialogRef" labelWidth="90" :rules="formRules" style="width: 60%"> - <el-row> - <!-- 鍚庣榛樿鏄� ASN鍗� update by liuwq 2024-05-23 --> - - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="璁㈠崟绫诲瀷" prop="asnType"> - <el-select :disabled="dialogType != 'add'" clearable v-model="addForm.asnType" placeholder="璇烽�夋嫨璁㈠崟绫诲瀷"> - <el-option v-for="(item, index) in getEnumOrderTypeData" :key="index" :value="item.value" - :label="`${item.describe}`"></el-option> - </el-select> - </el-form-item> - </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" class="mb10"> - <el-form-item label="涓氬姟绫诲瀷" prop="businessType"> - <el-select clearable v-model="addForm.businessType" placeholder="璇烽�夋嫨涓氬姟绫诲瀷" :disabled="showYwlx"> - <el-option v-for="(item, index) in getBusinessTypeData_Index" :key="index" :value="item.businessTypeValue" - :label="`[${item.businessTypeValue}] ${item.businessTypeName}`"></el-option> - </el-select> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="鑷姩鐢熸垚鏉$爜"> - <el-switch v-model="addForm.hasTMCode" active-text="鏄�" inactive-text="鍚�" /> - </el-form-item> - </el-col> - <el-col - :xs="24" - :sm="12" - :md="12" - :lg="8" - :xl="4" - class="mb10" - v-show="addForm.hasTMCode" - > - <el-form-item label="鏉$爜绫诲瀷"> - <el-switch - v-model="addForm.typeTMCode" - active-text="涓�缁�" - inactive-text="浜岀淮" - /> - </el-form-item> - </el-col> --> - - <!-- 榛樿ERP搴撳瓨鍦� --> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="渚涘簲鍟嗙紪鍙�" prop="supplierCode"> - <el-select - v-model="addForm.supplierCode" - filterable - remote - reserve-keyword - remote-show-suffix - :remote-method="remoteMethod" - :loading="loading" - placeholder="璇烽�夋嫨鏇夸唬鍝佺墿鏂欑紪鍙�" - clearable - style="width: 100%" - @change="changeXmbh(addForm.supplierCode)" - > - <el-option - v-for="(item, index) in arrTdp" - :key="index" - :value="item.custCode" - :label="`[${item.custCode}]${item.custChinaName}`" - ></el-option> - </el-select> - </el-form-item> - </el-col> --> - - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="ERP鍗曞彿" prop="erpOrderNo"> - <el-input - v-model="addForm.erpOrderNo" - placeholder="璇疯緭鍏RP鍗曞彿" - maxlength="50" - show-word-limit - clearable - /> - </el-form-item> - </el-col> --> - - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="椤圭洰鍙�" prop="projectNo"> - <el-input v-model="addForm.projectNo" placeholder="璇疯緭鍏ラ」鐩彿" maxlength="50" show-word-limit - clearable /> - </el-form-item> - </el-col> --> - </el-row> - </el-form> - <div class="msi-content" style="margin-top: 10px"> - <div class="header" style="margin-bottom: 10px"> - <div> - <el-button v-show="isMaterialBox == true" type="primary" icon="el-icon-plus" - @click="addMaterialDialog">鏂板鐗╂枡</el-button> - <el-button v-show="isPoBox == true" type="primary" icon="el-icon-plus" - @click="addMaterialDialog('po')">鍏宠仈PO鍗�</el-button> - - <el-button icon="el-icon-delete" plain :disabled="checkedDetails.length == 0" - @click="delCheckedDetails">鍒犻櫎閫変腑琛�</el-button> - </div> - </div> - <el-table :data="warehousOrderDetails" border style="width: 100%" row-key="setRowKey" ref="detailRef" - v-loading="loading" @selection-change="detailsCheckChange" max-height="480"> - <el-table-column align="center" width="60" type="selection" /> - <el-table-column fixed="left" label="搴忓彿" align="center" width="60" type="index" /> - <el-table-column fixed="left" label="鐗╂枡缂栧彿" min-width="140" prop="materialCode" align="center" - show-overflow-tooltip /> - <el-table-column label="鐗╂枡鍚嶇О" min-width="100" prop="materialName" align="center" show-overflow-tooltip /> - <el-table-column v-if="isPoBox == 1" label="PO鍗曞彿" min-width="130" prop="poNo" align="center" - show-overflow-tooltip /> - - <el-table-column v-if="isPoBox == 1" label="PO琛屽彿" prop="poLineNumber" align="center" min-width="120"> - <template #default="scope"> - {{ scope.row.poLineNumber }} - </template> - </el-table-column> - - <el-table-column label="ASN琛屽彿" prop="asnLineNumber" align="center" v-if="dialogType != 'add'" min-width="120"> - <template #default="scope"> - {{ scope.row.asnLineNumber }} - </template> - </el-table-column> - - <el-table-column label="鏁伴噺" align="center" min-width="150"> - <template #default="scope"> - <el-input-number :precision="3" min="0" v-model="scope.row.poQuantity" size="small" /> - </template> - </el-table-column> - - <el-table-column label="璁″垝寮�濮嬫椂闂�" align="center" min-width="180"> - <template #default="scope"> - <el-date-picker v-model="scope.row.plannedStartTime" type="datetime" :disabled-date="disabledDate" - value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨璁″垝寮�濮嬫椂闂�" - style="width: 100%" /> - </template> - </el-table-column> - <el-table-column label="璁″垝缁撴潫鏃堕棿" align="center" min-width="180"> - <template #default="scope"> - <el-date-picker v-model="scope.row.plannedEndTime" type="datetime" :disabled-date="disabledDate" - value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨璁″垝缁撴潫鏃堕棿" - style="width: 100%" /> - </template> - </el-table-column> - - <el-table-column label="渚涘簲鍟�" align="center" min-width="180"> - <template #default="scope"> - <!-- @click="changeXmbh(scope.row.supplierCode,scope.row.materialCode,scope.row)" - :loading="loading" - placeholder="璇烽�夋嫨渚涘簲鍟�" - clearable - - :remote = "false" - :defaultActiveFirstOption="false" - reserve-keyword - remote-show-suffix :remote-method="remoteMethod(scope.row.supplierCode,scope.row.materialName)" - - - - :loading="loading" - placeholder="璇烽�夋嫨渚涘簲鍟�" - clearable - filterable - :defaultActiveFirstOption="false" - reserve-keyword - remote-show-suffix - :remote-method="(val:any) => changeXmbh(val,scope.row.materialName)" - - --> - <el-select filterable v-model="scope.row.supplierCode" style="width: 100%" - @click.native="changeXmbh(scope.row.supplierCode, scope.row.materialCode, scope.row)"> - <el-option v-for="(item, index) in scope.row.arrTdp" :key="index" :value="item.custCode" - :label="`[${item.custCode}]${item.custChinaName}`"></el-option> - </el-select> - </template> - </el-table-column> - <el-table-column label="渚涘簲鍟嗘壒娆�" prop="supplierBatch" align="center" min-width="120"> - <template #default="scope"> - <el-input v-model.trim="scope.row.supplierBatch" clearable min-width="150" placeholder="璇疯緭鍏ヤ緵搴斿晢鎵规" /> - </template> - </el-table-column> - - <el-table-column label="ERP搴撳瓨鍦�" prop="erpCode" align="center" min-width="120"> - <template #default="scope"> - <el-input v-model.trim="scope.row.erpCode" clearable min-width="150" placeholder="璇疯緭鍏RP搴撳瓨鍦�" /> - </template> - </el-table-column> - - <el-table-column label="椤圭洰鍙�" prop="projectNo" align="center" min-width="120"> - <template #default="scope"> - <el-input v-model.trim="scope.row.projectNo" clearable min-width="150" placeholder="璇疯緭鍏ラ」鐩彿" /> - </template> - </el-table-column> - - <el-table-column label="鏀惰揣閬撳彛" prop="dock" align="center" min-width="120"> - <template #default="scope"> - <!-- <el-input v-model.trim="scope.row.dock" clearable min-width="150" placeholder="璇疯緭鍏ユ敹璐ч亾鍙�" /> --> - - <el-select clearable v-model="scope.row.dock" placeholder="璇烽�夋嫨鏀惰揣閬撳彛"> - <el-option v-for="(item, index) in getEnumDockData" :key="index" :value="item.value" - :label="`${item.describe}`"></el-option> - </el-select> - </template> - </el-table-column> - - <el-table-column label="鏄惁鍐荤粨" prop="isFreeze" align="center" min-width="120"> - <template #default="scope"> - <el-switch v-model="scope.row.isFreeze" active-text="鏄�" inactive-text="鍚�" /> - </template> - </el-table-column> - - <el-table-column label="鍐荤粨鍘熷洜" prop="freezeReason" align="center" min-width="120"> - <template #default="scope"> - <el-input v-model="scope.row.freezeReason" placeholder="璇疯緭鍏ュ喕缁撳師鍥�" maxlength="255" show-word-limit - clearable /> - </template> - </el-table-column> - - <el-table-column label="閲囪喘鍗曚綅" min-width="80" prop="poUnit" align="center" show-overflow-tooltip /> - <el-table-column label="搴撳瓨鍗曚綅" min-width="80" prop="materialUnit" align="center" show-overflow-tooltip /> - </el-table> - </div> - </div> - <!-- 鎵撳嵃 --> - <div v-if="dialogType == 'print'"> - <el-table :data="warehousOrderDetails" border style="width: 100%" row-key="setRowKey" ref="detailRef" - @selection-change="detailsCheckChange" max-height="480"> - <el-table-column align="center" width="60" type="selection" /> - <el-table-column fixed="left" label="搴忓彿" align="center" width="60" type="index" /> - <el-table-column fixed="left" label="鐗╂枡缂栧彿" min-width="140" prop="materialCode" align="center" - show-overflow-tooltip /> - <el-table-column label="鐗╂枡鍚嶇О" min-width="100" prop="materialName" align="center" show-overflow-tooltip /> - - <el-table-column label="ASN琛屽彿" prop="asnLineNumber" align="center" min-width="120"> - <template #default="scope"> - {{ scope.row.asnLineNumber }} - </template> - </el-table-column> - <el-table-column label="鏁伴噺" align="center" min-width="150"> - <template #default="scope"> - {{ scope.row.quantity }} - </template> - </el-table-column> - - <el-table-column label="璁″垝寮�濮嬫椂闂�" align="center" min-width="180"> - <template #default="scope"> - {{ scope.row.plannedStartTime }} - </template> - </el-table-column> - <el-table-column label="璁″垝缁撴潫鏃堕棿" align="center" min-width="180"> - <template #default="scope"> - {{ scope.row.plannedEndTime }} - </template> - </el-table-column> - - <el-table-column label="渚涘簲鍟�" align="center" min-width="180"> - <template #default="scope"> - {{ scope.row.supplierCode }} - </template> - </el-table-column> - <el-table-column label="渚涘簲鍟嗘壒娆�" prop="supplierBatch" align="center" min-width="120"> - <template #default="scope"> - {{ scope.row.supplierBatch }} - </template> - </el-table-column> - <el-table-column label="搴撳瓨鍗曚綅" min-width="80" prop="materialUnit" align="center" show-overflow-tooltip /> - - <el-table-column prop="sN_1d" min-width="120px" label="涓�缁存潯鐮�" show-overflow-tooltip="" /> - <el-table-column prop="sN_2d" min-width="120px" label="浜岀淮鏉$爜" show-overflow-tooltip="" /> - - </el-table> - - </div> - - - <template #footer> - <span class="dialog-footer"> - <el-button @click="dialogVisible = false">鍙栨秷</el-button> - <el-button type="primary" :disabled="disabled_btn" @click="confirm">纭</el-button> - </span> - </template> - </el-dialog> - <!-- 娣诲姞鐗╂枡 --> - <el-dialog v-model="addMaterialVisible" width="80%" @close="closeMaterialDialog"> - <template #header> - <div style="color: #fff"> - <span v-if="isMaterialBox == 1">娣诲姞鐗╂枡璇︽儏</span> - <span v-if="isPoBox == 1">鍏宠仈PO鍗曠墿鏂�</span> - </div> - </template> - - <div class="msi-form" style="padding-top: 0px"> - <el-form :model="materialForm" labelWidth="90"> - <el-row> - <el-col :span="8" v-if="isMaterialBox == 1"> - <el-form-item label="鐗╂枡缂栧彿"> - <el-input v-model="materialForm.materialCode" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" clearable></el-input> - </el-form-item> - </el-col> - <!-- 鍏宠仈PO鍗曞彿 --> - - <el-col :span="6" v-if="isPoBox == 1"> - <el-form-item label="PO鍗曞彿:"> - <el-input v-model="materialForm.poNo" placeholder="璇疯緭鍏O鍗曞彿" clearable></el-input> - </el-form-item> - </el-col> - - <el-col :span="6" v-if="isPoBox == 1"> - <el-form-item label="椤圭洰鍙�" prop="projectNo"> - <el-input v-model="materialForm.projectNo" placeholder="璇疯緭鍏ラ」鐩彿" maxlength="50" show-word-limit clearable /> - </el-form-item> - </el-col> - <el-col :span="6" v-if="isPoBox == 1"> - <el-form-item label="鐗╂枡缂栧彿"> - <el-input v-model="materialForm.materialCode" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" clearable></el-input> - </el-form-item> - </el-col> - <el-col :span="6" v-if="isPoBox == 1" style="margin-bottom: 10px"> - <el-form-item label="渚涘簲鍟�" prop="supplierCode"> - <el-select v-model="materialForm.supplierCode" filterable remote reserve-keyword remote-show-suffix - :remote-method="remoteMethod2" :loading="loading" placeholder="璇烽�夋嫨渚涘簲鍟�" clearable style="width: 100%"> - <el-option v-for="(item, index) in arrTdp2" :key="index" :value="item.custCode" - :label="`[${item.custCode}]${item.custChinaName}`"></el-option> - </el-select> - </el-form-item> - </el-col> - - <el-col :span="6" v-if="isPoBox == 1"> - <el-form-item label="璁″垝鏃堕棿"> - <el-date-picker placeholder="璇烽�夋嫨璁″垝鏃堕棿" value-format="YYYY/MM/DD" type="daterange" - v-model="materialForm.plannedStartTimeRange" /> - </el-form-item> - </el-col> - - <!-- <el-form-item label="璁″垝鏃堕棿"> - <el-date-picker placeholder="璇烽�夋嫨璁″垝鏃堕棿" value-format="YYYY/MM/DD" type="datetime" v-model="materialForm.plannedStartTimeRange" /> - </el-form-item> --> - - <!-- <el-col :span="6" v-if="isPoBox == 1"> - <el-form-item label="璁″垝缁撴潫鏃堕棿"> - <el-date-picker placeholder="璇烽�夋嫨璁″垝缁撴潫鏃堕棿" value-format="YYYY/MM/DD" type="datetime" v-model="materialForm.plannedEndTimeRange" /> - </el-form-item> - </el-col> --> - - <el-col :span="4"> - <el-form-item label-width="20px"> - <el-button type="primary" icon="el-icon-search" @click="getMaterialList">鏌ヨ</el-button> - <!-- <el-button icon="el-icon-refresh-right" @click="resetMaterialForm">閲嶇疆</el-button> --> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <div class="msi-content" style="padding-top: 0; margin-top: 10px"> - <el-table :data="materialList" border style="width: 100%" row-key="id" ref="materialRef" - @selection-change="materialSelectionChange" :max-height="480" v-if="isMaterialBox == 1"> - <el-table-column align="center" width="60" type="selection" /> - <el-table-column label="搴忓彿" align="center" width="60" type="index" /> - <el-table-column label="鐗╂枡缂栧彿" prop="materialCode" align="center" min-width="140px" show-overflow-tooltip /> - <el-table-column label="鐗╂枡鍚嶇О" prop="materialName" align="center" min-width="140px" show-overflow-tooltip /> - <el-table-column prop="isCheck" label="鏄惁璐ㄦ" show-overflow-tooltip=""> - <template #default="scope"> - <el-tag v-if="scope.row.isCheck"> 鏄� </el-tag> - <el-tag type="danger" v-else> 鍚� </el-tag> - - </template> - </el-table-column> - <el-table-column label="閲囪喘鍗曚綅" prop="poUnit" align="center" show-overflow-tooltip /> - <el-table-column label="搴撳瓨鍗曚綅" prop="materialUnit" align="center" show-overflow-tooltip /> - </el-table> - <!-- PO鍗� --> - <el-table :data="materialList" border style="width: 100%" row-key="id" ref="materialRef" - @selection-change="materialSelectionChange" :max-height="480" v-if="isPoBox == 1"> - <el-table-column align="center" width="60" type="selection" /> - <el-table-column label="搴忓彿" align="center" width="60" type="index" /> - <el-table-column prop="poNo" label="PO鍗曞彿" min-width="160px" show-overflow-tooltip="" /> - <el-table-column prop="poLineNumber" label="PO琛屽彿" show-overflow-tooltip="" /> - <!-- <el-table-column prop="erpOrderNo" label="ERP鍗曞彿" show-overflow-tooltip="" /> --> - <!-- <el-table-column prop="erpCode" label="ERP搴撳瓨鍦�" show-overflow-tooltip="" /> --> - <el-table-column prop="materialCode" label="鐗╂枡缂栧彿" min-width="120px" show-overflow-tooltip="" /> - <el-table-column prop="materialName" label="鐗╂枡鍚嶇О" min-width="120px" show-overflow-tooltip="" /> - <el-table-column prop="poDetailStatusName" label="鍗曟嵁鐘舵��" show-overflow-tooltip=""> - <template #default="scope"> - <el-tag :type="getTypeStatus(1, scope.row.poDetailStatusName)">{{ scope.row.poDetailStatusName }} </el-tag> - </template> - </el-table-column> - - <el-table-column prop="quantity" label="鏁伴噺" show-overflow-tooltip="" /> - <!-- <el-table-column prop="goodsQuantity" label="宸叉敹鏁伴噺" show-overflow-tooltip="" /> --> - <el-table-column prop="createASNQuantity" min-width="110px" label="宸插垱寤篈SN鏁伴噺" show-overflow-tooltip="" /> - - - <el-table-column prop="usedQty" label="鍓╀綑鍙敤鏁�" show-overflow-tooltip=""> - <template #default="scope"> - <span> {{ Number(scope.row.usedQty).toFixed(3).replace(/\.?0*$/, '') }} </span> - </template> - </el-table-column> - - - <el-table-column prop="snp" label="鏍囧寘鏁伴噺" show-overflow-tooltip=""> - <template #default="scope"> - <span> {{ scope.row.snp }} </span> - </template> - </el-table-column> - - <!-- <el-table-column prop="printQuantity" label="鏉$爜鎵撳嵃鏁伴噺" show-overflow-tooltip="" /> --> - - <!-- <el-table-column prop="poDetailStatus" label="鐘舵��" show-overflow-tooltip=""> - <template #default="scope"> - {{ scope.row.poDetailStatus }} - <el-tag>{{ getEnumDesc(scope.row.poDetailStatus, getEnumPoDetailStatusData_Index) }}</el-tag> - </template> - </el-table-column> --> - <el-table-column prop="supplierCode" label="渚涘簲鍟嗙紪鍙�" show-overflow-tooltip="" /> - <el-table-column prop="supplierName" label="渚涘簲鍟嗗悕绉�" show-overflow-tooltip="" /> - <el-table-column prop="plannedStartTime" label="璁″垝寮�濮嬫椂闂�" min-width="130px" show-overflow-tooltip="" /> - <el-table-column prop="plannedEndTime" label="璁″垝缁撴潫鏃堕棿" min-width="130px" show-overflow-tooltip="" /> - <el-table-column prop="projectNo" min-width="100px" label="椤圭洰鍙�" show-overflow-tooltip="" /> - - <!-- <el-table-column prop="dock" min-width="100px" label="鏀惰揣閬撳彛" show-overflow-tooltip="" /> --> - - <!-- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> - <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> - <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> - <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> --> - </el-table> - - <Pagination :total="materialTotal" v-model:page="materialForm.Page" v-model:limit="materialForm.PageSize" - @pagination="getMaterialList" style="margin-top: 20px; text-align: center"></Pagination> - </div> - <template #footer> - <span class="dialog-footer"> - <el-button @click="addMaterialVisible = false">鍙栨秷</el-button> - <el-button type="primary" @click="confirmAddMaterial">纭</el-button> - </span> - </template> - </el-dialog> - <!-- 鍗曡鎯� --> - <el-drawer v-model="drawerVisible" :title="`${detailForm.asnId}璁㈠崟璇︽儏`" direction="rtl" size="80%" - @close="handleDrawerClose"> - <template #title> - <div class="slot_title"> - <div class="title_orderNo">{{ title }}</div> - <div>璁㈠崟璇︽儏</div> - </div> - </template> - - <div class="detailBoxWrap"> - <!-- 璇︽儏缁勪欢 --> - <open-details ref="propDetailRef"></open-details> - <div class="msi-form"> - <el-form :model="detailForm"> - <el-row> - <el-col :span="6"> - <el-form-item label="鐗╂枡缂栧彿"> - <el-input v-model="detailForm.materialCode" clearable placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" /> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label-width="20px"> - <el-button type="primary" icon="el-icon-search" @click="getDetail">鏌ヨ</el-button> - - <el-button type="primary" icon="ele-Finished" @click="goGenerateCode" - :disabled="sccheckedDetails.length == 0">鐢熸垚鏉$爜</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <div class="msi-content"> - <!-- <p style="margin-bottom: 10px">鐗╂枡鏄庣粏</p> --> - <el-table :data="drawerList" @selection-change="scdetailsCheckChange" border striped :max-height="480"> - - <el-table-column fixed="left" align="center" width="60" type="selection" /> - <el-table-column fixed="left" label="搴忓彿" align="center" width="60" type="index" /> - <!-- <el-table-column prop="asnNo" min-width="100px" label="ASN鍗曞彿" show-overflow-tooltip="" /> --> - <el-table-column prop="materialCode" fixed="left" min-width="130px" label="鐗╂枡缂栧彿" show-overflow-tooltip="" /> - <el-table-column prop="materialName" min-width="130px" label="鐗╂枡鍚嶇О" show-overflow-tooltip="" /> - - <el-table-column prop="asnLineNumber" min-width="100px" label="ASN琛屽彿" show-overflow-tooltip="" /> - <el-table-column prop="asnStatus" min-width="100px" label="鍗曟嵁鐘舵��" show-overflow-tooltip=""> - <template #default="scope"> - <el-tag :type="getTypeStatus( - 1, scope.row.asnStatusName) - "> - {{ scope.row.asnStatusName }} - </el-tag> - </template> - </el-table-column> - <el-table-column prop="poQuantity" min-width="100px" label="閲囪喘鏁伴噺" show-overflow-tooltip="" /> - <el-table-column prop="quantity" min-width="100px" label="閫佽揣鏁伴噺" show-overflow-tooltip="" /> - <el-table-column prop="goodsQuantity" min-width="100px" label="宸叉敹鏁伴噺" show-overflow-tooltip="" /> - - <el-table-column prop="poNo" label="PO鍗曞彿" min-width="120px" show-overflow-tooltip="" /> - <el-table-column prop="poLineNumber" min-width="100px" label="PO琛屽彿" show-overflow-tooltip="" /> - - <el-table-column prop="poUnit" min-width="100px" label="閲囪喘鍗曚綅" show-overflow-tooltip="" /> - <el-table-column prop="materialUnit" min-width="100px" label="搴撳瓨鍗曚綅" show-overflow-tooltip="" /> - <el-table-column prop="translateRate" min-width="100px" label="鎹㈢畻鐜�" show-overflow-tooltip="" /> - - <el-table-column prop="supplierCode" min-width="100px" label="渚涘簲鍟嗙紪鍙�" show-overflow-tooltip="" /> - <el-table-column prop="supplierName" min-width="100px" label="渚涘簲鍟嗗悕绉�" show-overflow-tooltip="" /> - <el-table-column prop="supplierBatch" min-width="100px" label="渚涘簲鍟嗘壒娆�" show-overflow-tooltip="" /> - <el-table-column prop="sN_1d" min-width="180px" label="涓�缁存潯鐮�" show-overflow-tooltip="" /> - <el-table-column prop="sN_2d" min-width="180px" label="浜岀淮鏉$爜" show-overflow-tooltip="" /> - <!-- <el-table-column prop="package" min-width="100px" label="鍖呰鍚嶇О" show-overflow-tooltip="" /> --> - <el-table-column prop="plannedStartTime" min-width="120px" label="璁″垝寮�濮嬫椂闂�" show-overflow-tooltip="" /> - <el-table-column prop="plannedEndTime" min-width="120px" label="璁″垝缁撴潫鏃堕棿" show-overflow-tooltip="" /> - <el-table-column label="鏄惁鍐荤粨" prop="isFreeze" align="center" min-width="120"> - <template #default="scope"> - - - <el-tag v-if="scope.row.isFreeze"> 鏄� </el-tag> - <el-tag type="danger" v-else> 鍚� </el-tag> - - </template> - </el-table-column> - <el-table-column prop="projectNo" min-width="100px" label="椤圭洰鍙�" show-overflow-tooltip="" /> - <!-- <el-table-column prop="factoryName" min-width="100px" label="宸ュ巶鍚嶇О" show-overflow-tooltip="" /> - <el-table-column prop="factoryCode" min-width="100px" label="宸ュ巶缂栧彿" show-overflow-tooltip="" /> --> - <el-table-column prop="dock" min-width="100px" label="鏀惰揣閬撳彛" show-overflow-tooltip="" /> - - <!-- <el-table-column prop="batch" min-width="100px" label="鎵规" show-overflow-tooltip="" /> --> - - <el-table-column prop="erpCode" min-width="100px" label="ERP搴撳瓨鍦�" show-overflow-tooltip="" /> - <el-table-column prop="erpOrderNo" min-width="100px" label="ERP鍗曞彿" show-overflow-tooltip="" /> - - <el-table-column prop="createTime" min-width="100px" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" - show-overflow-tooltip="" /> - <el-table-column prop="updateTime" min-width="100px" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" - show-overflow-tooltip="" /> - <el-table-column prop="createUserName" min-width="120px" label="鍒涘缓浜�" show-overflow-tooltip="" /> - <el-table-column prop="updateUserName" min-width="120px" label="淇敼浜�" show-overflow-tooltip="" /> - </el-table> - <Pagination :total="detailCount" v-model:page="detailForm.Page" v-model:limit="detailForm.PageSize" - @pagination="getDetail" style="margin-top: 20px; text-align: center"></Pagination> - - <div></div> - </div> - </div> - </el-drawer> - - <el-dialog v-model="outVisible2" title="SPA鑾峰彇" width="20%" @close="closeOutDialog2"> - <el-form :model="outerForm2" label-width="120px"> - <el-row style="font-size: 16px"> - <el-col :span="23"> - <el-form-item label="鍗曞彿:" required> - <el-input v-model="outerForm2.purchaseNo" clearable placeholder="璇疯緭鍏ュ崟鍙�" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - - <template #footer> - <span class="dialog-footer"> - <el-button @click="outVisible2 = false">鍙栨秷</el-button> - <el-button type="primary" @click="getSapOrderPO">纭</el-button> - </span> - </template> - </el-dialog> -</template> -<script lang="ts" setup> -import Pagination from "/@/components/Pagination/index.vue"; -import { ElMessage, ElMessageBox } from "element-plus"; -import { - ref, - nextTick, - computed, - getCurrentInstance, - watch, - defineExpose, - defineProps, - onMounted, -} from "vue"; -import { - removeTrailingZeros, - formatDate, - formatDate_T_Date, - formatDate_T_Time, - defaultTimeRange, -} from "/@/utils/formatTime"; - -import { formatDecimalData } from "/@/utils/formate"; -import { expandMore } from "/@/hooks/expandMore"; -import cache from "/@/utils/cache"; -import { pageWmsMaterial } from "/@/api/main/WmsBase/wmsMaterial"; -import { getTypeStatus } from "/@/utils/formate"; -import { getAPI } from "/@/utils/axios-utils"; -import { SysEnumApi } from "/@/api-services/api"; -import { - addWmsOrderPurchase, - updateWmsOrderPurchase, - detailWmsOrderPurchase, -} from "/@/api/main/WmsOrder/wmsOrderPurchase"; -import OpenDetails from "/@/components/openDetails/openDetails.vue"; -import { pageBaseCustomer, pageBaseCustomerForOrders } from "/@/api/main/WmsBase/baseCustomer"; -import { pageWmsOrderPurchaseDetails, pageWmsOrderPurchaseDetailsForRelatedAsn } from "/@/api/main/WmsOrder/wmsOrderPurchaseDetails"; -import { - pageWmsOrderAsnDetails, - deleteWmsOrderAsnDetails, - updateWmsOrderAsnDetails, - updateWmsOrderAsnDetailsBarCode, -} from "/@/api/main/WmsOrder/wmsOrderAsnDetails"; -import commonFunction from "/@/utils/commonFunction"; -import { - addWmsOrderAsn, - updateWmsOrderAsn, - detailWmsOrderAsn, -} from "/@/api/main/WmsOrder/wmsOrderAsn"; -import { handleSlectDataWmsBusinessType } from "/@/utils/selectData"; -import { addWmsRecordSncodePrint } from "/@/api/main/PrintCenter/wmsRecordSncodePrint"; -const moveType = 10; //绉诲姩绫诲瀷 鍏ュ簱 -const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜 -const getBusinessTypeData_Index = ref<any>([]); //涓氬姟绫诲瀷 create by liuwq 2024-05-23 -const getEnumOrderTypeData = ref<any>([]); -const getEnumPoStatusData = ref<any>([]); -const { getEnumDesc } = commonFunction(); -const emits = defineEmits(["getTabelData"]); -const getEnumAsnStatusData_Index = ref<any>([]); -const getEnumOrderTypeData_Index = ref<any>([]); -const getEnumDockData = ref<any>([]); -const props = defineProps({ - titleAuthor: { - type: Number, - required: true, - }, - hexiao: { - type: Number, - default: 1, - required: true, - }, -}); -//鎺у埗璁㈠崟绫诲瀷 - 涓嬫媺鑿滃崟 -const titleAuthor = computed(() => props.titleAuthor); -// 鏄惁鏄剧ず鏍搁攢鎸夐挳 -const hexiao = computed(() => props.hexiao); -const loading = ref(false); - -// 鐧诲綍鐢ㄦ埛id -// const LoginUserID = computed(() => store.state.login.userInfo.id || localCache.getCache("LoginUserID")) - -// const EnumWriteOffState = computed( -// () => store.state.login.enums.enumWriteOffState -// ); - -let itemBtnArr = ["鎵归噺鍒犻櫎", "缂栬緫", "鏂板"]; -const boolEnum = ref([ - { - title: "鏄�", - value: true, - }, - { - title: "鍚�", - value: false, - }, -]); - -// form琛ㄥ崟灞曞紑 - -const orderType = ref(""); -const orderDoRuType = ref(); // 鐢ㄤ簬瀵煎叆鐨勫彉閲� -const itemBtn = ref(1); -// 鎺у埗bom鐗╂枡鏉冮檺 -const isShowBomBtn = ref(0); - -// 绂佹涔嬪墠鐨勬棩鏈� -const disabledDate = (time: Date) => { - return time.getTime() + 3600 * 1000 * 24 < Date.now(); -}; -// 涓婁紶绐楀彛 -const uploadVisible = ref(false); -//鎵撳紑瀵煎叆绐楀彛 -const openUploadDialog = (param: any) => { - orderDoRuType.value = param; - uploadVisible.value = true; -}; -//鍏抽棴绐楀彛 -const closeUploadDialog = () => { - getTabelData(); -}; -//sap鑾峰彇 -const getSapOrder = () => { - ElMessageBox.confirm("鏄惁纭鑾峰彇鏇存柊锛�", "鎻愮ず", { - confirmButtonText: "纭", - cancelButtonText: "鍙栨秷", - type: "warning", - }).then(() => { - // getSapRkPurchase().then((res) => { - // if (res.code == 200) { - // ElMessage.success("宸插紑濮嬮噸鏂拌幏鍙栵紝璇风◢鍚庢煡鐪嬬粨鏋滐紒"); - // } else { - // ElMessage.error( - // `sap鑾峰彇澶辫触${res.code}:${JSON.stringify(res.message)}` - // ); - // } - // }) - }); -}; - -//------------sap鑾峰彇PO鍗� -const outVisible2 = ref(false); -const outerForm2 = ref({ - purchaseNo: "", -}); -const getSapOrderPO = (param?: number) => { - debugger - if (param && param == 1) { - outVisible2.value = true; - return; - } - if (outerForm2.value.purchaseNo == "") { - ElMessage.warning("璇疯緭鍏ュ崟鍙�"); - return; - } - // getSapPurchasePO({ - // purchaseNo: outerForm2.value.purchaseNo - // }) - // .then((res) => { - // if (res.code == 200) { - // ElMessage.success("SAP鑾峰彇鎴愬姛"); - // outVisible2.value = false; - // } else { - // ElMessage.error( - // `sap鑾峰彇澶辫触${res.code}:${JSON.stringify(res.message)}` - // ); - // } - // }) - // .catch((err) => ElMessage.error(err)); -}; -//鍏抽棴鍑哄簱绐楀彛鐨勫洖璋� -const closeOutDialog2 = () => { - outerForm2.value.purchaseNo = ""; -}; - -//------------sap鑾峰彇PO鍗� - -// --------------------PO鍗曞垪琛�----------------------------------- -//鏌ヨ -const formModel = ref({ - WareMaterialCode: "", - WareMaterialName: "", - PurchaseNo: "", - CreatedUserName: "", - CreatedTimeBegin: "", - CreatedTimeEnd: "", - CreateDate: [], - IssueTimeBegin: "", - IssueTimeEnd: "", - IssueDate: [], - MaterialTypeStaus: "", - SourceBy: "", - WriteOffState: "", - signStatus: "", - status: "", - freeOrderType: "", - IsQueryAll: false, //鏄惁鏄剧ず鍏ㄩ儴鏁版嵁 - // LoginUserID: LoginUserID, //鐢ㄦ埛id - OrderMenuType: "", //鍒ゆ柇鏄摢涓彍鍗曞叆搴� - Page: 1, - PageSize: 10, - poApprovalStatus: "", - keyCode: "", - IsDisable: "", //鏄惁浣滃簾 -}); - -//鍏ュ簱鍗曞垪琛ㄦ暟鎹� -let tableData = ref([]); -const tableRef = ref(); - -//鍒楄〃鐨勬暟鎹潯鏁� -const totalItems = ref<number>(0); - -//缂撳瓨鏋氫妇 -const enumList: any = cache.getCache("enumList"); -console.log(enumList.inEnumOrderType); - -// .inEnumOrderType - -//鑾峰彇PO鍗曞垪琛� -const getTabelData = () => { - //鍒ゆ柇鍒涘缓鏃堕棿鏄惁鏈夐�夋嫨 - if (formModel.value.CreateDate && formModel.value.CreateDate.length > 0) { - formModel.value.CreatedTimeBegin = formModel.value.CreateDate[0]; - formModel.value.CreatedTimeEnd = ""; //addDate(formModel.value.CreateDate[1], 1); //鏃ユ湡鏌ヨ 缁撴潫鏃堕棿 闇�瑕佸姞涓�澶� - } else { - // 鏃ュ巻娓呯┖ 鍐嶆煡璇ug - if (formModel.value.CreatedTimeBegin || formModel.value.CreatedTimeEnd) { - formModel.value.CreatedTimeBegin = ""; - formModel.value.CreatedTimeEnd = ""; - } - } - //鍒ゆ柇涓嬪彂鏃堕棿鏄惁鏈夐�夋嫨 - if (formModel.value.IssueDate && formModel.value.IssueDate.length > 0) { - formModel.value.IssueTimeBegin = formModel.value.IssueDate[0]; - formModel.value.IssueTimeEnd = formModel.value.IssueDate[1]; - } else { - // 鏃ュ巻娓呯┖ 鍐嶆煡璇ug - if (formModel.value.IssueTimeBegin || formModel.value.IssueTimeEnd) { - formModel.value.IssueTimeBegin = ""; - formModel.value.IssueTimeEnd = ""; - } - } - - //鍏跺畠鍏ュ簱鍏ュ彛 - // if (titleAuthor.value == 1) { //鍏嶈垂鍏ュ簱鍗曠鐞� - // } - - // if (titleAuthor.value == 2) { //璁㈠崟鍏ュ簱绠$悊 - // } - - // getPurchasePageForAllData(formModel.value) - // .then((res) => { - // if (res.code == 200) { - // const { data } = res; - // const result = data; - // result.rows.map( - // (item: { hasChildren: boolean }) => (item.hasChildren = true) - // ); - // tableData.value = result.rows; - // totalItems.value = result.totalRows; - // orderType.value = formModel.value.MaterialTypeStaus; - // // 娓呴櫎閫変腑 - // nextTick(() => { - // if (tableRef.value && typeof tableRef.value.clearSelection === 'function') { - // checkRows.value = []; - // tableRef.value.clearSelection(); - // } - // }) - // } else { - // ; - // } - // }) - // .catch((err) => { - // console.log(err); - // ElMessage.error(JSON.stringify(err)); - // }); -}; -getTabelData(); - -//閲嶇疆鎼滅储 -const resetForm = () => { - formModel.value = { - WareMaterialCode: "", - WareMaterialName: "", - PurchaseNo: "", - CreatedUserName: "", - CreatedTimeBegin: "", - CreatedTimeEnd: "", - CreateDate: [], - IssueTimeBegin: "", - IssueTimeEnd: "", - IssueDate: [], - MaterialTypeStaus: "", - SourceBy: "", - WriteOffState: "", - signStatus: "", - status: "", - freeOrderType: "", - IsQueryAll: false, //鏄惁鏄剧ず鍏ㄩ儴鏁版嵁 - // LoginUserID: LoginUserID, //鐢ㄦ埛id - OrderMenuType: "", //鍒ゆ柇鏄摢涓彍鍗曞叆搴� - Page: 1, - PageSize: 10, - poApprovalStatus: "", - keyCode: "", - IsDisable: "", //鏄惁浣滃簾 - }; - getTabelData(); -}; -// -----------------鍒犻櫎銆佸鍑烘搷浣�-------------------------- -//閫変腑鐨勮 -const checkRows = ref<{ id: number }[]>([]); -// 閫夋嫨 -const handleSelectionChange = (val: any) => { - checkRows.value = val; -}; -//瀵煎嚭PO鍗曡鎯� -const handExport = () => { - // rkExport(formModel.value) - // .then((res) => { - // const link = document.createElement("a"); //鍒涘缓a鏍囩 - // let blob = new Blob([res], { type: "application/vnd.ms-excel" }); // response灏辨槸鎺ュ彛杩斿洖鐨勬枃浠舵祦 - // let objectUrl = URL.createObjectURL(blob); - // link.href = objectUrl; - // link.download = `鍏ュ簱绠$悊瀵煎嚭${formatUtcToData( - // new Date().toString(), - // "YYYY-MM-DD hh:mm:ss" - // )}`; // 鑷畾涔夋枃浠跺悕 - // link.click(); // 涓嬭浇鏂囦欢 - // URL.revokeObjectURL(objectUrl); // 閲婃斁鍐呭瓨 - // }).catch((err) => ElMessage.error(JSON.stringify(err))); - //瀵煎嚭璋冪敤鎺ュ彛 - // let entozh = entozhExcell - // const { Page, PageSize, ...rest } = formModel.value - // getPurchasePage({ Page: 1, PageSize: 1000000, ...rest }).then(res => { - // if(res.code==200){ - // res.data.rows.forEach((item)=>{ - // item.writeOffState = EnumWriteOffState.value.filter((v: any) => v.value == item.writeOffState)[0].title; - // item.sourceBy = sourceEnum.value.filter((v: any) => v.value == item.sourceBy)[0].title; - // }) - // exportExcel(res.data.rows, entozh, "xlsx", `鍏ュ簱绠$悊琛�${formatUtcToData(new Date().toString(), 'YYYY-MM-DD hh:mm:ss')}`); - // } - // }) - // 鍚庣瀵煎嚭-瀛楁涓嶅叏 - // if (checkRows.value.length <= 0) { - // ElMessage.warning("璇烽�夋嫨涓�涓鍗曪紒"); - // return - // } - // const arr = checkRows.value.reduce((curr, item) => { - // curr.push(item.purchaseNo); - // return curr; - // }, []); - // puchaseExport({ PurchaseNo: arr }) - // .then((res) => { - // const link = document.createElement("a"); //鍒涘缓a鏍囩 - // let blob = new Blob([res], { type: "application/vnd.ms-excel" }); // response灏辨槸鎺ュ彛杩斿洖鐨勬枃浠舵祦 - // let objectUrl = URL.createObjectURL(blob); - // link.href = objectUrl; - // link.download = `鍏ュ簱绠$悊瀵煎嚭${formatUtcToData( - // new Date().toString(), - // "YYYY-MM-DD hh:mm:ss" - // )}`; // 鑷畾涔夋枃浠跺悕 - // link.click(); // 涓嬭浇鏂囦欢 - // URL.revokeObjectURL(objectUrl); // 閲婃斁鍐呭瓨 - // }) - // .catch((err) => ElMessage.error(JSON.stringify(err))); -}; - -// -------------------鑾峰彇PO鍗曚笅鐗╂枡璇︽儏----------------------------------- -//鍏ュ簱鍗曚笅鐗╂枡璇︽儏璇锋眰 -const detailForm = ref({ - materialCode: "", - asnId: "", - Page: 1, - PageSize: 10, -}); - -// 鐗╂枡璇︽儏鎶藉眽 -const drawerVisible = ref(false); -const drawerType = ref("drawerAll"); -// const -//鍗曞彿 -const purchaseNo = ref(""); - -const getEnumPoDetailStatusData_Index = ref<any>([]); - -//------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 -const getDetail = async () => { - loading.value = true; - var res = await pageWmsOrderAsnDetails(Object.assign(detailForm.value)); - drawerList.value = res.data.result?.items ?? []; - detailCount.value = res.data.result?.total; - loading.value = false; - -}; - -//----------------鐗╂枡鏄庣粏 -//鎵撳紑鎶藉眽 -const openDrawer = async (type: number, scope: any = {}, entozhExcell?: any) => { - detailForm.value.Page = 1; - detailForm.value.PageSize = 10; - if (scope.asnNo) { - title.value = `${scope.asnNo}`; - } - drawerType.value = "drawerAll"; - drawerVisible.value = true; - //褰撳墠鍏ュ簱鍗曞彿id - detailForm.value.asnId = scope.id; - //鍏ュ簱鍗� - purchaseNo.value = scope.purchaseNo; - detailForm.value.asnId = scope.id; - //鑾峰彇鐗╂枡鍒楄〃 - if (detailForm.value.asnId == "") { - drawerList.value = []; - detailCount.value = 0; - return; - } - // 鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 - getDetail(); - - getEnumPoDetailStatusData_Index.value = - (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderStatusEnum")).data.result ?? - []; - - - getEnumOrderTypeData_Index.value = - (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderTypeEnum")).data.result ?? - []; - - // 鏍规嵁鐘舵�佽浆涓枃 淇濈暀3浣嶅皬鏁� - let scopetrans = JSON.parse(JSON.stringify(scope)); - // scopetrans.totalquantity = Number(scopetrans.totalquantity).toFixed(3); - scopetrans.asnStatus = getEnumDesc( - scopetrans.asnStatus, - getEnumPoDetailStatusData_Index.value - ); - scopetrans.asnType = getEnumDesc(scopetrans.asnType, getEnumOrderTypeData_Index.value); - - nextTick(() => { - proxy.$refs["propDetailRef"].openADialog(scopetrans, entozhExcell); - }); -}; - -//鍏抽棴鎶藉眽 -const handleDrawerClose = () => { - detailForm.value = { - materialCode: "", - asnId: "", - Page: 1, - PageSize: 10, - }; - deltailList.value = []; - detailCount.value = 0; - drawerList.value = []; - drawerList.value = []; - detailCount.value = 0; -}; - -//鐗╂枡璇︽儏绫诲瀷 -interface DetailType { - id: number; - barCode: string; - wareMaterialCode: string; - name: string; - signStatus: string; - category: string; - materialTypeName: string; - specificationModel: string; - long: number; - width: number; - high: number; - weight: number; - unit: string; - createdTime: string; - purchaseNo: string; - quantity: number; - goodsquantity: number; - surplusquantity: number; - poLineNumber: string; -} - -//鍏ュ簱鍗曡鎯呭垪琛� -const deltailList = ref<DetailType[]>([]); -//寮瑰嚭灞傛暟鎹� -const drawerList = ref<DetailType[]>([]); - -//鍏ュ簱鍗曡鎯呭垪琛ㄦ暟鎹潯鏁� -const detailCount = ref(0); - -//寮瑰嚭灞傛爣棰� -let title = ref(""); - -// ----------------鏂板銆佺紪杈�------------------------------- -//绐楀彛绫诲瀷 -const dialogType = ref("add"); - -const dialogVisible = ref(false); - -//娣诲姞缂栬緫琛ㄥ崟ref -const dialogRef = ref(); - -//娣诲姞/缂栬緫鍙傛暟 -let addForm = ref({ - hasTMCode: false, - typeTMCode: false, //false浜岀淮鐮� true 1缁寸爜 - asnType: "", - dock: "", - projectNo: "", - OrderDetails: [] as any[], -}); - -// 鐗规畩瀛楃鐨勯獙璇� -// 鍖呭惈鐗规畩瀛楃杩斿洖true锛屼笉鍖呭惈鐗规畩瀛楃杩斿洖false -const checkEspcial = (rule: any, value: any, callback: any) => { - if (!value) { - callback(); - } else { - const reg = /[@$%*^:;锛氾紱~+=!锛�#^{}><.,锛屻�俔/g; - if (!reg.test(value.trim())) { - callback(); - } else { - return callback(new Error("涓嶈兘瀛樺湪鐗规畩绗﹀彿")); - } - } -}; - -// 楠岃瘉瑙掕壊缂栧彿 -var validatorCode = (rule: any, value: any, callback: any) => { - if (!value) { - callback(); - } else { - const reg = /[\u4E00-\u9FA5]/g; - if (!reg.test(value)) { - callback(); - } else { - return callback(new Error("鍗曞彿涓嶈兘瀛樺湪姹夊瓧")); - } - } -}; - -//rules -const formRules = { - asnType: [{ required: true, message: "璇烽�夋嫨璁㈠崟绫诲瀷锛�", trigger: "change" }], - orderTypeName: [{ required: true, message: "璇疯緭鍏ヨ鍗曠被鍨嬪悕绉帮紒", trigger: "blur" }], - businessType: [{ required: true, message: "璇烽�夋嫨涓氬姟绫诲瀷锛�", trigger: "change" }], - businessTypeName: [ - { required: true, message: "璇疯緭鍏ヤ笟鍔$被鍨嬪悕绉帮紒", trigger: "blur" }, - ], - orderSocure: [{ required: true, message: "璇疯緭鍏ュ崟鎹潵婧愶紒", trigger: "blur" }], - poStatus: [{ required: true, message: "璇烽�夋嫨鍗曟嵁鐘舵�侊紒", trigger: "change" }], - poStatusName: [{ required: true, message: "璇疯緭鍏ュ崟鎹姸鎬佸悕绉帮紒", trigger: "blur" }], - supplierCode: [{ required: true, message: "璇疯緭鍏ヤ緵搴斿晢缂栧彿锛�", trigger: "blur" }], - supplierName: [{ required: true, message: "璇疯緭鍏ヤ緵搴斿晢鍚嶇О锛�", trigger: "blur" }], - factoryId: [{ required: true, message: "璇疯緭鍏ュ伐鍘侷D锛�", trigger: "blur" }], - // purchaseNo: [ - // { required: true, message: "鍗曞彿涓嶈兘涓虹┖", trigger: "blur" }, - // { validator: validatorCode, trigger: "blur" }, - // { validator: checkEspcial, trigger: "blur" } - // ], -}; -const materialCodeValue = ref(""); -//鎵撳紑鏂板銆佺紪杈戠獥鍙� -const openDialog = async (type: number, scope: any = {}) => { - debugger - showYwlx.value = false; - // handleQueryTdp(); - if (type == 1) {//鏂板 - isPoBox.value = 1; - isMaterialBox.value = 1; - detailForm.value.PageSize = 10; - - dialogType.value = "add"; - } - - if (type == 3) { //鎵撳嵃 - dialogType.value = "print"; - detailForm.value.PageSize = 100000; - addForm.value = { ...scope }; - detailForm.value.asnId = scope.id; - //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 - loading.value = true; - var res = await pageWmsOrderAsnDetails(Object.assign(detailForm.value)); - - warehousOrderDetails.value = res.data.result?.items ?? []; - loading.value = false; - if (warehousOrderDetails.value.length > 0 && warehousOrderDetails.value[0].poNo) { - isPoBox.value = 1; - isMaterialBox.value = 0; - } else { - isPoBox.value = 0; - isMaterialBox.value = 1; - } - addForm.value.hasTMCode = false; - addForm.value.typeTMCode = false; - if (warehousOrderDetails.value.length > 0 && warehousOrderDetails.value[0].sN_1d) { - addForm.value.hasTMCode = true; - addForm.value.typeTMCode = true; - } - if (warehousOrderDetails.value.length > 0 && warehousOrderDetails.value[0].sN_2d) { - addForm.value.hasTMCode = true; - addForm.value.typeTMCode = false; - } - //------------------------------ - - } - - if (type == 2) {//缂栬緫 - dialogType.value = "edit"; - detailForm.value.PageSize = 100000; - addForm.value = { ...scope }; - if (addForm.value.businessType == 1001) { - showYwlx.value = true //绂佺敤 - } else { - showYwlx.value = false - } - console.log(addForm.value); - detailForm.value.asnId = scope.id; - - //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 - loading.value = true; - var res = await pageWmsOrderAsnDetails(Object.assign(detailForm.value)); - - warehousOrderDetails.value = res.data.result?.items ?? []; - loading.value = false; - if (warehousOrderDetails.value.length > 0 && warehousOrderDetails.value[0].poNo) { - isPoBox.value = 1; - isMaterialBox.value = 0; - } else { - isPoBox.value = 0; - isMaterialBox.value = 1; - } - addForm.value.hasTMCode = false; - addForm.value.typeTMCode = false; - if (warehousOrderDetails.value.length > 0 && warehousOrderDetails.value[0].sN_1d) { - addForm.value.hasTMCode = true; - addForm.value.typeTMCode = true; - } - if (warehousOrderDetails.value.length > 0 && warehousOrderDetails.value[0].sN_2d) { - addForm.value.hasTMCode = true; - addForm.value.typeTMCode = false; - } - //----------------鐗╂枡鏄庣粏 - } - dialogVisible.value = true; - - //娓呴櫎閫変腑椤� - nextTick(() => { - if (dialogRef.value) { - dialogRef.value.clearValidate(); - } - }); -}; - -//鐗╂枡璇︽儏鐨則able ref -const detailRef = ref(); -const setRowKey = (row: any) => { - return row.id + row.asnLineNumber; -}; -//鍏抽棴绐楀彛 -const closeDialog = () => { - disabled_btn.value = false; - addForm.value = { - hasTMCode: false, - typeTMCode: false, //false浜岀淮鐮� true 1缁寸爜 - asnType: "", - dock: "", - projectNo: "", - OrderDetails: [] as any[], - }; - warehousOrderDetails.value = []; - checkedDetails.value = []; - deltailList.value = []; - detailCount.value = 0; - detailRef.value.clearSelection(); -}; - -//娣诲姞缂栬緫绐楀彛鐗╂枡鍒楄〃 -const warehousOrderDetails = ref<any[]>([]); - -//鐗╂枡璇︽儏鍒楄〃閫変腑鐨勭墿鏂� -const checkedDetails = ref<any[]>([]); - -//鐗╂枡璇︽儏鍒楄〃涓嬀閫変簨浠� -const detailsCheckChange = (val: any) => { - checkedDetails.value = val; -}; - -//鍒犻櫎閫変腑鐨勭墿鏂欒鎯� -const delCheckedDetails = () => { - debugger - ElMessageBox.confirm("鏄惁纭鍒犻櫎锛�", "鎻愮ず", { - confirmButtonText: "纭", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(() => { - let arr = []; - if (checkedDetails.value[0].asnLineNumber) { - checkedDetails.value.forEach((item) => { - console.log(item); - let index = warehousOrderDetails.value.findIndex( - (detail) => - detail.materialCode == item.materialCode && detail.asnLineNumber == item.asnLineNumber - ); - if (index > -1) { - warehousOrderDetails.value.splice(index, 1); - } - }); - } else { - checkedDetails.value.forEach((item) => { - let index = warehousOrderDetails.value.findIndex( - (detail) => - detail.materialCode == item.materialCode - ); - warehousOrderDetails.value.splice(index, 1); - }); - } - arr = warehousOrderDetails.value; - warehousOrderDetails.value = []; - //bug 鐩稿悓鐗╂枡 涓嶅悓Bom - nextTick(() => { - warehousOrderDetails.value = arr; - checkedDetails.value = []; - detailRef.value.clearSelection(); - }); - }) - .catch(() => ElMessage.info("宸插彇娑堝垹闄�")); -}; -const disabled_btn = ref(false); -//缂栬緫銆佹坊鍔犳彁浜� -const confirm = async () => { - //鎵撳嵃 - if (dialogType.value == "print") { - if (checkedDetails.value.length <= 0) { - ElMessage.warning("璇烽�変腑涓�鏉�"); - return - } - checkedDetails.value.forEach((item) => { - // handleArr.push(item.id); - item.PrintSource = 2 //ASN鍗曡窡韪爜鎵撳嵃 - item.PrintType = 1 //鐗╂枡璺熻釜鐮� - item.PrintSheetNum = 1 - item.PrintNum = 1 - item.PrintStatu = 1 - item.IsAllowPrint = 1 - if (item.sN_1d) { - item.snCode = item.sN_1d - } - if (item.sN_2d) { - item.snCode = item.sN_2d - } - }); - disabled_btn.value = true; - loading.value = true; - var res = await addWmsRecordSncodePrint(checkedDetails.value); - if (res.data && res.data.code == 200) { - ElMessage.success("娣诲姞鎴愬姛"); - dialogVisible.value = false; - } - loading.value = false; - disabled_btn.value = false; - - return - } - - //鏂板缂栬緫 - dialogRef.value.validate(async (vali: any) => { - if (vali) { - console.log("纭"); - if (warehousOrderDetails.value.length <= 0) { - ElMessage.warning("璇烽�夋嫨鐗╂枡"); - return - } - let idx2 = warehousOrderDetails.value.findIndex( - (v) => v.poQuantity == "" || v.poQuantity == undefined || v.poQuantity <= 0 - ); - if (idx2 > -1) { - ElMessage.warning("鏁伴噺涓嶅悎瑙勮寖锛�"); - return; - } - - addForm.value.OrderDetails = []; - warehousOrderDetails.value.forEach((item) => { - const obj = { - ...item, - asnLineNumber: item.asnLineNumber - }; - addForm.value.OrderDetails.push(obj); - }); - debugger - - //娣诲姞 - if (dialogType.value == "add") { - disabled_btn.value = true; - let res = await addWmsOrderAsn(addForm.value); - if (res.data && res.data.code == 200) { - ElMessage.success("娣诲姞鎴愬姛"); - dialogVisible.value = false; - emits("getTabelData"); - } - disabled_btn.value = false; - } else { - disabled_btn.value = true; - let res = await updateWmsOrderAsn(addForm.value); - if (res.data && res.data.code == 200) { - ElMessage.success("缂栬緫鎴愬姛"); - dialogVisible.value = false; - emits("getTabelData"); - } - disabled_btn.value = false; - } - } else { - ElMessage.warning("琛ㄥ崟楠岃瘉澶辫触"); - } - }); - disabled_btn.value = false; -}; -// -----------------娣诲姞鐗╂枡鎿嶄綔------------------------- -//鐗╂枡鍩虹鏁版嵁绐楀彛 -const addMaterialVisible = ref(false); - -//鐗╂枡鍩虹鏁版嵁鍒楄〃 -const materialList = ref([]); - -//鐗╂枡鍩虹鏁版嵁鏉℃暟 -const materialTotal = ref(0); - -//鐗╂枡鍩虹鏁版嵁form -const materialForm = ref({ - materialCode: "", - projectNo: "", - supplierCode: "", - poNo: "", - Code: "", - Page: 1, - PageSize: 10, - filterOrderStauts: 1, //杩囨护鈥滄柊寤衡�濃�滃鐞嗕腑鈥濈殑PO鍗� - IsDisabled: false, //鏈鐢ㄧ殑 - MaterialType: "546896760045637", //鐗╂枡绫诲瀷锛氬師鏉愭枡 - plannedStartTimeRange: [], - plannedEndTimeRange: [] -}); - -//鑾峰彇鐗╂枡鍩虹鍒楄〃 -const getMaterialList = async () => { - debugger - // 鍒涘缓po - if (isPoBox.value == 1) { - loading.value = true; - materialForm.value.filterOrderStauts = 1; - // var res = await pageWmsOrderPurchaseDetails(Object.assign(materialForm.value)); - var res = await pageWmsOrderPurchaseDetailsForRelatedAsn(Object.assign(materialForm.value)); - - if (res.data.result && res.data.result?.items.length > 0) { - res.data.result?.items.forEach((item: any) => { - //asn鏈粦鐨勫彲鐢╬o鍓╀綑鏁伴噺 - item.usedQty = Number(Number(item.quantity) - Number(item.createASNQuantity)).toFixed(3); - //po鎬绘暟 - item.quantityAll = item.quantity; - if (item.snp == 0) { - item.snp = ""; - } - // item.quantity = Number(item.quantityAll - item.goodsQuantity).toFixed(3); - }); - } - - materialList.value = res.data.result?.items ?? []; - materialTotal.value = res.data.result?.total; - loading.value = false; - } - //鍒涘缓asn - if (isMaterialBox.value == 1) { - loading.value = true; - var res = await pageWmsMaterial(Object.assign(materialForm.value)); - materialList.value = res.data.result?.items ?? []; - materialTotal.value = res.data.result?.total; - loading.value = false; - } -}; - -//閲嶇疆鐗╂枡 -const resetMaterialForm = () => { - materialForm.value = { - poNo: "", - Code: "", - Page: 1, - PageSize: 10, - filterOrderStauts: 1, //杩囨护鈥滄柊寤衡�濃�滃鐞嗕腑鈥濈殑PO鍗� - IsDisabled: false, //鏈鐢ㄧ殑 - MaterialType: "546896760045637", //鐗╂枡绫诲瀷锛氬師鏉愭枡 - plannedStartTimeRange: [], - plannedEndTimeRange: [] - }; - getMaterialList(); -}; - -//閫変腑鐨勫熀纭�鐗╂枡鏁版嵁 -const checkedMaterial = ref<any[]>([]); -const showYwlx = ref(false); -//鐗╂枡鍩虹鏁版嵁鍕鹃�� -const materialSelectionChange = (val: any) => { - checkedMaterial.value = val; -}; -const isMaterialBox: any = ref(true); -const isPoBox: any = ref(false); -//鎵撳紑鏂板鐗╂枡绐楀彛 -const addMaterialDialog = (param?: any) => { - if (param && param == "po") { - isPoBox.value = 1; - isMaterialBox.value = 0; - addForm.value.businessType = 1001; - showYwlx.value = true - } else { - isPoBox.value = 0; - isMaterialBox.value = 1; - showYwlx.value = false; - } - getMaterialList(); - - // if ( addForm.value.freeOrderType && isShowBomBtn.value ) { - // ElMessage.warning("鍏嶈垂浠剁被鍨嬫槸PR2锛屽彧鑳芥柊澧濪I缁存姢鐨勭墿鏂欙紒"); - // return; - // } - addMaterialVisible.value = true; -}; - -//鍩虹鐗╂枡table鐨剅ef瀵硅薄 -const materialRef = ref(); - -//纭娣诲姞鏉愭枡 -const confirmAddMaterial = () => { - - //鐗╂枡鍒楄〃娌℃暟鎹紝鐩存帴娣诲姞 - // if (warehousOrderDetails.value.length == 0) { - // // 鑷姩缁欒鍙峰鍊� - // checkedMaterial.value.forEach((item, index) => { - // item.unit = item.poUnit || item.unit; - // // item.asnLineNumber = index + 1; - // // if (!item.asnLineNumber) { - // // item.asnLineNumber = index + 1 + warehousOrderDetails.value.length; - // // } - // }); - // warehousOrderDetails.value.push(...checkedMaterial.value); - // } else { - if (isPoBox.value == 1) { //PO - debugger - for (let i = 0; i < checkedMaterial.value.length; i++) { - let idx = warehousOrderDetails.value.findIndex( - (item: any) => - item.materialCode == checkedMaterial.value[i].materialCode && - item.poLineNumber == checkedMaterial.value[i].poLineNumber && - item.poNo == checkedMaterial.value[i].poNo - ); - if (idx > -1) { - return ElMessage.warning( - `PO鍙�${checkedMaterial.value[i].poNo},鐗╂枡缂栧彿${checkedMaterial.value[i].materialCode}锛孭O琛屽彿锛�${checkedMaterial.value[i].poLineNumber || ""}鍦ㄧ墿鏂欏垪琛ㄤ腑宸插瓨鍦�,璇峰幓闄ゅ嬀閫塦 - ); - } - } - - //鍒涘缓ASN鍗曟椂锛岄�夋嫨PO鍗曟椂锛屽鏋滅墿鏂欐槸閰嶇疆鏍囧寘鏁伴噺鐨勮瘽锛岄渶瑕佹牴鎹� 鏍囧寘鏁伴噺杩涜鍒嗛厤锛屽苟鐢熸垚N鏉℃樉绀哄埌鐣岄潰涓� - var arrChaifen = [] - checkedMaterial.value.forEach((item: any) => { - if (item.snp && item.snp > 0) { //鏍囧寘鏁� > 0 - //-------鍓╀綑鍙敤鏁� > 0 - if (Number(item.usedQty) > 0) { - // ----------- 鏍囧寘鏁� > 鍓╀綑鍙敤鏁� ------- 鍑戜笉澶熶竴鍖� 灏卞垱寤轰笉瓒充竴鍖� - if (item.usedQty < item.snp) { - var { quantity, ...rest } = item; - arrChaifen.push({ - ...rest, - poQuantity: item.usedQty, //鍓╀綑鍙敤鏁� - quantity: 0 //鍚庡彴澶勭悊杞崲鍚庣殑閫佽揣鏁伴噺 - }); - return - } else { - //----- 瀛樺湪鏍囧寘 鎷嗗垎 10/3 鎷嗘垚 3 3 3 1----------- - var numArr = []; // var num = [3,3,3,1]; - var s1 = Math.floor(item.usedQty / item.snp); - var qtyYs = Number(item.usedQty) % Number(item.snp); //鍙栦綑鏁� - var numArr = Array.from({ length: s1 }, () => item.snp);//鍒涘缓鏁扮粍闀垮害s1,骞跺~鍏呮爣鍖呮暟 - if (qtyYs > 0) { - numArr.push(qtyYs) - } - console.log("鎷嗗垎鐨勬暟缁勫唴瀹�") - console.log(numArr) - numArr.forEach((itemCf: any) => { - var { quantity, ...rest } = item; - var quantityNew = Number(itemCf); - arrChaifen.push({ - ...rest, - poQuantity: quantityNew, - quantity: 0 //鍚庡彴澶勭悊杞崲鍚庣殑閫佽揣鏁伴噺 - }); - }); - } - } - } else { - //-----------娌℃湁鏍囧寘鐨勭洿鎺ユ彃鍏� - var { quantity, ...rest } = item; - var quantitySy = item.usedQty || 0 - arrChaifen.push({ - ...rest, - poQuantity: quantitySy,//鍓╀綑鍙敤鏁� - quantity: 0 //鍚庡彴澶勭悊杞崲鍚庣殑閫佽揣鏁伴噺 - }); - } - }); - - warehousOrderDetails.value.push(...arrChaifen); - - } else { - //鐩存帴娣诲姞鐗╂枡 - for (let i = 0; i < checkedMaterial.value.length; i++) { - let idx = warehousOrderDetails.value.findIndex( - (item: { asnLineNumber: any; materialCode: any }) => - item.materialCode == checkedMaterial.value[i].materialCode - ); - if (idx > -1) { - return ElMessage.warning( - `鐗╂枡缂栧彿${checkedMaterial.value[i].materialCode}鍦ㄧ墿鏂欏垪琛ㄤ腑宸插瓨鍦�,璇峰幓闄ゅ嬀閫塦 - ); - } - } - warehousOrderDetails.value.push(...checkedMaterial.value); - } - // 鑷姩缁欒鍙峰鍊� - checkedMaterial.value.forEach((item, index) => { - item.unit = item.poUnit || item.unit; - // if (!item.asnLineNumber) { - // item.asnLineNumber = index + 1 + warehousOrderDetails.value.length; - // } - }); - // } - addMaterialVisible.value = false; -}; - -//鍏抽棴鏂板鐗╂枡绐楀彛 -const closeMaterialDialog = () => { - materialForm.value = { - materialCode: "", - projectNo: "", - supplierCode: "", - poNo: "", - Code: "", - Page: 1, - PageSize: 10, - filterOrderStauts: 1, //杩囨护鈥滄柊寤衡�濃�滃鐞嗕腑鈥濈殑PO鍗� - IsDisabled: false, //鏈鐢ㄧ殑 - MaterialType: "546896760045637", //鐗╂枡绫诲瀷锛氬師鏉愭枡 - plannedStartTimeRange: [], - plannedEndTimeRange: [] - }; - materialList.value = []; - checkedMaterial.value = []; - materialRef.value.clearSelection(); -}; - -// 椤甸潰鍔犺浇鏃� -onMounted(async () => { - getEnumOrderTypeData.value = - (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderTypeEnum")).data.result ?? - []; - - getEnumPoStatusData.value = - (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderStatusEnum")).data.result ?? - []; - getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇涓氬姟绫诲瀷鎺ュ彛 create by liuwq - getEnumDockData.value = - (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("DockEnum")).data.result ?? []; -}); - -//================ -const arrTdp = ref<any[]>([]); -const queryParamsW = ref<any>({}); -const tableParamsW = ref({ - page: 1, - pageSize: 1000, - total: 0, - custType: "渚涘簲鍟�" -}); - -//-----------------杩滅▼鎼滅储pageBaseCustomer ---------------- -// const handleQueryTdp = async () => { -// var res = await pageBaseCustomerForOrders(Object.assign(queryParamsW.value, tableParamsW.value)); -// arrTdp.value = res.data.result ?? []; -// }; - -const changeXmbh = async (query?: any, materialCode?: any, scope?: any) => { - loading.value = true; - var res = await pageBaseCustomerForOrders({ - ...tableParamsW.value, - materialCode: materialCode, - // custCode: query //瀹㈡埛缂栧彿 - }); - loading.value = false; - scope.arrTdp = res.data.result ?? []; -}; - -// 杩滅▼鎼滅储 杈撳叆鍏抽敭瀛椾互浠庤繙绋嬫湇鍔″櫒涓煡鎵炬暟鎹�� -// const remoteMethod = async (query: any) => { -// loading.value = true; -// var res = await pageBaseCustomerForOrders({ -// ...tableParamsW.value, -// custCode: query -// }); -// loading.value = false; -// arrTdp.value = res.data.result ?? []; -// }; -//-----------------杩滅▼鎼滅储---------------- - - -//--------------浜岀淮鐮佺敓鎴� -const sccheckedDetails = ref<any[]>([]); -const scdetailsCheckChange = (val: any) => { - sccheckedDetails.value = val; -}; -const goGenerateCode = async () => { - - const handleArr: number[] = []; - sccheckedDetails.value.forEach((item) => { - handleArr.push(item.id); - }); - debugger - ElMessageBox.confirm("鏄惁纭鐢熸垚鏉$爜锛�", "鎻愮ず", { - confirmButtonText: "纭", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(async () => { - const ret = await updateWmsOrderAsnDetailsBarCode({ - ID: handleArr - }); - if (ret.data.type == "success") { - ElMessage.success('鐢熸垚鏉$爜鎴愬姛锛�'); - getDetail(); - } - }) - .catch(() => { - ElMessage.info("宸插彇娑堢敓鎴愭潯鐮�"); - }); -} - - - -//-----------------杩滅▼鎼滅储 ---------------- -const arrTdp2 = ref<any[]>([]); -const queryParamsW2 = ref<any>({}); -const tableParamsW2 = ref({ - page: 1, - pageSize: 200, - total: 0, - custType: "渚涘簲鍟�" -}); - -// 杩滅▼鎼滅储 杈撳叆鍏抽敭瀛椾互浠庤繙绋嬫湇鍔″櫒涓煡鎵炬暟鎹�� -const remoteMethod2 = async (query: any) => { - loading.value = true; - var res = await pageBaseCustomer({ - ...tableParamsW2.value, - custCode: query - }); - loading.value = false; - arrTdp2.value = res.data.result?.items ?? []; -}; -//-----------------杩滅▼鎼滅储---------------- - -// 鏆撮湶鏂规硶 -defineExpose({ openDialog, openDrawer }); -</script> -<style lang="less" scoped> -.detailBoxWrap { - margin: 10px; -} - -.msi-form { - margin-top: 10px; -} - -.msi-form { - margin-bottom: 10px; -} - -.slot_title { - display: flex; - align-items: center; - - // margin-left: 20px; - .title_orderNo { - font-size: 18px; - color: #f18201; - font-weight: bold; - margin-right: 5px; - } -} -</style> diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/index.vue index 9144030..7caf6ee 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderAsn/index.vue @@ -1,242 +1,274 @@ 锘�<template> - <div class="wmsOrderAsn-container"> - <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> - <el-form :model="queryParams" ref="queryForm" labelWidth="90"> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="鍏抽敭瀛�"> - <el-input v-model="queryParams.searchKey" clearable="" placeholder="ASN鍗曞彿" /> + <div class="wmsOrderPurchase-container"> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="queryParams" ref="queryForm" labelWidth="90"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="6" class="mb10"> + <el-form-item label="鍏抽敭瀛�"> + <el-input v-model="queryParams.searchKey" clearable="" placeholder="PO鍗曞彿,渚涘簲鍟嗙紪鍙�,渚涘簲鍟嗗悕绉�,ERP鍗曞彿,椤圭洰鍙�" /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="PO鍗曞彿"> + <el-input v-model="queryParams.purchaseNo" clearable="" placeholder="璇疯緭鍏O鍗曞彿" /> + </el-form-item> + </el-col> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="ASN鍗曞彿"> - <el-input v-model="queryParams.asnNo" clearable="" placeholder="璇疯緭鍏SN鍗曞彿" /> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="涓氬姟绫诲瀷"> + <el-select clearable="" v-model="queryParams.businessType" placeholder="璇烽�夋嫨涓氬姟绫诲瀷"> + <el-option v-for="(item, index) in getBusinessTypeData_Index" :key="index" :value="item.businessTypeValue" :label="`[${item.businessTypeValue}] ${item.businessTypeName}`" /> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="鍗曟嵁鏉ユ簮"> + <el-select clearable="" v-model="queryParams.orderSocure" placeholder="璇烽�夋嫨鍗曟嵁鏉ユ簮"> + <el-option v-for="(item, index) in getEnumOrderSocureData_Index" :key="index" :value="item.describe" :label="`${item.describe}`" /> + </el-select> + </el-form-item> + </el-col> - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鍗曟嵁绫诲瀷"> - <el-select clearable="" v-model="queryParams.asnType" placeholder="璇烽�夋嫨鍗曟嵁绫诲瀷"> - <el-option v-for="(item,index) in getEnumAsnTypeData_Index" :key="index" :value="item.value" :label="`${item.describe}`" /> - </el-select> - </el-form-item> - </el-col> --> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="涓氬姟绫诲瀷"> - <el-select clearable="" v-model="queryParams.businessType" placeholder="璇烽�夋嫨涓氬姟绫诲瀷"> - <el-option v-for="(item, index) in getBusinessTypeData_Index" :key="index" :value="item.businessTypeValue" - :label="`[${item.businessTypeValue}] ${item.businessTypeName}`" /> - - </el-select> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鍗曟嵁鐘舵��"> - <el-select clearable="" v-model="queryParams.asnStatus" placeholder="璇烽�夋嫨鍗曟嵁鐘舵��"> - <el-option v-for="(item, index) in getEnumAsnStatusData_Index" :key="index" :value="item.value" - :label="`${item.describe}`" /> - - </el-select> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="鍗曟嵁鐘舵��"> + <el-select clearable="" v-model="queryParams.poStatus" placeholder="璇烽�夋嫨鍗曟嵁鐘舵��"> + <el-option v-for="(item, index) in getEnumPoStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" /> + </el-select> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="鍗曟嵁鐘舵�佸悕绉�"> - <el-input v-model="queryParams.asnStatusName" clearable="" placeholder="璇疯緭鍏ュ崟鎹姸鎬佸悕绉�"/> + <el-input v-model="queryParams.poStatusName" clearable="" placeholder="璇疯緭鍏ュ崟鎹姸鎬佸悕绉�"/> </el-form-item> </el-col> --> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鐗╂祦鍗曞彿"> - <el-input v-model="queryParams.trackingNumber" clearable="" placeholder="璇疯緭鍏ョ墿娴佸崟鍙�" /> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <!-- <el-form-item label="渚涘簲鍟嗙紪鍙�"> + <el-input v-model="queryParams.supplierCode" clearable="" placeholder="璇疯緭鍏ヤ緵搴斿晢缂栧彿" /> + </el-form-item> --> + <el-form-item label="渚涘簲鍟�" prop="supplierCode"> + <el-select + v-model="queryParams.supplierCode" + filterable + remote + reserve-keyword + remote-show-suffix + :remote-method="remoteMethod" + :loading="loading" + placeholder="璇烽�夋嫨渚涘簲鍟�" + clearable + style="width: 100%" + @change="changeXmbh(queryParams.supplierCode)" + > + <el-option v-for="(item, index) in arrTdp" :key="index" :value="item.custCode" :label="`[${item.custCode}]${item.custChinaName}`"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="渚涘簲鍟嗗悕绉�"> + <el-input v-model="queryParams.supplierName" clearable="" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" /> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="鏀惰揣閬撳彛"> --> + <!-- <el-input v-model="queryParams.dock" clearable="" placeholder="璇疯緭鍏ユ敹璐ч亾鍙�" /> --> + <!-- <el-select clearable v-model="queryParams.dock" placeholder="璇烽�夋嫨鏀惰揣閬撳彛"> + <el-option + v-for="(item, index) in getEnumDockData" + :key="index" + :value="item.value" + :label="`${item.describe}`" + ></el-option> + </el-select> --> + <!-- </el-form-item> + </el-col> --> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="ERP鍗曞彿"> + <el-input v-model="queryParams.erpOrderNo" clearable="" placeholder="璇疯緭鍏RP鍗曞彿" /> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="椤圭洰ID"> + <el-input v-model="queryParams.projectId" clearable="" placeholder="璇疯緭鍏ラ」鐩甀D"/> + </el-form-item> </el-col> --> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="閲婃斁鐘舵��"> - <el-input-number v-model="queryParams.releaseStatus" clearable="" placeholder="璇疯緭鍏ラ噴鏀剧姸鎬�"/> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="閲婃斁鐘舵�佸悕绉�"> - <el-input v-model="queryParams.releaseStatusName" clearable="" placeholder="璇疯緭鍏ラ噴鏀剧姸鎬佸悕绉�"/> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鏄惁鍐荤粨"> - <el-select clearable="" v-model="queryParams.isFreeze" placeholder="璇烽�夋嫨鏄惁鍐荤粨"> - <el-option v-for="(item,index) in getEnumIsFreezeData_Index" :key="index" :value="item.value" :label="`${item.describe}`" /> - - </el-select> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="椤圭洰鍙�"> + <el-input v-model="queryParams.projectNo" clearable="" placeholder="璇疯緭鍏ラ」鐩彿" /> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="椤圭洰鍚嶇О"> + <el-input v-model="queryParams.projectName" clearable="" placeholder="璇疯緭鍏ラ」鐩悕绉�"/> </el-form-item> </el-col> --> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="棰勮鍒拌揪鏃ユ湡"> - <el-date-picker placeholder="璇烽�夋嫨棰勮鍒拌揪鏃ユ湡" value-format="YYYY/MM/DD" type="daterange" v-model="queryParams.estimatedDateRange" /> - - </el-form-item> - </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> - <el-form-item> - <el-button-group style="display: flex; align-items: center;"> - <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wmsOrderAsn:page'"> 鏌ヨ - </el-button> - <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 閲嶇疆 </el-button> - <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" - style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button> - <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" - style="margin-left:5px;"> 闅愯棌 </el-button> - <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsOrderAsn" v-auth="'wmsOrderAsn:add'"> 鏂板 </el-button> --> - <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="showProp(1)" - v-auth="'wmsOrderPurchase:add'"> 鏂板 </el-button> - <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelWmsOrderDeliver"> 瀵煎叆 </el-button> - <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handExport"> 瀵煎嚭</el-button> - </el-button-group> - </el-form-item> + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> + <el-form-item> + <el-button-group style="display: flex; align-items: center"> + <el-button type="primary" icon="ele-Search" @click="handleQuery"> 鏌ヨ </el-button> + <el-button icon="ele-Refresh" @click="() => (queryParams = {})"> 閲嶇疆 </el-button> + <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left: 5px"> 楂樼骇鏌ヨ </el-button> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left: 5px"> 闅愯棌 </el-button> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsOrderPurchase" v-auth="'wmsOrderPurchase:add'"> 鏂板 </el-button> --> + <!-- 鏂板PO鍗�-ly --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="showProp(1)"> 鏂板 </el-button> --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelWmsOrderDeliver"> 瀵煎叆 </el-button> --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handExport"> 瀵煎嚭 </el-button> --> + </el-button-group> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-card> + <el-card class="full-table" shadow="hover" style="margin-top: 5px"> + <div class="table-container"> + <!-- 宸︿晶琛ㄦ牸 --> + <div class="left-table"> + <p class="text-xtiny">榻愬鍒楄〃</p> - </el-col> - </el-row> - </el-form> - </el-card> - <el-card class="full-table" shadow="hover" style="margin-top: 5px"> - <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" - @sort-change="sortChange" ref="tableRef" :summary-method="getExportTitle" show-summary border=""> + <el-table + :data="tableData" + style="width: 100%" + v-loading="loading" + tooltip-effect="light" + ref="tableRef" + row-key="id" + @sort-change="sortChange" + :summary-method="getExportTitle" + border="" + > + <el-table-column type="index" label="搴忓彿" width="55" align="center" /> + <!-- <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> --> + <el-table-column label="鍖呰鍙�" prop="packageCode" width="150" align="left" show-overflow-tooltip> + <template #default="scope"> + <span class="under_line" @click="openDrawer(1, scope.row)"> + {{ scope.row.packageCode }} + </span> + </template> + </el-table-column> - <el-table-column type="index" label="搴忓彿" width="55" align="center" /> - <!-- <el-table-column prop="purchaseNo" label="PO鍗曞彿" show-overflow-tooltip="" /> --> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + </el-table> + </div> - <el-table-column label="ASN鍗曞彿" prop="asnNo" width="160px" align="left" show-overflow-tooltip> - <template #default="scope"> - <span class="under_line" @click="openDrawer(1, scope.row)"> - {{ scope.row.asnNo }} - </span> - </template> - </el-table-column> + <!-- 鍙充晶琛ㄦ牸 --> + <div class="right-table"> + <p class="text-xtiny">涓嶉綈濂楀垪琛�</p> + <el-table + :data="newTableData" + style="width: 100%" + v-loading="loading" + tooltip-effect="light" + ref="newTableRef" + row-key="newId" + @sort-change="newSortChange" + :summary-method="getNewExportTitle" + border="" + > + <el-table-column type="index" label="搴忓彿" width="55" align="center" /> + <!-- <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> --> + <el-table-column label="鍖呰鍙�" prop="packageCode" width="150" align="left" show-overflow-tooltip> + <template #default="scope"> + <span class="under_line" @click="openDrawer(1, scope.row)"> + {{ scope.row.packageCode }} + </span> + </template> + </el-table-column> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + </el-table> + </div> + </div> + </el-card> - <!-- - <el-table-column prop="asnType" min-width="100px" label="鍗曟嵁绫诲瀷" show-overflow-tooltip="" > - <template #default="scope"> - {{ getEnumDesc(scope.row.asnType, getEnumAsnTypeData_Index)}} - </template> - </el-table-column> --> - <el-table-column prop="businessTypeName" label="涓氬姟绫诲瀷" show-overflow-tooltip="" min-width="90px"> - <template #default="scope"> - {{ scope.row.businessTypeName }} - </template> - </el-table-column> - <el-table-column prop="asnStatus" label="鍗曟嵁鐘舵��" show-overflow-tooltip=""> - <template #default="scope"> - <el-tag :type="getTypeStatus(1, getEnumDesc(scope.row.asnStatus, getEnumAsnStatusData_Index))"> - {{ getEnumDesc(scope.row.asnStatus, getEnumAsnStatusData_Index) }} - </el-tag> - </template> - </el-table-column> - - <!-- <el-table-column prop="quantity" label="鏁伴噺" show-overflow-tooltip="" /> - <el-table-column prop="goodsQuantity" label="宸叉敹鏁伴噺" show-overflow-tooltip="" /> --> - - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" - show-overflow-tooltip="" /> - <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" - show-overflow-tooltip="" /> - <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> - <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> - <el-table-column label="鎿嶄綔" width="280" align="center" fixed="right" show-overflow-tooltip="" - v-if="auth('wmsOrderAsn:update') || auth('wmsOrderAsn:delete')"> - <template #default="scope"> - <!-- <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsOrderAsn(scope.row)" v-auth="'wmsOrderAsn:update'"> 缂栬緫 </el-button> --> - - <el-button icon="ele-Edit" size="small" text="" type="primary" @click="showProp(scope.row)" - v-auth="'wmsOrderPurchase:update'" :disabled="scope.row.asnStatus!=0"> 缂栬緫 </el-button> - <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsOrderAsn(scope.row)" - v-auth="'wmsOrderAsn:delete'" :disabled="scope.row.asnStatus!=0"> 鍙栨秷 </el-button> - - - <el-button icon="ele-Close" size="small" text="" type="primary" v-auth="'wmsOrderDeliver:delete'" - @click="tocloseWmsOrderAsn(scope.row)" :disabled="!(scope.row.asnStatus == 0 || scope.row.asnStatus == 1)"> 鍏抽棴</el-button> - - <el-button icon="ele-Printer" size="small" text="" type="primary" @click="showProp(3,scope.row)" - v-auth="'wmsOrderAsn:update'" :disabled="scope.row.asnStatus!=0"> 鎵撳嵃 </el-button> - </template> - </el-table-column> - </el-table> - <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize" - :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" small="" background="" - @size-change="handleSizeChange" @current-change="handleCurrentChange" - layout="total, sizes, prev, pager, next, jumper" /> - <printDialog ref="printDialogRef" :title="printWmsOrderAsnTitle" @reloadTable="handleQuery" /> - <editDialog ref="editDialogRef" :title="editWmsOrderAsnTitle" @reloadTable="handleQuery" /> - </el-card> - - <editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" - @reloadTable="handleQuery" /> - <importExcelDialog ref="importExcelDialogRefWmsOrderDeliver" :title="importExcelTitleWmsOrderDeliver" - @parentUploadFun="handleImportExcelWmsOrderDeliver" @parentDownFun="handleDownExcelWmsOrderDeliver" /> - - <!-- 鎵�鏈夊脊妗� 锛氭柊澧� 缂栬緫 璇︽儏 --> - <open-allprop titleAuthor="1" hexiao="0" ref="propALlProp" @getTabelData="handleQuery"></open-allprop> - </div> + <editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" @reloadTable="handleQuery" /> + <importExcelDialog + ref="importExcelDialogRefWmsOrderDeliver" + :title="importExcelTitleWmsOrderDeliver" + @parentUploadFun="handleImportExcelWmsOrderDeliver" + @parentDownFun="handleDownExcelWmsOrderDeliver" + /> + <!-- 鎵�鏈夊脊妗� 锛氭柊澧� 缂栬緫 璇︽儏 --> + <open-allprop titleAuthor="1" hexiao="0" ref="propALlProp" @getTabelData="handleQuery"></open-allprop> + </div> </template> -<script lang="ts" setup="" name="wmsOrderAsn"> -import { getCurrentInstance, nextTick, onMounted, ref } from "vue"; -import { ElMessageBox, ElMessage } from "element-plus"; +<script lang="ts" setup="" name="wmsOrderPurchase"> +import { getCurrentInstance, nextTick, onMounted, ref } from 'vue'; +import { ElMessageBox, ElMessage } from 'element-plus'; import { auth } from '/@/utils/authFunction'; +import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; import { formatDate, formatDate_T_Date, formatDate_T_Time, defaultTimeRange } from '/@/utils/formatTime'; -import printDialog from '/@/views/system/print/component/hiprint/preview.vue' -import editDialog from '/@/views/main/WmsOrder/wmsOrderAsn/component/editDialog.vue' -import { pageWmsOrderAsn, deleteWmsOrderAsn, importExcelWmsOrderAsn, downloadExcelTemplateWmsOrderAsn, downloadExcelTemplateWmsOrderAsnAll, closeWmsOrderAsn } from '/@/api/main/WmsOrder/wmsOrderAsn'; +import { pageBaseCustomer } from '/@/api/main/WmsBase/baseCustomer'; +import { formatUtcToData, getTypeStatus } from '/@/utils/formate'; +import printDialog from '/@/views/system/print/component/hiprint/preview.vue'; +import editDialog from '/@/views/main/WmsOrder/wmsOrderPurchase/component/editDialog.vue'; +import { + pageWmsOrderPurchase, + deleteWmsOrderPurchase, + importExcelWmsOrderPurchase, + downloadExcelTemplateWmsOrderPurchase, + downloadExcelTemplateWmsOrderPurchaseAll, +} from '/@/api/main/WmsOrder/wmsOrderPurchase'; +import { handleSlectDataWmsBusinessType } from '/@/utils/selectData'; import { getAPI } from '/@/utils/axios-utils'; import { SysEnumApi } from '/@/api-services/api'; import commonFunction from '/@/utils/commonFunction'; -import importExcelDialog from '/@/components/importExcel/index.vue' //寮曞叆瀵煎叆缁勪欢 -import { handleSlectDataWmsBusinessType } from "/@/utils/selectData"; -import { -formatUtcToData, - getTypeStatus -} from "/@/utils/formate"; - -import OpenAllprop from "./component/openAllpropAsn.vue"; -import { ExcellTableDataExport } from "/@/hooks/exportTableDataExcell"; +import importExcelDialog from '/@/components/importExcel/index.vue'; //寮曞叆瀵煎叆缁勪欢 +import { exportPageExcel } from '/@/utils/exportPageExcel'; //寮曞叆瀵煎嚭鏂规硶 +import OpenAllprop from './component/openAllprop.vue'; +import { ExcellTableDataExport } from '/@/hooks/exportTableDataExcell'; const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜 -const moveType=10;//绉诲姩绫诲瀷 鍏ュ簱 +const moveType = 10; //绉诲姩绫诲瀷 鍏ュ簱 // ------------灏佽瀵煎嚭鍔熻兘--鍓嶇瀵煎嚭+琛ㄦ牸鏍囬--------------- const jsonExcellTableExport = { - titleName: "", //瀵煎嚭琛ㄦ牸鍚嶇О - interfaceListName: '',//瀵煎嚭鎺ュ彛鍚嶇О -} -const { getExportTitle, handleExportExcell, formExport, entozhExcell } = ExcellTableDataExport(jsonExcellTableExport) + titleName: '', //瀵煎嚭琛ㄦ牸鍚嶇О + interfaceListName: '', //瀵煎嚭鎺ュ彛鍚嶇О +}; +const { getExportTitle, handleExportExcell, formExport, entozhExcell } = ExcellTableDataExport(jsonExcellTableExport); // --------------end 灏佽瀵煎嚭鍔熻兘--鍓嶇瀵煎嚭+琛ㄦ牸鏍囬----------------- // ---------------鏂板----------------------- -const showProp = (item?: any,itemAll?:any) => { - if (item == 1) { //鏂板 - proxy.$refs['propALlProp'].openDialog(1); - } else if(item == 3){ //鎵撳嵃 - proxy.$refs['propALlProp'].openDialog(3, itemAll); - } else{ //缂栬緫 - proxy.$refs['propALlProp'].openDialog(2, item); - } -} +const showProp = (item?: any) => { + if (item == 1) { + proxy.$refs['propALlProp'].openDialog(1); + } else { + proxy.$refs['propALlProp'].openDialog(2, item); + } +}; // ---------------璇︽儏----------------------- const openDrawer = (type: number, item?: any) => { - proxy.$refs['propALlProp'].openDrawer(type, item, entozhExcell); -} + proxy.$refs['propALlProp'].openDrawer(type, item, entozhExcell); +}; // ---------------end璇︽儏----------------------- -const getBusinessTypeData_Index = ref<any>([]);//涓氬姟绫诲瀷 create by liuwq -const getEnumAsnTypeData_Index = ref<any>([]); -const getEnumAsnStatusData_Index = ref<any>([]); -const getEnumIsFreezeData_Index = ref<any>([]); - +const getBusinessTypeData_Index = ref<any>([]); //涓氬姟绫诲瀷 create by liuwq +const getEnumOrderTypeData_Index = ref<any>([]); +// const getEnumBusinessTypeData_Index = ref<any>([]); //update by liuwq +const getEnumPoStatusData_Index = ref<any>([]); const { getEnumDesc } = commonFunction(); + +const getEnumOrderSocureData_Index = ref<any>([]); + const showAdvanceQueryUI = ref(false); const printDialogRef = ref(); const editDialogRef = ref(); @@ -244,183 +276,242 @@ const tableData = ref<any>([]); const queryParams = ref<any>({}); const tableParams = ref({ - page: 1, - pageSize: 10, - total: 0, + page: 1, + pageSize: 10, + total: 0, }); -const printWmsOrderAsnTitle = ref(""); -const editWmsOrderAsnTitle = ref(""); +const printWmsOrderPurchaseTitle = ref(''); +const editWmsOrderPurchaseTitle = ref(''); // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� const changeAdvanceQueryUI = () => { - showAdvanceQueryUI.value = !showAdvanceQueryUI.value; -} + showAdvanceQueryUI.value = !showAdvanceQueryUI.value; +}; +const newTableData = ref([]); + +const fetchNewTableData = async () => { + loading.value = true; + try { + const response = await fetch('your-api-endpoint'); // 鏇挎崲涓烘偍鐨凙PI鍦板潃 + const data = await response.json(); + newTableData.value = data; + } catch (error) { + console.error('鑾峰彇鏂拌〃鏁版嵁閿欒:', error); + } finally { + loading.value = false; + } +}; + +const newSortChange = ({ prop, order }) => { + console.log(`鎺掑簭瀛楁: ${prop}, 鎺掑簭椤哄簭: ${order}`); + // 澶勭悊鎺掑簭閫昏緫 +}; + +const openNewDrawer = (type, row) => { + console.log('鎵撳紑鏂扮殑鎶藉眽锛岀被鍨�:', type, ', 鏁版嵁:', row); +}; + +const getNewExportTitle = () => { + return '鏂拌〃鏍煎鍑烘爣棰�'; +}; // 鏌ヨ鎿嶄綔 const handleQuery = async () => { - loading.value = true; - debugger - var res = await pageWmsOrderAsn(Object.assign(queryParams.value, tableParams.value)); - tableData.value = res.data.result?.items ?? []; - tableParams.value.total = res.data.result?.total; - loading.value = false; - + loading.value = true; + var res = await pageWmsOrderPurchase(Object.assign(queryParams.value, tableParams.value)); + tableData.value = res.data.result ?? []; + + newTableData.value = res.data.result ?? []; + + // tableParams.value.total = res.data.result?.total; + loading.value = false; + // getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; + + // getEnumPoStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; }; // 鍒楁帓搴� const sortChange = async (column: any) => { - queryParams.value.field = column.prop; - queryParams.value.order = column.order; - await handleQuery(); + queryParams.value.field = column.prop; + queryParams.value.order = column.order; + await handleQuery(); }; // 鎵撳紑鏂板椤甸潰 -const openAddWmsOrderAsn = () => { - editWmsOrderAsnTitle.value = '娣诲姞ASN涓�'; - editDialogRef.value.openDialog({}); +const openAddWmsOrderPurchase = () => { + editWmsOrderPurchaseTitle.value = '娣诲姞PO鍗�'; + editDialogRef.value.openDialog({}); }; // 鎵撳紑鎵撳嵃椤甸潰 -const openPrintWmsOrderAsn = async (row: any) => { - printWmsOrderAsnTitle.value = '鎵撳嵃ASN涓�'; -} +const openPrintWmsOrderPurchase = async (row: any) => { + printWmsOrderPurchaseTitle.value = '鎵撳嵃PO鍗�'; +}; // 鎵撳紑缂栬緫椤甸潰 -const openEditWmsOrderAsn = (row: any) => { - editWmsOrderAsnTitle.value = '缂栬緫ASN涓�'; - editDialogRef.value.openDialog(row); +const openEditWmsOrderPurchase = (row: any) => { + editWmsOrderPurchaseTitle.value = '缂栬緫PO鍗�'; + editDialogRef.value.openDialog(row); }; // 鍒犻櫎 -const delWmsOrderAsn = (row: any) => { - ElMessageBox.confirm(`纭畾瑕佸彇娑堝悧?`, "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(async () => { - var res = await deleteWmsOrderAsn(row); - if (res.data.type == "success") { - handleQuery(); - ElMessage.success("鍙栨秷鎴愬姛"); - } - }) +const delWmsOrderPurchase = (row: any) => { + ElMessageBox.confirm(`纭畾瑕佸彇娑堝悧?`, '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(async () => { + await deleteWmsOrderPurchase(row); + handleQuery(); + ElMessage.success('鍙栨秷鎴愬姛'); + }) + .catch(() => {}); }; // 鏀瑰彉椤甸潰瀹归噺 const handleSizeChange = (val: number) => { - tableParams.value.pageSize = val; - handleQuery(); + tableParams.value.pageSize = val; + handleQuery(); }; // 鏀瑰彉椤电爜搴忓彿 const handleCurrentChange = (val: number) => { - tableParams.value.page = val; - handleQuery(); + tableParams.value.page = val; + handleQuery(); }; + // 鏍规嵁businessTypeValue鑾峰彇businessTypeName const getBusinessTypeByValue = (key: any, itemLst: any) => { - -return itemLst.find((x: any) => x.businessTypeValue == key)?.businessTypeName; + return itemLst.find((x: any) => x.businessTypeValue == key)?.businessTypeName; }; handleQuery(); -onMounted(async () => { - nextTick(async () => { - getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇鎺ュ彛 - getEnumAsnTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; - getEnumAsnStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; - getEnumIsFreezeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('TrueFalseEnum')).data.result ?? []; - }); +//================ +const arrTdp = ref<any[]>([]); +const queryParamsW = ref<any>({}); +const tableParamsW = ref({ + page: 1, + pageSize: 200, + total: 0, + custType: '渚涘簲鍟�', }); +//-----------------杩滅▼鎼滅储---------------- +const handleQueryTdp = async () => { + var res = await pageBaseCustomer(Object.assign(queryParamsW.value, tableParamsW.value)); + arrTdp.value = res.data.result?.items ?? []; +}; +const changeXmbh = async (query?: any) => { + loading.value = true; + var res = await pageBaseCustomer({ + page: 1, + pageSize: 200, + custCode: query, + custType: '渚涘簲鍟�', + }); + loading.value = false; + arrTdp.value = res.data.result?.items ?? []; +}; +// 杩滅▼鎼滅储 杈撳叆鍏抽敭瀛椾互浠庤繙绋嬫湇鍔″櫒涓煡鎵炬暟鎹�� +const remoteMethod = async (query: string) => { + loading.value = true; + var res = await pageBaseCustomer({ + page: 1, + pageSize: 200, + custCode: query, + custType: '渚涘簲鍟�', + }); + loading.value = false; + arrTdp.value = res.data.result?.items ?? []; +}; +//-----------------杩滅▼鎼滅储---------------- +const getEnumDockData = ref<any>([]); +onMounted(async () => { + nextTick(async () => { + // getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇鎺ュ彛 + // getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; + // getEnumOrderSocureData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('SourceByEnum')).data.result ?? []; + }); +}); /***************************************************[DO鍗曟搷浣淽缁撴潫***************************************************/ /***************************************************[DO鍗曞鍏寮�濮�***************************************************/ -const printWmsOrderDeliverTitle = ref(""); -const editWmsOrderDeliverTitle = ref(""); -const importExcelTitleWmsOrderDeliver = ref(""); +const printWmsOrderDeliverTitle = ref(''); +const editWmsOrderDeliverTitle = ref(''); +const importExcelTitleWmsOrderDeliver = ref(''); const importExcelDialogRefWmsOrderDeliver = ref(); //鎵撳紑瀵煎叆鐣岄潰 const openImportExcelWmsOrderDeliver = () => { - importExcelTitleWmsOrderDeliver.value = '瀵煎叆ASN鍗�'; - importExcelDialogRefWmsOrderDeliver.value.openDialog({}); + importExcelTitleWmsOrderDeliver.value = '瀵煎叆PO鍗�'; + importExcelDialogRefWmsOrderDeliver.value.openDialog({}); }; //瀵煎叆鏁版嵁 const handleImportExcelWmsOrderDeliver = async (formData: Blob) => { - var result = await importExcelWmsOrderAsn(formData); - importExcelDialogRefWmsOrderDeliver.value.callBackUploadFun(result.data);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 - if (result.data.type == "success") { - handleQuery(); - } + var result = await importExcelWmsOrderPurchase(formData); + importExcelDialogRefWmsOrderDeliver.value.callBackUploadFun(result.data); //鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 + if (result.data.type == 'success') { + handleQuery(); + } }; //涓嬭浇瀵煎叆妯℃澘 const handleDownExcelWmsOrderDeliver = async () => { - var result = await downloadExcelTemplateWmsOrderAsn(); - importExcelDialogRefWmsOrderDeliver.value.callBackDownFun(result);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 + var result = await downloadExcelTemplateWmsOrderPurchase(); + importExcelDialogRefWmsOrderDeliver.value.callBackDownFun(result); //鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 }; /***************************************************[DO鍗曞鍏缁撴潫***************************************************/ /***************************************************[DO鍗曞鍑篯寮�濮�***************************************************/ - - //瀵煎嚭 const handExport = () => { - downloadExcelTemplateWmsOrderAsnAll(queryParams.value) - .then((res) => { - if(res.status == 200){ - const link = document.createElement("a"); //鍒涘缓a鏍囩 - let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); // response灏辨槸鎺ュ彛杩斿洖鐨勬枃浠舵祦 - let objectUrl = URL.createObjectURL(blob); - link.href = objectUrl; - link.download = `ASN鍗曞鍑�${formatUtcToData( - new Date().toString(), - "YYYY-MM-DD hh:mm:ss" - )}`; // 鑷畾涔夋枃浠跺悕 - link.click(); // 涓嬭浇鏂囦欢 - URL.revokeObjectURL(objectUrl); // 閲婃斁鍐呭瓨 - } - }) + downloadExcelTemplateWmsOrderPurchaseAll(queryParams.value).then((res) => { + if (res.status == 200) { + const link = document.createElement('a'); //鍒涘缓a鏍囩 + let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }); // response灏辨槸鎺ュ彛杩斿洖鐨勬枃浠舵祦 + let objectUrl = URL.createObjectURL(blob); + link.href = objectUrl; + link.download = `PO鍗曞鍑�${formatUtcToData(new Date().toString(), 'YYYY-MM-DD hh:mm:ss')}`; // 鑷畾涔夋枃浠跺悕 + link.click(); // 涓嬭浇鏂囦欢 + URL.revokeObjectURL(objectUrl); // 閲婃斁鍐呭瓨 + } + }); }; - - - - -// 鍏抽棴Asn鍗� -const tocloseWmsOrderAsn = (row: any) => { - ElMessageBox.confirm(`纭畾瑕佸叧闂悧?`, "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(async () => { - loading.value = true; - var ret = await closeWmsOrderAsn(row); - if (ret.data.type == "success") { - ElMessage.success("鍏抽棴鎴愬姛"); - } - loading.value = false; - handleQuery(); - }) -}; - </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { - width: 100%; + width: 100%; } .under_line { - color: #F18201; - text-decoration: underline; - cursor: pointer; + color: #f18201; + text-decoration: underline; + cursor: pointer; +} +.table-container { + display: flex; /* 浣跨敤 flexbox 甯冨眬 */ + justify-content: space-between; /* 琛ㄦ牸涔嬮棿淇濇寔闂磋窛 */ +} + +.table-container .left-table, +.table-container .right-table { + flex: 1; /* 浣挎瘡涓〃鏍煎崰鎹浉鍚屽搴� */ + margin-right: 10px; /* 瀹氫箟鍙充晶鐨勯棿璺� */ + width: 50%; +} +.text-xtiny { + font-size: 14px; + font-weight: 700; + display: block; + padding: 0 0 10px 0; +} +.table-container .right-table { + margin-right: 0; /* 鏈�鍚庝竴涓〃鏍兼病鏈夊彸闂磋窛 */ } </style> - diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/component/openAllprop.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/component/openAllprop.vue index edd6923..4491a01 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/component/openAllprop.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/component/openAllprop.vue @@ -258,11 +258,11 @@ </template> </el-dialog> <!-- 鍗曡鎯� --> - <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}璁㈠崟璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose"> + <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}鐗╂枡璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose"> <template #title> <div class="slot_title"> <div class="title_orderNo">{{ title }}</div> - <div>璁㈠崟璇︽儏</div> + <div>鐗╂枡璇︽儏</div> </div> </template> @@ -294,68 +294,38 @@ <!-- <el-table-column prop="poId" label="PO鍗旾D" show-overflow-tooltip="" /> --> <!-- <el-table-column prop="poNo" label="PO鍗曞彿" show-overflow-tooltip="" /> --> - <el-table-column prop="materialCode" label="鐗╂枡缂栧彿" fixed="left" show-overflow-tooltip="" /> - <el-table-column prop="materialName" label="鐗╂枡鍚嶇О" show-overflow-tooltip="" /> - <el-table-column prop="poLineNumber" label="琛屽彿" show-overflow-tooltip="" /> - - <el-table-column prop="poDetailStatus" label="鐘舵��" show-overflow-tooltip=""> - <template #default="scope"> - <el-tag :type="getTypeStatus(1, getEnumDesc(scope.row.poDetailStatus, getEnumPoDetailStatusData_Index))">{{ - getEnumDesc(scope.row.poDetailStatus, getEnumPoDetailStatusData_Index) - }}</el-tag> - </template> - </el-table-column> - - <el-table-column prop="quantity" label="鏁伴噺" show-overflow-tooltip="" /> - <el-table-column prop="goodsQuantity" label="宸叉敹鏁伴噺" show-overflow-tooltip="" /> - - <!-- <el-table-column - prop="createASNQuantity" - label="宸插垱寤篈SN鏁伴噺" min-width="110px" - show-overflow-tooltip="" - /> --> - - <!-- <el-table-column - prop="snp" - label="鏍囧寘鏁伴噺" - show-overflow-tooltip="" - /> --> - <!-- <el-table-column prop="erpOrderNo" label="ERP鍗曞彿" show-overflow-tooltip="" /> --> - <el-table-column prop="erpCode" label="ERP搴撳瓨鍦�" show-overflow-tooltip="" /> - - <!-- <el-table-column - prop="printQuantity" min-width="110px" - label="鏉$爜鎵撳嵃鏁伴噺" - show-overflow-tooltip="" - /> --> - - <!-- <el-table-column - prop="poDetailStatusName" - label="鐘舵�佸悕绉�" - show-overflow-tooltip="" - /> --> - <el-table-column prop="supplierCode" label="渚涘簲鍟嗙紪鍙�" show-overflow-tooltip="" /> - <el-table-column prop="supplierName" label="渚涘簲鍟嗗悕绉�" show-overflow-tooltip="" /> - <el-table-column prop="supplierBatch" min-width="100px" label="渚涘簲鍟嗘壒娆�" show-overflow-tooltip="" /> - <!-- <el-table-column prop="batch" min-width="100px" label="鎵规" show-overflow-tooltip="" /> --> - <el-table-column prop="unit" min-width="100px" label="閲囪喘鍗曚綅" show-overflow-tooltip="" /> - - <el-table-column prop="plannedStartTime" label="璁″垝寮�濮嬫椂闂�" min-width="130px" show-overflow-tooltip="" /> - <el-table-column prop="plannedEndTime" label="璁″垝缁撴潫鏃堕棿" min-width="130px" show-overflow-tooltip="" /> - - <el-table-column prop="projectNo" min-width="100px" label="椤圭洰鍙�" show-overflow-tooltip="" /> - - <!-- <el-table-column - prop="dock" - min-width="100px" - label="鏀惰揣閬撳彛" - show-overflow-tooltip="" - /> --> - - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> - <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> - <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> - <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + <el-table-column prop="stockStatus" label="搴撳瓨鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.stockStatus, getEnumStockStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="stockStatusName" label="搴撳瓨鐘舵�佸悕绉�" show-overflow-tooltip="" /> + <el-table-column prop="operReason" label="鎿嶄綔鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="operUser" label="鎿嶄綔浜�" show-overflow-tooltip="" /> + <el-table-column prop="operTime" label="鎿嶄綔鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="lockStatus" label="閿佸畾鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.lockStatus, getEnumLockStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="lockReason" label="閿佸畾鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="lockUser" label="閿佸畾浜�" show-overflow-tooltip="" /> + <el-table-column prop="lockTime" label="閿佸畾鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="remarks" label="澶囨敞" show-overflow-tooltip="" /> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> + <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> </el-table> <Pagination :total="detailCount" v-model:page="detailForm.Page" v-model:limit="detailForm.PageSize" @pagination="getDetail" style="margin-top: 20px; text-align: center"></Pagination> @@ -443,6 +413,10 @@ const hexiao = computed(() => props.hexiao); const loading = ref(false); + + +const getEnumStockStatusData_Index = ref<any>([]); + const getEnumLockStatusData_Index = ref<any>([]); // 鐧诲綍鐢ㄦ埛id // const LoginUserID = computed(() => store.state.login.userInfo.id || localCache.getCache("LoginUserID")) @@ -653,18 +627,15 @@ const openDrawer = async (type: number, scope: any = {}, entozhExcell?: any) => { detailForm.value.Page = 1; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏 detailForm.value.PageSize = 10; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏 - if (scope.purchaseNo) { - title.value = `${scope.purchaseNo}`; - } - if (scope.orderNo) { - title.value = `${scope.orderNo}`; + if (scope.packageCode) { + title.value = `${scope.packageCode}`; } drawerType.value = 'drawerAll'; drawerVisible.value = true; //褰撳墠鍏ュ簱鍗曞彿id detailForm.value.poId = scope.id; //鍏ュ簱鍗� - purchaseNo.value = scope.purchaseNo; + purchaseNo.value = scope.packageCode; debugger; detailForm.value.poId = scope.id; //鑾峰彇鐗╂枡鍒楄〃 @@ -676,13 +647,14 @@ //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 getDetail(); //------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏 + getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? []; + getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? []; + // getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇涓氬姟绫诲瀷鎺ュ彛 create by liuwq - getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇涓氬姟绫诲瀷鎺ュ彛 create by liuwq + // getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; - getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; - - getEnumPoDetailStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; - getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; + // getEnumPoDetailStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; + // getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; //----------------鐗╂枡鏄庣粏 // 鏍规嵁鐘舵�佽浆涓枃 淇濈暀3浣嶅皬鏁� let scopetrans = JSON.parse(JSON.stringify(scope)); diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/index.vue index 092bab5..14310c0 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/wmsOrderPurchase/index.vue @@ -1,95 +1,79 @@ <template> - <div class="wmsOrderPurchase-container"> - <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> - <el-form :model="queryParams" ref="queryForm" labelWidth="90"> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="6" class="mb10"> - <el-form-item label="鍏抽敭瀛�"> - <el-input v-model="queryParams.searchKey" clearable="" placeholder="PO鍗曞彿,渚涘簲鍟嗙紪鍙�,渚涘簲鍟嗗悕绉�,ERP鍗曞彿,椤圭洰鍙�" /> + <div class="wmsOrderPurchase-container"> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="queryParams" ref="queryForm" labelWidth="90"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="6" class="mb10"> + <el-form-item label="鍏抽敭瀛�"> + <el-input v-model="queryParams.searchKey" clearable="" placeholder="PO鍗曞彿,渚涘簲鍟嗙紪鍙�,渚涘簲鍟嗗悕绉�,ERP鍗曞彿,椤圭洰鍙�" /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="PO鍗曞彿"> + <el-input v-model="queryParams.purchaseNo" clearable="" placeholder="璇疯緭鍏O鍗曞彿" /> + </el-form-item> + </el-col> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="PO鍗曞彿"> - <el-input v-model="queryParams.purchaseNo" clearable="" placeholder="璇疯緭鍏O鍗曞彿" /> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="涓氬姟绫诲瀷"> + <el-select clearable="" v-model="queryParams.businessType" placeholder="璇烽�夋嫨涓氬姟绫诲瀷"> + <el-option v-for="(item, index) in getBusinessTypeData_Index" :key="index" :value="item.businessTypeValue" :label="`[${item.businessTypeValue}] ${item.businessTypeName}`" /> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="鍗曟嵁鏉ユ簮"> + <el-select clearable="" v-model="queryParams.orderSocure" placeholder="璇烽�夋嫨鍗曟嵁鏉ユ簮"> + <el-option v-for="(item, index) in getEnumOrderSocureData_Index" :key="index" :value="item.describe" :label="`${item.describe}`" /> + </el-select> + </el-form-item> + </el-col> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="涓氬姟绫诲瀷"> - - <el-select clearable="" v-model="queryParams.businessType" placeholder="璇烽�夋嫨涓氬姟绫诲瀷"> - <el-option v-for="(item, index) in getBusinessTypeData_Index" :key="index" :value="item.businessTypeValue" - :label="`[${item.businessTypeValue}] ${item.businessTypeName}`" /> - - </el-select> - - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鍗曟嵁鏉ユ簮"> - <el-select clearable="" v-model="queryParams.orderSocure" placeholder="璇烽�夋嫨鍗曟嵁鏉ユ簮"> - <el-option v-for="(item,index) in getEnumOrderSocureData_Index" :key="index" :value="item.describe" :label="`${item.describe}`" /> - </el-select> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="鍗曟嵁鐘舵��"> - <el-select clearable="" v-model="queryParams.poStatus" placeholder="璇烽�夋嫨鍗曟嵁鐘舵��"> - <el-option v-for="(item, index) in getEnumPoStatusData_Index" :key="index" :value="item.value" - :label="`${item.describe}`" /> - - </el-select> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="鍗曟嵁鐘舵��"> + <el-select clearable="" v-model="queryParams.poStatus" placeholder="璇烽�夋嫨鍗曟嵁鐘舵��"> + <el-option v-for="(item, index) in getEnumPoStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" /> + </el-select> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="鍗曟嵁鐘舵�佸悕绉�"> <el-input v-model="queryParams.poStatusName" clearable="" placeholder="璇疯緭鍏ュ崟鎹姸鎬佸悕绉�"/> </el-form-item> </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <!-- <el-form-item label="渚涘簲鍟嗙紪鍙�"> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <!-- <el-form-item label="渚涘簲鍟嗙紪鍙�"> <el-input v-model="queryParams.supplierCode" clearable="" placeholder="璇疯緭鍏ヤ緵搴斿晢缂栧彿" /> </el-form-item> --> - - <el-form-item label="渚涘簲鍟�" prop="supplierCode"> - <el-select - v-model="queryParams.supplierCode" - filterable - remote - reserve-keyword - remote-show-suffix - :remote-method="remoteMethod" - :loading="loading" - placeholder="璇烽�夋嫨渚涘簲鍟�" - clearable - style="width: 100%" - @change="changeXmbh(queryParams.supplierCode)" - > - <el-option - v-for="(item, index) in arrTdp" - :key="index" - :value="item.custCode" - :label="`[${item.custCode}]${item.custChinaName}`" - ></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="渚涘簲鍟嗗悕绉�"> - <el-input v-model="queryParams.supplierName" clearable="" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О"/> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="渚涘簲鍟�" prop="supplierCode"> + <el-select + v-model="queryParams.supplierCode" + filterable + remote + reserve-keyword + remote-show-suffix + :remote-method="remoteMethod" + :loading="loading" + placeholder="璇烽�夋嫨渚涘簲鍟�" + clearable + style="width: 100%" + @change="changeXmbh(queryParams.supplierCode)" + > + <el-option v-for="(item, index) in arrTdp" :key="index" :value="item.custCode" :label="`[${item.custCode}]${item.custChinaName}`"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="渚涘簲鍟嗗悕绉�"> + <el-input v-model="queryParams.supplierName" clearable="" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" /> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="鏀惰揣閬撳彛"> --> - <!-- <el-input v-model="queryParams.dock" clearable="" placeholder="璇疯緭鍏ユ敹璐ч亾鍙�" /> --> - <!-- <el-select clearable v-model="queryParams.dock" placeholder="璇烽�夋嫨鏀惰揣閬撳彛"> + <!-- <el-input v-model="queryParams.dock" clearable="" placeholder="璇疯緭鍏ユ敹璐ч亾鍙�" /> --> + <!-- <el-select clearable v-model="queryParams.dock" placeholder="璇烽�夋嫨鏀惰揣閬撳彛"> <el-option v-for="(item, index) in getEnumDockData" :key="index" @@ -97,176 +81,186 @@ :label="`${item.describe}`" ></el-option> </el-select> --> - <!-- </el-form-item> + <!-- </el-form-item> </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="ERP鍗曞彿"> - <el-input v-model="queryParams.erpOrderNo" clearable="" placeholder="璇疯緭鍏RP鍗曞彿" /> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="ERP鍗曞彿"> + <el-input v-model="queryParams.erpOrderNo" clearable="" placeholder="璇疯緭鍏RP鍗曞彿" /> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="椤圭洰ID"> <el-input v-model="queryParams.projectId" clearable="" placeholder="璇疯緭鍏ラ」鐩甀D"/> </el-form-item> </el-col> --> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> - <el-form-item label="椤圭洰鍙�"> - <el-input v-model="queryParams.projectNo" clearable="" placeholder="璇疯緭鍏ラ」鐩彿" /> - - </el-form-item> - </el-col> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> + <el-form-item label="椤圭洰鍙�"> + <el-input v-model="queryParams.projectNo" clearable="" placeholder="璇疯緭鍏ラ」鐩彿" /> + </el-form-item> + </el-col> + <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI"> <el-form-item label="椤圭洰鍚嶇О"> <el-input v-model="queryParams.projectName" clearable="" placeholder="璇疯緭鍏ラ」鐩悕绉�"/> </el-form-item> </el-col> --> - - <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> - <el-form-item> - <el-button-group style="display: flex; align-items: center;"> - <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wmsOrderPurchase:page'"> 鏌ヨ - </el-button> - <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 閲嶇疆 </el-button> - <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" - style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button> - <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" - style="margin-left:5px;"> 闅愯棌 </el-button> - <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsOrderPurchase" v-auth="'wmsOrderPurchase:add'"> 鏂板 </el-button> --> - <!-- 鏂板PO鍗�-ly --> - <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="showProp(1)" - v-auth="'wmsOrderPurchase:add'"> 鏂板 </el-button> - <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelWmsOrderDeliver"> 瀵煎叆 </el-button> --> -<!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handExport"> 瀵煎嚭 </el-button> --> - </el-button-group> - </el-form-item> + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> + <el-form-item> + <el-button-group style="display: flex; align-items: center"> + <el-button type="primary" icon="ele-Search" @click="handleQuery"> 鏌ヨ </el-button> + <el-button icon="ele-Refresh" @click="() => (queryParams = {})"> 閲嶇疆 </el-button> + <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left: 5px"> 楂樼骇鏌ヨ </el-button> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left: 5px"> 闅愯棌 </el-button> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsOrderPurchase" v-auth="'wmsOrderPurchase:add'"> 鏂板 </el-button> --> + <!-- 鏂板PO鍗�-ly --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="showProp(1)"> 鏂板 </el-button> --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelWmsOrderDeliver"> 瀵煎叆 </el-button> --> + <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handExport"> 瀵煎嚭 </el-button> --> + </el-button-group> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-card> + <el-card class="full-table" shadow="hover" style="margin-top: 5px"> + <div class="table-container"> + <!-- 宸︿晶琛ㄦ牸 --> + <div class="left-table"> + <p class="text-xtiny">榻愬寘鍒楄〃</p> - </el-col> - </el-row> - </el-form> - </el-card> - <el-card class="full-table" shadow="hover" style="margin-top: 5px"> - <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" ref="tableRef" - row-key="id" @sort-change="sortChange" :summary-method="getExportTitle" show-summary border=""> - <el-table-column fixed="left" type="index" label="搴忓彿" width="55" align="center" /> + <el-table + :data="tableData" + style="width: 100%" + v-loading="loading" + tooltip-effect="light" + ref="tableRef" + row-key="id" + @sort-change="sortChange" + :summary-method="getExportTitle" + border="" + > + <el-table-column type="index" label="搴忓彿" width="55" align="center" /> + <!-- <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> --> + <el-table-column label="鍖呰鍙�" prop="packageCode" width="150" align="left" show-overflow-tooltip> + <template #default="scope"> + <span class="under_line" @click="openDrawer(1, scope.row)"> + {{ scope.row.packageCode }} + </span> + </template> + </el-table-column> - <el-table-column fixed="left" label="PO鍗曞彿" prop="purchaseNo" width="150" align="left" show-overflow-tooltip> - <template #default="scope"> - <span class="under_line" @click="openDrawer(1, scope.row)"> - {{ scope.row.purchaseNo }} - </span> - </template> - </el-table-column> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + </el-table> + </div> - <el-table-column prop="businessTypeName" label="涓氬姟绫诲瀷" show-overflow-tooltip="" min-width="90px"> - <template #default="scope"> - {{ scope.row.businessTypeName }} - </template> - </el-table-column> + <!-- 鍙充晶琛ㄦ牸 --> + <div class="right-table"> + <p class="text-xtiny">涓嶉綈鍖呭垪琛�</p> + <el-table + :data="newTableData" + style="width: 100%" + v-loading="loading" + tooltip-effect="light" + ref="newTableRef" + row-key="newId" + @sort-change="newSortChange" + :summary-method="getNewExportTitle" + border="" + > + <el-table-column type="index" label="搴忓彿" width="55" align="center" /> + <!-- <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> --> + <el-table-column label="鍖呰鍙�" prop="packageCode" width="150" align="left" show-overflow-tooltip> + <template #default="scope"> + <span class="under_line" @click="openDrawer(1, scope.row)"> + {{ scope.row.packageCode }} + </span> + </template> + </el-table-column> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + </el-table> + </div> + </div> + </el-card> - <el-table-column prop="poStatus" label="鍗曟嵁鐘舵��" show-overflow-tooltip=""> - <template #default="scope"> - - <el-tag :type="getTypeStatus(1, getEnumDesc(scope.row.poStatus, getEnumPoStatusData_Index))"> {{ - getEnumDesc(scope.row.poStatus, getEnumPoStatusData_Index) }}</el-tag> - </template> - </el-table-column> - - <el-table-column prop="orderSocure" label="鍗曟嵁鏉ユ簮" show-overflow-tooltip="" /> - - <el-table-column prop="supplierCode" label="渚涘簲鍟嗙紪鍙�" show-overflow-tooltip="" /> - <el-table-column prop="supplierName" label="渚涘簲鍟嗗悕绉�" show-overflow-tooltip="" /> - <!-- <el-table-column prop="dock" label="鏀惰揣閬撳彛" show-overflow-tooltip="" /> --> - <el-table-column prop="erpOrderNo" label="ERP鍗曞彿" show-overflow-tooltip="" /> - <el-table-column prop="projectNo" label="椤圭洰鍙�" show-overflow-tooltip="" /> - <!-- <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip="" /> --> - - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" - show-overflow-tooltip="" /> - <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" - show-overflow-tooltip="" /> - <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> - <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> - <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" - v-if="auth('wmsOrderPurchase:update') || auth('wmsOrderPurchase:delete')"> - <template #default="scope"> - <!-- <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsOrderPurchase(scope.row)" v-auth="'wmsOrderPurchase:update'"> 缂栬緫 </el-button> --> - - <el-button icon="ele-Edit" size="small" text="" type="primary" @click="showProp(scope.row)" - v-auth="'wmsOrderPurchase:update'" :disabled="scope.row.poStatus!=0"> 缂栬緫 </el-button> - - <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsOrderPurchase(scope.row)" - v-auth="'wmsOrderPurchase:delete'" :disabled="scope.row.poStatus!=0"> 鍙栨秷 </el-button> - </template> - </el-table-column> - </el-table> - <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize" - :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" small="" background="" - @size-change="handleSizeChange" @current-change="handleCurrentChange" - layout="total, sizes, prev, pager, next, jumper" /> - <printDialog ref="printDialogRef" :title="printWmsOrderPurchaseTitle" @reloadTable="handleQuery" /> - <editDialog ref="editDialogRef" :title="editWmsOrderPurchaseTitle" @reloadTable="handleQuery" /> - </el-card> - - <editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" - @reloadTable="handleQuery" /> - <importExcelDialog ref="importExcelDialogRefWmsOrderDeliver" :title="importExcelTitleWmsOrderDeliver" - @parentUploadFun="handleImportExcelWmsOrderDeliver" @parentDownFun="handleDownExcelWmsOrderDeliver" /> - <!-- 鎵�鏈夊脊妗� 锛氭柊澧� 缂栬緫 璇︽儏 --> - <open-allprop titleAuthor="1" hexiao="0" ref="propALlProp" @getTabelData="handleQuery"></open-allprop> - </div> + <editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" @reloadTable="handleQuery" /> + <importExcelDialog + ref="importExcelDialogRefWmsOrderDeliver" + :title="importExcelTitleWmsOrderDeliver" + @parentUploadFun="handleImportExcelWmsOrderDeliver" + @parentDownFun="handleDownExcelWmsOrderDeliver" + /> + <!-- 鎵�鏈夊脊妗� 锛氭柊澧� 缂栬緫 璇︽儏 --> + <open-allprop titleAuthor="1" hexiao="0" ref="propALlProp" @getTabelData="handleQuery"></open-allprop> + </div> </template> <script lang="ts" setup="" name="wmsOrderPurchase"> -import { getCurrentInstance, nextTick, onMounted, ref } from "vue"; -import { ElMessageBox, ElMessage } from "element-plus"; +import { getCurrentInstance, nextTick, onMounted, ref } from 'vue'; +import { ElMessageBox, ElMessage } from 'element-plus'; import { auth } from '/@/utils/authFunction'; import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; import { formatDate, formatDate_T_Date, formatDate_T_Time, defaultTimeRange } from '/@/utils/formatTime'; -import { pageBaseCustomer } from "/@/api/main/WmsBase/baseCustomer"; +import { pageBaseCustomer } from '/@/api/main/WmsBase/baseCustomer'; +import { formatUtcToData, getTypeStatus } from '/@/utils/formate'; +import printDialog from '/@/views/system/print/component/hiprint/preview.vue'; +import editDialog from '/@/views/main/WmsOrder/wmsOrderPurchase/component/editDialog.vue'; import { -formatUtcToData, - getTypeStatus -} from "/@/utils/formate"; -import printDialog from '/@/views/system/print/component/hiprint/preview.vue' -import editDialog from '/@/views/main/WmsOrder/wmsOrderPurchase/component/editDialog.vue' -import { pageWmsOrderPurchase, deleteWmsOrderPurchase, importExcelWmsOrderPurchase, downloadExcelTemplateWmsOrderPurchase, downloadExcelTemplateWmsOrderPurchaseAll } from '/@/api/main/WmsOrder/wmsOrderPurchase'; -import { handleSlectDataWmsBusinessType } from "/@/utils/selectData"; + pageWmsOrderPurchase, + deleteWmsOrderPurchase, + importExcelWmsOrderPurchase, + downloadExcelTemplateWmsOrderPurchase, + downloadExcelTemplateWmsOrderPurchaseAll, +} from '/@/api/main/WmsOrder/wmsOrderPurchase'; +import { handleSlectDataWmsBusinessType } from '/@/utils/selectData'; import { getAPI } from '/@/utils/axios-utils'; import { SysEnumApi } from '/@/api-services/api'; import commonFunction from '/@/utils/commonFunction'; -import importExcelDialog from '/@/components/importExcel/index.vue' //寮曞叆瀵煎叆缁勪欢 -import { exportPageExcel } from '/@/utils/exportPageExcel' //寮曞叆瀵煎嚭鏂规硶 -import OpenAllprop from "./component/openAllprop.vue"; -import { ExcellTableDataExport } from "/@/hooks/exportTableDataExcell"; +import importExcelDialog from '/@/components/importExcel/index.vue'; //寮曞叆瀵煎叆缁勪欢 +import { exportPageExcel } from '/@/utils/exportPageExcel'; //寮曞叆瀵煎嚭鏂规硶 +import OpenAllprop from './component/openAllprop.vue'; +import { ExcellTableDataExport } from '/@/hooks/exportTableDataExcell'; const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜 -const moveType = 10;//绉诲姩绫诲瀷 鍏ュ簱 +const moveType = 10; //绉诲姩绫诲瀷 鍏ュ簱 // ------------灏佽瀵煎嚭鍔熻兘--鍓嶇瀵煎嚭+琛ㄦ牸鏍囬--------------- const jsonExcellTableExport = { - titleName: "", //瀵煎嚭琛ㄦ牸鍚嶇О - interfaceListName: '',//瀵煎嚭鎺ュ彛鍚嶇О -} -const { getExportTitle, handleExportExcell, formExport, entozhExcell } = ExcellTableDataExport(jsonExcellTableExport) + titleName: '', //瀵煎嚭琛ㄦ牸鍚嶇О + interfaceListName: '', //瀵煎嚭鎺ュ彛鍚嶇О +}; +const { getExportTitle, handleExportExcell, formExport, entozhExcell } = ExcellTableDataExport(jsonExcellTableExport); // --------------end 灏佽瀵煎嚭鍔熻兘--鍓嶇瀵煎嚭+琛ㄦ牸鏍囬----------------- // ---------------鏂板----------------------- const showProp = (item?: any) => { - if (item == 1) { - proxy.$refs['propALlProp'].openDialog(1); - } else { - proxy.$refs['propALlProp'].openDialog(2, item); - } -} + if (item == 1) { + proxy.$refs['propALlProp'].openDialog(1); + } else { + proxy.$refs['propALlProp'].openDialog(2, item); + } +}; // ---------------璇︽儏----------------------- const openDrawer = (type: number, item?: any) => { - proxy.$refs['propALlProp'].openDrawer(type, item, entozhExcell); -} + proxy.$refs['propALlProp'].openDrawer(type, item, entozhExcell); +}; // ---------------end璇︽儏----------------------- - -const getBusinessTypeData_Index = ref<any>([]);//涓氬姟绫诲瀷 create by liuwq +const getBusinessTypeData_Index = ref<any>([]); //涓氬姟绫诲瀷 create by liuwq const getEnumOrderTypeData_Index = ref<any>([]); // const getEnumBusinessTypeData_Index = ref<any>([]); //update by liuwq const getEnumPoStatusData_Index = ref<any>([]); @@ -282,205 +276,242 @@ const tableData = ref<any>([]); const queryParams = ref<any>({}); const tableParams = ref({ - page: 1, - pageSize: 10, - total: 0, + page: 1, + pageSize: 10, + total: 0, }); -const printWmsOrderPurchaseTitle = ref(""); -const editWmsOrderPurchaseTitle = ref(""); +const printWmsOrderPurchaseTitle = ref(''); +const editWmsOrderPurchaseTitle = ref(''); // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� const changeAdvanceQueryUI = () => { - showAdvanceQueryUI.value = !showAdvanceQueryUI.value; -} + showAdvanceQueryUI.value = !showAdvanceQueryUI.value; +}; +const newTableData = ref([]); + +const fetchNewTableData = async () => { + loading.value = true; + try { + const response = await fetch('your-api-endpoint'); // 鏇挎崲涓烘偍鐨凙PI鍦板潃 + const data = await response.json(); + newTableData.value = data; + } catch (error) { + console.error('鑾峰彇鏂拌〃鏁版嵁閿欒:', error); + } finally { + loading.value = false; + } +}; + +const newSortChange = ({ prop, order }) => { + console.log(`鎺掑簭瀛楁: ${prop}, 鎺掑簭椤哄簭: ${order}`); + // 澶勭悊鎺掑簭閫昏緫 +}; + +const openNewDrawer = (type, row) => { + console.log('鎵撳紑鏂扮殑鎶藉眽锛岀被鍨�:', type, ', 鏁版嵁:', row); +}; + +const getNewExportTitle = () => { + return '鏂拌〃鏍煎鍑烘爣棰�'; +}; // 鏌ヨ鎿嶄綔 const handleQuery = async () => { - loading.value = true; - var res = await pageWmsOrderPurchase(Object.assign(queryParams.value, tableParams.value)); - tableData.value = res.data.result?.items ?? []; - tableParams.value.total = res.data.result?.total; - loading.value = false; - getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; + loading.value = true; + var res = await pageWmsOrderPurchase(Object.assign(queryParams.value, tableParams.value)); + tableData.value = res.data.result ?? []; - getEnumPoStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; + newTableData.value = res.data.result ?? []; + + // tableParams.value.total = res.data.result?.total; + loading.value = false; + // getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? []; + + // getEnumPoStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? []; }; // 鍒楁帓搴� const sortChange = async (column: any) => { - queryParams.value.field = column.prop; - queryParams.value.order = column.order; - await handleQuery(); + queryParams.value.field = column.prop; + queryParams.value.order = column.order; + await handleQuery(); }; // 鎵撳紑鏂板椤甸潰 const openAddWmsOrderPurchase = () => { - editWmsOrderPurchaseTitle.value = '娣诲姞PO鍗�'; - editDialogRef.value.openDialog({}); + editWmsOrderPurchaseTitle.value = '娣诲姞PO鍗�'; + editDialogRef.value.openDialog({}); }; // 鎵撳紑鎵撳嵃椤甸潰 const openPrintWmsOrderPurchase = async (row: any) => { - printWmsOrderPurchaseTitle.value = '鎵撳嵃PO鍗�'; -} + printWmsOrderPurchaseTitle.value = '鎵撳嵃PO鍗�'; +}; // 鎵撳紑缂栬緫椤甸潰 const openEditWmsOrderPurchase = (row: any) => { - editWmsOrderPurchaseTitle.value = '缂栬緫PO鍗�'; - editDialogRef.value.openDialog(row); + editWmsOrderPurchaseTitle.value = '缂栬緫PO鍗�'; + editDialogRef.value.openDialog(row); }; // 鍒犻櫎 const delWmsOrderPurchase = (row: any) => { - ElMessageBox.confirm(`纭畾瑕佸彇娑堝悧?`, "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(async () => { - await deleteWmsOrderPurchase(row); - handleQuery(); - ElMessage.success("鍙栨秷鎴愬姛"); - }) - .catch(() => { }); + ElMessageBox.confirm(`纭畾瑕佸彇娑堝悧?`, '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(async () => { + await deleteWmsOrderPurchase(row); + handleQuery(); + ElMessage.success('鍙栨秷鎴愬姛'); + }) + .catch(() => {}); }; // 鏀瑰彉椤甸潰瀹归噺 const handleSizeChange = (val: number) => { - tableParams.value.pageSize = val; - handleQuery(); + tableParams.value.pageSize = val; + handleQuery(); }; // 鏀瑰彉椤电爜搴忓彿 const handleCurrentChange = (val: number) => { - tableParams.value.page = val; - handleQuery(); + tableParams.value.page = val; + handleQuery(); }; // 鏍规嵁businessTypeValue鑾峰彇businessTypeName const getBusinessTypeByValue = (key: any, itemLst: any) => { - - return itemLst.find((x: any) => x.businessTypeValue == key)?.businessTypeName; + return itemLst.find((x: any) => x.businessTypeValue == key)?.businessTypeName; }; handleQuery(); - //================ const arrTdp = ref<any[]>([]); const queryParamsW = ref<any>({}); const tableParamsW = ref({ - page: 1, - pageSize: 200, - total: 0, - custType: "渚涘簲鍟�", + page: 1, + pageSize: 200, + total: 0, + custType: '渚涘簲鍟�', }); //-----------------杩滅▼鎼滅储---------------- const handleQueryTdp = async () => { - var res = await pageBaseCustomer(Object.assign(queryParamsW.value, tableParamsW.value)); - arrTdp.value = res.data.result?.items ?? []; + var res = await pageBaseCustomer(Object.assign(queryParamsW.value, tableParamsW.value)); + arrTdp.value = res.data.result?.items ?? []; }; const changeXmbh = async (query?: any) => { - loading.value = true; - var res = await pageBaseCustomer({ - page: 1, - pageSize: 200, - custCode: query, - custType: "渚涘簲鍟�", - }); - loading.value = false; - arrTdp.value = res.data.result?.items ?? []; + loading.value = true; + var res = await pageBaseCustomer({ + page: 1, + pageSize: 200, + custCode: query, + custType: '渚涘簲鍟�', + }); + loading.value = false; + arrTdp.value = res.data.result?.items ?? []; }; // 杩滅▼鎼滅储 杈撳叆鍏抽敭瀛椾互浠庤繙绋嬫湇鍔″櫒涓煡鎵炬暟鎹�� const remoteMethod = async (query: string) => { - loading.value = true; - var res = await pageBaseCustomer({ - page: 1, - pageSize: 200, - custCode: query, - custType: "渚涘簲鍟�", - }); - loading.value = false; - arrTdp.value = res.data.result?.items ?? []; + loading.value = true; + var res = await pageBaseCustomer({ + page: 1, + pageSize: 200, + custCode: query, + custType: '渚涘簲鍟�', + }); + loading.value = false; + arrTdp.value = res.data.result?.items ?? []; }; //-----------------杩滅▼鎼滅储---------------- const getEnumDockData = ref<any>([]); onMounted(async () => { - nextTick(async () => { - getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇鎺ュ彛 - getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; - getEnumOrderSocureData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('SourceByEnum')).data.result ?? []; - }); + nextTick(async () => { + // getBusinessTypeData_Index.value = await handleSlectDataWmsBusinessType(moveType); //涓嬫媺璇诲彇鎺ュ彛 + // getEnumDockData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('DockEnum')).data.result ?? []; + // getEnumOrderSocureData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('SourceByEnum')).data.result ?? []; + }); }); - - - /***************************************************[DO鍗曟搷浣淽缁撴潫***************************************************/ /***************************************************[DO鍗曞鍏寮�濮�***************************************************/ -const printWmsOrderDeliverTitle = ref(""); -const editWmsOrderDeliverTitle = ref(""); -const importExcelTitleWmsOrderDeliver = ref(""); +const printWmsOrderDeliverTitle = ref(''); +const editWmsOrderDeliverTitle = ref(''); +const importExcelTitleWmsOrderDeliver = ref(''); const importExcelDialogRefWmsOrderDeliver = ref(); //鎵撳紑瀵煎叆鐣岄潰 const openImportExcelWmsOrderDeliver = () => { - importExcelTitleWmsOrderDeliver.value = '瀵煎叆PO鍗�'; - importExcelDialogRefWmsOrderDeliver.value.openDialog({}); + importExcelTitleWmsOrderDeliver.value = '瀵煎叆PO鍗�'; + importExcelDialogRefWmsOrderDeliver.value.openDialog({}); }; //瀵煎叆鏁版嵁 const handleImportExcelWmsOrderDeliver = async (formData: Blob) => { - var result = await importExcelWmsOrderPurchase(formData); - importExcelDialogRefWmsOrderDeliver.value.callBackUploadFun(result.data);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 - if (result.data.type == "success") { - handleQuery(); - } + var result = await importExcelWmsOrderPurchase(formData); + importExcelDialogRefWmsOrderDeliver.value.callBackUploadFun(result.data); //鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 + if (result.data.type == 'success') { + handleQuery(); + } }; //涓嬭浇瀵煎叆妯℃澘 const handleDownExcelWmsOrderDeliver = async () => { - var result = await downloadExcelTemplateWmsOrderPurchase(); - importExcelDialogRefWmsOrderDeliver.value.callBackDownFun(result);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 + var result = await downloadExcelTemplateWmsOrderPurchase(); + importExcelDialogRefWmsOrderDeliver.value.callBackDownFun(result); //鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 }; /***************************************************[DO鍗曞鍏缁撴潫***************************************************/ /***************************************************[DO鍗曞鍑篯寮�濮�***************************************************/ - - //瀵煎嚭 const handExport = () => { - downloadExcelTemplateWmsOrderPurchaseAll(queryParams.value) - .then((res) => { - if(res.status == 200){ - const link = document.createElement("a"); //鍒涘缓a鏍囩 - let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); // response灏辨槸鎺ュ彛杩斿洖鐨勬枃浠舵祦 - let objectUrl = URL.createObjectURL(blob); - link.href = objectUrl; - link.download = `PO鍗曞鍑�${formatUtcToData( - new Date().toString(), - "YYYY-MM-DD hh:mm:ss" - )}`; // 鑷畾涔夋枃浠跺悕 - link.click(); // 涓嬭浇鏂囦欢 - URL.revokeObjectURL(objectUrl); // 閲婃斁鍐呭瓨 - } - }) + downloadExcelTemplateWmsOrderPurchaseAll(queryParams.value).then((res) => { + if (res.status == 200) { + const link = document.createElement('a'); //鍒涘缓a鏍囩 + let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }); // response灏辨槸鎺ュ彛杩斿洖鐨勬枃浠舵祦 + let objectUrl = URL.createObjectURL(blob); + link.href = objectUrl; + link.download = `PO鍗曞鍑�${formatUtcToData(new Date().toString(), 'YYYY-MM-DD hh:mm:ss')}`; // 鑷畾涔夋枃浠跺悕 + link.click(); // 涓嬭浇鏂囦欢 + URL.revokeObjectURL(objectUrl); // 閲婃斁鍐呭瓨 + } + }); }; - </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { - width: 100%; + width: 100%; } .under_line { - color: #F18201; - text-decoration: underline; - cursor: pointer; + color: #f18201; + text-decoration: underline; + cursor: pointer; +} +.table-container { + display: flex; /* 浣跨敤 flexbox 甯冨眬 */ + justify-content: space-between; /* 琛ㄦ牸涔嬮棿淇濇寔闂磋窛 */ +} + +.table-container .left-table, +.table-container .right-table { + flex: 1; /* 浣挎瘡涓〃鏍煎崰鎹浉鍚屽搴� */ + margin-right: 10px; /* 瀹氫箟鍙充晶鐨勯棿璺� */ + width: 50%; +} +.text-xtiny { + font-size: 14px; + font-weight: 700; + display: block; + padding: 0 0 10px 0; +} +.table-container .right-table { + margin-right: 0; /* 鏈�鍚庝竴涓〃鏍兼病鏈夊彸闂磋窛 */ } </style> - diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/inventoryWarning/transitionChart/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/inventoryWarning/transitionChart/index.vue index 57f6cd9..5bd9d3c 100644 --- a/LA24030_LuLiPackageLine_Web/src/views/main/inventoryWarning/transitionChart/index.vue +++ b/LA24030_LuLiPackageLine_Web/src/views/main/inventoryWarning/transitionChart/index.vue @@ -271,13 +271,13 @@ let timeInter: any = null; // 椤甸潰鍔犺浇鏃� onMounted(() => { - initEchartsResize(); + // initEchartsResize(); - timeInter = setInterval(() => { - nextTick(() => { - handleQuerywmsStockBoardabc('1'); - }); - }, 15000); //璋冪敤棰戠巼鏀逛负 15绉掍竴娆℃煡璇€�� + // timeInter = setInterval(() => { + // nextTick(() => { + // handleQuerywmsStockBoardabc('1'); + // }); + // }, 15000); //璋冪敤棰戠巼鏀逛负 15绉掍竴娆℃煡璇€�� }); -- Gitblit v1.9.3