<template>
|
<view class="has-foot">
|
<form>
|
<view class="cu-form-group margin-top">
|
<view class="title">托盘码</view>
|
<input
|
placeholder="请扫描托盘码"
|
v-model="container"
|
focus
|
/>
|
</view>
|
|
<view class="cu-form-group">
|
<view class="title">物料标签</view>
|
<input
|
placeholder="请扫描物料标签"
|
v-model="barcode"
|
/>
|
<text
|
class="cuIcon-search text-blue"
|
@click="search"
|
></text>
|
</view>
|
</form>
|
<view class="flex solid-bottom padding-sm justify-between">
|
<view class="text-blue">物料种类:{{ list.length }}</view>
|
<view class="text-red">锁定数量:{{ allCount }}</view>
|
</view>
|
<view
|
class="flex solid-bottom padding-sm justify-between"
|
v-if="list.length"
|
>
|
<view class="text-blue">库位号:{{ list[0].locCode }}</view>
|
</view>
|
|
<view
|
class="cu-list det menu sm-border padding"
|
style="padding-bottom: 60px"
|
>
|
<block
|
v-for="(item, index) in list"
|
:key="index"
|
>
|
<view class="cu-bar bg-white solid-bottom margin-top-sm">
|
<view class="action">
|
<!-- <view class="index">
|
{{index+1}}
|
</view> -->
|
<view class="text-blue">
|
{{ `${item.maktx}` }}
|
</view>
|
</view>
|
|
<!-- <view class="action">
|
<view class="cu-tag radius bg-red">不合格</view>
|
</view> -->
|
|
<!-- <view class="action" v-if="!isconfirm">
|
<text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
|
</view> -->
|
</view>
|
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-black">物料编码:</text>
|
</view>
|
<view class="action">
|
<text class="text-grey">{{ item.matnrCode }}</text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-black">计划跟踪号:</text>
|
</view>
|
<view class="action">
|
<text class="text-grey">{{ item.platWorkCode }}</text>
|
</view>
|
</view>
|
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-black">单号:</text>
|
</view>
|
<view class="action">
|
<text class="text-grey">{{ item.asnCode }}</text>
|
</view>
|
</view>
|
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-black">供应商批次:</text>
|
</view>
|
<view class="action">
|
<text class="text-grey">{{ item.splrBatch }}</text>
|
</view>
|
</view>
|
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-black">库存单位:</text>
|
</view>
|
<view class="action">
|
<text class="text-grey">{{ item.stockUnit }}</text>
|
</view>
|
</view>
|
|
<!-- <view class="cu-item">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<view class="title text-blue">数量:</view>
|
<input
|
class="text-right"
|
type="number"
|
placeholder="请输入数量"
|
v-model="item.receiptQty"
|
focus
|
/>
|
</view>
|
</view>
|
</view> -->
|
|
<view class="margin-top-sm flex">
|
<uni-data-checkbox
|
mode="tag"
|
v-model="item.status"
|
:localdata="types"
|
></uni-data-checkbox>
|
</view>
|
</block>
|
</view>
|
|
<view class="cu-bar btn-group foot">
|
<button
|
v-if="hasButtonPermission('reset')"
|
class="cu-btn text-blue line-blue shadow"
|
@click="clear"
|
>
|
清空
|
</button>
|
<button
|
v-if="hasButtonPermission('submit')"
|
class="cu-btn bg-blue shadow-blur"
|
@click="confirm"
|
>
|
解锁
|
</button>
|
</view>
|
|
<ConfirmModal
|
:visible="showModal"
|
@update:visible="showModal = $event"
|
icon="check"
|
title="解锁确认"
|
message="是否确定解锁?"
|
cancelText="不需要"
|
confirmText="确定"
|
:isconfirm="isconfirm"
|
@cancel="handleNo"
|
@confirm="handleYes"
|
></ConfirmModal>
|
</view>
|
</template>
|
|
<script>
|
import { request } from '../../common/request.js'
|
import ConfirmModal from '../../components/confirm-modal/confirm-modal.vue'
|
|
export default {
|
components: {
|
ConfirmModal
|
},
|
data() {
|
return {
|
barcode: '',
|
container: '',
|
list: [],
|
range: [],
|
isconfirm: false,
|
types: [
|
{
|
text: '正常',
|
value: 1
|
},
|
{
|
text: '锁定',
|
value: 0
|
}
|
],
|
showModal: false,
|
buttonPermissions: [] // 按钮权限列表
|
}
|
},
|
computed: {
|
allCount() {
|
return this.list.reduce(
|
(acc, row) => (row.status == 0 ? acc + 1 : acc),
|
0
|
)
|
}
|
},
|
mounted() {
|
this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
|
},
|
methods: {
|
// 检查按钮权限
|
hasButtonPermission(route) {
|
return this.buttonPermissions.includes(route)
|
},
|
handleNo() {
|
this.showModal = false
|
},
|
async handleYes() {
|
this.isconfirm = true
|
try {
|
const { code, data, msg } = await request(
|
'/other/inspectConfirm2',
|
{
|
matnrList: this.list
|
},
|
'post'
|
)
|
if (code === 200) {
|
uni.showToast({
|
title: '提交成功'
|
})
|
this.list = []
|
this.barcode = ''
|
this.container = ''
|
} else {
|
uni.showToast({
|
title: msg,
|
icon: 'none',
|
position: 'top'
|
})
|
}
|
} finally {
|
this.showModal = false
|
this.isconfirm = false
|
}
|
},
|
// 关闭AGV确认弹窗
|
closeModal() {
|
this.showModal = false
|
},
|
async search() {
|
const { code, data, msg } = await request(
|
'/other/inspectList',
|
{
|
containerNo: this.container,
|
matnrCode: this.barcode
|
},
|
'post'
|
)
|
if (code === 200) {
|
this.list = data
|
} else {
|
uni.showToast({
|
title: msg,
|
icon: 'none',
|
position: 'top'
|
})
|
}
|
},
|
async confirm() {
|
this.showModal = true
|
}
|
}
|
}
|
</script>
|
|
<style>
|
.index {
|
border: 1px solid #e54d42;
|
color: #e54d42;
|
border-radius: 50%;
|
display: block;
|
width: 50rpx;
|
height: 50rpx;
|
line-height: 48rpx;
|
text-align: center;
|
margin-right: 20rpx;
|
font-size: 30rpx;
|
}
|
|
.text-blue {
|
color: #0081ff !important;
|
}
|
|
.item {
|
position: relative;
|
display: flex;
|
min-height: 80upx;
|
align-items: center;
|
}
|
</style>
|