<template> 
 | 
    <view class="container"> 
 | 
        <view class="code"> 
 | 
            <!-- <uni-search-bar :focus="searchValueFocus" v-model="searchValue"  
 | 
                maxlength="500" ancel="cancel" @confirm="searchValueInput2()" @clear="clear" placeholder="输入 / 扫描 订单号"> 
 | 
            </uni-search-bar> --> 
 | 
            <view class="code-title"> 
 | 
                <view></view> 
 | 
                <view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchValue}} 总数量:- {{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.wrkNo}}</view> 
 | 
                <view>工作时间:{{orderDetl.ioTime$}}</view> 
 | 
                <view>调拨类型:{{orderDetl.ioType$}}</view> 
 | 
                <view>工作状况:{{orderDetl.wrkSts$}}</view> 
 | 
                <view>源库位:{{orderDetl.sourceLocNo}}</view> 
 | 
                <view>目标库位:{{orderDetl.locNo}}</view> 
 | 
                <view>目标楼层:{{orderDetl.crnNo}}</view> 
 | 
                <view>货架码:{{orderDetl.barcode}}</view> 
 | 
            </view> 
 | 
            <view class="list-right" @click="opt(orderDetl)"> 
 | 
                <uni-icons type="bars" size="25"  color="#fff"></uni-icons> 
 | 
            </view> 
 | 
        </view> 
 | 
         
 | 
         
 | 
        <!-- 垫高 --> 
 | 
        <view style="height: 340rpx;text-align: center;color: #b9b9b9;"> 
 | 
            - 已经到底了 - 
 | 
        </view> 
 | 
        <!-- 弹窗 --> 
 | 
        <view> 
 | 
            <uni-popup ref="addItem" type="dialog"> 
 | 
                <view class="popup"> 
 | 
                    <!-- 标题 --> 
 | 
                    <view class="title">入库数量</view> 
 | 
                    <view class="popup-item"> 
 | 
                        <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474" @change="changeValue" /> 
 | 
                    </view> 
 | 
                    <view class="btn"> 
 | 
                        <view class="btn-left" @click="addClose">取消</view> 
 | 
                        <view class="btn-right" @click="addConfirm()">添加</view> 
 | 
                    </view> 
 | 
                </view> 
 | 
            </uni-popup> 
 | 
        </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="wrk_no"> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="popup-item" style="background-color: #dfdfdf;"> 
 | 
                        <view class="item-cl"> 
 | 
                            <view>工作类型:</view> 
 | 
                            <input type="text" v-model="io_type"> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="popup-item" style="background-color: #dfdfdf;"> 
 | 
                        <view class="item-cl"> 
 | 
                            <view>工作状态:</view> 
 | 
                            <input type="text" v-model="wrk_sts"> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="popup-item" style="background-color: #dfdfdf;"> 
 | 
                        <view class="item-cl"> 
 | 
                            <view>源库位:</view> 
 | 
                            <input type="text" v-model="source_loc_no"> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="popup-item" style="background-color: #dfdfdf;"> 
 | 
                        <view class="item-cl"> 
 | 
                            <view>目标库位:</view> 
 | 
                            <input type="text" v-model="loc_no"> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="popup-item" style="background-color: #dfdfdf;"> 
 | 
                        <view class="item-cl"> 
 | 
                            <view>货架码:</view> 
 | 
                            <input type="text" v-model="barcode"> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="popup-item" style="background-color: #dfdfdf;"> 
 | 
                        <view class="item-cl"> 
 | 
                            <view>目标楼层:</view> 
 | 
                            <input type="text" v-model="crn_no"> 
 | 
                        </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> 
 | 
            <uni-popup ref="option" type="dialog"> 
 | 
                <view class="filter-popup" style="height: 50vh;"> 
 | 
                    <!-- 标题 --> 
 | 
                    <view class="title">操作</view> 
 | 
                    <view style="display: flex;flex-wrap: wrap;"> 
 | 
                        <button size="mini" type="primary" @click="handControlWrkMast('1')" v-show="complete" >完成</button> 
 | 
                        <button size="mini" type="warn" @click="handControlWrkMast('2')">取消(AGV)</button> 
 | 
                        <button size="mini" @click="handControlWrkMast('5')">取消</button> 
 | 
                    </view> 
 | 
                    <view style="display: flex;" v-show="tranType != 'N'"> 
 | 
                        <button size="mini" @click="changeType()">{{tranType}}</button> 
 | 
                    </view> 
 | 
                </view> 
 | 
            </uni-popup> 
 | 
        </view> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    export default { 
 | 
        data(){ 
 | 
            return { 
 | 
                baseUrl: '', 
 | 
                token: '', 
 | 
                searchValueFocus: true, 
 | 
                searchValue: '', 
 | 
                wrk_no: '', 
 | 
                barcode: '', 
 | 
                wrk_sts: '', 
 | 
                crn_no: '', 
 | 
                source_loc_no: '', 
 | 
                loc_no: '', 
 | 
                io_type: '', 
 | 
                total: '', 
 | 
                dataList: [], 
 | 
                orderCarList: [], 
 | 
                data: { 
 | 
                    curr: 1, 
 | 
                    limit: 100, 
 | 
                    wrk_no: '', 
 | 
                    barcode: '', 
 | 
                    wrk_sts: '', 
 | 
                    crn_no: '', 
 | 
                    source_loc_no: '', 
 | 
                    loc_no: '', 
 | 
                    io_type: '' 
 | 
                }, 
 | 
                index: 0, 
 | 
                count: 0, 
 | 
                mask: false, 
 | 
                wrkNo: '', 
 | 
                tranType: '转手动', 
 | 
                complete: true, 
 | 
                 
 | 
                 
 | 
            } 
 | 
        }, 
 | 
        // 下拉刷新 
 | 
        onReachBottom() { 
 | 
            this.status = 'more'; 
 | 
            this.getOrderDetlList(this.searchValue,10); 
 | 
        }, 
 | 
        onLoad() { 
 | 
            this.baseUrl = uni.getStorageSync('baseUrl'); 
 | 
            this.token = uni.getStorageSync('token'); 
 | 
            this.searchValue = uni.getStorageSync('wrkNoDb'); 
 | 
            this.getOrderDetlList(this.searchValue,10) 
 | 
            console.log("onLoad"); 
 | 
        }, 
 | 
        onShow() { 
 | 
            console.log(uni.getStorageSync('wrkNoDb')); 
 | 
        }, 
 | 
        onHide() { 
 | 
            uni.setStorageSync('wrkNoDb', this.orderCarList); 
 | 
        }, 
 | 
        methods: { 
 | 
            getOrderDetlList(threeCode,limit) { 
 | 
                uni.showLoading({}) 
 | 
                if (limit == 1) { 
 | 
                    this.dataList = [] 
 | 
                    this.data.curr = 1 
 | 
                } 
 | 
                let _this = this 
 | 
                _this.data.limit = 10 
 | 
                uni.request({ 
 | 
                    url: `${_this.baseUrl}/agv/wrkMast/list/auth/dbList`, 
 | 
                    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 ([21, 22, 201].includes(k.wrkSts)) { 
 | 
                                    k['color'] = 'order-sts-start' 
 | 
                                } else if ([205,206].includes(k.wrkSts)) { 
 | 
                                    k['color'] = 'order-sts-end' 
 | 
                                } else { 
 | 
                                    k['color'] = 'order-sts-working' 
 | 
                                } 
 | 
                            } 
 | 
                            let list = res.data.records 
 | 
                            _this.dataList =  _this.dataList.concat(list); 
 | 
                            _this.data.curr = _this.data.curr + 1 
 | 
                            // _this.dataList = res.data.records 
 | 
                            _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' }) 
 | 
                        } 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            searchValueInput2() { 
 | 
                this.dataList = [] 
 | 
                this.data.curr = 1 
 | 
                uni.setStorageSync('wrkNoDb', this.searchValue); 
 | 
                if (this.searchValue.length == 0) { 
 | 
                    this.getOrderDetlList(this.searchValue,10) 
 | 
                } else { 
 | 
                    this.getOrderDetlList(this.searchValue,10) 
 | 
                } 
 | 
                 
 | 
            }, 
 | 
            clear() { 
 | 
                this.dataList = [] 
 | 
                this.data.curr = 1 
 | 
                setTimeout(()=> { 
 | 
                    this.getOrderDetlList(this.searchValue,10) 
 | 
                },300) 
 | 
            }, 
 | 
            // 操作 
 | 
            opt(orderDetl) { 
 | 
                this.wrkNo = orderDetl.wrkNo 
 | 
                if (orderDetl.wrkSts != 22) { 
 | 
                    this.tranType = 'N' 
 | 
                } else { 
 | 
                    if (orderDetl.ioType == 108) { 
 | 
                        this.tranType = '转手动' 
 | 
                    } else { 
 | 
                        this.tranType = '转自动' 
 | 
                    } 
 | 
                } 
 | 
                 
 | 
                 
 | 
                this.$refs.option.open('bottom') 
 | 
            }, 
 | 
            addClose() { 
 | 
                this.$refs.addItem.close() 
 | 
                this.count = 0 
 | 
            }, 
 | 
            addConfirm() { 
 | 
                // if (this.count == 0) { 
 | 
                //     uni.showToast({ title: '入库数量不合法!', icon: "none", position: 'top' }) 
 | 
                //     return 
 | 
                // } 
 | 
                this.dataList[this.index]['used'] = true 
 | 
                this.dataList[this.index]['pakinQty'] = this.count 
 | 
                this.orderCarList.push(this.dataList[this.index]) 
 | 
                this.index = 0 
 | 
                this.count = 0 
 | 
                this.$refs.addItem.close() 
 | 
            }, 
 | 
            // 点击前往 待组托列表 
 | 
            orderCar() { 
 | 
                let _this = this 
 | 
                if (_this.orderCarList.length === 0) { 
 | 
                    uni.showToast({ title: '请添加入库商品!', icon: "none", position: 'top' }) 
 | 
                    return 
 | 
                } 
 | 
                uni.navigateTo({ 
 | 
                    url: '../order/orderCar', 
 | 
                    success(res) { 
 | 
                        res.eventChannel.emit('item', { 
 | 
                            item: _this.orderCarList 
 | 
                        }) 
 | 
                    }, 
 | 
                    events: { 
 | 
                        acceptDataFromOpenedPage: function(data) { 
 | 
                            console.log(data); 
 | 
                            if (data.data == 1) { 
 | 
                                _this.orderCarList = [] 
 | 
                                _this.getOrderDetlList(uni.getStorageSync('wrkNoDb'),10) 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            changeValue(value) { 
 | 
                this.count = value 
 | 
            }, 
 | 
            // 筛选 
 | 
            filter() { 
 | 
                this.$refs.filter.open('bottom') 
 | 
            }, 
 | 
            filterConfirm() { 
 | 
                this.dataList = [] 
 | 
                this.data.curr = 1 
 | 
                this.data.wrk_no = this.wrk_no 
 | 
                this.data.barcode = this.barcode 
 | 
                this.data.wrk_sts = this.wrk_sts 
 | 
                this.data.crn_no = this.crn_no 
 | 
                this.data.source_loc_no = this.source_loc_no 
 | 
                this.data.loc_no = this.loc_no 
 | 
                this.data.io_type = this.io_type 
 | 
                this.getOrderDetlList(this.data.wrk_no,10) 
 | 
                this.$refs.filter.close() 
 | 
            }, 
 | 
            filterClose() { 
 | 
                this.dataList = [] 
 | 
                this.data.wrk_no = '' 
 | 
                this.data.barcode = '' 
 | 
                this.data.wrk_sts = '' 
 | 
                this.data.crn_no = '' 
 | 
                this.data.source_loc_no = '' 
 | 
                this.data.loc_no = '' 
 | 
                this.data.io_type = '' 
 | 
                this.getOrderDetlList(this.searchValue,10) 
 | 
                this.$refs.filter.close() 
 | 
            }, 
 | 
            handControlWrkMast(type) { 
 | 
                let _this = this 
 | 
                let param = {workNo: _this.wrkNo,type: type} 
 | 
                uni.request({ 
 | 
                    url: `${_this.baseUrl}/agv/hand/control/wrkMast`, 
 | 
                    header: { 
 | 
                        'token': uni.getStorageSync('token'), 
 | 
                        'content-type': 'application/x-www-form-urlencoded' 
 | 
                    }, 
 | 
                    data: param, 
 | 
                    method: 'POST', 
 | 
                    success(res) { 
 | 
                        res = res.data 
 | 
                        if (res.code === 200) { 
 | 
                            _this.$refs.option.close() 
 | 
                            setTimeout(()=>{ 
 | 
                                _this.getOrderDetlList('',1) 
 | 
                            },100) 
 | 
                        } 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' }) 
 | 
                        } 
 | 
                    } 
 | 
                })  
 | 
            }, 
 | 
            changeType() { 
 | 
                let _this = this 
 | 
                let param = {workNo: _this.wrkNo} 
 | 
                uni.request({ 
 | 
                    url: `${_this.baseUrl}/agv/hand/control/wrkMast/changeType`, 
 | 
                    header: { 
 | 
                        'token': uni.getStorageSync('token'), 
 | 
                        'content-type': 'application/x-www-form-urlencoded' 
 | 
                    }, 
 | 
                    data: param, 
 | 
                    method: 'POST', 
 | 
                    success(res) { 
 | 
                        res = res.data 
 | 
                        if (res.code === 200) { 
 | 
                            _this.$refs.option.close() 
 | 
                            setTimeout(()=>{ 
 | 
                                _this.getOrderDetlList('',1) 
 | 
                            },100) 
 | 
                        } 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' }) 
 | 
                        } 
 | 
                    } 
 | 
                })  
 | 
            } 
 | 
             
 | 
        } 
 | 
    } 
 | 
     
 | 
</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; 
 | 
    } 
 | 
    .shop-car { 
 | 
        position: fixed; 
 | 
        left: 22rpx; 
 | 
        bottom: 150rpx; 
 | 
        background-color: #2299ff; 
 | 
        width: 260rpx; 
 | 
        height: 90rpx; 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
        box-shadow: 0 0 10px 5px rgba(0, 0, 0, .6); 
 | 
        border-radius: 10rpx; 
 | 
        color: #fff; 
 | 
        font-size: 28px; 
 | 
        font-weight: bold; 
 | 
    } 
 | 
    .car-left { 
 | 
        padding: 16rpx; 
 | 
        flex: 5; 
 | 
    } 
 | 
    .car-right { 
 | 
        flex: 4; 
 | 
    } 
 | 
     
 | 
    .mask { 
 | 
        position: absolute; 
 | 
        width: 100%; 
 | 
        height: 100vh; 
 | 
        z-index: 999; 
 | 
        top: 0; 
 | 
        left: 0; 
 | 
        background-color: rgba(0, 0, 0, .4); 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
        justify-content: center; 
 | 
        font-size: 16px; 
 | 
        color: #fff; 
 | 
    } 
 | 
     
 | 
    .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 { 
 | 
        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 button { 
 | 
        flex: 1; 
 | 
        margin: 16rpx; 
 | 
    } 
 | 
    .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> 
 |