whycq
2024-05-18 c03369d5d964be137b621198e7a5a506c87fa33c
Merge branch 'phyzasrs' of http://47.97.1.152:5880/r/wms_app into phyzasrs
10个文件已修改
3个文件已添加
864 ■■■■■ 已修改文件
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/locMastManage.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/menuHome.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/wrkMastManage.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/bcp/bcpDbList.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/checkLocDetl/checkLocDetl.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/checkLocDetl/locMove.vue 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/pickAgain.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/stationDetl.vue 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/stationManage/stationManage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/phyz/wrkMast/locMoveMast.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/css/common/order.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -2,8 +2,8 @@
    "name" : "中扬WMS",
    "appid" : "__UNI__DA5854D",
    "description" : "",
    "versionName" : "20240511A",
    "versionCode" : 106,
    "versionName" : "20240515A",
    "versionCode" : 107,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
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
            }
        }
        ,{
            "path" : "pages/phyz/bcp/bcpDbList",
@@ -705,6 +721,14 @@
                "enablePullDownRefresh": false
            }
            
        },
        {
            "path" : "pages/phyz/wrkMast/locMoveMast",
            "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
@@ -32,13 +32,13 @@
                        // cuIcon: 'pullup',
                        url: `/phyz/stationManage/stationManage`
                    },
                    {
                        title: '入出库管理',
                        name: 'inOutManage',
                        color: 'purple',
                        // cuIcon: 'pullup',
                        url: `/home/inOutManage`
                    },
                    // {
                    //     title: '入出库管理',
                    //     name: 'inOutManage',
                    //     color: 'purple',
                    //     // cuIcon: 'pullup',
                    //     url: `/home/inOutManage`
                    // },
                    {
                        title: '单据管理',
                        name: 'ordeManage',
@@ -51,15 +51,15 @@
                        name: 'locManage',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/checkLocDetl/checkLocDetl`
                        url: `/home/locMastManage`
                    },
                    // {
                    //     title: '工作档管理',
                    //     name: 'ordeManage',
                    //     color: 'brown',
                    //     // cuIcon: 'pullup',
                    //     url: `/home/wrkMastManage`
                    // },
                    {
                        title: '任务管理',
                        name: 'ordeManage',
                        color: 'olive',
                        // cuIcon: 'pullup',
                        url: `/home/wrkMastManage`
                    },
                    // {
                    //     title: '测试',
                    //     name: 'testView',
pages/home/wrkMastManage.vue
@@ -25,34 +25,34 @@
                elements: [],
                project: 'tzsk',
                elements2: [
                    {
                        title: '工作档查询维护',
                        name: 'wrkMast',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/wrkMast/wrkMast`
                    },
                    {
                        title: '工作历史档维护',
                        name: 'wrkMastLog',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/wrkMast/wrkMastLog`
                    },
                    {
                        title: '入库通知档',
                        name: 'waitPakin',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/wrkMast/waitPakin`
                    },
                    {
                        title: '入库通知历史档',
                        name: 'waitPakinLog',
                        color: 'blue',
                        // cuIcon: 'pullup',
                        url: `/phyz/wrkMast/waitPakinLog`
                    },
                    // {
                    //     title: '工作档查询维护',
                    //     name: 'wrkMast',
                    //     color: 'blue',
                    //     // cuIcon: 'pullup',
                    //     url: `/phyz/wrkMast/wrkMast`
                    // },
                    // {
                    //     title: '工作历史档维护',
                    //     name: 'wrkMastLog',
                    //     color: 'blue',
                    //     // cuIcon: 'pullup',
                    //     url: `/phyz/wrkMast/wrkMastLog`
                    // },
                    // {
                    //     title: '入库通知档',
                    //     name: 'waitPakin',
                    //     color: 'blue',
                    //     // cuIcon: 'pullup',
                    //     url: `/phyz/wrkMast/waitPakin`
                    // },
                    // {
                    //     title: '入库通知历史档',
                    //     name: 'waitPakinLog',
                    //     color: 'blue',
                    //     // cuIcon: 'pullup',
                    //     url: `/phyz/wrkMast/waitPakinLog`
                    // },
                ],
                colorList: ['cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive','olive','grey' ]
            };
pages/phyz/bcp/bcpDbList.vue
@@ -284,6 +284,7 @@
                let param = {floor: this.floor,dbList: this.dbList,moveType: this.moveType}
                uni.request({
                    url: `${_this.baseUrl}/agvMobile/agv/v1/locMove`,
                    header: {'token': uni.getStorageSync('token'),},
                    data: param,
                    method: 'POST',
                    success(res) {
@@ -293,7 +294,12 @@
                            uni.navigateBack({
                                delta: 1
                            });
                        }
                        } 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' })
                        }
                    }
                })
                this.$refs.filter.close('bottom')
pages/phyz/checkLocDetl/checkLocDetl.vue
@@ -253,6 +253,9 @@
    .locSts-P {
        background-color: #ffaa00;
    }
    .locSts-Q {
        background-color: #47a301;
    }
    .locSts-X {
        background-color: #767676;
    }
pages/phyz/checkLocDetl/locMove.vue
New file
@@ -0,0 +1,340 @@
<template>
    <view>
        <view class="code">
            <uni-search-bar  v-model="searchValue1"
                maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clearVal" placeholder="输入 / 扫描 货架码">
            </uni-search-bar>
            <view style="display: flex;padding: 10rpx 20rpx;">
                <view class="dropdown">
                    <input type="text" style="flex: 1;" v-model="row1"  placeholder="请输入排" @confirm="getLocMastList('')">
                    <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('row1')"></uni-icons>
                </view>
                <view class="dropdown">
                    <input type="text" style="flex: 1;" v-model="bay1"   placeholder="请输入列"  @confirm="getLocMastList('')">
                    <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('bay1')"></uni-icons>
                </view>
                <view class="dropdown">
                    <input type="text" style="flex: 1;" v-model="lev1"  placeholder="请输入层" @confirm="getLocMastList('')">
                    <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('lev1')"></uni-icons>
                </view>
            </view>
        </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">
                            <uni-combox :candidates="floorList" placeholder="请选择目标楼层" v-model="floor"></uni-combox>
                        </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: '',
                floorList: ['1F','2F','3F'],
                floor: '',
                locMast: null
            }
        },
        onShow() {
            this.baseUrl = uni.getStorageSync('baseUrl');
            this.token = uni.getStorageSync('token');
            if (uni.getStorageSync('lev1')) {
                this.lev1 = uni.getStorageSync('lev1');
            } else {
                this.lev1 = 2
            }
            this.getLocMastList()
        },
        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
                }
                if (e.locSts == 'O') {
                    uni.showToast({ title: '当前库位为空库位', icon: "error", position: 'top' })
                    return
                }
                this.locMast = e
                this.$refs.check.open()
            },
            checkClose() {
                this.$refs.check.close()
            },
            checkConfirm() {
                let _this = this
                uni.request({
                    url: `${_this.baseUrl}/agvMobile/hand/control/locMove`,
                    header: {'token': uni.getStorageSync('token'),
                    },
                    data: JSON.stringify({
                        locNo: this.locMast.locNo,
                        floor: _this.floor
                    }),
                    method: 'POST',
                    success(res) {
                        res = res.data
                        if (res.code === 200) {
                            uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                            _this.$refs.check.close()
                            _this.getLocMastList()
                        } 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');
    .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-Q {
        background-color: #47a301;
    }
    .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; */
        margin-top: 30rpx;
        margin-bottom: 60rpx;
        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>
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
@@ -36,7 +36,7 @@
                <view>商品编码:{{wrkDetl.matnr}}</view>
                <view>销售订单号:{{wrkDetl.threeCode ? wrkDetl.threeCode : ' --'}}</view>
                <view>自由项:{{wrkDetl.deadTime ? wrkDetl.deadTime : ' --'}}</view>
                <view>出库数量:{{wrkDetl.anfme}}</view>
                <view>作业数量:{{wrkDetl.anfme}}</view>
            </view>
        </view>
        
@@ -81,7 +81,7 @@
            <uni-popup ref="doContainerMoveOut" type="dialog">
                <view class="popup">
                    <!-- 标题 -->
                    <view class="title">请输入空货架码</view>
                    <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>
@@ -124,7 +124,7 @@
                    </view>
                    <view class="btn">
                        <view class="btn-left" @click="pickInClose">取消</view>
                        <view class="btn-right" @click="pickIn()">入库</view>
                        <view class="btn-right" @click="pickIn()">确认拣料</view>
                    </view>
                </view>
            </uni-popup>
@@ -153,6 +153,23 @@
            </uni-popup>
        </view>
        
        <!-- 弹窗 -->
        <view>
            <uni-popup ref="allocationIn" 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="pickInClose">取消</view>
                        <view class="btn-right" @click="allocationInConfirm()">确认进场</view>
                    </view>
                </view>
            </uni-popup>
        </view>
        
        
        
@@ -165,6 +182,8 @@
            <button size="mini" type="primary" @click="doPickIn()" v-if="btnType == 'pick'">已拣料回库</button>
            <button size="mini" type="primary" @click="doPickIn2()" v-if="btnType == 'pick'">再次拣料</button>
            <button size="mini" type="primary" @click="startPakin()" v-if="btnType == 'start'">启动入库</button>
            <button size="mini" type="primary" @click="allocationOut()" v-if="btnType == 'allocationOut'">调拨离场</button>
            <button size="mini" type="primary" @click="allocationIn()" v-if="btnType == 'allocationIn'">调拨进场</button>
        </view>
    </view>
</template>
@@ -218,21 +237,16 @@
                        res = res.data
                        if (res.code === 200) {
                            if (res.data.records[0].locSts == 'O') {
                                _this.btnType = 'emptyPakin'
                                if (res.data.records[0].devNo.substring(0, 2) == "DB") {
                                    _this.btnType = 'allocationIn'
                                } else {
                                    _this.btnType = 'emptyPakin'
                                }
                            } else if (res.data.records[0].locSts == 'F') {
                                _this.btnType = 'pakin' 
                            } else {
                                _this.btnType = 'working' 
                            }
                            // if (res.data.records[0].locSts == 'O') {
                            //     res.data.records[0].locSts$ = '没有货架'
                            // } else if (res.data.records[0].locSts == 'F') {
                            //     res.data.records[0].locSts$ = '货架在库'
                            // } else if (res.data.records[0].locSts == 'S') {
                            //     res.data.records[0].locSts$ = '货架进入中'
                            // } else if (res.data.records[0].locSts == 'R') {
                            //     res.data.records[0].locSts$ = '货架离开中'
                            // }
                            
                            setTimeout(()=>{
                                for  (let k of res.data.records) {
@@ -415,6 +429,9 @@
                                    _this.btnType = 'pick'
                                } else if (wrkMast.ioType == 110) {
                                    wrkMast['ioTitle'] = '空板出库'
                                } else if (wrkMast.ioType == 111) {
                                    wrkMast['ioTitle'] = '空板出库'
                                    _this.btnType = 'allocationOut'
                                }
                                if (wrkMast.barcode == barcode) {
                                    mast = wrkMast
@@ -629,6 +646,69 @@
                    }
                });
            },
            // 调拨离场
            allocationOut() {
                let that = this
                let params = []
                let param = { devNo: this.station.devNo, containerCode: this.station.barcode, }
                params.push(param)
                uni.request({
                    url: that.baseUrl + '/agvMobile/hand/control/allocationOut',
                    header: {'token': uni.getStorageSync('token')},
                    data: {devNo: that.station.devNo},
                    method: 'POST',
                    success(result) {
                        var res = result.data
                        if (res.code === 200) {
                            setTimeout(()=> {
                                that.barcode = ''
                                that.reloadStation()
                            },1000)
                            uni.showToast({ title: '离场成功', icon: "success", position: 'top' })
                        } 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' })
                        }
                    }
                });
            },
            allocationIn() {
                this.$refs.allocationIn.open()
            },
            allocationInClose() {
                this.$refs.allocationIn.close()
            },
            allocationInConfirm() {
                let that = this
                let params = []
                let param = { devNo: this.station.devNo, containerCode: this.station.barcode, }
                params.push(param)
                uni.request({
                    url: that.baseUrl + '/agvMobile/hand/control/allocationIn',
                    header: {'token': uni.getStorageSync('token')},
                    data: {devNo: that.station.devNo, barcode: that.barcode},
                    method: 'POST',
                    success(result) {
                        var res = result.data
                        if (res.code === 200) {
                            that.$refs.allocationIn.close()
                            setTimeout(()=> {
                                that.barcode = ''
                                that.reloadStation()
                            },1000)
                            uni.showToast({ title: '进场成功', icon: "success", position: 'top' })
                        } 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>
@@ -637,13 +717,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="输入 / 扫描 站点号">
pages/phyz/wrkMast/locMoveMast.vue
New file
@@ -0,0 +1,22 @@
<template>
    <view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            }
        },
        methods: {
        }
    }
</script>
<style>
</style>
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;