zhbyyy vor 2 Jahren
Ursprung
Commit
5360a80355
3 geänderte Dateien mit 161 neuen und 73 gelöschten Zeilen
  1. 28 8
      investmentNew/index.html
  2. 59 8
      investmentNew/js/index.js
  3. 74 57
      investmentNew/styles/index.css

+ 28 - 8
investmentNew/index.html

@@ -23,8 +23,8 @@
 
 <body>
   <!-- <dv-full-screen-container> -->
-  <div id="app" class="w-full h-full" :class="mapShow?'appbg1':'appbg2'">
-    <div class="top">
+  <div id="app" class="w-full h-full overflow-hidden" :class="mapShow?'appbg1':'appbg2'">
+    <div class="top overflow-hidden">
       <div class="title" style="padding-top: 2%">
         <span>投前管理</span>
         <div></div>
@@ -35,7 +35,7 @@
         <div></div>
       </div>
     </div>
-    <div class="bottom">
+    <div class="bottom overflow-hidden">
       <div class="left">
         <div>
           <div class="title">投资计划分析</div>
@@ -81,7 +81,21 @@
               </div>
             </div>
             <div class="overflow-hidden left1B">
-              <div class="flex items-center justify-center flex-col relative">
+              <svg style="height: 700px; width: 700px" class="svg_box">
+                <circle cx="240" cy="260" r="150" stroke-width="30px" stroke="rgb(140 201 249)" fill="none"
+                  stroke-dasharray="40 10">
+                  <animateTransform attributeName="transform" repeatCount="indefinite" type="rotate" from="0 240 260" /
+                    to="-360 240 260" dur="20" />
+                </circle>
+              </svg>
+              <svg style="height: 700px;width: 700px" class="svg_box">
+                <circle cx="240" cy="120" r="100" stroke-width="10px" stroke="rgb(140 201 249)" fill="none"
+                  stroke-dasharray="10 20">
+                  <animateTransform attributeName="transform" repeatCount="indefinite" type="rotate" from="0 240 120"
+                    to="360 240 120" dur="20" />
+                </circle>
+              </svg>
+              <div class="flex items-center justify-center flex-col relative" style="padding-bottom: 10%;">
                 <div style="font-size: 72px; color: #ffe036; font-weight: bold">
                   450.12<span style="font-size: 28px">亿</span>
                 </div>
@@ -260,6 +274,11 @@
                 <img src="./img/left-green.png" class="" style="width: 104px; height: 112px" alt="" />
                 <div class="text-center">1025亿</div>
               </div>
+              <div class="absolute projectPop" style="top: 50%;" :style="{left:projecList[projectNum][2].distance}">
+                <div>项目立项</div>
+                <div><span style="display:inline-block;border-radius:50%;margin-right: 10px; width:20px;height:20px;background-color:#45A9E1"></span>{{projecList[projectNum][0].name}}:{{projecList[projectNum][0].value}}个,{{projecList[projectNum][0].value2}}亿</div>
+                <div><span style="display:inline-block;border-radius:50%;margin-right: 10px; width:20px;height:20px;background-color:#4CEEE5"></span>{{projecList[projectNum][1].name}}:{{projecList[projectNum][1].value}}个,{{projecList[projectNum][1].value2}}亿</div>
+              </div>
             </div>
           </div>
         </div>
@@ -585,21 +604,22 @@
       </div>
       <div class="bottom-tip" @click="backChina"></div>
     </div>
-    <!-- <div style="width: 500px;height: 500px;" ref="echart1"></div> -->
-    <svg style="height: 700px; width: 100%" class="svg_box">
+    <!-- <svg style="height: 700px; width: 700px" class="svg_box">
       <circle cx="240" cy="260" r="150" stroke-width="30px" stroke="rgb(140 201 249)" fill="none"
         stroke-dasharray="40 10">
         <animateTransform attributeName="transform" repeatCount="indefinite" type="rotate" from="0 240 260" /
           to="-360 240 260" dur="20" />
       </circle>
     </svg>
-    <svg style="height: 700px; width: 100%" class="svg_box">
+    <svg style="height: 700px;width: 700px" class="svg_box">
       <circle cx="240" cy="120" r="100" stroke-width="10px" stroke="rgb(140 201 249)" fill="none"
         stroke-dasharray="10 20">
         <animateTransform attributeName="transform" repeatCount="indefinite" type="rotate" from="0 240 120"
           to="360 240 120" dur="20" />
       </circle>
-    </svg>
+    </svg> -->
+    <!-- 双柱状图弹窗 -->
+    <div class="absolute twoPop"></div>
   </div>
   <!-- </dv-full-screen-container> -->
   <script src="./js/index.js"></script>

+ 59 - 8
investmentNew/js/index.js

@@ -30,6 +30,49 @@ let app = new Vue({
       industryLayout: 0, //产业布局分析
       time1: "", // 4秒定时器
       time2: "", // 针对投前产业布局分析的定时器
+      projectNum: 0, // 项目阶段分析指示器
+      projecList: [ //项目阶段分析内容距离
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '250px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '370px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '490px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '610px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '350px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '470px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '590px' }
+        ],
+        [
+          { name: '特别监管', value: '1230', value2: '1036' },
+          { name: '备案', value: '1230', value2: '1036' },
+          { name: '项目储备', distance: '710px' }
+        ],
+      ],
       storageRecordConfig: {
         waitTime: "2000",
         hoverPause: true,
@@ -360,7 +403,7 @@ let app = new Vue({
       },
       inner: 0,
       innerDeg: 0,
-      timer: null,
+      timer: null, // 两秒定时器
       witchs: 0,
       topIndex: 0,
       echartR1Fd1: true,
@@ -1483,6 +1526,12 @@ let app = new Vue({
         this.topIndex = this.topIndex % 8;
         this.witchs = this.inner % this.investData.investList.length;
         this.innerDeg = this.inner * angle;
+        // 项目阶段分析弹窗
+        if (this.projectNum < 7) {
+          this.projectNum = this.projectNum + 1
+        } else {
+          this.projectNum = 0
+        }
       }, 2000);
     },
     filterLpData () {
@@ -2178,7 +2227,7 @@ let app = new Vue({
         legend: {
           top: "center",
           orient: "vertical",
-          left: "75%",
+          left: "65%",
           textStyle: {
             color: "#fff",
             fontSize: 20,
@@ -2194,7 +2243,7 @@ let app = new Vue({
                 width: 80,
                 height: 80,
               },
-              left: "center", //
+              left: "37.7%", //
               top: "middle", //配置图片居中
             },
           ],
@@ -2203,7 +2252,8 @@ let app = new Vue({
           {
             name: "",
             type: "pie",
-            radius: ["20%", "80%"],
+            radius: ["20%", "90%"],
+            center: ["41%", "50%"],
             labelLine: {
               normal: {
                 lineStyle: {
@@ -2228,7 +2278,8 @@ let app = new Vue({
               show: false,
             },
             type: "pie",
-            radius: ["80%", "82%"],
+            radius: ["90%", "92%"],
+            center: ["41%", "50%"],
             hoverAnimation: false,
             name: "",
             data: [
@@ -3621,7 +3672,7 @@ let app = new Vue({
             data: [
               {
                 name: "山西",
-                value: [112.43, 37.73,5303, 80],
+                value: [112.43, 37.73, 5303, 80],
               },
             ],
             symbolSize: function (val) {
@@ -4149,7 +4200,7 @@ let app = new Vue({
         {
           type: "liquidFill",
           radius: "40%",
-          data: [left2[0], left2[0] + 0.05, left2[0] - 0.05],
+          data: [left2[0]],
           center: [260, 250],
           backgroundStyle: {
             color: {
@@ -4827,7 +4878,7 @@ let app = new Vue({
           },
           light: {
             main: {
-              intensity: 3,
+              intensity: 1,
               shadow: true,
             },
           },

+ 74 - 57
investmentNew/styles/index.css

@@ -1,13 +1,17 @@
 html,
 body {
-  width: 7680px;
+  width: 7680px !important;
   min-height: 2120px;
   height: 100%;
   font-size: 20px;
   color: #fff;
-  font-family: "Microsoft YaHei";
+  font-family: 'Microsoft YaHei';
   overflow-y: hidden;
 }
+/* 强制去掉滚动条 */
+html {
+  /* overflow-x: hidden !important; */   
+}
 * {
   -webkit-user-select: none;
   -moz-user-select: none;
@@ -29,12 +33,12 @@ a {
 [v-cloak] {
   display: none;
 }
-.appbg1{
-  background: url("../img/page-bg3.png") center center no-repeat;
+.appbg1 {
+  background: url('../img/page-bg3.png') center center no-repeat;
   background-size: 100% 100%;
 }
-.appbg2{
-  background: url("../img/page-bg.png") center center no-repeat;
+.appbg2 {
+  background: url('../img/page-bg.png') center center no-repeat;
   background-size: 100% 100%;
 }
 .top {
@@ -54,26 +58,26 @@ a {
   letter-spacing: 5px;
 }
 .top .title > span:before {
-  content: "";
+  content: '';
   display: inline-block;
   width: 66px; /*图标宽度*/
   height: 42px; /*图标高度*/
-  background: url("../img/title-left.png") no-repeat center center; /*图标路径*/
+  background: url('../img/title-left.png') no-repeat center center; /*图标路径*/
   background-size: contain; /*图标大小适应*/
   margin-right: 20px; /*图标与文字的间距*/
 }
 .top .title > div {
   height: 30px;
   width: 40%;
-  background: url("../img/title-light.png") center bottom no-repeat;
+  background: url('../img/title-light.png') center bottom no-repeat;
   background-size: 100% 100%;
 }
 .top .title > span:after {
-  content: "";
+  content: '';
   display: inline-block;
   width: 66px; /*图标宽度*/
   height: 42px; /*图标高度*/
-  background: url("../img/title-right.png") no-repeat center center; /*图标路径*/
+  background: url('../img/title-right.png') no-repeat center center; /*图标路径*/
   background-size: contain; /*图标大小适应*/
   margin-left: 20px; /*图标与文字的间距*/
 }
@@ -99,7 +103,7 @@ a {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   grid-template-rows: repeat(3, 1fr);
-  gap: 10px;
+  grid-column-gap: 10px;
   height: 100%;
   width: 100%;
   overflow: hidden;
@@ -115,9 +119,9 @@ a {
 .center .title {
   width: 100%;
   /* height: calc(100% / 7); */
-  height: 100px;
+  height: 80px;
   overflow: hidden;
-  background: url("../img/small-title.png") no-repeat center bottom; /*图标路径*/
+  background: url('../img/small-title.png') no-repeat center bottom; /*图标路径*/
   background-size: 100% 50%;
   display: flex;
   align-items: center;
@@ -128,16 +132,16 @@ a {
   letter-spacing: 5px;
 }
 .left .child > div:nth-child(1):before {
-  content: "●";
+  content: '●';
   margin-right: 10px;
   color: #40a9ff;
 }
 .left .content,
 .center .content {
   width: 100%;
-  height: calc(100% - 100px);
+  height: calc(100% - 80px);
   overflow: hidden;
-  padding: 1%;
+  padding: 1% 1% 0 1%; 
 }
 .left1 {
   display: grid;
@@ -151,7 +155,7 @@ a {
 .left1 .child {
   width: 47%;
   height: 100%;
-  background: url("../img/left1.png") no-repeat center center; /*图标路径*/
+  background: url('../img/left1.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
   display: grid;
   grid-template-columns: repeat(2, 1fr);
@@ -163,6 +167,7 @@ a {
   display: grid;
   grid-template-columns: 4fr 6fr;
   overflow: hidden;
+  position: relative;
 }
 .left1B > div:nth-child(1) {
   overflow: hidden;
@@ -174,17 +179,18 @@ a {
   display: grid;
   grid-template-rows: 1fr 2fr 2fr;
   overflow: hidden;
+  padding-top: 30px;
 }
 .left1C-child {
   padding: 1%;
 }
 .checkBg {
-  background: url("../img/disk.png") no-repeat center center; /*图标路径*/
+  background: url('../img/disk.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .left .industryProportion1,
 .left2 .industryProportion1 {
-  background: url("../img/industryProportion.png") no-repeat center center; /*图标路径*/
+  background: url('../img/industryProportion.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .left .industryProportion2 {
@@ -210,15 +216,15 @@ a {
   gap: 30px;
 }
 .left3A > div:nth-child(1) {
-  background: url("../img/retainedA.png") no-repeat center center; /*图标路径*/
+  background: url('../img/retainedA.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .left3A > div:nth-child(2) {
-  background: url("../img/retainedB.png") no-repeat center center; /*图标路径*/
+  background: url('../img/retainedB.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .left3A > div:nth-child(3) {
-  background: url("../img/retainedC.png") no-repeat center center; /*图标路径*/
+  background: url('../img/retainedC.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .left4 {
@@ -235,7 +241,7 @@ a {
   overflow: hidden;
   position: absolute;
 }
-.left4A > div,
+.left4A > div:not(:last-child),
 .bubble {
   position: absolute;
   animation: moveUpDown 4s infinite;
@@ -272,23 +278,23 @@ a {
   overflow: hidden;
 }
 .center1 > div:nth-child(2) {
-  background: url("../img/bubbleBg.png") no-repeat center center; /*图标路径*/
+  background: url('../img/bubbleBg.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .center1 > div:nth-child(3) {
-  background: url("../img/blueBig.png") no-repeat center center; /*图标路径*/
+  background: url('../img/blueBig.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .center1 > div:nth-child(4) {
-  background: url("../img/blueSmall.png") no-repeat center center; /*图标路径*/
+  background: url('../img/blueSmall.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .center1 > div:nth-child(5) {
-  background: url("../img/greenSmall.png") no-repeat center center; /*图标路径*/
+  background: url('../img/greenSmall.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .center1 > div:nth-child(6) {
-  background: url("../img/greenBig.png") no-repeat center center; /*图标路径*/
+  background: url('../img/greenBig.png') no-repeat center center; /*图标路径*/
   background-size: 100% 100%;
 }
 .center2 {
@@ -315,16 +321,16 @@ a {
   padding-left: 40%;
 }
 .center2 > div:nth-child(1) > div:nth-child(1) {
-  background: url("../img/centerTop1.png") no-repeat center left; /*图标路径*/
+  background: url('../img/centerTop1.png') no-repeat center left; /*图标路径*/
 }
 .center2 > div:nth-child(1) > div:nth-child(2) {
-  background: url("../img/centerTop2.png") no-repeat center left; /*图标路径*/
+  background: url('../img/centerTop2.png') no-repeat center left; /*图标路径*/
 }
 .center2 > div:nth-child(1) > div:nth-child(3) {
-  background: url("../img/centerTop3.png") no-repeat center left; /*图标路径*/
+  background: url('../img/centerTop3.png') no-repeat center left; /*图标路径*/
 }
 .center2 > div:nth-child(1) > div:nth-child(4) {
-  background: url("../img/centerTop4.png") no-repeat center left; /*图标路径*/
+  background: url('../img/centerTop4.png') no-repeat center left; /*图标路径*/
 }
 .center3 {
   position: absolute !important;
@@ -346,7 +352,7 @@ a {
   left: 0;
   opacity: 0.4;
 }
-.center4>div>div{
+.center4 > div > div {
   width: 100%;
   height: 100%;
 }
@@ -369,12 +375,12 @@ a {
   font-size: 32px !important;
 }
 .blueIcon::before {
-  content: "●";
+  content: '●';
   margin-right: 10px;
   color: #40a9ff;
 }
 .bottom-tip {
-  background: url("../img/center-bottonm.png") no-repeat center left; /*图标路径*/
+  background: url('../img/center-bottonm.png') no-repeat center left; /*图标路径*/
   background-size: 100% 100%;
   cursor: pointer;
   width: 1600px;
@@ -383,15 +389,15 @@ a {
   bottom: 0;
   left: calc(50% - 800px);
 }
-.bottom-tip:hover{
-  background: url("../img/center-bottonm2.png") no-repeat center left; /*图标路径*/
+.bottom-tip:hover {
+  background: url('../img/center-bottonm2.png') no-repeat center left; /*图标路径*/
   background-size: 100% 100%;
 }
 .svg_box {
   transform: rotateX(78deg);
   position: absolute;
-  top: 19.5%;
-  left: 2.4%;
+  top: -65px;
+  left: 0;
 }
 .left5 {
   display: grid;
@@ -402,35 +408,46 @@ a {
 .header-item {
   font-size: 20px !important;
 }
-.centerB{
-  background: url("../img/chinaLight.png") no-repeat center center; /*图标路径*/
+.centerB {
+  background: url('../img/chinaLight.png') no-repeat center center; /*图标路径*/
   background-size: 95% 90%;
 }
-.chinaTop{
+.chinaTop {
   width: 100%;
   height: 8.5%;
   position: absolute;
   top: 3%;
   z-index: 999;
   display: grid;
-  grid-template-columns: repeat(4,1fr);
+  grid-template-columns: repeat(4, 1fr);
 }
-.chinaTop>div:nth-child(1){
-  background: url("../img/centerTop1.png") no-repeat center left; /*图标路径*/
+.chinaTop > div:nth-child(1) {
+  background: url('../img/centerTop1.png') no-repeat center left; /*图标路径*/
   background-size: 100% 100%;
 }
-.chinaTop>div:nth-child(2){
-  background: url("../img/centerTop2.png") no-repeat center left; /*图标路径*/
+.chinaTop > div:nth-child(2) {
+  background: url('../img/centerTop2.png') no-repeat center left; /*图标路径*/
   background-size: 100% 100%;
 }
-.chinaTop>div:nth-child(3){
-  background: url("../img/centerTop3.png") no-repeat center left; /*图标路径*/
+.chinaTop > div:nth-child(3) {
+  background: url('../img/centerTop3.png') no-repeat center left; /*图标路径*/
   background-size: 100% 100%;
 }
-.chinaTop>div:nth-child(4){
-  background: url("../img/centerTop4.png") no-repeat center left; /*图标路径*/
+.chinaTop > div:nth-child(4) {
+  background: url('../img/centerTop4.png') no-repeat center left; /*图标路径*/
   background-size: 100% 100%;
 }
+.projectPop {
+  background: rgba(50, 50, 50, 0.7);
+  padding: 10px;
+  font-size: 28px;
+  transition: all 0.3s;
+}
+.twoPop {
+  width: 100%;
+  height: 100%;
+  background-color: rgba(50, 50, 50, 0.7);
+}
 /* 公共css */
 /* 宽高纵横比 */
 .font28 {
@@ -620,7 +637,7 @@ i {
   overflow: auto;
 }
 .overflow-hidden {
-  overflow: hidden;
+  overflow: hidden !important;
 }
 .overflow-scroll {
   overflow: scroll;
@@ -987,9 +1004,9 @@ i {
 
 .publicTitle {
   width: 100%;
-  height: 100px;
+  height: 80px;
   overflow: hidden;
-  background: url("../img/small-title.png") no-repeat center bottom; /*图标路径*/
+  background: url('../img/small-title.png') no-repeat center bottom; /*图标路径*/
   background-size: 100% 50%;
   display: flex;
   align-items: center;
@@ -1033,7 +1050,7 @@ i {
 }
 
 .itemTop p::after {
-  content: "";
+  content: '';
   width: 0.75rem;
   height: 0.75rem;
   background: linear-gradient(0deg, #014198, #93ceff);
@@ -1222,7 +1239,7 @@ i {
 }
 
 .investInfoWrap .investInfo::after {
-  content: "";
+  content: '';
   width: 20px;
   height: 20px;
   border: 4px solid #68bdff;