2025-03-11 17:57:17 +08:00

247 lines
6.6 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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
} from '../../../common/api.js'
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: "", //库位编码
siteName:"",
userId:""
}
},
mounted() {
this.GetMaxBillNo(); //获取最大单据号
let that=this
uni.getStorage({
key:"sitename",
success(res) {
that.siteName=res.data
}
})
uni.getStorage({
key:"userid",
success(res) {
that.userId=res.data
}
})
},
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', {
siteName: this.siteName, //工厂名
checkPlanName: this.checkPlanName, //盘点单号
materialPackingName: this.barCode, //物料编号
actLocation: kw, //新库位或者是旧库位
materialQuantity: this.checkQty, //盘点数量
operatorId: this.userId //登录用户
},'POST',true).then(res => {
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>