自动化立体仓库 - WMS系统
whycq
2023-08-26 82bcd0328dddbaad65933e2fada22bc68e82b3d5
src/main/webapp/views/home/map.html
@@ -413,13 +413,13 @@
                        <!--库位-->
                        <div v-else-if="map[index][idx].value  == 0" @contextmenu.prevent="rightEvent(index,idx,$event)">
                            <div v-if="map[index][idx].locSts == 'O'" class="pointBox pointBoxBlue">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'F'" @click.left.stop="selectLoc(index,idx)" :class="{'pointBoxSelected':map[index][idx].locOutSelected,'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxRed">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'D'" class="pointBox pointBoxEmpty">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'P'" class="pointBox pointBoxOut">{{ map[index][idx].locSts }}</div>
                            <div v-if="map[index][idx].locSts == 'O'" :class="{'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxBlue">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'F'" @click.left="selectLoc(index,idx)" :class="{'pointBoxSelected':map[index][idx].locOutSelected,'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxRed">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'D'" :class="{'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxEmpty">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'P'" :class="{'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxOut">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'R'" :class="{'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxOutYy">{{ map[index][idx].locSts }}</div>
                            <div v-else-if="map[index][idx].locSts == 'S'" class="pointBox pointBoxInYy">{{ map[index][idx].locSts }}</div>
                            <div v-else class="pointBox pointBoxDefault">{{ map[index][idx].locSts }}</div>
                            <div v-else class="pointBox pointBoxDefault" :class="{'pointBoxSearch':map[index][idx].searchStatus}">{{ map[index][idx].locSts }}</div>
                        </div>
                        <!--堆垛机-->
@@ -479,7 +479,13 @@
<!--                        <div>-->
<!--                            <button @click="locToLoc2" class="layui-btn layui-btn-sm">侧边移库</button>-->
<!--                        </div>-->
                        <div v-if="!locOutStatus">
                        <div>
                            <button @click="init" class="layui-btn layui-btn-sm">刷新</button>
                        </div>
                        <div style="margin-left: 10px;">
                            <button @click="resetSearch" class="layui-btn layui-btn-sm">重置</button>
                        </div>
                        <div v-if="!locOutStatus" style="margin-left: 10px;">
                            <button @click="locOutStatus = true" class="layui-btn layui-btn-sm">出库选择</button>
                        </div>
                        <div v-else style="margin-left: 10px;border: 1px red solid;display: flex;">
@@ -575,7 +581,7 @@
                    库位号: {{ map[mapI][mapJ].locNo }}
                </div>
                <div style="margin-top: 10px;">
                    库位状态: {{ map[mapI][mapJ].locSts$ }}
                    库位状态: {{ getLocSts(map[mapI][mapJ].locSts) }}
                </div>
                <div style="margin-top: 10px;display: flex;justify-content: space-between;flex-wrap: wrap;">
                    <div style="margin-top: 5px;">
@@ -662,7 +668,8 @@
                    label: "50%"
                },
                100: "100%",
            }
            },
            locStsList: [],//库位状态列表
        },
        created(){
            this.init()
@@ -685,6 +692,13 @@
                deep: true,
                handler(val) {
                    this.init()
                    if (this.searchMatnr != ""
                        || this.searchOrderNo != ""
                        || this.searchSpecs != ""
                        || this.searchMaktx != ""
                        || this.searchLocNo != "") {
                        this.searchLoc()
                    }
                }
            }
        },
@@ -702,6 +716,16 @@
                this.locOutStatus = false
                this.locOutLocNo = []
                this.getLocStsList();//获取库位状态列表
            },
            resetSearch(){
                this.searchMatnr = ""
                this.searchOrderNo = ""
                this.searchSpecs = ""
                this.searchMaktx = ""
                this.searchLocNo = ""
                this.searchLoc()
            },
            printData() {
                this.mapData = JSON.stringify(this.map)
@@ -756,6 +780,29 @@
                    success: function(layero, index){
                    }
                });
            },
            getLocStsList() {
                //获取库位状态列表
                let that = this
                $.ajax({
                    url: baseUrl + "/basLocSts/list/auth",
                    headers: {'token': localStorage.getItem('token')},
                    method: "get",
                    success: (res) => {
                        that.locStsList = res.data.records
                    }
                })
            },
            getLocSts(locSts) {
                //获取库位状态
                let locStsList = this.locStsList
                let locDesc = ""
                locStsList.forEach((item,index) => {
                    if (item.locSts == locSts) {
                        locDesc = item.locDesc
                    }
                })
                return locDesc
            },
            locMove(locNo) {
                //库位移转
@@ -864,7 +911,26 @@
                    async: false,
                    success: function (res) {
                        if (res.code === 200) {
                            locDetls = res.data
                            // locDetls = res.data
                            let data = res.data
                            //合并同类型
                            let tmpLocDetls = []
                            data.forEach((item,index) => {
                                let keyIdx = -1;
                                tmpLocDetls.forEach((val,idx) => {
                                    if (val.matnr == item.matnr) {
                                        keyIdx = idx
                                    }
                                })
                                if (keyIdx == -1) {
                                    tmpLocDetls.push(item);
                                }else {
                                    tmpLocDetls[keyIdx].anfme += item.anfme
                                }
                            })
                            locDetls = tmpLocDetls
                        } else if (res.code === 403) {
                            top.location.href = baseUrl + "/";
                        } else {
@@ -873,29 +939,34 @@
                    }
                })
                let alertText = "即将出库" + locDetls.length + "个物料<br/>"
                locDetls.forEach((item,index) => {
                    item.count = item.anfme
                    alertText += "物料号:" + item.matnr + "," + item.anfme + "个<br/>"
                })
                $.ajax({
                    url: baseUrl + "/plate/out/start",
                    headers: {'token': localStorage.getItem('token')},
                    data: JSON.stringify({
                        outSite: this.outSite,
                        locDetls: locDetls
                    }),
                    contentType:'application/json;charset=UTF-8',
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200){
                            $layui.layer.msg(res.msg);
                            that.init()
                        } else if (res.code === 403){
                            top.location.href = baseUrl+"/";
                        } else {
                            $layui.layer.msg(res.msg)
                layer.confirm(alertText, {title: '出库作业', shadeClose: true, area: ['auto']}, function(){
                    $.ajax({
                        url: baseUrl + "/plate/out/start",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify({
                            outSite: that.outSite,
                            locDetls: locDetls
                        }),
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                $layui.layer.msg(res.msg);
                                that.init()
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            } else {
                                $layui.layer.msg(res.msg)
                            }
                        }
                    }
                    });
                    layer.closeAll();
                });
            },
            searchDataIndex(data,dist) {
@@ -990,19 +1061,16 @@
                                })
                            })
                            data.forEach((item,index) => {
                                let locNo = item.locNo
                                let y = parseInt(locNo.substr(2,3))
                                let x = parseInt(locNo.substr(0,2))
                                if (x >= 4 && x <= 11) {
                                    x++;
                                }else if (x >= 12 && x <= 18) {
                                    x += 2;
                                } else if (x >= 19 && x <= 21) {
                                    x += 3;
                                }
                                tmp[x][y].searchStatus = true//搜索标记
                            data.forEach((item,i) => {
                                let locNo = item.locNo
                                tmp.forEach((item,index) => {
                                    item.forEach((val,idx) => {
                                        if (tmp[index][idx].locNo == locNo) {
                                            tmp[index][idx].searchStatus = true//搜索标记
                                        }
                                    })
                                })
                            })
                            that.map = tmp
                            $layui.layer.msg("搜索成功");