New file |
| | |
| | | <template>
|
| | | <view class="has-foot">
|
| | | <view>
|
| | | <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' @click="getList"></text>
|
| | | </view> |
| | | <!-- <view class="cu-form-group"> |
| | | <view class="title">ASN单号</view> |
| | | <input placeholder="请输入ASN单号" v-model="asnCode"></input> |
| | | </view>
|
| | | <view class="cu-form-group">
|
| | | <view class="title">物料编码</view>
|
| | | <input placeholder="请扫描物料编码" v-model="matnrCode"></input>
|
| | | <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-blue">组盘总数:{{allCount}}</view>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | |
|
| | | <view class="padding-lr margin-top-sm">
|
| | | <block v-for="(item, index) in list" :key="index">
|
| | | <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.trackCode===barcode&&'act']"
|
| | | :ref="item.trackCode+'ref'">
|
| | | <view class="cu-bar bg-white solid-bottom ">
|
| | | <view class="action">
|
| | | <view class="index">
|
| | | {{index+1}}
|
| | | </view>
|
| | | <view class="text-blue">
|
| | | 编码:
|
| | | {{`${item.matnrCode}`}}
|
| | | </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">ASN:</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.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.splrBatch}}</text>
|
| | | </view>
|
| | | <view class="content">
|
| | | <text class="text-black">质检状态:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.isptResult$}}</text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">库存批次:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.batch}}</text>
|
| | | </view>
|
| | | <view class="content">
|
| | | <text class="text-black">库存单位: <text class="text-grey ">{{item.stockUnit}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | <!-- <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">平台行号: <text class="text-grey ">{{item.platformId}}</text></text>
|
| | | </view>
|
| | | <view class="content">
|
| | | <text class="text-black">质检结果: <text class="text-grey ">{{item.inspect}}</text></text>
|
| | | </view>
|
| | | </view> -->
|
| | |
|
| | | <view class="cu-item">
|
| | |
|
| | | <view class="content">
|
| | | <text class="text-black">收货数量: <text class="text-grey ">{{item.anfme}}</text></text>
|
| | | </view>
|
| | | <view class="content">
|
| | | <text class="text-black">已上架数量: <text
|
| | | class="text-grey ">{{item.workQty + item.qty}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">可组盘数量: <text
|
| | | class="text-grey ">{{item.anfme - item.workQty}}</text></text>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue"><text
|
| | | class="text-red text-xl vertical-middle">*</text>组盘数量:
|
| | | </view>
|
| | | <uni-number-box style="width: 70%;" :max="max" v-model="item.receiptQty"
|
| | | :step='1'></uni-number-box>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </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" :disabled="repeatClick" @click="confirm">解绑</button>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | request
|
| | | } from '../../common/request.js'
|
| | | import {
|
| | | mapState,
|
| | | mapMutations,
|
| | | mapActions,
|
| | | mapGetters
|
| | | } from 'vuex';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | barcode: '',
|
| | | container: '',
|
| | | megreQty: '',
|
| | | list: [],
|
| | | range: [],
|
| | | asnCode: '',
|
| | | repeatClick: false,
|
| | | isconfirm: false,
|
| | | matnrCode: '',
|
| | | max: 99999999,
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | ...mapState('user', ['dynamicFields']),
|
| | | allCount() {
|
| | | return this.list.reduce((acc, row) => +row.anfme + acc, 0) || 0
|
| | | }
|
| | | },
|
| | | mounted() {},
|
| | | methods: {
|
| | | async search() {
|
| | | const find = this.list.find(el => el.trackCode === this.barcode);
|
| | | find ? this.scrollTo() : this.getDet();
|
| | |
|
| | | },
|
| | | async getDet() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/asnOrderItem/trackCode', {
|
| | | matnrCode: this.matnrCode,
|
| | | asnCode: this.asnCode
|
| | | }, "post")
|
| | | if (code === 200) {
|
| | | // if(data !== [] || data !== null){ |
| | | // uni.navigateTo({
|
| | | // url: "../listing/itemSelect",
|
| | | // success: function(res) {
|
| | | // // 通过eventChannel向被打开页面传送数据 向另外一个页面传递值的
|
| | | // res.eventChannel.emit('data', {
|
| | | // item: data
|
| | | // })
|
| | | // },
|
| | | // events: {
|
| | | // // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 另外一个页面传过来的
|
| | | // acceptDataFromOpenedPage: function(data) {
|
| | | // that.matnr = data.data
|
| | | // that.findMat(that.matnr)
|
| | | // },
|
| | | // },
|
| | |
|
| | |
|
| | | // });
|
| | |
|
| | | // }
|
| | | for (var i = 0; i < data.length; i++) {
|
| | | data[i].receiptQty = 1;
|
| | | data[i].selected = false;
|
| | | }
|
| | | this.list = data
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | },
|
| | | async getList() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/asnOrderItem/container', {
|
| | | barcode: this.container, |
| | | type: 'unbind'
|
| | | })
|
| | | if (code === 200) {
|
| | | this.list = data
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | },
|
| | | scrollTo() {
|
| | | const ref = this.$refs[`${this.barcode}ref`][0];
|
| | | uni.pageScrollTo({
|
| | | scrollTop: ref.$el.offsetTop,
|
| | | duration: 300
|
| | | })
|
| | | },
|
| | | remove(index) {
|
| | | this.list.splice(index, 1);
|
| | | },
|
| | | clear() {
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | },
|
| | | next() {
|
| | | if (this.list.length) {
|
| | | this.isconfirm = true
|
| | | } else {
|
| | | uni.showToast({
|
| | | icon: "none",
|
| | | title: '未选物料标签'
|
| | | })
|
| | | }
|
| | | },
|
| | | prev() {
|
| | | this.isconfirm = false
|
| | | },
|
| | | async confirm() {
|
| | | this.repeatClick = true
|
| | | const newArr = this.list.map(item => {
|
| | |
|
| | | return {
|
| | | ...item,
|
| | | anfme: item.anfme === null ? 0 : +item.anfme,
|
| | | };
|
| | | });
|
| | |
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/waitPakin/unbind', {
|
| | | items: newArr,
|
| | | barcode: this.container,
|
| | | })
|
| | | if (code === 200) {
|
| | | uni.showToast({
|
| | | title: '解绑成功'
|
| | | })
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | this.container = ''
|
| | | this.isconfirm = false
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | this.repeatClick = false
|
| | | },
|
| | | }
|
| | | }
|
| | | </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;
|
| | |
|
| | | }
|
| | |
|
| | | .act {
|
| | | border: 1px solid #e54d42;
|
| | | }
|
| | |
|
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | </style> |