From d91893dbd49538d312e299c1cc507a7792abd7d7 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 14 一月 2024 14:20:25 +0800
Subject: [PATCH] 设备类型假如修改删除

---
 src/container/Map/index.vue |  160 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 152 insertions(+), 8 deletions(-)

diff --git a/src/container/Map/index.vue b/src/container/Map/index.vue
index 9c81612..3532d36 100644
--- a/src/container/Map/index.vue
+++ b/src/container/Map/index.vue
@@ -1,21 +1,165 @@
 <!--
  * @Date: 2024-01-05 22:26:22
  * @LastEditors: Sneed
- * @LastEditTime: 2024-01-05 23:14:40
+ * @LastEditTime: 2024-01-13 23:14:55
  * @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">
+            <LeftStatus class="left" :info="info">
+                <template>
+                    <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>
+                </template>
+            </LeftStatus>
+            <div class="right">
+                <Status v-show="id" :info="info" />
+                <div class="preview-map">
+                    <Map v-if="id" :status="2" :currentMap="currentMap" @out="out" />
+                </div>
+            </div>
+        </div>
+    </div>
 </template>
 <script>
-    export default {
-        methods: {
-            getMapList() {
-                this.$http.post('/')
+import Map from './Map.vue';
+import Status from '@/components/newComp/Status'
+import LeftStatus from './LeftStatus.vue'
+import { getRequest, getUrl } from '@/api/Api'
+import { mapGetters } from 'vuex'
+export default {
+    components: {
+        Map,
+        Status,
+        LeftStatus
+    },
+    computed: {
+        ...mapGetters(['workshopList'])
+    },
+    watch: {
+        id(val) {
+            if (!val) {
+                this.currentMap = ''
+                this.plantName = ''
+                return
+            }
+            try {
+                this.currentMap = JSON.parse(this.mapList.find(item => item.id === this.id).gridSetting)
+                this.plantName = this.mapList.find(item => item.id === this.id).name
+            } catch (error) {
+
+            }
+            getRequest('machineList', {
+                plantId: this.id,
+            }).then(res => {
+                // this.list = res.data.list
+                this.info = {
+                    runRate: res.data.runRate,
+                    cutRate: res.data.cutRate,
+                    alarmRate: res.data.alarmRate,
+                    threeShiftRate: res.data.threeShiftRate,
+                    twoShiftRate: res.data.twoShiftRate,
+                    run: res.data.run,
+                    alarm: res.data.alarm,
+                    stop: res.data.stop,
+                    idle: res.data.idle
+                }
+            })
+        }
+    },
+    data() {
+        return {
+            id: '',
+            currentMap: [],
+            plantName: '',
+            mapList: [],
+            status: 2, // 0 鏂板 1缂栬緫 2鏌ョ湅
+            info: {
+                runRate: '',
+                cutRate: '',
+                alarmRate: '',
+                threeShiftRate: '',
+                twoShiftRate: '',
+                run: '',
+                alarm: '',
+                stop: '',
+                idle: '',
+            }
+        }
+    },
+    methods: {
+        getMapList() {
+            // this.$store.dispatch('GetPlanList', {})
+
+            this.$store.dispatch('GetPlanList', {}).then(res => {
+                try {
+                    this.mapList = this.workshopList.filter(v => v.gridSetting && v.gridSetting != '{}')
+                    if (this.mapList.length === 0) {
+                        this.status = 0
+                    }
+                    this.id = this.mapList[0].id
+                } catch (error) {
+                    console.error(error)
+                }
+            })
+        },
+        editMap() {
+            if (this.id) {
+                this.status = 1
+            } else {
+                this.status = 0
             }
         },
-        mounted () {
+        out() {
+            this.status = 2
             this.getMapList()
+        },
+    },
+    mounted() {
+        this.getMapList()
+    }
+}
+</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;
+
+        .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;
+            }
         }
     }
-</script>
\ No newline at end of file
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3