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.
268 lines
7.1 KiB
268 lines
7.1 KiB
const {
|
|
checkMaterialCode,usedMaterial
|
|
} = require('../../api/api')
|
|
import Dialog from '@vant/weapp/dialog/dialog';
|
|
Page({
|
|
data:{
|
|
codeArr: [],
|
|
maxNum: 0,
|
|
isSubmit: true, //是否可提交,扫码失败弹窗关闭前不会重复请求接口
|
|
},
|
|
onLoad(e) {
|
|
// console.log(12121216666, e)
|
|
this.setData({
|
|
maxNum: e.num,
|
|
entryId: e.entryId,
|
|
warehouseId: e.warehouseId,
|
|
spec: e.spec,
|
|
materialType: e.materialType,
|
|
zb: e.zb,
|
|
materialModel: e.model,
|
|
})
|
|
this.ctx = wx.createCameraContext()
|
|
},
|
|
//数组去重
|
|
uniqueArr(arr) {
|
|
if (!Array.isArray(arr)) {
|
|
console.log('type error!')
|
|
return
|
|
}
|
|
var array = [];
|
|
for (var i = 0; i < arr.length; i++) {
|
|
if (array .indexOf(arr[i]) === -1) {
|
|
array .push(arr[i])
|
|
}
|
|
}
|
|
return array;
|
|
},
|
|
error(e) {
|
|
wx.showToast({
|
|
title: '你已设置不允许使用摄像头',
|
|
icon: 'error'
|
|
})
|
|
console.log('用户不允许使用摄像头时触发',e.detail)
|
|
},
|
|
//扫码
|
|
scanFun2(e){
|
|
let that = this;
|
|
let codeArr = this.data.codeArr
|
|
if(this.data.maxNum<=codeArr.length){
|
|
wx.showToast({
|
|
title: '条码数量不能超过'+ this.data.maxNum,
|
|
icon: 'error'
|
|
})
|
|
return
|
|
}
|
|
if(e.detail.result){
|
|
let result = e.detail.result.split(',');
|
|
if(result.length>1){
|
|
result = result[0]
|
|
}else{
|
|
result = e.detail.result
|
|
}
|
|
if(!this.data.isSubmit){
|
|
return
|
|
}
|
|
usedMaterial({
|
|
userId: wx.getStorageSync('userId'),
|
|
entryId: that.data.entryId,
|
|
barcode: result.trim(),
|
|
warehouseId: that.data.warehouseId,
|
|
flag: 1,
|
|
spec: that.data.spec,
|
|
materialType: that.data.materialType,
|
|
materialModel: that.data.materialModel,
|
|
}).then((res) => {
|
|
wx.hideLoading()
|
|
that.setData({
|
|
isSubmit: false
|
|
})
|
|
if (res.code == 200) {
|
|
// if(res.data){
|
|
// let newResult = res.data
|
|
let newResult = result.trim()
|
|
// newResult.forEach(item=>{
|
|
// codeArr.push(item)
|
|
// })
|
|
codeArr.push(newResult)
|
|
that.setData({
|
|
codeArr: that.uniqueArr(codeArr),
|
|
isSubmit: true
|
|
})
|
|
// }
|
|
// wx.showToast({
|
|
// title: '扫码成功',
|
|
// icon: 'none'
|
|
// })
|
|
// that.getUsedMaterialInfo()
|
|
} else {
|
|
wx.showModal({
|
|
title: '',
|
|
content: res.msg || res.errMsg,
|
|
showCancel: false,
|
|
complete: (res) => {
|
|
that.setData({
|
|
isSubmit: true
|
|
})
|
|
}
|
|
})
|
|
// wx.showToast({
|
|
// title: res.msg || res.errMsg,
|
|
// icon: 'none'
|
|
// })
|
|
}
|
|
})
|
|
// checkMaterialCode({
|
|
// userId: wx.getStorageSync('userId'),
|
|
// entryId: that.data.entryId,
|
|
// barcode: result,
|
|
// warehouseId: that.data.warehouseId,
|
|
// flag: 1,
|
|
// spec: that.data.spec,
|
|
// materialType: that.data.materialType,
|
|
// zb: that.data.zb
|
|
// }).then((res) => {
|
|
// that.setData({
|
|
// isSubmit: false
|
|
// })
|
|
// if (res.code == 200) {
|
|
// if(res.data){
|
|
// let newResult = res.data
|
|
// newResult.forEach(item=>{
|
|
// codeArr.push(item)
|
|
// })
|
|
// // codeArr.push(newResult)
|
|
// that.setData({
|
|
// codeArr: that.uniqueArr(codeArr),
|
|
// isSubmit: true
|
|
// })
|
|
// }
|
|
// } else {
|
|
// const beforeClose = (action) =>
|
|
// new Promise((resolve) => {
|
|
// setTimeout(() => {
|
|
// if (action === 'confirm') {
|
|
// that.setData({
|
|
// isSubmit: true
|
|
// })
|
|
// resolve(true);
|
|
// }
|
|
// }, 300);
|
|
// });
|
|
// Dialog.alert({
|
|
// message: res.msg || res.errMsg,
|
|
// beforeClose
|
|
// });
|
|
// }
|
|
// })
|
|
}
|
|
},
|
|
//扫码
|
|
scanFun(e){
|
|
let that = this;
|
|
let codeArr = this.data.codeArr
|
|
if(this.data.maxNum<=codeArr.length){
|
|
wx.showToast({
|
|
title: '条码数量不能超过'+ this.data.maxNum,
|
|
icon: 'error'
|
|
})
|
|
return
|
|
}
|
|
if(e.detail.result){
|
|
let result = e.detail.result.split(',');
|
|
if(result.length>1){
|
|
result = result[0]
|
|
}else{
|
|
result = e.detail.result
|
|
}
|
|
if(!this.data.isSubmit){
|
|
return
|
|
}
|
|
checkMaterialCode({
|
|
userId: wx.getStorageSync('userId'),
|
|
entryId: that.data.entryId,
|
|
barcode: result.trim(),
|
|
warehouseId: that.data.warehouseId,
|
|
flag: 1,
|
|
spec: that.data.spec,
|
|
materialType: that.data.materialType,
|
|
materialModel: that.data.materialModel
|
|
// zb: that.data.zb
|
|
}).then((res) => {
|
|
that.setData({
|
|
isSubmit: false
|
|
})
|
|
if (res.code == 200) {
|
|
if(res.data){
|
|
let newResult = res.data
|
|
// newResult.forEach(item=>{
|
|
// codeArr.push(item)
|
|
// })
|
|
codeArr.push(newResult)
|
|
that.setData({
|
|
codeArr: that.uniqueArr(codeArr),
|
|
isSubmit: true
|
|
})
|
|
}
|
|
} else {
|
|
const beforeClose = (action) =>
|
|
new Promise((resolve) => {
|
|
setTimeout(() => {
|
|
if (action === 'confirm') {
|
|
that.setData({
|
|
isSubmit: true
|
|
})
|
|
resolve(true);
|
|
}
|
|
}, 300);
|
|
});
|
|
Dialog.alert({
|
|
message: res.msg || res.errMsg,
|
|
beforeClose
|
|
});
|
|
}
|
|
})
|
|
}
|
|
},
|
|
//删除
|
|
delCode(e){
|
|
let index = e.currentTarget.dataset.index
|
|
let codeArr = this.data.codeArr
|
|
codeArr.splice(index,1)
|
|
this.setData({
|
|
codeArr
|
|
})
|
|
},
|
|
//提交
|
|
submit(e){
|
|
let codeArr = this.data.codeArr
|
|
if(this.data.maxNum<codeArr.length){
|
|
wx.showToast({
|
|
title: '数量不能超过'+ this.data.maxNum,
|
|
icon: 'error'
|
|
})
|
|
return
|
|
}
|
|
var pages = getCurrentPages(); // 获取页面栈
|
|
var prevPage = pages[pages.length - 2]; // 上一个页面
|
|
prevPage.setData({
|
|
batchCode: codeArr.join(','),// 要设置的值
|
|
})
|
|
setTimeout(()=>{
|
|
prevPage.getBatchCode()
|
|
},300) //加延时是为了上一级页面的弹窗显示
|
|
wx.navigateBack({ delta: 1})
|
|
},
|
|
//返回
|
|
goBack(){
|
|
// var pages = getCurrentPages(); // 获取页面栈
|
|
// var prevPage = pages[pages.length - 2]; // 上一个页面
|
|
// // prevPage.setData({
|
|
// // batchCode: codeArr.join(','),// 要设置的值
|
|
// // })
|
|
// setTimeout(()=>{
|
|
// prevPage.getWarehouseList()
|
|
// },300) //加延时是为了上一级页面的弹窗显示
|
|
wx.navigateBack({ delta: 1})
|
|
}
|
|
}) |