Ver Fonte

地图轮播

zhbyyy há 2 anos atrás
pai
commit
f642a0bf5f
2 ficheiros alterados com 250 adições e 230 exclusões
  1. 197 199
      investment/investHome.html
  2. 53 31
      investment/js/investHome.js

+ 197 - 199
investment/investHome.html

@@ -1,231 +1,229 @@
 <!DOCTYPE html>
 <html lang="en">
-  <head>
-    <meta charset="utf-8" />
-    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <!-- 引入样式 -->
-    <link rel="stylesheet" href="./styles/element-ui@2.15.9.css" />
-    <link rel="stylesheet" href="./styles/normalize.css" />
-    <link rel="stylesheet" href="./styles/investHome.css" />
-    <!-- 引入js -->
-    <script src="./libs/vue@2.7.10.js"></script>
-    <script src="./libs/datav.min.js"></script>
-    <script src="./libs/echarts.min.js"></script>
-    <script src="./libs/element-ui@2.15.9.js"></script>
-    <script src="./libs/axios.min.js"></script>
-    <script src="./js/request.js"></script>
-    <script src="./js/data.js"></script>
-    <script src="./libs/vue-seamless-scroll.min.js"></script>
-    <script src="./libs/echarts-tooltip-carousel.js"></script>
-  </head>
-  <body>
-    <div id="app">
-      <dv-full-screen-container>
-        <header class="my-header">
-          <span>数字化投资管理驾驶舱</span>
-          <span class="right">{{time}}</span>
-        </header>
-        <div class="main">
-          <div class="left">
-            <dv-border-box-8 :dur="10">
-              <div class="my-panel">
-                <div class="panel-title">
-                  <span class="text">投资关键指标</span>
-                  <span class="right-date">
-                    <el-date-picker
-                      v-model="year"
-                      prefix-icon="el-icon-date"
-                      size="small"
-                      type="year"
-                      popper-class="date-popper"
-                      :clearable="false"
-                      :editable="false"
-                      placeholder="选择年">
-                    </el-date-picker>
-                  </span>
-                </div>
-                <div class="content">
-                  <div class="boxs">
-                    <div>
-                      <p>
-                        <span class="name">投资总额</span>
-                        <i class="el-icon-more"></i>
-                      </p>
-                      <p>
-                        <i><span class="num">{{numFormat(1324.08)}}</span>亿</i>
-                        <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
-                      </p>
-                    </div>
-                    <div>
-                      <p>
-                        <span class="name">项目总数</span>
-                        <i class="el-icon-more"></i>
-                      </p>
-                      <p>
-                        <i><span class="num">{{numFormat(442)}}</span>个</i>
-                        <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
-                      </p>
-                    </div>
-                    <div>
-                      <p>
-                        <span class="name">固定资产</span>
-                        <i class="el-icon-more"></i>
-                      </p>
-                      <p>
-                        <i><span class="num">{{numFormat(1169.91)}}</span>亿</i>
-                        <!-- <span class="change up"><img src="./images/up.png" /> 12.1%</span> -->
-                      </p>
-                    </div>
-                    <div>
-                      <p>
-                        <span class="name">股权投资</span>
-                        <i class="el-icon-more"></i>
-                      </p>
-                      <p>
-                        <i><span class="num">{{numFormat(154.17)}}</span>亿</i>
-                        <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
-                      </p>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </dv-border-box-8>
-            <dv-border-box-8 :dur="11">
-              <div class="my-panel">
-                <div class="panel-title">
-                  <span class="text">五个一体化</span>
-                </div>
-                <div ref="echartL1" class="content"></div>
-              </div>
-            </dv-border-box-8>
-            <dv-border-box-8 :dur="12">
-              <div class="my-panel">
-                <div class="panel-title">
-                  <span class="text">投资执行情况</span>
-                </div>
-                <div ref="echartL2" class="content"></div>
+
+<head>
+  <meta charset="utf-8" />
+  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+  <meta name="viewport" content="width=device-width, initial-scale=1" />
+  <!-- 引入样式 -->
+  <link rel="stylesheet" href="./styles/element-ui@2.15.9.css" />
+  <link rel="stylesheet" href="./styles/normalize.css" />
+  <link rel="stylesheet" href="./styles/investHome.css" />
+  <!-- 引入js -->
+  <script src="./libs/vue@2.7.10.js"></script>
+  <script src="./libs/datav.min.js"></script>
+  <script src="./libs/echarts.min.js"></script>
+  <script src="./libs/element-ui@2.15.9.js"></script>
+  <script src="./libs/axios.min.js"></script>
+  <script src="./js/request.js"></script>
+  <script src="./js/data.js"></script>
+  <script src="./libs/vue-seamless-scroll.min.js"></script>
+  <script src="./libs/echarts-tooltip-carousel.js"></script>
+</head>
+
+<body>
+  <div id="app">
+    <dv-full-screen-container>
+      <header class="my-header">
+        <span>数字化投资管理驾驶舱</span>
+        <span class="right">{{time}}</span>
+      </header>
+      <div class="main">
+        <div class="left">
+          <dv-border-box-8 :dur="10">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">投资关键指标</span>
+                <span class="right-date">
+                  <el-date-picker v-model="year" prefix-icon="el-icon-date" size="small" type="year"
+                    popper-class="date-popper" :clearable="false" :editable="false" placeholder="选择年">
+                  </el-date-picker>
+                </span>
               </div>
-            </dv-border-box-8>
-          </div>
-          <div class="center">
-            <div class="top">
-              <div class="box">
-                <div class="t">
-                  <img src="./images/center1.png"/>
-                  产业转型
-                </div>
-                <div class="flex b">
+              <div class="content">
+                <div class="boxs">
                   <div>
-                    <p>总投资额</p>
-                    <p><span>56.89</span>亿</p>
+                    <p>
+                      <span class="name">投资总额</span>
+                      <i class="el-icon-more"></i>
+                    </p>
+                    <p>
+                      <i><span class="num">{{numFormat(1324.08)}}</span>亿</i>
+                      <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
+                    </p>
                   </div>
                   <div>
-                    <p>项目数量</p>
-                    <p><span>24</span>个</p>
+                    <p>
+                      <span class="name">项目总数</span>
+                      <i class="el-icon-more"></i>
+                    </p>
+                    <p>
+                      <i><span class="num">{{numFormat(442)}}</span>个</i>
+                      <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
+                    </p>
                   </div>
-                </div>
-              </div>
-              <div class="box">
-                <div class="t">
-                  <img src="./images/center1.png"/>
-                  数字转型
-                </div>
-                <div class="flex b">
                   <div>
-                    <p>投资金额</p>
-                    <p><span>15.12</span>亿</p>
+                    <p>
+                      <span class="name">固定资产</span>
+                      <i class="el-icon-more"></i>
+                    </p>
+                    <p>
+                      <i><span class="num">{{numFormat(1169.91)}}</span>亿</i>
+                      <!-- <span class="change up"><img src="./images/up.png" /> 12.1%</span> -->
+                    </p>
                   </div>
                   <div>
-                    <p>项目数量</p>
-                    <p><span>65</span>个</p>
+                    <p>
+                      <span class="name">股权投资</span>
+                      <i class="el-icon-more"></i>
+                    </p>
+                    <p>
+                      <i><span class="num">{{numFormat(154.17)}}</span>亿</i>
+                      <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
+                    </p>
                   </div>
                 </div>
               </div>
             </div>
-            <div class="map-box">
-              <div ref="echarts-map" style="height: calc(100% - 155px);"></div>
-            <!-- 项目状态 -->
-
-              <div class="status">
-                <p>项目状态</p>
-                <ul style="padding-left: 30px; margin-bottom: 10px;">
-                  <li>完成决策: <i>306</i></li>
-                  <li>进行中: <i>336</i></li>
-                  <li>退出: <i>26</i></li>
-                  <li>中止: <i>16</i></li>
-                  <li>终止: <i>3</i></li>
-                </ul>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="11">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">五个一体化</span>
               </div>
+              <div ref="echartL1" class="content"></div>
             </div>
-          </div>
-          <div class="right">
-            <dv-border-box-8 :dur="10">
-              <div class="my-panel">
-                <div class="panel-title">
-                  <span class="text">投资产业分布</span>
-                </div>
-                <div ref="echartR1" class="content"></div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="12">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">投资执行情况</span>
+              </div>
+              <div ref="echartL2" class="content"></div>
+            </div>
+          </dv-border-box-8>
+        </div>
+        <div class="center">
+          <div class="top">
+            <div class="box">
+              <div class="t">
+                <img src="./images/center1.png" />
+                产业转型
               </div>
-            </dv-border-box-8>
-            <dv-border-box-8 :dur="11">
-              <div class="my-panel">
-                <div class="panel-title">
-                  <span class="text">投资额度分析</span>
+              <div class="flex b">
+                <div>
+                  <p>总投资额</p>
+                  <p><span>56.89</span>亿</p>
                 </div>
-                <div class="content">
-                  <vue-seamless-scroll :data="amountList" :class-option="classOption" class="warp">
-                    <ul class="list">
-                      <li class="list-item" v-for="(item,index) in amountList" ::key="index">
-                        <i>NO.{{index+1}}</i>
-                        <div class="flex1">
-                          <p>{{item.name}}</p>
-                          <el-progress :percentage="item.value / amountTotal * 100" stroke-width="10" :show-text="false"></el-progress>
-                        </div>
-                        <span class="value">{{item.value}}亿</span>
-                      </li>
-                    </ul>
-                  </vue-seamless-scroll>
+                <div>
+                  <p>项目数量</p>
+                  <p><span>24</span>个</p>
                 </div>
               </div>
-            </dv-border-box-8>
-            <dv-border-box-8 :dur="12"
-              ><div class="my-panel">
-                <div class="panel-title">
-                  <span class="text">重点项目监控</span>
+            </div>
+            <div class="box">
+              <div class="t">
+                <img src="./images/center1.png" />
+                数字转型
+              </div>
+              <div class="flex b">
+                <div>
+                  <p>投资金额</p>
+                  <p><span>15.12</span>亿</p>
+                </div>
+                <div>
+                  <p>项目数量</p>
+                  <p><span>65</span>个</p>
                 </div>
-                <dv-scroll-board :config="storageRecordConfig" class="content" /></div
-            ></dv-border-box-8>
+              </div>
+            </div>
           </div>
-        </div>
-        <div class="tip" v-show="showTip">
-          <div class="tip-box">
-            <div class="tip-content">
-              <div class="tip-title">地域投资明细</div>
-              <div class="tip-down" @click="showTip = false">×</div>
+          <div class="map-box">
+            <div ref="echarts-map" style="height: calc(100% - 155px);"></div>
+            <!-- 项目状态 -->
 
-              <div ref="echartTip2" class="content"></div>
+            <div class="status">
+              <p>项目状态</p>
+              <ul style="padding-left: 30px; margin-bottom: 10px;">
+                <li>完成决策: <i>306</i></li>
+                <li>进行中: <i>336</i></li>
+                <li>退出: <i>26</i></li>
+                <li>中止: <i>16</i></li>
+                <li>终止: <i>3</i></li>
+              </ul>
             </div>
           </div>
         </div>
-        <div class="tip" v-show="showTip2">
-          <div class="tip-box">
-            <div class="tip-content">
-              <div class="tip-title">{{tipTitle2}}</div>
-              <div class="tip-down" @click="showTip2 = false">×</div>
-              <div ref="echartTip3" class="content2"></div>
-
-              <div ref="echartTip4" class="content2"></div>
+        <div class="right">
+          <dv-border-box-8 :dur="10">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">投资产业分布</span>
+              </div>
+              <div ref="echartR1" class="content"></div>
             </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="11">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">投资额度分析</span>
+              </div>
+              <div class="content">
+                <vue-seamless-scroll :data="amountList" :class-option="classOption" class="warp">
+                  <ul class="list">
+                    <li class="list-item" v-for="(item,index) in amountList" ::key="index">
+                      <i>NO.{{index+1}}</i>
+                      <div class="flex1">
+                        <p>{{item.name}}</p>
+                        <el-progress :percentage="item.value / amountTotal * 100" stroke-width="10"
+                          :show-text="false"></el-progress>
+                      </div>
+                      <span class="value">{{item.value}}亿</span>
+                    </li>
+                  </ul>
+                </vue-seamless-scroll>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="12">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">重点项目监控</span>
+              </div>
+              <dv-scroll-board :config="storageRecordConfig" class="content" />
+            </div>
+          </dv-border-box-8>
+        </div>
+      </div>
+      <div class="tip" v-show="showTip">
+        <div class="tip-box">
+          <div class="tip-content">
+            <div class="tip-title">地域投资明细</div>
+            <div class="tip-down" @click="showTip = false">×</div>
+
+            <div ref="echartTip2" class="content"></div>
           </div>
         </div>
-        <!-- <div class="footer">
+      </div>
+      <div class="tip" v-show="showTip2">
+        <div class="tip-box">
+          <div class="tip-content">
+            <div class="tip-title">{{tipTitle2}}</div>
+            <div class="tip-down" @click="showTip2 = false">×</div>
+            <div ref="echartTip3" class="content2"></div>
+
+            <div ref="echartTip4" class="content2"></div>
+          </div>
+        </div>
+      </div>
+      <!-- <div class="footer">
           <a class="item" v-for="(item,index) in companyList" :key="index">{{item.name}}</a>
         </div> -->
-      </dv-full-screen-container>
+    </dv-full-screen-container>
+
+
+  </div>
+  <script src="./js/investHome.js"></script>
+</body>
 
-      
-    </div>
-    <script src="./js/investHome.js"></script>
-  </body>
-</html>
+</html>

+ 53 - 31
investment/js/investHome.js

@@ -69,7 +69,7 @@ let app = new Vue({
       this.initChartR1()
       this.initChinaChart()
       this.initProjectList()
-    },0)
+    }, 0)
   },
   methods: {
     numFormat (value) {
@@ -358,6 +358,24 @@ let app = new Vue({
           enterable: true,
           transitionDuration: 1,
           formatter: (params, ticket, callback) => {
+            // 清空所有轮播
+            for (var k in this.geoCoordMap) {
+              myChart.dispatchAction({
+                // type: 'geoUnSelect',
+                type: 'downplay',
+                name: k,
+              })
+            }
+            // // 如果鼠标滑动到线线上面,则返回空
+            myChart.dispatchAction({
+              // type: 'geoSelect',
+              type: 'highlight',
+              name: params.name,
+            })
+
+            if (params.componentSubType == 'lines') {
+              return
+            }
             let tipHtml = `
               <div class="tooltip-cont">
                 <p>新开工:<span>工程建设项目</span></p>
@@ -541,13 +559,17 @@ let app = new Vue({
         ],
       }
       let that = this
-      myChart.on('click', function(params) {
+      myChart.on('click', function (params) {
         console.log(params)
-        if(params.name == '太原市'){
+        if (params.name == '太原市') {
           that.showTip = true
         }
         // window.open('https://www.baidu.com')
       })
+      tools.loopShowTooltip(myChart, option, {
+        interval: 2000,
+        loopSeries: true,
+      });
       myChart.setOption(option)
     },
     // initChartTip(){
@@ -592,7 +614,7 @@ let app = new Vue({
     //     window.open('https://www.baidu.com')
     //   })
     // },
-    initChartTip2(){
+    initChartTip2 () {
       let myChart = echarts.init(this.$refs['echartTip2'])
       let option = {
         tooltip: {
@@ -644,7 +666,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: tipData.map(item=>item.name),
+          data: tipData.map(item => item.name),
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -710,7 +732,7 @@ let app = new Vue({
                 ]),
               },
             },
-            data: tipData.map(item=>item.value),
+            data: tipData.map(item => item.value),
           },
           // {
           //   name: '实际投资',
@@ -734,19 +756,19 @@ let app = new Vue({
           // },
         ],
       }
-      myChart.on('click', function(data){
-        if(data.name == '交控集团'){
+      myChart.on('click', function (data) {
+        if (data.name == '交控集团') {
           window.location.href = './investHomeChild.html?type=1'
         }
       })
-      myChart.setOption(option)
       tools.loopShowTooltip(myChart, option, {
         nterval: 2000,
         loopSeries: true,
       })
+      myChart.setOption(option)
     },
 
-    initChartTip3(){
+    initChartTip3 () {
       let myChart = echarts.init(this.$refs['echartTip3'])
       let option = {
         title: {
@@ -776,7 +798,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: tipTopData.map(item=>item.name),
+          data: tipTopData.map(item => item.name),
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -842,7 +864,7 @@ let app = new Vue({
                 ]),
               },
             },
-            data: tipTopData.map(item=>item.value),
+            data: tipTopData.map(item => item.value),
           },
           // {
           //   name: '实际投资',
@@ -873,7 +895,7 @@ let app = new Vue({
       })
     },
 
-    initChartTip4(){
+    initChartTip4 () {
       let myChart = echarts.init(this.$refs['echartTip4'])
       let option = {
         title: {
@@ -932,7 +954,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: tipBottomData.map(item=>item.name),
+          data: tipBottomData.map(item => item.name),
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -998,12 +1020,12 @@ let app = new Vue({
                 ]),
               },
             },
-            data: tipBottomData.map(item=>item.value),
+            data: tipBottomData.map(item => item.value),
           },
         ],
       }
-      myChart.on('click', function(data){
-        if(data.name == '华阳新材'){
+      myChart.on('click', function (data) {
+        if (data.name == '华阳新材') {
           window.location.href = './investHomeChild.html?type=2'
         }
       })
@@ -1020,7 +1042,7 @@ let app = new Vue({
         tooltip: {
           trigger: 'item',
         },
-        color: ['#6682f5', '#69c0ff', '#43ede3','#8ba2ff'],
+        color: ['#6682f5', '#69c0ff', '#43ede3', '#8ba2ff'],
         legend: {
           top: 'center',
           orient: 'vertical',
@@ -1074,7 +1096,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: executeList.map(item=>item.name),
+          data: executeList.map(item => item.name),
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -1139,7 +1161,7 @@ let app = new Vue({
                 ]),
               },
             },
-            data: executeList.map(item=>item.value),
+            data: executeList.map(item => item.value),
           },
           {
             name: '实际投资',
@@ -1159,7 +1181,7 @@ let app = new Vue({
                 ]),
               },
             },
-            data: executeList.map(item=>item.value2),
+            data: executeList.map(item => item.value2),
           },
         ],
       }
@@ -1192,7 +1214,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: industryList.map(item=> item.name),
+          data: industryList.map(item => item.name),
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -1274,7 +1296,7 @@ let app = new Vue({
                 ]),
               },
             },
-            data: industryList.map(item=> item.value),
+            data: industryList.map(item => item.value),
           },
           {
             type: 'line',
@@ -1298,7 +1320,7 @@ let app = new Vue({
               color: '#fbe138',
               width: 1,
             },
-            data: industryList.map(item=> item.value2),
+            data: industryList.map(item => item.value2),
           },
         ],
       }
@@ -1308,19 +1330,19 @@ let app = new Vue({
         loopSeries: true,
       })
       let that = this
-      myChart.on('click', function(param) {
+      myChart.on('click', function (param) {
         console.log(param)
-        if(param.name == '战略新兴产业投资'){
+        if (param.name == '战略新兴产业投资') {
           that.tipTitle2 = param.name
           that.showTip2 = true
         }
-        
+
       })
     },
-    initProjectList() {
+    initProjectList () {
       let dataList = []
-      projectList.map(item=> {
-        dataList.push([item.name,item.value+'亿',item.status])
+      projectList.map(item => {
+        dataList.push([item.name, item.value + '亿', item.status])
       })
       this.storageRecordConfig = {
         header: ['项目名称', '投资金额', '项目进度'],
@@ -1329,7 +1351,7 @@ let app = new Vue({
         evenRowBGC: '',
         headerHeight: '40',
         rowNum: 5,
-        columnWidth: [350,100],
+        columnWidth: [350, 100],
         align: ['center', 'center', 'center'],
         data: dataList,
       }