Selaa lähdekoodia

中投页面开发

zhbyyy 2 vuotta sitten
vanhempi
commit
bc93d88a97

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

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

BIN
investment/images5/back1.png


BIN
investment/images5/back2.png


BIN
investment/images5/center-left-list-back.png


BIN
investment/images5/completed.png


BIN
investment/images5/completedDot.png


BIN
investment/images5/pin.png


BIN
investment/images5/project.png


+ 125 - 0
investment/investHome5.html

@@ -0,0 +1,125 @@
+<!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/investHome5.css" />
+  <!-- 引入js -->
+  <script src="./libs/vue@2.7.10.js"></script>
+  <script src="./libs/datav.min2.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="./libs/echarts-tooltip-carousel.js"></script>
+  <script src="./js/data5.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="top">
+          <dv-border-box-8 class="overflow-hidden topBack">
+            <div class="panel-title ">
+              <span class="text">固定资产</span>
+            </div>
+            <div class="top-lb w-full overflow-hidden">
+              <div v-for="(item,index) in 11" :key="index"
+                class="topCard flex items-center justify-center flex-col  overflow-hidden">
+                <div class="flex items-center justify-center shrink-0"><span
+                    style="height:40%;width:40%;font-size: 16px;text-align: center;">{{( index % 2 ) ==
+                    0?'初步设计':''}}</span></div>
+                <span style="color:#1998FF;" v-if="( index % 2 ) == 0"><span
+                    style="font-size:24px;font-weight: bold;">160</span>个</span>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 class="overflow-hidden topBack">
+            <div class="panel-title ">
+              <span class="text">股权类</span>
+            </div>
+            <div class="top-rb w-full overflow-hidden">
+              <div v-for="(item,index) in 3" :key="index"
+                class="topCard flex items-center justify-center flex-col overflow-hidden">
+                <div class="flex items-center justify-center shrink-0"><span
+                    style="height:40%;width:40%;font-size: 16px;text-align: center;">{{( index % 2 ) ==
+                    0?'初步设计':''}}</span></div>
+                <span style="color:#1998FF;" v-if="( index % 2 ) == 0"><span
+                    style="font-size:24px;font-weight: bold;">160</span>个</span>
+              </div>
+            </div>
+          </dv-border-box-8>
+        </div>
+        <div class="center">
+          <dv-border-box-8>
+            <div class="overflow-hidden centerBack center-l w-full h-full">
+              <div v-for="(item,index) in 3" :key="index" class="w-full h-full overflow-hidden">
+                <div class="center-l-title flex items-center justify-center"><span style="margin-right: 10px;color: #0FA9E2;">·</span>正偏差<span
+                    style="margin-left: 10px;color: #0FA9E2;">·</span></div>
+                <div class="center-l-list flex items-center justify-center flex-col" style="padding-left: 30%;">
+                  <span style="color:#1998FF;"><span
+                    style="font-size:24px;font-weight: bold;">160</span>个</span>
+                    <span>项目数量</span>
+                </div>
+                <div class="center-l-list2 flex items-center justify-center flex-col" style="padding-left: 30%;">
+                  <span style="color:#1998FF;"><span
+                    style="font-size:24px;font-weight: bold;">160</span>个</span>
+                    <span>偏差金额</span>
+                </div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 class="overflow-hidden centerBack">
+            <div ref="echart1" class="w-full h-full"></div>
+          </dv-border-box-8>
+        </div>
+        <div class="foot">
+          <dv-border-box-8 class="overflow-hidden centerBack">
+            <div class="panel-title ">
+              <span class="text">进度成本偏差</span>
+            </div>
+            <div style="height:calc( 100% - 50px );" class="w-full" ref="echart2"></div>
+          </dv-border-box-8>
+          <dv-border-box-8 class="overflow-hidden centerBack">
+            <div class="foot-b w-full h-full overflow-hidden">
+              <div class="foot-bt overflow-hidden">
+                <div class="w-full h-full" style="padding:10px;background-color: #1C355B;">
+                  <div class="w-full h-full"  ref="echart3"></div>
+                </div>
+                <div class="ldMap w-full h-full" style="padding:10px;background-color: #1C355B;">
+                  <div class="w-full h-full"  ref="echart4"></div>
+                  <div class="flex justify-center items-center">
+                    <div class="center-left-bottom-list flex justify-center items-center flex-col">
+                      <span>维度</span>
+                      <span>进度</span>
+                      <span>质量</span>
+                      <span>预算</span>
+                      <span>证照</span>
+                      <span>合同</span>
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <div class=" w-full h-full" style="padding:10px;background-color: #1C355B;">
+                <div class="w-full h-full"  ref="echart5"></div>
+              </div>
+            </div>
+          </dv-border-box-8>
+        </div>
+      </div>
+    </dv-full-screen-container>
+  </div>
+  <script src="./js/investHome5.js"></script>
+</body>
+
+</html>

+ 21 - 0
investment/js/data5.js

@@ -0,0 +1,21 @@
+let echartL1 = [[1,2,3,4,5,6,7],[7,6,5,4,3,2,1]]
+let title = [
+  { name: '山西焦煤', value: 189.07, value2: 121.59 },
+  { name: '晋能控股', value: 385.25, value2: 224.89 },
+  { name: '华阳新材', value: 82.95, value2: 71.34 },
+  { name: '潞安化工', value: 106.84, value2: 59.93 },
+  { name: '华新燃气', value: 31.83, value2: 25.20 },
+  { name: '太重集团', value: 80.01, value2: 42.46 },
+  { name: '国际能源', value: 64.20, value2: 12.19 },
+  { name: '华远陆港', value: 97.57, value2: 112.67 },
+  { name: '万家寨水控', value: 46.99, value2: 50.89 },
+  { name: '文旅集团', value: 26.79, value2: 9.64 },
+  { name: '山西交控', value: 346.36, value2: 335.91 },
+  { name: '航产集团', value: 41.09, value2: 42.67 },
+  { name: '山西建投', value: 218.35, value2: 143.84 },
+  { name: '汾酒集团', value: 14.03, value2: 7.69 },
+  { name: '大地控股', value: 47.05, value2: 23.93 },
+  { name: '云时代', value: 63.45, value2: 32.60 },
+  { name: '华舰体育', value: 5.33, value2: 0.80 },
+  { name: '神农科技', value: 14.76, value2: 5.84 }
+]

+ 674 - 0
investment/js/investHome5.js

@@ -0,0 +1,674 @@
+let app = new Vue({
+  el: '#app',
+  data () {
+    return {
+      time: '',
+      timer: '',
+    }
+  },
+  created () {
+    this.time = formatDate()
+    this.timer = setInterval(() => {
+      this.time = formatDate()
+    })
+  },
+  beforeDestroy () {
+    if (this.timer) {
+      clearInterval(this.timer);
+    }
+  },
+  mounted () {
+    setTimeout(() => {
+      this.initChart1()
+      this.initChart2()
+      this.initChart3()
+      this.initChart4()
+      this.initChart5()
+    })
+  },
+  methods: {
+    initChart1 () {
+      let myChart = echarts.init(this.$refs['echart1'])
+      let option = {
+        tooltip: {
+          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',
+          // axisPointer: {
+          //   type: 'cross',
+          // },
+        },
+        grid: {
+          top: '16%',
+          right:'3%',
+          left: '5%',
+          bottom: '15%',
+        },
+        legend: {
+          data: ["计划投资", "实际投资"],
+          x:'center',
+          y:'10px',
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+        xAxis: {
+          data: title.map(item=>item.name),
+          axisLine: {
+            show: true, //隐藏X轴轴线
+            lineStyle: {
+              color: '#005094',
+              width: 1,
+            },
+          },
+          axisTick: {
+            show: false, //隐藏X轴刻度
+          },
+          axisLabel: {
+            show: true,
+            rotate: 40,
+            textStyle: {
+              color: '#fff',//'rgba(255,255,255,0.6)', //X轴文字颜色
+            },
+          },
+        },
+        yAxis: [
+          {
+            type: 'value',
+            name: '亿元',
+            nameTextStyle: {
+              color: 'rgba(255,255,255,0.6)',
+            },
+            splitLine: {
+              show: true,
+              lineStyle: {
+                color: '#68b4dd66',
+                type: 'dashed',
+              },
+            },
+            axisLine: {
+              show: true,
+              lineStyle: {
+                color: '#3D7495',
+              },
+            },
+            axisLabel: {
+              show: true,
+              textStyle: {
+                color: 'rgba(250,250,250,0.6)',
+              },
+            },
+          },
+        ],
+        series: [
+          {
+            name: '计划投资',
+            type: 'bar',
+            barWidth: 10,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#69c0ff',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: echartL1[0],
+          },
+          {
+            name: '实际投资',
+            type: 'bar',
+            barWidth: 10,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#957DFF',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: echartL1[1],
+          },
+        ],
+      }
+      myChart.setOption(option)
+      tools.loopShowTooltip(myChart, option, {
+        nterval: 2000,
+        loopSeries: true,
+      })
+
+    },
+    initChart2 () {
+      let myChart = echarts.init(this.$refs['echart2'])
+      let option = {
+        title: {
+          text: '固定资产',
+          textStyle: {
+            color: '#69C0FF',
+            fontSize: 16,
+            fontWeight: 500
+          },
+          top: '10',
+          left: '10'
+        },
+        textStyle: {
+          color: '#fff',
+        },
+        tooltip: {
+          trigger: "axis",
+          formatter: function (params) {
+            var tip = params[0].axisValue + '<br/>' + params[0].marker + params[0].data[1] + ':' + params[0].data[2] + '个,' + params[0].data[3] + '亿元' + '<br/>' + params[1].marker + params[1].data[1] + ':' + params[1].data[2] + '个,' + params[1].data[3] + '亿元';
+            return tip
+          },
+          axisPointer: {
+            lineStyle: {
+              type: 'dashed',
+              width: 2,
+              color: 'rgba(255,255,255,0.6)'
+            },
+            animation: true
+          }
+        },
+        grid: {
+          top: '25%',
+          right: '5%',
+          left: '15%',
+          bottom: '15%',
+        },
+        yAxis: {
+          data: ['备案', '特别监管'],
+          splitLine: {
+            show: true,
+            lineStyle: {
+              color: '#68b4dd66',
+              type: 'dashed',
+            },
+          },
+          axisLine: {
+            show: false
+          },
+          axisLabel: {
+            show: true,
+            formatter: '{value}',
+            textStyle: {
+              color: 'rgba(250,250,250,0.6)',
+            },
+          },
+          nameTextStyle: {
+            color: '#ebf8ac',
+            fontSize: 16,
+          },
+        },
+        xAxis: {
+          data: ['项目储备', '项目立项', '可研论证', '投资决策'],
+          axisLine: {
+            show: true, //隐藏X轴轴线
+            lineStyle: {
+              color: '#005094',
+              width: 1,
+            },
+          },
+          axisTick: {
+            show: false, //隐藏X轴刻度
+          },
+          axisLabel: {
+            show: true,
+            textStyle: {
+              color: 'rgba(255,255,255,0.6)', //X轴文字颜色
+              fontSize: 12,
+            },
+          },
+        },
+        series: [
+          {
+            name: '特别监管',
+            type: 'scatter',
+            symbol: 'circle',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
+            symbolSize: function (data) {
+              return Math.sqrt(data[2]) * 3;
+            },
+            label: {
+              emphasis: {
+                show: true,
+                formatter: function (param) {
+                  return param.data[2];
+                },
+                position: 'top'
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: '#40A9FF'
+              }
+            },
+            data: [
+              ['项目储备', '特别监管', 14, 12.05],
+              ['项目立项', '特别监管', 2, 1.25],
+              ['可研论证', '特别监管', 10, 32.69],
+              ['投资决策', '特别监管', 15, 28.53],
+            ]
+          },
+          {
+            name: '备案',
+            type: 'scatter',
+            symbol: 'circle',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
+            symbolSize: function (data) {
+              return Math.sqrt(data[2]) * 3;
+            },
+            label: {
+              emphasis: {
+                show: true,
+                formatter: function (param) {
+                  return param.data[2];
+                },
+                position: 'top'
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: '#45DAD1'
+              }
+            },
+            data: [
+              ['项目储备', '备案', 27, 23.86],
+              ['项目立项', '备案', 1, 1.05],
+              ['可研论证', '备案', 14, 18.46],
+              ['投资决策', '备案', 40, 38.86],
+            ]
+          },
+        ]
+      }
+      myChart.setOption(option)
+      tools.loopShowTooltip(myChart, option, {
+        nterval: 2000,
+        loopSeries: true,
+      })
+    },
+    initChart3 () {
+      let myChart = echarts.init(this.$refs['echart3'])
+      let option = {
+        tooltip: {
+          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',
+          // axisPointer: {
+          //   type: 'cross',
+          // },
+        },
+        grid: {
+          top: '16%',
+          right:'3%',
+          left: '10%',
+          bottom: '25%',
+        },
+        legend: {
+          data: ["计划投资", "实际投资"],
+          x:'center',
+          y:'10px',
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+        xAxis: {
+          data: title.map(item=>item.name),
+          axisLine: {
+            show: true, //隐藏X轴轴线
+            lineStyle: {
+              color: '#005094',
+              width: 1,
+            },
+          },
+          axisTick: {
+            show: false, //隐藏X轴刻度
+          },
+          axisLabel: {
+            show: true,
+            rotate: 40,
+            textStyle: {
+              color: '#fff',//'rgba(255,255,255,0.6)', //X轴文字颜色
+            },
+          },
+        },
+        yAxis: [
+          {
+            type: 'value',
+            name: '亿元',
+            nameTextStyle: {
+              color: 'rgba(255,255,255,0.6)',
+            },
+            splitLine: {
+              show: true,
+              lineStyle: {
+                color: '#68b4dd66',
+                type: 'dashed',
+              },
+            },
+            axisLine: {
+              show: true,
+              lineStyle: {
+                color: '#3D7495',
+              },
+            },
+            axisLabel: {
+              show: true,
+              textStyle: {
+                color: 'rgba(250,250,250,0.6)',
+              },
+            },
+          },
+        ],
+        series: [
+          {
+            name: '计划投资',
+            type: 'bar',
+            barWidth: 10,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#69c0ff',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: echartL1[0],
+          },
+          {
+            name: '实际投资',
+            type: 'bar',
+            barWidth: 10,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#957DFF',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: echartL1[1],
+          },
+        ],
+      }
+      myChart.setOption(option)
+      tools.loopShowTooltip(myChart, option, {
+        nterval: 2000,
+        loopSeries: true,
+      })
+
+    },
+    initChart4 () {
+      let myChart = echarts.init(this.$refs['echart4'])
+      option = {
+        title: {
+          text: ''
+        },
+        legend: {
+          data: ['类型1', '类型2', '类型3', '类型4', '类型5'],
+          textStyle: {
+            color: '#9DB9EB',
+          },
+        },
+        splitArea: { // 坐标轴在 grid 区域中的分隔区域,默认不显示。
+          show: true,
+          areaStyle: { // 分隔区域的样式设置。
+            color: ['yellow'],
+            // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
+          }
+        },
+        radar: {
+          // shape: 'circle',
+          center: ['50%', '60%'],
+          radius: 40,
+          indicator: [
+            { name: '类型1', max: 100000 },
+            { name: '类型2', max: 100000 },
+            { name: '类型3', max: 100000 },
+            { name: '类型4', max: 100000 },
+            { name: '类型5', max: 100000 },
+          ],
+          axisLine: {  // 设置雷达图中间射线的颜色
+            lineStyle: {
+              color: '#c0c0c0',
+            },
+          },
+          splitLine: { //网格颜色设置
+            show: true,
+            lineStyle: {
+              width: 1,
+              color: '#1e83e4',
+            },
+          },
+          splitArea: {  //设置图表颜色,show的值为true
+            show: false,
+            areaStyle: {
+              // color:"#c1ddf8", //一般设置方式
+              //设置渐变背景色 new echarts.graphic.LinearGradient(a,b,c,d,arr)
+              //a ,b,c,d值可为0,1 a:1表示arr中的颜色右到左;c:1 arr中的颜色左到右
+              //b:1表示arr中的颜色下到上;d:1表示arr中的颜色上到下
+              color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
+                { offset: 0, color: '#c1ddf8' }, // 0% 处的颜色 
+                { offset: 1, color: '#1e83e4' }// 100% 处的颜色
+              ], false)
+            }
+          }
+        },
+        series: [
+          {
+            name: '',
+            type: 'radar',
+            symbol: 'circle', // 单个数值点的样式,还可以取值'rect','angle'等
+            symbolSize: 0, // 数值点的大小
+            data: [
+              {
+                value: [4200, 3000, 20000, 35000, 50000, 18000],
+                name: '类型1',
+                itemStyle: { //该数值区域样式设置
+                  normal: {
+                    color: '#2CC6FF', //背景颜色,还需设置areaStyle
+                    lineStyle: {
+                      color: '#2CC6FF', //边框颜色
+                    },
+                  },
+                },
+                label: {  //显示value中具体的数值
+                  normal: {
+                    show: false,
+                    textStyle: {  //更改数值样式
+                      color: '#43EDE3'
+                    }
+                  },
+                },
+                areaStyle: { //设置区域背景颜色透明度
+                  normal: {
+                    width: 1,
+                    opacity: 0.8,
+                  },
+                },
+              },
+              {
+                value: [8000, 3000, 38000, 76000, 32000, 71000],
+                name: '类型2',
+                itemStyle: { //该数值区域样式设置
+                  normal: {
+                    color: '#D87AFF', //背景颜色,还需设置areaStyle
+                    lineStyle: {
+                      color: '#2CC6FF', //边框颜色
+                    },
+                  },
+                },
+                label: {  //显示value中具体的数值
+                  normal: {
+                    show: false,
+                    textStyle: {  //更改数值样式
+                      color: '#43EDE3'
+                    }
+                  },
+                },
+                areaStyle: { //设置区域背景颜色透明度
+                  normal: {
+                    width: 1,
+                    opacity: 0.8,
+                  },
+                },
+              }
+            ]
+          }
+        ]
+      };
+      tools.loopShowTooltip(myChart, option, {
+        interval: 2000,
+        loopSeries: true,
+      });
+      myChart.setOption(option)
+    },
+    initChart5 () {
+      let myChart = echarts.init(this.$refs['echart5'])
+      let option = {
+        tooltip: {
+          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',
+          // axisPointer: {
+          //   type: 'cross',
+          // },
+        },
+        grid: {
+          top: '16%',
+          right:'3%',
+          left: '3%',
+          bottom: '25%',
+        },
+        legend: {
+          data: ["计划投资", "实际投资"],
+          x:'center',
+          y:'10px',
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+        xAxis: {
+          data: title.map(item=>item.name),
+          axisLine: {
+            show: true, //隐藏X轴轴线
+            lineStyle: {
+              color: '#005094',
+              width: 1,
+            },
+          },
+          axisTick: {
+            show: false, //隐藏X轴刻度
+          },
+          axisLabel: {
+            show: true,
+            rotate: 40,
+            textStyle: {
+              color: '#fff',//'rgba(255,255,255,0.6)', //X轴文字颜色
+            },
+          },
+        },
+        yAxis: [
+          {
+            type: 'value',
+            name: '亿元',
+            nameTextStyle: {
+              color: 'rgba(255,255,255,0.6)',
+            },
+            splitLine: {
+              show: true,
+              lineStyle: {
+                color: '#68b4dd66',
+                type: 'dashed',
+              },
+            },
+            axisLine: {
+              show: true,
+              lineStyle: {
+                color: '#3D7495',
+              },
+            },
+            axisLabel: {
+              show: true,
+              textStyle: {
+                color: 'rgba(250,250,250,0.6)',
+              },
+            },
+          },
+        ],
+        series: [
+          {
+            name: '计划投资',
+            type: 'bar',
+            barWidth: 10,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#69c0ff',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: echartL1[0],
+          },
+          {
+            name: '实际投资',
+            type: 'bar',
+            barWidth: 10,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#957DFF',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: echartL1[1],
+          },
+        ],
+      }
+      myChart.setOption(option)
+      tools.loopShowTooltip(myChart, option, {
+        nterval: 2000,
+        loopSeries: true,
+      })
+
+    },
+  },
+})

+ 673 - 0
investment/styles/investHome5.css

@@ -0,0 +1,673 @@
+*,
+*:before,
+*:after {
+  padding: 0;
+  margin: 0;
+  box-sizing: border-box;
+}
+html,
+body {
+  height: 100%;
+  font-size: 14px;
+  background-color: #ecffff;
+  font-family: 'Microsoft YaHei', 'Helvetica Neue', Helvetica, 'PingFang SC',
+    'Hiragino Sans GB', Arial, sans-serif;
+}
+
+.flex {
+  display: flex;
+}
+.flex1 {
+  flex: 1;
+}
+.flex2 {
+  flex: 2;
+}
+.flex-around {
+  display: flex;
+  justify-content: space-around;
+}
+.flex-between {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.flex-end {
+  display: flex;
+  justify-content: flex-end;
+}
+.flex-align-center {
+  display: flex;
+  align-items: center;
+}
+.text-center {
+  text-align: center;
+}
+.font12 {
+  font-size: 12px;
+}
+.main-color {
+  color: #0bf1ff;
+}
+.danger-color {
+  color: #f15450 !important;
+}
+.error-color {
+  color: #ffc704 !important;
+}
+.btm10 {
+  margin-bottom: 10px;
+}
+.btm20 {
+  margin-bottom: 20px;
+}
+a {
+  text-decoration: none;
+  cursor: pointer;
+}
+
+[v-cloak] {
+  display: none;
+}
+#app {
+  background: url('../images/page-bg.png') center center no-repeat;
+  background-size: 100% 100%;
+  padding-top: 10px;
+  height: 100vh;
+  overflow: hidden;
+  color: #fff;
+}
+.my-header {
+  position: relative;
+  height: 70px;
+  line-height: 70px;
+  background: url('../images/header-bg.png') center center no-repeat;
+  background-size: 100% 100%;
+  text-align: center;
+  font-weight: bold;
+  font-size: 32px;
+  font-weight: 600;
+}
+.my-header span {
+  background: linear-gradient(-3deg, #99eeff 0%, #99eeff 30%, #ffffff 91%);
+  -webkit-background-clip: text;
+  -webkit-text-fill-color: transparent;
+}
+.my-header span.right {
+  position: absolute;
+  right: 60px;
+  top: 0px;
+  font-size: 16px;
+}
+.main {
+  padding: 15px;
+  height: calc(100vh - 25px);
+  background: url('../images3/back-big.png') no-repeat center bottom;
+  display: grid;
+  grid-template-rows: 1fr 1.6fr 2fr;
+  gap: 10px;
+  padding-bottom: 65px;
+}
+.main > div {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+}
+.top {
+  display: grid;
+  grid-template-columns: 2fr 1fr;
+  gap: 10px;
+}
+.panel-title {
+  position: relative;
+  text-align: center;
+  height: 50px;
+  line-height: 50px;
+}
+.panel-title .text {
+  font-size: 20px;
+  font-weight: 600;
+  color: #05fbfe;
+  text-shadow: 0px 2px 10px rgba(10, 30, 52, 0.48);
+  background: linear-gradient(0deg, #ffffff 0%, #63dcff 0%, #e0f3ff 100%);
+  -webkit-background-clip: text;
+  -webkit-text-fill-color: transparent;
+  position: relative;
+}
+.panel-title .text::before {
+  position: absolute;
+  content: ' ';
+  top: 10px;
+  left: -40px;
+  width: 30px;
+  height: 10px;
+  background: url('../images/title-left.png') no-repeat;
+}
+.panel-title .text::after {
+  position: absolute;
+  content: ' ';
+  top: 10px;
+  right: -40px;
+  width: 30px;
+  height: 10px;
+  background: url('../images/title-right.png') no-repeat;
+}
+.topBack {
+  background: url('../images5/back1.png') no-repeat;
+  background-size: 100% 100%;
+}
+.center,
+.foot {
+  display: grid;
+  grid-template-columns: repeat(2, 1fr);
+  gap: 10px;
+}
+.centerBack {
+  background: url('../images5/back2.png') no-repeat;
+  background-size: 100% 100%;
+}
+.top-lb {
+  height: calc(100% - 50px);
+  padding: 0px 30px;
+  display: grid;
+  grid-template-columns: repeat(11, 1fr);
+  gap: 10px;
+}
+.top-rb {
+  height: calc(100% - 50px);
+  padding: 0px 30px;
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 10px;
+}
+.topCard > div:first-child {
+  width: 100px;
+  height: 100px;
+  background-size: 100% 100%;
+}
+.top-lb > .topCard:nth-child(odd) > div:first-child {
+  background: url('../images5/completed.png') no-repeat center;
+  background-size: 95% 95%;
+}
+.top-rb > .topCard:nth-child(odd) > div:first-child {
+  background: url('../images5/completed.png') no-repeat center;
+  background-size: 100% 100%;
+}
+.top-lb > .topCard:nth-child(even) > div:first-child {
+  background: url('../images5/completedDot.png') no-repeat;
+  background-size: 100% auto;
+  background-position: 0 20%;
+}
+.top-rb > .topCard:nth-child(even) > div:first-child {
+  background: url('../images5/completedDot.png') no-repeat;
+  background-size: 100% auto;
+  background-position: 0 20%;
+}
+.topCard > span {
+  height: calc(100% - 90px);
+  margin-top: 5px;
+}
+.center-l {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 10px;
+}
+.center-l > div {
+  background: url('../images5/center-left-list-back.png') no-repeat;
+  background-size: 100% 100%;
+  text-align: center;
+  padding: 10%;
+}
+.center-l-title {
+  width: 100%;
+  height: 10%;
+  margin-top: 5%;
+  font-size: 16px;
+  font-weight: bold;
+}
+.center-l-list{
+  height: 30%;
+  margin: 10% 0;
+  background: url('../images5/project.png') no-repeat;
+  background-size: 100% 100%;
+}
+.center-l-list2{
+  height: 30%;
+  background: url('../images5/pin.png') no-repeat;
+  background-size: 100% 100%;
+}
+.foot-b{
+  display: grid;
+  grid-template-rows: repeat(2, 1fr);   
+  gap: 10px;
+  padding: 10px;
+}
+.foot-bt{
+  display: grid;
+  grid-template-columns: repeat(2, 1fr);  
+  gap: 10px;
+}
+.ldMap{
+  display: grid;
+  grid-template-columns: 1.5fr 1fr; 
+  gap: 10px;
+}
+.center-left-bottom-list {
+  border: 1px solid #06345e;
+}
+.center-left-bottom-list > span {
+  display: inline-block;
+  padding: 5px 30px;
+  cursor: pointer;
+}
+.center-left-bottom-list > span:hover {
+  color: #2abbff;
+}
+.center-left-bottom-list > span:nth-child(odd) {
+  background-color: #1a426c;
+}
+/* zhb */
+/* 宽高纵横比 */
+.aspect-auto {
+  aspect-ratio: auto;
+}
+.aspect-square {
+  aspect-ratio: 1 / 1;
+}
+.aspect-video {
+  aspect-ratio: 16 / 9;
+}
+/* aspect-[4/3] */
+
+/* 居中 */
+.mx-auto {
+  margin: 0 auto;
+}
+
+/* 设置容器内的列数/每列距离 */
+.columns-1 {
+  columns: 1;
+}
+/* columns-[20px] */
+
+/* 盒子模型 */
+.box-border {
+  box-sizing: border-box;
+}
+.box-content {
+  box-sizing: content-box;
+}
+/* 消失 */
+.hidden {
+  display: none;
+}
+
+/* 块级元素 */
+.block {
+  display: block;
+}
+/* 行内块 */
+.inline-block {
+  display: inline-block;
+}
+/* 行内元素 */
+.inline {
+  display: inline;
+}
+
+/* 弹性布局 */
+.flex {
+  display: flex;
+}
+/* 主轴起点在左边 */
+.flex-row {
+  flex-direction: row;
+}
+/* 主轴起点在右边 */
+.flex-row-reverse {
+  flex-direction: row-reverse;
+}
+/* 主轴竖向排列,在上面 */
+.flex-col {
+  flex-direction: column;
+}
+/* 主轴竖向排列,在下面 */
+.flex-col-reverse {
+  flex-direction: column-reverse;
+}
+/* 自动换行 */
+.flex-wrap {
+  flex-wrap: wrap;
+}
+/* 自动换行下起点 */
+.flex-wrap-reverse {
+  flex-wrap: wrap-reverse;
+}
+/* 不换行 */
+.flex-nowrap {
+  flex-wrap: nowrap;
+}
+/* 弹性成长 */
+.grow {
+  flex-grow: 1;
+}
+/* 不允许弹性成长 */
+.grow-0 {
+  flex-grow: 0;
+}
+/* 主轴从左开始 */
+.justify-start {
+  justify-content: flex-start;
+}
+/* 主轴从右开始 */
+.justify-end {
+  justify-content: flex-end;
+}
+/* 主轴剧中 */
+.justify-center {
+  justify-content: center;
+}
+/* 主轴两端无间隔 */
+.justify-between {
+  justify-content: space-between;
+}
+/* 主轴两端有间隔 */
+.justify-around {
+  justify-content: space-around;
+}
+/* 所有间隔相等 */
+.justify-evenly {
+  justify-content: space-evenly;
+}
+/* 纵向起点最上方 */
+.items-start {
+  align-items: flex-start;
+}
+/* 纵向起点最下方 */
+.items-end {
+  align-items: flex-end;
+}
+.items-center {
+  align-items: center;
+}
+/* 网格布局 */
+.grid {
+  display: grid;
+}
+/* 有几列 */
+.grid-cols-4 {
+  grid-template-columns: repeat(4, minmax(0, 1fr));
+}
+/* 有几行 */
+.grid-rows-3 {
+  grid-template-rows: repeat(3, minmax(0, 1fr));
+}
+
+/* 间距 */
+.gap-7 {
+  gap: 1.75rem;
+}
+/* 允许弹性成长 */
+.shrink {
+  flex-shrink: 1;
+}
+/* 不允许弹性成长 */
+.shrink-0 {
+  flex-shrink: 0;
+}
+/* 不允许成长也不允许收缩 */
+.flex-none {
+  flex: none;
+}
+/* 浮动布局 */
+.float-right {
+  float: right;
+}
+.float-left {
+  float: left;
+}
+.clear-both {
+  clear: both;
+}
+
+/* 溢出 */
+.overflow-auto {
+  overflow: auto;
+}
+.overflow-hidden {
+  overflow: hidden;
+}
+.overflow-scroll {
+  overflow: scroll;
+}
+.overflow-x-auto {
+  overflow-x: auto;
+}
+.overflow-y-auto {
+  overflow-y: auto;
+}
+
+/* 定位 */
+.fixed {
+  position: fixed;
+}
+.absolute {
+  position: absolute;
+}
+.relative {
+  position: relative;
+}
+.top-0 {
+  top: 0px;
+}
+.right-0 {
+  right: 0px;
+}
+.bottom-0 {
+  bottom: 0px;
+}
+.left-0 {
+  left: 0px;
+}
+/* top-[3px] */
+/* z-[100] */
+
+/* 显示隐藏未脱离文档流 */
+.visible {
+  visibility: visible;
+}
+.invisible {
+  visibility: hidden;
+}
+
+/* 内边距 */
+.p-0 {
+  padding: 0px;
+}
+.px-0 {
+  padding-left: 0px;
+  padding-right: 0px;
+}
+.py-0 {
+  padding-top: 0px;
+  padding-bottom: 0px;
+}
+.pt-0 {
+  padding-top: 0px;
+}
+.pr-0 {
+  padding-right: 0px;
+}
+.pb-0 {
+  padding-bottom: 0px;
+}
+.pl-0 {
+  padding-left: 0px;
+}
+/* p-[5px] */
+
+/* 外边距 */
+.m-0 {
+  margin: 0px;
+}
+.mx-0 {
+  margin-left: 0px;
+  margin-right: 0px;
+}
+.my-0 {
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+.mt-0 {
+  margin-top: 0px;
+}
+.mr-0 {
+  margin-right: 0px;
+}
+.mb-0 {
+  margin-bottom: 0px;
+}
+.ml-0 {
+  margin-left: 0px;
+}
+/* m-[5px] */
+
+/* 宽度 */
+.w-full {
+  width: 100%;
+}
+.w-screen {
+  width: 100vw;
+}
+/* w-[32rem] */
+/* min-w-[50%] */
+/* max-w-[50%] */
+
+/* 高度 */
+.h-full {
+  height: 100%;
+}
+.h-screen {
+  height: 100vh;
+}
+/* h-[32rem] */
+/* min-h-[50%] */
+/* max-h-[32rem] */
+
+/* 字体 */
+.text-xs {
+  font-size: 0.75rem; /* 12px */
+  line-height: 1rem; /* 16px */
+}
+.text-sm {
+  font-size: 0.875rem; /* 14px */
+  line-height: 1.25rem; /* 20px */
+}
+.text-base {
+  font-size: 1rem; /* 16px */
+  line-height: 1.5rem; /* 24px */
+}
+.text-lg {
+  font-size: 1.125rem; /* 18px */
+  line-height: 1.75rem; /* 28px */
+}
+.text-xl {
+  font-size: 1.25rem; /* 20px */
+  line-height: 1.75rem; /* 28px */
+}
+.text-2xl {
+  font-size: 1.5rem; /* 24px */
+  line-height: 2rem; /* 32px */
+}
+.text-3xl {
+  font-size: 1.875rem; /* 30px */
+  line-height: 2.25rem; /* 36px */
+}
+.text-4xl {
+  font-size: 2.25rem; /* 36px */
+  line-height: 2.5rem; /* 40px */
+}
+.text-5xl {
+  font-size: 3rem; /* 48px */
+  line-height: 1;
+}
+.text-6xl {
+  font-size: 3.75rem; /* 60px */
+  line-height: 1;
+}
+.text-7xl {
+  font-size: 4.5rem; /* 72px */
+  line-height: 1;
+}
+.text-8xl {
+  font-size: 6rem; /* 96px */
+  line-height: 1;
+}
+.text-9xl {
+  font-size: 8rem; /* 128px */
+  line-height: 1;
+}
+/* text-[14px] */
+/* 字体粗细font-weight */
+/* font-[1100] */
+/* https://tailwindcss.com/docs/font-weight */
+/* 字体间距letter-spacing */
+/* tracking-[.25em] */
+/* 行高line-height */
+/* leading-[3rem] */
+/* 无列表样式 */
+.list-none {
+  list-style-type: none;
+}
+/* 小圆点 */
+.list-disc {
+  list-style-type: disc;
+}
+/* 数字列表 */
+.list-decimal {
+  list-style-type: decimal;
+}
+.text-left {
+  text-align: left;
+}
+.text-center {
+  text-align: center;
+}
+.text-right {
+  text-align: right;
+}
+/* 所有文本头尾对齐 */
+.text-justify {
+  text-align: justify;
+}
+/* 文本颜色 */
+/* text-[#50d71e] */
+/* https://tailwindcss.com/docs/text-color */
+/* 下划线 */
+.underline {
+  text-decoration-line: underline;
+}
+/* 上划线 */
+.overline {
+  text-decoration-line: overline;
+}
+/* 中划线 */
+.line-through {
+  text-decoration-line: line-through;
+}
+/* 无划线 */
+.no-underline {
+  text-decoration-line: none;
+}
+/* 全小写 */
+.lowercase {
+  text-transform: lowercase;
+}
+/* 全大写 */
+.uppercase {
+  text-transform: uppercase;
+}
+/* 首字母大写 */
+.capitalize {
+  text-transform: capitalize;
+}

+ 2 - 1
manpowerPort/js/request.js

@@ -56,7 +56,8 @@ function getMinioUrl () {
  * 请求拦截、相应拦截、错误统一处理
  */
 const httpRequest = axios.create({
-  baseURL: 'http://192.168.1.2:8080', // 测试环境
+  // baseURL: 'http://192.168.1.2:8080', // 测试环境
+  baseURL: 'http://172.21.9.23:8081', // 生产环境
   timeout: 3 * 60 * 1000, // 3分钟等待
   withCredentials: true // 携带cookie
 })