zjj
2025-05-07 f815627a748d2ec5f68f1579443e231acc6fd1ba
#物料组盘
3个文件已修改
1个文件已添加
382 ■■■■■ 已修改文件
pages.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/listing/disc.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/listing/itemSelect.vue 328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/listing/matnrPalletising.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -37,6 +37,13 @@
            }
        },
        {
            "path": "pages/listing/itemSelect",
            "style": {
                "navigationBarTitleText": "选择物料",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/listing/untie",
            "style": {
                "navigationBarTitleText": "解绑"
pages/listing/disc.vue
@@ -156,8 +156,7 @@
                    })
                    return
                }
                const find = this.list.find(el => el.trackCode === this.barcode);
                find ? this.scrollTo() : this.getDet();
                this.getDet();
            },
            async getDet() {
                const {
pages/listing/itemSelect.vue
New file
@@ -0,0 +1,328 @@
<template>
    <view>
        <!-- 搜索框 -->
        <view class="search-bar">
            <uni-search-bar v-model="condition" placeholder=" 扫码 / 输入" bgColor="#EEEEEE" @confirm="search" />
        </view>
        <view>
            <view class="padding-lr margin-top-sm">
                <block v-for="(item, index) in matList" :key="index">
                    <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.selected === true &&'act']" @click="selectedItem(index)">
                        <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">
                                <text v-if="item.selected" class="cuIcon-check text-green" style="font-size: 24px;"></text>
                                <text v-else  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.trackCode}}</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.batch}}</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.stockUnit}}</text></text>
                            </view>
                            <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>
                </block>
            </view>
        </view>
        <!-- <uni-load-more v-show="matList.length != 0" :status="status" :icon-size="16" :content-text="contentText" /> -->
    </view>
</template>
<script>
    export default {
        data() {
            return {
                tagList: [],
                matList: [],
                condition: '',
                reload: false,
                curr:1,
                tag: '分类',
                baColor: "background-color: #0081ff;",
                desc: '商品编号:',
                baseUrl: '',
                token: '',
                status: 'more',
                contentText: {
                    contentdown: '上拉加载更多',
                    contentrefresh: '加载中',
                    contentnomore: '没有更多'
                },
                // 当前tagId
                tagIdNow: 1,
                itemStyle: {
                    border: "1px solid #e54d42",
                },
                selectedList:[]
            }
        },
        // onReachBottom() {
        //     this.status = 'more';
        //     this.showMat(this.tagIdNow);
        // },
        onLoad() {
            // 没啥用了
            let that = this
            // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
            const eventChannel = this.getOpenerEventChannel();
            // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
            eventChannel.on('data', function(data) {
                console.log(data.item)
                that.matList = data.item
            })
        },
        onShow() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
        },
        methods: {
            selectedItem(index){
                if(this.matList[index].selected === '' || this.matList[index].selected === null || this.matList[index].selected === undefined){
                    this.matList[index].selected = true
                }else{
                    this.matList[index].selected = !this.matList[index].selected
                }
                console.log(this.matList[index].selected)
            },
            search() {
                let that = this
                uni.request({
                    url: that.baseUrl + '/order/search/pda/auth',
                    data: {
                        condition: that.condition
                    },
                    method:"GET",
                    header: {
                        'token':uni.getStorageSync('token'),
                    },
                    success(result) {
                        console.log(result);
                        var res = result.data
                        if (res.code === 200 ) {
                            that.matList = res.data
                            // that.save()
                        } else if (res.code == 403) {
                            uni.showToast({title: res.msg, icon: "none", position: 'top'})
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../login/login'
                                });
                            }, 1000);
                        } else {
                            uni.showToast({title: res.msg, icon: "none",position: 'top'})
                        }
                    }
                });
            },
            showTag(parentId) {
                let that = this
                uni.request({
                    url: that.baseUrl + '/tag/list/pda/auth',
                    header: {
                        'token':uni.getStorageSync('token'),
                    },
                    data: {
                        limit: 100000,
                        parentId: parentId
                    },
                    header: {
                        'token':uni.getStorageSync('token'),
                    },
                    success(result) {
                        that.tagList = null
                        that.matList = []
                        var res = result.data
                        if (res.code === 200) {
                            if (res.data != null && res.data.length > 0) {
                                that.tagList = res.data
                            } else {
                                that.showMat(parentId)
                            }
                            that.baColor = "background-color: #0081ff;"
                        } else if (res.code === 403 ) {
                            uni.showToast({title: res.msg, icon: "none", position: 'top'})
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../login/login'
                                });
                            }, 1000);
                        } else {
                            uni.showToast({title: res.msg, icon: "none",position: 'top'})
                        }
                    }
                });
            },
            showMat(tagId) {
                let that = this
                // wms端 补接口
                // @RequestMapping(value = "/mat/list/pda/page/auth")
                // @ManagerAuth
                // public R pdaPageList(@RequestParam(required = true)Long tagId,
                //                      @RequestParam(defaultValue = "1")Integer curr,
                //                      @RequestParam(defaultValue = "10")Integer limit){
                //     EntityWrapper<Mat> wrapper = new EntityWrapper<>();
                //     wrapper.eq("tag_id", tagId);
                //     wrapper.orderBy("create_time", false);
                //     return R.ok().add(matService.selectPage(new Page<>(curr, limit), wrapper));
                // }
                uni.request({
                    url: that.baseUrl + '/order/list/pda/page/auth',
                    data: {
                        curr:that.curr,
                        limit: 100,
                        tagId: tagId
                    },
                    method:"GET",
                    header: {
                        'token':uni.getStorageSync('token'),
                    },
                    success(result) {
                        that.tagList = null
                        var res = result.data
                        if (res.code === 200) {
                            if (res.data.records != null && res.data.records.length > 0) {
                                let list = res.data.records
                                that.matList = that.reload ? list : that.matList.concat(list);
                                that.curr = that.curr + 1
                            }
                            if (res.data.records.length == 0) {
                                that.status = 'noMore'
                            }
                            that.baColor = "background-color: #1cbbb4;"
                        } else if (res.code === 403 ) {
                            uni.showToast({title: res.msg, icon: "none", position: 'top'})
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../login/login'
                                });
                            }, 1000);
                        } else {
                            uni.showToast({title: res.msg, icon: "none",position: 'top'})
                        }
                    }
                });
            },
            toPrint(item) {
                let that = this
                uni.navigateTo({
                    url: "../order/orderDetlList",
                    success: function(res) {
                        // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的
                        res.eventChannel.emit('data', {
                            data: item
                        })
                    },
                    events: {
                        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的
                        acceptDataFromOpenedPage: function(data) {
                            that.matnr = data.data
                            that.findMat(that.matnr)
                        },
                    },
                });
            }
        }
    }
</script>
<style>
    @import url('../../static/css/wms.css/wms.css');
    .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>
pages/listing/matnrPalletising.vue
@@ -1,5 +1,7 @@
<template>
    <view class="has-foot">
        <view>
        <form>
            <view class="cu-form-group margin-top">
                <view class="title">容器号</view>
@@ -11,15 +13,17 @@
                <input placeholder="请扫描物料编码" v-model="matnrCode"></input>
                <text class='cuIcon-search text-blue' @click="search"></text>
            </view>
            <!-- <view class="cu-form-group">
                <view class="title">批次号</view>
                <input placeholder="请输入物料批次" v-model="batch"></input>
            </view> -->
            <view class="cu-form-group">
                <view class="title">ASN单号</view>
                <input placeholder="请输入ASN单号" v-model="asnCode"></input>
            </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">
@@ -139,7 +143,7 @@
                megreQty: '',
                list: [],
                range: [],
                batch: '',
                asnCode: '',
                repeatClick: false,
                isconfirm: false,                
                matnrCode:'',
@@ -165,9 +169,35 @@
                    data,
                    msg
                } = await request('/asnOrderItem/trackCode', {
                    matnrCode: this.matnrCode
                    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({
@@ -225,6 +255,7 @@
            async confirm() {
                this.repeatClick = true
                const newArr = this.list.map(item => {
                    return {
                        ...item,
                        anfme: item.anfme === null ? 0 : +item.anfme,                        
@@ -238,7 +269,6 @@
                } = await request('/waitPakin/merge', {
                    items: newArr,
                    barcode: this.container,
                    batch: this.batch,
                })
                if (code === 200) {
                    uni.showToast({