skyouc
2025-05-07 fff90f6d0db97fad9c586c5ce83785d705bd5e0f
no message
4个文件已修改
1个文件已添加
385 ■■■■■ 已修改文件
pages.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/index.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/listing/matnrPalletising.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/listing/unPakin.vue 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/rece/other.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -552,7 +552,15 @@
            }
        }
    ],
        ,{
            "path" : "pages/listing/unPakin",
            "style" :
            {
                "navigationBarTitleText": "组托解绑"
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "uni-app",
pages/home/index.vue
@@ -50,13 +50,13 @@
                </navigator>
            </view>
            <!--             <view class="cu-item">
                <navigator hover-class='none' url="/pages/listing/untie" navigateTo>
            <view class="cu-item">
                <navigator hover-class='none' url="/pages/listing/unPakin" navigateTo>
                    <view class="cuIcon-cardboardforbid text-blue">
                    </view>
                    <text>解绑</text>
                    <text>组托解绑</text>
                </navigator>
            </view> -->
            </view>
            <view class="cu-item">
                <navigator hover-class='none' url="/pages/inspect/report" navigateTo>
@@ -106,13 +106,13 @@
                </navigator>
            </view>
        </view>
        <view class="cu-bar bg-white solid-bottom margin-top">
            <view class="action">
                <text class="cuIcon-title text-orange "></text> 出库
            </view>
            </view>
        </view>
        <view class="cu-list grid col-4 no-border">
            <view class="cu-item">
                <navigator hover-class='none' url="/pages/outbound/fastPicking" navigateTo>
@@ -121,7 +121,7 @@
                    <text>快速拣货</text>
                </navigator>
            </view>
        </view>
        <view class="padding flex flex-direction">
pages/listing/matnrPalletising.vue
@@ -54,10 +54,10 @@
                    </view>
                    <view class="cu-item">
                        <view class="content">
                            <text class="text-black">物料条码:</text>
                            <text class="text-black">物料编码:</text>
                        </view>
                        <view class="action">
                            <text class="text-grey ">{{item.trackCode}}</text>
                            <text class="text-grey ">{{item.matnrCode}}</text>
                        </view>
                    </view>
                    <view class="cu-item">
@@ -67,6 +67,12 @@
                        <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">
@@ -74,6 +80,9 @@
                        </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">
@@ -86,9 +95,7 @@
                    </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>
pages/listing/unPakin.vue
New file
@@ -0,0 +1,330 @@
<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>
pages/rece/other.vue
@@ -42,14 +42,14 @@
                            <text class="text-grey ">{{item.asnCode}}</text>
                        </view>
                        <view class="action">
                        </view>
                    </view>
                    <view class="cu-item">
                        <view class="content">
                            <text class="text-black">物料名称:</text>
                            <text class="text-grey ">{{item.maktx}}</text>
                        </view>
                        </view>
                    </view>
                    <!--     <view class="cu-item">
@@ -159,8 +159,10 @@
        <view class="cu-form-group margin-bottom">
            <view class="title">收货区</view>
            <uni-data-select v-model="whAreaId" :localdata="range" placement="top"
                @change="selChange"></uni-data-select>
            <view>
                <uni-data-select v-model="whAreaId" :localdata="range" placement="top"
                    @change="selChange"></uni-data-select>
            </view>>
        </view>
        <view class="cu-bar btn-group foot" v-show="!isconfirm">
@@ -238,7 +240,7 @@
                this.barcode = ''
            },
            scrollTo() {
                // const ref = this.$refs[`${this.barcode}ref`][0];
                // uni.pageScrollTo({
                //     scrollTop: ref.$el.offsetTop,