<template>
|
<view class="wrap">
|
<view class="top">
|
<u-form label-position="left">
|
<u-form-item label="至库位号" label-width="180">
|
<input v-model="tolocationNo" type="text" style="text-align: left!important;font-size: 12px;"
|
placeholder="请选择" maxlength="64" :disabled="true" />
|
<u-button type="primary" size="medium" @click="seachLocationNo">选择</u-button>
|
</u-form-item>
|
</u-form>
|
<view class="row3 flex-row">
|
<view class="switch">
|
<u-switch v-model="isAuto"/>
|
<view style="padding-left: 10rpx;">自动提交</view>
|
</view>
|
</view>
|
</view>
|
<u-cell-group class="list" :border="false" v-if="scanInfo.id">
|
<view class="content">
|
<view class="row-list" style="padding-top: 8px;">
|
<view class="_content">
|
<u-button type="error" size="mini" @click="delScanInfo">删除</u-button>
|
</view>
|
</view>
|
<view class="row-list" style="padding-top: 8px;">
|
<view class="_label">编号:</view>
|
<view class="_content">{{ scanInfo.no }}</view>
|
</view>
|
<view class="row-list" style="padding-top: 8px;">
|
<view class="_label">SN号:</view>
|
<view class="_content">
|
<view v-for="(no,i) in scanInfo.snList">
|
{{ no }}
|
</view>
|
</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">物料编码:</view>
|
<view class="_content">{{ scanInfo.cusMaterialCode }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">包装尺寸:</view>
|
<view class="_content">{{ format(scanInfo.packSize,'pack_size') }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">包材:</view>
|
<view class="_content">{{ format(scanInfo.packMaterial,'pack_material') }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">数量(根):</view>
|
<view class="_content">{{ scanInfo.number }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">净重(kg):</view>
|
<view class="_content">{{ scanInfo.netWeight }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">毛重(kg):</view>
|
<view class="_content">{{ scanInfo.grossWeight }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">实际重量(kg):</view>
|
<view class="_content">{{ scanInfo.realWeight }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">差异重量(kg):</view>
|
<view class="_content">{{ scanInfo.differenceWeight }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">是否确认:</view>
|
<view class="_content">{{ scanInfo.isConfirm?'是':'否' }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">创建日期:</view>
|
<view class="_content">{{ scanInfo.createTime }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">更新日期:</view>
|
<view class="_content">{{ scanInfo.updateTime }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">创建人:</view>
|
<view class="_content">{{ scanInfo.createUser }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">更新人:</view>
|
<view class="_content">{{ scanInfo.updateUser }}</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">理论装箱数量:</view>
|
<view class="_content">{{ scanInfo.theoreticalNumber }}</view>
|
</view>
|
</view>
|
</u-cell-group>
|
<scan></scan>
|
<view class="form-footer" v-if="scanInfo.id&&tolocationNo">
|
<u-button class="btn" type="primary" @click="submit">提交</u-button>
|
</view>
|
</view>
|
</template>
|
<script>
|
import scan from "@/components/scan/scan.vue";
|
|
export default {
|
components: {
|
scan
|
},
|
data() {
|
return {
|
isAuto:false,
|
list: [],
|
tolocationNo: "CPK01",
|
scanInfo:{},
|
|
pack_size:[],
|
pack_material:[]
|
|
};
|
},
|
onLoad() {
|
//this.scanHandle({"part_no":"88.118.1/A0044193","package_code":"BZ0000000003","unit_meas":"跦","wdr":"*","lot_batch_no":"*","qty_arrived":12});
|
},
|
onShow() {
|
|
let that = this
|
|
uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
|
uni.$on('scan', function(data) {
|
console.log('onscan');
|
//扫码成功后的回调,你可以写自己的逻辑代码在这里
|
console.log('扫码结果:', data.code);
|
const result = JSON.parse(data.code.replace(/[\r\n]/g, ""))
|
that.scanHandle(result)
|
})
|
setTimeout(()=>{
|
this.init()
|
},500)
|
},
|
onNavigationBarButtonTap(e) {
|
uni.scanCode({
|
success: res => {
|
try {
|
const result = JSON.parse(res.result)
|
|
} catch (e) {}
|
}
|
});
|
},
|
methods: {
|
delScanInfo(){
|
this.scanInfo={}
|
},
|
init(){
|
this.$u.api.dictData({
|
dictType: 'pack_size'
|
}).then(res => {
|
this.pack_size = res.data;
|
})
|
this.$u.api.dictData({
|
dictType: 'pack_material'
|
}).then(res => {
|
this.pack_material = res.data;
|
})
|
},
|
format(value,type){
|
this[type].forEach((obj) => {
|
if (obj.value === value) {
|
value = obj.label
|
}
|
})
|
return value
|
},
|
//至库位
|
seachLocationNo() {
|
uni.navigateTo({
|
url: '/pages/wareHouse/finishProductIn/locNoList'
|
})
|
},
|
//至库位号设置
|
setNo(no) {
|
this.tolocationNo = no
|
},
|
scanHandle(result){
|
if(!this.tolocationNo){
|
this.$u.toast('请选择至库位号')
|
return
|
}
|
this.$u.api.finishProductIn.getPackagingAndSizeByPackagingNo({
|
packagingNo:result.package_code,
|
}).then(res => {
|
if(res.data){
|
this.scanInfo={
|
packagingNo:result.package_code,
|
...res.data
|
}
|
if(this.isAuto){
|
this.submit()
|
}
|
}else{
|
this.$u.toast('无绑定信息')
|
}
|
})
|
},
|
submit() {
|
let that = this
|
that.$u.api.finishProductIn.addListJump({
|
inLocationNo:that.tolocationNo,
|
packagingNo:that.scanInfo.packagingNo,
|
}).then(res => {
|
if (res.code == 0) {
|
uni.showModal({
|
title: '提示',
|
content: '提交成功',
|
showCancel: false,
|
success: function() {
|
that.scanInfo={}
|
}
|
})
|
} else {
|
uni.showModal({
|
title: '提示',
|
content: '提交失败',
|
showCancel: false,
|
success: function() {
|
|
}
|
})
|
}
|
})
|
},
|
}
|
};
|
</script>
|
<style lang="scss" scoped>
|
.top{
|
padding:0 20rpx 25rpx;
|
border-bottom: 1px solid #eee;
|
.row3{
|
margin-top: 20rpx;
|
justify-content: space-between;
|
padding: 0 15rpx;
|
font-size: 30rpx;
|
.switch{
|
display: flex;
|
align-items: center;
|
}
|
.u-btn{
|
margin: initial;
|
background:#3281FF;
|
}
|
}
|
}
|
.list .content {
|
font-size: 12px;
|
background-color: #efefef;
|
box-sizing: border-box;
|
border-radius: 14rpx;
|
margin: 8px;
|
padding: 5px 10px;
|
box-shadow: none;
|
position: relative;
|
}
|
.scroll-list{
|
height: calc(100vh - var(--window-top) - var(--window-bottom) - 300rpx);
|
}
|
|
.row-list {
|
display: flex;
|
flex-direction: row;
|
}
|
|
.row-list ._label {
|
flex: 0.8;
|
color: #909399;
|
}
|
|
.row-list ._content {
|
flex: 1.5;
|
text-align: right;
|
}
|
|
.row-img {
|
position: absolute;
|
right: 2px;
|
top: 0px;
|
}
|
|
>>>.uni-input-input {
|
font-size: 12px;
|
}
|
|
::v-deep.u-input__input {
|
min-height: unset !important;
|
text-align: right;
|
}
|
</style>
|