From 7a4ff8881c150f910540f1ac270e090695ce460c Mon Sep 17 00:00:00 2001
From: gaosp <gaosp>
Date: 星期五, 12 一月 2024 22:42:54 +0800
Subject: [PATCH] update

---
 src/container/Map/index.vue |  192 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 187 insertions(+), 5 deletions(-)

diff --git a/src/container/Map/index.vue b/src/container/Map/index.vue
index 9c81612..e11e4fb 100644
--- a/src/container/Map/index.vue
+++ b/src/container/Map/index.vue
@@ -1,21 +1,203 @@
 <!--
  * @Date: 2024-01-05 22:26:22
  * @LastEditors: Sneed
- * @LastEditTime: 2024-01-05 23:14:40
+ * @LastEditTime: 2024-01-12 22:37:43
  * @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 && id" :status="status" :currentMap="currentMap" :name="plantName" :id="id" @out="out" />
+        <div v-else class="preview">
+            <div class="left">
+                <div @click="editMap" class="edit-btn">
+                    {{id ? '杩涘叆缂栬緫鐘舵��' : '鏂板'}}
+                </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">
+                <Status v-show="false"/>
+                <div class="preview-map">
+                    <Map v-if="id" :status="2" :currentMap="currentMap"  @out="out" />
+                </div>
+            </div>
+        </div>
+    </div>
 </template>
 <script>
+    import Map from './Map.vue'
+    import Status from '@/components/newComp/Status'
     export default {
+        components: {
+            Map,
+            Status
+        },
+        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: 2, // 0 鏂板 1缂栬緫 2鏌ョ湅
+            }
+        },
         methods: {
             getMapList() {
-                this.$http.post('/')
-            }
+                this.$store.dispatch('GetPlanList', {}).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 {
+                width: calc(100% -  194px);
+                padding-top: 30px; 
+                flex: 0 1 auto;
+                display: flex;
+                flex-direction: column;
+                
+                .preview-map {
+                    margin-top: 20px;
+                    flex: 1 1 auto;
+                    overflow: hidden;
+                }
+            }
+        }
+    }
+</style>
\ No newline at end of file

--
Gitblit v1.9.3