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.
 
 
 
 
 
 

385 lines
8.5 KiB

<template>
<page-meta root-font-size="16px"></page-meta>
<view class="">
<scroll-view :scroll-top="scrollTop" scroll-y="true" @scrolltoupper="upper" @scrolltolower="lower"
@scroll="scroll" class="scroll-detail">
<uni-swipe-action ref="swipeAction">
<uni-swipe-action-item :disabled="isDeliverAll" v-for="(item, index) in details" :key="item.id"
:right-options="options" @click="swipeClick($event, index)">
<view class="deliver_card">
<view class="uni-flex space-between card_info">
<view :class="item.deliverState===1? deliverState1: item.deliverState===3?deliverState3:deliverState4" class="deliverState">
<view class="content-text">
<image class="icon_normal" src="@/static/icons_ui/icon_qiju_num.svg"></image>
<text class="text_lightblue font_xs">器具号:</text>
<b>{{item.containerCode}}</b>
</view>
<view class="content-text">
<image class="icon_normal" src="@/static/icons_ui/icon_num.svg"></image>
<text class="text_lightblue font_xs">数量:</text>
<b>{{item.itemQty}}</b>
</view>
</view>
<view class="card_state tjpending">待处理</view>
<!-- <view class="card_state tjsent">已发货</view> -->
<!-- <view class="card_state tjnosend">不发货</view> -->
</view>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
</scroll-view>
<view class="new_btn_bot">
<button :disabled="submitting" class="new_save_btn" @click="submit()">提交</button>
</view>
<win-scan-button @goScan='openScanPopup'></win-scan-button>
<win-scan-by-code ref="scanPopup" title='扫描器具编号' @getScanCode='getScanContainerCode' ></win-scan-by-code>
<comMessage ref="comMessage"></comMessage>
</view>
</template>
<script>
import {
getJisDeliverDetail,
takeJisDeliverJob,
cancelTakeJisDeliverJob,
finshJisDeliverJob
} from '@/api/index.js';
import {
getJobStatuStyle,
getJobStatuDesc,
compare,
showConfirmMsg,
goHome,
getCurrDate,
toYYYY_MM_DD
} from '@/common/basic.js';
import winScanButton from '@/mycomponents/wincom/winScanButton.vue'
import winScanByCode from '@/mycomponents/wincom/winScanByCode.vue'
import comMessage from '@/mycomponents/common/comMessage.vue'
export default {
name: 'deliverRandom',
components: {
winScanButton,
winScanByCode,
comMessage
},
data() {
return {
scrollTop: 0,
old: {
scrollTop: 0
},
pageSize: 100,
pageIndex: 1,
isDeliverAll: false,
deliverState1: 'deliverState1',
deliverState3: 'deliverState3',
deliverState4: 'deliverState4',
submitting: false,
options: [{
text: '不发',
style: {
backgroundColor: '#F56C6C',
}
}],
details: [],
containerCode: ''
};
},
props: {
},
//返回首页
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
statusStyle: function(val) {
return getJobStatuStyle(val);
},
statusColor: function(val) {
return getJobStatuDesc(val);
},
},
mounted: function() {
console.log('isOrderDeliver', this.isOrderDeliver == true ? '是' : '否')
},
onLoad: function(param) {
this.isDeliverAll = param.isDeliverAll === 'true' ? true : false;
//this.initData();
this.id = param.id;
if (param.jobStatus == 1) {
this.receive((callback => {
this.received = true;
this.getDetail();
}));
} else {
this.getDetail();
}
},
onBackPress(e) {
this.goBack();
return true;
},
//返回首页
onNavigationBarButtonTap(e) {
if (e.index === 0) {
let items = this.details.filter(r => r.deliverState > 1);
if (items.length > 0) {
showConfirmMsg('已经有扫描的器具,是否仍有返回首页?', confirm => {
if (confirm) {
goHome();
}
});
} else {
goHome();
}
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
openScanPopup() {
this.$refs.scanPopup.openScanPopup()
},
getDetail() {
uni.showLoading({
title: "加载中...",
mask: true
});
let that = this;
let params = {
id: that.id,
};
getJisDeliverDetail(params)
.then(res => {
that.datacontent = res;
that.details = res.details;
if (res.details != null) {
res.details.forEach(r => {
r.deliverState = 1
})
that.defaultItem = res.details[0]; //取第一条盘点明细,做为新增明细的库存状态
}
uni.hideLoading();
}).catch(err => {
this.showMessage(err.message);
this.hideLoading();
});;
},
// //扫描器具号containerCode
// getScanContainerCode(result) {
// if (result.data.code === undefined) {
// this.showMessage('未解析到器具号');
// } else {
// let code = result.data.code;
// let data = this.details.find(r => r.containerCode === code);
// if (data != null) {
// data.deliverState = 3;
// this.$forceUpdate();
// } else {
// this.showMessage('当前任务中未查找到器具[' + code + ']');
// }
// }
// },
//扫描器具号containerCode
getScanContainerCode(containerCode) {
let code = containerCode;
let data = this.details.find(r => r.containerCode === code);
if (data != null) {
data.deliverState = 3;
this.$forceUpdate();
} else {
this.showMessage('当前任务中未查找到器具[' + code + ']');
}
},
receive(callback) {
let params = {
id: this.id,
};
takeJisDeliverJob(params)
.then(res => {
callback();
})
.catch(err => {
this.showMessage(err.message)
});
},
submit() {
let items = this.details.filter(r => r.deliverState === 1);
if (items.length > 0) {
this.showMessage('还有未扫描的器具不可以提交');
} else {
this.submitting = true;
uni.showLoading({
title: "提交中...",
mask: true
});
uni.hideLoading();
this.submitting = false;
this.details.forEach(r => {
r.status = r.deliverState
})
this.datacontent.details = this.details;
let params = JSON.stringify(this.datacontent);
finshJisDeliverJob(this.id, params)
.then(res => {
setTimeout(() => {
if (this.isDeliverAll) {
uni.navigateTo({
url: './deliverAll'
})
} else {
uni.navigateTo({
url: './deliverMany'
})
}
}, 1000)
this.showMessage('提交成功');
this.hideLoading();
})
.catch(err => {
this.showMessage(err.message);
this.hideLoading();
});
}
},
goBack() {
if (this.details != null) {
let items = this.details.filter(r => r.deliverState > 1);
if (items.length > 0) {
showConfirmMsg('已经有扫描的器具,是否仍有返回?', confirm => {
if (confirm) {
this.back();
}
});
} else {
this.back();
}
}
},
back() {
if (this.isDeliverAll) {
uni.navigateTo({
url: './deliverAll'
})
} else {
uni.navigateTo({
url: './deliverMany'
})
}
},
swipeClick(e, index) {
let {
content
} = e;
if (content.text === '不发') {
let data = this.details.find((item, i) => {
return i === index
})
if (data != null) {
data.deliverState = 4;
this.$forceUpdate();
}
}
},
showMessage(message) {
this.$refs.comMessage.showMessage(message);
},
hideLoading() {
},
upper: function(e) {
// console.log(e)
},
lower: function(e) {
// console.log(e)
},
scroll: function(e) {
// console.log(e)
this.old.scrollTop = e.detail.scrollTop;
},
}
};
</script>
<style scoped lang="scss">
.display-input {
padding: 5rpx 5rpx;
}
/deep/ .input-value {
font-size: 16px;
}
/deep/ .uni-collapse-item__title-text {
font-size: 16px;
}
// .deliverState1 {
// background-color: white;
// }
// .deliverState3 {
// background-color: aquamarine;
// }
// .deliverState4 {
// background-color: #ff0000;
// }
.content-box {
flex: 1;
/* #ifdef APP-NVUE */
justify-content: center;
/* #endif */
height: 60px;
line-height: 30px;
padding: 2px 0px;
position: relative;
background-color: #fff;
border-bottom-color: #f5f5f5;
border-bottom-width: 1px;
border-bottom-style: solid;
}
.content-text {
padding: 0px 10px;
}
/deep/ .uni-swipe_button {
// height: 60px;
justify-content: center;
margin-top: 20rpx;
}
</style>