Sfoglia il codice sorgente

Merge branch 'master' of http://152.136.206.27:3000/dongjh/guan_client

dongjh 1 anno fa
parent
commit
621fe02a94

BIN
public/logo.png


BIN
src/assets/logo-white.png


BIN
src/assets/logo.png


+ 0 - 172
src/assets/logo.svg

@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="293px" height="293px" viewBox="0 0 293 293" enable-background="new 0 0 293 293" xml:space="preserve">  <image id="image0" width="293" height="293" x="0" y="0"
-    href="data:image/png;base64,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
-OjAwP26CAAAAAABJRU5ErkJggg==" />
-</svg>

+ 1 - 1
src/components/layouts/UserLayout.vue

@@ -7,7 +7,7 @@
             <!-- 修改框架 -->
             <!-- <img src="~@/assets/logo.png" class="logo" alt="logo"> -->
             <!-- <img src="~@/assets/logo.svg" class="logo" alt="logo"> -->
-            <span class="title">可视化系统</span>
+            <span class="title">固安设备监测系统</span>
           </a>
         </div>
         <div class="desc">

+ 1 - 1
src/components/page/GlobalHeader.vue

@@ -18,7 +18,7 @@
         @click="toggle"/>
 
       <!-- 修改框架 -->
-      <span v-if="device === 'desktop'">欢迎进入平台</span>
+      <span v-if="device === 'desktop'">欢迎进入固安设备监测系统</span>
       <span v-else>Jeecg-Boot</span>
 
       <user-menu :theme="theme"/>

+ 6 - 3
src/components/tools/Logo.vue

@@ -3,8 +3,11 @@
     <router-link :to="routerLinkTo">
 
       <!-- update-begin- author:sunjianlei --- date:20190814 --- for: logo颜色根据主题颜色变化 -->
-      <img v-if="navTheme === 'dark'" src="~@/assets/logo-white.png" alt="logo">
-      <img v-else src="~@/assets/logo.svg" alt="logo">
+      <!-- 修改框架 -->
+      <img v-if="navTheme === 'dark'" src="~@/assets/logo.png" alt="logo">
+      <img v-else src="~@/assets/logo.png" alt="logo">
+      <!-- <img v-if="navTheme === 'dark'" src="~@/assets/logo-white.png" alt="logo"> -->
+      <!-- <img v-else src="~@/assets/logo.svg" alt="logo"> -->
       <!-- update-begin- author:sunjianlei --- date:20190814 --- for: logo颜色根据主题颜色变化 -->
 
       <h1 v-if="showTitle">{{ title }}</h1>
@@ -22,7 +25,7 @@
       title: {
         type: String,
         // 修改框架
-        default: '可视化平台',
+        default: '设备监测',
         required: false
       },
       showTitle: {

+ 3 - 3
src/permission.js

@@ -9,7 +9,7 @@ import { generateIndexRouter, isOAuth2AppEnv } from '@/utils/util'
 
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
-const whiteList = ['/user/login', '/user/register', '/user/register-result','/user/alteration'] // no redirect whitelist
+const whiteList = ['/user/login', '/user/register', '/user/register-result','/user/alteration', '/visualization'] // no redirect whitelist
 whiteList.push(OAUTH2_LOGIN_PAGE_PATH)
 
 router.beforeEach((to, from, next) => {
@@ -21,8 +21,8 @@ router.beforeEach((to, from, next) => {
     to.matched.splice(2, to.matched.length - 3)
   }
   //update-end---author:scott ---date::2022-10-13  for:[jeecg-boot/issues/4091]多级路由缓存问题 #4091--------------
-  
-  
+
+
   NProgress.start() // start progress bar
 
   if (Vue.ls.get(ACCESS_TOKEN)) {

+ 2 - 2
src/views/modules_guAn/visualization/components/commonTitle.vue

@@ -27,13 +27,13 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less" scoped>
   .visualization-common-title{
     width: 100%;
     height: 22px;
-    background: url(../../../../assets/visualization/moduleTitle.png) no-repeat left bottom;
+    background: url(~@/assets/visualization/moduleTitle.png) no-repeat left bottom;
     background-size: 100% 10px;
     .module-title{
       font-size: 15px;

+ 98 - 32
src/views/modules_guAn/visualization/index.vue

@@ -12,16 +12,16 @@
       <div class="left-container">
         <div class="left-top-con">
           <!-- 左上 -->
-          <yuzhi-curve></yuzhi-curve>
+          <yuzhi-curve :data="dataAll"></yuzhi-curve>
         </div>
         <div class="left-center-con">
           <!-- 左中 -->
-          <real-time-curve></real-time-curve>
+          <real-time-curve :data="dataAll"></real-time-curve>
         </div>
         <div class="left-bottom-con">
           <!-- 左下 -->
           <!-- <test-information></test-information> -->
-          <full-curve></full-curve>
+          <full-curve :data="dataAll"></full-curve>
         </div>
       </div>
       <!-- 中间部分 -->
@@ -68,10 +68,10 @@
         <div class="centen-bottom-con u-flex-jab">
           <!-- 中间 -->
           <div class="center-bottom-left">
-            <running-state></running-state>
+            <running-state :data="dataAll"></running-state>
           </div>
           <div class="center-bottom-right">
-            <equipment-info></equipment-info>
+            <equipment-info :data="dataAll"></equipment-info>
           </div>
         </div>
       </div>
@@ -79,15 +79,15 @@
       <div class="right-container">
         <div class="right-top-con">
           <!-- 右上 -->
-          <mode-info></mode-info>
+          <mode-info :data="dataAll"></mode-info>
         </div>
         <div class="right-center-con">
           <!-- 右中 -->
-          <test-status-info></test-status-info>
+          <test-status-info :data="dataAll"></test-status-info>
         </div>
         <div class="right-bottom-con">
           <!-- 右下 -->
-          <surveillance-video></surveillance-video>
+          <surveillance-video :data="dataAll"></surveillance-video>
         </div>
       </div>
     </div>
@@ -105,40 +105,96 @@ import SurveillanceVideo from './modules/SurveillanceVideo.vue'
 import TestInformation from './modules/TestInformation.vue'
 import TestStatusInfo from './modules/TestStatusInfo.vue'
 
+import { getAction } from '@/api/manage'
+
 export default {
-    name: '',
-    components: {
-      YuzhiCurve,
-      RealTimeCurve,
-      FullCurve,
-      RunningState,
-      EquipmentInfo,
-      ModeInfo,
-      SurveillanceVideo,
-      TestInformation,
-      TestStatusInfo,
-    },
+  name: '',
+  components: {
+    YuzhiCurve,
+    RealTimeCurve,
+    FullCurve,
+    RunningState,
+    EquipmentInfo,
+    ModeInfo,
+    SurveillanceVideo,
+    TestInformation,
+    TestStatusInfo,
+  },
   data () {
     return {
+      dataAll: []
     }
   },
+  destroyed () {
+  	// 离开路由之后断开websocket连接
+    this.websock.close()
+  },
   created () {
+    // 初始化websocket
+    // this.initWebSocket()
+    // 数据获取
+    this.getData()
   },
   mounted () {
   },
   methods: {
+    getData(){
+      getAction(`/datacoll/webaccess/getWATagValue`).then(res=>{
+        console.log(res)
+        if(res.success){
+          this.dataAll = res.result
+        }
+      })
+      
+    },
+     // websocket
+     initWebSocket () { // 初始化weosocket(必须)
+      // 请根据实际项目需要进行修改
+      const wsuri = 'ws://192.168.2.247:8866/websocket'
+      // 新建一个webstock对象
+      this.websock = new WebSocket(wsuri)
+      this.websock.onmessage = this.websocketonmessage
+      this.websock.onopen = this.websocketonopen
+      this.websock.onerror = this.websocketonerror
+      this.websock.onclose = this.websocketclose
+    },
+    // 数据接收
+    websocketonmessage (e) {
+      console.log(e)
+      const redata = JSON.parse(e.data)
+      // 接收数据之后操作
+      
+    },
+    // websocket连接后发送数据(send发送)
+    websocketonopen () {
+      let actions = {} // 请根据实际项目需要进行修改
+      this.websocketsend(JSON.stringify(actions))
+    },
+    // 数据发送
+    websocketsend (d) {
+      this.websock.send(d)
+      console.log(d)
+    },
+    // 连接建立失败重连
+    websocketonerror () {
+      this.initWebSocket()
+    },
+    // 关闭
+    websocketclose (e) {
+      console.log('断开连接', e)
+    }
   }
 }
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less">
   .visualization-container{
     width: 100%;
     height: 100vh;
-    background: url(../../../assets/visualization/pageBg.png) no-repeat;
+    background: url('~@/assets/visualization/pageBg.png') no-repeat;
     background-size: cover;
     // 头部标题区域
     .top-title-container{
@@ -153,7 +209,7 @@ export default {
       .title-content{
         width: 700px;
         height: 100%;
-        background: url(../../../assets/visualization/pageTitleBg.png) no-repeat center center;
+        background: url('~@/assets/visualization/pageTitleBg.png') no-repeat center center;
         background-size: auto 100%;
         .text{
           font-size: 28px;
@@ -168,7 +224,7 @@ export default {
           font-family: "黑体";
           // font-family: "宋体";
           // font-family: serif;
-          // font-family: "楷体_GB2312		";
+          // font-family: "楷体_GB2312";
           &::before{
             // content: attr(text); // div中设置了text=>相当于又写了一个标题覆盖在原来设置了阴影的文字上面
             content: '高温高湿试验项目';
@@ -187,21 +243,27 @@ export default {
     // 数据内容区域
     .content-container{
       height: 100%;
-      padding: 60px 20px 20px;
+      // padding: 60px 20px 20px;
+      // padding-top: 60px;
+      // padding-bottom: 20px;
       box-sizing: border-box;
       .left-container{
         width: 25%;
+        padding-left: 10px;
+        padding-right: 10px;
         height: 100%;
         .left-top-con{
-          height: 35%;
+          height: 33.3%;
+          padding-top: 60px;
           padding-bottom: 12px;
         }
         .left-center-con{
-          height: 35%;
+          height: 33.3%;
           padding-bottom: 12px;
         }
         .left-bottom-con{
-          height: 30%;
+          height: 33.3%;
+          padding-bottom: 20px;
         }
       }
       .center-container{
@@ -215,7 +277,7 @@ export default {
         }
         .centen-bottom-con{
           height: 30%;
-          padding: 0 12px;
+          padding: 0 12px 20px;
           .center-bottom-left{
             flex: 1.4;
             height: 100%;
@@ -229,16 +291,20 @@ export default {
       }
       .right-container{
         width: 25%;
+        padding-left: 10px;
+        padding-right: 10px;
         .right-top-con{
-          height: 35%;
+          height: 33.3%;
+          padding-top: 60px;
           padding-bottom: 12px;
         }
         .right-center-con{
-          height: 35%;
+          height: 33.3%;
           padding-bottom: 12px;
         }
         .right-bottom-con{
-          height: 30%;
+          height: 33.3%;
+          padding-bottom: 20px;
         }
       }
     }

+ 3 - 3
src/views/modules_guAn/visualization/modules/EquipmentInfo.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="equipment-info-module">
-    <common-title title="设备基本运行情况"></common-title>    
+    <common-title title="设备基本运行情况"></common-title>
     <div class="box">
         <!-- <a-row>
           <a-col :span="12">
@@ -22,7 +22,7 @@
             20W/㎡
           </a-col>
         </a-row> -->
-      
+
       <div id="demo1">
         <div>湿度实值</div>
         <div>温度实值</div>
@@ -57,7 +57,7 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less" scoped>
   .equipment-info-module{

+ 22 - 7
src/views/modules_guAn/visualization/modules/FullCurve.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="data-curve-module">
-    <!-- <common-title title="数据查看和提取"></common-title>     -->
-    <div style="height: 22.5px;"></div>
+    <common-title title="全程曲线"></common-title>    
+    <!-- <div style="height: 22.5px;"></div> -->
     <div class="visualization-common-border">
       <div ref="dataCurve" class="h100"></div>
     </div>
@@ -16,6 +16,12 @@ import { setMax } from "../components/common.js";
 export default {
   components: { commonTitle },
   name: '',
+  props: {
+    data: {
+      type: Array,
+      default: []
+    }
+  },
   data () {
     return {
       uEcharts: null,
@@ -30,6 +36,15 @@ export default {
       shiduData: [220, 182, 191, 234, 290, 330, 310],
     }
   },
+  watch: {
+    data: {
+      handler(newValue, oldValue){
+        console.log(newValue, oldValue)
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   created () {
   },
   mounted () {
@@ -64,7 +79,7 @@ export default {
               color: '#fff'
             }
           },
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+          data: ['8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00']
         },
         yAxis: [
           {
@@ -159,7 +174,7 @@ export default {
                   {
                     offset: 0.5,
                     color: 'rgb(7, 214, 38)'
-                  }, 
+                  },
                   {
                     offset: 1,
                     color: 'rgb(7, 214, 38, 0)'
@@ -184,7 +199,7 @@ export default {
                   {
                     offset: 0.5,
                     color: 'rgb(227, 1, 6)'
-                  }, 
+                  },
                   {
                     offset: 1,
                     color: 'rgb(227, 1, 6, 0)'
@@ -210,7 +225,7 @@ export default {
                   {
                     offset: 0.5,
                     color: 'rgb(227, 145, 6)'
-                  }, 
+                  },
                   {
                     offset: 1,
                     color: 'rgb(227, 145, 6, 0)'
@@ -232,7 +247,7 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less">
   .data-curve-module{

+ 104 - 25
src/views/modules_guAn/visualization/modules/ModeInfo.vue

@@ -1,12 +1,12 @@
 <template>
   <div class="mode-info-module">
-    <common-title title="系统模式信息"></common-title>    
+    <common-title title="系统模式信息"></common-title>
     <div class="visualization-common-border box">
       <div>
         <div class="itemHead">温度</div>
         <div class="item">
-          <div id="demo1">温度:</div>
-          <div>输出:</div>
+          <div id="demo1">温度:{{template}}</div>
+          <div>输出:{{outputT}}</div>
         </div>
         <div class="item">
           <div id="demo1">升温
@@ -17,28 +17,29 @@
           </div>
         </div>
         <div class="item">
-          <div id="demo1">温度设定:(123)℃</div>
-          <div>斜率设定:(123)℃/min</div>
+          <!-- <div id="demo1">温度设定:(123)℃</div> -->
+          <div id="demo1">目标温度:{{targetT}}℃</div>
+          <div>斜率设定:{{slopeT}}℃/min</div>
         </div>
         <div class="item">
-          <div id="demo1">起始温度:(123)℃</div>
-          <div>目标温度:(123)℃</div>
+          <div id="demo1">起始温度:{{startT}}℃</div>
+          <!-- <div>目标温度:(123)℃</div> -->
         </div>
         <div class="itemHead">辐照</div>
         <div class="item">
-          <div id="demo1">辐照强度:(0)W/㎡</div>
+          <div id="demo1">辐照强度:0W/㎡</div>
           <div>吹风</div>
         </div>
         <div class="item">
-          <div id="demo1">时间 30min</div>
-          <div>辐照强度设定:(0)W/㎡</div>
+          <div id="demo1">时间 0min</div>
+          <div>辐照强度设定:0W/㎡</div>
         </div>
       </div>
       <div>
         <div class="itemHead">湿度</div>
         <div class="item">
-          <div id="demo1">湿度:80%</div>
-          <div>输出:80%</div>
+          <div id="demo1">湿度:{{humidity}}%</div>
+          <div>输出:{{outputH}}%</div>
         </div>
         <div class="item">
           <div id="demo1">加湿
@@ -49,11 +50,12 @@
           </div>
         </div>
         <div class="item">
-          <div>湿度设定:(123)%/min</div>
+          <!-- <div>湿度设定:(123)%/min</div> -->
+          <div>目标湿度:{{targetH}}%R.H</div>
         </div>
         <div class="item">
-          <div id="demo1">起始湿度:(123)%</div>
-          <div>目标湿度:(123)%</div>
+          <div id="demo1">起始湿度:{{startH}}%R.H</div>
+          <!-- <div>目标湿度:(123)%</div> -->
         </div>
         <div class="itemHead">淋雨</div>
         <div class="item">
@@ -61,7 +63,7 @@
           <div>暴雨</div>
         </div>
         <div class="item">
-          <div id="demo1">时间 30min</div>
+          <div id="demo1">时间 0min</div>
         </div>
       </div>
     </div>
@@ -74,8 +76,49 @@ import commonTitle from '../components/commonTitle.vue'
 export default {
   components: { commonTitle },
   name: '',
+  props: {
+    data: {
+      type: Array,
+      default: []
+    }
+  },
   data () {
     return {
+      // 获取数据(总)
+      dataList: [],
+      // 温度
+      template: '',
+      // 温度输出
+      outputT: '',
+      // 目标温度
+      targetT: '',
+      // 斜率设定(温度)
+      slopeT: '',
+      // 起始温度
+      startT: '',
+      // 辐照强度
+      // 吹风
+      // 时间
+      // 辐照强度设定
+      // 湿度
+      humidity: '',
+      // 湿度输出
+      outputH: '',
+      // 目标湿度
+      targetH: '',
+      // 起始湿度
+      startH: '',
+    }
+  },
+  watch: {
+    data: {
+      handler(newValue, oldValue){
+        console.log(77,newValue, oldValue)
+        this.dataList = newValue
+        this.getList()
+      },
+      immediate: true,
+      deep: true
     }
   },
   created () {
@@ -83,12 +126,48 @@ export default {
   mounted () {
   },
   methods: {
+    getList(){
+      // console.log(this.dataList)
+      for (var i = 0; i < this.dataList.length; i++) {
+        console.log(i,this.dataList[i].Name)
+        // 温度
+        if (this.dataList[i].Name == '当前温度值') {
+          this.template = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '温度输出率') {
+          this.outputT = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '温度设定值') {
+          this.targetT = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '斜率设定') {
+          this.slopeT = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '起始温度值') {
+          this.startT = this.dataList[i].Value
+        }
+        // 辐照
+        // 湿度
+        if (this.dataList[i].Name == '当前湿度值') {
+          this.humidity = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '湿度输出率') {
+          this.outputH = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '湿度设定值') {
+          this.targetH = this.dataList[i].Value
+        }
+        if (this.dataList[i].Name == '起始湿度值') {
+          this.startH = this.dataList[i].Value
+        }
+      }
+    }
   }
 }
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less" scoped>
   .mode-info-module{
@@ -158,18 +237,18 @@ export default {
     align-items: center;
   }
   .img{
-    width: 23%;
-    height: 100%;
+    width: 50%;
+    height: 80%;
     margin-left: 10%;
-    background: url(../../../../assets/visualization/taiyang.png);
-    background-size: cover;
+    background: url(~@/assets/visualization/taiyang.png) no-repeat;
+    background-size: contain;
   }
   .img2{
-    width: 19%;
-    height: 100%;
+    width: 50%;
+    height: 80%;
     margin-left: 10%;
     // border: 1px solid rgb(255, 255, 255);
-    background: url(../../../../assets/visualization/lvtaiyang.png);
-    background-size: cover;
+    background: url(~@/assets/visualization/lvtaiyang.png) no-repeat;
+    background-size: contain;
   }
 </style>

+ 21 - 6
src/views/modules_guAn/visualization/modules/RealTimeCurve.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="data-curve-module">
-    <common-title title="数据查看和提取"></common-title>    
+    <common-title title="实时曲线"></common-title>
     <div class="visualization-common-border">
       <div ref="dataCurve" class="h100"></div>
     </div>
@@ -15,6 +15,12 @@ import { setMax } from "../components/common.js";
 export default {
   components: { commonTitle },
   name: '',
+  props: {
+    data: {
+      type: Array,
+      default: []
+    }
+  },
   data () {
     return {
       uEcharts: null,
@@ -29,6 +35,15 @@ export default {
       shiduData: [220, 182, 191, 234, 290, 330, 310],
     }
   },
+  watch: {
+    data: {
+      handler(newValue, oldValue){
+        console.log(newValue, oldValue)
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   created () {
   },
   mounted () {
@@ -63,7 +78,7 @@ export default {
               color: '#fff'
             }
           },
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+          data: ['8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00']
         },
         yAxis: [
           {
@@ -158,7 +173,7 @@ export default {
                   {
                     offset: 0.5,
                     color: 'rgb(255, 0, 255)'
-                  }, 
+                  },
                   {
                     offset: 1,
                     color: 'rgb(255, 0, 255, 0)'
@@ -183,7 +198,7 @@ export default {
                   {
                     offset: 0.5,
                     color: 'rgb(255, 105, 5)'
-                  }, 
+                  },
                   {
                     offset: 1,
                     color: 'rgb(255, 0, 0, 0)'
@@ -209,7 +224,7 @@ export default {
                   {
                     offset: 0.5,
                     color: 'rgb(91, 255, 255)'
-                  }, 
+                  },
                   {
                     offset: 1,
                     color: 'rgb(0, 255, 255, 0)'
@@ -231,7 +246,7 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less">
   .data-curve-module{

+ 352 - 85
src/views/modules_guAn/visualization/modules/RunningState.vue

@@ -123,7 +123,7 @@
         </div>
         <div class="echarts">
           <div style="width: 30%; height: 100%; font-size: 12px; color: #0CB8FF; display: flex; align-items: center; padding-left:1%;">进度:</div>
-          <div style="width: 55%; height: 100%;" ref="zhuzhuang"></div>
+          <div style="width: 60%; height: 100%;" ref="zhuzhuang"></div>
           <div style="width: 10%; height: 100%; font-size: 9px; color: #FEFFFE; display: flex; align-items: center; justify-content: center; padding-top:2%">80%</div>
         </div>
       </div>
@@ -156,97 +156,364 @@ export default {
       var chartDom = this.$refs.zhuzhuang
       this.zhuChart = echarts.init(chartDom);
       var option;
-
+      const CubeLeft = echarts.graphic.extendShape({
+          shape: {
+              x: 0,
+              y: 0
+          },
+          buildPath: function(ctx, shape) {
+              console.log(ctx,shape);
+              const yAxisPoint = shape.yAxisPoint
+              const c0 = [shape.x, shape.y]
+              const c1 = [shape.x + 9, shape.y - 9]
+              const c2 = [yAxisPoint[0] + 9, yAxisPoint[1] - 9]
+              const c3 = [yAxisPoint[0], yAxisPoint[1]]
+              ctx.moveTo(c0[0], c0[1]).lineTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).closePath()
+          }
+      })
+      const CubeRight = echarts.graphic.extendShape({
+          shape: {
+              x: 0,
+              y: 0
+          },
+          buildPath: function(ctx, shape) {
+              const yAxisPoint = shape.yAxisPoint
+              const c1 = [shape.x, shape.y]
+              const c2 = [yAxisPoint[0], yAxisPoint[1]]
+              const c3 = [yAxisPoint[0] + 9, yAxisPoint[1] + 18]
+              const c4 = [shape.x + 9, shape.y + 18]
+              ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath()
+          }
+      })
+      const CubeTop = echarts.graphic.extendShape({
+          shape: {
+              x: 0,
+              y: 0
+          },
+          buildPath: function(ctx, shape) {
+              const c1 = [shape.x, shape.y]
+              const c2 = [shape.x + 9, shape.y + 18]
+              const c3 = [shape.x + 18, shape.y + 9]
+              const c4 = [shape.x + 9, shape.y - 9]
+              ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath()
+          }
+      })
+      echarts.graphic.registerShape('CubeLeft', CubeLeft)
+      echarts.graphic.registerShape('CubeRight', CubeRight)
+      echarts.graphic.registerShape('CubeTop', CubeTop)
+      const MAX = [6000]
+      const VALUE = [5000]
+      const NAMES = ['进度'];
       option = {
-        grid: {
-        left: '0',
-        // right: '1%',
-        bottom: '58',
-        // top: '1%',
-        // 左侧文字显示
-        // containLabel: true,
-        },
-        xAxis: {
-            show: false,
-            type: 'value',
-            max: 100,
-        },
-        yAxis: [
-            {
-                type: 'category',
-                inverse: false,
-                axisLabel: {
-                    show: true,
-                    textStyle: {
-                        fontSize: '8',
-                        color: '#03fcfe',
-                    },
-                },
-                splitLine: {
-                    show: false,
-                },
-                axisTick: {
-                    show: false,
-                },
-                axisLine: {
-                    show: false,
-                },
-            },
-            {
-                type: 'category',
-                inverse: true,
-                axisTick: 'none',
-                axisLine: 'none',
-                show: true,
-                data: [80],
-            },
-        ],
-        series: [
-            {
-                type: 'bar',
-                showBackground: true,
-                backgroundStyle: {
-                      color: 'rgba(180, 180, 180, 0.2)',
-                      borderRadius:30
-                },
-                // 百分数显示
-                // label:{
-                //     show:true,
-                //     position:'right',
-                //     formatter:'{@score}%',
-                //     textStyle: {
-                //         color: '#03fcfe',
-                //         fontSize: '8',
-                //     },
-                // },
-                itemStyle: {
-                    normal: {
-                        barBorderRadius: 10,
-                        color: new echarts.graphic.LinearGradient(1, 0, 0, 0, [
-                            {
-                                offset: 0,
-                                color: '#1badf9',
-                            },
-                            {
-                                offset: 1,
-                                color: '#03fcfe',
-                            },
-                        ]),
-                    },
-                },
-                barWidth: 10,
-                data: [80],
-            },
-        ],
-      };
+          // backgroundColor: "#010d3a",
+          // title: {
+          //     text: '',
+          //     top: 32,
+          //     left: 18,
+          //     textStyle: {
+          //         color: '#00F6FF',
+          //         fontSize: 24
+          //     }
+          // },
+          grid: {
+              left: '0',
+              // right: 10,
+              bottom: '10',
+              top: 10,
+              // containLabel: true
+          },
+          yAxis: {
+              type: 'category',
+              data: NAMES,
+              axisLine: {
+                  show: false,
+                  lineStyle: {
+                      color: 'white'
+                  }
+              },
+              offset: 20,
+              axisTick: {
+                  show: false,
+                  length: 9,
+                  alignWithLabel: true,
+                  lineStyle: {
+                      color: '#7DFFFD'
+                  }
+              },
+              axisLabel: {
+                  fontSize: 10
+              }
+          },
+          xAxis: {
+              type: 'value',
+              axisLine: {
+                  show: false,
+                  lineStyle: {
+                      color: 'white'
+                  }
+              },
+              splitLine: {
+                  show: false
+              },
+              axisTick: {
+                  show: false
+              },
+              axisLabel: {
+                  show:false,
+                  fontSize: 16
+              },
+              boundaryGap: ['20%', '20%']
+          },
+          series: [{
+              type: 'custom',
+              renderItem: function(params, api) {
+                  const location = api.coord([api.value(0), api.value(1)])
+                  return {
+                      type: 'group',
+                      children: [{
+                          type: 'CubeLeft',
+                          shape: {
+                              api,
+                              xValue: api.value(0),
+                              yValue: api.value(1),
+                              x: location[0],
+                              y: location[1],
+                              yAxisPoint: api.coord([0,api.value(1)])
+                          },
+                          style: {
+                              fill: 'rgba(7,29,97,.6)'
+                          }
+                      }, {
+                          type: 'CubeRight',
+                          shape: {
+                              api,
+                              xValue: api.value(0),
+                              yValue: api.value(1),
+                              x: location[0],
+                              y: location[1],
+                              yAxisPoint: api.coord([0,api.value(1)])
+                          },
+                          style: {
+                              fill: 'rgba(10,35,108,.7)'
+                          }
+                      }, {
+                          type: 'CubeTop',
+                          shape: {
+                              api,
+                              xValue: api.value(0),
+                              yValue: api.value(1),
+                              x: location[0],
+                              y: location[1],
+                              yAxisPoint: api.coord([0,api.value(1)])
+                          },
+                          style: {
+                              fill: 'rgba(11,42,106,.8)'
+                          }
+                      }]
+                  }
+              },
+              data: MAX
+          },
+          {
+              type: 'custom',
+              renderItem: (params, api) => {
+                  const location = api.coord([api.value(0), api.value(1)])
+                  return {
+                      type: 'group',
+                      children: [{
+                          type: 'CubeLeft',
+                          shape: {
+                              api,
+                              xValue: api.value(0),
+                              yValue: api.value(1),
+                              x: location[0],
+                              y: location[1],
+                              yAxisPoint: api.coord([0,api.value(1)])
+                          },
+                          style: {
+                              fill: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+                                      offset: 0,
+                                      color: '#3B80E2'
+                                  },
+                                  {
+                                      offset: 1,
+                                      color: '#49BEE5'
+                                  }
+                              ])
+                          }
+                      }, {
+                          type: 'CubeRight',
+                          shape: {
+                              api,
+                              xValue: api.value(0),
+                              yValue: api.value(1),
+                              x: location[0],
+                              y: location[1],
+                              yAxisPoint: api.coord([0,api.value(1)])
+                          },
+                          style: {
+                              fill: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+                                      offset: 0,
+                                      color: '#3B80E2'
+                                  },
+                                  {
+                                      offset: 1,
+                                      color: '#49BEE5'
+                                  }
+                              ])
+                          }
+                      }, {
+                          type: 'CubeTop',
+                          shape: {
+                              api,
+                              xValue: api.value(0),
+                              yValue: api.value(1),
+                              x: location[0],
+                              y: location[1],
+                              yAxisPoint: api.coord([0,api.value(1)])
+                          },
+                          style: {
+                              fill: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+                                      offset: 0,
+                                      color: '#3B80E2'
+                                  },
+                                  {
+                                      offset: 1,
+                                      color: '#49BEE5'
+                                  }
+                              ])
+                          }
+                      }]
+                  }
+              },
+              data: VALUE
+          },
+          {
+              type: 'bar',
+              label: {
+                  normal: {
+                      show: true,
+                      position: 'right',
+                      formatter: (e) => {
+                          switch (e.name) {
+                              case '10kV线路':
+                                  return VALUE[0]
+                              case '公用配变':
+                                  return VALUE[1]
+                              case '35kV主变':
+                                  return VALUE[2]
+                              case '水':
+
+                          }
+                      },
+                      fontSize: 16,
+                      color: '#fff',
+                      offset: [25, 4]
+                  }
+              },
+              itemStyle: {
+                  color: 'transparent'
+              },
+              data: MAX
+          }]
+      }
       option && this.zhuChart.setOption(option);
-    },
+    }
+    // drawzhuzhuang(){
+    //   var chartDom = this.$refs.zhuzhuang
+    //   this.zhuChart = echarts.init(chartDom);
+    //   var option;
+
+    //   option = {
+    //     grid: {
+    //     left: '0',
+    //     // right: '1%',
+    //     bottom: '58',
+    //     // top: '1%',
+    //     // 左侧文字显示
+    //     // containLabel: true,
+    //     },
+    //     xAxis: {
+    //         show: false,
+    //         type: 'value',
+    //         max: 100,
+    //     },
+    //     yAxis: [
+    //         {
+    //             type: 'category',
+    //             inverse: false,
+    //             axisLabel: {
+    //                 show: true,
+    //                 textStyle: {
+    //                     fontSize: '8',
+    //                     color: '#03fcfe',
+    //                 },
+    //             },
+    //             splitLine: {
+    //                 show: false,
+    //             },
+    //             axisTick: {
+    //                 show: false,
+    //             },
+    //             axisLine: {
+    //                 show: false,
+    //             },
+    //         },
+    //         {
+    //             type: 'category',
+    //             inverse: true,
+    //             axisTick: 'none',
+    //             axisLine: 'none',
+    //             show: true,
+    //             data: [80],
+    //         },
+    //     ],
+    //     series: [
+    //         {
+    //             type: 'bar',
+    //             showBackground: true,
+    //             backgroundStyle: {
+    //                   color: 'rgba(180, 180, 180, 0.2)',
+    //                   borderRadius:30
+    //             },
+    //             // 百分数显示
+    //             // label:{
+    //             //     show:true,
+    //             //     position:'right',
+    //             //     formatter:'{@score}%',
+    //             //     textStyle: {
+    //             //         color: '#03fcfe',
+    //             //         fontSize: '8',
+    //             //     },
+    //             // },
+    //             itemStyle: {
+    //                 normal: {
+    //                     barBorderRadius: 10,
+    //                     color: new echarts.graphic.LinearGradient(1, 0, 0, 0, [
+    //                         {
+    //                             offset: 0,
+    //                             color: '#1badf9',
+    //                         },
+    //                         {
+    //                             offset: 1,
+    //                             color: '#03fcfe',
+    //                         },
+    //                     ]),
+    //                 },
+    //             },
+    //             barWidth: 10,
+    //             data: [80],
+    //         },
+    //     ],
+    //   };
+    //   option && this.zhuChart.setOption(option);
+    // },
   }
 }
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less" scoped>
   .running-state-module{

+ 2 - 2
src/views/modules_guAn/visualization/modules/SurveillanceVideo.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="surveillance-video-module">
-    <common-title title="安防监控视频"></common-title>    
+    <common-title title="安防监控视频"></common-title>
     <div class="visualization-common-border">
 
     </div>
@@ -27,7 +27,7 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less">
   .surveillance-video-module{

+ 2 - 2
src/views/modules_guAn/visualization/modules/TestInformation.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="test-information-module">
-    <common-title title="试验信息"></common-title>    
+    <common-title title="试验信息"></common-title>
     <div class="visualization-common-border">
 
     </div>
@@ -27,7 +27,7 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less">
   .test-information-module{

+ 135 - 177
src/views/modules_guAn/visualization/modules/TestStatusInfo.vue

@@ -1,134 +1,14 @@
 <template>
   <div class="test-statusInfo-module">
     <common-title title="试验状态信息"></common-title>
-    <div class="visualization-common-border box">
-      <div>
-        <div class="item">
-          <div class="itemHead">A机组</div>
-          <div class="itemCenter">
-            <!-- <div>
-              <div class="lef">A1压机吸气:</div>
-              <div class="rig">() bar</div>
+    <div class="visualization-common-border">
+      <div class="content u-flex-jab">
+        <div class="item-zuji" v-for="(zuji, key) in raelDate" :key="key">
+          <div class="item-title">{{zuji.title}}</div>
+          <div class="children-con u-flex-jaa">
+            <div class="item-data" v-for="(item, index) in zuji.children" :key="index">
+              {{ item.name }}:{{ item.value }} bar
             </div>
-            <div>
-              <div class="lef">A2压机吸气:</div>
-              <div class="rig">() bar</div>
-            </div> -->
-            <div>A1压机吸气:() bar</div>
-            <div>A2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <!-- <div>
-              <div class="lef">A1压机排气:</div>
-              <div class="rig">() bar</div>
-            </div>
-            <div>
-              <div class="lef">A2压机排气:</div>
-              <div class="rig">() bar</div>
-            </div> -->
-            <div>A1压机排气:() bar</div>
-            <div>A2压机排气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>B1压机吸气:() bar</div>
-            <div>B2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>B1压机排气:() bar</div>
-            <div>B2压机排气:() bar</div>
-          </div>
-        </div>
-        <div class="item">
-          <div class="itemHead">E机组</div>
-          <div class="itemCenter">
-            <div>E1压机吸气:() bar</div>
-            <div>E2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>E1压机排气:() bar</div>
-            <div>E2压机排气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>F1压机吸气:() bar</div>
-            <div>F2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>F1压机排气:() bar</div>
-            <div>F2压机排气:() bar</div>
-          </div>
-        </div>
-        <div class="item">
-          <div class="itemHead">I机组</div>
-          <div class="itemCenter">
-            <div>I1压机吸气:() bar</div>
-            <div>I2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>I1压机排气:() bar</div>
-            <div>I2压机排气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>J1压机吸气:() bar</div>
-            <div>J2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>J1压机排气:() bar</div>
-            <div>J2压机排气:() bar</div>
-          </div>
-        </div>
-      </div>
-      <div>
-        <div class="item">
-          <div class="itemHead">C机组</div>
-          <div class="itemCenter">
-            <div>C1压机吸气:() bar</div>
-            <div>C2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>C1压机排气:() bar</div>
-            <div>C2压机排气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>D1压机吸气:() bar</div>
-            <div>D2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>D1压机排气:() bar</div>
-            <div>D2压机排气:() bar</div>
-          </div>
-        </div>
-        <div class="item">
-          <div class="itemHead">G机组</div>
-          <div class="itemCenter">
-            <div>G1压机吸气:() bar</div>
-            <div>G2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>G1压机排气:() bar</div>
-            <div>G2压机排气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>H1压机吸气:() bar</div>
-            <div>H2压机吸气:() bar</div>
-          </div>
-          <div class="itemCenter">
-            <div>H1压机排气:() bar</div>
-            <div>H2压机排气:() bar</div>
-          </div>
-        </div>
-        <div class="item">
-          <div class="itemHead"> </div>
-          <div class="itemCenter">
-            <div>氧浓度1:() mg/L</div>
-            <div>氧浓度2:() mg/L</div>
-          </div>
-          <div class="itemCenter">
-            <div>变频器1:() Hz</div>
-            <div>变频器2:() Hz</div>
-          </div>
-          <div class="itemCenter">
-            <div>变频器3:() Hz</div>
-            <div>变频器4:() Hz</div>
           </div>
         </div>
       </div>
@@ -142,8 +22,92 @@ import commonTitle from '../components/commonTitle.vue'
 export default {
   components: { commonTitle },
   name: '',
+  props: {
+    data: {
+      type: Array,
+      default: []
+    }
+  },
   data () {
     return {
+      staticData: [
+        {
+          title: 'A组机',
+          children: [
+            { name: 'A1压机吸气', value: '0.01' },
+            { name: 'A2压机吸气', value: '12' },
+            { name: 'A1压机排气', value: '363' },
+            { name: 'A2压机排气', value: '0.1' },
+            { name: 'B1压机吸气', value: '0.12' },
+            { name: 'B2压机吸气', value: '0.11' },
+            { name: 'B1压机排气', value: '0.001' },
+            { name: 'B2压机排气', value: '22' },
+          ]
+        },
+        {
+          title: 'C组机',
+          children: [
+            { name: 'C1压机吸气', value: '0.01' },
+            { name: 'C2压机吸气', value: '3' },
+            { name: 'C1压机排气', value: '12' },
+            { name: 'C2压机排气', value: '52' },
+            { name: 'D1压机吸气', value: '22' },
+            { name: 'D2压机吸气', value: '6.555' },
+            { name: 'D1压机排气', value: '2.23' },
+            { name: 'D2压机排气', value: '0.001' },
+          ]
+        },
+        {
+          title: 'E组机',
+          children: [
+            { name: 'E1压机吸气', value: '' },
+            { name: 'E2压机吸气', value: '' },
+            { name: 'E1压机排气', value: '' },
+            { name: 'E2压机排气', value: '' },
+            { name: 'F1压机吸气', value: '' },
+            { name: 'F2压机吸气', value: '' },
+            { name: 'F1压机排气', value: '' },
+            { name: 'F2压机排气', value: '' },
+          ]
+        },
+        {
+          title: 'G组机',
+          children: [
+            { name: 'G1压机吸气', value: '' },
+            { name: 'G2压机吸气', value: '' },
+            { name: 'G1压机排气', value: '' },
+            { name: 'G2压机排气', value: '' },
+            { name: 'H1压机吸气', value: '' },
+            { name: 'H2压机吸气', value: '' },
+            { name: 'H1压机排气', value: '' },
+            { name: 'H2压机排气', value: '' },
+          ]
+        },
+        {
+          title: 'I机组',
+          children: [
+            { name: 'I1压机吸气', value: '' },
+            { name: 'I2压机吸气', value: '' },
+            { name: 'I1压机排气', value: '' },
+            { name: 'I2压机排气', value: '' },
+            { name: 'J1压机吸气', value: '' },
+            { name: 'J2压机吸气', value: '' },
+            { name: 'J1压机排气', value: '' },
+            { name: 'J2压机排气', value: '' },
+          ]
+        },
+      ],
+      raelDate: []
+    }
+  },
+  watch: {
+    data: {
+      handler(newValue, oldValue){
+        console.log(newValue, oldValue)
+        this.changeData(newValue)
+      },
+      immediate: true,
+      deep: true
     }
   },
   created () {
@@ -151,65 +115,59 @@ export default {
   mounted () {
   },
   methods: {
+    changeData(newValue){
+      var newArr = this.staticData.map(res=>{
+        var childrenArr = res.children.map(item=>{
+          var findObj = newValue.find(val=>val.Name === item.name+'压力采集值')
+          return {
+            name: item.name,
+            value: findObj.Value
+          }
+        })
+        return {
+          title: res.title,
+          children: childrenArr
+        }
+      })
+      // this.raelDate = newArr
+      this.raelDate = this.staticData
+      // console.log(this.raelDate)
+    }
   }
 }
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less" scoped>
   .test-statusInfo-module{
     width: 100%;
     height: 100%;
-  }
-  .box {
-    // border: 1px solid rgb(255, 255, 255);
-    display: flex;
-    /* row (默认值) : 主轴为水平万向,起点在左端。*/
-    flex-direction: row;
-  }
-  .box>div{
-    width: 50%;
-    height: 89%;
-    margin: 3%;
-    // border: 1px solid rgb(255, 255, 255);
-  }
-  .item{
-    width: 94%;
-    height: 30%;
-    margin: 3%;
-    // border: 1px solid rgb(255, 255, 255);
-    color: #FEFFFE;
-    font-size: 8px;
-  }
-  .itemHead{
-    height: 17%;
-    display: flex;
-    justify-content: center;
-  }
-  .itemCenter{
-    display: flex;
-    justify-content: space-between;
-    flex: 1;
-  }
-  .itemCenter>div{
-    width: 50%;
-    height: 30%;
-    display: flex;
-    justify-content: center;
-    flex: 1;
-  }
-  .lef{
-    width: 50%;
-    height: 100%;
-    display: flex;
-    justify-content: end;
-  }
-  .rig{
-    width: 50%;
-    height: 100%;
-    display: flex;
-    justify-content: start;
+    .content{
+      width: 100%;
+      height: 100%;
+      flex-wrap: wrap;
+      padding: 10px 2%;
+      .item-zuji{
+        width: 49.5%;
+        color: #FEFFFE;
+        font-size: 10px;
+        .item-title{
+          text-align: center;
+        }
+        .children-con{
+          flex-wrap: wrap;
+          flex-basis: auto;
+          width: 100%;
+        }
+        .item-data{
+          min-width: 106px;
+          max-width: 50%;
+          color: #FEFFFE;
+          font-size: 10px;
+        }
+      }
+    }
   }
 </style>

+ 18 - 3
src/views/modules_guAn/visualization/modules/YuzhiCurve.vue

@@ -15,6 +15,12 @@ import { setMax } from "../components/common.js";
 export default {
   components: { commonTitle },
   name: '',
+  props: {
+    data: {
+      type: Array,
+      default: []
+    }
+  },
   data () {
     return {
       uEcharts: null,
@@ -29,6 +35,15 @@ export default {
       shiduData: [220, 182, 191, 234, 290, 330, 310],
     }
   },
+  watch: {
+    data: {
+      handler(newValue, oldValue){
+        console.log(newValue, oldValue)
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   created () {
   },
   mounted () {
@@ -63,7 +78,7 @@ export default {
               color: '#fff'
             }
           },
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+          data: ['8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00']
         },
         yAxis: [
           {
@@ -230,7 +245,7 @@ export default {
     // setMax(num) {
     //   // 1.判断是否小数:  //判断是否含有小数点:要检索的字符串值没有出现,则该方法返回 -1。
     //   if (num.toString().indexOf(".") != -1) {//有小数点
-    //     num = Math.ceil(num);//向上取整 
+    //     num = Math.ceil(num);//向上取整
     //   }
     //   // 2.向上取整数倍
     //   if (num.toString().length < 2) {
@@ -256,7 +271,7 @@ export default {
 </script>
 
 <style scoped>
-  @import '~@assets/less/uStyle.less';
+  @import '~@/assets/less/uStyle.less';
 </style>
 <style lang="less">
   .yuzhi-curve-module{