whycq
2024-05-14 62ae01bb0bf26a4efb07e641011225599538b443
Merge branch 'phyzasrs' of http://47.97.1.152:5880/r/wms_app into phyzasrs
9个文件已修改
2个文件已添加
978 ■■■■■ 已修改文件
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/orderManage.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/bcp/bcpDbList.vue 487 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/bcp/bcpDbOrder.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/bcp/bcpOrder.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/orderOut/bcpOrderOutSelect.vue 362 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/pickAgain.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/stationDetl.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/stationManage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/css/common/order.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -2,8 +2,8 @@
    "name" : "中扬WMS",
    "appid" : "__UNI__DA5854D",
    "description" : "",
    "versionName" : "20240428A",
    "versionCode" : 103,
    "versionName" : "20240514A",
    "versionCode" : 106,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
pages.json
@@ -704,6 +704,24 @@
                "enablePullDownRefresh" : false
            }
        }
        ,{
            "path" : "pages/phyz/bcp/bcpDbList",
            "style" :
            {
                "navigationBarTitleText": "调拨库位",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/phyz/orderOut/bcpOrderOutSelect",
            "style" :
            {
                "navigationBarTitleText": "半成品出库单",
                "enablePullDownRefresh": false
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
pages/home/orderManage.vue
@@ -55,17 +55,24 @@
                    },
                    {
                        title: '半成品入库单',
                        name: 'pakin',
                        name: 'bcpOrder',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/bcp/bcpOrder`
                    },
                    {
                        title: '半成品调拨单',
                        name: 'pakin',
                        name: 'bcpDbOrder',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/order/purchaseOrder`
                        url: `/phyz/bcp/bcpDbOrder`
                    },
                    {
                        title: '半成品出库单',
                        name: 'bcpOutOrder',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/orderOut/bcpOrderOutSelect`
                    },
                    
                ],
pages/phyz/bcp/bcpDbList.vue
New file
@@ -0,0 +1,487 @@
<template>
    <view>
        <view class="station station-wrk" v-if="station">
            <view class="mt-flex">
                <view class="station-title" style="flex: 4;">{{station.threeCode}}</view>
                <view class="station-title" style="flex: 1;">
                    <button size="mini" @click="allChecked()">{{allCheckBtnTitle}}</button>
                </view>
            </view>
            <view>调拨单号:{{station.orderNo}}</view>
            <view>物料编号:{{station.matnr}}</view>
            <view style="width: 100%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">物料名称:{{station.maktx}}</view>
            <view style="display: flex;">
                <view style="flex: 2;">调拨数量:{{station.anfme}}</view>
                <view style="flex: 3;">库存数量:{{station.stock}}</view>
            </view>
            <view style="display: flex;">
                <view style="flex: 2;">已调拨数量:{{station.qty}}</view>
                <view style="flex: 3;">当前选择调拨数量:{{station.count ? station.count : 0}}</view>
            </view>
        </view>
        <!-- 垫高 -->
        <view style="height: 400rpx;text-align: center;color: #b9b9b9;">
        </view>
        <view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index">
            <view class="list-left" style="display: flex;flex-direction: column;">
                <!-- 上 -->
                <view>
                    <view class="detl-locNo">{{orderDetl.locNo}}</view>
                    <view class="detl-locNo">货架码:{{orderDetl.suppCode}}</view>
                </view>
                <!-- 中 -->
                <view style="display: flex;">
                    <view style="flex: 1;">
                        <view>库位状态:{{orderDetl.locSts$}}</view>
                        <view>库存数量:{{orderDetl.anfme}}</view>
                    </view>
                </view>
                <!-- 下 -->
            </view>
            <view class="list-right" @click="checkboxChange(orderDetl)">
                <label >
                    <checkbox :value="orderDetl.orderNo" :checked="orderDetl.checked" style="transform:scale(0.7)" /><text></text>
                </label>
            </view>
        </view>
        <!-- 垫高 -->
        <view style="height: 160rpx;text-align: center;color: #b9b9b9;">
            - 已经到底了 -
        </view>
        <!-- 选择楼层弹窗 -->
        <view>
            <uni-popup ref="filter" type="dialog">
                <view class="filter-popup">
                    <!-- 标题 -->
                    <view class="title">调拨楼层</view>
                    <view class="popup-item" style="width: 100%;display: flex;justify-content: center;">
                        <view style="margin-top: 50rpx;width: 60%;">
                            <uni-combox :candidates="floorList" placeholder="请选择目标楼层" v-model="floor"></uni-combox>
                        </view>
                    </view>
                    <view class="btn filter-btn">
                        <view class="btn-right" @click="filterConfirm()">开始调拨</view>
                    </view>
                </view>
            </uni-popup>
        </view>
        <!-- 底部操作按钮 -->
        <view class="buttom">
            <button size="mini" @click="isAuto('unAuto')">手动</button>
            <button size="mini" type="primary" @click="isAuto('auto')">自动</button>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                baseUrl: '',
                token: '',
                dataList: [],
                dbList: [],
                count: 0,
                containerType: '',
                isOpen: true,
                option: '',
                selects: [],
                orderId: '',
                station: '',
                allCheck: false,
                allCheckBtnTitle: '全选',
                floorList: ['2楼','3楼'],
                floor: '',
                moveType: ''
            }
        },
        onShow() {
            let _this = this
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
            const eventChannel = this.getOpenerEventChannel();
            // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
            eventChannel.on('item', function(data) {
                console.log(data.item);
                data.item['count'] = 0
                _this.station = data.item
                _this.orderId = data.item.id
                _this.getLocDetl(data.item.orderNo,data.item.threeCode,data.item.matnr,data.item.id)
            })
        },
        methods: {
            getLocDetl(orderNo,threeCode,matnr,id) {
                let _this = this
                uni.request({
                    url: `${_this.baseUrl}/agvMobile/query/locDetl/v1`,
                    header: { 'token': uni.getStorageSync('token') },
                    data: {
                        orderNo: orderNo,
                        threeCode: threeCode ,
                        matnr: matnr,
                        floor: "F1"
                    },
                    method: 'POST',
                    success(res) {
                        res = res.data
                        console.log(res);
                        if (res.code === 200) {
                            for (let k of res.data) {
                                if (k.locSts == "F") {
                                    k['color'] = 'order-sts-start'
                                } else if (k.locSts != "F") {
                                    k['color'] = 'order-sts-working'
                                } else {
                                    k['color'] = 'order-sts-end'
                                }
                                k['id'] = id
                            }
                            _this.dataList = res.data
                        } 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' })
                        }
                    }
                })
            },
            pakoutPrive(item) {
                let _this = this
                console.log(item);
                if (item.locSts != 'F') {
                    uni.showToast({ title: '当前库位不是在库状态!', icon: "error", position: 'top' })
                    return
                }
                uni.navigateTo({
                    url: "./orderCheck",
                    success: function(res) {
                        // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的
                        res.eventChannel.emit('mat', {
                            mat: item,
                        })
                    },
                    events: {
                        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的
                        acceptDataFromOpenedPage: function(data) {
                            // _this.matnr = data.data
                        },
                    },
                });
            },
            pakout(item) {
                let _this = this
                let items = [item]
                uni.request({
                    url: `${_this.baseUrl}/out/pakout/auth`,
                    header: { 'token': uni.getStorageSync('token') },
                    data: items,
                    method: 'POST',
                    success(res) {
                        res = res.data
                        console.log(res);
                        if (res.code === 200) {
                        } 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' })
                        }
                    }
                })
            },
            // 开启 / 关闭下拉框
            toggleDropdown() {
                this.isOpen = !this.isOpen
            },
            // 选择货架类型
            selected(option) {
                this.containerType = option
            },
            checkboxChange(e) {
                console.log(e);
                let items = this.dataList,
                values = e.orderNo;
                if (e.checked) {
                    this.$set(e,'checked',false)
                } else {
                    this.$set(e,'checked',true)
                }
                let num = 0
                for (let k of items) {
                    if (k.checked) {
                        num++
                    }
                    if (num == items.length) {
                        this.allCheck = true
                        this.allCheckBtnTitle = '取消'
                    } else {
                        this.allCheck = false
                        this.allCheckBtnTitle = '全选'
                    }
                }
                this.upDateCount()
            },
            upDateCount() {
                let num = 0
                for (let k of this.dataList) {
                    if (k.checked) {
                        num = num + k.anfme
                    }
                }
                this.station.count = num
            },
            allChecked() {
                if (this.allCheck) {
                    this.allCheck = false
                    this.allCheckBtnTitle = '全选'
                } else {
                    this.allCheck = true
                    this.allCheckBtnTitle = '取消'
                }
                for (let item of this.dataList) {
                    if (this.allCheck) {
                        if (item.anfme == item.qty) {
                            this.$set(item,'checked',false)
                        } else {
                            this.$set(item,'checked',true)
                        }
                    } else {
                        this.$set(item,'checked',false)
                    }
                }
                this.upDateCount()
            },
            isAuto(type) {
                this.dbList = []
                for (let k of this.dataList) {
                    if (k.checked) {
                        this.dbList.push(k)
                    }
                }
                if (this.dbList.length == 0) {
                    uni.showToast({ title: '请选择调拨库位', icon: "error", position: 'top' })
                    return
                }
                this.moveType = type
                this.$refs.filter.open('bottom')
            },
            filterConfirm() {
                console.log(this.dbList);
                if (this.floor == '') {
                    uni.showToast({ title: '请选择调拨楼层', icon: "error", position: 'top' })
                    return
                }
                let _this = this
                let param = {floor: this.floor,dbList: this.dbList,moveType: this.moveType}
                uni.request({
                    url: `${_this.baseUrl}/agvMobile/agv/v1/locMove`,
                    data: param,
                    method: 'POST',
                    success(res) {
                        console.log(res);
                        res = res.data
                        if (res.code === 200) {
                            uni.navigateBack({
                                delta: 1
                            });
                        }
                    }
                })
                this.$refs.filter.close('bottom')
            }
        }
    }
</script>
<style>
    @import url('../../../static/css/common/order.css');
    .station {
        position: fixed;
        top: 85rpx;
        left: 0;
        right: 0;
        font-size: 18px;
        padding: 24rpx;
        z-index: 999;
    }
    /* #ifdef APP-PLUS */
    .station {
        position: fixed;
        top: 0rpx;
        left: 0;
        right: 0;
        font-size: 18px;
        padding: 24rpx;
        z-index: 999;
    }
    /* #endif */
    .station-title {
        font-size: 32px;
        font-weight: bold;
        /* padding: 2rpx 0; */
    }
    .station-barcode {
        font-size: 24px;
        font-weight: bold;
        padding: 24rpx 0;
    }
    .station-wrk {
        background-color: #ff7356;
        color: #fff;
    }
    .station-nowrk {
        background-color: #3eb689;
        color: #fff;
    }
    .list-font-color {
        color: #fff;
        /* background-color: #33bb44; */
    }
    .order-sts-start {
        background-color: #3eb689;
    }
    .order-sts-working {
        background-color: #ff9d46;
    }
    .order-sts-end {
        background-color: #ff7356;
    }
    .detl-threeCode {
        font-size: 28px;
        font-weight: bold;
    }
    .detl-locNo {
        font-size: 20px;
        font-weight: bold;
    }
    .out-btn {
        background-color: #3e82ff;
        height: 120rpx;
        width: 120rpx;
        line-height: 120rpx;
        text-align: center;
        border-radius: 50%;
        margin-left: 20rpx;
        margin-right: 20rpx;
    }
    .popup {
        width: 80vw;
        min-height: 100rpx;
        background-color: #FFF;
        border-radius: 25rpx;
        position: relative;
    }
    .title {
        height: 100rpx;
        line-height: 100rpx;
        width: 100%;
        color: #606266;
        text-align: center;
        font-size: 16px;
    }
    .popup-item {
        position: relative;
        display: flex;
        align-items: center;
        font-size: 14px;
    }
    .popup-item-left {
        width: 16vw;
        padding-right: 20rpx;
        text-align: right;
        color: #606266;
    }
    .popup-item-right {
        display: flex;
        align-items: center;
        width: 50vw;
        height: 50rpx;
        padding: 2px 5px;
        border: 1px solid #E4E7ED;
        border-radius: 5rpx;
    }
    .popup-item-right input{
        color: #606266;
    }
    .btn {
        display: flex;
        height: 90rpx;
        margin-top: 20rpx;
        border-top: 1px solid #DCDFE6;
        justify-content: center;
        align-items: center;
    }
    .btn-left {
        display: flex;
        flex: 1;
        height: 100%;
        justify-content: center;
        align-items: center;
        color: #606266;
        border-right: 1px solid #DCDFE6;
    }
    .btn-right {
        display: flex;
        flex: 1;
        justify-content: center;
        align-items: center;
        color: #409EFF;
    }
    .dropdown {
        position: relative;
        display: flex;
        width: 93%;
        align-items: center;
        padding: 0rpx 20rpx;
    }
    .dropdown-content {
        position: absolute;
        top: calc(100% + 15rpx);
        left: 0;
        width: calc(100% - 20rpx);
        max-height: 300rpx;
        background-color: #fff;
        box-shadow: 0 0px 6px rgba(0, 0, 0, 0.3);
        border-radius: 8rpx;
        z-index: 10;
    }
    .dropdown-item {
        padding: 12rpx;
        line-height: 1.2;
        font-size: 22px;
        color: #3a3a3a;
    }
    .filter-popup {
        width: 100%;
        height: 40vh;
        background-color: #FFF;
        position: relative;
        border-radius: 30rpx 30rpx 0rpx 0rpx;
    }
    .filter-popup-item {
        height: 100%;
        width: 100%;
        background-color: #c9cdd5;
    }
    .filter-popup-item-left {
        width: 30%;
        height: 100%;
        background-color: #DCDFE6;
    }
    .filter-btn {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        background-color: #FFF;
    }
</style>
pages/phyz/bcp/bcpDbOrder.vue
@@ -18,23 +18,16 @@
                <view>编号:{{orderDetl.matnr}}</view>
                <view>名称:{{orderDetl.maktx}}</view>
                <view>类型:{{orderDetl.brand}}</view>
                <view>总数量:{{orderDetl.anfme}}</view>
                <view>已入数量:{{orderDetl.qty}}</view>
                <view>调拨总量:{{orderDetl.anfme}}</view>
                <view>库存数量:{{orderDetl.stock}}</view>
                <view>已完成数量:{{orderDetl.qty}}</view>
            </view>
            <view class="list-right" @click="addItem(index)">
                <uni-icons type="folder-add" size="25"  color="#fff"></uni-icons>
            <view class="list-right" @click="goToLocDetl(orderDetl)">
                <uni-icons type="right" size="25"  color="#fff"></uni-icons>
            </view>
        </view>
        
        
        <view class="shop-car" @click="orderCar()">
            <view class="car-left">
                <uni-icons type="cart-filled" size="35"  color="#fff"></uni-icons>
            </view>
            <view class="car-right">
                <text>{{orderCarList.length}}</text>
            </view>
        </view>
        <!-- 垫高 -->
        <view style="height: 340rpx;text-align: center;color: #b9b9b9;">
            - 已经到底了 -
@@ -139,7 +132,7 @@
        onLoad() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            this.searchValue = uni.getStorageSync('threeCode');
            this.searchValue = uni.getStorageSync('bcpDbThreeCode');
            this.getOrderDetlList(this.searchValue,10)
            console.log("onLoad");
        },
@@ -157,7 +150,7 @@
                _this.data.three_code = threeCode
                _this.data.limit = limit
                uni.request({
                    url: `${_this.baseUrl}/order/bcp/detls/pakin/page/auth`,
                    url: `${_this.baseUrl}/order/bcpDb/detls/pakin/page/auth`,
                    header: {'token': uni.getStorageSync('token')},
                    data: _this.data,
                    method: 'GET',
@@ -192,7 +185,7 @@
            searchValueInput2() {
                this.dataList = []
                this.data.curr = 1
                uni.setStorageSync('threeCode', this.searchValue);
                uni.setStorageSync('bcpDbThreeCode', this.searchValue);
                if (this.searchValue.length == 0) {
                    this.getOrderDetlList(this.searchValue,10)
                } else {
@@ -257,7 +250,7 @@
                            console.log(data);
                            if (data.data == 1) {
                                _this.orderCarList = []
                                _this.getOrderDetlList(uni.getStorageSync('threeCode'),10)
                                _this.getOrderDetlList(uni.getStorageSync('bcpDbThreeCode'),10)
                            }
                        }
                    }
@@ -289,7 +282,23 @@
                this.data.brand = ''
                this.getOrderDetlList(this.searchValue,10)
                this.$refs.filter.close()
            }
            },
            goToLocDetl(item) {
                let _this = this
                uni.navigateTo({
                    url: './bcpDbList',
                    success(res) {
                        res.eventChannel.emit('item', {
                            item: item
                        })
                    },
                    events: {
                        acceptDataFromOpenedPage: function(data) {
                            _this.getOrderDetlList(this.searchValue1,10)
                        }
                    }
                })
            },
            
        }
    }
pages/phyz/bcp/bcpOrder.vue
@@ -139,7 +139,7 @@
        onLoad() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            this.searchValue = uni.getStorageSync('threeCode');
            this.searchValue = uni.getStorageSync('bcpThreeCode');
            this.getOrderDetlList(this.searchValue,10)
            console.log("onLoad");
        },
@@ -192,7 +192,7 @@
            searchValueInput2() {
                this.dataList = []
                this.data.curr = 1
                uni.setStorageSync('threeCode', this.searchValue);
                uni.setStorageSync('bcpThreeCode', this.searchValue);
                if (this.searchValue.length == 0) {
                    this.getOrderDetlList(this.searchValue,10)
                } else {
@@ -257,7 +257,7 @@
                            console.log(data);
                            if (data.data == 1) {
                                _this.orderCarList = []
                                _this.getOrderDetlList(uni.getStorageSync('threeCode'),10)
                                _this.getOrderDetlList(uni.getStorageSync('bcpThreeCode'),10)
                            }
                        }
                    }
pages/phyz/orderOut/bcpOrderOutSelect.vue
New file
@@ -0,0 +1,362 @@
<template>
    <view>
        <view class="code">
            <uni-search-bar  v-model="searchValue1"
                maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clear" placeholder="输入 / 扫描 订单号">
            </uni-search-bar>
            <view class="code-title">
                <view></view>
                <view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchValue1}} 总数量:- {{total}} -</view>
                <view style="width: 100rpx;margin: 16rpx 0;" @click="filter()">筛选</view>
            </view>
        </view>
        <view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index">
            <view class="list-left">
                <view class="detl-threeCode">{{orderDetl.threeCode}}</view>
                <view>主单号:{{orderDetl.orderNo}}</view>
                <view>编号:{{orderDetl.matnr}}</view>
                <view>名称:{{orderDetl.maktx}}</view>
                <view>类型:{{orderDetl.brand}}</view>
                <view>订单数量:{{orderDetl.anfme}}</view>
                <view>库存数量:{{orderDetl.stock}}</view>
                <view>已出数量:{{orderDetl.qty}}</view>
            </view>
            <view class="list-right" @click="goToLocDetl(orderDetl)">
                <uni-icons type="right" size="25"  color="#fff"></uni-icons>
            </view>
        </view>
        <!-- 垫高 -->
        <view style="height: 340rpx;text-align: center;color: #b9b9b9;">
            - 已经到底了 -
        </view>
        <!-- <view class="buttom">
            <view style="width: 150rpx;text-align: center;padding-left: 12rpx;">
                名称
            </view>
            <uni-search-bar v-model="searchValue2" style="width: 100%;"
                maxlength="500" ancel="cancel" @confirm="searchValueInput2()" @clear="clear2" placeholder="输入 / 扫描 订单号">
            </uni-search-bar>
        </view> -->
        <!-- 筛选弹窗 -->
        <view>
            <uni-popup ref="filter" type="dialog">
                <view class="filter-popup">
                    <!-- 标题 -->
                    <view class="title">筛选</view>
                    <view class="popup-item" style="background-color: #dfdfdf;">
                        <view class="item-cl">
                            <view>销售订单:</view>
                            <input type="text" v-model="searchValue1">
                        </view>
                    </view>
                    <view class="popup-item" style="background-color: #dfdfdf;">
                        <view class="item-cl">
                            <view>主订单号:</view>
                            <input type="text" v-model="orderNo">
                        </view>
                    </view>
                    <view class="popup-item" style="background-color: #dfdfdf;">
                        <view class="item-cl">
                            <view>商品编号:</view>
                            <input type="text" v-model="matnr">
                        </view>
                    </view>
                    <view class="popup-item" style="background-color: #dfdfdf;">
                        <view class="item-cl">
                            <view>商品名称:</view>
                            <input type="text" v-model="maktx">
                        </view>
                    </view>
                    <view class="popup-item" style="background-color: #dfdfdf;">
                        <view class="item-cl">
                            <view>商品种类:</view>
                            <input type="text" v-model="brand">
                        </view>
                    </view>
                    <view class="btn filter-btn">
                        <view class="btn-left" @click="filterClose">重置</view>
                        <view class="btn-right" @click="filterConfirm()">确认</view>
                    </view>
                </view>
            </uni-popup>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                baseUrl: '',
                token: '',
                searchValue1: '',
                searchValue2: '',
                orderNo: '',
                matnr: '',
                maktx: '',
                brand: '',
                total: '',
                dataList: [],
                orderCarList: [],
                data: {
                    curr: 1,
                    limit: 100,
                    three_code: '',
                    matnr: '',
                    maktx: '',
                    order_no: '',
                    brand: ''
                },
            }
        },
        onReachBottom() {
            this.status = 'more';
            this.getOrderDetlList(this.searchValue1,10);
        },
        onShow() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            this.searchValue1 = uni.getStorageSync('threeCodeOut1');
            this.searchValue2 = uni.getStorageSync('threeCodeOut2');
            this.getOrderDetlList(this.searchValue1,10)
        },
        methods: {
            getOrderDetlList(threeCode,limit) {
                uni.showLoading({})
                let _this = this
                _this.mask = true
                _this.data.three_code = threeCode
                _this.data.limit = limit
                uni.request({
                    url: `${_this.baseUrl}/orderDetl/pakout/list/authV4`,
                    header: {'token': uni.getStorageSync('token')},
                    data: _this.data,
                    method: 'GET',
                    success(res) {
                        uni.hideLoading({})
                        res = res.data
                        if (res.code === 200) {
                            for (let k of res.data.records) {
                                if (k.anfme > k.qty && k.qty == 0) {
                                    k['color'] = 'order-sts-start'
                                } else if (k.anfme > k.qty && k.qty != 0) {
                                    k['color'] = 'order-sts-working'
                                } else {
                                    k['color'] = 'order-sts-end'
                                }
                            }
                            let list = res.data.records
                            _this.dataList =  _this.dataList.concat(list);
                            _this.data.curr = _this.data.curr + 1
                            _this.total = res.data.total
                            _this.mask = false
                        } 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' })
                        }
                    }
                })
            },
            searchValueInput1() {
                this.dataList = []
                this.data.curr = 1
                uni.setStorageSync('threeCodeOut1', this.searchValue1);
                uni.setStorageSync('threeCodeOut2', this.searchValue2);
                if (this.searchValue1.length == 0) {
                    this.getOrderDetlList(this.searchValue1,10)
                } else {
                    this.getOrderDetlList(this.searchValue1,10)
                }
            },
            searchValueInput2() {
                uni.setStorageSync('threeCodeOut1', this.searchValue1);
                uni.setStorageSync('threeCodeOut2', this.searchValue2);
                if (this.searchValue1.length == 0) {
                    this.getOrderDetlList(this.searchValue1,10)
                } else {
                    this.getOrderDetlList(this.searchValue1,10)
                }
            },
            clear() {
                this.dataList = []
                this.data.curr = 1
                setTimeout(()=> {
                    this.getOrderDetlList(this.searchValue,10)
                },300)
            },
            clear2() {
                setTimeout(()=> {
                    this.searchValue2 = ''
                    this.getOrderDetlList(this.searchValue1,10)
                },300)
            },
            goToLocDetl(item) {
                let _this = this
                uni.navigateTo({
                    url: './orderList',
                    success(res) {
                        res.eventChannel.emit('item', {
                            item: item
                        })
                    },
                    events: {
                        acceptDataFromOpenedPage: function(data) {
                            _this.getOrderDetlList(this.searchValue1,10)
                        }
                    }
                })
            },
            // 筛选
            filter() {
                this.$refs.filter.open('bottom')
            },
            filterConfirm() {
                this.dataList = []
                this.data.curr = 1
                this.data.maktx = this.maktx
                this.data.matnr = this.matnr
                this.data.order_no = this.order_no
                this.data.brand = this.brand
                this.getOrderDetlList(this.searchValue1,10)
                this.$refs.filter.close()
            },
            filterClose() {
                this.dataList = []
                this.data.curr = 1
                this.data.maktx = ''
                this.data.matnr = ''
                this.data.order_no = ''
                this.data.brand = ''
                this.getOrderDetlList(this.searchValue1,10)
                this.$refs.filter.close()
            }
        }
    }
</script>
<style>
    @import url('../../../static/css/common/order.css');
    .list-font-color {
        color: #fff;
        /* background-color: #33bb44; */
    }
    .order-sts-start {
        background-color: #3eb689;
    }
    .order-sts-working {
        background-color: #ff9d46;
    }
    .order-sts-end {
        background-color: #ff7356;
    }
    .detl-threeCode {
        font-size: 28px;
        font-weight: bold;
    }
    .title {
        height: 100rpx;
        line-height: 100rpx;
        width: 100%;
        color: #606266;
        text-align: center;
        font-size: 16px;
    }
    .popup-item {
        height: 80rpx;
        line-height: 80rpx;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .popup-item-left {
        width: 16vw;
        padding-right: 20rpx;
        text-align: right;
        color: #606266;
    }
    .popup-item-right {
        display: flex;
        align-items: center;
        width: 50vw;
        height: 50rpx;
        padding: 2px 5px;
        border: 1px solid #E4E7ED;
        border-radius: 5rpx;
    }
    .popup-item-right input{
        color: #606266;
    }
    .btn {
        display: flex;
        height: 90rpx;
        margin-top: 20rpx;
        border-top: 1px solid #DCDFE6;
        justify-content: center;
        align-items: center;
    }
    .btn-left {
        display: flex;
        flex: 1;
        height: 100%;
        justify-content: center;
        align-items: center;
        color: #606266;
        border-right: 1px solid #DCDFE6;
    }
    .btn-right {
        display: flex;
        flex: 1;
        justify-content: center;
        align-items: center;
        color: #409EFF;
    }
    .filter-popup {
        width: 100%;
        height: 80vh;
        background-color: #FFF;
        position: relative;
        border-radius: 30rpx 30rpx 0rpx 0rpx;
    }
    .filter-popup-item {
        height: 100%;
        width: 100%;
        background-color: #c9cdd5;
    }
    .filter-popup-item-left {
        width: 30%;
        height: 100%;
        background-color: #DCDFE6;
    }
    .item-btn {
        width: 100%;
        height: 80rpx;
        line-height: 80rpx;
        background-color: #c9cdd5;
        text-align: center;
    }
    .item-btn:checked {
        background-color: #606266;
    }
    .filter-btn {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        background-color: #FFF;
    }
    .item-cl {
        display: flex;align-items: center;
    }
    .item-cl input {
        border-bottom: 1px solid #b9b9b9;
    }
</style>
pages/phyz/stationManage/pickAgain.vue
@@ -8,6 +8,7 @@
                <view>名称:{{orderDetl.maktx}}</view>
                <view>库存数量:{{orderDetl.anfme}}</view>
                <view>订单可出数量:{{orderDetl.stock}}</view>
                <view>已拣数量:{{orderDetl.pickedAnfme}}</view>
                <view>拣料数量:{{orderDetl.count}}</view>
            </view>
            <view class="list-right" @click="addItem(index)">
@@ -51,7 +52,8 @@
                count: 0,
                maxCount: 0,
                wrkNo: '',
                locNo: ''
                locNo: '',
                pickedAnfme: 0
            }
        },
        onShow() {
@@ -85,6 +87,8 @@
                        res = res.data
                        console.log(res);
                        if (res.code === 200) {
                            _this.chosed(_this.pickList,res.data.records)
                            return
                            let enbleList = [], isfl;
                            for (let k of res.data.records) {
                                isfl = false;
@@ -120,8 +124,31 @@
                })
            },
            // 已选拣料列表
            orderCar() {
            chosed(wrkDetls,locDetls) {
                let isfl = false, enbleList = []
                for (let locDetl of locDetls) {
                    locDetl['color'] = 'order-sts-start'
                    locDetl['pickedAnfme'] = 0
                    locDetl['count'] = 0
                    for (let wrkDetl of wrkDetls) {
                        if (wrkDetl.threeCode == locDetl.threeCode && wrkDetl.matnr == locDetl.matnr) {
                            locDetl['pickedAnfme'] = wrkDetl.anfme
                            if (locDetl.stock == -1) {
                                locDetl.stock = 0
                            }
                            if (wrkDetl.anfme < locDetl.anfme) {
                                locDetl['color'] = 'order-sts-working'
                                locDetl['pickedAnfme'] = wrkDetl.anfme
                                locDetl['count'] = 0
                            } else {
                                locDetl['color'] = 'order-sts-end'
                            }
                            break
                        }
                    }
                }
                this.dataList = locDetls
            },
            // 添加入库商品至 待组托列表
            addItem(index) {
pages/phyz/stationManage/stationDetl.vue
@@ -637,13 +637,13 @@
    @import url('../../../static/css/common/order.css');
    
    .station {
        font-size: 18px;
        padding: 24rpx;
        font-size: 15px;
        padding: 18rpx;
    }
    .station-title {
        font-size: 32px;
        font-size: 28px;
        font-weight: bold;
        padding: 24rpx 0;
        padding: 18rpx 0;
    }
    .station-barcode {
        font-size: 24px;
pages/phyz/stationManage/stationManage.vue
@@ -1,5 +1,5 @@
<template>
    <view>
    <view style="font-size: 14px;">
        <view class="code">
            <uni-search-bar :focus="searchValueFocus" v-model="searchValue"  @input="searchValueInput()"
                maxlength="500" ancel="cancel" @clear="clear" placeholder="输入 / 扫描 站点号">
static/css/common/order.css
@@ -15,7 +15,7 @@
    }
    .list {
        margin: 20rpx;
        font-size: 14px;
        background-color: #fff;
        border-radius: 20rpx;
        border: 1px solid #eeeeee;