#
whycq
2024-08-19 bd22cf1b35738f1556c9a45a8b3a55fe2959581c
#
1个文件已添加
3个文件已修改
387 ■■■■ 已修改文件
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/processOrder/orderCheck.vue 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/processOrder/orderCheck2.vue 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/processOrder/processOrder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -2,8 +2,8 @@
    "name" : "中扬WMS",
    "appid" : "__UNI__DA5854D",
    "description" : "",
    "versionName" : "20240809A",
    "versionCode" : 126,
    "versionName" : "20240819A",
    "versionCode" : 127,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
pages/phyz/processOrder/orderCheck.vue
@@ -1,32 +1,33 @@
<template>
    <view>
        <view class="list shop-car">
        <view class="list shop-car" v-for="item in dataList">
            <view class="list-left">
                <view class="detl-threeCode" style="padding: 16rpx 0;">{{data.csocode}}</view>
                <view>库位:{{data.locNo}}</view>
                <view>编号:{{data.matnr}}</view>
                <view>名称:{{data.maktx}}</view>
                <view>自由项:{{data.containerCode}}</view>
                <view>规格:{{data.specs}}</view>
                <view>批号:{{data.batch}}</view>
                <view>工序:{{data.processSts$}}</view>
                <view>库存数量:{{count}}</view>
                <view class="detl-threeCode" style="padding: 16rpx 0;">{{item.csocode}}</view>
                <view>库位:{{item.locNo}}</view>
                <view>编号:{{item.matnr}}</view>
                <view>名称:{{item.maktx}}</view>
                <view>自由项:{{item.containerCode}}</view>
                <view>规格:{{item.specs}}</view>
                <view>批号:{{item.batch}}</view>
                <view>库存数量:{{item.count}}</view>
                <view class="detl-threeCode" style="display: flex;padding: 32rpx 0;align-items: center;font-size: 24px;">
                    <view>出库数量:{{data.anfme}}</view>
                    <view style="margin-left: 50rpx;" @click="revise()">
                    <view>出库数量:{{item.anfme}}</view>
                    <view style="margin-left: 50rpx;" @click="revise(item)">
                        <uni-icons type="compose" size="30" color="#fff"></uni-icons>
                    </view>
                </view>
                
                <view class="detl-threeCode" style="display: flex;padding: 0 0 32rpx 0;font-size: 24px;">出库站:
                    <view class="dropdown" @click="toggleDropdown(data)">
                        <input type="text" style="width: 270rpx;font-size: 20px;" v-model="data.agvStaNo" placeholder="请选择出库站" placeholder-style="color: #fff">
                        <uni-icons :type="data.isOpen ? 'top' : 'bottom'" color="#fff" style="margin-left: 10rpx;"></uni-icons>
                        <scroll-view scroll-y="ture" class="dropdown-content" v-if="data.isOpen">
                            <view class="dropdown-item" v-for="option in data.agvStaNos" @click="selected(option,data)">{{option}}</view>
                    <view class="dropdown" @click="toggleDropdown(item)">
                        <!-- <view style="height: 100%;width: 100%; position: fixed;background-color: rgba(0,0,0,.4);left:0;top:0" v-if = "item.isOpen"></view> -->
                        <input type="text" style="width: 270rpx;font-size: 20px;" v-model="item.agvStaNo" placeholder="请选择出库站" placeholder-style="color: #fff">
                        <uni-icons :type="item.isOpen ? 'top' : 'bottom'" color="#fff" style="margin-left: 10rpx;"></uni-icons>
                        <scroll-view scroll-y="ture" class="dropdown-content" v-if="item.isOpen">
                            <view class="dropdown-item" v-for="option in options" @click="selected(option,item)">{{option}}</view>
                        </scroll-view>
                    </view>
                </view>
                <button @click="combConfirm(item)" :disabled="combDis">立即出库</button>
            </view>
        </view>
        <!-- 弹窗 -->
@@ -37,7 +38,7 @@
                    <view class="title">出库数量</view>
                    <view class="popup-item">
                        <view>
                            <uni-number-box :value="data.anfme" :step='1' :min="0" :max="count" color="#747474" @change="changeValue" />
                            <uni-number-box :value="data.anfme" :step='1' :min="0" :max="maxCount" color="#747474" @change="changeValue" />
                        </view>
                        
                    </view>
@@ -54,11 +55,12 @@
                </view>
            </uni-popup>
        </view>
        <view style="height: 100rpx;"></view>
        <!-- 底部操作按钮 -->
        <view class="buttom">
        <!-- <view class="buttom">
            <button size="mini" @click="reset('warn')">稍后处理</button>
            <button size="mini" type="primary" @click="combConfirm('warn')" :disabled="combDis">立即出库</button>
        </view>
        </view> -->
    </view>
</template>
@@ -69,9 +71,12 @@
                baseUrl: '',
                token: '',
                data: {},
                dataList: [],
                option: '',
                count: 0,
                combDis: false
                options: [],
                combDis: false,
                maxCount: 0,
                orderType: ''
            }
        },
        onShow() {
@@ -81,17 +86,31 @@
            // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
            const eventChannel = this.getOpenerEventChannel();
            // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
            eventChannel.on('mat', function(data) {
                let ids = [data.mat.id]
                _this.getPakoutList(ids,data.mat.locNo)
            // eventChannel.on('mat', function(data) {
            //     let ids = [data.mat.id]
            //     _this.getPakoutList(ids,data.mat.locNo)
            // })
            eventChannel.on('item', function(data) {
                let ids = [data.item.id]
                _this.getPakoutList(ids)
            })
            eventChannel.on('type', function(data) {
                console.log(data);
                if (data) {
                    _this.orderType = data.type
                }
            })
        },
        methods: {
            max() {
                 this.data.anfme = this.count
                this.data.anfme = this.data.count
            },
            toggleDropdown(item) {
                this.options = []
                item.isOpen = !item.isOpen;
                for    (let k of item.agvStaNos) {
                    this.options.push(k)
                }
            },
            selected(option,item) {
                item.agvStaNo = option
@@ -106,26 +125,18 @@
                    method: 'POST',
                    success(res) {
                        res = res.data
                        console.log(res);
                        if (res.code === 200) {
                            for (let k of res.data) {
                                if (locNo == k.locNo) {
                                if (k.locNo != null) {
                                    k['isOpen'] = false
                                    _this.count = k.anfme
                                    // k.anfme = 0
                                    switch (k.processSts) {
                                        case 1:
                                            k["processSts$"] = "待加工"
                                            break;
                                        case 2:
                                            k["processSts$"] = "已加工"
                                            break;
                                        case 3:
                                            k["processSts$"] = "无需加工"
                                            break;
                                    k['count'] = k.anfme
                                    k.anfme = 0
                                    if (_this.orderType == 'bcp') {
                                        if (k.locNo.substring(k.locNo.length - 1, k.locNo.length) == 1) {
                                            continue
                                        }
                                    }
                                    _this.data = k
                                    return
                                    _this.dataList.push(k)
                                }
                            }
                        } else if (res.code == 403) {
@@ -137,12 +148,14 @@
                    }
                })
            },
            revise() {
            revise(item) {
                this.data = item
                this.maxCount = item.count
                this.$refs.addItem.open()
            },
            addClose() {
                this.$refs.addItem.close()
                // this.data.anfme = 0
                this.data.anfme = 0
            },
            addConfirm() {
                this.$refs.addItem.close()
@@ -150,7 +163,7 @@
            changeValue(value) {
                this.data.anfme = value
            },
            combConfirm() {
            combConfirm(item) {
                let _this = this
                _this.combDis = true
                if (_this.data.anfme == 0) {
@@ -159,9 +172,9 @@
                }
                uni.showLoading({})
                let combList = []
                combList.push(_this.data)
                combList.push(item)
                uni.request({
                    url: `${_this.baseUrl}/process/out/pakout/auth`,
                    url: `${_this.baseUrl}/out/pakout/auth`,
                    header: {'token': uni.getStorageSync('token')},
                    data: combList,
                    method: 'POST',
pages/phyz/processOrder/orderCheck2.vue
New file
@@ -0,0 +1,274 @@
<template>
    <view>
        <view class="list shop-car">
            <view class="list-left">
                <view class="detl-threeCode" style="padding: 16rpx 0;">{{data.csocode}}</view>
                <view>库位:{{data.locNo}}</view>
                <view>编号:{{data.matnr}}</view>
                <view>名称:{{data.maktx}}</view>
                <view>自由项:{{data.containerCode}}</view>
                <view>规格:{{data.specs}}</view>
                <view>批号:{{data.batch}}</view>
                <view>工序:{{data.processSts$}}</view>
                <view>库存数量:{{count}}</view>
                <view class="detl-threeCode" style="display: flex;padding: 32rpx 0;align-items: center;font-size: 24px;">
                    <view>出库数量:{{data.anfme}}</view>
                    <view style="margin-left: 50rpx;" @click="revise()">
                        <uni-icons type="compose" size="30" color="#fff"></uni-icons>
                    </view>
                </view>
                <view class="detl-threeCode" style="display: flex;padding: 0 0 32rpx 0;font-size: 24px;">出库站:
                    <view class="dropdown" @click="toggleDropdown(data)">
                        <input type="text" style="width: 270rpx;font-size: 20px;" v-model="data.agvStaNo" placeholder="请选择出库站" placeholder-style="color: #fff">
                        <uni-icons :type="data.isOpen ? 'top' : 'bottom'" color="#fff" style="margin-left: 10rpx;"></uni-icons>
                        <scroll-view scroll-y="ture" class="dropdown-content" v-if="data.isOpen">
                            <view class="dropdown-item" v-for="option in data.agvStaNos" @click="selected(option,data)">{{option}}</view>
                        </scroll-view>
                    </view>
                </view>
            </view>
        </view>
        <!-- 弹窗 -->
        <view>
            <uni-popup ref="addItem" type="dialog">
                <view class="popup">
                    <!-- 标题 -->
                    <view class="title">出库数量</view>
                    <view class="popup-item">
                        <view>
                            <uni-number-box :value="data.anfme" :step='1' :min="0" :max="count" color="#747474" @change="changeValue" />
                        </view>
                    </view>
                    <view class="popup-item">
                        <view>
                            <view @click="max()" style="padding: 0rpx 16rpx;background-color: #d9d9d9;font-size: 10px;">MAX</view>
                        </view>
                    </view>
                    <view class="btn">
                        <view class="btn-left" @click="addClose">取消</view>
                        <view class="btn-right" @click="addConfirm()">确认</view>
                    </view>
                </view>
            </uni-popup>
        </view>
        <!-- 底部操作按钮 -->
        <view class="buttom">
            <button size="mini" @click="reset('warn')">稍后处理</button>
            <button size="mini" type="primary" @click="combConfirm('warn')" :disabled="combDis">立即出库</button>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                baseUrl: '',
                token: '',
                data: {},
                option: '',
                count: 0,
                combDis: false
            }
        },
        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('mat', function(data) {
                let ids = [data.mat.id]
                _this.getPakoutList(ids,data.mat.locNo)
            })
        },
        methods: {
            max() {
                 this.data.anfme = this.count
            },
            toggleDropdown(item) {
                item.isOpen = !item.isOpen;
            },
            selected(option,item) {
                item.agvStaNo = option
            },
            // 订单明细
            getPakoutList(ids,locNo) {
                let _this = this
                uni.request({
                    url: `${_this.baseUrl}/out/pakout/preview/auth`,
                    header: {'token': uni.getStorageSync('token')},
                    data: ids,
                    method: 'POST',
                    success(res) {
                        res = res.data
                        console.log(res);
                        if (res.code === 200) {
                            for (let k of res.data) {
                                if (locNo == k.locNo) {
                                    k['isOpen'] = false
                                    _this.count = k.anfme
                                    // k.anfme = 0
                                    switch (k.processSts) {
                                        case 1:
                                            k["processSts$"] = "待加工"
                                            break;
                                        case 2:
                                            k["processSts$"] = "已加工"
                                            break;
                                        case 3:
                                            k["processSts$"] = "无需加工"
                                            break;
                                    }
                                    _this.data = k
                                    return
                                }
                            }
                        } 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' })
                        }
                    }
                })
            },
            revise() {
                this.$refs.addItem.open()
            },
            addClose() {
                this.$refs.addItem.close()
                // this.data.anfme = 0
            },
            addConfirm() {
                this.$refs.addItem.close()
            },
            changeValue(value) {
                this.data.anfme = value
            },
            combConfirm() {
                let _this = this
                _this.combDis = true
                if (_this.data.anfme == 0) {
                    uni.showToast({ title: '出库数量不能为0!', icon: "error", position: 'top'})
                    return
                }
                uni.showLoading({})
                let combList = []
                combList.push(_this.data)
                uni.request({
                    url: `${_this.baseUrl}/process/out/pakout/auth`,
                    header: {'token': uni.getStorageSync('token')},
                    data: combList,
                    method: 'POST',
                    success(res) {
                        _this.combDis = false
                        res = res.data
                        if (res.code === 200) {
                            uni.hideLoading({})
                            uni.showToast({ title: '出库成功', icon: "success", position: 'top'})
                            setTimeout(()=> {
                                uni.navigateBack({
                                    delta: 2
                                });
                            },700)
                        } 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' })
                        }
                    },
                    fail(res) {
                        _this.combDis = false
                    }
                })
            }
        }
    }
</script>
<style scoped>
    @import url('../../../static/css/common/order.css');
    .shop-car {
        background-color: #2299ff;
        color: #fff;
    }
    .detl-threeCode {
        font-size: 34px;
        font-weight: bold;
    }
    .dropdown-item {
        font-size: 20px;
        font-weight: bold;
    }
    .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;
    }
</style>
pages/phyz/processOrder/processOrder.vue
@@ -203,7 +203,7 @@
                }
                let _this = this
                uni.navigateTo({
                    url: './processList',
                    url: './orderCheck',
                    success(res) {
                        res.eventChannel.emit('item', {
                            item: item