#
whycq
2024-05-14 a11cb471f62b8e6ec5daba48828fd36e12c7d31d
#
2个文件已添加
2个文件已修改
554 ■■■■■ 已修改文件
pages.json 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/locMastManage.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/menuHome.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/checkLocDetl/locMove.vue 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -687,6 +687,22 @@
                "navigationBarTitleText" : "半成品调拨单",
                "enablePullDownRefresh" : false
            }
        },
        {
            "path" : "pages/home/locMastManage",
            "style" :
            {
                "navigationBarTitleText" : "库位管理",
                "enablePullDownRefresh" : false
            }
        },
        {
            "path" : "pages/phyz/checkLocDetl/locMove",
            "style" :
            {
                "navigationBarTitleText" : "库位转移",
                "enablePullDownRefresh" : false
            }
        }
    ],
    "globalStyle": {
pages/home/locMastManage.vue
New file
@@ -0,0 +1,226 @@
<template>
    <view>
        <scroll-view scroll-y class="page">
            <view class="nav-list">
                <navigator hover-class='none' :url="'/pages' + item.url" class="nav-li" navigateTo
                    :class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]"
                    v-for="(item,index) in elements" :key="index">
                    <view class="nav-title">{{item.title}}</view>
                    <view class="nav-name">{{item.name}}</view>
                    <text :class="'cuIcon-' + item.cuIcon"></text>
                </navigator>
            </view>
            <view class="cu-tabbar-height"></view>
        </scroll-view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                baseUrl: '',
                token: '',
                icon: '',
                elements: [],
                project: 'tzsk',
                elements2: [
                    {
                        title: '库位盘点维护',
                        name: 'checkLocDetl',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/checkLocDetl/checkLocDetl`
                    },
                    {
                        title: '移库(半成品)',
                        name: 'locMove',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/checkLocDetl/locMove`
                    },
                ],
                colorList: ['cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive','olive','grey' ]
            };
        },
        onShow() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            this.project = uni.getStorageSync('project')
            this.getAuth()
            this.backGroundRepeat()
        },
        methods: {
            backGroundRepeat() {
                let len = this.colorList.length
                let i = 0
                for (let k in this.elements2) {
                    if (i == len) {
                        i = 0
                    }
                    this.elements2[k].color = this.colorList[i]
                    i++
                }
            },
            getAuth() {
                let that = this
                uni.request({
                    url: that.baseUrl + '/menu/pda/auth',
                    data: {},
                    header: { 'token': uni.getStorageSync('token') },
                    method: 'POST',
                    success(res) {
                        console.log(res);
                        if (res.statusCode === 404) {
                            that.elements = that.elements2
                            return
                        }
                        res = res.data
                        that.elements = []
                        if (res.code === 200) {
                            if (res.data == undefined || res.data == null || res.data == "") {
                                that.elements = that.elements2
                                return
                            }
                            for (var i = 0; i < res.data.length; i++) {
                                if (res.data.length < 0) {
                                    break;
                                }
                                that.getIcon(res.data[i].title)
                                that.elements.unshift({
                                    title: res.data[i].name,
                                    name: res.data[i].title,
                                    color: that.colorList[i],
                                    cuIcon: that.icon,
                                    url: `/${that.project}${res.data[i].action}`
                                })
                            }
                            that.elements.push({
                                title: '退出登录',
                                name: 'logOut',
                                color: 'grey',
                                cuIcon: 'exit',
                                url: '/login/logOut'
                            })
                        } else if (res.code === 403) {
                            uni.showToast({
                                title: res.msg,
                                icon: "none",
                                position: 'top'
                            })
                            setTimeout(() => {
                                uni.reLaunch({
                                    url: '../login/login'
                                });
                            }, 1000);
                        } else if(res.status === 404) {
                            that.elements = that.elements2
                            // uni.showToast({
                            //     title: '默认主页',
                            //     icon: "none",
                            //     position: 'top'
                            // })
                        } else {
                            uni.showToast({
                                title: res.msg,
                                icon: "none",
                                position: 'top'
                            })
                        }
                    },
                    fail(err) {
                        console.log(err);
                    }
                })
            },
            getIcon(e) {
                const ways = ['pakin','orderPakin','orderPutOn']
                if (ways.includes(e)) {
                    this.icon = 'pullup'
                }
            }
        }
    }
</script>
<style>
    .page {
        height: 100vh;
    }
    .bg-red {
        background-color: #e54d42;
        color: #ffffff;
    }
    .bg-orange {
        background-color: #f37b1d;
        color: #ffffff;
    }
    .bg-yellow {
        background-color: #fbbd08;
        color: #333333;
    }
    .bg-olive {
        background-color: #8dc63f;
        color: #ffffff;
    }
    .bg-green {
        background-color: #39b54a;
        color: #ffffff;
    }
    .bg-cyan {
        background-color: #1cbbb4;
        color: #ffffff;
    }
    .bg-blue {
        background-color: #0081ff;
        color: #ffffff;
    }
    .bg-purple {
        background-color: #6739b6;
        color: #ffffff;
    }
    .bg-mauve {
        background-color: #9c26b0;
        color: #ffffff;
    }
    .bg-pink {
        background-color: #e03997;
        color: #ffffff;
    }
    .bg-brown {
        background-color: #a5673f;
        color: #ffffff;
    }
    .bg-grey {
        background-color: #8799a3;
        color: #ffffff;
    }
    .bg-gray {
        background-color: #f0f0f0;
        color: #333333;
    }
    .bg-black {
        background-color: #333333;
        color: #ffffff;
    }
    .bg-white {
        background-color: #ffffff;
        color: #666666;
    }
</style>
pages/home/menuHome.vue
@@ -51,7 +51,7 @@
                        name: 'locManage',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/checkLocDetl/checkLocDetl`
                        url: `/home/locMastManage`
                    },
                    // {
                    //     title: '工作档管理',
pages/phyz/checkLocDetl/locMove.vue
New file
@@ -0,0 +1,310 @@
<template>
    <view>
        <view class="code">
            <uni-search-bar  v-model="searchValue1"
                maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clearVal" placeholder="输入 / 扫描 货架码">
            </uni-search-bar>
        </view>
        <view class="list list-font-color" :class="locMast.color" v-for="(locMast,index) in dataList" :key="index">
            <view class="list-left">
                <view class="detl-threeCode">{{locMast.locNo}}</view>
                <view>库位状态:{{locMast.locSts$}}</view>
                <view>库位类型:{{locMast.locType1$}}</view>
                <view>货架码:{{locMast.barcode}}</view>
                <view style="display: flex;">
                    <view style="flex:1">排:<text style="font-size: 22px;font-weight: bold;">{{locMast.row1}}</text></view>
                    <view style="flex:1">列:<text style="font-size: 22px;font-weight: bold;">{{locMast.bay1}}</text></view>
                    <view style="flex:1">层:<text style="font-size: 22px;font-weight: bold;">{{locMast.lev1}}</text></view>
                </view>
            </view>
            <view class="list-right" @click="goToLocDetl(locMast)">
                <uni-icons type="right" size="25"  color="#fff"></uni-icons>
            </view>
        </view>
        <!-- 弹窗 -->
        <view>
            <uni-popup ref="check" 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="btn">
                        <view class="btn-left" @click="checkClose">取消</view>
                        <view class="btn-right" @click="checkConfirm()">确认</view>
                    </view>
                </view>
            </uni-popup>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                searchValue1: '',
                baseUrl: '',
                token: '',
                barcode: '',
                locNo: '123123',
                row1: '',
                bay1: '',
                lev1: '',
                dataList: [],
                item: ''
            }
        },
        onShow() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            if (uni.getStorageSync('lev1')) {
                this.lev1 = uni.getStorageSync('lev1');
            } else {
                this.lev1 = 2
            }
        },
        methods: {
            clear(e) {
                switch (e) {
                    case 'row1':
                        setTimeout(() => {
                            this.row1 = ''
                            this.getLocMastList('')
                        }, 100);
                        break;
                    case 'bay1':
                        setTimeout(() => {
                            this.bay1 = ''
                            this.getLocMastList('')
                        }, 100);
                        break;
                    case 'lev1':
                        setTimeout(() => {
                            this.lev1 = ''
                            this.getLocMastList('')
                        }, 100);
                        break;
                }
            },
            clearVal() {
                this.getLocMastList('')
            },
            searchValueInput1() {
                setTimeout(() => {
                    this.row1 = ''
                    this.bay1 = ''
                    this.lev1 = ''
                    this.getLocMastList(this.searchValue1)
                }, 100);
            },
            getLocMastList(barcode) {
                let _this = this
                uni.setStorageSync('lev1', this.lev1);
                uni.request({
                    url: `${_this.baseUrl}/agv/locMast/list/auth`,
                    header: {'token': uni.getStorageSync('token')},
                    data: {
                        curr: 1,
                        limit: 50,
                        row1: _this.row1,
                        bay1: _this.bay1,
                        floor: _this.lev1,
                        barcode: barcode
                    },
                    method: 'GET',
                    success(res) {
                        res = res.data
                        if (res.code === 200) {
                            for (let k of res.data.records) {
                                if (k.locSts == 'F') {
                                    k['color'] = 'locSts-F'
                                } else if (k.locSts == 'D') {
                                    k['color'] = 'locSts-D'
                                } else if (k.locSts == 'O') {
                                    k['color'] = 'locSts-O'
                                } else if (k.locSts == 'R') {
                                    k['color'] = 'locSts-R'
                                } else if (k.locSts == 'S') {
                                    k['color'] = 'locSts-S'
                                } else if (k.locSts == 'X') {
                                    k['color'] = 'locSts-X'
                                } else if (k.locSts == 'Q') {
                                    k['color'] = 'locSts-Q'
                                } else if (k.locSts == 'P') {
                                    k['color'] = 'locSts-P'
                                } else if (k.locSts == 'X') {
                                    k['color'] = 'locSts-X'
                                }
                            }
                            _this.dataList = res.data.records
                        } 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' })
                        }
                    }
                })
            },
            goToLocDetl(e) {
                this.locNo = e.locNo
                this.item = e
                if (e.locSts == 'S' || e.locSts == 'R') {
                    uni.showToast({ title: '当前库位在作业', icon: "error", position: 'top' })
                    return
                }
                this.$refs.check.open()
            },
            checkClose() {
                this.$refs.check.close()
            },
            checkConfirm() {
                let _this = this
                let param = {
                    barcode : _this.barcode,
                    locNo : _this.locNo,
                    item: _this.item
                }
                uni.navigateTo({
                    url: "./locDetl",
                    success: function(res) {
                        _this.$refs.check.close()
                        // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的
                        res.eventChannel.emit('item', {
                            item: param
                        })
                    },
                    events: {
                        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的
                        acceptDataFromOpenedPage: function(data) {
                            _this.$refs.check.close()
                            _this.getLocMastList()
                        }
                    },
                });
            }
        }
    }
</script>
<style>
    @import url('../../../static/css/common/order.css');
    .detl-threeCode {
        font-size: 28px;
        font-weight: bold;
    }
    .list-font-color {
        color: #fff;
        /* background-color: #2299ff; */
    }
    .dropdown {
        border: 1px solid #a7a7a7;
        border-radius: 8rpx;
        margin: 2px;
        padding: 6px;
    }
    .dropdown:first-child {
        margin-left: 2px;
    }
    .dropdown:last-child {
        margin-right: 2px;
    }
    .locSts-F {
        background-color: #d82f2f;
    }
    .locSts-D {
        background-color: #daad25;
    }
    .locSts-O {
        background-color: #55aaff;
    }
    .locSts-R {
        background-color: #aaaaff;
    }
    .locSts-S {
        background-color: #d86d66;
    }
    .locSts-P {
        background-color: #ffaa00;
    }
    .locSts-X {
        background-color: #767676;
    }
    .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;
        height: 80rpx;
        line-height: 80rpx;
        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;
    }
</style>