#
whycq
2024-08-01 40bab448d8ba5a29a80bd12f342d47e42e73483f
#
1个文件已修改
1个文件已添加
372 ■■■■■ 已修改文件
pages.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/confirmProcessed.vue 365 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -406,6 +406,13 @@
            {
                "navigationBarTitleText" : "回调库位"
            }
        },
        {
            "path" : "pages/phyz/stationManage/confirmProcessed",
            "style" :
            {
                "navigationBarTitleText" : "已加工确认"
            }
        }
    ],
    "globalStyle": {
pages/phyz/stationManage/confirmProcessed.vue
New file
@@ -0,0 +1,365 @@
<template>
    <view>
        <view class="list list-font-color" style="background-color: #b9b9b9;" :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-threeCode">{{orderDetl.threeCode}}</view>
                    <view class="detl-locNo">{{orderDetl.locNo}}</view>
                </view>
                <!-- 中 -->
                <view style="display: flex;">
                    <view style="flex: 1;">
                        <view>编号:{{orderDetl.matnr}}</view>
                        <view>名称:{{orderDetl.maktx}}</view>
                        <!-- <view>库位状态:{{orderDetl.locSts$}}</view> -->
                        <view>源出库数量:{{orderDetl.maxCount}}</view>
                        <view class="detl-threeCode" style="display: flex;padding: 32rpx 0;align-items: center;font-size: 24px;">
                            <view>加工数量:{{orderDetl.anfme}}</view>
                            <view style="margin-left: 50rpx;" @click="revise(orderDetl)">
                                <uni-icons type="compose" size="30" color="#fff"></uni-icons>
                            </view>
                        </view>
                    </view>
                    <!-- <view class="out-btn" @click="pakoutPrive(orderDetl)">
                        <view>出库</view>
                    </view> -->
                </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>
            <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="maxCount" 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>
            <uni-popup ref="process" type="dialog">
                <view class="popup">
                    <!-- 标题 -->
                    <view class="title">请输入</view>
                    <view class="popup-item">
                        <view class="popup-item-left">货架码:</view>
                        <view class="popup-item-right"><input type="text" v-model="barcode"></view>
                    </view>
                    <view class="popup-item">
                        <view class="popup-item-left">站点号:</view>
                        <view class="popup-item-right"><input type="text" v-model="devNo"></view>
                    </view>
                    <view class="btn">
                        <button class="btn-left" @click="processedClose">取消</button>
                        <button class="btn-right" @click="processedConfirm()" :disabled="processedDis">加工完成</button>
                    </view>
                </view>
            </uni-popup>
        </view>
        <!-- 底部操作按钮 -->
        <view class="buttom">
            <button size="mini" type="primary" @click="processed('warn')">确认加工</button>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                baseUrl: '',
                token: '',
                dataList: [],
                count: 0,
                containerType: '',
                isOpen: true,
                option: '',
                selects: [],
                orderId: '',
                data: '',
                maxCount: '',
                processedDis: false,
                barcode: '',
                devNo: ''
            }
        },
        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) {
                for (let k of data.item) {
                    k['maxCount'] = k.anfme
                }
                _this.dataList = require('lodash').cloneDeep(data.item)
            })
        },
        methods: {
            processed() {
                this.$refs.process.open()
            },
            processedClose() {
                this.$refs.process.close()
            },
            processedConfirm() {
                this.processedDis = true
                let that = this
                uni.request({
                    url: that.baseUrl + '/agvMobile/hand/control/processed',
                    header: {'token': uni.getStorageSync('token')},
                    data: {devNo: that.devNo, barcode: that.barcode,wrkDetls:that.dataList},
                    method: 'POST',
                    success(result) {
                        that.processedDis = false
                        var res = result.data
                        if (res.code === 200) {
                            that.$refs.process.close()
                            uni.showToast({ title: '操作成功', icon: "success", position: 'top' })
                            setTimeout(()=> {
                                uni.navigateBack({
                                    delta:1
                                });
                            },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) {
                        that.processedDis = false
                    }
                });
            },
            max() {
                this.data.anfme = this.data.count
            },
            addClose() {
                this.$refs.addItem.close()
                // this.data.anfme = 0
            },
            addConfirm() {
                this.$refs.addItem.close()
            },
            revise(item) {
                this.data = item
                this.maxCount = item.maxCount
                this.$refs.addItem.open()
            },
            changeValue(value) {
                this.data.anfme = value
            },
            pakoutPrive(item) {
                console.log(item);
                let _this = this
                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
            },
        }
    }
</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;
    }
    .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 {
        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;
    }
    .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;
    }
</style>