liyongyong 1 anno fa
commit
a2aae2660f

+ 5 - 0
README.md

@@ -0,0 +1,5 @@
+## pc_kingdee_large_screen
+
+### 金蝶大屏项目
+  
+

BIN
fonts/element-icons.woff


BIN
images/bar-blue.png


BIN
images/bar-green.png


BIN
images/bar-purple.png


BIN
images/bar-yellow.png


BIN
images/center-icon1.png


BIN
images/center-icon2.png


BIN
images/center-icon3.png


BIN
images/center-top1.png


BIN
images/center-top2.png


BIN
images/center-top3.png


BIN
images/content-bg.png


BIN
images/down.png


BIN
images/footer-item-checked.png


BIN
images/footer-item.png


BIN
images/header-bg.png


BIN
images/header-bg2.png


BIN
images/home-bg.png


BIN
images/left1-bg.png


BIN
images/page-bg.png


BIN
images/select-bg.png


BIN
images/title-bg.png


BIN
images/title-left.png


BIN
images/title-right.png


BIN
images/up.png


+ 272 - 0
index.html

@@ -0,0 +1,272 @@
+<!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/index.css" />
+    <!-- 引入js -->
+    <script src="./libs/vue@2.7.10.js"></script>
+    <script src="https://unpkg.com/@jiaminghi/data-view/dist/datav.min.vue.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>
+  </head>
+  <body>
+    <div id="app">
+      <header class="my-header">
+        <span>数智人力&nbsp;&nbsp;智慧山西</span>
+        <span class="right">2023-1-16 10:23:00</span>
+      </header>
+      <div class="main">
+        <div class="left">
+          <dv-border-box-8 :dur="10" style="flex: 1;">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">投资关键指标</span>
+              </div>
+              <div class="content flex">
+                <div ref="echartL1" style="flex: 1;height: 100%;"></div>
+                <div ref="echartL2" style="flex: 1;height: 100%;"></div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="11" style="flex: 1;">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">定职数</span>
+              </div>
+              <div class="content flex">
+                <div ref="echartL3" style="flex: 1;height: 100%;"></div>
+                <div ref="echartL4" style="flex: 1;height: 100%;"></div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="12" style="flex: 2;">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">定员额</span>
+              </div>
+              <div class="content flex flex-wrap">
+                <div ref="echartL5" style="flex: 0 0 49.9%;height: 50%;"></div>
+                <div ref="echartL6" style="flex: 0 0 49.9%;height: 50%;"></div>
+                <div ref="echartL7" style="flex: 0 0 49.9%;height: 50%;"></div>
+                <div ref="echartL8" style="flex: 0 0 49.9%;height: 50%;"></div>
+              </div>
+            </div>
+          </dv-border-box-8>
+        </div>
+        <div class="center">
+          <div class="top">
+            <div class="box">
+              <img src="./images/center-top1.png"/>
+              <div>
+                <p>架构数</p>
+                <p><i style="color: #45DAD1">25600</i>人</p>
+              </div>
+            </div>
+            <div class="box">
+              <img src="./images/center-top2.png"/>
+              <div>
+                <p>岗位数</p>
+                <p><i style="color: #8BA2FF">15080</i>人</p>
+              </div>
+            </div>
+            <div class="box">
+              <img src="./images/center-top3.png"/>
+              <div>
+                <p>总人数</p>
+                <p><i style="color: #69C0FF">188600</i>人</p>
+              </div>
+            </div>
+          </div>
+          <dv-border-box-8 :dur="10">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">六定改革成效果展示</span>
+              </div>
+              <div class="content" style="padding: 10px;">
+                <div class="box-center">
+                  <div>
+                    <p>18.20</p>
+                    <p>改革前总部机构平均数</p>
+                  </div>
+                  <div>
+                    <p>18.20</p>
+                    <p>改革前总部机构平均数</p>
+                  </div>
+                  <div>
+                    <p>188600</p>
+                    <p>改革前总部机构平均数</p>
+                  </div>
+                  <div>
+                    <p>18.20</p>
+                    <p>改革前中层管理人数</p>
+                  </div>
+                </div>
+                <div class="box-center">
+                  <div>
+                    <p>188600</p>
+                    <p>改革前总部机构平均数</p>
+                  </div>
+                  <div>
+                    <p>188600</p>
+                    <p>中层管理人数压缩数</p>
+                  </div>
+                  <div>
+                    <p>18.20</p>
+                    <p>当前在岗职工总人数</p>
+                  </div>
+                  <div>
+                    <p>180</p>
+                    <p>在册职工压缩数</p>
+                  </div>
+                  <div>
+                    <p>18</p>
+                    <p>在岗职工压缩数</p>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="10">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">预警</span>
+              </div>
+              <div class="content yujing">
+                <div class="flex1">
+                  <p class="s-title main-color">工作预警</p>
+                  <dv-scroll-board :config="storageRecordConfig2" class="content" />
+                </div>
+                <div class="flex1">
+                  <p class="s-title main-color">填报情况预警</p>
+                  <dv-scroll-board :config="storageRecordConfig" class="content" />
+                </div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="10">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">当前省属企业人数占比</span>
+              </div>
+              <div class="content flex">
+                <ul class="list">
+                  <li class="list-item">
+                    <i>1</i>
+                    <span>山西焦煤</span>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="80" stroke-width="15" color="#FBE139"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>2</i>
+                    <p>晋能控股</p>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="70" stroke-width="15" color="#45DAD1"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>3</i>
+                      <p>潞安化工</p>
+                      <el-progress class="flex1" style="margin: 0 10px;" percentage="60" stroke-width="15" color="#6682F5"></el-progress>
+                      <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>4</i>
+                    <p>山西建投</p>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="50" stroke-width="15" color="#69C0FF"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>5</i>
+                    <p>华阳新材</p>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="50" stroke-width="15" color="#69C0FF"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                </ul>
+                <ul class="list">
+                  <li class="list-item">
+                    <i>6</i>
+                    <span>山西焦煤</span>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="80" stroke-width="15" color="#69C0FF"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>7</i>
+                    <p>晋能控股</p>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="70" stroke-width="15" color="#69C0FF"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>8</i>
+                      <p>潞安化工</p>
+                      <el-progress class="flex1" style="margin: 0 10px;" percentage="60" stroke-width="15" color="#69C0FF"></el-progress>
+                      <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>9</i>
+                    <p>山西建投</p>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="50" stroke-width="15" color="#69C0FF"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                  <li class="list-item">
+                    <i>10</i>
+                    <p>华阳新材</p>
+                    <el-progress class="flex1" style="margin: 0 10px;" percentage="50" stroke-width="15" color="#69C0FF"></el-progress>
+                    <span><i class="num">12500</i>人</span>
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </dv-border-box-8>
+          
+        </div>
+        <div class="right">
+          <dv-border-box-8 :dur="10" style="flex: 2">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">定机制</span>
+              </div>
+              <div class="content flex flex-wrap">
+                <div ref="echartR1" style="flex: 0 0 49.9%;height: 50%;"></div>
+                <div ref="echartR2" style="flex: 0 0 49.9%;height: 50%;"></div>
+                <div ref="echartR3" style="flex: 0 0 49.9%;height: 50%;"></div>
+                <div ref="echartR4" style="flex: 0 0 49.9%;height: 50%;"></div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="11" style="flex: 1">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">定薪酬</span>
+              </div>
+              <div class="content flex">
+                <div ref="echartR5" style="flex: 1;height: 100%;"></div>
+                <div ref="echartR6" style="flex: 1;height: 100%;"></div>
+              </div>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="12" style="flex: 1">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">定任期</span>
+              </div>
+              <div class="content flex">
+                <div ref="echartR7" style="flex: 1;height: 100%;"></div>
+                <div ref="echartR8" style="flex: 1;height: 100%;"></div>
+              </div>
+            </div>  
+          </dv-border-box-8>
+        </div>
+      </div>
+      <div class="footer">
+        <a class="item" v-for="(item,index) in companyList" :key="index">{{item.name}}</a>
+      </div>
+    </div>
+    <script src="./js/index.js"></script>
+  </body>
+</html>

+ 180 - 0
investHome.html

@@ -0,0 +1,180 @@
+<!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="https://unpkg.com/@jiaminghi/data-view/dist/datav.min.vue.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>
+  </head>
+  <body>
+    <div id="app">
+      <header class="my-header">投资管理数智中心</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>
+                <el-date-picker v-model="year" size="small" type="year" class="right-opr"></el-date-picker>
+              </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">825.60</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">654</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">825.60</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">325.00</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>
+            </div>
+          </dv-border-box-8>
+        </div>
+        <div class="center">
+          <div class="top">
+            <div class="box">
+              <img src="./images/center-icon1.png"/>
+              <div>
+                <p>总投资额:</p>
+                <p><span style="color: #2efff3">25.12</span>亿</p>
+              </div>
+            </div>
+            <div class="box">
+              <img src="./images/center-icon2.png"/>
+              <div>
+                <p>固定资产项目数:</p>
+                <p><span style="color: #efe102">100</span>个</p>
+              </div>
+            </div>
+            <div class="box">
+              <img src="./images/center-icon3.png"/>
+              <div>
+                <p>股权项目数:</p>
+                <p><span style="color: #37ec66">16</span>个</p>
+              </div>
+            </div>
+          </div>
+          <div class="map-box"></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>
+            </div>
+          </dv-border-box-8>
+          <dv-border-box-8 :dur="11">
+            <div class="my-panel">
+              <div class="panel-title">
+                <span class="text">投资额度分析</span>
+              </div>
+              <ul class="list content">
+                <li class="list-item">
+                  <i>NO.1</i>
+                  <div class="flex1">
+                    <p>山西焦煤</p>
+                    <el-progress percentage="80" stroke-width="10" define-back-color="#005094" text-color="#43FF6B"></el-progress>
+                  </div>
+                </li>
+                <li class="list-item">
+                  <i>NO.1</i>
+                  <div class="flex1">
+                    <p>晋能控股</p>
+                    <el-progress percentage="70" stroke-width="10"></el-progress>
+                  </div>
+                </li>
+                <li class="list-item">
+                  <i>NO.1</i>
+                  <div class="flex1">
+                    <p>华阳新材</p>
+                    <el-progress percentage="60" stroke-width="10"></el-progress>
+                  </div>
+                </li>
+                <li class="list-item">
+                  <i>NO.1</i>
+                  <div class="flex1">
+                    <p>陆港国际</p>
+                    <el-progress percentage="50" stroke-width="10"></el-progress>
+                  </div>
+                </li>
+              </ul>
+            </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="footer">
+        <a class="item" v-for="(item,index) in companyList" :key="index">{{item.name}}</a>
+      </div>
+    </div>
+    <script src="./js/investHome.js"></script>
+  </body>
+</html>

File diff suppressed because it is too large
+ 21 - 0
js/index.js


+ 330 - 0
js/investHome.js

@@ -0,0 +1,330 @@
+let app = new Vue({
+  el: '#app',
+  data() {
+    return {
+      year: '2022',
+      config1: {
+        number: [100],
+        content: '{nt}个',
+      },
+      storageRecordConfig: {
+        header: ['项目名称', '投资金额', '所属产业', '项目进度', '完成比例'],
+        headerBGC: '#05507b33',
+        oddRowBGC: '#69c0ff0f',
+        evenRowBGC: '',
+        headerHeight: '40',
+        rowNum: 4,
+        align: ['center'],
+        data: [
+          ['工程建设项目', '21.2亿', '煤炭', '终止', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '退出', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+        ],
+      },
+      storageRecordConfig2: {
+        header: ['项目名称', '投资金额', '所属产业', '项目进度', '完成比例'],
+        headerBGC: '#05507b33',
+        oddRowBGC: '#05507b33',
+        evenRowBGC: '',
+        headerHeight: '40',
+        rowNum: 4,
+        align: ['center'],
+        data: [
+          ['工程建设项目', '21.2亿', '煤炭', '终止', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '退出', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+          ['工程建设项目', '21.2亿', '煤炭', '进行中', '2.3%'],
+        ],
+      },
+      companyList: [
+        { name: '山西焦煤' },
+        { name: '晋能控股' },
+        { name: '华新燃气' },
+        { name: '山西建投' },
+        { name: '潞安化工' },
+        { name: '华远陆港' },
+        { name: '航产集团' },
+        { name: '大地控股' },
+        { name: '国新能源' },
+        { name: '汾酒集团' },
+        { name: '云时代' },
+        { name: '神农科技' },
+        { name: '华阳新材' },
+        { name: '华舰体育' },
+        { name: '交控集团' },
+        { name: '文旅集团' },
+        { name: '水控集团' },
+        { name: '太重集团' },
+      ],
+    }
+  },
+  mounted() {
+    // 左侧图表
+    this.initChartL1()
+    this.initChartL2()
+    this.initChartR1()
+  },
+  methods: {
+    initChartL1() {
+      let myChart = echarts.init(this.$refs['echartL1'])
+      let option = {
+        grid: {
+          left: '10%',
+          top: '18%',
+          bottom: '12%',
+          right: '8%',
+        },
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'shadow',
+          },
+        },
+        xAxis: {
+          data: ['2018年', '2019年', '2020年', '2021年', '2022年', '2023年'],
+          axisLine: {
+            show: true, //隐藏X轴轴线
+            lineStyle: {
+              color: '#3D7495',
+              width: 1,
+            },
+          },
+          axisTick: {
+            show: false, //隐藏X轴刻度
+          },
+          axisLabel: {
+            show: true,
+            textStyle: {
+              color: 'rgba(255,255,255,0.6)', //X轴文字颜色
+            },
+          },
+        },
+        yAxis: [
+          {
+            type: 'value',
+            name: '亿元',
+            nameTextStyle: {
+              color: '#FFF',
+            },
+            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: [
+          {
+            type: 'pictorialBar',
+            barCategoryGap: '0%',
+            symbol: 'path://M0,10 L10,10 C5.5,10 5.5,5 5,0 C4.5,5 4.5,10 0,10 z',
+            label: {
+              show: true,
+              position: 'top',
+              distance: 5,
+              color: '#08DFFE',
+              fontSize: 12,
+            },
+            itemStyle: {
+              normal: {
+                color: {
+                  type: 'linear',
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [
+                    {
+                      offset: 0,
+                      color: '#9A11FF',
+                    },
+                    {
+                      offset: 1,
+                      color: '#08DFFE',
+                    },
+                  ],
+                  global: false, //  缺省为  false
+                },
+              },
+              emphasis: {
+                opacity: 1,
+              },
+            },
+            data: [123, 60, 25, 18, 12, 9],
+          },
+        ],
+      }
+
+      myChart.setOption(option)
+    },
+    initChartL2() {
+      let myChart = echarts.init(this.$refs['echartL2'])
+      let option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'shadow',
+          },
+        },
+        grid: {
+          top: '16%',
+          right: '3%',
+          left: '10%',
+          bottom: '10%',
+        },
+        legend: {
+          top: '1',
+          right: '10',
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+        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轴文字颜色
+            },
+          },
+        },
+        yAxis: [
+          {
+            type: 'value',
+            nameTextStyle: {
+              color: '#ebf8ac',
+            },
+            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: 15,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#69c0ff',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: [900, 600, 500, 450, 500],
+          },
+          {
+            name: '实际投资',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#957DFF',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: [500, 900, 600, 800, 450],
+          },
+        ],
+      }
+      myChart.setOption(option)
+    },
+    initChartR1() {
+      let myChart = echarts.init(this.$refs['echartR1'])
+      let option = {
+        tooltip: {
+          trigger: 'item'
+        },
+        legend: {
+          top: 'center',
+          orient: 'vertical',
+          right: '2%',
+          textStyle: {
+            color: '#9DB9EB'
+          }
+        },
+        series: [
+          {
+            name: '',
+            type: 'pie',
+            radius: ['55%', '80%'],
+            labelLine: {
+              normal: {
+                  lineStyle: {
+                    width: 1
+                  }
+              }
+          },
+            data: [
+              { value: 1048, name: '煤炭' },
+              { value: 735, name: '火电' },
+              { value: 580, name: '焦化' },
+              { value: 484, name: '风电' },
+            ]
+          }
+        ]
+      }
+      myChart.setOption(option)
+    },
+  },
+})

+ 179 - 0
js/request.js

@@ -0,0 +1,179 @@
+//如果部署在同域名的话可以直接取cookie,后端需 HttpOnly 设置成否
+// var cookie_name = 'wolfking.jeesharp.session.id'
+// getCookie(cookie_name)
+
+// 是否本地环境
+function isLocalEnv() {
+  let domain = window.location.origin
+  if (['http://127.0.0.1:5500', 'file://'].includes(domain)) {
+    return true
+  } else {
+    return false
+  }
+}
+
+// api 前缀
+function getApiUrl() {
+  // 为线上时
+  if (!isLocalEnv()) {
+    return window.location.origin
+  } else {
+    // 本地时
+    // return 'http://sxtc.com:10002'        // 内网环境
+    // return 'http://10.8.8.100:10002'   // 内网环境
+    // return 'http://1.71.170.214:18080' // 线上环境
+    // return 'http://szxm.sxcig.com:8012' // 线上环境
+    // return 'http://10.0.0.27:8080'     // 超哥环境
+    // return 'http://10.0.0.22:8080'     // 闫敏的环境
+    // return 'http://10.0.0.8:8080' // 祥慧的环境
+    // return 'http://10.0.0.115:8080'    // 王蒙的环境
+	return 'http://10.0.0.82:8080'
+  }
+}
+// websocket 前缀
+function getWsUrl() {
+  let prefix = location.protocol === 'https:' ? 'wss://' : 'ws://'
+  // 为线上时
+  if (!isLocalEnv()) {
+    return prefix + window.location.host
+  } else {
+    return prefix + 'sxtc.com:10002'
+    // return prefix + '10.0.0.115:8080'
+  }
+}
+
+// minio 前缀
+function getMinioUrl() {
+  let isProduction = location.origin.indexOf('1.71.170.214') != -1
+  if (isProduction) {
+    return 'http://1.71.170.214:19000/constr-documents/'
+  } else {
+    return 'http://10.8.8.191:9000/constr-documents-test/'
+  }
+}
+
+/** axios封装
+ * 请求拦截、相应拦截、错误统一处理
+ */
+const httpRequest = axios.create({
+  baseURL: 'http://10.0.0.82:8080', // 测试环境
+  timeout: 3 * 60 * 1000, // 3分钟等待
+  withCredentials: true // 携带cookie
+})
+
+// 请求拦截器
+// httpRequest.interceptors.request.use(
+//   function (config) {
+//     if (!isLocalEnv()) {
+//       if (getQueryVariable('token')) {
+//         config.headers['access_token'] = getQueryVariable('token')
+//       }
+//     } else {
+//       config.headers['access_token'] = localStorage.getItem('token')
+//       // config.headers['access_token'] = '4b3ed521-f509-48d9-b907-ab127479df41'
+//     }
+//     // 上传文件
+//     if (config.url == '/apiSys/oss/upload') {
+//       config.headers['Content-Type'] = 'multipart/form-data'
+//     } else {
+//       config.headers['Content-Type'] = 'application/json'
+//     }
+//     return config
+//   },
+//   function (error) {
+//     return Promise.reject(error)
+//   }
+// )
+
+//响应拦截
+httpRequest.interceptors.response.use(
+  function (response) {
+    const res = response.data
+    // if (res.code == 201) {
+    //   this.ELEMENT.Message.error(res.msg)
+    //   if (!isLocalEnv()) {
+    //     // 跳登录页
+    //     window.location = window.location.origin
+    //   } else {
+    //     localEnvLogin()
+    //   }
+    // }
+    return response
+  },
+  function (error) {
+    this.ELEMENT.Message.error(error.message)
+    return Promise.reject(error)
+  }
+)
+
+function get(url, params) {
+  return new Promise((resolve, reject) => {
+    httpRequest
+      .get(url, { params: params })
+      .then(res => {
+        resolve(res.data)
+      })
+      .catch(err => {
+        reject(err.data)
+      })
+  })
+}
+// qs.stringify(data)
+function post(url, data, config) {
+  return new Promise((resolve, reject) => {
+    httpRequest
+      .post(url, data, config)
+      .then(res => {
+        resolve(res.data)
+      })
+      .catch(err => {
+        reject(err)
+      })
+  })
+}
+
+function postFile(url, blob) {
+  return new Promise((resolve, reject) => {
+    let formdata = new FormData()
+    formdata.append('multipartFile', blob)
+    httpRequest
+      .post(url, formdata)
+      .then(res => {
+        resolve(res.data)
+      })
+      .catch(err => {
+        reject(err)
+      })
+  })
+}
+
+function localEnvLogin() {
+  post(
+    '/apiSys/login',
+    {
+      username: 'admin',
+      password: '1q2w3e4r5t'
+    },
+    {
+      transformRequest: [
+        function (data, headers) {
+          // 将请求数据转换成功 formdata 接收格式
+          headers['Content-Type'] = 'application/x-www-form-urlencoded'
+          return stringify(data)
+        }
+      ]
+    }
+  ).then(res => {
+    localStorage.setItem('token', res.data.token || getQueryVariable('token'))
+  })
+}
+
+// 将参数转换成功 formdata 接收格式
+function stringify(data) {
+  let ret = ''
+  for (const it in data) {
+    ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
+  }
+  ret = ret.substring(0, ret.lastIndexOf('&'))
+  return ret
+}

File diff suppressed because it is too large
+ 1 - 0
libs/axios.min.js


File diff suppressed because it is too large
+ 21 - 0
libs/echarts.min.js


File diff suppressed because it is too large
+ 0 - 0
libs/element-ui@2.15.9.js


File diff suppressed because it is too large
+ 10 - 0
libs/vue@2.7.10.js


+ 745 - 0
styles/common.css

@@ -0,0 +1,745 @@
+*,
+*:before,
+*:after {
+  padding: 0;
+  margin: 0;
+  box-sizing: border-box;
+}
+html,
+body {
+  height: 100%;
+  font-size: 13px;
+  background-color: #f3f3f3;
+  font-family: 'Microsoft YaHei','Helvetica Neue',Helvetica,'PingFang SC','Hiragino Sans GB', Arial,sans-serif;
+  /* overflow: hidden; */
+}
+
+.flex {
+  display: flex;
+}
+.flex1 {
+  flex: 1;
+}
+.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: #228af5;
+}
+.danger-color {
+  color: #f56c6c;
+}
+.btm10 {
+  margin-bottom: 10px;
+}
+.btm20 {
+  margin-bottom: 20px;
+}
+a {
+  text-decoration: none;
+  cursor: pointer;
+}
+.dialog-full-icon {
+  padding: 5px;
+  color: #fff;
+  position: absolute;
+  right: 50px;
+  top: 18px;
+  font-size: 16px;
+  cursor: pointer;
+}
+
+[v-cloak] {
+  display: none;
+}
+#app {
+  height: 100vh;
+}
+/* 头部 */
+.header {
+  height: 77px;
+  flex: 0 0 auto;
+  background-color: #fff;
+  display: flex;
+}
+.header-item {
+  padding: 15px;
+  text-align: center;
+  color: #333;
+  cursor: pointer;
+  position: relative;
+}
+.header-item p {
+ width: 150%;
+ margin-left: -25%;
+}
+.header-item:hover {
+  background-color: #cae5fb;
+  color: #228af5;
+}
+.header-item.active {
+  background-color: #cae5fb;
+  color: #228af5;
+}
+.nav-dropdown {
+  display: block;
+  font-size: 13px;
+  color: #333;
+}
+
+#designer {
+  width: 100%;
+  height: 100%;
+}
+.main-wrap {
+  height: calc(100vh - 77px);
+  padding: 10px 0;
+  flex: 1;
+}
+.main {
+  display: flex;
+  padding: 0px;
+  height: 100%;
+  margin: 0 10px;
+  background: #fff;
+  border: 1px solid #e5e5e5;
+}
+/* 左侧 */
+.aside {
+  height: 100%;
+  background-color: #fff;
+  border: 1px solid #e5e5e5;
+}
+.el-tree > .el-tree-node {
+  display: inline-block;
+  min-width: 100%;
+}
+
+/* el-tree 操作弹出 */
+.contextmenu__item {
+  display: block;
+  line-height: 34px;
+  text-align: left;
+  padding: 0 20px;
+}
+.contextmenu__item:not(:last-child) {
+  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+.menu {
+  position: fixed;
+  background-color: #fff;
+  font-size: 14px;
+  color: #444040;
+  border-radius: 4px;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  white-space: nowrap;
+  z-index: 1000;
+}
+.contextmenu__item:hover {
+  cursor: pointer;
+  background: #66b1ff;
+  border-color: #66b1ff;
+  color: #fff;
+}
+.main > div.left {
+  flex: 1;
+  overflow: hidden;
+  padding: 5px;
+}
+.main > div.right {
+  flex: 1;
+  overflow: hidden;
+  padding: 5px;
+  border-left: 1px solid #ccc;
+}
+
+.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
+  background-color: #e8f3fe;
+}
+/* 公共弹框样式 */
+.el-dialog {
+  border-radius: 8px;
+  overflow: hidden;
+}
+.el-dialog__header {
+  padding: 15px;
+  background-color: #228af5;
+}
+
+.el-dialog__header .el-dialog__title {
+  color: #fff;
+  font-size: 16px;
+}
+.el-dialog__headerbtn .el-dialog__close {
+  color: #fff;
+  font-size: 20px;
+}
+.el-dialog__body {
+  padding: 15px;
+  border-top: 1px solid #f1f1f1;
+}
+.el-form-item--mini.el-form-item,
+.el-form-item--small.el-form-item {
+  margin-bottom: 15px;
+}
+.build-modal .el-dialog__body {
+  padding: 0;
+}
+.build-modal .el-card {
+  margin-bottom: 10px;
+}
+.build-modal .el-card p {
+  line-height: 1.6;
+}
+.build-modal .el-form {
+  flex: 0 0 300px;
+  margin-right: 30px;
+}
+.build-modal .el-card__header {
+  padding: 10px;
+  background-color: whitesmoke;
+}
+.build-modal .el-card__body {
+  padding: 15px;
+}
+.inline-inputs .el-form-item__content {
+  display: flex;
+  justify-content: space-between;
+}
+.inline-inputs .el-form-item__content span {
+  margin: 0 20px;
+}
+
+.select-box .el-radio-group {
+  display: flex;
+  flex-direction: column;
+  margin-top: 15px;
+}
+.select-box .el-checkbox-group {
+  display: flex;
+  flex-direction: column;
+}
+.select-box .el-radio-group label {
+  margin-bottom: 20px;
+}
+.select-box .el-checkbox-group label {
+  margin-bottom: 15px;
+}
+.nav-icon {
+  display: inline-block;
+  width: 35px;
+  height: 35px;
+  margin-bottom: 3px;
+}
+.nav-icon1 {
+  background: url(../images/navs/1.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon2 {
+  background: url(../images/navs/2.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon3 {
+  background: url(../images/navs/3.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon4 {
+  background: url(../images/navs/4.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon5 {
+  background: url(../images/navs/5.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon6 {
+  background: url(../images/navs/6.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon7 {
+  background: url(../images/navs/7.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon8 {
+  background: url(../images/navs/8.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon9 {
+  background: url(../images/navs/9.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon10 {
+  background: url(../images/navs/10.png) no-repeat;
+  background-size: 100% 100%;
+}
+
+.nav-icon11 {
+  background: url(../images/navs/11.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon12 {
+  background: url(../images/navs/12.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon13 {
+  background: url(../images/navs/13.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon14 {
+  background: url(../images/navs/14.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon15 {
+  background: url(../images/navs/15.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon16 {
+  background: url(../images/navs/16.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon17 {
+  background: url(../images/navs/17.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon18 {
+  background: url(../images/navs/18.png) no-repeat;
+  background-size: 100% 100%;
+}
+.nav-icon19 {
+  background: url(../images/navs/19.png) no-repeat;
+  background-size: 100% 100%;
+}
+
+.tree-icon {
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  margin-right: 5px;
+  vertical-align: -2px;
+}
+.tree-icon01 {
+  background: url(../images/tree/project-1@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon02 {
+  background: url(../images/tree/project-2@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon03 {
+  background: url(../images/tree/project-3@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon1, .tree-icon18, .tree-icon20, .tree-icon22 {
+  background: url(../images/tree/project@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon2 {
+  background: url(../images/tree/class@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon3 {
+  background: url(../images/tree/sub-class@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon4 {
+  background: url(../images/tree/sub-class-child@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon5 {
+  background: url(../images/tree/form@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon6, .tree-icon17, .tree-icon19, .tree-icon21 {
+  background: url(../images/tree/floor@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon7 {
+  background: url(../images/tree/build@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon8 {
+  background: url(../images/tree/form8@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon9 {
+  background: url(../images/tree/floor@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon10 {
+  background: url(../images/tree/project@2x.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon11 {
+  background: url(../images/tree/tong1.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon12 {
+  background: url(../images/tree/tong2.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon13 {
+  background: url(../images/tree/tong3.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon14 {
+  background: url(../images/tree/tong4.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon15 {
+  background: url(../images/tree/tong5.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon16 {
+  background: url(../images/tree/tong6.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon100 {
+  background: url(../images/tree/tong7.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon101 {
+  background: url(../images/tree/tong8.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon102 {
+  background: url(../images/tree/tong9.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon103 {
+  background: url(../images/tree/tong10.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon104 {
+  background: url(../images/tree/tong1.png) no-repeat;
+  background-size: 100% 100%;
+}
+.tree-icon105 {
+  background: url(../images/tree/tong2.png) no-repeat;
+  background-size: 100% 100%;
+}
+
+.tree-icon-company {
+  background: url(../images/icons/company.png) no-repeat;
+  background-size: 110% 110%;
+}
+
+
+.home-content {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  flex: 1;
+}
+.home-content h1 {
+  margin-bottom: 50px;
+}
+.home-content img {
+  width: 80%;
+  height: 50%;
+}
+.dialog-nowrap {
+  pointer-events: none;
+}
+.dialog-nowrap .el-dialog {
+  pointer-events: auto;
+}
+.el-drawer__wrapper {
+  pointer-events: none;
+}
+.el-drawer__wrapper .el-drawer {
+  pointer-events: auto;
+}
+/* 新建表格tab ...限制宽度 */
+.sheet-modal .el-tabs__item {
+  max-width: 400px;
+  overflow: hidden;
+  padding: 0 15px 0 10px;
+  text-overflow: ellipsis;
+}
+/* 使用element 滚动条样式 */
+::-webkit-scrollbar {
+  z-index: 11;
+  width: 6px;
+  height: 6px;
+}
+::-webkit-scrollbar-thumb {
+  border-radius: 5px;
+  width: 6px;
+  background: #b4bccc;
+}
+::-webkit-scrollbar-corner {
+  background: #fff;
+}
+::-webkit-scrollbar-track {
+  background: #fff;
+}
+::-webkit-scrollbar-track-piece {
+  background: #fff;
+  width: 6px;
+}
+.ribbon-button-lock {
+  background-image: url('../images/icons/lock.png');
+  background-size: 100% 100% !important;
+}
+.ribbon-button-unlock {
+  background-image: url('../images/icons/unlock.png');
+  background-size: 100% 100% !important;
+}
+.ribbon-button-tags {
+  background-image: url('../images/icons/tags.png');
+  background-size: 100% 100% !important;
+}
+.ribbon-button-check {
+  background-image: url('../images/icons/check.png');
+  background-size: 100% 100% !important;
+}
+.ribbon-button-clear-source {
+  background-image: url('../images/icons/clear.png');
+  background-size: 100% 100% !important;
+}
+.ribbon-button-select {
+  background-image: url('../images/icons/select.png');
+  background-size: 100% 100% !important;
+}
+
+.gc-ribbon-bar .ribbon-button-item.ribbon-bigbutton {
+  min-width: 40px;
+  max-width: 60px;
+  min-height: 0;
+}
+.grid-box {
+  display: flex;
+  flex-wrap: wrap;
+  border-left: 1px solid #ccc;
+}
+.grid-box > div {
+  width: 30px;
+  height: 35px;
+  text-align: center;
+  line-height: 35px;
+  color: #000;
+  border-bottom: 1px solid #ccc;
+  border-right: 1px solid #ccc;
+  border-top: 1px solid #ccc;
+  cursor: pointer;
+  font-size: 18px;
+}
+.grid-box > div:nth-child(n + 21) {
+  border-top: none;
+}
+.grid-box > div.checked {
+  background-color: #409eff;
+  color: #f1f1f1;
+}
+
+.char-tab .el-tabs__nav,
+.char-tab .el-tabs__content {
+  max-height: 300px;
+  overflow: auto;
+}
+.char-tab .el-tabs__item {
+  height: 25px;
+  line-height: 25px;
+  font-family: 'chars';
+}
+.char-input .el-input__inner {
+  font-family: 'chars';
+}
+.fonts {
+  font-family: 'chars';
+}
+.char-pop {
+  text-align: center;
+  height: 80px;
+  line-height: 60px;
+  width: 80px;
+  font-size: 60px;
+  font-family: 'chars';
+}
+
+/* 拖拽的线 */
+#box {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  /* background-color:royalblue; */
+}
+#resize {
+  width: 2px;
+  height: 100%;
+  cursor: w-resize;
+  background-color: #ccc;
+  float: left;
+  position: relative;
+}
+#resize2 {
+  height: 5px;
+  width: 100%;
+  background-color: #ccc;
+  cursor: n-resize;
+  position: relative;
+}
+#left {
+  width: 350px;
+  height: 100%;
+  /* background:skyblue; */
+  float: left;
+  overflow: auto;
+}
+#right {
+  float: right;
+  width: calc(100% - 352px);
+  height: 100%;
+  /* background:tomato; */
+  overflow: auto;
+}
+#top {
+  height: 300px;
+  width: 100%;
+  /* background:skyblue; */
+  overflow: auto;
+}
+
+#bottom {
+  height: calc(100% - 305px);
+  width: 100%;
+  /* background:tomato; */
+  overflow: auto;
+}
+.resImg {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  margin: auto;
+  width: 12px;
+  height: 60px;
+  cursor: pointer;
+}
+#resize2 .resImg {
+  position: absolute;
+  left: 0;
+  right: 0;
+  margin: auto;
+  height: 12px;
+  width: 60px;
+  cursor: pointer;
+}
+.left-tree {
+  flex: 0 0 300px;
+  padding: 10px 10px 10px 0;
+  border: 1px solid #ccc;
+  min-height: 400px;
+  height: 100%;
+  /* margin-right: 15px;
+  border-radius: 5px; */
+  overflow: auto;
+}
+.el-table tbody tr:hover > td {
+  background-color: unset!important;
+}
+.el-table .cell {
+  line-height: 1.2;
+}
+.capacity-cell {
+  background-color: rgb(212, 243, 255);
+  position: relative;
+}
+.capacity-cell:hover .xuan-btn {
+  display: block;
+}
+.xuan-btn {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  margin: auto;
+  right: 0;
+  padding: 4px;
+  display: none;
+}
+.bottom-cell {
+  position: relative;
+  padding-top: 20px!important;
+}
+.inline-input .el-input__inner {
+  padding: 0 4px;
+}
+.scheme-table.el-table .cell {
+  padding: 0 5px;
+  line-height: 1.3;
+}
+.bottom-cell:hover .opration {
+  display: block;
+}
+.opration {
+  position: absolute;
+  top: 0;
+  right: 0;
+  display: block;
+  border: 1px solid #ccc;
+  line-height: 1;
+  display: none;
+}
+.opration i {
+  cursor: pointer;
+  font-size: 14px;
+  color: #409EFF;
+  border: 1px solid #409EFF;
+}
+.branch-list .el-radio-group {
+  display: flex;
+  flex-wrap: wrap;
+}
+.branch-list .el-radio-group label {
+  flex: 0 0 50%;
+  margin-right: 0px;
+  margin: 6px 0;
+}
+.input-number input::-webkit-outer-spin-button {
+  -webkit-appearance: none;
+}
+.input-number input::-webkit-inner-spin-button {
+  -webkit-appearance: none;
+}
+.input-number input[type='number']{
+  -moz-appearance: textfield;
+}
+/* table 行内编辑使用 */
+.item_input {
+  display: none;
+}
+.item_input .el-input__inner {
+  padding: 0px 2px;
+  height: 18px;
+  line-height: 18px;
+}
+.text-overflow {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.is-tooltipStyle {
+  max-width: 20%;
+  color: #fff;
+  background-color: #444040;
+}

File diff suppressed because it is too large
+ 0 - 0
styles/element-ui@2.15.9.css


+ 275 - 0
styles/index.css

@@ -0,0 +1,275 @@
+*,
+*:before,
+*:after {
+  padding: 0;
+  margin: 0;
+  box-sizing: border-box;
+}
+html,
+body {
+  min-width: 7640px;
+  font-size: 20px;
+  color: #fff;
+  font-family: 'Microsoft YaHei', 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', Arial, sans-serif;
+}
+
+.flex {
+  display: flex;
+}
+.flex-wrap {
+  flex-wrap: wrap;
+}
+.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-column {
+  display: flex;
+  flex-direction: column;
+}
+.flex-align-center {
+  display: flex;
+  align-items: center;
+}
+.text-center {
+  text-align: center;
+}
+.font12 {
+  font-size: 12px;
+}
+.main-color {
+  color: #69C0FF;
+}
+.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/home-bg.png') center center no-repeat;
+  background-size: 100% 100%;
+  padding-top: 10px;
+}
+.my-header {
+  position: relative;
+  height: 140px;
+  line-height: 140px;
+  background: url('../images/header-bg2.png') center center no-repeat;
+  background-size: 100% 100%;
+  text-align: center;
+  font-weight: bold;
+  font-size: 56px;
+  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: 100px;
+  top: 0px;
+  font-size: 30px;
+}
+.main {
+  padding: 15px 15px 0;
+  display: flex;
+  height: calc(100vh - 280px);
+}
+.left,
+.right {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+}
+.left .my-panel,
+.right .my-panel {
+  height: 100%;
+  overflow: hidden;
+}
+.dv-border-box-8 {
+  margin-bottom: 25px;
+  padding: 15px;
+  box-sizing: border-box;
+}
+.center {
+  flex: 1;
+  margin: 0 20px;
+  display: flex;
+  flex-direction: column;
+}
+.center .my-panel {
+  height: 100%;
+}
+.center .top {
+  height: 183px;
+  display: flex;
+  justify-content: space-between;
+  padding: 0 -5px;
+  margin-bottom: 10px;
+}
+.center .top .box {
+  flex: 1;
+  margin-bottom: 25px;
+  background-color: rgba(105,192,255,0.2);
+  display: flex;
+  align-items: center;
+  padding-left: 8%;
+  margin: 0 10px;
+}
+.box > div {
+  margin-left: 30px;
+}
+.box > img {
+  width: 138px;
+}
+.box > div p {
+  font-size: 24px;
+  color: #E4F8FF;
+}
+.box > div i {
+  display: inline-block;
+  font-size: 48px;
+  margin-right: 5px;
+  font-weight: 600;
+  margin-top: 5px;
+}
+.footer {
+  position: relative;
+  padding-bottom: 20px;
+  display: flex;
+  width: 60%;
+  margin: 0 auto;
+}
+.footer a {
+  flex: 1;
+  height: 70px;
+  line-height: 70px;
+  text-align: center;
+  color: #fff;
+  font-size: 20px;
+  background: url('../images/footer-item.png') no-repeat;
+  background-size: 100% 100%;
+}
+.footer a:hover {
+  background: url('../images/footer-item-checked.png') no-repeat;
+  background-size: 100% 100%;
+  color: #15F7FF;
+}
+.my-panel .content {
+  height: calc(100% - 60px);
+}
+.panel-title {
+  position: relative;
+  height: 60px;
+  line-height: 60px;
+  padding-left: 6%;
+  background: url('../images/title-bg.png') no-repeat;
+  background-size: 100% 100%;
+}
+.panel-title .text {
+  font-size: 22px;
+  font-weight: 600;
+  color: #DAF9FF;
+}
+.panel-title .right-opr {
+  position: absolute;
+  right: 0;
+  width: 80px;
+}
+
+.list {
+  flex: 1;
+  padding: 15px;
+}
+.list .list-item {
+  display: flex;
+  align-items: center;
+  margin: 15px 0;
+  border: 1px solid #69c0ff3f;
+  padding: 20px;
+}
+.list .list-item > i {
+  margin-right: 15px;
+  width: 35px;
+  height: 35px;
+  line-height: 35px;
+  text-align: center;
+  background: #69c0ff3f;
+  border-radius: 4px;
+  color: #69C0FF;
+}
+.list-item i.num {
+  font-size: 30px;
+  color: #69C0FF;
+  margin-right: 10px;
+}
+.s-title {
+  text-align: center;
+  font-size: 20px;
+  margin-bottom: 20px;
+}
+.yujing {
+  display: flex;
+  padding: 15px 10px 12px;
+}
+.yujing > div {
+  background-color: #05507b4c;
+  margin: 0 15px;
+  padding: 15px 30px;
+  border-radius: 10px;
+}
+.el-progress-bar__outer {
+  background-color: #17436d!important;
+}
+.el-progress__text {
+  color: #f5f7fa;
+}
+.box-center {
+  display: flex;
+}
+.box-center > div {
+  background-color: #17436d;
+  text-align: center;
+  flex: 1;
+  height: 150px;
+  padding-top: 30px;
+  margin: 15px;
+}
+.box-center > div p:nth-child(1) {
+  font-size: 45px;
+  font-weight: 800;
+  color: #69C0FF;
+  margin-bottom: 15px;
+}

+ 260 - 0
styles/investHome.css

@@ -0,0 +1,260 @@
+*,
+*: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 {
+  height: 70px;
+  line-height: 70px;
+  background: url('../images/header-bg.png') center center no-repeat;
+  background-size: 100% 100%;
+  color: #0bf1ff;
+  text-align: center;
+  font-size: 25px;
+  font-weight: 600;
+}
+.main {
+  padding: 15px;
+  display: flex;
+  height: calc(100% - 70px);
+  background: url('../images/content-bg.png') no-repeat center bottom;
+  background-size: 80%;
+  display: flex;
+  padding-bottom: 65px;
+}
+.left,
+.right {
+  flex: 3;
+  display: flex;
+  flex-direction: column;
+}
+.left .my-panel,
+.right .my-panel {
+  background-color: #0050943f;
+  height: 100%;
+  overflow: hidden;
+}
+.dv-border-box-8 {
+  margin-bottom: 10px;
+}
+.center {
+  flex: 4;
+}
+.center .top {
+  height: 90px;
+  display: flex;
+  justify-content: space-between;
+}
+.center .top .box {
+  flex: 1;
+  margin: 0 10px;
+  background-color: #0050943f;
+  display: flex;
+  align-items: center;
+  padding-left: 15px;
+}
+.box > div {
+  margin-left: 10px;
+}
+.box > img {
+  width: 70px;
+}
+.box > div p {
+  font-size: 16px;
+  color: #e1e3ef;
+}
+.box > div span {
+  display: inline-block;
+  font-size: 28px;
+  margin-right: 5px;
+  font-weight: 600;
+  margin-top: 5px;
+}
+.footer {
+  position: fixed;
+  bottom: 0;
+  padding: 10px;
+  display: flex;
+  background-color: rgba(0, 0, 0, 0.5);
+  width: 100%;
+}
+.footer a {
+  flex: 1;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  color: #fff;
+  background: url('../images/footer-item.png') no-repeat;
+  background-size: 100% 100%;
+}
+.footer a:hover {
+  background: url('../images/footer-item-checked.png') no-repeat;
+  background-size: 100% 100%;
+}
+.my-panel .content {
+  height: calc(100% - 60px);
+}
+.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;
+}
+.panel-title .right-opr {
+  position: absolute;
+  right: 0;
+  width: 80px;
+}
+.boxs {
+  display: flex;
+  flex-wrap: wrap;
+  padding: 10px;
+  color: #05fbfe;
+}
+.boxs > div {
+  flex: 0 0 50%;
+  background: url('../images/left1-bg.png') no-repeat center;
+  background-size: 106% 124%;
+  padding: 20px 30px;
+}
+.boxs > div > p {
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-end;
+}
+.boxs > div > p:nth-child(2) {
+  margin-top: 10px;
+}
+.boxs .name {
+  color: #f3f3f3;
+}
+.boxs .change {
+  color: #32EDAA;
+}
+.boxs .change.up {
+  color: #ED3248;
+}
+.boxs .num {
+  font-size: 30px;
+  font-weight: 600;
+  margin-right: 5px;
+}
+.boxs .el-icon-more {
+  font-size: 25px;
+}
+
+.list {
+  padding: 15px;
+}
+.list .list-item {
+  display: flex;
+  margin-bottom: 15px;
+}
+.list .list-item i {
+  padding: 5px 10px;
+  color: #ffc704;
+  border: 1px solid #ffc704;
+  border-radius: 8px;
+  margin-right: 15px;
+}

+ 264 - 0
styles/normalize.css

@@ -0,0 +1,264 @@
+/* Document
+ * ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ */
+
+:where(html) {
+  line-height: 1.15; /* 1 */
+}
+
+/* Sections
+ * ========================================================================== */
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Edge, Firefox, and Safari.
+ */
+
+:where(h1) {
+  font-size: 2em;
+  margin-block-end: 0.67em;
+  margin-block-start: 0.67em;
+}
+
+/* Grouping content
+ * ========================================================================== */
+
+/**
+ * Remove the margin on nested lists in Chrome, Edge, and Safari.
+ */
+
+:where(dl, ol, ul) :where(dl, ol, ul) {
+  margin-block-end: 0;
+  margin-block-start: 0;
+}
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Correct the inheritance of border color in Firefox.
+ */
+
+:where(hr) {
+  box-sizing: content-box; /* 1 */
+  color: inherit; /* 2 */
+  height: 0; /* 1 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+:where(pre) {
+  font-family: monospace, monospace; /* 1 */
+  font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+ * ========================================================================== */
+
+/**
+ * Add the correct text decoration in Safari.
+ */
+
+:where(abbr[title]) {
+  text-decoration: underline;
+  text-decoration: underline dotted;
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+:where(b, strong) {
+  font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+:where(code, kbd, samp) {
+  font-family: monospace, monospace; /* 1 */
+  font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+:where(small) {
+  font-size: 80%;
+}
+
+/* Tabular data
+ * ========================================================================== */
+
+/**
+ * 1. Correct table border color in Chrome, Edge, and Safari.
+ * 2. Remove text indentation from table contents in Chrome, Edge, and Safari.
+ */
+
+:where(table) {
+  border-color: currentColor; /* 1 */
+  text-indent: 0; /* 2 */
+}
+
+/* Forms
+ * ========================================================================== */
+
+/**
+ * Remove the margin on controls in Safari.
+ */
+
+:where(button, input, select) {
+  margin: 0;
+}
+
+/**
+ * Remove the inheritance of text transform in Firefox.
+ */
+
+:where(button) {
+  text-transform: none;
+}
+
+/**
+ * Correct the inability to style buttons in iOS and Safari.
+ */
+
+:where(button, input:is([type="button" i], [type="reset" i], [type="submit" i])) {
+  -webkit-appearance: button;
+}
+
+/**
+ * Add the correct vertical alignment in Chrome, Edge, and Firefox.
+ */
+
+:where(progress) {
+  vertical-align: baseline;
+}
+
+/**
+ * Remove the inheritance of text transform in Firefox.
+ */
+
+:where(select) {
+  text-transform: none;
+}
+
+/**
+ * Remove the margin in Firefox and Safari.
+ */
+
+:where(textarea) {
+  margin: 0;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome, Edge, and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+:where(input[type="search" i]) {
+  -webkit-appearance: textfield; /* 1 */
+  outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Safari.
+ */
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+  height: auto;
+}
+
+/**
+ * Correct the text style of placeholders in Chrome, Edge, and Safari.
+ */
+
+::-webkit-input-placeholder {
+  color: inherit;
+  opacity: 0.54;
+}
+
+/**
+ * Remove the inner padding in Chrome, Edge, and Safari on macOS.
+ */
+
+::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style upload buttons in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+  -webkit-appearance: button; /* 1 */
+  font: inherit; /* 2 */
+}
+
+/**
+ * Remove the inner border and padding of focus outlines in Firefox.
+ */
+
+:where(button, input:is([type="button" i], [type="color" i], [type="reset" i], [type="submit" i]))::-moz-focus-inner {
+  border-style: none;
+  padding: 0;
+}
+
+/**
+ * Restore the focus outline styles unset by the previous rule in Firefox.
+ */
+
+:where(button, input:is([type="button" i], [type="color" i], [type="reset" i], [type="submit" i]))::-moz-focusring {
+  outline: 1px dotted ButtonText;
+}
+
+/**
+ * Remove the additional :invalid styles in Firefox.
+ */
+
+:where(:-moz-ui-invalid) {
+  box-shadow: none;
+}
+
+/* Interactive
+ * ========================================================================== */
+
+/*
+ * Add the correct styles in Safari.
+ */
+
+:where(dialog) {
+  background-color: white;
+  border: solid;
+  color: black;
+  height: -moz-fit-content;
+  height: fit-content;
+  left: 0;
+  margin: auto;
+  padding: 1em;
+  position: absolute;
+  right: 0;
+  width: -moz-fit-content;
+  width: fit-content;
+}
+
+:where(dialog:not([open])) {
+  display: none;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+:where(summary) {
+  display: list-item;
+}

Some files were not shown because too many files changed in this diff