Selaa lähdekoodia

完成标题点击功能 去掉滚轮缩放

zhbyyy 2 vuotta sitten
vanhempi
commit
3f60448d44

+ 0 - 3
investment/.vscode/settings.json

@@ -1,3 +0,0 @@
-{
-  "liveServer.settings.port": 5501
-}

BIN
investment/groupImg/alert.png


BIN
investment/groupImg/back2.png


BIN
investment/groupImg/center1.png


BIN
investment/groupImg/header-bg.png


BIN
investment/groupImg/page-bg.png


BIN
investment/groupImg/title-left2.png


BIN
investment/groupImg/title-right2.png


BIN
investment/groupImg/titleImg/1.png


BIN
investment/groupImg/titleImg/10.png


BIN
investment/groupImg/titleImg/11.png


BIN
investment/groupImg/titleImg/2.png


BIN
investment/groupImg/titleImg/3.png


BIN
investment/groupImg/titleImg/4.png


BIN
investment/groupImg/titleImg/5.png


BIN
investment/groupImg/titleImg/6.png


BIN
investment/groupImg/titleImg/7.png


BIN
investment/groupImg/titleImg/8.png


BIN
investment/groupImg/titleImg/9.png


+ 35 - 17
investment/investHomeGroup.html

@@ -28,10 +28,10 @@
 
 <body>
   <!-- <dv-full-screen-container> -->
-  <div id="app" class="w-full h-full">
+  <div id="app" @click="tipShow=false" class="w-full h-full">
     <div class="LeftBox">
       <header class="my-header">
-        <span>投资业务管理</span>
+        <span class="pointer" @click.stop="showPop('2.png')">投资业务管理</span>
       </header>
       <div class="main">
         <dv-border-box-8 :dur="10" class="card left-lt">
@@ -81,7 +81,7 @@
               <div class="item3 commonBack">
                 <div class="item3-title">{{numFormat(totleLimit)}}<span>亿</span></div>
                 <div class="item3-img">
-                  <img style="width: 100%; height: 100%;" src="./images/icon-8-home2.png" alt="">
+                  <img style="width: 100%; height: 100%;" src="./groupImg/icon-8-home2.png" alt="">
                 </div>
                 <div class="item4-text" style="color: #fff;text-align: center;">
                   <div>年度投资计划总额</div>
@@ -165,9 +165,9 @@
         </dv-border-box-8>
       </div>
     </div>
-    <div class="CenterBox">
+    <div class="CenterBox relative">
       <header class="my-header">
-        <span>数智化投资管理驾驶舱</span>
+        <span class="pointer" @click.stop="showPop('1.png')">数智化投资管理驾驶舱</span>
       </header>
       <div class="main">
         <div class="h-full w-full center-l">
@@ -237,7 +237,7 @@
           <div class="top">
             <div class="box">
               <div class="t">
-                <img src="./images/center1.png" />
+                <img src="./groupImg/center1.png" />
                 产业转型
               </div>
               <div class="flex b">
@@ -253,7 +253,7 @@
             </div>
             <div class="box">
               <div class="t">
-                <img src="./images/center1.png" />
+                <img src="./groupImg/center1.png" />
                 数字转型
               </div>
               <div class="flex b">
@@ -312,14 +312,19 @@
           </div>
         </div>
       </div>
+      <div class="tip-box" v-show="tipShow">
+        <div class="absolute popLeft" @click.stop="popLeftClick()"></div>
+        <div class="absolute popright" @click.stop="poprightClick()"></div>
+        <img :src="`./groupImg/titleImg/${titleUrl}`" class="titleImg" alt="">
+      </div>
     </div>
     <div class="RightBox">
       <header class="my-header">
-        <span>投资业务管理</span>
+        <span class="pointer" @click.stop="showPop('7.png')">投资项目管理</span>
         <span class="right">{{time}}</span>
       </header>
       <div class="main">
-        <div class="right-t">
+        <div class="right-t relative">
           <div class="commonBack">
             <div class="title">
               <span class="text">固定资产</span>
@@ -344,23 +349,34 @@
             </div>
             <div class="content top-rb">
               <div class="topCard flex items-center justify-center flex-col  overflow-hidden">
-                <div class="flex items-center justify-center shrink-0" :class="(titleList[11].type==1)?'titleBackBlue':'titleBackYellow'"><span
-                    class="flex items-center justify-center" style="height:40%;width:33%;font-size: 30px;">{{titleList[12].name}}</span>
+                <div class="flex items-center justify-center shrink-0"
+                  :class="(titleList[12].type==1)?'titleBackBlue':'titleBackYellow'"><span
+                    class="flex items-center justify-center"
+                    style="height:40%;width:33%;font-size: 30px;">{{titleList[12].name}}</span>
                 </div>
-                <span style="color:#1998FF;"><span style="font-size:40px;font-weight: bold;">{{titleList[12].number}}</span>个</span>
+                <span style="color:#1998FF;"><span
+                    style="font-size:40px;font-weight: bold;">{{titleList[12].number}}</span>个</span>
               </div>
               <div class="topCard flex items-center justify-center flex-col ">
                 <div class="flex items-center justify-center shrink-0">
                 </div>
               </div>
               <div class="topCard flex items-center justify-center flex-col ">
-                <div class="flex items-center justify-center shrink-0" :class="(titleList[13].type==1)?'titleBackBlue':'titleBackYellow'"><span
-                    class="flex items-center justify-center" style="height:40%;width:33%;font-size: 30px;">{{titleList[14].name}}</span>
+                <div class="flex items-center justify-center shrink-0"
+                  :class="(titleList[14].type==1)?'titleBackBlue':'titleBackYellow'"><span
+                    class="flex items-center justify-center"
+                    style="height:40%;width:33%;font-size: 30px;">{{titleList[14].name}}</span>
                 </div>
-                <span style="color:#1998FF;"><span style="font-size:40px;font-weight: bold;">{{titleList[14].number}}</span>个</span>
+                <span style="color:#1998FF;"><span
+                    style="font-size:40px;font-weight: bold;">{{titleList[14].number}}</span>个</span>
               </div>
             </div>
           </div>
+          <!-- 悬浮窗 -->
+          <div class="flotage absolute" :style="{left:(yellowPosition + 'px')}" v-if="yellowCount % 2 ==0">
+            <span>项目数量:120</span>
+            <span>项目金额:3423094</span>
+          </div>
         </div>
         <div class="right-c">
           <div class="centerBack center-l ">
@@ -388,7 +404,8 @@
               <span class="text">进度成本偏差</span>
             </div>
             <div class="content" style="padding:0">
-              <div ref="echartR2" class="w-full h-full" @mouseover="echartR2Fd = false" @mouseout="echartR2Fd = true"></div>
+              <div ref="echartR2" class="w-full h-full" @mouseover="echartR2Fd = false" @mouseout="echartR2Fd = true">
+              </div>
             </div>
           </div>
           <div>
@@ -397,7 +414,8 @@
             </div>
             <div class="content right-br">
               <div class="right-brt">
-                <div ref="echartR3" class="w-full h-full commonBack" @mouseover="echartR3Fd = false" @mouseout="echartR3Fd = true"></div>
+                <div ref="echartR3" class="w-full h-full commonBack" @mouseover="echartR3Fd = false"
+                  @mouseout="echartR3Fd = true"></div>
                 <div class="w-full h-full commonBack" ref="echartR4"></div>
               </div>
               <div class="w-full h-full commonBack" ref="echartR5"></div>

+ 276 - 216
investment/js/investHomeGroup.js

@@ -2,13 +2,17 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
-      yellowCount:0,
+      tipShow: false,
+      titleUrl: '',
+      yellowCount: 0, // 黄圈轮播参数
+      yellowPosition: 40,// 黄圈悬浮窗位置参数
       echartR1Fd: true,
       echartR2Fd: true,
       echartR3Fd: true,
       echarts1Time: 16000,
       time: '',
       timer: '',
+      timer2: '',
       totleLimit: '1363.88',
       showTip2: false,
       showTip3: false,
@@ -17,7 +21,7 @@ let app = new Vue({
       countType: 0,
       mapName: 'shanxi',
       geoCoordMap: {},
-      storageRecordConfig2:[],
+      storageRecordConfig2: [],
       titleList: [
         { name: '初步设计', type: 1, number: '106' },
         { name: '', type: 1, number: '' },
@@ -27,13 +31,14 @@ let app = new Vue({
         { name: '', type: 1, number: '' },
         { name: '完工', type: 1, number: '35' },
         { name: '', type: 1, number: '' },
-        { name: '验收', type: 2, number: '42' },
+        { name: '验收', type: 1, number: '42' },
         { name: '', type: 1, number: '' },
         { name: '结算', type: 1, number: '33' },
         { name: '', type: 1, number: '' },
         { name: '前期准备', type: 1, number: '66' },
         { name: '', type: 1, number: '' },
-        { name: '工商变更登记', type: 1, number: '77' }
+        { name: '工商变更登记', type: 1, number: '77' },
+        { name: '', type: 1, number: '' },
       ],
       centerLeftList: [
         { name: '正偏差', value: '160', value2: '500' },
@@ -81,13 +86,18 @@ let app = new Vue({
     this.time = formatDate()
     this.timer = setInterval(() => {
       this.time = formatDate()
-      this.changeYellow()
     }, 1000)
+    this.timer2 = setInterval(() => {
+      this.changeYellow()
+    }, 2000)
   },
   beforeDestroy () {
     if (this.timer) {
       clearInterval(this.timer);
     }
+    if (this.timer2) {
+      clearInterval(this.timer2);
+    }
   },
   mounted () {
     setTimeout(() => {
@@ -117,19 +127,61 @@ let app = new Vue({
       this.initChartR4()
       this.initChartR5()
       this.changeYellow()
-      
+
     })
   },
   methods: {
-    changeYellow(){
-      this.titleList.forEach((item,index)=>{
-        this.$set(this.titleList[index],'type',1)
+    //点击弹窗左半部分
+    popLeftClick () {
+      if (this.titleUrl == '2.png') {
+        this.titleUrl = '3.png'
+      } else if (this.titleUrl == '7.png') {
+        this.titleUrl = '8.png'
+      } else if (this.titleUrl == '3.png') {
+        this.titleUrl = '2.png'
+      } else if (this.titleUrl == '8.png') {
+        this.titleUrl = '7.png'
+      } else if (this.titleUrl == '5.png') {
+        this.titleUrl = '2.png'
+      } else if (this.titleUrl == '10.png') {
+        this.titleUrl = '7.png'
+      }
+    },
+    //点击弹窗右半部分
+    poprightClick () {
+      if (this.titleUrl == '2.png') {
+        this.titleUrl = '5.png'
+      } else if (this.titleUrl == '7.png') {
+        this.titleUrl = '10.png'
+      } else if (this.titleUrl == '5.png') {
+        this.titleUrl = '2.png'
+      } else if (this.titleUrl == '10.png') {
+        this.titleUrl = '7.png'
+      } else if (this.titleUrl == '3.png') {
+        this.titleUrl = '2.png'
+      } else if (this.titleUrl == '8.png') {
+        this.titleUrl = '7.png'
+      }
+    },
+    showPop (e) {
+      this.titleUrl = e
+      this.tipShow = true
+    },
+    changeYellow () {
+      this.titleList.forEach((item, index) => {
+        this.$set(this.titleList[index], 'type', 1)
       })
-      this.$set(this.titleList[this.yellowCount],'type',2)
-      if(this.yellowCount == 13){
+      this.$set(this.titleList[this.yellowCount], 'type', 2)
+      if (this.yellowCount == 14) {
         this.yellowCount = 0
-      }else{
-        this.yellowCount++
+        this.yellowPosition += 315
+      } else {
+        if (this.yellowCount != 0) {
+          this.yellowPosition += 315
+        } else {
+          this.yellowPosition = 40
+        }
+        this.yellowCount += 2
       }
     },
     numFormat (value) {
@@ -2695,11 +2747,11 @@ let app = new Vue({
         chart.tooltip.refresh(point);
       }
     },
-    initChartC2() {
+    initChartC2 () {
       let myChart = echarts.init(this.$refs['echartC2'])
       let option = {
         tooltip: {
-          formatter: data => {            
+          formatter: data => {
             return `${data[0].name}<br /><span style="display:inline-block;border-radius:50%; width:7px;height:7px;background-color:${data[0].color.colorStops[0].color}"></span> ${data[0].seriesName}:${data[0].value}亿 <br/><span style="display:inline-block;border-radius:50%; width:7px;height:7px;background-color:${data[1].color.colorStops[0].color}"></span> ${data[1].seriesName}:${data[1].value}亿`
           },
           trigger: 'axis',
@@ -2707,34 +2759,36 @@ let app = new Vue({
             type: 'cross',
           },
         },
-        dataZoom:[
-         {
-          // start: 9,//默认为@
-          // end: 100,//黑认认为1@0
-          type: "slider",
-          show: false,
-          // xAxisIndex: [0]
-          handlesize: 0,//滑动条的 左右2个滑动条的大小
-          startValue: 5,// 初始显示值
-          endValue: 0,// 结束显示值
-          height: 10,//组件高度
-          left:"5%",
-          right: "4%",//右边的距离
-          bottom: "25%",//底边的距离
-          borderColor:"#939",
-          fillerColor:"#269cdb",
-          borderRadius: 5,
-          backgroundColor: "#33384b",//两边未选中的滑动条区域的额色
-          showDataShadow: false,//是否显示数据阴影
-          showDetail: false,//即拖拽时候是否显示详细数值信息 
-          truerealtime: true,//是否实时更新
-          filterMode: "filter"
-         },{
-          type:'inside',
-          show: true,
-          start: 1,
-          end: 100
-         }
+        dataZoom: [
+          {
+            // start: 9,//默认为@
+            // end: 100,//黑认认为1@0
+            type: "slider",
+            show: false,
+            // xAxisIndex: [0]
+            handlesize: 0,//滑动条的 左右2个滑动条的大小
+            startValue: 5,// 初始显示值
+            endValue: 0,// 结束显示值
+            height: 10,//组件高度
+            left: "5%",
+            right: "4%",//右边的距离
+            bottom: "25%",//底边的距离
+            borderColor: "#939",
+            fillerColor: "#269cdb",
+            borderRadius: 5,
+            backgroundColor: "#33384b",//两边未选中的滑动条区域的额色
+            showDataShadow: false,//是否显示数据阴影
+            showDetail: false,//即拖拽时候是否显示详细数值信息 
+            truerealtime: true,//是否实时更新
+            filterMode: "filter"
+          }, {
+            type: 'inside',
+            show: true,
+            start: 1,
+            end: 100,
+            zoomOnMouseWheel: false,  //滚轮是否触发缩放
+            moveOnMouseMove: false,  //鼠标滚轮触发滚动
+          }
         ],
         grid: {
           top: '10%',
@@ -2845,22 +2899,22 @@ let app = new Vue({
         nterval: 2000,
         loopSeries: true,
       })
-      let arr =  executeList.map(item => item.value2)
+      let arr = executeList.map(item => item.value2)
       this.timeOut = setInterval(function () {
-       
+
         let startValue = myChart.getModel().option.dataZoom[0].startValue;
         let endValue = myChart.getModel().option.dataZoom[0].endValue;
         let start = myChart.getModel().option.xAxis[0].data[startValue];//起始X轴
         let end = myChart.getModel().option.xAxis[0].data[endValue];//结束X轴
         // 每次向后滚动一个,最后一个从头开始。
         // console.log(option.dataZoom[0].endValue);
-        
+
         if (option.dataZoom[0].endValue >= 12) {
           option.dataZoom[0].endValue = 5
           option.dataZoom[0].startValue = 0
         } else {
-            option.dataZoom[0].endValue = option.dataZoom[0].endValue + 6
-            option.dataZoom[0].startValue = option.dataZoom[0].startValue + 6
+          option.dataZoom[0].endValue = option.dataZoom[0].endValue + 6
+          option.dataZoom[0].startValue = option.dataZoom[0].startValue + 6
         }
 
         // myChart.dispatchAction({
@@ -2870,9 +2924,9 @@ let app = new Vue({
         // });
         myChart.setOption(option);
       }, 12000);
-      
+
     },
-    convertData(data) {
+    convertData (data) {
       var res = []
       for (var i = 0; i < data.length; i++) {
         var geoCoord = this.geoCoordMap[data[i].name]
@@ -2885,7 +2939,7 @@ let app = new Vue({
       }
       return res
     },
-    initChinaChart() {
+    initChinaChart () {
       var data = [
         { name: '大同市', value: 60.35, value2: 28 },
         { name: '朔州市', value: 33.61, value2: 13 },
@@ -3198,7 +3252,7 @@ let app = new Vue({
           map: 'shanxi',
           layoutCenter: ['50%', '50%'], //地图位置
           layoutSize: '100%',
-          zoom:1.5,
+          zoom: 1.5,
           label: {
             normal: {
               show: false,
@@ -3364,7 +3418,7 @@ let app = new Vue({
       });
       myChart.setOption(option)
     },
-    initChartC3() {
+    initChartC3 () {
       let myChart = echarts.init(this.$refs['echartC3'])
       let option = {
         tooltip: {
@@ -3480,13 +3534,13 @@ let app = new Vue({
       })
 
     },
-    initChartC4() {
+    initChartC4 () {
       var chartData = []
       var timer = null;
       var timer2 = null;
       var i = 0;
 
-      chartDateR2.forEach((item,index) => {
+      chartDateR2.forEach((item, index) => {
         let obj = {
           name: item.name,
           y: item.value2,
@@ -3496,185 +3550,185 @@ let app = new Vue({
           color: index == 0 ? '#43ede3' : '#8ba2ff'
         }
         chartData.push(obj)
-        
+
       })
       let that = this
-    var chart = Highcharts.chart('echartC4', {
-      chart: {
-        type: 'pie',
-        backgroundColor: 'rgba(0,0,0,0)',
-        options3d: {
-          enabled: true,
-          alpha: 45,
-          //beta: 0
-        },
-        events: {
-          // load,图表加载完成时触发
-          load: function () {
-            var chart = this;
+      var chart = Highcharts.chart('echartC4', {
+        chart: {
+          type: 'pie',
+          backgroundColor: 'rgba(0,0,0,0)',
+          options3d: {
+            enabled: true,
+            alpha: 45,
+            //beta: 0
+          },
+          events: {
+            // load,图表加载完成时触发
+            load: function () {
+              var chart = this;
 
-            var points = chart.series[0].points;
-            var len = points.length;
-           
-            timer && clearInterval(timer);
-            timer = setInterval(function () {
-              autoTooltip(points[i]);
-              chartData.forEach((item,index) => {
-                item.sliced = false
-                item.selected = false
-                if(index == i){
-                  item.sliced = true
-                  item.selected = true
-                }
-              })
-              chart.update({
-                series:[{
-                  type: 'pie',
-                  name: '占比',
-                  point: {
-                    events:{
-                      click:function(e){
-                          console.log(e)
-                      }
-                    }
-                  },
-                  data: chartData
-                }]
-              })
-              i++;
-              if (i === len) {
-                i = 0;
-                chartData.forEach((item,index) => {
+              var points = chart.series[0].points;
+              var len = points.length;
+
+              timer && clearInterval(timer);
+              timer = setInterval(function () {
+                autoTooltip(points[i]);
+                chartData.forEach((item, index) => {
                   item.sliced = false
                   item.selected = false
+                  if (index == i) {
+                    item.sliced = true
+                    item.selected = true
+                  }
                 })
                 chart.update({
-                  series:[{
+                  series: [{
                     type: 'pie',
                     name: '占比',
                     point: {
-                      events:{
-                        click:function(e){
-                            console.log(e)
+                      events: {
+                        click: function (e) {
+                          console.log(e)
                         }
                       }
                     },
                     data: chartData
                   }]
                 })
-              }
-            }, 2000);
-          },
-          legendItemClick : function(event) {
-            console.log(event);
-            return true;
-          }
-        }
-      },
-      credits: {
-        enabled: false  //去掉hightchats水印
-      },
-      title: {
-        text: null
-      },
-      tooltip: {
-        crosshairs: true,
-        backgroundColor: 'rgba(0,0,0,0.5)',
-        // positioner: function(e){
-        //   console.log(e, this)
-        // },
-        useHTML: false, //开启html模式
-        style: {
-          color:'#fff',
-        },
-        formatter: function(e){
-          //console.log(this)
-          let num = chartData[this.colorIndex].num
-          this.percentage = Math.round(this.percentage)
-          return `${this.key}:<b>${this.percentage}%</b><br/>投资完成额:<b>${this.y}</b>亿<br/>投资数量:<b>${num}个</b>`
-        },
-        //pointFormat: 
-      },
-      legend: {
-        layout: 'vertical',
-        align: 'right',
-        verticalAlign: 'bottom',
-        itemStyle: {
-          fontSize: '20px',
-          color: '#fff',
-          x: 20
-        }
-      },
-      plotOptions: {
-        pie: {
-          allowPointSelect: true,
-          showInLegend:  true, // 图例
-          cursor: 'pointer',
-          size: 500,
-          innerSize : 300, //环形图中间空白,0为饼图
-          depth: 28, //立体高度
-          slicedOffset: 23, //动画距离
-          dataLabels: {
-            enabled: false,  // 是否展示指示线
-            format: '{point.name}: {point.percentage}'
-          }
-        },
-      },
-      series: [{
-        type: 'pie',
-        name: '占比',
-        center: ['60%', '50%'],
-        point: {
-            events:{
-                click:function(e){ //点击事件
-                },
-                mouseOver: function(e){ //鼠标移入停止轮播并且找到移入的当前数据设为选中
-                  //console.log(e) 
-                  chartData.forEach((item,index) => {
+                i++;
+                if (i === len) {
+                  i = 0;
+                  chartData.forEach((item, index) => {
                     item.sliced = false
                     item.selected = false
-                 })
-                  chartData[e.target.index].sliced = true
-                  chartData[e.target.index].selected = true
+                  })
                   chart.update({
-                    series:[{
+                    series: [{
                       type: 'pie',
                       name: '占比',
                       point: {
-                        events:{
-                          click:function(e){
-                              console.log(e)
+                        events: {
+                          click: function (e) {
+                            console.log(e)
                           }
                         }
                       },
                       data: chartData
                     }]
                   })
-                  timer && clearInterval(timer);
-                },
-                mouseOut: function(){ // 鼠标移出后需要继续执行轮播
+                }
+              }, 2000);
+            },
+            legendItemClick: function (event) {
+              console.log(event);
+              return true;
+            }
+          }
+        },
+        credits: {
+          enabled: false  //去掉hightchats水印
+        },
+        title: {
+          text: null
+        },
+        tooltip: {
+          crosshairs: true,
+          backgroundColor: 'rgba(0,0,0,0.5)',
+          // positioner: function(e){
+          //   console.log(e, this)
+          // },
+          useHTML: false, //开启html模式
+          style: {
+            color: '#fff',
+          },
+          formatter: function (e) {
+            //console.log(this)
+            let num = chartData[this.colorIndex].num
+            this.percentage = Math.round(this.percentage)
+            return `${this.key}:<b>${this.percentage}%</b><br/>投资完成额:<b>${this.y}</b>亿<br/>投资数量:<b>${num}个</b>`
+          },
+          //pointFormat: 
+        },
+        legend: {
+          layout: 'vertical',
+          align: 'right',
+          verticalAlign: 'bottom',
+          itemStyle: {
+            fontSize: '20px',
+            color: '#fff',
+            x: 20
+          }
+        },
+        plotOptions: {
+          pie: {
+            allowPointSelect: true,
+            showInLegend: true, // 图例
+            cursor: 'pointer',
+            size: 500,
+            innerSize: 300, //环形图中间空白,0为饼图
+            depth: 28, //立体高度
+            slicedOffset: 23, //动画距离
+            dataLabels: {
+              enabled: false,  // 是否展示指示线
+              format: '{point.name}: {point.percentage}'
+            }
+          },
+        },
+        series: [{
+          type: 'pie',
+          name: '占比',
+          center: ['60%', '50%'],
+          point: {
+            events: {
+              click: function (e) { //点击事件
+              },
+              mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
+                //console.log(e) 
+                chartData.forEach((item, index) => {
+                  item.sliced = false
+                  item.selected = false
+                })
+                chartData[e.target.index].sliced = true
+                chartData[e.target.index].selected = true
+                chart.update({
+                  series: [{
+                    type: 'pie',
+                    name: '占比',
+                    point: {
+                      events: {
+                        click: function (e) {
+                          console.log(e)
+                        }
+                      }
+                    },
+                    data: chartData
+                  }]
+                })
+                timer && clearInterval(timer);
+              },
+              mouseOut: function () { // 鼠标移出后需要继续执行轮播
                 var points = chart.series[0].points;
                 var len = points.length;
-           
+
                 timer && clearInterval(timer);
                 timer = setInterval(function () {
                   autoTooltip(points[i]);
-                  chartData.forEach((item,index) => {
+                  chartData.forEach((item, index) => {
                     item.sliced = false
                     item.selected = false
-                    if(index == i){
+                    if (index == i) {
                       item.sliced = true
                       item.selected = true
                     }
                   })
                   chart.update({
-                    series:[{
+                    series: [{
                       type: 'pie',
                       name: '占比',
                       point: {
-                        events:{
-                          click:function(e){
-                              console.log(e)
+                        events: {
+                          click: function (e) {
+                            console.log(e)
                           }
                         }
                       },
@@ -3684,18 +3738,18 @@ let app = new Vue({
                   i++;
                   if (i === len) {
                     i = 0;
-                    chartData.forEach((item,index) => {
+                    chartData.forEach((item, index) => {
                       item.sliced = false
                       item.selected = false
                     })
                     chart.update({
-                      series:[{
+                      series: [{
                         type: 'pie',
                         name: '占比',
                         point: {
-                          events:{
-                            click:function(e){
-                                console.log(e)
+                          events: {
+                            click: function (e) {
+                              console.log(e)
                             }
                           }
                         },
@@ -3703,31 +3757,31 @@ let app = new Vue({
                       }]
                     })
                   }
-                }, 2000);                
-               }
+                }, 2000);
+              }
             }
-        },
-        data: chartData
-      }]
-    });
-    
-    function autoTooltip(point) {
-      chart.tooltip.refresh(point);
-    }
+          },
+          data: chartData
+        }]
+      });
+
+      function autoTooltip (point) {
+        chart.tooltip.refresh(point);
+      }
     },
-    initProjectList() {
+    initProjectList () {
       let dataList = []
       projectList.map(item => {
-        dataList.push([item.office,item.name,  item.value + '亿'])
+        dataList.push([item.office, item.name, item.value + '亿'])
       })
       this.storageRecordConfig2 = {
-        header: ['企业集团', '项目名称',  '投资金额'],
+        header: ['企业集团', '项目名称', '投资金额'],
         headerBGC: '#05507b33',
         oddRowBGC: '#05507b33',
         evenRowBGC: '',
         headerHeight: '40',
         rowNum: 6,
-        columnWidth: [100, 550,100],
+        columnWidth: [100, 550, 100],
         align: ['center', 'center', 'center'],
         data: dataList,
       }
@@ -3799,7 +3853,9 @@ let app = new Vue({
             type: 'inside',
             show: true,
             start: 1,
-            end: 100
+            end: 100,
+            zoomOnMouseWheel: false,  //滚轮是否触发缩放
+            moveOnMouseMove: false,  //鼠标滚轮触发滚动
           }
         ],
         grid: {
@@ -4048,7 +4104,9 @@ let app = new Vue({
             type: 'inside',
             show: true,
             start: 1,
-            end: 100
+            end: 100,
+            zoomOnMouseWheel: false,  //滚轮是否触发缩放
+            moveOnMouseMove: false,  //鼠标滚轮触发滚动
           }
         ],
         legend: {
@@ -4132,7 +4190,7 @@ let app = new Vue({
           axisLabel: {
             show: true,
             // rotate: 40,
-            padding: [0,0 , 0, 0],
+            padding: [0, 0, 0, 0],
             textStyle: {
               color: '#fff', //X轴文字颜色
               fontSize: 12,
@@ -4244,7 +4302,9 @@ let app = new Vue({
             type: 'inside',
             show: true,
             start: 1,
-            end: 100
+            end: 100,
+            zoomOnMouseWheel: false,  //滚轮是否触发缩放
+            moveOnMouseMove: false,  //鼠标滚轮触发滚动
           }
         ],
         grid: {
@@ -4429,7 +4489,7 @@ let app = new Vue({
           name: { //修改indicator文字的颜色
             textStyle: {
               color: "#fff",
-              fontSize:'20'
+              fontSize: '20'
             }
           },
           splitNumber: 4, //有几个圈
@@ -4521,7 +4581,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: ['设备费','设计费','施工费','材料费'],
+          data: ['设备费', '设计费', '施工费', '材料费'],
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {

+ 105 - 53
investment/styles/investHomeGroup.css

@@ -23,8 +23,11 @@ a {
 [v-cloak] {
   display: none;
 }
+.pointer {
+  cursor: pointer;
+}
 #app {
-  background: url('../images/page-bg.png') center center no-repeat;
+  background: url('../groupImg/page-bg.png') center center no-repeat;
   background-size: 100% 100%;
   padding-top: 10px;
   width: 100%;
@@ -41,12 +44,16 @@ a {
 }
 div {
   overflow: hidden;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
 }
 .my-header {
   position: relative;
   height: 70px;
   line-height: 70px;
-  background: url('../images/header-bg.png') center center no-repeat;
+  background: url('../groupImg/header-bg.png') center center no-repeat;
   background-size: 100% 100%;
   text-align: center;
   font-weight: bold;
@@ -88,7 +95,7 @@ div {
   width: 100%;
   height: calc(100% - 70px);
   display: grid;
-  grid-template-rows: 5fr 8fr 11fr;  
+  grid-template-rows: 5fr 8fr 11fr;
   gap: 10px;
 }
 .LeftBox .card {
@@ -121,7 +128,7 @@ div {
   left: -40px;
   width: 30px;
   height: 10px;
-  background: url('../images/title-left2.png') no-repeat;
+  background: url('../groupImg/title-left2.png') no-repeat;
 }
 .title .text::after {
   position: absolute;
@@ -130,7 +137,7 @@ div {
   right: -40px;
   width: 30px;
   height: 10px;
-  background: url('../images/title-right2.png') no-repeat;
+  background: url('../groupImg/title-right2.png') no-repeat;
 }
 .content {
   height: calc(100% - 110px);
@@ -199,7 +206,8 @@ div {
   color: #2cb7e0;
   font-size: 20px;
 }
-.LeftBox .commonBack,.RightBox .commonBack {
+.LeftBox .commonBack,
+.RightBox .commonBack {
   background-color: #062c4d;
   border-radius: 15px;
 }
@@ -308,24 +316,26 @@ div {
   gap: 10px;
   grid-template-columns: repeat(2, 1fr);
 }
-.CenterBox .center-l .card,.CenterBox .center-r .card {
+.CenterBox .center-l .card,
+.CenterBox .center-r .card {
   width: 100%;
   height: 100%;
   overflow: hidden;
   background: url('../groupImg/frame2.png') center center no-repeat;
   background-size: 100% 100%;
 }
-.CenterBox .center-l,.CenterBox .center-r{
+.CenterBox .center-l,
+.CenterBox .center-r {
   display: grid;
   gap: 10px;
-  grid-template-rows: repeat(3, 1fr);  
+  grid-template-rows: repeat(3, 1fr);
 }
 .CenterBox .boxs {
   display: grid;
-  grid-template-columns: repeat(2, 1fr); 
-  grid-template-rows: repeat(2, 1fr);  
+  grid-template-columns: repeat(2, 1fr);
+  grid-template-rows: repeat(2, 1fr);
   padding: 10px;
-  color: #40A9FF;
+  color: #40a9ff;
   height: 100%;
 }
 .CenterBox .boxs > div {
@@ -341,10 +351,10 @@ div {
 .CenterBox .boxs > div > p {
   width: 80%;
 }
-.CenterBox .boxs > div > p:nth-child(1){
+.CenterBox .boxs > div > p:nth-child(1) {
   display: flex;
   justify-content: space-between;
-} 
+}
 .CenterBox .boxs > div > p:nth-child(2) {
   margin-top: 25px;
   text-align: left;
@@ -354,10 +364,10 @@ div {
   font-size: 30px;
 }
 .CenterBox .boxs .change {
-  color: #32EDAA;
+  color: #32edaa;
 }
 .CenterBox .boxs .change.up {
-  color: #ED3248;
+  color: #ed3248;
 }
 .CenterBox .boxs .num {
   font-size: 30px;
@@ -377,7 +387,7 @@ div {
   display: flex;
   flex-direction: column;
   align-items: center;
-  color: #40A9FF;
+  color: #40a9ff;
 }
 /* .CenterBox .t {
   padding: 15px 0;
@@ -392,18 +402,18 @@ div {
   font-weight: 600;
   align-items: center;
   justify-content: center;
-  background-color: rgba(18, 61, 98, .6);
+  background-color: rgba(18, 61, 98, 0.6);
 }
 .CenterBox .b {
   padding: 15px 0;
   display: flex;
   align-items: center;
   justify-content: space-around;
-  background-color: rgba(7, 42, 76, .6);
+  background-color: rgba(7, 42, 76, 0.6);
   padding: 15px 0;
 }
 .CenterBox .b span {
-  color: #40A9FF;
+  color: #40a9ff;
   font-size: 34px;
   font-weight: 900;
 }
@@ -437,15 +447,15 @@ div {
   /* bottom: 20px; */
   bottom: 200px;
   right: 15px;
-  background-color: rgba(3,10,12,0.46);
+  background-color: rgba(3, 10, 12, 0.46);
   border: 1px solid #4A57CF;
 }
 .CenterBox .status p {
-  background-color: #02397F;
+  background-color: #02397f;
   line-height: 45px;
   text-align: center;
   font-size: 25px;
-  color: #40A9FF;
+  color: #40a9ff;
 }
 .CenterBox .status li {
   line-height: 30px;
@@ -462,17 +472,17 @@ div {
   transform: translate(0, -50%);
   width: 5px;
   height: 5px;
-  background-color: #00FFFF;
+  background-color: #00ffff;
   border-radius: 50%;
 }
 .CenterBox .status i {
   font-size: 20px;
   font-weight: 600;
-  color: #40A9FF;
+  color: #40a9ff;
 }
 .CenterBox .tooltip-cont {
   margin: -15px;
-  border: 1px solid #3699FF;
+  border: 1px solid #3699ff;
   border-radius: 8px;
   padding: 15px;
   background-color: rgb(39 122 145 / 0.36);
@@ -493,12 +503,12 @@ div {
   width: 15px;
   height: 15px;
   border-radius: 50%;
-  background-color: #40A9FF;
+  background-color: #40a9ff;
 }
-.CenterBox .tooltip-cont span{
-  color: #69C0FF;
+.CenterBox .tooltip-cont span {
+  color: #69c0ff;
 }
-.RightBox .right-t{
+.RightBox .right-t {
   display: grid;
   gap: 10px;
   grid-template-columns: 3fr 1fr;
@@ -506,15 +516,17 @@ div {
   background-size: 100% 100%;
   padding: 10px;
 }
-.RightBox .right-c,.RightBox .right-b{
+.RightBox .right-c,
+.RightBox .right-b {
   display: grid;
   gap: 10px;
-  grid-template-columns: repeat(2, 1fr); 
+  grid-template-columns: repeat(2, 1fr);
 }
-.RightBox .right-c >div,.RightBox .right-b >div{
+.RightBox .right-c > div,
+.RightBox .right-b > div {
   background: url('../groupImg/cBack.png') no-repeat center;
   background-size: 100% 100%;
-  padding: 10px; 
+  padding: 10px;
 }
 .RightBox .top-lb {
   padding: 0px 30px;
@@ -524,25 +536,27 @@ div {
   gap: 10px;
   padding-bottom: 20px;
 }
-.RightBox .top-lb > .topCard:nth-child(odd) > div:first-child,.RightBox .top-rb > .topCard:nth-child(odd) > div:first-child {
+.RightBox .top-lb > .topCard:nth-child(odd) > div:first-child,
+.RightBox .top-rb > .topCard:nth-child(odd) > div:first-child {
   width: 190px;
   height: 190px;
   background-size: 100% 100%;
 }
-.RightBox .top-lb > .topCard:nth-child(even) > div:first-child,.RightBox .top-rb > .topCard:nth-child(even) > div:first-child {
+.RightBox .top-lb > .topCard:nth-child(even) > div:first-child,
+.RightBox .top-rb > .topCard:nth-child(even) > div:first-child {
   width: 100px;
   height: 100px;
   background-size: 100% 100%;
 }
-.RightBox .titleBackBlue{
-  background: url('../images5/completed.png') no-repeat center;
+.RightBox .titleBackBlue {
+  background: url('../groupImg/completed.png') no-repeat center;
   background-size: 95% 95%;
 }
-.RightBox .titleBackYellow{
-  background: url('../images5/completed2.png') no-repeat center;
+.RightBox .titleBackYellow {
+  background: url('../groupImg/completed2.png') no-repeat center;
   background-size: 95% 95%;
 }
-.RightBox .top-rb{
+.RightBox .top-rb {
   padding: 0px 30px;
   display: grid;
   grid-template-columns: 2.5fr 1fr 2.5fr;
@@ -550,17 +564,17 @@ div {
   padding-bottom: 20px;
 }
 .RightBox .top-lb > .topCard:nth-child(even) > div:first-child {
-  background: url('../images5/completedDot.png') no-repeat center;
+  background: url('../groupImg/completedDot.png') no-repeat center;
   background-size: 100% auto;
   background-position: 0 25%;
 }
 .RightBox .top-rb > .topCard:nth-child(even) > div:first-child {
-  background: url('../images5/completedDot.png') no-repeat;
+  background: url('../groupImg/completedDot.png') no-repeat;
   background-size: 100% auto;
   background-position: 0 35%;
 }
 .RightBox .centerBack {
-  background: url('../images5/back2.png') no-repeat;
+  background: url('../groupImg/back2.png') no-repeat;
   background-size: 100% 100%;
 }
 .RightBox .center-l {
@@ -570,7 +584,7 @@ div {
   padding: 20px !important;
 }
 .RightBox .center-l > div {
-  background: url('../images5/center-left-list-back.png') no-repeat;
+  background: url('../groupImg/center-left-list-back.png') no-repeat;
   background-size: 100% 100%;
   text-align: center;
   padding: 10%;
@@ -582,28 +596,66 @@ div {
   font-size: 30px;
   font-weight: bold;
 }
-.RightBox .center-l-list{
+.RightBox .center-l-list {
   height: 30%;
   margin: 15% 0;
-  background: url('../images5/project.png') no-repeat center;
+  background: url('../groupImg/project.png') no-repeat center;
   background-size: 100% auto;
   font-size: 26px;
 }
-.RightBox .center-l-list2{
+.RightBox .center-l-list2 {
   height: 30%;
-  background: url('../images5/pin.png') no-repeat center;
+  background: url('../groupImg/pin.png') no-repeat center;
   background-size: 100% auto;
   font-size: 26px;
 }
-.RightBox .right-br{
+.RightBox .right-br {
   display: grid;
   gap: 10px;
-  grid-template-rows: repeat(2, 1fr);  
+  grid-template-rows: repeat(2, 1fr);
 }
-.RightBox .right-brt{
+.RightBox .right-brt {
   display: grid;
   gap: 10px;
-  grid-template-columns: repeat(2, 1fr);    
+  grid-template-columns: repeat(2, 1fr);
+}
+.RightBox .flotage {
+  width: 220px;
+  height: 100px;
+  background-color: rgba(70, 78, 87, 0.5);
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+  padding: 10px;
+  border: 1px solid #557e81;
+  top: 15px;
+  transition: all 0.2s;
+}
+.tip-box {
+  position: absolute;
+  width: 2000px !important;
+  height: 1400px !important;
+  top: calc(50% - 700px);
+  left: calc(50% - 1000px);
+  background: url('../groupImg/alert.png') no-repeat center;
+  background-color: #133b65;
+  background-size: 100% 100%;
+  padding: 160px 50px 40px 50px;
+  border-radius: 55px;
+  z-index: 9999999999;
+}
+.titleImg {
+  width: 100%;
+  height: 100%;
+  border-radius: 10px;
+}
+.popLeft,
+.popright {
+  height: 90%;
+  width: 50%;
+}
+.popright {
+  right: 0;
 }
 /* 公共css */
 /* 宽高纵横比 */