2025-03-11 09:45:29 +08:00

309 lines
9.1 KiB
Vue
Raw 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>
<!-- <table>
<tr width="50%">
<td>原条码:</td>
<td>
<u-input placeholder="请扫描原条码" :border="true" :focus="focusBarCode" v-model="barCode" />
</td>
</tr>
<tr>
<span class="span1">物料名称:</span>
<td class="td1">
<u-input placeholder="物料名称" :border="true" disabeled="true" :disabled="true"
v-model="materialName" />
</td>
</tr>
<tr>
<td>物料编码:</td>
<td>
<u-input placeholder="物料编码" :border="true" :disabled="true" v-model="materialSpc" />
</td>
<td>原条码数量:</td>
<td>
<u-input placeholder="原条码数量" :border="true" :disabled="true" v-model="oldQty" />
</td>
</tr>
<tr>
<td>打印机:</td>
<td>
<uni-combox :candidates="XiaLaData" placeholder="请选择打印机" v-model="printer" :border="true" />
</td>
<td>物料数拆:</td>
<td>
<u-input placeholder="物料数量" :border="true" :focus="focusMaterialQty" v-model="Qty" />
</td>
</tr>
<tr>
<td><switch :checked="ischecked" @change="changeischecked" /><td>物料数量拆</td></td>
<td><button type="primary" size="mini" @click="splict">拆分</button></td>
<td><button type="warn" size="mini" @click="print">打印</button></td>
</tr>
</table> -->
<u-form class="firstform">
<u-form-item>
<p>原条码:</p>
<u-input placeholder="请扫描原条码" :border="true" :focus="focusBarCode" v-model="barCode"
@confirm="searchBarCodeInFo" />
</u-form-item>
<u-form-item>
<p>物料名称:</p>
<u-input placeholder="物料名称" :border="true" disabeled="true" :disabled="true" v-model="materialName" />
</u-form-item>
<u-form-item>
<p>物料编码:</p>
<u-input placeholder="物料编码" disabeled="true" :border="true" :disabled="true" v-model="materialSpc" />
<p>原条码数量:</p>
<u-input placeholder="原条码数量" disabeled="true" :border="true" :disabled="true" v-model="oldQty" />
</u-form-item>
<!-- <tabel>
<tr>
<td>打印机:</td>
<td> <uni-combox :candidates="XiaLaData"
placeholder="请选择打印机"
v-model="printer"
:border="true"
/></td>
<td>
<span v-show="!ischecked">物料数拆:</span>
<span v-show="ischecked">条码数拆</span> </td>
<td> <u-input placeholder="物料数量" :border="true" :focus="focusMaterialQty"
v-model="Qty" type="number" style="width: 170px;"/>
</td>
</tr>
</tabel> -->
<u-form-item>
<p>打印机:</p>
<uni-combox :candidates="XiaLaData"
placeholder="请选择打印机"
:border="true"
@input="whichprinter"
v-model="printer"
/>
</u-form-item>
<u-form-item>
<span v-show="!ischecked">物料数拆:</span>
<span v-show="ischecked">条码数拆</span>
<u-input placeholder="物料数量" :border="true" :focus="focusMaterialQty"
v-model="Qty" type="number" style="width: 170px;"/>
</u-form-item>
<u-form-item>
<switch @change="changeischecked" :checked="ischecked" style="transform:scale(0.7)" />
<span v-if="!ischecked">物料数量拆</span>
<span v-show="ischecked">条码个数拆</span>
<button type="primary" size="mini" @click="getsplict">拆分</button>
<button type="warn" size="mini" @click="print">打印</button>
</u-form-item>
</u-form>
<uni-segmented-control :current="current" :values="items" :style-type="styleType" :active-color="activeColor"
@clickItem="onClickItem" />
<view v-if="current === 0">
<uni-z-table :style="{'height': tabH+'px'}" :tableData="matData" :columns="matColumns" :showBottomSum="true"
:rowNumbers="true" :pagination="true">
</uni-z-table>
</view>
</view>
</template>
<script>
//:checked="ischecked" 物料数量拆
export default {
data() {
return {
items: ['拆分履历'], //'材料列表',
current: 0,
activeColor: '#007aff', //分栏器的颜色
styleType: 'button',
tabH: 800,
matColumns: [{
title: '条码',
field: "materialPackingName",
width: 300,
sort: true,
align: "center"
},
{
title: '物料编码',
field: "materialSpecName",
width: 220,
sort: true,
align: "right"
},
{
title: '数量',
field: "qty", //BXX2205240004002
width: 180,
sort: true,
align: "right"
},
],
background: {
backgroundImage: 'linear-gradient(45deg, rgb(28, 187, 180), rgb(141, 198, 63))'
}, //返回按钮的样式
//-----------------------------------上面是样式需要的数据,下面是真正需要的数据
XiaLaData: [], //下拉框绑定的数据
matData: [], //后端传回来的绑定表格的数据
rangedata: [], //后端传回来的下拉框数据,一个对象数组
printer: "", //下拉框选择的具体打印机
//焦点和其他的一些数据
ischecked: false, //开关的初始状态
focusBarCode: true, //原条码
focusMaterialQty: false, //物料数拆
//双向绑定的数据
siteName: "", //数据库表的主键需要工厂
barCode: "", //条码
materialName: "", //物料名称
materialSpc: "", //物料编码
oldQty: "", //原条码数量
Qty: "", //物料数拆对应的数量
};
},
mounted() {
//挂载页面的时候就查询下拉框的数据,这是无参请求所以没参数
this.$MyRequest('/split/getprinter').then(res => {
if (res.data.success) {
this.rangedata = res.data.resultObj //接数据,是一个对象数组
for (let i = 0; i < this.rangedata.length; i++) {
let y = this.rangedata[i]["DESCRIPTION"] //取对象的描述字段
this.XiaLaData.push(y) //放进下拉框绑定的数据中
}
} else {
this.$showMessage(res.data.message)
}
}).catch(err => {
this.$showMessage("请检查网络或联系开发人员" + err)
})
},
methods: {
//分栏器的选中数值,展示不同的表格
onClickItem(e) {
if (this.current !== e.currentIndex) {
this.current = e.currentIndex
}
},
//开关按钮的选中状态
changeischecked() {
this.ischecked = !this.ischecked
},
//下拉框这里要获取到选取那个打印机
whichprinter(e){
/* for(let i=0;i<this.XiaLaData.length;i++){
if(this.printer != this.XiaLaData[i])
this.printer=""
else this.printer=e
} */
console.log(this.printer)
},
//焦点初始化,让页面所有的焦点同时只能存在一个
initfocus() {
this.focusBarCode = false
this.focusMaterialQty = false
},
//获取焦点的公共方法
getfocus(nextfocus) {
this.initfocus()
this[nextfocus]
this.$nextTick(() => { //vue是数据全部修改后才进行的视图更新哪nextTick函数就是为了拿到最新的数据还不懂的可以去百度
this[nextfocus] = true
})
},
//回车事件,获取条码的信息
searchBarCodeInFo() {
if (this.barCode == "") {
this.$showMessage("条码不能为空")
this.getfocus('focusBarCode') //重新聚焦到条码输入框
} else {
this.getBarCodeInFo() //获取条码信息
}
},
//获取条码信息的请求
getBarCodeInFo() {
this.$MyRequest('/split/getlist', {
materialPackingName: this.barCode
}).then(res => {
if (res.data.success) {
this.materialName = res.data.resultObj[0]["DESCRIPTION"] //获取物料名称
this.materialSpc = res.data.resultObj[0]["MATERIALSPECNAME"] //获取物料编码
this.oldQty = res.data.resultObj[0]["MATERIALQUANTITY"] //获取物料原数量
this.siteName = res.data.resultObj[0]["SITENAME"] //获取工厂名称,后续传回去
this.getfocus('focusMaterialQty') //焦点移动到拆分数量的输入框
} else {
this.$showMessage(res.data.message)
}
}).catch(err => {
this.$showMessage("请检查网络或者联系开发人员" + err)
})
},
//拆分回车按钮
getsplict() {
if (this.Qty >= this.oldQty) {
this.$showMessage("拆分数量不能大于原条码数量")
this.Qty = "" //清空数量
this.getfocus('focusMaterialQty') //重聚焦
} else {
this.splict()
}
},
//拆分请求
splict() {
this.$MyRequest('/split/getsplitbarcode', {
materialPackingName: this.barCode, //条码编号
materialQuantity: this.oldQty, //旧条码的数量
siteName: this.siteName, //工厂名
newMaterialQuantity: this.Qty, //新条码的数量
materialSpecName: this.materialSpc //物料编号
}).then(res => {
if (res.data.success) {
this.matData = res.data.resultObj //接后端的数据
console.log(this.matData)
} else {
this.$showMessage(res.data.message)
}
}).catch(err => {
this.$showMessage("请检查网络或者联系开发人员" + err)
})
},
//打印请求
print() {
this.$MyRequest('', {
}).then(res => {
}).catch(err => {
})
}
}
}
</script>
<style lang="scss">
</style>