<template>
|
<view>
|
<view class="cu-form-group margin-top">
|
<view class="title">托盘码</view>
|
<input v-model="billNo" placeholder="扫码 / 输入" name="input" @input="findCode()" focus>
|
<button v-model="matBtn" class="cu-btn bg-yellow" @click="toggle('right')"><text>+补充</text></button>
|
|
</view>
|
<view class="margin-top">
|
<uni-table border stripe emptyText="暂无更多数据">
|
<uni-tr>
|
<uni-th align="center" width="80">数量</uni-th>
|
<uni-th align="center" width="100">产品编码</uni-th>
|
<uni-th align="center" width="100">产品名称</uni-th>
|
<uni-th align="center" width="100">产品批号</uni-th>
|
<uni-th align="center" width="100">库位</uni-th>
|
<uni-th align="center" width="150">确认数量</uni-th>
|
</uni-tr>
|
<uni-tr v-for="(item, index) in locDetlData" :key="index">
|
<uni-td>{{item.count}}</uni-td>
|
<uni-td>{{item.matNo}}</uni-td>
|
<uni-td>{{item.matName}}</uni-td>
|
<uni-td>{{item.itemBatch}}</uni-td>
|
<uni-td>{{item.locNo}}</uni-td>
|
<uni-td align="center">
|
<button class ="cu-btn bg-orange margin-xs" @click="conf(index,item)">修改</button>
|
<button class ="cu-btn bg-red margin-xs" @click="remove(index,item)">删除</button>
|
</uni-td>
|
</uni-tr>
|
</uni-table>
|
</view>
|
<view class="flex solid-bottom padding justify-around">
|
<button class="cu-btn bg-yellow lg" @click="check">确 认</button>
|
<button class="cu-btn bg-grey lg" @click="reset">重 置</button>
|
</view>
|
<view>
|
<uni-popup ref="popup" background-color="#fff" style="width: 500rpx;">
|
<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
|
<view class="cu-form-group margin-top">
|
<text>补充产品</text>
|
</view>
|
<view class="cu-form-group margin-top">
|
<text class="title">产品ID</text>
|
<input type="text" v-model="matNo" placeholder="扫码 / 输入" name="input" autocomplete="off" focus @input="find()">
|
</view>
|
<view class="cu-form-group margin-top">
|
<text class="title">产品名称</text>
|
<input type="text" name="input" autocomplete="off" v-model="matName">
|
</view>
|
<view class="cu-form-group margin-top">
|
<text class="title">规格型号</text>
|
<input type="text" name="input" autocomplete="off" v-model="size">
|
</view>
|
<view class="cu-form-group margin-top">
|
<text class="title">单位</text>
|
<input type="text" name="input" autocomplete="off" v-model="unit">
|
</view>
|
<view class="cu-form-group margin-top">
|
<text class="title">数量</text>
|
<uni-number-box :min="0" :max="999" @change="countDom" v-model="count" />
|
</view>
|
<view class="flex solid-bottom padding justify-center">
|
<button class="cu-btn bg-yellow pda-btn2" @click="confirm">提取</button>
|
</view>
|
|
</view>
|
</uni-popup>
|
</view>
|
<view>
|
<!-- 提示信息弹窗 -->
|
<uni-popup ref="message" type="message">
|
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
|
</uni-popup>
|
</view>
|
<view>
|
<!-- 输入框示例 -->
|
<uni-popup ref="inputDialog" type="dialog">
|
<uni-popup-dialog ref="inputClose" mode="input" title="产品数量"
|
placeholder="请输入组托数量" @confirm="dialogInputConfirm">
|
<uni-number-box :min="0" :max="999" v-model="value" />
|
</uni-popup-dialog>
|
</uni-popup>
|
</view>
|
<!-- <view>
|
<view class="uni-padding-wrap uni-common-mt">
|
<view class="uni-btn-v">
|
<button type="default" @tap="noTitlemodalTap">无标题的modal</button>
|
</view>
|
</view>
|
</view> -->
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
msgType: '',
|
messageText: '',
|
matBtn:'',
|
souceData:[], // 初始化表格数据记录
|
locDetlData:[],
|
matNo:'',
|
matName:'',
|
size:'',
|
unit:'',
|
count:0,
|
type: '',
|
baseIP:'',
|
checkList:[],
|
sourceList:[],
|
billNo:'',
|
matData:[],
|
rowNum:'',
|
value:'0',
|
}
|
},
|
mounted(){
|
// 获取IP端口
|
const UIP = uni.getStorageSync('UIP');
|
this.baseIP = UIP
|
},
|
methods: {
|
// 提示窗口
|
messageToggle(type) {
|
this.msgType = type
|
this.messageText = '提取失败'
|
this.$refs.message.open()
|
},
|
// 根据托盘码查询
|
findCode() {
|
let that = this
|
if (that.billNo.length === 0 || that.billNo.length !== 8) {
|
return
|
}
|
let barCode = that.billNo
|
// 赋值前清空表格
|
that.locDetlData = []
|
uni.request({
|
url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/check/queryMatFromBarCode?barCode=" + barCode,
|
header: {
|
'content-type':'application/x-www-form-urlencoded',
|
'token':uni.getStorageSync('token')
|
},
|
data: {
|
barCode: barCode
|
},
|
method:'GET',
|
success(res) {
|
if (res.data.code === 200) {
|
that.locDetlData = res.data.data
|
if (res.data.data && res.data.data.length > 0) {
|
res.data.data.map(function(item){
|
that.souceData.push(item)
|
})
|
}
|
} else if (res.data.code === 403) {
|
uni.navigateBack({
|
delta: 1
|
})
|
} else {
|
that.messageToggle('error')
|
that.messageText = res.data.msg
|
}
|
}
|
})
|
},
|
// 点击补充的弹窗
|
toggle(type) {
|
this.type = type
|
// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
|
this.$refs.popup.open(type)
|
},
|
messageToggle(type) {
|
this.msgType = type
|
this.messageText = '提取失败'
|
this.$refs.message.open()
|
},
|
countDom(value) {
|
|
},
|
// 根据产品ID查询产品详情
|
find(){
|
let that = this
|
let thatId = that.matNo
|
if(that.matNo.length===0){
|
return;
|
}
|
uni.request({
|
url: that.baseHttp + that.baseIP + that.baseUrl + "/matCode/auth",
|
header: {
|
'content-type':'application/x-www-form-urlencoded',
|
'token':uni.getStorageSync('token')
|
},
|
data: {
|
id:thatId
|
},
|
method: 'POST',
|
success(res){
|
let data = res.data.data
|
if(res.data.code === 200){
|
if(data != null){
|
that.matName = data.matName
|
that.size = data.size
|
that.unit = data.unit
|
}
|
} else if (res.data.code ===403 ){
|
uni.navigateBack({
|
delta: 1
|
})
|
} else {
|
this.messageToggle('error')
|
this.messageText = res.data.msg
|
}
|
}
|
})
|
},
|
// 弹窗 确认补充
|
confirm(){
|
let that = this
|
let data = {
|
matNo:that.matNo,
|
matName:that.matName,
|
count:that.count
|
}
|
that.addTableData(data)
|
|
},
|
// 修改数量
|
conf(index,item){
|
this.$refs.inputDialog.open()
|
this.rowNum = index
|
if (item.count === undefined ) {
|
this.value = 0
|
}
|
},
|
// 修改数量弹窗
|
dialogInputConfirm(value) {
|
this.locDetlData[this.rowNum].count = this.value
|
this.messageToggle('success')
|
this.messageText = '修改成功'
|
},
|
// 移除物料
|
remove(index,item){
|
this.locDetlData.splice(index,1)
|
this.messageToggle('success')
|
this.messageText = '删除成功'
|
},
|
// 表格渲染
|
addTableData(data){
|
let that = this
|
if(data.matNo.length === 0){
|
that.messageToggle('error')
|
that.messageText = '提取失败'
|
return
|
}
|
var toPush = true
|
for (var j = 0; j < that.locDetlData.length; j++) {
|
if (data.matNo === that.locDetlData[j].matNo && data.locNo === that.locDetlData[j].locNo) {
|
toPush = false;
|
}
|
}
|
if (toPush) {
|
var pushData = {
|
locNo: that.locDetlData[0] ? that.locDetlData[0].locNo : null,
|
matNo: data.matNo,
|
count: data.count,
|
matName: data.matName
|
}
|
that.locDetlData.push(pushData);
|
}
|
that.$refs.popup.close()
|
},
|
// 重置
|
reset(){
|
this.billNo = ''
|
this.locDetlData = []
|
},
|
check(){
|
let that = this
|
if(that.billNo.length === 0) {
|
that.messageToggle('error')
|
that.messageText = '请 扫码 / 输入 托盘码'
|
return
|
}
|
if(that.billNo.length < 8) {
|
that.messageToggle('error')
|
that.messageText = '托盘码必须为8位'
|
return
|
}
|
if(that.locDetlData.length > 0) {
|
for(var i = 0; i < that.locDetlData.length; i++){
|
if (that.locDetlData[i].count === null || that.locDetlData[i].count === 0 ||
|
that.locDetlData[i].count === undefined) {
|
that.messageToggle('error')
|
that.messageText = that.locDetlData[i].matNo + '商品数量错误'
|
return
|
}
|
}
|
}
|
if (that.locDetlData.length > 0) {
|
that.locDetlData.map(function (item) {
|
that.checkList.push({
|
locNo: item.locNo,
|
matNo: item.matNo,
|
checkQty: item.count,
|
itemBatch: item.itemBatch
|
});
|
});
|
}
|
if (that.souceData.length > 0) {
|
that.souceData.map(function (item) {
|
that.sourceList.push({
|
locNo: item.locNo,
|
matNo: item.matNo,
|
count: item.count,
|
itemBatch: item.itemBatch
|
});
|
});
|
}
|
// this.noTitlemodalTap()
|
uni.request({
|
url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/stock/check",
|
header: {
|
'token':uni.getStorageSync('token')
|
},
|
data: JSON.stringify({
|
checkList: that.checkList
|
}),
|
method:'POST',
|
async:false,
|
success(res){
|
if(res.data.code === 200){
|
that.reset();
|
that.messageToggle('success')
|
that.messageText = '盘点成功'
|
} else if (res.data.code === 403) {
|
uni.navigateBack({
|
delta: 1
|
})
|
} else {
|
that.messageToggle('error')
|
that.messageText = res.data.msg
|
}
|
}
|
})
|
},
|
noTitlemodalTap: function (e) {
|
uni.showModal({
|
content: "是否确认盘点",
|
confirmText: "是",
|
cancelText: "否"
|
})
|
|
}
|
}
|
}
|
</script>
|
|
<style>
|
|
</style>
|