From dc5199737e9dbb5f8a0996a6ae5674bfb69e62ad Mon Sep 17 00:00:00 2001
From: gaosp <gaosp>
Date: 星期六, 06 一月 2024 23:41:19 +0800
Subject: [PATCH] 修改厂房地图

---
 src/container/Map/index.vue |  251 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 247 insertions(+), 4 deletions(-)

diff --git a/src/container/Map/index.vue b/src/container/Map/index.vue
index 1cd0f69..7efca02 100644
--- a/src/container/Map/index.vue
+++ b/src/container/Map/index.vue
@@ -1,21 +1,264 @@
 <!--
  * @Date: 2024-01-05 22:26:22
  * @LastEditors: Sneed
- * @LastEditTime: 2024-01-05 23:12:49
+ * @LastEditTime: 2024-01-06 23:10:19
  * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/Map/index.vue
 -->
 <template>
-    <div style="color: red">杞﹂棿鍦板浘</div>
+    <div class="workshop">
+        <Map v-if="status===0 || status === 1" :status="status" :currentMap="currentMap" :name="plantName" :id="id" @out="out" />
+        <div v-else class="preview">
+            <div class="left">
+                <div @click="editMap" class="edit-btn">
+                    杩涘叆缂栬緫鐘舵��
+                </div>
+                <el-select clearable class="left-select" v-model="id" placeholder="璇烽�夋嫨">
+                    <el-option
+                    v-for="item in mapList"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id">
+                    </el-option>
+                </el-select>
+                <div class="left-item left-1">
+                    <div>44%</div>
+                    <div>寮�鏈虹巼</div>
+                </div>
+                <div class="left-item left-2">
+                    <div>44%</div>
+                    <div>鏁呴殰鐜�</div>
+                </div>
+                <div class="left-item left-3">
+                    <div>44%</div>
+                    <div>鍒囧墛鐜�</div>
+                </div>
+                <div class="left-item left-4">
+                    <div>44%</div>
+                    <div>浜岀彮寮�宸ョ巼</div>
+                </div>
+                <div class="left-item left-5">
+                    <div>44%</div>
+                    <div>涓夌彮寮�宸ョ巼</div>
+                </div>
+            </div>
+            <div class="right">
+                <div class="top">
+                    <div class="top-item top-1">
+                        <div>16</div>
+                        <div>鍋滄満鐘舵��</div>
+                    </div>
+                    <div class="top-item top-2">
+                        <div>16</div>
+                        <div>鍋滄満鐘舵��</div>
+                    </div>
+                    <div class="top-item top-3">
+                        <div>16</div>
+                        <div>鍋滄満鐘舵��</div>
+                    </div>
+                    <div class="top-item top-4">
+                        <div>16</div>
+                        <div>鍋滄満鐘舵��</div>
+                    </div>
+                    <div class="top-item top-5">
+                        <div>16</div>
+                        <div>鍋滄満鐘舵��</div>
+                    </div>
+                </div>
+                <div class="preview-map">
+                    <Map :status="2" :currentMap="currentMap"  @out="out" />
+                </div>
+            </div>
+        </div>
+    </div>
 </template>
 <script>
+    import Map from './Map.vue'
     export default {
+        components: {
+            Map
+        },
+        watch: {
+            id (val) {
+                if (!val) {
+                    this.currentMap = ''
+                    this.plantName = ''
+                    return
+                }
+                this.currentMap = JSON.parse(this.mapList.find(item => item.id ===this.id).gridSetting)
+                this.plantName = this.mapList.find(item => item.id ===this.id).name
+            }
+        },
+        data () {
+            return {
+                id: '',
+                currentMap: [],
+                plantName: '',
+                mapList: [],
+                status: 0, // 0 鏂板 1缂栬緫 2鏌ョ湅
+            }
+        },
         methods: {
             getMapList() {
-                this.$post('')
+                this.$http.get('/plant/list').then(res => {
+                    this.mapList = res.data.filter (v => v.gridSetting && v.gridSetting!='{}')
+                    if (this.mapList.length === 0) {
+                        this.status = 0
+                    } else {
+                        this.status = 2
+                    }
+                })
+            },
+            editMap () {
+                if (this.id) {
+                    this.status = 1
+                } else {
+                    this.status = 0
+                }
+            },
+            out () {
+                this.status = 2
+                this.getMapList()
             }
         },
         mounted () {
             this.getMapList()
         }
     }
-</script>
\ No newline at end of file
+</script>
+<style lang="scss">
+    .left-select {
+        .el-input__inner {
+            background: #435F9E;
+            color: #C6DCE0;
+            border: none;
+        }
+    }
+    
+</style>
+<style lang="scss" scoped>
+    .workshop {
+        width: 100%;
+        height: 100%;
+        .preview {
+            width: 100%;
+            height: 100%;
+            display: flex;
+            .left {
+                flex: 0 0 auto;
+                width: 194px;
+                height: 100%;
+                margin-left: 20px;
+                background: url('./img//left_icon.png') 100% center no-repeat;
+                .edit-btn {
+                    margin-top: 20px;
+                    color: #C6DCE0;
+                    text-align: center;
+                    line-height: 38px;
+                    width: 150px;
+                    height: 38px;
+                    background: url('./img//btn.png') 100% center no-repeat;
+                    background-size: contain;
+                    font-size: 16px;
+                    cursor: pointer;
+                }
+                .left-select {
+                    margin-top: 20px;
+                    width: 150px;
+                }
+                .left-item:first-child {
+                    margin-top: 138px;
+                }
+                .left-item {
+                    margin-top: 20px;
+                    width: 138px;
+                    height: 138px;
+                    background: url('./img/left_1.png') 0 0 no-repeat;
+                    background-size: contain;
+                    color: #D6EEEF;
+                    position: relative;
+                    & > div:first-child {
+                        font-size: 23px;
+                        position: absolute;
+                        left: 50%;
+                        top: 50%;
+                        transform: translate(-50%,-50%);
+                    }
+                    & > div:last-child {
+                        font-size: 12px;
+                        position: absolute;
+                        left: 50%;
+                        bottom: 25px;
+                        transform: translate(-50%,-50%);
+                    }
+                }
+                .left-2 {
+                    background-image: url('./img/left_2.png');
+                }
+                .left-3 {
+                    background-image: url('./img/left_3.png');
+                }
+                .left-4 {
+                    background-image: url('./img/left_4.png');
+                }
+                .left-5 {
+                    background-image: url('./img/left_5.png');
+                }
+            }
+            .right {
+                padding-top: 30px; 
+                flex: 1 1 auto;
+                .top {
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    .top-item {
+                        font-size: 29px;
+                        color: #F7F8FA;
+                        div:first-child {
+                            width: 99px;
+                            height: 99px;
+                            text-align: center;
+                            line-height: 99px;
+                            background: url('./img/1.png') 0 0 no-repeat;
+                            background-size: contain;
+                            color: #D6EEEF;
+                        }
+                        div:last-child {
+                            margin-top: 20px;
+                            font-size: 24px;
+                            font-family: PingFangSC, PingFang SC;
+                            font-weight: 500;
+                            color: #E4FFFE;
+                            line-height: 29px;
+                            text-shadow: 0px 1px 4px rgba(122,255,248,0.5);
+                        }
+                    }
+                    .top-2 {
+                        div:first-child {
+                            background-image: url('./img/2.png')
+                        }
+                        
+                    }
+                    .top-3 {
+                        div:first-child {
+                            background-image: url('./img/3.png')
+                        }
+                    }
+                    .top-4 {
+                        div:first-child {
+                            background-image: url('./img/4.png')
+                        }
+                    }
+                    .top-5 {
+                        div:first-child {
+                            background-image: url('./img/5.png')
+                        }
+                    }
+                    .top-item ~.top-item {
+                        margin-left: 100px;
+                    }
+                }
+            }
+        }
+    }
+</style>
\ No newline at end of file

--
Gitblit v1.9.3