You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
275 lines
6.7 KiB
275 lines
6.7 KiB
1 year ago
|
<template>
|
||
|
<!-- <page-meta root-font-size="18px"></page-meta> -->
|
||
|
<view class="">
|
||
|
<com-blank-view @goScan='openScanPopup' v-if="containerNumber==''"></com-blank-view>
|
||
|
|
||
|
<my-paging v-show="containerNumber!=''" ref="paging" v-model="dataList" @query="queryList">
|
||
|
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
||
|
<template #top>
|
||
|
<view v-if="containerNumber!=''">
|
||
|
<containerInfo :itemDetail="containerInfo" v-if="containerNumber"></containerInfo>
|
||
|
<u-line />
|
||
|
<z-tabs :list="tabList" @change="tabChange" />
|
||
|
</view>
|
||
|
|
||
|
</template>
|
||
|
<view class="" style="padding-bottom: 50rpx;">
|
||
|
<view v-if="tabIndex == 0" v-for="(item, index) in dataList">
|
||
|
<comLocationDetailCard :isShowPack="false" :dataContent="item" style='margin: 10rpx;'>
|
||
|
</comLocationDetailCard>
|
||
|
</view>
|
||
|
<view v-if="tabIndex == 1" v-for="(item, index) in dataList">
|
||
|
<comLocationDetailCard :dataContent="item" style='margin: 10rpx;'></comLocationDetailCard>
|
||
|
</view>
|
||
|
</view>
|
||
|
|
||
|
</my-paging>
|
||
|
|
||
|
、
|
||
|
<win-scan-button @goScan='openScanPopup' v-if="containerNumber!=''"></win-scan-button>
|
||
|
<win-scan-item ref="scanPopup" title='器具代码' @getScanCode='getScanCode'>
|
||
|
</win-scan-item>
|
||
|
<show-modal ref="modal"></show-modal>
|
||
|
<comMessage ref="comMessage"></comMessage>
|
||
|
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import {
|
||
|
getBalanceByContainerNumber,
|
||
|
getBalanceByContainerNumberGroup,
|
||
|
getContainerByNumber
|
||
|
} from '@/api/request2.js';
|
||
|
|
||
|
import {
|
||
|
maxPageSize,
|
||
|
goHome
|
||
|
} from '@/common/basic.js';
|
||
|
|
||
|
import locationInfo from '@/mycomponents/location/locationInfo.vue'
|
||
|
import comBlankView from '@/mycomponents/common/comBlankView.vue'
|
||
|
import winScanButton from '@/mycomponents/scan/winScanButton.vue'
|
||
|
import comMessage from '@/mycomponents/common/comMessage.vue'
|
||
|
import comLocationDetailCard from '@/pages/query/coms/comLocationDetailCard.vue'
|
||
|
import winScanItem from '@/mycomponents/scan/winScanItem.vue'
|
||
|
import containerInfo from '@/mycomponents/container/containerInfo.vue'
|
||
|
|
||
|
export default {
|
||
|
name: 'location',
|
||
|
components: {
|
||
|
locationInfo,
|
||
|
comBlankView,
|
||
|
winScanButton,
|
||
|
comMessage,
|
||
|
comLocationDetailCard,
|
||
|
winScanItem,
|
||
|
containerInfo
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
containerInfo: {},
|
||
|
containerNumber: '',
|
||
|
summarys: [],
|
||
|
balances: [],
|
||
|
// 每页数据量
|
||
|
pageSize: 1000,
|
||
|
// 当前页
|
||
|
pageCurrent: 1,
|
||
|
// 数据总量
|
||
|
scrollTop: 0,
|
||
|
old: {
|
||
|
scrollTop: 0
|
||
|
},
|
||
|
|
||
|
detailList: [],
|
||
|
summarysList: [],
|
||
|
dataList: [],
|
||
|
tabList: ['汇总', '明细'],
|
||
|
tabIndex: 0,
|
||
|
};
|
||
|
},
|
||
|
onLoad() {},
|
||
|
onNavigationBarButtonTap(e) {
|
||
|
if (e.index === 0) {
|
||
|
goHome();
|
||
|
}
|
||
|
},
|
||
|
filters: {
|
||
|
},
|
||
|
mounted() {
|
||
|
this.openScanPopup()
|
||
|
},
|
||
|
methods: {
|
||
|
openScanPopup() {
|
||
|
this.$refs.scanPopup.openScanPopup();
|
||
|
},
|
||
|
closeScanPopup() {
|
||
|
this.$refs.scanPopup.closeScanPopup();
|
||
|
},
|
||
|
getScanCode(code) {
|
||
|
this.containerNumber = '';
|
||
|
this.summarys = [];
|
||
|
this.balances = [];
|
||
|
this.occupieds = [];
|
||
|
this.getItemInfo(code);
|
||
|
},
|
||
|
|
||
|
getItemInfo(code) {
|
||
|
uni.showLoading({
|
||
|
title: "正在查询器具信息...",
|
||
|
mask: true
|
||
|
});
|
||
|
|
||
|
getContainerByNumber(code).then(res => {
|
||
|
uni.hideLoading();
|
||
|
if (res.data.list.length > 0) {
|
||
|
this.closeScanPopup();
|
||
|
this.containerNumber = res.data.list[0].number;
|
||
|
this.containerInfo = res.data.list[0];
|
||
|
this.tabChange(0)
|
||
|
} else {
|
||
|
this.showMessage('未查找到零件【' + code + '】');
|
||
|
}
|
||
|
|
||
|
}).catch(error => {
|
||
|
uni.hideLoading();
|
||
|
this.containerNumber = "";
|
||
|
this.showMessage(error);
|
||
|
})
|
||
|
},
|
||
|
|
||
|
getSummary(pageNo,pageSize) {
|
||
|
let that = this;
|
||
|
uni.showLoading({
|
||
|
title: "加载中...",
|
||
|
mask: true
|
||
|
});
|
||
|
var params = {
|
||
|
containerNumber: this.containerNumber,
|
||
|
pageNo: pageNo,
|
||
|
pageSize: pageSize
|
||
|
}
|
||
|
getBalanceByContainerNumberGroup(params).then(res => {
|
||
|
uni.hideLoading();
|
||
|
if (res.data.list.length > 0) {
|
||
|
this.summarysList = this.setShowList(res.data.list)
|
||
|
this.$refs.paging.complete(this.summarysList);
|
||
|
} else {
|
||
|
this.$refs.paging.complete(false);
|
||
|
this.showMessage('未查找到器具【' + this.containerNumber + '】');
|
||
|
}
|
||
|
}).catch(error => {
|
||
|
this.$refs.paging.complete(false);
|
||
|
uni.hideLoading();
|
||
|
this.showMessage(error);
|
||
|
})
|
||
|
|
||
|
},
|
||
|
|
||
|
getDetailList(pageNo,pageSize) {
|
||
|
let that = this;
|
||
|
uni.showLoading({
|
||
|
title: "加载中...",
|
||
|
mask: true
|
||
|
});
|
||
|
var params = {
|
||
|
containerNumber: this.containerNumber,
|
||
|
pageNo: pageNo,
|
||
|
pageSize: pageSize
|
||
|
}
|
||
|
getBalanceByContainerNumber(params).then(res => {
|
||
|
uni.hideLoading();
|
||
|
if (res.data.total > 0) {
|
||
|
this.detailList = this.setShowList(res.data.list)
|
||
|
this.$refs.paging.complete(this.detailList);
|
||
|
} else {
|
||
|
this.$refs.paging.complete(false);
|
||
|
this.showMessage('未查找到器具【' + this.containerNumber + '】');
|
||
|
}
|
||
|
}).catch(error => {
|
||
|
this.$refs.paging.complete(false);
|
||
|
uni.hideLoading();
|
||
|
this.showMessage(error);
|
||
|
})
|
||
|
},
|
||
|
|
||
|
setShowList(list) {
|
||
|
var resultlist = [];
|
||
|
list.forEach(res => {
|
||
|
var temp = resultlist.find(res1 =>
|
||
|
res1.itemCode == res.itemCode)
|
||
|
|
||
|
if (temp == undefined) {
|
||
|
var data = {
|
||
|
itemCode: res.itemCode,
|
||
|
qty: Number(res.qty),
|
||
|
uom: res.uom,
|
||
|
list: []
|
||
|
}
|
||
|
var item = {
|
||
|
packingNumber: res.packingNumber,
|
||
|
batch: res.batch,
|
||
|
uom: res.uom,
|
||
|
qty: Number(res.qty),
|
||
|
inventoryStatus: res.inventoryStatus,
|
||
|
}
|
||
|
data.list.push(item)
|
||
|
resultlist.push(data)
|
||
|
} else {
|
||
|
temp.qty += Number(res.qty)
|
||
|
var item = {
|
||
|
packingNumber: res.packingNumber,
|
||
|
batch: res.batch,
|
||
|
uom: res.uom,
|
||
|
qty: Number(res.qty),
|
||
|
inventoryStatus: res.inventoryStatus,
|
||
|
}
|
||
|
temp.list.push(item)
|
||
|
}
|
||
|
})
|
||
|
return resultlist;
|
||
|
},
|
||
|
|
||
|
getContentByTab(index,pageNo, pageSize) {
|
||
|
if (index === 0) {
|
||
|
this.getSummary(pageNo, pageSize);
|
||
|
} else if (index === 1) this.getDetailList(pageNo, pageSize)
|
||
|
|
||
|
},
|
||
|
|
||
|
upper: function(e) {
|
||
|
},
|
||
|
lower: function(e) {
|
||
|
},
|
||
|
tabChange(index) {
|
||
|
this.tabIndex = index;
|
||
|
this.$refs.paging.reload(true);
|
||
|
},
|
||
|
showMessage(message) {
|
||
|
this.$refs.comMessage.showWarningMessage(message, res => {
|
||
|
if (res) {
|
||
|
this.afterCloseMessage()
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
afterCloseMessage() {
|
||
|
this.$refs.scanPopup.getfocus();
|
||
|
},
|
||
|
queryList(pageNo, pageSize) {
|
||
|
console.log("加载", pageNo)
|
||
|
if (this.containerNumber != "") {
|
||
|
this.getContentByTab(this.tabIndex, pageNo, pageSize)
|
||
|
}
|
||
|
|
||
|
},
|
||
|
}
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<style scoped lang="scss">
|
||
|
page {
|
||
|
height: 100%;
|
||
|
}
|
||
|
</style>
|