野心家
2024-11-20 1248b137e29692b870d7a77080dbfd081b514020
Merge remote-tracking branch 'origin/nbncPda' into nbncPda
2个文件已修改
1个文件已添加
344 ■■■■ 已修改文件
pages.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/orderComb.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/orderSelect.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -388,6 +388,15 @@
            }
            
        }
        ,{
            "path" : "pages/order/orderSelect",
            "style" :
            {
                "navigationBarTitleText": "选择订单",
                "enablePullDownRefresh": false
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
pages/order/orderComb.vue
@@ -20,10 +20,10 @@
                <input type="text" placeholder=" 扫码 / 输入" v-model="barcode" :focus="barcodeFocus"
                    @input="barcodeInput()">
            </view>
            <view class="item">
            <!-- <view class="item">
                <view class="code-decs">订单号:</view>
                <uni-combox :candidates="orderNoList" placeholder="请选择订单" v-model="orderNo" @input="getOrderDet"></uni-combox>
            </view>
            </view> -->
        </view>
        <view class="mat-list-title">
            <view style="width: 200rpx;"></view>
@@ -32,49 +32,21 @@
        </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>
                    <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">
@@ -113,7 +85,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='1' :max="9999999" color="#747474"
                            <uni-number-box :value="count" :step='1' :max="maxCount" color="#747474"
                                @change="changeValue" />
                        </view>
                    </view>
@@ -191,6 +163,7 @@
                removeNum: 0,
                orderNoList: [],
                orderNo: '',
                maxCount: 0
            }
        },
        onShow() {
@@ -212,14 +185,35 @@
                this.dataList[e].checked = ck ? false:true
            },
            getChecked() {
                var checkedList = []
                for(var i = 0; i < this.dataList.length; i++) {
                    var t = !this.dataList[i].checked
                    if (this.dataList[i].checked) {
                        checkedList.push(this.dataList[i])
                let _this = this
                uni.navigateTo({
                    url: './orderSelect',
                    success(res) {
                        res.eventChannel.emit('matList', {
                            matList: _this.dataList
                        })
                    },
                    events: {
                        pickList: function(data) {
                            for (let k of data.data) {
                                let add = true
                                if (_this.dataList.length == 0) {
                                    _this.dataList.push(k)
                                    continue
                                }
                                for (let m of _this.dataList) {
                                    if (k.matnr == m.matnr && k.orderNo == k.orderNo) {
                                        add = false
                                    }
                                }
                                if (add) {
                                    k['maxCount'] = k.anfme
                                    _this.dataList.push(k)
                                }
                            }
                        }
                    }
                }
                this.dataList = checkedList
                })
            },
            getOrderDet() {
                let that = this
@@ -459,6 +453,7 @@
                this.count = this.dataList[i].anfme
                this.batch = this.dataList[i].batch
                this.weight = this.dataList[i].weight
                this.maxCount = this.dataList[i].maxCount
                this.rowNum = i
                this.eject()
            },
@@ -542,7 +537,7 @@
    .code {
        width: 100%;
        position: fixed;
        min-height: 200rpx;
        min-height: 100rpx;
        background-color: #FFF;
        z-index: 10;
    }
@@ -583,7 +578,7 @@
        width: 100%;
        background-color: white;
        position: fixed;
        margin-top: 200rpx;
        margin-top: 100rpx;
        z-index: 9;
        /* border-top: 1px solid #DCDFE6; */
        text-align: center;
pages/order/orderSelect.vue
New file
@@ -0,0 +1,248 @@
<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;background-color: white;padding: 4px;margin: 4px;border-radius: 4px;">
                    <!-- <uni-search-bar  v-model="searchValue"
                        maxlength="500" ancel="cancel" @confirm="getMatList()" @clear="clear" placeholder="输入 / 扫描">
                    </uni-search-bar> -->
                    <uni-combox :candidates="orderNoList" placeholder="请选择订单" v-model="orderNo" @input="getOrderDet"></uni-combox>
                </view>
            </view>
            <view class="code-title">
                <view style="flex: 1;"></view>
                <view style="width: 100%;text-align: center;margin: 16rpx 0;flex: 1;">{{searchValue}} 总数量:- {{dataList.length}} -</view>
                <view style="flex: 1;display: flex;align-items: center;"><button size="mini" type="primary" @click="allSelect()">{{seltitle}}</button></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.enableQty}}</view>
            </view>
            <view class="order__list__right">
                <!-- <uni-icons type="folder-add" size="25"  color="#fff"></uni-icons> -->
                <label @click="checkboxChange(orderDetl)">
                    <checkbox :value="orderDetl.matnr" :checked="orderDetl.checked" style="transform:scale(0.7)" /><text></text>
                </label>
            </view>
        </view>
        <!-- 底部操作按钮 -->
        <view class="buttom">
            <button size="mini" type="primary" @click="addItems()">提取</button>
        </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: '',
                orderNo: '',
                orderNoList: [],
                seltitle: '全选'
            }
        },
        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()
            })
            this.getOrderNoList()
        },
        methods: {
            addItems() {
                let pickList = []
                for (let k of this.dataList) {
                    if (k.checked) {
                        pickList.push(k)
                    }
                }
                this.getOpenerEventChannel().emit('pickList', {data: pickList});
                uni.navigateBack({
                })
            },
            checkboxChange(e) {
                let items = this.dataList,
                values = e.matnr;
                if (e.checked) {
                    this.$set(e,'checked',false)
                } else {
                    this.$set(e,'checked',true)
                }
                var count = 0
                for (let k of items) {
                    if (k.checked) {
                        count++
                    }
                }
                if (count == items.length && count > 0) {
                    this.seltitle = '取消全选'
                } else {
                    this.seltitle = '全选'
                }
            },
            allSelect() {
                if (this.seltitle == '全选') {
                    for (let k of this.dataList) {
                        k.checked = true
                    }
                    this.seltitle = '取消全选'
                } else {
                    for (let k of this.dataList) {
                        k.checked = false
                    }
                    this.seltitle = '全选'
                }
            },
            getOrderDet() {
                let that = this
                uni.request({
                    url: that.baseUrl + '/order/list/orderNo',
                    data: {orderNo: that.orderNo} ,
                    method: 'GET',
                    success(res) {
                        res = res.data;
                        if (res.code === 200) {
                            that.dataList = res.data
                            for (var i = 0; i < that.dataList.length; i++) {
                                that.$set(that.dataList[i],'checked',false)
                            }
                        }
                    }
                })
            },
            getOrderNoList() {
                let that = this
                uni.request({
                    url: this.baseUrl + '/order/comb/list/all',
                    header: {
                        'token': uni.getStorageSync('token')
                    },
                    method: 'POST',
                    success(res) {
                        res = res.data
                        for (var i = 0; i < res.data.length; i++) {
                            that.orderNoList.push(res.data[i].order_no)
                        }
                    }
                })
            },
            clear() {
                this.searchValue = ''
                this.getOrderNoList(this.locNo)
            },
            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>