#
whycq
2024-10-28 004b81ef2b3132f89685932508101d2f7c0027e1
#
5个文件已修改
1个文件已添加
384 ■■■■■ 已修改文件
pages.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/orderDetlListLoc.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/pickOrderList2.vue 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/zlOrderPakin.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pakin/WarehouseOutParallelBoard.vue 167 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pakin/pakin.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -359,6 +359,15 @@
            }
            
        }
        ,{
            "path" : "pages/order/pickOrderList2",
            "style" :
            {
                "navigationBarTitleText": "关联订单",
                "enablePullDownRefresh": false
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
pages/order/orderDetlListLoc.vue
@@ -1,5 +1,19 @@
<template>
    <view>
        <view class="code">
            <view style="display: flex;align-items: center;">
                <view style="flex: 1;">
                    <uni-search-bar  v-model="searchValue"
                        maxlength="500" ancel="cancel" @confirm="getOrderNoList(locNo)" @clear="clear" placeholder="输入 / 扫描">
                    </uni-search-bar>
                </view>
            </view>
            <view class="code-title">
                <view></view>
                <view style="width: 100%;text-align: center;margin: 16rpx 0;">总数量:- {{menuList.length}} -</view>
            </view>
        </view>
        <view class="card" v-for="item in menuList" @click="chose(item)">            
            <view class="item">库位号:{{item.locNo}}</view>
            <view class="item">物料编码:{{item.matnr}}</view>
@@ -7,6 +21,7 @@
            <!-- <view class="item">批&#12288;&#12288;次:{{item.batch}}</view> -->
            <view class="item">明细数量:{{item.anfme}}</view>
        </view>
        <view style="height: 50rpx;"></view>
    </view>
</template>
@@ -17,7 +32,8 @@
                baseUrl: '',
                token: '',
                menuList: [],
                orderNo: ''
                orderNo: '',
                searchValue: ''
            }
        },
        onLoad() {
@@ -37,15 +53,33 @@
            
        },
        methods: {
            clear() {
                this.searchValue = ''
                this.getOrderNoList(this.locNo)
            },
            getOrderNoList(locNo) {
                let that = this
                uni.request({
                    url: this.baseUrl + '/locDetl/forlocNo/auth/v1',
                    data: { locNo: that.locNo },
                    data: { locNo: that.locNo, matnr: that.searchValue },
                    header: { 'token': uni.getStorageSync('token') },                    
                    success(res) {
                        res = res.data
                        that.menuList = res.data
                        that.menuList = []
                        if (res.code == 200) {
                            that.menuList = res.data
                            // uni.showToast({ title: res.msg, icon: "success", position: 'top' })
                        } else if (res.code == 403) {
                            uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../login/login'
                                });
                            }, 1000);
                        } else {
                            uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                        }
                    }
                })
            },
@@ -75,6 +109,13 @@
</script>
<style>
    .code {
        background-color: #d9d9d9;
        z-index: 99;
        position: sticky;
        top: 0rpx;
        left: 0;
    }
    .card {
        margin: 20rpx;
        padding: 30rpx;
pages/order/pickOrderList2.vue
New file
@@ -0,0 +1,153 @@
<template>
    <view>
        <view class="code">
            <view style="display: flex;align-items: center;">
                <view style="width: 70rpx;padding-left: 20rpx;">{{searchType}}</view>
                <view style="flex: 1;margin-left: -8rpx;">
                    <uni-search-bar  v-model="searchValue"
                        maxlength="500" ancel="cancel" @confirm="getMatList()" @clear="clear" placeholder="输入 / 扫描">
                    </uni-search-bar>
                </view>
            </view>
            <view class="code-title">
                <view></view>
                <view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchValue}} 总数量:- {{total}} -</view>
            </view>
        </view>
        <view class="order__list" v-for="(orderDetl,index) in dataList" :key="index">
            <view class="order__list__left">
                <view>No:{{index + 1}}</view>
                <view>订单号:{{orderDetl.orderNo}}</view>
                <view>料号:{{orderDetl.matnr}}</view>
                <view>批号:{{orderDetl.batch}}</view>
                <view>可用数量:{{orderDetl.count}}</view>
            </view>
            <view class="order__list__right" @click="addItem(orderDetl)">
                <uni-icons type="folder-add" size="25"  color="#fff"></uni-icons>
            </view>
        </view>
        <view style="height: 100rpx;width: 100%;text-align: center;line-height: 100rpx;">- 已经到底了 -</view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                baseUrl: '',
                token: '',
                storeId: 0,
                store: '',
                total: 0,
                searchType: '订单',
                searchValue: '',
                dataList: [],
                selectedList: [],
                matnr: ''
            }
        },
        onShow() {
            let _this = this
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            this.storeId = uni.getStorageSync('store')
            if (this.storeId == 1) {
                this.store = '宁波仓'
            }
            if (this.storeId == 2) {
                this.store = '新昌仓'
            }
            const eventChannel = this.getOpenerEventChannel();
            eventChannel.on('item', function(data) {
                _this.matnr = data.item.matnr
            })
            this.getMatList()
        },
        methods: {
            back() { uni.navigateBack({}) },
            set(e) {
                var ck = this.dataList[e].checked
                this.dataList[e].checked = ck ? false : true
            },
            getMatList() {
                let that = this
                let searchParam = {
                    orderNo: that.searchValue,
                    matnr: that.matnr,
                }
                console.log(searchParam);
                uni.request({
                    url: that.baseUrl + '/mobile/outBound/mat/list',
                    header: {
                        'token': uni.getStorageSync('token')
                    },
                    data: searchParam,
                    method: 'GET',
                    success(res) {
                        res = res.data;
                        if (res.code === 200) {
                            that.total = res.data.length
                            const result1 = res.data.filter(obj1 =>
                                !that.selectedList.some(obj2 => obj1.matnr === obj2.matnr && obj1.orderNo === obj2.orderNo)
                            );
                            that.dataList = result1
                            that.total = result1.length
                        } else if (res.code == 403) {
                            uni.showToast({ title: res.msg, icon: "error", position: 'center' })
                            setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                        } else {
                            uni.showToast({ title: res.msg, icon: "error", position: 'center' })
                        }
                    }
                })
            },
            addItem(mat) {
                this.getOpenerEventChannel().emit('sMat', {data: mat});
                uni.navigateBack({
                })
            }
        }
    }
</script>
<style>
    @import url('../../static/css/wms.css/wms.css');
    .code {
        background-color: #d9d9d9;
        z-index: 99;
        position: sticky;
        top: 0rpx;
        left: 0;
    }
    .code-title {
        display: flex;
    }
    .order__list {
        margin: 20rpx;
        font-size: 14px;
        background-color: #fff;
        border-radius: 20rpx;
        border: 1px solid #eeeeee;
        display: flex;
        position: relative;
        background-color: #3eb689;
        color: #FFF;
    }
    .order__list__left {
        flex: 1;
        padding: 20rpx;
        position: relative;
    }
    .order__list__right {
        width: 70rpx;
        border-left: 1px solid #eeeeee;
        display: flex;
        align-items: center;
        justify-content: center;
    }
</style>
pages/order/zlOrderPakin.vue
@@ -196,8 +196,8 @@
                bomCode: '',
                bomCodeFocus: true,
                maxAn: 0,
                ck1: true,
                ck2: false,
                ck1: false,
                ck2: true,
                fullPlt: 'N',
                decrees_a: {
                    locNo: '',
pages/pakin/WarehouseOutParallelBoard.vue
@@ -2,71 +2,43 @@
    <view>
        <view class="code">            
            <view class="item">
                <view class="item" style="width: 50%;">
                    <view class="code-decs" style="width: 100%;">库位号:{{item.locNo}}</view>
                <view class="item" style="width: 100%;">
                    <view class="code-decs" style="width: 50%;">库位号: {{item.locNo}}</view>
                    <view class="code-decs" style="width: 50%;">库存可出数量: {{item.anfme}}</view>
                </view>
            </view>
            <view class="item">
                <view class="item" style="width: 90%;">
                    <view class="code-decs" style="width: 100%;">物料:{{item.matnr}}</view>
                    <view class="code-decs" style="width: 70%;">物料: {{item.matnr}}</view>
                    <button size="mini" type="primary" @click="getOrder">出库订单</button>
                </view>
            </view>
            <view class="item">
                <view class="code-decs">订单号:</view>
                <input type="text" placeholder=" 扫码 / 输入" v-model="orderNo" :focus="barcodeFocus"
                    @input="barcodeInput()">
            </view>
        </view>
        <view class="mat-list-title">
            <view style="width: 200rpx;"></view>
            <view style="-webkit-flex: 1;flex: 1;">商品列表</view>
            <view style="-webkit-flex: 1;flex: 1;">出库订单</view>
            <view style="width: 200rpx;"></view>
        </view>
        <scroll-view>
            <checkbox-group class="list" v-for="(item,i) in dataList" :key="i" @change="checkboxChange">
                <!-- <view class="aside">
                    <checkbox :value="item.matnr" :checked="item.checked" @click="set(i)"/>
                </view> -->
                <view class="list-left" style="margin: 0;">
                    <view class="list-left-item">
                        <view class="desc">No:</view>
                        <view class="left-item">{{i + 1}}</view>
                        <view class="desc">No:{{i + 1}}</view>
                    </view>
                    <view class="list-left-item">
                        <view class="desc">订单号:</view>
                        <view class="left-item">
                            <uni-tag :text="item.orderNo" type="primary"></uni-tag>
                        </view>
                        <view class="desc">订单号:{{item.orderNo}}</view>
                    </view>
                    <view class="list-left-item">
                        <view class="desc">料号:</view>
                        <view class="left-item">
                            <uni-tag :text="item.matnr" type="primary"></uni-tag>
                        </view>
                        <view class="desc">料号:{{item.matnr}}</view>
                    </view>
                    <view class="list-left-item">
                        <view class="desc">名称:</view>
                        <view class="left-item">{{item.maktx}}</view>
                        <view class="desc">批号:{{item.batch}}</view>
                    </view>
                    <view class="list-left-item">
                        <view class="desc">规格:</view>
                        <view class="left-item">{{item.specs}}</view>
                        <view class="desc">可用数量:{{item.count}}</view>
                    </view>
                    <view class="list-left-item">
                        <view class="desc">批号:</view>
                        <view class="left-item">
                            <uni-tag :text="item.batch" type="warning"></uni-tag>
                        </view>
                    </view>
                    <!-- <view class="list-left-item">
                        <view class="desc">重量:</view>
                        <view class="left-item">
                            <uni-tag :text="item.weight" type="warning"></uni-tag>
                        </view>
                    </view> -->
                    <view class="list-left-item">
                        <view class="desc">数量:</view>
                        <view class="left-item">{{item.anfme}}</view>
                    <view class="list-left-item" >
                        <view class="desc">数量:{{item.anfme}}</view>
                    </view>
                </view>
                <view class="list-right">
@@ -105,7 +77,7 @@
                    <view class="popup-item">
                        <view class="popup-item-left">数量:</view>
                        <view class="popup-item-right" style="border: none;justify-content: center;">
                            <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474"
                            <uni-number-box :value="count" :step='1' :max="mastCount" color="#747474"
                                @change="changeValue" />
                        </view>
                    </view>
@@ -182,7 +154,9 @@
                orderNoList: [],
                orderNo: '',
                item:'',
                locNo:''
                locNo:'',
                mastCount: '',
                mastAnfme: 0
            }
        },
        onLoad() {
@@ -190,7 +164,7 @@
            // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
            const eventChannel = this.getOpenerEventChannel();
            eventChannel.on('item', function(data) {
                // console.log(data.item);
                that.mastAnfme = data.item.anfme
                that.item = data.item
                
            })
@@ -201,6 +175,23 @@
            this.getOrderNoList()
        },
        methods: {
            getOrder() {
                let _this = this
                uni.navigateTo({
                    url: '../order/pickOrderList2',
                    success(res) {
                        res.eventChannel.emit('item', {
                            item: _this.item
                        })
                    },
                    events: {
                        sMat: function(data) {
                            data.data['anfme'] = data.data.useCount
                            _this.dataList.push(data.data)
                        }
                    }
                })
            },
            set(e) {
                var ck = this.dataList[e].checked
                this.dataList[e].checked = ck ? false:true
@@ -312,66 +303,6 @@
                    this.matFocus = true;
                }, 100);
            },
            // 搜索物料
            findMat() {
                let that = this
                var matnr = that.matnr.split(";")
                that.order = matnr[0]
                that.matnr = matnr[1]
                uni.request({
                    url: that.baseUrl + '/mat/auth',
                    data: {
                        matnr: that.matnr
                    },
                    header: {
                        'token': uni.getStorageSync('token')
                    },
                    success(result) {
                        result = result.data
                        if (result.code === 200 && result.data) {
                            that.matData = result.data
                            that.matnr = ''
                            that.matData['batch'] = ''
                            result.data.batch = matnr[2]
                            uni.navigateTo({
                                url: "../mat/matSelected",
                                // 通过eventChannel向被打开页面传送数据
                                success: function(res) {
                                    res.eventChannel.emit('mat', {
                                        data: result.data
                                    })
                                },
                                // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                                events: {
                                    matList: function(data) {
                                        that.checkMat(data.data)
                                        that.focuss()
                                    },
                                },
                            });
                        } else if (result.code == 403) {
                            uni.showToast({
                                title: result.msg,
                                icon: "none",
                                position: 'top'
                            })
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../login/login'
                                });
                            }, 1000);
                        } else {
                            uni.showToast({
                                title: result.msg,
                                icon: "none",
                                position: 'top'
                            })
                        }
                    }
                });
            },
            checkMat(mat) {
                mat['orderNo'] = this.order
                var len = this.dataList.length
@@ -420,28 +351,25 @@
            comb() {
                uni.vibrateShort();
                let that = this;
                if (that.orderNo === '') {
                    this.messageText = "请输入订单号"
                    this.messageToggle('error')
                    return;
                }
                if (that.dataList.length === 0) {
                    this.messageText = "请添加单据明细列表"
                    this.messageToggle('error')
                    return;
                }
                for (var i = 0; i < that.dataList.length; i++) {
                    if (that.dataList[i].anfme == 0 || that.dataList[i].anfme == '') {
                        this.messageText = that.dataList[i].matnr + '拣选数量不能为0'
                        this.messageToggle('error')
                        return;
                    }
                var useAnfme = 0
                for    (let order of that.dataList) {
                    useAnfme = useAnfme + order.anfme
                }
                if (useAnfme > that.mastAnfme) {
                    this.messageText = "出库数量已超最大库存数量"
                    this.messageToggle('error')
                    return;
                }
                uni.request({
                    url: that.baseUrl + '/mobile/pda/WarehouseOut/v1',
                    data: JSON.stringify({
                        locno: that.item.locNo,
                        orderNo: that.dataList[0].orderNo,
                        combMats: that.dataList
                    }),
                    method: 'POST',
@@ -495,6 +423,7 @@
                this.batch = this.dataList[i].batch
                this.weight = this.dataList[i].weight
                this.rowNum = i
                this.mastCount = this.dataList[i].anfme
                this.eject()
            },
            eject(type) {
@@ -560,7 +489,7 @@
    }
    .list:first-child {
        margin-top: 360rpx;
        margin-top: 260rpx;
    }
    .list:last-child {
@@ -578,7 +507,7 @@
    .code {
        width: 100%;
        position: fixed;
        min-height: 200rpx;
        min-height: 140rpx;
        background-color: #FFF;
        z-index: 10;
    }
@@ -619,7 +548,7 @@
        width: 100%;
        background-color: white;
        position: fixed;
        margin-top: 200rpx;
        margin-top: 140rpx;
        z-index: 9;
        /* border-top: 1px solid #DCDFE6; */
        text-align: center;
pages/pakin/pakin.vue
@@ -189,8 +189,8 @@
                matFocus: false,
                matData: '',
                removeNum: 0,
                ck1: true,
                ck2: false,
                ck1: false,
                ck2: true,
                fullPlt: 'N',
            }
        },