<template>
|
<view class="form">
|
<view class="form-base-info">
|
<view class="form-item">
|
<view class="title">托条码</view>
|
<view class="right">
|
<input type="text" :focus="HBarCodePackFocus" v-model="HBarCode_Pack"
|
@confirm="GetMeesageByBarCode_Pack(HBarCode_Pack)" />
|
</view>
|
<view class="right-icon">
|
<uni-icons class="right-icon" type="scan"
|
style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
|
@click="toScanCode"></uni-icons>
|
</view>
|
</view>
|
<!-- <view class="form-item">
|
<view class="title">条码</view>
|
<view class="right">
|
<input type="text" :focus="HBarCodeFocus" v-model="HBarCode" @confirm="GetMeesageByBarCode(HBarCode)" />
|
</view>
|
<view class="right-icon">
|
<uni-icons type="scan"
|
style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
|
@click="toScanCode2"></uni-icons>
|
</view>
|
</view> -->
|
</view>
|
<view class="tabs">
|
<view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">装箱信息</view>
|
<view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">单据信息</view>
|
</view>
|
<!-- 拆箱信息 -->
|
<view v-if="tabs == 0">
|
<!-- <zb-table id="list-table" :fit="true" :style="{height: `${listTableHeight}px`}" :columns="columns" :data="listData"
|
:show-header="true" :border="true" :row-key="row => row.index" @toggleRowSelection="handleSelect"
|
@toggleAllSelection="handleSelectAll" /> -->
|
|
<view class="item-wrapper">
|
<view v-for="(item, index) in listData" :key="index">
|
<uni-card :title="item['物料名称']" :extra="`条码数量: ${item['条码个数']}`">
|
<view class="detail" v-if="item['条码编号']">
|
<text>条码编号:</text>{{item['条码编号']}}
|
</view>
|
<view class="detail" v-if="item['数量']">
|
<text>数量:</text>{{item['数量']}}
|
</view>
|
<view class="detail" v-if="item['物料代码']">
|
<text>物料代码:</text>{{item['物料代码']}}
|
</view>
|
<view class="detail" v-if="item['物料名称']">
|
<text>物料名称:</text>{{item['物料名称']}}
|
</view>
|
<view class="detail" v-if="item['规格型号']">
|
<text>规格型号:</text>{{item['规格型号']}}
|
</view>
|
</uni-card>
|
</view>
|
<view class="over" v-if="listData.length == 0">暂无数据</view>
|
</view>
|
</view>
|
<!-- 单据信息 -->
|
<view v-if="tabs == 1">
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">单据日期</view>
|
<view class="right">
|
<uni-datetime-picker type="date" v-model="hform.HDate">
|
<input type="text" v-model="hform.HDate" />
|
</uni-datetime-picker>
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">制单人</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HMaker" />
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">单据号</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HBillNo" />
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">单据ID</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HInterID" />
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">组织</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HStockOrgName" />
|
</view>
|
</view>
|
</view>
|
</view>
|
<view class="bottom-btn" id="bottom-btn">
|
<button :class="EnableSubmit?'btn-a':'btn-c'" :disabled="!EnableSubmit" size="mini"
|
@tap="cmdSubmit">拆托</button>
|
<view style="flex: 1;"></view>
|
<!-- <button class="btn-d" size="mini" @tap="cmdDelete">删除</button> -->
|
<button class="btn-c" size="mini" @tap="cmdExit">退出</button>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import dayjs from 'dayjs'
|
import {
|
getUserInfo
|
} from "../../utils/auth";
|
import {
|
CommonUtils
|
} from "@/utils/common.js"
|
import {
|
MpaasScan
|
} from "@/utils/mpaasScan.js"
|
export default {
|
data() {
|
return {
|
EnableSubmit: true,
|
// 计算列表高度
|
bottomBtnTop: 0,
|
listTableTop: 0,
|
// 公共变量
|
HBarCodePackFocus: false,
|
HBarCodeFocus: false,
|
HBarCode_Pack: '', //箱条码
|
HBarCode: '', // 包条码
|
tabs: 0,
|
HBillType: '3783',
|
HBillSubType: '1', //子类型(1拆箱、2拆托)
|
OperationType: 1, //操作类型(1新增、2从缓存列表中返回)
|
HMaterNumber_Pack: "", //托条码对应物料代码
|
listOption: [],
|
listData: [],
|
columns: [{
|
name: 'index',
|
label: '序号',
|
width: 60,
|
hidden: true,
|
},
|
{
|
name: '条码编号',
|
label: '条码编号',
|
width: 100,
|
},
|
{
|
name: '数量',
|
label: '数量',
|
width: 100,
|
},
|
{
|
name: '物料代码',
|
label: '物料代码',
|
width: 100,
|
},
|
{
|
name: '物料名称',
|
label: '物料名称',
|
width: 100,
|
},
|
{
|
name: '条码个数',
|
label: '条码个数',
|
width: 100,
|
}
|
],
|
selectedRows: [], // 存储选中的数据
|
HModName: "Sc_PackUnionBill_Packing_PDA",
|
ModRightName: "CE_PackUnionBill_Packing", //模块权限参数
|
titleData: [], //不需要显示的字段
|
OperationType: 1, //从缓存列表中返回数据类型(1新增、2从缓存列表中返回)
|
HBarCode_Pack_Temp: "", //从缓存列表中返回箱条码
|
|
// 表单提交值
|
hform: {
|
HDate: dayjs(new Date()).format('YYYY-MM-DD'),
|
HMaker: getUserInfo()['Czymc'],
|
HBillNo: '',
|
HInterID: '',
|
HStockOrgName: uni.getStorageSync("Organization"),
|
HStockOrgID: uni.getStorageSync("OrganizationID"),
|
},
|
// 分页模块元数据
|
paginationMeta: {
|
|
}
|
}
|
},
|
methods: {
|
async HBarCodeFocusRefresh() {
|
this.HBarCode = ''
|
this.HBarCodeFocus = false
|
await this.$nextTick()
|
this.HBarCodeFocus = true
|
},
|
async HBarCodePackFocusRefresh() {
|
this.HBarCode_Pack = ''
|
this.HBarCodePackFocus = false
|
await this.$nextTick()
|
this.HBarCodePackFocus = true
|
},
|
toScanCode() {
|
MpaasScan.scanCode((scanCode) => {
|
this.HBarCode_Pack = scanCode
|
this.GetMeesageByBarCode_Pack(HBarCode_Pack)
|
})
|
},
|
GetMeesageByBarCode_Pack(HBarCode_Pack) {
|
// 获取托条码对应的数据
|
CommonUtils.doRequest2({
|
url: '/WEBSController/Get_PackBarCode_DeletePackUnionBill_Json',
|
data: {
|
HMaker: this.hform.HMaker,
|
HStockOrgID: this.hform.HStockOrgID,
|
HBarCode_Pack: HBarCode_Pack
|
},
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message,
|
list
|
} = res.data
|
if (count == 1) {
|
CommonUtils.playSound(1)
|
this.hform.HBillNo = data[0].HBillNo
|
this.hform.HInterID = data[0].HInterID
|
this.HMaterNumber_Pack = data[0].HMaterNumber
|
this.DisBillEntryList();
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
} else {
|
CommonUtils.playSound(1)
|
this.HBarCodePackFocusRefresh()
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
},
|
toScanCode2() {
|
MpaasScan.scanCode((scanCode) => {
|
this.HBarCode = scanCode
|
GetMeesageByBarCode(scanCode)
|
})
|
},
|
GetMeesageByBarCode(HBarCode) {
|
// 获取包条码对应的数据
|
let HBarCode_Pack = this.HBarCode_Pack
|
let sOldBarCode = this.HBarCode
|
let HDeleteFlag = sOldBarCode.substring(0, 1)
|
let sBarCode = sOldBarCode.slice(1)
|
if (!HBarCode_Pack) {
|
return uni.showToast({
|
icon: 'none',
|
title: '托条码为空,请先扫描托条码',
|
})
|
}
|
|
if (HDeleteFlag == '*') {
|
if (!sBarCode) {
|
return uni.showToast({
|
icon: 'none',
|
title: '请扫描要删除的箱条码',
|
})
|
} else {
|
this.HBarCodeFocusRefresh()
|
}
|
CommonUtils.doRequest2({
|
url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
|
data: {
|
"HInterID": this.hform.HInterID,
|
"HBarCode": sBarCode,
|
"HBillType": this.HBillType
|
},
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
CommonUtils.playSound(1)
|
this.DisBillEntryList()
|
} else {
|
CommonUtils.playSound(0)
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
} else {
|
let sBarCode = this.HBarCode
|
if (!sBarCode) {
|
return uni.showToast({
|
icon: 'none',
|
title: '箱条码不能为空,请扫描箱条码',
|
})
|
}
|
CommonUtils.doRequest2({
|
url: '/WEBSController/Get_BarCode_PackUnionBill_New_Json',
|
data: {
|
"HInterID": this.hform.HInterID,
|
"HBarCode": sBarCode,
|
"HBillType": this.HBillType,
|
"HBillNo": this.hform.HBillNo,
|
"HBillSubType": this.HBillSubType,
|
"HBarCode_Pack": HBarCode_Pack,
|
"HMaterNumber_Pack": this.HMaterNumber_Pack,
|
"HMaker": this.hform.HMaker,
|
"HStockOrgID": this.hform.HStockOrgID
|
},
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
CommonUtils.playSound(1)
|
this.HBarCodeFocusRefresh()
|
this.DisBillEntryList()
|
} else {
|
CommonUtils.playSound(0)
|
this.HBarCodeFocusRefresh()
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
}
|
},
|
DisBillEntryList() {
|
CommonUtils.doRequest2({
|
url: '/WEBSController/GetBillEntry_Tmp_Pack_Json',
|
data: {
|
"HInterID": this.hform.HInterID,
|
"HBillNo": this.hform.HBillNo,
|
"HBillType": this.HBillType
|
},
|
resFunction: (res) => {
|
let {
|
count,
|
data,
|
Message
|
} = res.data
|
if (count == 1) {
|
this.listData = []
|
for (let i = 0; i < data.length; i++) {
|
this.listData.push(Object.assign(data[i], {
|
index: i
|
}))
|
}
|
} else {
|
// 没有任何记录视为从0开始新增
|
this.listData = []
|
}
|
}
|
})
|
},
|
handleSelect(selected, array) {
|
this.selectedRows = array
|
},
|
handleSelectAll(selected, array) {
|
this.selectedRows = array
|
},
|
getMaxNo() {
|
CommonUtils.doRequest2({
|
url: "/WEBSController/GetMaxBillNoAndID_Json",
|
data: {
|
"HBillType": this.HBillType
|
},
|
resFunction: (d) => {
|
console.log('d: ', d);
|
let {
|
count,
|
data,
|
Message
|
} = d.data
|
if (count == 1) {
|
this.hform.HInterID = data[0].HInterID;
|
this.hform.HBillNo = data[0].HBillNo
|
} else {
|
|
uni.showModal({
|
title: "温馨提示",
|
showCancel: false,
|
content: Message
|
|
})
|
|
}
|
}
|
})
|
},
|
submitPreCheck() {
|
if (CommonUtils.isEmpty(this.hform.HInterID)) {
|
uni.showToast({
|
icon: 'none',
|
title: '单据内码获取失败,错误的单据内码!'
|
})
|
return false
|
}
|
if (CommonUtils.isEmpty(this.hform.HBillNo)) {
|
uni.showToast({
|
icon: 'none',
|
title: '单据号获取失败,错误的单据号!'
|
})
|
return false
|
}
|
if (this.listData.length < 1) {
|
uni.showToast({
|
icon: 'none',
|
title: '没有扫码信息,请先扫描条码,确认无误后再提交!'
|
})
|
return false
|
}
|
return true
|
},
|
cmdDelete() {
|
console.log('this.selectedRows: ', this.selectedRows);
|
if (this.selectedRows.length != 1) {
|
return uni.showToast({
|
icon: 'none',
|
title: '请选择一行记录,进行删除!'
|
})
|
}
|
uni.showModal({
|
title: '删除确认',
|
content: '确认要删除选中行所有扫码记录?删除后将不可恢复!',
|
success: () => {
|
if (confirm) {
|
CommonUtils.doRequest2({
|
url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
|
data: {
|
HInterID: this.hform.HInterID,
|
HBillType: this.HBillType,
|
HBarCode: this.selectedRows[0].HBarCode
|
},
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
CommonUtils.playSound(1)
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
this.DisBillEntryList()
|
} else {
|
CommonUtils.playSound(0)
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
}
|
}
|
})
|
},
|
cmdSubmit() {
|
let checkRes = this.submitPreCheck()
|
if (!checkRes) {
|
return
|
}
|
this.EnableSubmit = false
|
CommonUtils.doRequest2({
|
url: '/WEBSController/GetDeletePackUnionBill_Json',
|
data: {
|
"HInterID": this.hform.HInterID,
|
"HBillNo": this.hform.HBillNo,
|
"HBarCode_Pack": this.HBarCode_Pack,
|
"HMaker": this.hform.HMaker,
|
},
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
uni.showModal({
|
title: '温馨提示',
|
content: Message,
|
confirmText: "新增",
|
cancelText: '关闭',
|
success: ({
|
confirm,
|
cancel
|
}) => {
|
if (confirm) {
|
uni.redirectTo({
|
url: "/pages/zutuosaoma/PackUnionBill"
|
})
|
}
|
|
if (cancel) {
|
uni.navigateBack()
|
}
|
}
|
})
|
} else {
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
},
|
cmdExit() {
|
uni.navigateBack()
|
}
|
},
|
computed: {
|
listTableHeight: {
|
get() {
|
return this.bottomBtnTop - this.listTableTop - 10
|
}
|
}
|
},
|
async onReady() {
|
// #ifndef MP-WEIXIN
|
let query = uni.createSelectorQuery().in(this)
|
query.select("#bottom-btn")
|
.boundingClientRect((data) => {
|
if (data) {
|
this.bottomBtnTop = data.top
|
} else {
|
console.log("未找到#bottom-btn节点");
|
}
|
})
|
.exec();
|
query.select("#list-table")
|
.boundingClientRect((data) => {
|
if (data) {
|
this.listTableTop = data.top
|
} else {
|
console.log("未找到#list-table节点");
|
}
|
})
|
.exec();
|
// #endif
|
},
|
onLoad(e) {
|
this.OperationType = e.OperationType || 1
|
this.HBarCode_Pack_Temp = e.CommonUtils || ""
|
|
if (this.OperationType == 1) {
|
this.getMaxNo()
|
} else if (this.OperationType == 2) {
|
|
}
|
|
this.HBarCodePackFocusRefresh()
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
input {
|
width: inherit;
|
padding: 8rpx 20rpx;
|
font-size: 30rpx;
|
}
|
|
.form {
|
display: flex;
|
flex-direction: column;
|
gap: 20rpx;
|
|
.form-base-info {
|
display: flex;
|
flex-direction: column;
|
gap: 10rpx;
|
box-sizing: border-box;
|
padding: 30rpx;
|
}
|
|
.bill-info {
|
display: flex;
|
flex-direction: column;
|
gap: 10rpx;
|
box-sizing: border-box;
|
padding: 16rpx 30rpx;
|
}
|
|
.form-item {
|
display: flex;
|
flex-direction: row;
|
gap: 10rpx;
|
|
.title {
|
width: 5rem;
|
flex-shrink: 0;
|
}
|
|
.right {
|
flex: 1;
|
border-radius: 22rpx;
|
border: 1px solid #acacac;
|
}
|
|
.disabled {
|
border: 1px solid #e4e4e4;
|
background-color: #e4e4e4;
|
}
|
|
.right-icon {
|
flex-shrink: 0;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
}
|
|
}
|
}
|
|
.tabs {
|
width: 100%;
|
display: flex;
|
border-bottom: 1px solid #ddd;
|
margin: 20rpx 0;
|
|
view {
|
width: 25%;
|
font-size: 30rpx;
|
color: #555;
|
text-align: center;
|
padding: 16rpx 0;
|
}
|
|
.on {
|
color: #3a78ff;
|
font-weight: bold;
|
border-bottom: 3px solid #3a78ff;
|
}
|
}
|
|
.bottom-btn {
|
width: 100%;
|
box-sizing: border-box;
|
// height: 120rpx;
|
position: fixed;
|
bottom: 0;
|
left: 0;
|
background-color: #fff;
|
box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
|
padding: 30rpx 40rpx 40rpx 40rpx;
|
display: flex;
|
flex-direction: row;
|
gap: 10rpx;
|
|
button {
|
border-radius: 50rpx;
|
width: 180rpx;
|
height: 66rpx;
|
line-height: 66rpx;
|
font-size: 28rpx;
|
}
|
|
.btn-a {
|
background-color: #3A78FF;
|
color: #fff;
|
}
|
|
.btn-b {
|
background-color: #41a863;
|
color: #fff;
|
}
|
|
.btn-c {
|
background-color: #acacac;
|
color: #fff;
|
// position: absolute;
|
// right: 120rpx;
|
}
|
|
.btn-d {
|
background-color: #ff8901;
|
color: #fff;
|
}
|
}
|
</style>
|