From cdbd05d5bd48ac1716b6be6361a41e46eaa338e6 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 05 八月 2024 14:46:41 +0800
Subject: [PATCH] 1、新增MDC车间看板入口以及看板页面 2、新增大屏插件dataV和拖拽插件vue-drag-resize

---
 src/views/mdc/base/MdcWorkshopSignage.vue                           |  566 +++++++++++++++
 src/assets/Bj.jpg                                                   |    0 
 src/main.js                                                         |    7 
 src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue | 1542 +++++++++++++++++++++++++++++++++++++++++
 package.json                                                        |    8 
 src/views/mdc/base/WorkshopSignageEntrance.vue                      |   69 +
 src/config/router.config.js                                         |    4 
 7 files changed, 2,193 insertions(+), 3 deletions(-)

diff --git a/package.json b/package.json
index bba804e..8b1d652 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
   "dependencies": {
     "@antv/data-set": "^0.11.4",
     "@jeecg/antd-online-mini": "3.4.3-beta2",
+    "@jiaminghi/data-view": "^2.10.0",
     "@tinymce/tinymce-vue": "2.1.0",
     "@toast-ui/editor": "^2.1.2",
     "ant-design-vue": "^1.7.2",
@@ -37,6 +38,7 @@
     "vue-area-linkage": "^5.1.0",
     "vue-calendar-component": "^2.8.2",
     "vue-cropper": "^0.5.4",
+    "vue-drag-resize": "^1.5.4",
     "vue-i18n": "^8.7.0",
     "vue-loader": "^15.7.0",
     "vue-ls": "^3.2.0",
@@ -58,13 +60,13 @@
     "@vue/cli-service": "^3.3.0",
     "@vue/eslint-config-standard": "^4.0.0",
     "babel-eslint": "7.2.3",
+    "compression-webpack-plugin": "^3.1.0",
     "eslint": "^5.16.0",
     "eslint-plugin-vue": "^5.1.0",
+    "html-webpack-plugin": "^4.2.0",
     "less": "^3.9.0",
     "less-loader": "^4.1.0",
-    "vue-template-compiler": "^2.6.10",
-    "html-webpack-plugin": "^4.2.0",
-    "compression-webpack-plugin": "^3.1.0"
+    "vue-template-compiler": "^2.6.10"
   },
   "eslintConfig": {
     "root": true,
diff --git a/src/assets/Bj.jpg b/src/assets/Bj.jpg
new file mode 100644
index 0000000..125607b
--- /dev/null
+++ b/src/assets/Bj.jpg
Binary files differ
diff --git a/src/config/router.config.js b/src/config/router.config.js
index f3b0f41..2154e1f 100644
--- a/src/config/router.config.js
+++ b/src/config/router.config.js
@@ -80,6 +80,10 @@
     ]
   },
   {
+    path: '/MdcWorkshopSignage/:id',
+    component: () => import('@/views/mdc/base/MdcWorkshopSignage.vue')
+  },
+  {
     path: '/404',
     component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
   },
diff --git a/src/main.js b/src/main.js
index 10d26b9..ebd34ec 100644
--- a/src/main.js
+++ b/src/main.js
@@ -51,6 +51,13 @@
 import { rules } from '@/utils/rules'
 import * as echarts from 'echarts'
 
+// 灏嗚嚜鍔ㄦ敞鍐屾墍鏈夌粍浠朵负鍏ㄥ眬缁勪欢
+import dataV from '@jiaminghi/data-view'
+Vue.use(dataV)
+
+import VueDragResize from "vue-drag-resize"
+Vue.component('vue-drag-resize', VueDragResize)
+
 Vue.prototype.$echarts = echarts
 Vue.prototype.rules = rules
 Vue.config.productionTip = false
diff --git a/src/views/mdc/base/MdcWorkshopSignage.vue b/src/views/mdc/base/MdcWorkshopSignage.vue
new file mode 100644
index 0000000..3a90188
--- /dev/null
+++ b/src/views/mdc/base/MdcWorkshopSignage.vue
@@ -0,0 +1,566 @@
+<template>
+  <dv-full-screen-container class="full-screen-container">
+    <div>
+      <!--椤靛ご鍖哄煙-->
+      <header class="page-header" :style="{height: pageHeaderHeight+'px'}">
+        <a-row style="height: 100%">
+          <a-col :span="7" class="header-left">
+            <a-space>
+              <span v-if="!isSwitchChecked">寮�鍚姛鑳�</span>
+              <span v-else>鍏抽棴鍔熻兘</span>
+              <a-switch
+                checked-children="寮�"
+                un-checked-children="鍏�"
+                @change="handleSwitchChange"
+                v-model="isSwitchChecked"
+                :disabled="isSwitchChecked"
+              />
+              <a-button type="primary" icon="save" size="large" @click="saveDevicePositionAndSizeByApi">淇濆瓨浣嶇疆</a-button>
+            </a-space>
+          </a-col>
+
+          <a-col :span="10" class="workshop-name">{{ workshopDetails.workshopName }}</a-col>
+
+          <a-col :span="7" class="device-status-info">
+            <!--<a-space v-for="item in deviceStatusList" :key="item.value" class="single-status-info"-->
+            <!--@click="handleScreenDevive(item)">-->
+            <!--<div :style="{color:item.checked?'#1890FF':'#fff'}">{{ item.label }}</div>-->
+            <!--<div class="status-square" :style="{ backgroundColor: item.color }"></div>-->
+            <!--&lt;!&ndash;<a-checkbox :checked="item.checked" @change="checkboxChange(item)"></a-checkbox>&ndash;&gt;-->
+            <!--<div>{{getDeviceNumberByStatus(item.value) }}</div>-->
+            <!--</a-space>-->
+            <a-space v-for="item in deviceStatusList" :key="item.value" class="single-status-info">
+              <div :style="{color:item.checked?'#1890FF':'#fff'}">{{ item.label }}</div>
+              <div class="status-square" :style="{ backgroundColor: item.color }"></div>
+              <!--<a-checkbox :checked="item.checked" @change="checkboxChange(item)"></a-checkbox>-->
+              <div>{{getDeviceNumberByStatus(item.value) }}</div>
+            </a-space>
+          </a-col>
+        </a-row>
+      </header>
+
+      <!--鎷栨嫿璁惧鍖哄煙-->
+      <div class="content-container" ref="deviceContainerRef" style="overflow: auto">
+        <img :src="imgSrc" width="1920" height="900">
+        <div class="guideline guidelineX" :style="{top:guidelineXTop+'px',display:showGuideline}"></div>
+        <div class="guideline guidelineY" :style="{left:guidelineYLeft+'px',display:showGuideline}"></div>
+        <VueDragResize
+          v-for="(item, index) in deviceList"
+          :key="item.equipmentId"
+          :w="item.vw"
+          :h="item.vh"
+          :x="item.coordinateLeft"
+          :y="item.coordinateTop"
+          v-on:resizing="resize($event, index)"
+          v-on:dragging="resize($event, index)"
+          :parentLimitation="parentLimitation"
+          :parentH="parentH"
+          :parentW="parentW"
+          :minw="70"
+          :minh="70"
+          :isDraggable="isDraggable"
+          :isResizable="isResizable"
+          :stickSize="6"
+          @deactivated="showGuideline = 'none'"
+        >
+          <div class="single-device" :style="{ width: item.vw + 'px', height: item.vh + 'px' }"
+               @click="openDetail(item)">
+            <div class="device-status">
+              <div
+                v-if="item.equipmentStatus == 2 || item.equipmentStatus == 1"
+                :style="{ backgroundImage: `url(${require('@/assets/yellow.png')})` }"
+                class="status-image"
+              ></div>
+              <div
+                v-if="item.equipmentStatus == 22"
+                :style="{ backgroundImage: `url(${require('@/assets/red.png')})` }"
+                class="status-image"
+              ></div>
+              <div
+                v-if="item.equipmentStatus == 0"
+                :style="{ backgroundImage: `url(${require('@/assets/gray.png')})` }"
+                class="status-image"
+              ></div>
+              <div
+                v-if="item.equipmentStatus == 3"
+                :style="{ backgroundImage: `url(${require('@/assets/green.png')})` }"
+                class="status-image"
+              ></div>
+              <div
+                :style="{ backgroundImage: `url(${getImgView(item.equipmentImage)})` }"
+                class="device-image"
+              ></div>
+            </div>
+            <div class="device-id" id="deviceId"
+                 :style="{ color:workshopDetails.equipmentIdColor }">
+              {{ item.equipmentId }}
+            </div>
+          </div>
+        </VueDragResize>
+      </div>
+
+      <EquipmentDetailModal ref="EquipmentDetailModal"></EquipmentDetailModal>
+    </div>
+  </dv-full-screen-container>
+</template>
+
+<script>
+  import VueDragResize from 'vue-drag-resize'
+  import api from '@/api/mdc'
+  import { getFileAccessHttpUrl } from '@/api/manage'
+  import EquipmentDetailModal from './modules/WorkshopSignage/EquipmentDetailModal'
+  import { message } from 'ant-design-vue'
+
+  message.config({
+    maxCount: 3
+  })
+
+  export default {
+    components: {
+      VueDragResize,
+      EquipmentDetailModal
+    },
+    data() {
+      return {
+        pageHeaderHeight: 80,// 椤靛ご楂樺害
+        workshopDetails: {}, //  杞﹂棿璇︾粏淇℃伅,
+        isDraggable: false, // 鏄惁寮�鍚嫋鎷�
+        isResizable: false, // 鏄惁寮�鍚缉鏀�
+        isSwitchChecked: false, // 鏄惁寮�鍚姛鑳�
+        timingAcquisition: null, // 瀹氭椂鍒锋柊鏄惁寮�鍚�
+        parentH: 5000,//鐖剁骇楂樺害
+        parentW: 1920,//鐖剁骇瀹藉害
+        showGuideline: 'none',
+        guidelineXTop: 0,
+        guidelineYLeft: 0,
+        deviceList: [
+          // {
+          //   equipmentId: '123213213123232',// 璁惧ID
+          //   equipmentImage: require('@/assets/8.png'), // 璁惧鍥剧墖
+          //   coordinateTop: 200, // 鎷栨嫿鍏冪礌璺濈洅瀛愰《璺濈
+          //   coordinateLeft: 100, // 鎷栨嫿鍏冪礌璺濈洅瀛愬乏渚ц窛绂�
+          //   vw: 100,  // 缂╂斁鍏冪礌瀹藉害
+          //   vh: 100, // 缂╂斁鍏冪礌楂樺害
+          //   equipmentStatus: 1 // 璁惧鐘舵�� 0:鍏虫満 22:鎶ヨ 2:寰呮満 3:杩愯 寮�鏈�:1锛堟病鏈夊洓鑹茬伅鏍囪瘑褰掍负寰呮満锛�
+          // }
+        ], // 璁惧淇℃伅鍒楄〃
+        deviceList_copy: [],
+        deviceStatusList: [
+          // {
+          //   label: '鍏ㄩ儴',
+          //   value: 99,
+          //   color: '#fff',
+          //   checked: true
+          // },
+          {
+            label: '鍏虫満',
+            value: 0,
+            color: '#A8A8A8',
+            checked: false
+          },
+          {
+            label: '寰呮満',
+            value: 2,
+            color: '#FFFF00',
+            checked: false
+          },
+          {
+            label: '杩愯',
+            value: 3,
+            color: '#00EE00',
+            checked: false
+          },
+          {
+            label: '鎶ヨ',
+            value: 22,
+            color: '#FF0000',
+            checked: false
+          }
+        ],// 璁惧鐘舵�佹寚绀虹伅鍒楄〃锛�
+        windowHeight: null,// 褰撳墠娴忚鍣ㄥ彲瑙嗗尯鍩熼珮搴︼紙锛堜笉鍖呮嫭宸ュ叿鏍忋�佷功绛俱�佸簳閮ㄤ换鍔℃爮锛�
+        isFullScreen: false,// 杩涘叆鐪嬫澘椤甸潰鏃舵槸鍚︿负鍏ㄥ睆妯″紡锛屼笉鍖呮嫭姝e父妯″紡杩涘叆鍚庡垏鎹负鍏ㄥ睆妯″紡
+        parentLimitation: false,// 鎷栨嫿鍖哄煙鏄惁闄愬埗鍦ㄧ埗鍏冪礌鍖哄煙鍐�,
+        checkedStatusCount: null,// 宸插嬀閫夌瓫閫夌姸鎬佷釜鏁�
+        imgSrc: ''// 杞﹂棿鍥剧焊鍦板潃
+      }
+    },
+    watch: {
+      isSwitchChecked: {
+        handler(newVal) {
+          if (!newVal) {
+            console.log('瀹氭椂鍣ㄥ紑鍚腑')
+            this.timingAcquisition = setInterval(() => {
+              this.getDeviceListByApi(this.$route.params.id)
+            }, 2000)
+          } else {
+            console.log('鍏抽棴瀹氭椂鍣�')
+            clearInterval(this.timingAcquisition)
+            this.timingAcquisition = null
+          }
+        },
+        immediate: true
+      }
+    },
+    methods: {
+      /**
+       * 閫氳繃杞﹂棿Id璋冪敤鎺ュ彛鑾峰彇璁惧淇℃伅鍒楄〃
+       * @param id 杞﹂棿Id
+       */
+      getDeviceListByApi(id) {
+        console.log('閲嶆柊鍒锋柊')
+        api.getDeviceListInWorkshopSignagePageApi(id).then((res) => {
+          if (res.result && res.result.length > 0) {
+            this.deviceList = res.result
+            this.deviceList_copy = res.result
+          }
+        })
+      },
+
+      /**
+       * 閫氳繃杞﹂棿Id璋冪敤鎺ュ彛鑾峰彇杞﹂棿璇︾粏淇℃伅
+       * @param id 杞﹂棿Id
+       */
+      getWorkshopDetailsByApi(id) {
+        api.getWorkshopDetailByWorkshopIdApi(id).then((res) => {
+          this.workshopDetails = res.result
+          // this.$refs.deviceContainerRef.style.backgroundImage = `url(${this.getImgView(
+          //   this.workshopDetails.backgroundImage
+          // )})`
+          this.imgSrc = this.getImgView(this.workshopDetails.backgroundImage)
+          this.$refs.deviceContainerRef.style.height = (this.windowHeight - this.pageHeaderHeight) + 'px'
+          // this.parentH = this.windowHeight - this.pageHeaderHeight
+          this.parentH = 900
+          this.parentLimitation = true // 鍦ㄧ埗鍏冪礌楂樺害璁剧疆鍚庡啀璁剧疆闄愬埗鎷栨嫿鍖哄煙锛屼笉杩欐牱鏈夋鐜囧鑷寸埗鍏冪礌楂樺害鏈缃氨闄愬埗鎷栨嫿
+        })
+      },
+
+      /**
+       * 鍥剧墖棰勮
+       * @param text 鍥剧墖鍦板潃
+       */
+      getImgView(text) {
+        if (text && text.indexOf(',') > 0) {
+          text = text.substring(0, text.indexOf(','))
+        }
+        return getFileAccessHttpUrl(text)
+      },
+
+      /**
+       * 鐐瑰嚮淇濆瓨鎸夐挳璋冪敤鎺ュ彛淇濆瓨鎷栨嫿鍚庣殑浣嶇疆涓庤澶囧浘鏍囧昂瀵�
+       */
+      saveDevicePositionAndSizeByApi() {
+        console.log('瑙﹀彂淇濆瓨')
+        if (this.isOperatingDevice) {
+          api.saveDevicePositionAndSizeApi(this.deviceList).then((res) => {
+            if (res.code === 200) {
+              this.$notification.success({
+                message: '娑堟伅',
+                description: res.message
+              })
+              this.isOperatingDevice = false
+              if (this.isSwitchChecked) {
+                this.isSwitchChecked = false
+                this.isResizable = !this.isResizable
+                this.isDraggable = !this.isDraggable
+              }
+              this.getDeviceListByApi(this.$route.params.id)
+            }
+          })
+        } else {
+          this.$notification.warning({
+            message: '娑堟伅',
+            description: '璇峰紑鍚姛鑳藉悗鍐嶈繘琛屼繚瀛�'
+          })
+        }
+      },
+
+      /**
+       * 璁惧鎷栨嫿鎴栫缉鏀炬椂瑙﹀彂浜嬩欢
+       * @param newRect 鎷栨嫿鎴栫缉鏀惧悗鐨勫昂瀵稿強璺濈
+       * @param index 鎷栨嫿璁惧鍦ㄦ暟缁勪腑鐨勪笅鏍�
+       */
+      resize(newRect, index) {
+        // if (newRect.width > 100) {
+        //   if (newRect.width / newRect.height < 2) {
+        //     this.deviceList[index].fontSize = newRect.width / 10
+        //   } else {
+        //     this.deviceList[index].fontSize = newRect.height / 5
+        //   }
+        // } else {
+        //   this.deviceList[index].fontSize = 12
+        // }
+        this.showGuideline = 'block'
+        this.deviceList[index].vw = newRect.width
+        this.deviceList[index].vh = newRect.height
+        this.deviceList[index].coordinateTop = newRect.top
+        this.deviceList[index].coordinateLeft = newRect.left
+        this.guidelineXTop = newRect.top + newRect.height / 2
+        this.guidelineYLeft = newRect.left + newRect.width / 2
+      },
+
+      /**
+       * 鏍规嵁璁惧鐘舵�佸�艰幏鍙栧搴旇澶囨暟閲�
+       * @param value 璁惧鐘舵�佸��
+       * @returns {number} 璁惧鏁伴噺
+       */
+      getDeviceNumberByStatus(value) {
+        if (value === 99) return this.deviceList_copy.length
+        return this.deviceList_copy.filter((item) => item.equipmentStatus === value).length
+      },
+
+      /**
+       * 寮�鍚姛鑳借Е鍙戜簨浠�
+       * @param checked 褰撳墠switch鐘舵�侊紝鏄惁寮�鍚紝鍒濆涓篺alse
+       */
+      handleSwitchChange(checked) {
+        this.isOperatingDevice = true
+        this.isResizable = !this.isResizable
+        this.isDraggable = !this.isDraggable
+      },
+
+      openDetail(item) {
+        if (!this.isSwitchChecked) {
+          if (item.equipmentStatus == 0) {
+            this.$message.warning('璁惧澶勪簬鍏虫満鐘舵�侊紒')
+            return false
+          }
+          console.log(item)
+          console.log(this.$refs.EquipmentDetailModal)
+          this.$refs.EquipmentDetailModal.initData(item.equId)
+          this.$refs.EquipmentDetailModal.timerModel(item.equId)
+          // this.equipMessageTimer = setInterval(() => {
+          //   setTimeout( this.$refs.equmentDetaiModel.initData(item.equipmentId),0)
+          // },1000*10)
+        }
+      },
+
+      /**
+       * 娴忚鍣ㄥ昂瀵稿彂鐢熸敼鍙樻椂瑙﹀彂
+       */
+      handleWindowSizeChange() {
+        // this.isFullScreen = !this.isFullScreen
+        // if (!this.isFullScreen) location.reload() // 濡傛灉涓哄叏灞忔ā寮忥紝鍒欏湪鍒囨崲妯″紡鏃堕噸鏂板姞杞介〉闈互閲嶆柊鑾峰彇娴忚鍣ㄥ彲瑙嗗尯鍩熼珮搴�
+        const windowHeight =
+          window.innerHeight ||
+          document.documentElement.clientHeight ||
+          document.body.clientHeight
+        // this.parentH = 99999
+        // const scaleRate = windowHeight / this.windowHeight
+        // this.windowHeight = windowHeight
+        this.$refs.deviceContainerRef.style.height = (windowHeight - this.pageHeaderHeight) + 'px'
+        // const timer = setTimeout(() => {
+        //   this.deviceList.forEach(item => {
+        //     item.coordinateTop = item.coordinateTop * scaleRate
+        //     item.vh = item.vh * scaleRate
+        //     console.log('vh', item.vh)
+        //   })
+        //   this.parentH = windowHeight - this.pageHeaderHeight
+        //   console.log('changeDeviceList', this.deviceList)
+        // }, 500)
+        // console.log('scaleRate', scaleRate)
+      },
+
+      checkboxChange(obj) {
+        //闇�瑕佸垽鏂槸鍚﹀紑鍚姛鑳斤紝鐩殑鏄负浜嗗叧闂畾鏃跺櫒閬垮厤绛涢�夊悗璁惧琚畾鏃跺埛鏂扮殑鏂拌澶囪鐩�
+        if (this.isOperatingDevice) {
+          obj.checked = !obj.checked
+          if (obj.value !== 99) {
+            if (obj.checked) this.checkedStatusCount++
+            else this.checkedStatusCount--
+          }
+
+          if (obj.value == 99) {
+            this.deviceStatusList.forEach(item => {
+              if (item.value !== obj.value) item.checked = obj.checked
+            })
+            if (obj.checked) {
+              this.deviceList = this.deviceList_copy
+              this.checkedStatusCount = this.deviceStatusList.length - 1
+            } else {
+              this.deviceList = []
+              this.checkedStatusCount = 0
+            }
+          } else {
+            this.deviceStatusList.forEach(item => {
+              if (item.value === 99) {
+                if (this.checkedStatusCount !== this.deviceStatusList.length - 1 || this.checkedStatusCount === 0) item.checked = false
+                if (this.checkedStatusCount === this.deviceStatusList.length - 1) item.checked = true
+              }
+            })
+            if (obj.checked) {
+              this.deviceList.push(...this.deviceList_copy.filter(item => item.equipmentStatus === obj.value))
+            } else {
+              this.deviceList = this.deviceList.filter(item => item.equipmentStatus !== obj.value)
+            }
+          }
+        } else {
+          this.$notification.warning({
+            message: '娑堟伅',
+            description: '璇峰紑鍚姛鑳藉悗鍐嶈繘琛岀瓫閫�'
+          })
+        }
+      },
+
+      handleScreenDevive(obj) {
+        //闇�瑕佸垽鏂槸鍚﹀紑鍚姛鑳斤紝鐩殑鏄负浜嗗叧闂畾鏃跺櫒閬垮厤绛涢�夊悗璁惧琚畾鏃跺埛鏂扮殑鏂拌澶囪鐩�
+        if (this.isOperatingDevice) {
+          obj.checked = true
+          this.deviceList = this.deviceList_copy
+          this.deviceStatusList.forEach(item => {
+            if (item.value !== obj.value) item.checked = false
+          })
+
+          if (obj.value == 99) this.deviceList = this.deviceList_copy
+          else this.deviceList = this.deviceList.filter(item => item.equipmentStatus === obj.value)
+
+        } else {
+          this.$notification.warning({
+            message: '娑堟伅',
+            description: '璇峰紑鍚姛鑳藉悗鍐嶈繘琛岀瓫閫�'
+          })
+        }
+      }
+    },
+    created() {
+      if (this.$route.params.id) {
+        this.getDeviceListByApi(this.$route.params.id)
+        this.getWorkshopDetailsByApi(this.$route.params.id)
+      }
+      this.checkedStatusCount = this.deviceStatusList.length - 1
+    },
+    mounted() {
+      // 绂佹鐢ㄦ埛閫変腑鍐呭
+      document.onselectstart = () => false
+
+      this.windowHeight =
+        window.innerHeight ||
+        document.documentElement.clientHeight ||
+        document.body.clientHeight
+
+      // 鍒ゆ柇娴忚鍣ㄥ彲瑙嗗尯鍩熼珮搴︽槸鍚︾瓑浜庡垎杈ㄧ巼锛岃嫢鐩哥瓑鍒欒〃绀鸿繘鍏ユ椂娴忚鍣ㄤ负鍏ㄥ睆妯″紡
+      // if (this.windowHeight === screen.height) this.isFullScreen = true
+
+      window.addEventListener('resize', this.handleWindowSizeChange)
+    },
+    beforeDestroy() {
+      // 纭繚閿�姣佸畾鏃跺櫒銆佷簨浠跺強鍥炴敹璧勬簮
+      clearInterval(this.timingAcquisition)
+      this.timingAcquisition = null
+    }
+  }
+</script>
+
+<style scoped lang="less">
+  .full-screen-container {
+    background-image: url('../../../assets/Bj.jpg');
+    background-size: 100% 100%;
+    color: #fff;
+
+    .page-header {
+      /*font-size: 50px;*/
+      /*text-align: center;*/
+      /*position: relative;*/
+
+      .header-left {
+        height: 100%;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        padding-top: 20px;
+      }
+
+      .workshop-name {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        font-size: 50px;
+      }
+
+      .device-status-info {
+        height: 100%;
+        display: flex;
+        justify-content: flex-end;
+        align-items: center;
+        padding-top: 20px;
+
+        .single-status-info {
+          margin: 10px;
+          cursor: pointer;
+
+          .status-square {
+            width: 14px;
+            height: 14px;
+            border: 1px solid #fff;
+            border-radius: 3px;
+          }
+        }
+      }
+    }
+
+    .content-container {
+      width: 100%;
+      background-repeat: no-repeat;
+      background-size: 100% 100%;
+      position: relative;
+
+      .guideline {
+        position: absolute;
+        border: 1px dashed #ccc;
+      }
+
+      .guidelineX {
+        width: 1920px;
+        left: 0;
+      }
+
+      .guidelineY {
+        top: 0;
+        height: 900px;
+      }
+
+      .single-device {
+        position: absolute;
+        border: 1px solid transparent;
+        padding: 10px;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: space-between;
+        cursor: default;
+
+        &:active {
+          border: 1px solid #1890ff;
+        }
+
+        .device-status {
+          width: 100%;
+          height: 100%;
+          display: flex;
+          -webkit-align-items: flex-end;
+          -moz-align-items: flex-end;
+          -ms-align-items: flex-end;
+
+          .status-image {
+            background-size: 100% 100%;
+            background-repeat: no-repeat;
+            width: 10px;
+            height: 60%;
+            margin-right: 5px;
+          }
+
+          .device-image {
+            background-size: 100% 100%;
+            background-repeat: no-repeat;
+            width: 100%;
+            height: 100%;
+          }
+        }
+      }
+    }
+  }
+
+  /deep/ .ant-checkbox-inner {
+    background-color: transparent;
+    border-color: #fff;
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/WorkshopSignageEntrance.vue b/src/views/mdc/base/WorkshopSignageEntrance.vue
new file mode 100644
index 0000000..05b5f38
--- /dev/null
+++ b/src/views/mdc/base/WorkshopSignageEntrance.vue
@@ -0,0 +1,69 @@
+<template>
+  <div class="page-container">
+    <a-list
+      :grid="{ gutter: [{xs: 0, sm: 24, md: 24, lg: 56, xl: 64, xxl: 80},20], xs: 1, sm: 2, md: 2, lg: 3, xl: 4, xxl: 4 }"
+      :data-source="workshopList">
+      <a-list-item slot="renderItem" slot-scope="item, index">
+        <div class="workshop-name" @click="navigateToWorkshopSignage(item.id)">{{item.workshopName}}</div>
+      </a-list-item>
+    </a-list>
+  </div>
+</template>
+
+<script>
+  import api from '@/api/mdc'
+
+  export default {
+    name: 'WorkshopSignageEntrance',
+    data() {
+      return {
+        indexStyle: 1,
+        workshopList: []
+      }
+    },
+    created() {
+      this.getWorkshopListByApi()
+    },
+    methods: {
+      /**
+       * 閫氳繃杞﹂棿Id璺宠浆鑷崇浉搴旇溅闂村ぇ灞忕湅鏉�
+       * @param id 杞﹂棿Id
+       */
+      navigateToWorkshopSignage(id) {
+        const url = this.$router.resolve(`/MdcWorkshopSignage/${id}`).href
+        window.open(url, '_blank')
+      },
+      /**
+       * 鑾峰彇杞﹂棿鍒楄〃
+       */
+      getWorkshopListByApi() {
+        api.getWorkshopListInHomePageApi().then(res => {
+          console.log('res', res)
+          if (res.result && res.result.length > 0) {
+            this.workshopList = res.result
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+  .page-container {
+    padding: 30px 30px 0;
+
+    .workshop-name {
+      width: 100%;
+      background: #fff;
+      padding: 55px 0;
+      border-radius: 20px;
+      text-align: center;
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      font-size: 30px;
+      cursor: pointer;
+    }
+  }
+
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue b/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue
new file mode 100644
index 0000000..8f038ea
--- /dev/null
+++ b/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue
@@ -0,0 +1,1542 @@
+<template>
+  <div ref="wrap" @mouseenter="getModalNode">
+    <a-modal
+      :title="title"
+      width="70%"
+      :visible="visible"
+      :getContainer="() => this.$refs.wrap"
+      @cancel="handleCancel"
+      cancelText="鍏抽棴"
+      wrap-class-name="full-modal"
+      centered
+      :footer="null"
+    >
+      <div
+        id="mdcEquiInfo"
+        style="padding:1px;"
+      >
+        <table
+          width="100%"
+          style="border-collapse: separate;border-spacing:0px; color: #fff"
+        >
+          <tr>
+            <td v-if="this.spindlebeilv != null">
+              <div
+                class="mdcEquipMon"
+                style="width: 250px; height: 200px;margin : 0 auto;padding: 0;"
+                align="center"
+              >
+                涓昏酱鍊嶇巼
+                <div
+                  id="mdcEquiMoniGauge1"
+                  ref="chart1"
+                  style="width: 100%; height: 95%;"
+                ></div>
+              </div>
+            </td>
+            <td v-if="this.feedbeilv != null">
+              <div
+                class="mdcEquipMon"
+                style="width: 210px; height: 180px;margin : 0 auto;"
+                align="center"
+              >
+                杩涚粰鍊嶇巼
+                <div
+                  id="mdcEquiMoniGauge2"
+                  ref="chart2"
+                  style="width: 100%; height: 95%;"
+                ></div>
+              </div>
+            </td>
+            <td v-if="this.spindleload != null">
+              <div
+                class="mdcEquipMon"
+                style="width: 210px; height: 180px;margin : 0 auto;"
+                align="center"
+              >涓昏酱璐熻嵎
+                <div
+                  id="mdcEquiMoniGauge3"
+                  ref="mdcEquiMoniGauge3"
+                  style="width: 100%; height: 95%;"
+                ></div>
+              </div>
+            </td>
+            <td v-if="this.rapidfeed != null">
+              <div
+                class="mdcEquipMon"
+                style="width: 210px; height: 180px;margin : 0 auto;"
+                align="center"
+              >蹇�熻繘缁欏�嶇巼
+                <div
+                  id="mdcEquiMoniGauge4"
+                  ref="mdcEquiMoniGauge4"
+                  style="width: 100%; height: 95%;"
+                ></div>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="5">
+              <a-descriptions
+                title="鍩虹淇℃伅"
+                :column="4"
+              >
+                <a-descriptions-item label="璁惧缂栧彿">{{resultData.equipmentID|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="璁惧鍚嶇О">{{resultData.equipmentName|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="IP鍦板潃">{{resultData.equipmentIP|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="绔彛鍙�">{{resultData.dataPort|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="绯荤粺鐗堟湰鍙�">{{resultData.systemVersion|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="椹卞姩绫诲瀷">{{resultData.driveType|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="璁惧鍨嬪彿">{{resultData.equipmentModel|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="璁惧绫诲瀷">{{resultData.deviceType|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="璁惧鍔熺巼">{{resultData.devicePower|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="鏈夋晥杞存暟">{{resultData.validAxis|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="鏈�澶ц酱鏁�">{{resultData.maxAxis|formatDescriptionsItem}}</a-descriptions-item>
+                <a-descriptions-item label="澶囨敞">{{resultData.remark|formatDescriptionsItem}}</a-descriptions-item>
+              </a-descriptions>
+
+              <!-- <a-descriptions
+                title="杩愯鏁版嵁"
+                v-if="driverType != 'LSV2' && driverType != 'ZUOLAN' "
+                :column="4"
+              >
+                <a-descriptions-item label="涓昏酱鍊嶇巼(%)">{{resultData.spindlebeilv}}</a-descriptions-item>
+                <a-descriptions-item label="杩涚粰鍊嶇巼(%)">{{resultData.feedbeilv}}</a-descriptions-item>
+                <a-descriptions-item label="涓昏酱璐熻嵎(%)">{{resultData.spindleload}}</a-descriptions-item>
+                <a-descriptions-item label="涓昏酱杞��(rpm)">{{resultData.spindlespeed}}</a-descriptions-item>
+                <a-descriptions-item label="杩涚粰閫熷害(mm/min)">{{resultData.feedrate}}</a-descriptions-item>
+              </a-descriptions>
+
+              <a-descriptions
+                title="杩愯鏁版嵁 for lsv2"
+                v-if="driverType == 'LSV2'"
+                :column="4"
+              >
+                <a-descriptions-item label="涓昏酱鍊嶇巼(%)">{{resultData.spindlebeilv}}</a-descriptions-item>
+                <a-descriptions-item label="璁惧姝e父杩愯鏃堕棿">{{resultData.equipmentNormalTime}}</a-descriptions-item>
+                <a-descriptions-item label="蹇�熻繘缁欏�嶇巼(%)">{{resultData.rapidfeed}}</a-descriptions-item>
+                <a-descriptions-item label="NC姝e父杩愯鏃堕棿">{{resultData.nCNormalTime}}</a-descriptions-item>
+                <a-descriptions-item label="杩涚粰鍊嶇巼(%)">{{resultData.feedbeilv}}</a-descriptions-item>
+                <a-descriptions-item label="璁惧杩愯鏃堕棿">{{resultData.equipmentTime}}</a-descriptions-item>
+                <a-descriptions-item label="褰撳墠鍒�鍏峰彿">{{resultData.toolNum}}</a-descriptions-item>
+              </a-descriptions> -->
+
+              <!-- <a-descriptions
+                title="绋嬪簭淇℃伅"
+                v-if="driverType != 'LSV2' && driverType != 'ZUOLAN' "
+                :column="4"
+              >
+                <a-descriptions-item label="搴忓垪鍙�">{{resultData.sequencenumber}}</a-descriptions-item>
+                <a-descriptions-item
+                  label="褰撳墠鎵ц浠g爜"
+                  :span="2"
+                >{{resultData.executingcode}}</a-descriptions-item>
+                <a-descriptions-item label="宸ヤ欢鍚嶇О">{{resultData.productName}}</a-descriptions-item>
+              </a-descriptions> -->
+
+              <!-- <a-descriptions
+                title="绋嬪簭淇℃伅  for lsv2"
+                v-if="driverType == 'LSV2'"
+                :column="4"
+              >
+                <a-descriptions-item label="褰撳墠绋嬪簭">{{resultData.program}}</a-descriptions-item>
+                <a-descriptions-item label="绋嬪簭鎵ц鐐�">{{resultData.programPosition}}</a-descriptions-item>
+                <a-descriptions-item label="鎿嶄綔妯″紡">{{resultData.operationType}}</a-descriptions-item>
+                <a-descriptions-item label="閿欒淇℃伅缂栧彿涓�">{{resultData.firstErrorNum}}</a-descriptions-item>
+                <a-descriptions-item label="閿欒淇℃伅涓�">{{resultData.firstError}}</a-descriptions-item>
+                <a-descriptions-item label="閿欒淇℃伅">{{resultData.errorinfo}}</a-descriptions-item>
+                <a-descriptions-item label="閿欒淇℃伅缂栧彿浜�">{{resultData.secondErrorNum}}</a-descriptions-item>
+                <a-descriptions-item label="閿欒淇℃伅浜�">{{resultData.secondError}}</a-descriptions-item>
+              </a-descriptions> -->
+
+              <!--<a-descriptions
+                title="杞寸洃鎺ф暟鎹� fro SIEMENS840DSL"
+                v-if="driverType == 'SIEMENS840DSL'"
+                :column="4"
+              >
+                <a-descriptions-item label="X杞存俯搴�">{{resultData.temperatureX}}</a-descriptions-item>
+                <a-descriptions-item label="Y杞存俯搴�">{{resultData.temperatureY}}</a-descriptions-item>
+                <a-descriptions-item label="Z杞存俯搴�">{{resultData.temperatureZ}}</a-descriptions-item>
+                <a-descriptions-item label="A杞存俯搴�">{{resultData.temperatureA}}</a-descriptions-item>
+                <a-descriptions-item label="B杞存俯搴�">{{resultData.temperatureB}}</a-descriptions-item>
+                <a-descriptions-item label="X杞寸數娴�">{{resultData.equipmentCurrentX}}</a-descriptions-item>
+                <a-descriptions-item label="Y杞寸數娴�">{{resultData.equipmentCurrentY}}</a-descriptions-item>
+                <a-descriptions-item label="Z杞寸數娴�">{{resultData.equipmentCurrentZ}}</a-descriptions-item>
+                <a-descriptions-item label="A杞寸數娴�">{{resultData.equipmentCurrentA}}</a-descriptions-item>
+                <a-descriptions-item label="B杞寸數娴�">{{resultData.equipmentCurrentB}}</a-descriptions-item>
+                <a-descriptions-item label="X杞撮殢鍔ㄨ宸�">{{resultData.equipmentLagErrorX}}</a-descriptions-item>
+                <a-descriptions-item label="Y杞撮殢鍔ㄨ宸�">{{resultData.equipmentLagErrorY}}</a-descriptions-item>
+                <a-descriptions-item label="Z杞撮殢鍔ㄨ宸�">{{resultData.equipmentLagErrorZ}}</a-descriptions-item>
+                <a-descriptions-item label="A杞撮殢鍔ㄨ宸�">{{resultData.equipmentLagErrorA}}</a-descriptions-item>
+                <a-descriptions-item label="B杞撮殢鍔ㄨ宸�">{{resultData.equipmentLagErrorB}}</a-descriptions-item>
+              </a-descriptions>
+-->
+              <!-- <a-descriptions
+                title="鍧愭爣淇℃伅 "
+                v-if="driverType == 'FANUC'"
+                :column="3"
+              >
+                <a-descriptions-item label="缁濆鍧愭爣X">{{resultData.xabsolute}}</a-descriptions-item>
+                <a-descriptions-item label="缁濆鍧愭爣Y">{{resultData.yabsolute}}</a-descriptions-item>
+                <a-descriptions-item label="缁濆鍧愭爣Z">{{resultData.zabsolute}}</a-descriptions-item>
+                <a-descriptions-item label="鏈哄簥鍧愭爣X">{{resultData.xmachine}}</a-descriptions-item>
+                <a-descriptions-item label="鏈哄簥鍧愭爣Y">{{resultData.ymachine}}</a-descriptions-item>
+                <a-descriptions-item label="鏈哄簥鍧愭爣Z">{{resultData.zmachine}}</a-descriptions-item>
+              </a-descriptions>
+
+              <a-descriptions
+                title="鍧愭爣淇℃伅 for lsv2"
+                v-if="driverType == 'LSV2'"
+                :column="4"
+              >
+                <a-descriptions-item label="X鍧愭爣">{{resultData.xmachine}}</a-descriptions-item>
+                <a-descriptions-item label="Y鍧愭爣">{{resultData.ymachine}}</a-descriptions-item>
+                <a-descriptions-item label="Z鍧愭爣">{{resultData.zmachine}}</a-descriptions-item>
+                <a-descriptions-item label="A鍧愭爣">{{resultData.amachine}}</a-descriptions-item>
+                <a-descriptions-item label="B鍧愭爣">{{resultData.bmachine}}</a-descriptions-item>
+                <a-descriptions-item label="C鍧愭爣">{{resultData.cmachine}}</a-descriptions-item>
+              </a-descriptions>
+
+              <a-descriptions
+                title="鍧愭爣淇℃伅 for lsv2"
+                v-if="driverType == 'LSV2'"
+                :column="4"
+              >
+                <a-descriptions-item label="X鍧愭爣">{{resultData.xmachine}}</a-descriptions-item>
+                <a-descriptions-item label="Y鍧愭爣">{{resultData.ymachine}}</a-descriptions-item>
+                <a-descriptions-item label="Z鍧愭爣">{{resultData.zmachine}}</a-descriptions-item>
+                <a-descriptions-item label="A鍧愭爣">{{resultData.amachine}}</a-descriptions-item>
+                <a-descriptions-item label="B鍧愭爣">{{resultData.bmachine}}</a-descriptions-item>
+                <a-descriptions-item label="C鍧愭爣">{{resultData.cmachine}}</a-descriptions-item>
+              </a-descriptions>
+
+              <a-descriptions
+                title="鍧愭爣淇℃伅"
+                v-if="driverType == 'LSV2'"
+                :column="4"
+              >
+                <a-descriptions-item label="X鍧愭爣">{{resultData.xmachine}}</a-descriptions-item>
+                <a-descriptions-item label="Y鍧愭爣">{{resultData.ymachine}}</a-descriptions-item>
+                <a-descriptions-item label="Z鍧愭爣">{{resultData.zmachine}}</a-descriptions-item>
+                <a-descriptions-item label="A鍧愭爣">{{resultData.amachine}}</a-descriptions-item>
+                <a-descriptions-item label="B鍧愭爣">{{resultData.bmachine}}</a-descriptions-item>
+                <a-descriptions-item label="C鍧愭爣">{{resultData.cmachine}}</a-descriptions-item>
+              </a-descriptions> -->
+              <!---鏁版嵁婧愯皟鏁�  鍔ㄦ�佸睍绀� 杩愯鏁版嵁---->
+
+              <a-descriptions
+                title="杩愯鏁版嵁"
+                v-show="mdcDriveTypeParamConfigList != null"
+                v-if="driverType != 'PLC'"
+                :column="4"
+                class="operationData"
+              >
+
+                <a-descriptions-item
+                  v-for="(item,id) in mdcDriveTypeParamConfigList  "
+                  :key="item.id"
+                  :label="item.chineseName"
+                >
+                  <a-tooltip @mouseenter="mouseEnterItem">
+                    <template slot="title">
+                      {{item.value|formatDescriptionsItem}}
+                    </template>
+                    <div class="description-item-class">{{item.value|formatDescriptionsItem}}</div>
+                  </a-tooltip>
+
+                </a-descriptions-item>
+
+              </a-descriptions>
+
+              <!--<a-descriptions-->
+              <!--title="鍧愭爣淇℃伅"-->
+              <!--v-show="xyzAliasesList != null"-->
+              <!--v-if="driverType != 'PLC'"-->
+              <!--:column="4"-->
+              <!--&gt;-->
+              <!--<a-descriptions-item-->
+              <!--v-for="(item,id) in xyzAliasesList  "-->
+              <!--:key="item.id"-->
+              <!--:label="item.title"-->
+              <!--&gt;{{item.value}}</a-descriptions-item>-->
+              <!--</a-descriptions>-->
+
+              <!--<a-descriptions-->
+                <!--title="鐗堟湰淇℃伅 for lsv2"-->
+                <!--v-if="driverType == 'LSV2'"-->
+                <!--:column="4"-->
+                <!--class="lsv2Data"-->
+              <!--&gt;-->
+                <!--<a-descriptions-item label="NC鐗堟湰">{{resultData.ncversion}}</a-descriptions-item>-->
+                <!--<a-descriptions-item label="TNC鐗堟湰">{{resultData.tncversion}}</a-descriptions-item>-->
+                <!--<a-descriptions-item label="OPT鐗堟湰">{{resultData.optversion}}</a-descriptions-item>-->
+                <!--<a-descriptions-item label="PLC鐗堟湰">{{resultData.plcversion}}</a-descriptions-item>-->
+              <!--</a-descriptions>-->
+
+            </td>
+          </tr>
+        </table>
+      </div>
+      <template slot="footer">
+        <a-button
+          :style="{ marginRight: '8px' }"
+          @click="handleCancel"
+          style="color: #1191b0;"
+        >鍏抽棴
+        </a-button>
+      </template>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+  import {
+    getAction,
+    postAction
+  } from '@/api/manage'
+  import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
+  import Template1 from '../../../../jeecg/JVxeDemo/layout-demo/Template1'
+
+  export default {
+    name: 'EqumentDetaiModal',
+    components: { Template1 },
+    props: {},
+    data() {
+      return {
+        mdcDriveTypeParamConfigList: [],
+        xyzAliasesList: [],
+        title: '',
+        //涓昏酱鍊嶇巼
+        spindlebeilv: 1,
+        //杩涚粰鍊嶇巼
+        feedbeilv: 1,
+        // 涓昏酱璐熻嵎
+        spindleload: 1,
+        //蹇�熻繘缁欏�嶇巼
+        rapidfeed: 1,
+        visible: false,
+        resultData: {},
+        driverType: '',
+        deviceTypeDict: '',
+        url: {
+          mdcEquipmentDetailedInfo: '/mdc/mdcEquipment/mdcEquipmentDetailedInfo'
+        },
+        modalTimer: null,
+        ee: ' ',
+        modalNode: null,
+        timeout: null
+      }
+    },
+    mounted() {
+
+    },
+    watch: {},
+    filters:{
+      formatDescriptionsItem(value){
+        return value?value:'鏃�'
+      }
+    },
+    methods: {
+      drawLine() {
+        let _this = this
+        if (_this.spindlebeilv) {
+          //鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
+          let mdcEquiMoniGauge1 = this.$echarts.init(document.getElementById('mdcEquiMoniGauge1'), 'macarons')
+          let mdcEquiMoniGaugeOption1 = {
+            tooltip: {
+              formatter: '{a} <br/>{b} : {c}%'
+            },
+
+            series: [{
+              name: '澶栭儴绾�',
+              type: 'gauge',
+              radius: '65%', // 鍔ㄦ��
+              startAngle: 225,
+              endAngle: -45,
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#31F3FF'] // 鍔ㄦ��
+                  ],
+                  width: 1
+                }
+              },
+              axisLabel: {
+                show: false
+              },
+              axisTick: {
+                show: false
+              },
+              splitLine: {
+                show: false
+              },
+              detail: {
+                show: false
+              },
+              title: { //鏍囬
+                show: false
+              }
+            },
+              {
+                name: '澶栭儴鍒诲害',
+                type: 'gauge',
+                radius: '80%',
+                min: 0, //鏈�灏忓埢搴�
+                max: 300, //鏈�澶у埢搴�
+                splitNumber: 10, //鍒诲害鏁伴噺
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  show: false,
+                  lineStyle: {
+                    color: [
+                      [1, 'rgba(0,0,0,0)']
+                    ]
+                  }
+                }, //浠〃鐩樿酱绾�
+                axisLabel: {
+                  show: true,
+                  color: '#31F3FF',
+                  fontSize: 10, // 鍔ㄦ��
+                  distance: -20 // 鍔ㄦ��
+
+                }, //鍒诲害鏍囩銆�
+                axisTick: {
+                  show: false
+                }, //鍒诲害鏍峰紡
+                splitLine: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴瀹界嚎鏉�',
+                type: 'gauge',
+                radius: '55%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 4
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴缁嗙嚎鏉�',
+                type: 'gauge',
+                radius: '40%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 3
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '闂撮殧鏉″舰',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 4,
+                splitNumber: 35,
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    opacity: 0
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false,
+                  length: 20,
+                  splitNumber: 1,
+                  lineStyle: {
+                    color: '#122B3C',
+                    width: 1
+                  }
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鏁版嵁',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 3,
+                startAngle: 225,
+                max: 300,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [_this.spindlebeilv / 300, '#31F3FF'], // 鍔ㄦ��
+                      [1, '#185363']
+                    ],
+                    width: 4
+                  }
+                },
+                tooltip: {
+                  show: false
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: true,
+                  fontWeight: 'bold',
+                  fontSize: 12,
+                  color: '#fff'
+                },
+                pointer: {
+                  show: true,
+                  width: 3,
+                  itemStyle:{
+                    color:'#fff'
+                  }
+                },
+                data: [{
+                  name: '',
+                  value: _this.spindlebeilv
+                }]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�',
+                'type': 'pie',
+                'radius': ['4%', '2%'],
+                'hoverAnimation': false,
+                tooltip: {
+                  show: false
+                },
+                cursor: 'default',
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#fff'
+                },
+                animation: false,
+                'data': [1]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�2',
+                'type': 'pie',
+                'radius': '2%',
+                'hoverAnimation': false,
+                cursor: 'default',
+                tooltip: {
+                  show: false
+                },
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#31F3FF'
+                },
+                animation: false,
+                'data': [1]
+              }
+            ]
+          }
+          mdcEquiMoniGauge1.setOption(mdcEquiMoniGaugeOption1)
+        }
+        if (_this.feedbeilv) {
+          let mdcEquiMoniGauge2 = this.$echarts.init(document.getElementById('mdcEquiMoniGauge2'), 'macarons')
+          let mdcEquiMoniGaugeOption2 = {
+            tooltip: {
+              formatter: '{a} <br/>{b} : {c}%'
+            },
+
+            series: [{
+              name: '澶栭儴绾�',
+              type: 'gauge',
+              radius: '65%', // 鍔ㄦ��
+              startAngle: 225,
+              endAngle: -45,
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#31F3FF'] // 鍔ㄦ��
+                  ],
+                  width: 1
+                }
+              },
+              axisLabel: {
+                show: false
+              },
+              axisTick: {
+                show: false
+              },
+              splitLine: {
+                show: false
+              },
+              detail: {
+                show: false
+              },
+              title: { //鏍囬
+                show: false
+              }
+            },
+              {
+                name: '澶栭儴鍒诲害',
+                type: 'gauge',
+                radius: '80%',
+                min: 0, //鏈�灏忓埢搴�
+                max: 300, //鏈�澶у埢搴�
+                splitNumber: 10, //鍒诲害鏁伴噺
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  show: false,
+                  lineStyle: {
+                    color: [
+                      [1, 'rgba(0,0,0,0)']
+                    ]
+                  }
+                }, //浠〃鐩樿酱绾�
+                axisLabel: {
+                  show: true,
+                  color: '#31F3FF',
+                  fontSize: 10, // 鍔ㄦ��
+                  distance: -20 // 鍔ㄦ��
+
+                }, //鍒诲害鏍囩銆�
+                axisTick: {
+                  show: false
+                }, //鍒诲害鏍峰紡
+                splitLine: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴瀹界嚎鏉�',
+                type: 'gauge',
+                radius: '55%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 4
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴缁嗙嚎鏉�',
+                type: 'gauge',
+                radius: '40%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 3
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '闂撮殧鏉″舰',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 4,
+                splitNumber: 35,
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    opacity: 0
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false,
+                  length: 20,
+                  splitNumber: 1,
+                  lineStyle: {
+                    color: '#122B3C',
+                    width: 1
+                  }
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鏁版嵁',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 3,
+                startAngle: 225,
+                max: 300,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [_this.feedbeilv / 300, '#31F3FF'], // 鍔ㄦ��
+                      [1, '#185363']
+                    ],
+                    width: 4
+                  }
+                },
+                tooltip: {
+                  show: false
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: true,
+                  fontWeight: 'bold',
+                  fontSize: 12,
+                  color: '#fff'
+                },
+                pointer: {
+                  show: true,
+                  width: 3,
+                  itemStyle:{
+                    color:'#fff'
+                  }
+                },
+                data: [{
+                  name: '',
+                  value: _this.feedbeilv
+                }]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�',
+                'type': 'pie',
+                'radius': ['4%', '2%'],
+                'hoverAnimation': false,
+                tooltip: {
+                  show: false
+                },
+                cursor: 'default',
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#fff'
+                },
+                animation: false,
+                'data': [1]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�2',
+                'type': 'pie',
+                'radius': '2%',
+                'hoverAnimation': false,
+                cursor: 'default',
+                tooltip: {
+                  show: false
+                },
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#31F3FF'
+                },
+                animation: false,
+                'data': [1]
+              }
+            ]
+          }
+          mdcEquiMoniGauge2.setOption(mdcEquiMoniGaugeOption2)
+        }
+        if (_this.spindleload) {
+          let mdcEquiMoniGauge3 = this.$echarts.init(document.getElementById('mdcEquiMoniGauge3'), 'macarons')
+          let mdcEquiMoniGaugeOption3 = {
+            tooltip: {
+              formatter: '{a} <br/>{b} : {c}%'
+            },
+
+            series: [{
+              name: '澶栭儴绾�',
+              type: 'gauge',
+              radius: '65%', // 鍔ㄦ��
+              startAngle: 225,
+              endAngle: -45,
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#31F3FF'] // 鍔ㄦ��
+                  ],
+                  width: 1
+                }
+              },
+              axisLabel: {
+                show: false
+              },
+              axisTick: {
+                show: false
+              },
+              splitLine: {
+                show: false
+              },
+              detail: {
+                show: false
+              },
+              title: { //鏍囬
+                show: false
+              }
+            },
+              {
+                name: '澶栭儴鍒诲害',
+                type: 'gauge',
+                radius: '80%',
+                min: 0, //鏈�灏忓埢搴�
+                max: 100, //鏈�澶у埢搴�
+                splitNumber: 10, //鍒诲害鏁伴噺
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  show: false,
+                  lineStyle: {
+                    color: [
+                      [1, 'rgba(0,0,0,0)']
+                    ]
+                  }
+                }, //浠〃鐩樿酱绾�
+                axisLabel: {
+                  show: true,
+                  color: '#31F3FF',
+                  fontSize: 10, // 鍔ㄦ��
+                  distance: -20 // 鍔ㄦ��
+
+                }, //鍒诲害鏍囩銆�
+                axisTick: {
+                  show: false
+                }, //鍒诲害鏍峰紡
+                splitLine: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴瀹界嚎鏉�',
+                type: 'gauge',
+                radius: '55%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 4
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴缁嗙嚎鏉�',
+                type: 'gauge',
+                radius: '40%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 3
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '闂撮殧鏉″舰',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 4,
+                splitNumber: 35,
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    opacity: 0
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false,
+                  length: 20,
+                  splitNumber: 1,
+                  lineStyle: {
+                    color: '#122B3C',
+                    width: 1
+                  }
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鏁版嵁',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 3,
+                startAngle: 225,
+                max: 100,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [_this.spindleload / 100, '#31F3FF'], // 鍔ㄦ��
+                      [1, '#185363']
+                    ],
+                    width: 4
+                  }
+                },
+                tooltip: {
+                  show: false
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: true,
+                  fontWeight: 'bold',
+                  fontSize: 12,
+                  color: '#fff'
+                },
+                pointer: {
+                  show: true,
+                  width: 3,
+                  itemStyle:{
+                    color:'#fff'
+                  }
+                },
+                data: [{
+                  name: '',
+                  value: _this.spindleload
+                }]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�',
+                'type': 'pie',
+                'radius': ['4%', '2%'],
+                'hoverAnimation': false,
+                tooltip: {
+                  show: false
+                },
+                cursor: 'default',
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#fff'
+                },
+                animation: false,
+                'data': [1]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�2',
+                'type': 'pie',
+                'radius': '2%',
+                'hoverAnimation': false,
+                cursor: 'default',
+                tooltip: {
+                  show: false
+                },
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#31F3FF'
+                },
+                animation: false,
+                'data': [1]
+              }
+            ]
+          }
+          mdcEquiMoniGauge3.setOption(mdcEquiMoniGaugeOption3)
+        }
+        if (_this.rapidfeed) {
+          let mdcEquiMoniGauge4 = this.$echarts.init(document.getElementById('mdcEquiMoniGauge4'), 'macarons')
+          let mdcEquiMoniGaugeOption4 = {
+            tooltip: {
+              formatter: '{a} <br/>{b} : {c}%'
+            },
+
+            series: [{
+              name: '澶栭儴绾�',
+              type: 'gauge',
+              radius: '65%', // 鍔ㄦ��
+              startAngle: 225,
+              endAngle: -45,
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#31F3FF'] // 鍔ㄦ��
+                  ],
+                  width: 1
+                }
+              },
+              axisLabel: {
+                show: false
+              },
+              axisTick: {
+                show: false
+              },
+              splitLine: {
+                show: false
+              },
+              detail: {
+                show: false
+              },
+              title: { //鏍囬
+                show: false
+              }
+            },
+              {
+                name: '澶栭儴鍒诲害',
+                type: 'gauge',
+                radius: '80%',
+                min: 0, //鏈�灏忓埢搴�
+                max: 300, //鏈�澶у埢搴�
+                splitNumber: 10, //鍒诲害鏁伴噺
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  show: false,
+                  lineStyle: {
+                    color: [
+                      [1, 'rgba(0,0,0,0)']
+                    ]
+                  }
+                }, //浠〃鐩樿酱绾�
+                axisLabel: {
+                  show: true,
+                  color: '#31F3FF',
+                  fontSize: 10, // 鍔ㄦ��
+                  distance: -20 // 鍔ㄦ��
+
+                }, //鍒诲害鏍囩銆�
+                axisTick: {
+                  show: false
+                }, //鍒诲害鏍峰紡
+                splitLine: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴瀹界嚎鏉�',
+                type: 'gauge',
+                radius: '55%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 4
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鍐呴儴缁嗙嚎鏉�',
+                type: 'gauge',
+                radius: '40%',
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [1, '#122B3C']
+                    ],
+                    width: 3
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '闂撮殧鏉″舰',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 4,
+                splitNumber: 35,
+                startAngle: 225,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    opacity: 0
+                  }
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false,
+                  length: 20,
+                  splitNumber: 1,
+                  lineStyle: {
+                    color: '#122B3C',
+                    width: 1
+                  }
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: false
+                },
+                title: {
+                  show: false
+                }
+              },
+              {
+                name: '鏁版嵁',
+                type: 'gauge',
+                radius: '52.5%',
+                z: 3,
+                startAngle: 225,
+                max: 300,
+                endAngle: -45,
+                axisLine: {
+                  lineStyle: {
+                    color: [
+                      [_this.rapidfeed / 300, '#31F3FF'], // 鍔ㄦ��
+                      [1, '#185363']
+                    ],
+                    width: 4
+                  }
+                },
+                tooltip: {
+                  show: false
+                },
+                axisLabel: {
+                  show: false
+                },
+                axisTick: {
+                  show: false
+                },
+                splitLine: {
+                  show: false
+                },
+                detail: {
+                  show: true,
+                  fontWeight: 'bold',
+                  fontSize: 12,
+                  color: '#fff'
+                },
+                pointer: {
+                  show: true,
+                  width: 3,
+                  itemStyle:{
+                    color:'#fff'
+                  }
+                },
+                data: [{
+                  name: '',
+                  value: _this.rapidfeed
+                }]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�',
+                'type': 'pie',
+                'radius': ['4%', '2%'],
+                'hoverAnimation': false,
+                tooltip: {
+                  show: false
+                },
+                cursor: 'default',
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#fff'
+                },
+                animation: false,
+                'data': [1]
+              },
+              // 鍐呭渾
+              {
+                'name': '鍐呭渾鐜�2',
+                'type': 'pie',
+                'radius': '2%',
+                'hoverAnimation': false,
+                cursor: 'default',
+                tooltip: {
+                  show: false
+                },
+                'labelLine': {
+                  'normal': {
+                    'show': false
+                  }
+                },
+                itemStyle: {
+                  color: '#31F3FF'
+                },
+                animation: false,
+                'data': [1]
+              }
+            ]
+          }
+          mdcEquiMoniGauge4.setOption(mdcEquiMoniGaugeOption4)
+        }
+      },
+
+      handleCancel() {
+        this.$emit('close')
+        this.visible = false
+        // this.modalNode.removeEventListener('mouseleave', this.closeModal)
+        if(this.modalTimer){
+          clearInterval(this.modalTimer)
+          this.modalTimer = null
+        }
+        if (this.timeout) {
+          clearTimeout(this.timeout)
+          this.timeout = null
+        }
+      },
+
+      timerModel(id) {
+        this.ee = id
+        this.modalTimer = setInterval(() => {
+          setTimeout(this.initData(this.ee), 0)
+        }, 1000 * 4)
+      },
+
+      initData(id) {
+        let _this = this
+        this.visible = true
+        // _this.drawLine()
+        getAction(this.url.mdcEquipmentDetailedInfo, { id: id }).then((res) => {
+          if (res.success) {
+            _this.resultData = res.result
+            _this.driverType = res.result.deviceType
+            _this.spindlebeilv = res.result.spindlebeilv
+            _this.feedbeilv = res.result.feedbeilv
+            _this.spindleload = res.result.spindleload
+            _this.rapidfeed = res.result.rapidfeed
+            _this.mdcDriveTypeParamConfigList = res.result.mdcDriveTypeParamConfigList
+            _this.xyzAliasesList = res.result.xyzAliasesList
+            this.$nextTick(() => {
+              _this.drawLine()
+            })
+            // _this.initDeviceType(_this.resultData.deviceType)
+          } else {
+            // _this.$message.warn(res.message)
+            _this.$notification.warning({
+              message: '娑堟伅',
+              description: res.message
+            })
+          }
+        })
+      },
+
+      getModalNode() {
+        // console.log(document.querySelector('.ant-modal-content'))
+        // this.modalNode = document.querySelector('.ant-modal-content')
+        // this.timeout = setTimeout(() => {
+        //   this.modalNode.addEventListener('mouseleave', this.closeModal)
+        // }, 100)
+      },
+
+      closeModal() {
+        this.handleCancel()
+      },
+
+      mouseEnterItem(e){
+        if (e.target.clientWidth >= e.target.scrollWidth)  e.target.style.pointerEvents = 'none' // 闃绘榧犳爣浜嬩欢    pointer-events 灞炴�х敤浜庤缃厓绱犳槸鍚﹀榧犳爣浜嬩欢鍋氬嚭鍙嶅簲銆�
+      }
+    },
+    beforeDestroy() {
+      clearInterval(this.modalTimer)
+      this.modalTimer = null
+    }
+  }
+</script>
+
+<style scoped lang="less">
+  body {
+    overflow-y: hidden !important;
+  }
+
+  .full-modal {
+    .ant-modal {
+      top: 0;
+      padding-bottom: 0;
+      margin: 0;
+      background-color: #4a4a48 !important;
+      opacity: 0.9;
+    }
+    /deep/ .ant-modal-content {
+      display: flex;
+      flex-direction: column;
+      /*height: calc(100vh);*/
+      background-color: #4a4a48;
+    }
+    .ant-modal-body {
+      flex: 1;
+    }
+  }
+
+  /deep/ .ant-modal-content {
+    /*background: -moz-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.27) 100%);*/
+    /*background: -webkit-gradient(linear, left left, right right, color-stop(0%, rgba(0, 0, 0, 0.66)), color-stop(100%, rgba(0, 0, 0, 0.4)));*/
+    /*background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/
+    /*background: -o-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/
+    /*background: -ms-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/
+    /*background: linear-gradient(to right, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/
+    background-color: #312c2c;
+    opacity: 1;
+  }
+
+  /deep/ .ant-modal-close {
+    color: #1191b0;
+    font-size: 24px;
+  }
+
+  /deep/ .ant-modal-close-x {
+    font-size: 24px;
+  }
+
+  /deep/ .ant-modal-footer {
+    border-top: none;
+  }
+
+  /deep/ .ant-descriptions {
+    border: 1px solid #16738d;
+    margin: 10px 0;
+  }
+
+  /deep/ .ant-descriptions-title {
+    color: #fff;
+    padding: 10px;
+    margin-bottom: 0;
+  }
+
+  /*/deep/ .ant-descriptions-view {*/
+    /*padding: 0 20px;*/
+  /*}*/
+
+  /deep/ .ant-descriptions-view .ant-descriptions-row .ant-descriptions-item {
+    padding-bottom: 5px;
+  }
+
+  /deep/ .ant-descriptions-item-colon {
+    color: #fff;
+    /*width: 5.1vw;*/
+  }
+
+  /deep/ .ant-descriptions-item-content {
+    color: #fff;
+    border: 1px solid #4bcfc8;
+    padding: 0 10px;
+    min-width: 130px;
+  }
+
+  .mdcEquipMon {
+    color: #fff;
+  }
+
+  /deep/ .ant-descriptions-item-label{
+    width: 6.7vw;
+    text-align: right;
+    margin-right: 10px;
+  }
+
+  /deep/ .operationData .ant-descriptions-item-content,
+  .lsv2Data .ant-descriptions-item-content
+  {
+    width: 130px;
+    vertical-align: bottom;
+  }
+
+  .description-item-class{
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+  }
+</style>

--
Gitblit v1.9.3