Bläddra i källkod

Merge branch 'onemap_zmg' of http://47.103.92.60:3003/skyversation/qp_onemap_ui into MicroFunction

# Conflicts:
#	src/components/AppVue/numberScroll.vue
DESKTOP-6LTVLN7\Liumouren 21 timmar sedan
förälder
incheckning
5190236dc7

+ 8 - 4
public/static/config/config.js

@@ -210,15 +210,19 @@ let systemConfig = {
                     index:"1-4",
                     tags: ["盈浦街道、夏阳街道"],
                     title: "二维GIS引擎",
-                    text: "几何计算是对青浦区三维数字底板中的面要素(支持单个或多个)进行几何形态运算的功能,核心输出 “并集、交集、差集” 三类新的面要素,运算过程严格遵循矢量几何运算规则,确保新要素的拓扑一致性(如无重叠、无悬挂节点),可用于要素合并、重叠提取、范围裁剪等场景。",
-                    picture: "./static/images/example/1-2.png",
+                    text:"工程师们正在建设中……",
+                    // text: "几何计算是对青浦区三维数字底板中的面要素(支持单个或多个)进行几何形态运算的功能,核心输出 “并集、交集、差集” 三类新的面要素,运算过程严格遵循矢量几何运算规则,确保新要素的拓扑一致性(如无重叠、无悬挂节点),可用于要素合并、重叠提取、范围裁剪等场景。",
+                    // picture: "./static/images/example/1-2.png",
+                    picture: "./static/images/example/item-white.png",
                     url:""
                 }, {
                     index:"1-5",
                     tags: ["盈浦街道、夏阳街道"],
                     title: "数字孪生引擎",
-                    text: "空间量算是基于青浦区三维数字底板的基础数据源(如矢量数据、DEM 高程数据),计算空间要素几何参数的功能,核心输出 “距离、面积、高程” 三类关键指标,精度适配数字底板的坐标系统(SH2000 投影坐标系)与数据分辨率(如 DEM 数据精度为 5 米 ×5 米),可满足规划设计、工程施工、资源统计等场景的量算需求。",
-                    picture: "./static/images/example/1-2.png",
+                    text:"工程师们正在建设中……",
+                    // text: "空间量算是基于青浦区三维数字底板的基础数据源(如矢量数据、DEM 高程数据),计算空间要素几何参数的功能,核心输出 “距离、面积、高程” 三类关键指标,精度适配数字底板的坐标系统(SH2000 投影坐标系)与数据分辨率(如 DEM 数据精度为 5 米 ×5 米),可满足规划设计、工程施工、资源统计等场景的量算需求。",
+                    // picture: "./static/images/example/1-2.png",
+                    picture: "./static/images/example/item-white.png",
                     url:""
                 }
             ]

BIN
public/static/font/DIN-Bold/din-bold-2.ttf


BIN
public/static/images/example/item-black.png


BIN
public/static/images/example/item-white.png


BIN
public/static/images/example/item.webp


+ 2 - 3
src/components/AppVue/numberScroll.vue

@@ -19,9 +19,8 @@ function animate(start, end) {
   const frame = (currentTime) => {
     const elapsed = currentTime - startTime;
     const progress = Math.min(elapsed / props.duration, 1);
-    displayValue.value = Math.floor(
-      start * 1 + (end * 1 - start * 1) * props.easing(progress)
-    );
+    displayValue.value = Math.floor(start + (end - start) * props.easing(progress));
+    displayValue.value = displayValue.value.toLocaleString();
     if (progress < 1) {
       requestAnimationFrame(frame);
     }

+ 1 - 1
src/store/index.js

@@ -16,7 +16,7 @@ export default createStore({
       { id: 1, path: "/", label: "首页" },
       { id: 2, path: "/skmh", label: "时空门户" },
       { id: 3, path: "/yygl", label: "应用中心" },
-      { id: 4, path: "/sksjgl", label: "数据管理中心" },
+      // { id: 4, path: "/sksjgl", label: "数据管理中心" },
       { id: 5, path: "/wgn", label: "微功能中心" },
       // { id:6,path: "/skmh/scene", label: "二维GIS引擎"},
       { id: 7, path: "/yxgl", label: "运行管理" },

+ 17 - 13
src/views/HomePage.vue

@@ -172,10 +172,10 @@
       <div class="row">
         <div class="lighter-container" style="flex: 3;">
           <div class="third-title ">
-            <el-icon color="#0071e3" size="30px">
+            <!-- <el-icon color="#0071e3" size="30px">
               <List></List>
-            </el-icon>
-            <div>热点资源top10</div>
+            </el-icon> -->
+            <div>热点资源 Top10</div>
           </div>
           <div class="row">
             <div class="top-list" style="flex-grow: 1;">
@@ -189,7 +189,8 @@
                 </template>
               </div>
             </div>
-            <div class="top-list" style="flex-grow: 1;">
+            <div style="flex-grow: 0.2;"> </div>
+            <div class="top-list" style="flex-grow: 0.5;">
               <div v-for="index in 5" :key="index" class="list-item">
                 <template v-if="resourceTop[index + 4] != null">
                   <el-avatar size="small" class="circle-number blue">
@@ -206,10 +207,10 @@
 
         <div class="lighter-container" style="flex: 2;">
           <div class="third-title ">
-            <el-icon color="#0071e3" size="30px">
+            <!-- <el-icon color="#0071e3" size="30px">
               <School />
-            </el-icon>
-            <div>委办调用top5</div>
+            </el-icon> -->
+            <div>委办调用 Top5</div>
           </div>
           <div class="top-list">
             <div v-for="index in 5" :key="index" class="list-item">
@@ -1494,7 +1495,7 @@ export default {
 .between-row {
   display: flex !important;
   justify-content: space-around;
-  padding: 0;
+  padding: 0px;
   align-items: stretch;
 }
 
@@ -1581,6 +1582,7 @@ export default {
   align-items: center;
   display: flex;
   font-weight: bold;
+  padding-bottom: 10px;
   i{
     margin-right: 5px;
   }
@@ -1594,9 +1596,9 @@ export default {
 .top-list .list-item {
   display: flex;
   justify-content: space-between;
-  margin: 15px;
-  margin-left: 30px;
-  margin-right: 30px;
+  margin: 10px 0px;
+  // margin-left: 30px;
+  // margin-right: 30px;
 }
 
 .usecase-tabs {
@@ -1659,7 +1661,7 @@ export default {
   // display: block;
   margin-right: 10px;
   background-color: #eeeeee00;
-  border: 1px solid #2272d4;  
+  // border: 1px solid #2272d4;  
 }
 
 .block-page-router {
@@ -1678,7 +1680,9 @@ export default {
 
 
 .blue {
-  color: #3498db;
+  // color: #3498db;
+  color: #1586FF;
+  font-weight: bold;
 }
 .white{
   color: #fff;

+ 7 - 6
src/views/Sksjgl.vue

@@ -227,7 +227,7 @@ export default {
       &_title {
         font-size: 64px;
         font-weight: bold;
-        letter-spacing: 0.5rem;
+        // letter-spacing: 0.5rem;
       }
 
       &_content {
@@ -269,7 +269,7 @@ export default {
           line-height: 50px;
           font-size: 24px;
           text-align: center;
-          letter-spacing: 5px;
+          // letter-spacing: 5px;
         }
 
         &.active {
@@ -477,7 +477,7 @@ export default {
   background-size: cover;
   display: flex;
   justify-content: right;
-  align-items: center;
+  align-items: start;
   position: relative;
   overflow: hidden;
 
@@ -489,12 +489,13 @@ export default {
     padding: 0 10%;
     justify-content: right;
     display: grid;
+    padding-top: 100px;
   }
 
   .banner-title {
     font-size: 56px;
     font-weight: bold;
-    letter-spacing: 0.5rem;
+    // letter-spacing: 0.5rem;
     // margin-bottom: 20px;
     color: #ffffff;
     text-align: right;
@@ -503,8 +504,8 @@ export default {
 
   .banner-description {
     font-size: 16px;
-    line-height: 1.8;
-    margin: 40px 0px;
+    // line-height: 1.8;
+    margin: 20px 0px;
     text-align: left;
     color: rgba(255, 255, 255, 0.9);
   }

+ 8 - 7
src/views/Wgn.vue

@@ -795,7 +795,7 @@ export default {
   &_title {
     font-size: 64px;
     font-weight: bold;
-    letter-spacing: 0.5rem;
+    // letter-spacing: 0.5rem;
   }
   &_content {
     margin-top: 77px;
@@ -804,7 +804,7 @@ export default {
   &_btu {
     margin-top: 77px;
     font-size: 22px;
-    letter-spacing: 0.2rem;
+    // letter-spacing: 0.2rem;
     color: #4095e5;
   }
 }
@@ -892,7 +892,7 @@ export default {
           &_item {
             margin-top: 35px;
             font-size: 20px;
-            letter-spacing: 0.2rem;
+            // letter-spacing: 0.2rem;
             color: #4095e5;
             border: 1px solid #4095e5;
             border-radius: 10px;
@@ -925,7 +925,7 @@ export default {
   background-size: cover;
   display: flex;
   justify-content: right;
-  align-items: center;
+  align-items: start;
   position: relative;
   overflow: hidden;
 
@@ -937,12 +937,13 @@ export default {
     padding: 0 10%;
     justify-content: right;
     display: grid;
+    padding-top: 100px;
   }
 
   .banner-title {
     font-size: 56px;
     font-weight: bold;
-    letter-spacing: 0.5rem;
+    // letter-spacing: 0.5rem;
     // margin-bottom: 20px;
     color: #ffffff;
     text-align: right;
@@ -951,8 +952,8 @@ export default {
 
   .banner-description {
     font-size: 16px;
-    line-height: 1.8;
-    margin: 40px 0px;
+    // line-height: 1.8;
+    margin: 20px 0px;
     text-align: left;
     color: rgba(255, 255, 255, 0.9);
   }

+ 25 - 14
src/views/rwgl/Index.vue

@@ -1,21 +1,21 @@
 <template>
   <el-affix :offset="0">
-    <div style="height: 44px;width: 100vw;background: #08224a;"></div>
+    <div style="height: 44px; width: 100vw; background: #08224a"></div>
   </el-affix>
   <el-affix :offset="44">
-  <div class="blue-background">
-    <div class="lighter-container">
-      <div class="left-row">
-        <div>
-          <span>状态:</span>
-          <el-tag size="large" :effect="focusTaskStatus.includes('all') ? 'dark' : ''" type="primary"
-            @click="changeTaskStatus()" style="cursor: pointer;margin: 10px 5px;">
-            全部
-          </el-tag>
-          <template v-for="status in taskStatus" :key="status.index">
-            <el-tag size="large" :effect="focusTaskStatus.includes(status.index) ? 'dark' : ''" type="primary"
-              @click="changeTaskStatus(status)" style="cursor: pointer;margin: 10px 5px;">
-              {{ status.name }}
+    <div class="blue-background">
+      <div class="lighter-container">
+        <div class="left-row">
+          <div>
+            <span>状态:</span>
+            <el-tag
+              size="large"
+              :effect="focusTaskStatus.includes('all') ? 'dark' : ''"
+              type="primary"
+              @click="changeTaskStatus()"
+              style="cursor: pointer; margin: 10px 5px"
+            >
+              全部
             </el-tag>
             <template v-for="status in taskStatus" :key="status.index">
               <el-tag
@@ -27,6 +27,17 @@
               >
                 {{ status.name }}
               </el-tag>
+              <template v-for="status in taskStatus" :key="status.index">
+                <el-tag
+                  size="large"
+                  :effect="focusTaskStatus.includes(status.index) ? 'dark' : ''"
+                  type="primary"
+                  @click="changeTaskStatus(status)"
+                  style="cursor: pointer; margin: 10px 5px"
+                >
+                  {{ status.name }}
+                </el-tag>
+              </template>
             </template>
           </div>
           <div>

+ 36 - 10
src/views/skmh/index.vue

@@ -32,7 +32,7 @@
     <div class="server_list_box">
       <div class="server_list_box_table">
         <div
-          v-for="item in dataList[0].data"
+          v-for="(item, index) in dataList[0].data"
           :key="item.index"
           class="server_list_box_table_item"
           :id="item.index + 'list'"
@@ -41,12 +41,17 @@
             <div class="server_list_box_table_item_content_title">{{ item.title }}</div>
             <div class="server_list_box_table_item_content_text">{{ item.text }}</div>
             <div class="server_list_box_table_item_content_button_box">
-              <div
+              <div v-if="index < 3"
                 class="server_list_box_table_item_content_button_box_item"
                 @click.stop="handleOpenPage(item)"
               >
                 在线演示
               </div>
+              <div v-else
+                class="server_list_box_table_item_content_button_box_expect"
+              >
+                敬请期待
+              </div>
             </div>
           </div>
           <div class="server_list_box_table_item_image">
@@ -919,7 +924,7 @@ export default {
   background-size: cover;
   display: flex;
   justify-content: right;
-  align-items: center;
+  align-items: start;
   position: relative;
   overflow: hidden;
 
@@ -931,12 +936,13 @@ export default {
     padding: 0 10%;
     justify-content: right;
     display: grid;
+    padding-top: 100px;
   }
 
   .banner-title {
     font-size: 56px;
     font-weight: bold;
-    letter-spacing: 0.5rem;
+    // letter-spacing: 0.5rem;
     // margin-bottom: 20px;
     color: #ffffff;
     text-align: right;
@@ -945,8 +951,8 @@ export default {
 
   .banner-description {
     font-size: 16px;
-    line-height: 1.8;
-    margin: 40px 0px;
+    // line-height: 1.8; 
+    margin: 20px 0px;
     text-align: left;
     color: rgba(255, 255, 255, 0.9);
   }
@@ -1003,7 +1009,7 @@ export default {
   &_title {
     font-size: 64px;
     font-weight: bold;
-    letter-spacing: 0.5rem;
+    // letter-spacing: 0.5rem;
   }
   &_content {
     margin-top: 77px;
@@ -1445,6 +1451,8 @@ export default {
         &_text {
           margin-top: 35px;
           font-size: 18px;
+          text-align: left;
+          width: 100%;
         }
         &_button_box {
           display: flex;
@@ -1454,19 +1462,37 @@ export default {
           &_item {
             margin-top: 35px;
             font-size: 20px;
-            letter-spacing: 0.2rem;
+            // letter-spacing: 0.2rem;
             // color: #4095e5;
             // border: 1px solid #4095e5;
-            background-color: #4095e5;
+            background: linear-gradient(97.31deg, #1586FF 12.71%, #0E5AF4 91.55%);
             color: #fff;
             border-radius: 10px;
             padding: 10px 36px;
             cursor: pointer;
             &:hover {
-              background-color: #077ae6;
+              // background-color: #077ae6;
+               background: linear-gradient(97.31deg, #067cfa 12.71%, #0047d4 91.55%);
               color: #fff;
             }
           }
+          &_expect {
+            margin-top: 35px;
+            font-size: 20px;
+            // letter-spacing: 0.2rem;
+            // color: #4095e5;
+            // border: 1px solid #4095e5;
+            background: linear-gradient(97.31deg, #2f2f30 12.71%, #202020 91.55%);
+            color: #ccc;
+            border-radius: 10px;
+            padding: 10px 36px;
+            cursor: pointer;
+            &:hover {
+              // background-color: #077ae6;
+               background: linear-gradient(97.31deg, #424242 12.71%, #212122 91.55%);
+              color: #ccc;
+            }
+          }
         }
       }
       &_image {

+ 19 - 17
src/views/wgn/sksj/index.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="container">
-        <div style="position: absolute;top: 20px;left: 20px;z-index: 9;">
+        <div style="position: absolute;top: 60px;left: 20px;z-index: 9;">
             <div style="display: flex;">
                 <el-select
                 v-model="typeValue"
@@ -394,35 +394,36 @@ export default {
             // inputAddress:'',
             
             if(that.typeValue == 1){
-                // let curUrl = that.inputAddress;
-                let curUrl = 'http://121.43.55.7:8889/geoserver/kdyjs/wms';
-                that.inputAddress = curUrl;
+                let curUrl = that.inputAddress;
+                // let curUrl = 'http://121.43.55.7:8889/geoserver/kdyjs/wms';
+                // that.inputAddress = curUrl;
                 let param = {url:curUrl,layers:'kdyjs:CourtyardFace'}
                 that.addWMSLayer(param)
 
             }else if(that.typeValue == 2){
+                let curUrl = that.inputAddress;
                 let type = "vec"; //cia  img  vec  cva
-                let curUrl = "https://{s}.tianditu.gov.cn/"+type+"_w/wmts?tk=f74e6c0cc247c42af05f7053e0b5fb9b";
-                that.inputAddress = curUrl;
+                // let curUrl = "https://{s}.tianditu.gov.cn/"+type+"_w/wmts?tk=f74e6c0cc247c42af05f7053e0b5fb9b";
+                // that.inputAddress = curUrl;
                 let param = {url:curUrl,layers:type}
                 that.addWMTSLayer(param)
              
             }else if(that.typeValue == 3){
-                // let curUrl = that.inputAddress;
-                let curUrl = 'https://service-api.onemap.sh.gov.cn/data-service-manage-service/MapProxyApi/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBsaWNhdGlvbl9pZCI6NjEsImFwcGxpY2F0aW9uX25hbWUiOiLpnZLmtabkuozkuInnu7TmnI3liqHns7vnu58iLCJleHAiOjIwNDY2Nzg0MDN9.IKUMdjUX4U1jncIUNren-iotL7duXI90aLECMjpvUX8/shmap_normal_web/MapServer';
-                that.inputAddress = curUrl;
+                let curUrl = that.inputAddress;
+                // let curUrl = 'https://service-api.onemap.sh.gov.cn/data-service-manage-service/MapProxyApi/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBsaWNhdGlvbl9pZCI6NjEsImFwcGxpY2F0aW9uX25hbWUiOiLpnZLmtabkuozkuInnu7TmnI3liqHns7vnu58iLCJleHAiOjIwNDY2Nzg0MDN9.IKUMdjUX4U1jncIUNren-iotL7duXI90aLECMjpvUX8/shmap_normal_web/MapServer';
+                // that.inputAddress = curUrl;
                 let param = {url:curUrl,layers:'arcgisLayer'}
                 that.addARCGISLayer(param)
             }else if(that.typeValue == 4){
-                // let curUrl = that.inputAddress;
-                let curUrl = "http://121.43.55.7:65456/shzx/tileset.json";
-                that.inputAddress = curUrl;
+                let curUrl = that.inputAddress;
+                // let curUrl = "http://121.43.55.7:65456/shzx/tileset.json";
+                // that.inputAddress = curUrl;
                 let param = {url:curUrl}
                 that.add3dtilesData(param);
             }else if(that.typeValue == 5){
-                // let curUrl = that.inputAddress;
-                let curUrl = "https://kdyjs-proxy.metamaker.cn/proxy_map/static/json/%E6%A5%BC%E5%AE%87%E6%95%B0%E6%8D%AE-20250820.geojson";
-                that.inputAddress = curUrl;
+                let curUrl = that.inputAddress;
+                // let curUrl = "https://kdyjs-proxy.metamaker.cn/proxy_map/static/json/%E6%A5%BC%E5%AE%87%E6%95%B0%E6%8D%AE-20250820.geojson";
+                // that.inputAddress = curUrl;
                 let param = {url:curUrl}
                 that.getVectorData(param);
             }else if(that.typeValue == 6){
@@ -445,10 +446,11 @@ export default {
 };
 </script>
 <style lang="less" scoped>
-
 .container {
     width: 100%;
-    height: calc(100vh - 120px);
+    height: 100%;
+    height: 100vh;
+    // height: calc(100vh - 120px);
     padding: 0px;
     margin: 0 auto;
     overflow: hidden;

+ 5 - 4
src/views/yygl/index.vue

@@ -224,7 +224,7 @@ export default {
   background-size: cover;
   display: flex;
   justify-content: right;
-  align-items: center;
+  align-items: start;
   position: relative;
   overflow: hidden;
 
@@ -247,12 +247,13 @@ export default {
     padding: 0 10%;
     justify-content: right;
     display: grid;
+    padding-top: 100px;
   }
 
   .banner-title {
     font-size: 56px;
     font-weight: bold;
-    letter-spacing: 0.5rem;
+    // letter-spacing: 0.5rem;
     // margin-bottom: 20px;
     color: #ffffff;
     text-align: right;
@@ -261,8 +262,8 @@ export default {
 
   .banner-description {
     font-size: 16px;
-    line-height: 1.8;
-    margin: 40px 0px;
+    // line-height: 1.8;
+    margin: 20px 0px; 
     text-align: left;
     color: rgba(255, 255, 255, 0.9);
   }