247 lines
6.6 KiB
Vue
Raw Normal View History

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