Commit f75194fa authored by xiangzj's avatar xiangzj

采购入库

parent 35c7d9a4
<template>
<view>
<view class="listItemTitle">
<view>
<view class="item">入库批次:{{ item.CHARG }}</view>
<view class="item">物料编号:{{ item.MATNR }}</view>
<view class="item">物料描述:{{ item.MAKTX }}</view>
<view class="item">入库数量:{{ item.cardNum }}</view>
<view class="item">入库库位:{{ nlpla }}</view>
</view>
</view>
<view class="listBottom">
<view class="bottomTitle" @tap="show = !show">
<view class="desc">卷条码明细</view>
<view class="topIcons">
<view v-if="show">
<u-icon name="arrow-down" color="#aaa" size="32"></u-icon>
展开
</view>
<view v-else>
<u-icon name="arrow-up" color="#aaa" size="32"></u-icon>
收起
</view>
</view>
</view>
<view v-if="!show" class="bottomBox">
<view class="bottomItem" v-for="(ele, idx) in goodsList" v-if="ele.CHARG === item.CHARG">
<view class="items plNum">{{ ele.PLNR }}</view>
<view class="items">数量:{{ ele.TOMNG }}</view>
<view class="boxBtn">
<view class="items">生产日期:{{ ele.BLDAT }}</view>
<u-button class="botBtn" size="mini" type="primary" plain @click="deleGonds()">
<u-icon name="trash" size="28"></u-icon>
删除
</u-button>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import StickyNavBar from '@/components/StickyNavBar/index.vue';
import ContentLoadingMore from '@/components/ContentLoadingMore/index.vue';
import BottomBtn from '@/components/BottomBtn/index.vue';
export default {
components: {
StickyNavBar,
ContentLoadingMore,
BottomBtn
},
props: {
item: {
type: Object,
default: function () {
return {};
}
},
goodsList: {
type: Array ,
default: function () {
return [];
}
},
nlpla: {
type: String,
default: ''
}
},
data() {
return {
number: 0,
totalNum: 0,
show: true,
wxparams: '',
isFocus: false,
isDisabled: false,
chargaArr: []
};
},
created() {
},
methods: {
deleGonds() {
this.$emit('deleGonds',this.item)
},
}
};
</script>
<style lang="scss" scoped>
page {
background: #f8f8f8;
}
.btn {
padding: 20rpx;
background: #fff;
.topSearch {
margin-bottom: 20rpx;
}
}
.bottomBtn {
position: sticky;
padding: 20rpx;
display: flex;
justify-content: space-between;
background: #fff;
bottom: 0rpx;
margin-top: 20rpx;
.u-btn {
width: 300rpx;
}
}
.blue {
color: #3f9dcc;
}
.total {
background: #fff;
color: #000;
padding: 0rpx 40rpx;
display: flex;
justify-content: space-between;
font-size: 32rpx;
.line {
margin: 0px 10rpx;
}
}
.cardbox {
min-height: calc(100vh - 540rpx);
padding: 0rpx 20rpx;
margin-top: 20rpx;
}
.cardContent {
border-radius: 8px;
background: #fff;
}
.listItemTitle {
display: flex;
justify-content: space-between;
padding: 20rpx;
border-bottom: 2px solid #f8f8f8;
.u-btn {
width: 150rpx;
margin: 0px;
margin-top: 10rpx;
}
.item {
line-height: 50rpx;
color: #000;
font-size: 28rpx;
font-weight: 500;
word-break: break-all;
}
}
.listBottom {
.bottomTitle {
height: 80rpx;
position: relative;
.desc {
color: #bbb;
font-size: 24rpx;
line-height: 80rpx;
padding-left: 20rpx;
}
.topIcons {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
color: #aaa;
}
}
.bottomBox {
padding: 20rpx;
.bottomItem {
background: #f8f8f8;
padding: 20rpx;
margin-bottom: 20rpx;
.items {
color: #333;
font-size: 24rpx;
height: 40rpx;
line-height: 40rpx;
}
.plNum{
height: 80rpx;
word-break: break-all;
}
}
}
}
/deep/ .u-sticky {
top: 0 !important;
background: #fff;
}
.boxBtn{
display: flex;
justify-content: space-between;
/deep/.u-btn{
margin-right: 0 !important;
}
}
.botBtn{
}
</style>
\ No newline at end of file
......@@ -17,22 +17,23 @@
<view class="left">入库明细</view>
<view class="right">
批次数:
<text class="blue">{{ goodsList.length }}</text>
<text class="blue">{{ chargaArr.length }}</text>
<text class="line">|</text>
总数量:
<text class="blue">{{ totalNum }}</text>
</view>
</view>
</StickyNavBar>
<ContentLoadingMore class="cardbox" :list='goodsList'>
<view class="cardContent" v-for="(item, index) in goodsList">
<view class="listItemTitle">
<ContentLoadingMore class="cardbox" :list='chargaArr'>
<view class="cardContent" v-for="(item, index) in chargaArr">
<listItem :item="item" :goodsList="goodsList" :nlpla="nlpla" @deleGonds="deleGonds"/>
<!-- <view class="listItemTitle">
<view>
<view class="item">入库批次:{{ item.CHARG }}</view>
<view class="item">物料编号:{{ item.MATNR }}</view>
<view class="item">物料描述:{{ item.MAKTX }}</view>
<view class="item">入库数量:{{ item.ERFMG }}</view>
<view class="item">入库库位:{{ item.MATNR }}</view>
<view class="item">入库库位:{{ nlpla }}</view>
</view>
<u-button size="mini" type="primary" plain @click="deleGonds(index)">
<u-icon name="trash" size="28"></u-icon>
......@@ -55,13 +56,12 @@
</view>
<view v-if="!show" class="bottomBox">
<view class="bottomItem">
<view class="items">{{ item.CHARG }}</view>
<view class="items">{{ item.MATNR }}</view>
<view class="items">数量:{{ item.ERFMG }}</view>
<view class="items plNum">{{ item.PLNR }}</view>
<view class="items">数量:{{ item.TOMNG }}</view>
<view class="items">生产日期:{{ item.BLDAT }}</view>
</view>
</view>
</view>
</view> -->
</view>
</ContentLoadingMore>
<BottomBtn :btnArr="btnArr" @getBtnHandle="getBtnHandle"></BottomBtn>
......@@ -69,6 +69,7 @@
</template>
<script>
import listItem from "./listItem.vue"
import StickyNavBar from '@/components/StickyNavBar/index.vue';
import ContentLoadingMore from '@/components/ContentLoadingMore/index.vue';
import BottomBtn from '@/components/BottomBtn/index.vue';
......@@ -76,7 +77,8 @@ export default {
components: {
StickyNavBar,
ContentLoadingMore,
BottomBtn
BottomBtn,
listItem
},
data() {
return {
......@@ -101,19 +103,26 @@ export default {
],
goodsList: [],
isFocus: false,
isDisabled: false
isDisabled: false,
chargaArr: []
};
},
created() {
// this.getPlnr('10000820240325000001|10000320100');
},
methods: {
deleGonds(idx) {
this.goodsList.splice(idx, 1);
deleGonds(detail) {
this.goodsList.forEach((ele,idx) => {
if(detail.PLNR === ele.PLNR){
this.goodsList.splice(idx, 1);
}
});
this.totalNum = 0;
this.goodsList.forEach((ele) => {
this.totalNum += ele.ERFMG;
this.totalNum += ele.TOMNG - 0
ele.cardNum = 0
});
this.handleData()
},
getBtnHandle(row) {
this[row.way]();
......@@ -125,14 +134,10 @@ export default {
if (this.goodsList.length === 0) {
return;
}
console.log([
{
BLDAT: '20240325',
BUDAT: '20240325',
ZENCODE: 'A014',
ITEM: this.goodsList
}
]);
const data = JSON.parse(JSON.stringify(this.goodsList))
data.forEach(ele => {
ele.ERFMG = ele.TOMNG
});
this.$u.api.sapApi
.sapRrm([
{
......@@ -140,7 +145,7 @@ export default {
BUDAT: '20240325',
ZENCODE: 'A014',
TYPE: 'CG',
ITEM: this.goodsList
ITEM: data
}
])
.then((res) => {
......@@ -169,13 +174,12 @@ export default {
if (e) {
this.nlpla = e;
this.goodsList.forEach((ele) => {
this.totalNum += ele.ERFMG;
this.totalNum += ele.TOMNG-0;
ele.NLPLA = ele.NLPLA || this.nlpla;
});
}
},
getPlnr(plnr) {
this.totalNum = 0;
this.isDisabled = true;
this.$u.api.sapApi
.sapPlnr({
......@@ -184,11 +188,13 @@ export default {
.then((res) => {
if (res && res.RESULT.TYPE === 'S') {
this.goodsList = this.goodsList.concat(res.DATA);
this.totalNum = 0;
this.goodsList.forEach((ele) => {
this.totalNum += ele.ERFMG;
ele.NLPLA = ele.NLPLA || this.nlpla;
ele.PLNR = plnr
this.totalNum += ele.TOMNG - 0
ele.NLPLA = this.nlpla;
ele.cardNum = 0
});
this.handleData()
setTimeout(() => {
this.wxparams = '';
this.isFocus = true;
......@@ -198,12 +204,26 @@ export default {
setTimeout(() => {
this.isFocus = true;
this.isDisabled = false;
this.wxparams = '';
}, 1000);
this.$u.toast(res.RESULT.MESSAGE);
}
this.loading = false;
});
}
},
handleData(){
this.chargaArr = this.goodsList.filter((item, index, self) => {
return self.findIndex(t => t.CHARG === item.CHARG) === index;
});
this.chargaArr.forEach((ele,idx) => {
this.goodsList.forEach(item => {
if(ele.CHARG === item.CHARG){
ele.cardNum += (item.TOMNG - 0)
this.$set(this.chargaArr,idx,{...ele})
}
});
});
},
}
};
</script>
......@@ -253,6 +273,7 @@ page {
.cardContent {
border-radius: 8px;
background: #fff;
margin-bottom: 10rpx;
}
.listItemTitle {
display: flex;
......@@ -302,6 +323,10 @@ page {
height: 40rpx;
line-height: 40rpx;
}
.plNum{
height: 80rpx;
word-break: break-all;
}
}
}
}
......@@ -309,4 +334,5 @@ page {
top: 0 !important;
background: #fff;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment