2025-03-10 13:49:13 +08:00
|
|
|
|
<template>
|
|
|
|
|
<view>
|
|
|
|
|
<u-navbar back-text="返回" title="散料盘点" :background="background"></u-navbar>
|
|
|
|
|
<view>
|
|
|
|
|
<table style="width: 100%; margin-top: 1ch;">
|
|
|
|
|
<tr>
|
|
|
|
|
<td>条 码:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="请扫描条码" :border="true" v-model="barCode" :focus="focusBarCode"
|
|
|
|
|
@confirm="searchByBarcode" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>物料编码:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="" :disabled="true" :border="true" v-model="materialCode" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>物料描述:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="" :disabled="true" :border="true" v-model="materialDescription" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>账面数量:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="" :disabled="true" :border="true" v-model="QTY" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>库位编码:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="" :disabled="true" :border="true" v-model="Kw" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>新库位:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="" :border="true" v-model="newKw" :focus="focusNewKw" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>盘点数量:</td>
|
|
|
|
|
<td>
|
|
|
|
|
<u-input placeholder="" :border="true" v-model="checkQty" :focus="focusQty" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><button type="warn" size="mini" @click="clear">清除</button></td>
|
|
|
|
|
<td><button type="primary" size="mini" @click="submit">确认</button></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {
|
|
|
|
|
getdata
|
2025-03-11 17:57:17 +08:00
|
|
|
|
} from '../../../common/api.js'
|
2025-03-10 13:49:13 +08:00
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
background: {
|
|
|
|
|
backgroundImage: 'linear-gradient(45deg, rgb(28, 187, 180), rgb(141, 198, 63))'
|
|
|
|
|
}, //返回按钮的样式
|
|
|
|
|
//分栏器的样式
|
|
|
|
|
styles: [{
|
|
|
|
|
value: 'button',
|
|
|
|
|
text: '按钮',
|
|
|
|
|
checked: true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: 'text',
|
|
|
|
|
text: '文字'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
colors: ['#007aff', '#4cd964', '#dd524d'],
|
|
|
|
|
|
|
|
|
|
colorIndex: 0,
|
|
|
|
|
activeColor: '#007aff',
|
|
|
|
|
styleType: 'text',
|
|
|
|
|
//---------------------------------------- 分割线上方都是引用的外部的组件使用的样式,下方才是是使用的数据
|
|
|
|
|
checkPlanDescription: "", //盘点描述
|
|
|
|
|
newKw: "", //新库位
|
|
|
|
|
checkQty: "", //盘点数量
|
|
|
|
|
checkPlanName: "", //盘点单号
|
|
|
|
|
barCode: "", //条码
|
|
|
|
|
focusBarCode: false, //条码焦点
|
|
|
|
|
focusNewKw: false, //新库位焦点
|
|
|
|
|
focusQty: false, //盘点数量焦点
|
|
|
|
|
//---------------------------仅展示的数据
|
|
|
|
|
materialCode: "", //物料编码
|
|
|
|
|
materialDescription: "", //物料描述
|
|
|
|
|
QTY: "", //账面数量
|
|
|
|
|
Kw: "", //库位编码
|
2025-03-11 17:57:17 +08:00
|
|
|
|
siteName:"",
|
|
|
|
|
userId:""
|
2025-03-10 13:49:13 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.GetMaxBillNo(); //获取最大单据号
|
2025-03-11 17:57:17 +08:00
|
|
|
|
let that=this
|
|
|
|
|
uni.getStorage({
|
|
|
|
|
key:"sitename",
|
|
|
|
|
success(res) {
|
|
|
|
|
that.siteName=res.data
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
uni.getStorage({
|
|
|
|
|
key:"userid",
|
|
|
|
|
success(res) {
|
|
|
|
|
that.userId=res.data
|
|
|
|
|
}
|
|
|
|
|
})
|
2025-03-10 13:49:13 +08:00
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
//焦点初始化,让页面所有的焦点同时只能存在一个
|
|
|
|
|
initfocus() {
|
|
|
|
|
this.focusCheckPlanName = false //单号焦点
|
|
|
|
|
this.focusBarCode = false //条码焦点
|
|
|
|
|
this.focusNewKw = false //新库位焦点
|
|
|
|
|
this.focusQty = false //盘点数量焦点
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取焦点的公共方法
|
|
|
|
|
getfocus(nextfocus) {
|
|
|
|
|
this.initfocus()
|
|
|
|
|
this[nextfocus] //不能用this.nextfocus
|
|
|
|
|
this.$nextTick(() => { //vue是数据全部修改后才进行的视图更新,使用nextTick函数就是为了在下次dom节点更新之前拿到最新的数据,还不懂的可以去百度
|
|
|
|
|
this[nextfocus] = true
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//扫描条码回车搜索
|
|
|
|
|
searchByBarcode() {
|
|
|
|
|
if (this.barCode != "") {
|
|
|
|
|
this.getBarCodeInfo() //获取该条码的全部信息
|
|
|
|
|
} else {
|
|
|
|
|
this.$showMessage("条码不能为空")
|
|
|
|
|
this.getfocus('focusBarCode') //重新聚焦到条码框
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//通过单个条码搜索信息
|
|
|
|
|
getBarCodeInfo() {
|
|
|
|
|
this.$MyRequest('/check/getbarcode', {
|
|
|
|
|
materialPackingName: this.barCode
|
|
|
|
|
}).then(res => {
|
|
|
|
|
if (res.data.success) {
|
|
|
|
|
this.materialCode = res.data.resultObj[0]["MATERIALSPECNAME"] //物料编码
|
|
|
|
|
this.materialDescription = res.data.resultObj[0]["DESCRIPTION"] //物料描述
|
|
|
|
|
this.QTY = res.data.resultObj[0]["MATERIALQUANTITY"] //账面数量
|
|
|
|
|
this.Kw = res.data.resultObj[0]["SYSLOCATION"] //库位
|
|
|
|
|
} else {
|
|
|
|
|
this.$showMessage(res.data.message)
|
|
|
|
|
}
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
this.$showMessage(err) //提示错误
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//确认按钮的提交事件
|
|
|
|
|
submit() {
|
|
|
|
|
if (this.checkQty < 0 || this.checkQty == "") {
|
|
|
|
|
this.$showMessage("盘点数量不能为空或负")
|
|
|
|
|
this.checkQty = "" //清空盘点数量
|
|
|
|
|
this.getfocus('focusQty') //重新聚焦
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
if (this.newKw == "") {
|
|
|
|
|
let oldkw = this.Kw //当新库位为空的时候传旧的库位编码进去
|
|
|
|
|
this.sendCheckedPlan(oldkw) //调用方法
|
|
|
|
|
} else {
|
|
|
|
|
this.sendCheckedPlan(this.newKw) //传新的库位编码
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//清除按钮
|
|
|
|
|
clear() {
|
|
|
|
|
this.barCode = ""
|
|
|
|
|
this.QTY = ""
|
|
|
|
|
this.Kw = ""
|
|
|
|
|
this.materialCode = ""
|
|
|
|
|
this.materialDescription = ""
|
|
|
|
|
this.newKw = ""
|
|
|
|
|
this.checkQty = ""
|
|
|
|
|
this.getfocus('focusBarCode') //重新聚焦
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
GetMaxBillNo() {
|
|
|
|
|
this.$MyRequest('/check/MaxBillNo', {
|
|
|
|
|
billType: 'BitsPD' //散料盘点单据类型
|
|
|
|
|
}).then(res => {
|
|
|
|
|
if (res.data.success) {
|
|
|
|
|
//console.log(res.data.resultObj);
|
|
|
|
|
this.checkPlanName = res.data.resultObj;
|
|
|
|
|
console.log(this.checkPlanName);
|
|
|
|
|
} else {
|
|
|
|
|
this.$showMessage(res.data.message)
|
|
|
|
|
}
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
this.$showMessage(err);
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//盘点结果发送
|
|
|
|
|
sendCheckedPlan(kw) {
|
|
|
|
|
this.$MyRequest('/check/BitsCheckConfirm', {
|
2025-03-11 17:57:17 +08:00
|
|
|
|
siteName: this.siteName, //工厂名
|
2025-03-10 13:49:13 +08:00
|
|
|
|
checkPlanName: this.checkPlanName, //盘点单号
|
|
|
|
|
materialPackingName: this.barCode, //物料编号
|
|
|
|
|
actLocation: kw, //新库位或者是旧库位
|
|
|
|
|
materialQuantity: this.checkQty, //盘点数量
|
2025-03-11 17:57:17 +08:00
|
|
|
|
operatorId: this.userId //登录用户
|
|
|
|
|
},'POST',true).then(res => {
|
2025-03-10 13:49:13 +08:00
|
|
|
|
if (res.data.success) {
|
|
|
|
|
this.barCode = "" //清空条码
|
|
|
|
|
this.newKw = "" //清空库位
|
|
|
|
|
this.checkQty = "" //清空盘点数量
|
|
|
|
|
//只读输入框的清空
|
|
|
|
|
this.materialCode = ""
|
|
|
|
|
this.materialDescription = ""
|
|
|
|
|
this.QTY = ""
|
|
|
|
|
this.Kw = ""
|
|
|
|
|
//下面重聚焦
|
|
|
|
|
this.getfocus('focusBarCode')
|
|
|
|
|
this.$showMessage(res.data.message)
|
|
|
|
|
} else {
|
|
|
|
|
this.$showMessage(res.data.message)
|
|
|
|
|
}
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
this.$showMessage("err")
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
|
|
|
|
|
</style>
|
2025-03-11 17:57:17 +08:00
|
|
|
|
|