| | |
| | | <form>
|
| | | <view class="cu-form-group margin-top">
|
| | | <view class="title">托盘码</view>
|
| | | <input placeholder="请扫描托盘码" v-model="container" focus></input>
|
| | | <text class='cuIcon-search text-blue' </text>
|
| | | <input
|
| | | placeholder="请扫描托盘码"
|
| | | v-model="container"
|
| | | focus
|
| | | />
|
| | | </view>
|
| | |
|
| | | <view class="cu-form-group ">
|
| | | <view class="cu-form-group">
|
| | | <view class="title">物料标签</view>
|
| | | <input placeholder="请扫描物料标签" v-model="barcode"></input>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | <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">
|
| | | <block v-for="(item, index) in list" :key="index">
|
| | | <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}`}}
|
| | | {{ `${item.maktx}` }}
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="action">
|
| | | <view class='cu-tag radius bg-red'>不合格</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>
|
| | |
| | | <text class="text-black">物料编码:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.maktxCode}}</text>
|
| | | <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>
|
| | |
|
| | |
| | | <text class="text-black">单号:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.asnCode}}</text>
|
| | | <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>
|
| | | <text class="text-grey">{{ item.splrBatch }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
| | | <text class="text-black">库存单位:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.stockUnit}}</text>
|
| | | <text class="text-grey">{{ item.stockUnit }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
|
| | | <view class="cu-item">
|
| | | <!-- <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></input>
|
| | | <input
|
| | | class="text-right"
|
| | | type="number"
|
| | | placeholder="请输入数量"
|
| | | v-model="item.receiptQty"
|
| | | focus
|
| | | />
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view> -->
|
| | |
|
| | | <view class="margin-top-sm flex">
|
| | | <uni-data-checkbox mode="tag" v-model="item.status" :localdata="types"></uni-data-checkbox>
|
| | | <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 class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">上锁</button>
|
| | | <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 { request } from '../../common/request.js'
|
| | | import ConfirmModal from '../../components/confirm-modal/confirm-modal.vue'
|
| | |
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | barcode: '',
|
| | | container: '',
|
| | | list: [],
|
| | | range: [],
|
| | | isconfirm: false,
|
| | | types: [{
|
| | | text: '待返修',
|
| | | value: 1
|
| | | },
|
| | | {
|
| | | text: '待报废',
|
| | | value: 2
|
| | | },
|
| | | {
|
| | | text: '降级使用',
|
| | | value: 3
|
| | | },
|
| | | {
|
| | | text: '待定',
|
| | | value: 4
|
| | | },
|
| | | ],
|
| | | }
|
| | | 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)
|
| | | },
|
| | | computed: {
|
| | |
|
| | | handleNo() {
|
| | | this.showModal = false
|
| | | },
|
| | | mounted() {},
|
| | | methods: {
|
| | | async search() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/defect/' + this.barcode, {}, "post")
|
| | | async handleYes() {
|
| | | this.isconfirm = true
|
| | | try {
|
| | | const { code, data, msg } = await request(
|
| | | '/other/inspectConfirm',
|
| | | {
|
| | | matnrList: this.list
|
| | | },
|
| | | 'post'
|
| | | )
|
| | | if (code === 200) {
|
| | | const find = this.list.find(el => el.id === data.id);
|
| | | !find && this.list.push(data)
|
| | | uni.showToast({
|
| | | title: '提交成功'
|
| | | })
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | this.container = ''
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | // this.list = [{
|
| | | // id: 1,
|
| | | // maktx: '拉杆箱',
|
| | | // maktxCode: '312312312',
|
| | | // asnCode: 'asn123412',
|
| | | // splrBatch: '3123123',
|
| | | // stockUnit: '个',
|
| | | // receiptQty: null
|
| | | // }]
|
| | | },
|
| | | async confirm() {
|
| | | // const {
|
| | | // code,
|
| | | // data,
|
| | | // msg
|
| | | // } = await request('/waitPakin/unbind', {
|
| | | // items: this.list,
|
| | | // barcode: this.container
|
| | | // })
|
| | | // if (code === 200) {
|
| | | // uni.showToast({
|
| | | // title: '提交成功'
|
| | | // })
|
| | | // this.list = []
|
| | | // this.barcode = ''
|
| | | // this.isconfirm = false
|
| | | // } 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() {
|
| | | if (this.allCount == 0) {
|
| | | uni.showToast({
|
| | | title: '没有锁定的明细',
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | return
|
| | | }
|
| | | 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;
|
| | | }
|
| | | .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;
|
| | | .text-blue {
|
| | | color: #0081ff !important;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | </style> |
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | </style>
|