| | |
| | | import request from '/@/utils/request'; |
| | | enum Api { |
| | | STORAGE_VIEW='/api/wmsPlaceContainerInfo/list', |
| | | // STORAGE_VIEW='/api/wmsPlaceContainerInfo/list', |
| | | STORAGE_VIEW='/api/wmsBasePlace/listView', |
| | | |
| | | } |
| | | |
| | | // å¢å åæ£ä¿¡æ¯ |
| | |
| | | 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', |
| | |
| | | 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', |
| | |
| | | export const pageWmsOrderPurchase = (params?: any) => |
| | | request({ |
| | | url: Api.PageWmsOrderPurchase, |
| | | method: 'post', |
| | | method: 'get', |
| | | data: params, |
| | | }); |
| | | |
| | |
| | | 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', |
| | |
| | | data: params, |
| | | }); |
| | | |
| | | // å页æ¥è¯¢POåæç» |
| | | // 88888888 |
| | | export const pageWmsOrderPurchaseDetails = (params?: any) => |
| | | request({ |
| | | url: Api.PageWmsOrderPurchaseDetails, |
| | |
| | | @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'; |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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"> |
| | |
| | | </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> |
| | |
| | | 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(); |
| | |
| | | const { themeConfig } = storeToRefs(storesThemeConfig); |
| | | const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes); |
| | | const state = reactive({ |
| | | orderNum:{}, |
| | | orderNum: {}, |
| | | global: { |
| | | homeChartOne: null, |
| | | homeChartTwo: null, |
| | |
| | | { |
| | | num1: '0', |
| | | num2: '0', |
| | | numA:0, |
| | | numA: 0, |
| | | num3: 'åºåºåæ°', |
| | | num4: 'fa fa-meetup', |
| | | color1: '#FF6462', |
| | |
| | | { |
| | | num1: '0', |
| | | num2: '0', |
| | | numA:0, |
| | | numA: 0, |
| | | num3: 'å
¥åºåæ°', |
| | | num4: 'iconfont icon-ditu', |
| | | color1: '#6690F9', |
| | |
| | | // label: 'æµ
ç²çº¢', |
| | | label: 'åºç¡æ°æ®', |
| | | value: 'åºä½ä¿¡æ¯', |
| | | route:'/wmsbase/wmsplace', |
| | | route: '/wmsbase/wmsplace', |
| | | // value: '2.1%OBS/M', |
| | | iconColor: '#F72B3F', |
| | | }, |
| | |
| | | // label: '深红(ç©çº¢)', |
| | | label: 'åæ®ç®¡ç', |
| | | value: '䏿¶å', |
| | | route:'/wmsOrder/wmsordermovement', |
| | | route: '/wmsOrder/wmsordermovement', |
| | | // value: '30â', |
| | | iconColor: '#91BFF8', |
| | | }, |
| | |
| | | // label: '淡紫红', |
| | | // value: '57%RH', |
| | | value: 'åºä½è§å¾', |
| | | route:'/reportCenter/storageView', |
| | | route: '/reportCenter/storageView', |
| | | iconColor: '#88D565', |
| | | }, |
| | | { |
| | |
| | | label: 'çç¹ç®¡ç', |
| | | value: 'çç¹åæ®', |
| | | // value: '107w', |
| | | route:'/Check/wmsinventorycheckorder', |
| | | route: '/Check/wmsinventorycheckorder', |
| | | iconColor: '#88D565', |
| | | }, |
| | | { |
| | |
| | | // label: 'ä¸ç´«ç½å
°çº¢', |
| | | value: 'è·è¸ªç æå°', |
| | | // value: '57DB', |
| | | route:'/printCenter/wmsstockquanPrint', |
| | | route: '/printCenter/wmsstockquanPrint', |
| | | iconColor: '#FBD4A0', |
| | | }, |
| | | // { |
| | |
| | | }); |
| | | |
| | | // æçº¿å¾ |
| | | 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 = { |
| | |
| | | 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 }, |
| | | }, |
| | |
| | | }, |
| | | 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: [ |
| | |
| | | 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 }, |
| | | }, |
| | |
| | | // { value: 2, stationName: 's6' }, |
| | | // ], |
| | | // data:dataAll.value.arr1 |
| | | data:[], |
| | | data: [], |
| | | }, |
| | | { |
| | | name: '䏿¶', |
| | |
| | | color: '#3bbc86', |
| | | }, |
| | | // data:dataAll.value.arr2 |
| | | data:[], |
| | | data: [], |
| | | }, |
| | | // { |
| | | // name: 'å¹³å', |
| | |
| | | }; |
| | | 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_')//è§£å³åæ¢é¡µé¢echarts䏿¾ç¤ºçé®é¢ |
| | | const chart = document.getElementById('homeBarRef'); |
| | | if (chart != null) chart.removeAttribute('_echarts_instance_'); //è§£å³åæ¢é¡µé¢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); |
| | | }; |
| | | |
| | |
| | | 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; |
| | | }); |
| | | |
| | | // ç±äºé¡µé¢ç¼ååå ï¼keep-alive |
| | |
| | | immediate: true, |
| | | } |
| | | ); |
| | | |
| | | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | |
| | | color: var(--el-text-color-primary); |
| | | border: 1px solid var(--next-border-color-light); |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | <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" |
| | |
| | | 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(); |
| | | |
| | |
| | | }; |
| | | /***************************************************[宿¶åºå导åº]ç»æ***************************************************/ |
| | | // 宿¶åºå页é¢å è½½æ¶ |
| | | |
| | | 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(); |
| | |
| | | <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) ) |
| | |
| | | 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 = '空åºä½'; |
| | |
| | | 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); |
| | | }; |
| | |
| | | margin: 5px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .stripe { |
| | |
| | | |
| | | /*æé©¬æ¡çº¹*/ |
| | | .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; |
| | |
| | | // margin-bottom: 149px; |
| | | |
| | | // } |
| | | |
| | | </style> |
| | | </style> |
| | |
| | | <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); |
| | | //è®¾ç½®èæ¯ æ£å¸¸ = 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'; //æ©è² æ£å¸¸ |
| | | 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 { |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | <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="è¯·éæ©éå®ç¶æ"> |
| | |
| | | </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; |
| | | }; |
| | | //è®¾ç½®èæ¯ æ£å¸¸ = 1, å°å = 2, ç¦åº = 3, ç¦å
¥ = 4, éå® = 5 |
| | | const setBgColor = (type: number): string => { |
| | | let color = ''; |
| | | switch (type) { |
| | | case 1: |
| | | color = '#F18201'; //æ©è² æ£å¸¸ |
| | | 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; |
| | | }; |
| | | |
| | | // åç»å |
| | |
| | | |
| | | //åºä½å¾å表 |
| | | 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åç» |
| | | // åæç
§ColumnNo åç» ç¬¬ä¸ç» 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> |
| | | |
| | | .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> |
| | |
| | | <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="请è¾å
¥æ¿ä»£åç©æç¼å·"/> |
| | | |
| | | </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="请è¾å
¥æ¿ä»£åç©æåç§°"/> |
| | | |
| | | </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="请è¾å
¥ngå
"></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: '请è¾å
¥ngå
', trigger: 'blur' }], |
| | | }; |
| | | |
| | | const ruleForm = ref({ |
| | | id: '', |
| | | completeSet: '', |
| | | packageSetup: '', |
| | | ngPackage: '', |
| | | }); |
| | | |
| | | const sourceEnum: any = ref([ |
| | | { |
| | | value: 'id', |
| | | text: 'ID', |
| | | }, |
| | | ]); |
| | | </script> |
| | | <style scoped> |
| | | :deep(.el-input), |
| | |
| | | :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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="请è¾å
¥ERPåå·" 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="请è¾å
¥ERPåºåå°" /> |
| | | </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åID" 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 { |
| | | // æ¥åæ¸
空 åæ¥è¯¢bug |
| | | 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 { |
| | | // æ¥åæ¸
空 åæ¥è¯¢bug |
| | | 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: '请è¾å
¥POåå·ï¼', 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(); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | //ç©æè¯¦æ
çtable 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ï¼åªè½æ°å¢DIç»´æ¤çç©æï¼"); |
| | | // return; |
| | | // } |
| | | getMaterialList(); |
| | | addMaterialVisible.value = true; |
| | | }; |
| | | |
| | | //åºç¡ç©ætableçref对象 |
| | | 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> |
| | |
| | | <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="请è¾å
¥POåå·" /> |
| | | </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="请è¾å
¥ASNåå·" /> |
| | | <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="请è¾å
¥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="项ç®ID"> |
| | | <el-input v-model="queryParams.projectId" clearable="" placeholder="请è¾å
¥é¡¹ç®ID"/> |
| | | |
| | | </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(); |
| | |
| | | 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'); // æ¿æ¢ä¸ºæ¨çAPIå°å |
| | | 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> |
| | | |
| | |
| | | </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> |
| | | |
| | |
| | | <!-- <el-table-column prop="poId" label="POåID" 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="å·²å建ASNæ°é" 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> |
| | | |
| | |
| | | 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 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; |
| | | //è·åç©æå表 |
| | |
| | | //------------------è·åç©æåè¡¨ç©ææç» |
| | | 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)); |
| | |
| | | <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="请è¾å
¥POåå·" /> |
| | | </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="请è¾å
¥POåå·" /> |
| | | <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" |
| | |
| | | :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="请è¾å
¥ERPåå·" /> |
| | | |
| | | </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="请è¾å
¥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="项ç®ID"> |
| | | <el-input v-model="queryParams.projectId" clearable="" placeholder="请è¾å
¥é¡¹ç®ID"/> |
| | | |
| | | </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>([]); |
| | |
| | | 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'); // æ¿æ¢ä¸ºæ¨çAPIå°å |
| | | 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> |
| | | |
| | |
| | | let timeInter: any = null; |
| | | // 页é¢å è½½æ¶ |
| | | onMounted(() => { |
| | | initEchartsResize(); |
| | | // initEchartsResize(); |
| | | |
| | | timeInter = setInterval(() => { |
| | | nextTick(() => { |
| | | handleQuerywmsStockBoardabc('1'); |
| | | }); |
| | | }, 15000); //è°ç¨é¢çæ¹ä¸º 15ç§ä¸æ¬¡æ¥è¯¢ã |
| | | // timeInter = setInterval(() => { |
| | | // nextTick(() => { |
| | | // handleQuerywmsStockBoardabc('1'); |
| | | // }); |
| | | // }, 15000); //è°ç¨é¢çæ¹ä¸º 15ç§ä¸æ¬¡æ¥è¯¢ã |
| | | }); |
| | | |
| | | |