JXDS18FUJT hace 8 meses
padre
commit
bdffa55ae2
Se han modificado 6 ficheros con 231 adiciones y 166 borrados
  1. 16 38
      package-lock.json
  2. 1 1
      package.json
  3. BIN
      src/assets/img/about/wenli1.jpg
  4. 0 0
      src/assets/json/辽宁省v3_full.json
  5. 3 1
      src/main.ts
  6. 211 126
      src/views/about1/index.vue

+ 16 - 38
package-lock.json

@@ -9,7 +9,7 @@
       "version": "0.1.0",
       "dependencies": {
         "@fullhuman/postcss-purgecss": "^3.0.0",
-        "ant-design-vue": "^4.0.0-beta.2",
+        "ant-design-vue": "^3.2.0",
         "axios": "^1.4.0",
         "buzz": "^1.2.1",
         "core-js": "^3.8.3",
@@ -96,18 +96,21 @@
     },
     "node_modules/@ant-design/colors": {
       "version": "6.0.0",
-      "license": "MIT",
+      "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz",
+      "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==",
       "dependencies": {
         "@ctrl/tinycolor": "^3.4.0"
       }
     },
     "node_modules/@ant-design/icons-svg": {
-      "version": "4.3.1",
-      "license": "MIT"
+      "version": "4.4.2",
+      "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
+      "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA=="
     },
     "node_modules/@ant-design/icons-vue": {
-      "version": "7.0.1",
-      "license": "MIT",
+      "version": "6.1.0",
+      "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz",
+      "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==",
       "dependencies": {
         "@ant-design/colors": "^6.0.0",
         "@ant-design/icons-svg": "^4.2.1"
@@ -1793,7 +1796,8 @@
     },
     "node_modules/@ctrl/tinycolor": {
       "version": "3.6.1",
-      "license": "MIT",
+      "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
+      "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
       "engines": {
         "node": ">=10"
       }
@@ -1806,14 +1810,6 @@
         "node": ">=10.0.0"
       }
     },
-    "node_modules/@emotion/hash": {
-      "version": "0.9.1",
-      "license": "MIT"
-    },
-    "node_modules/@emotion/unitless": {
-      "version": "0.8.1",
-      "license": "MIT"
-    },
     "node_modules/@eslint-community/eslint-utils": {
       "version": "4.4.0",
       "dev": true,
@@ -3547,19 +3543,17 @@
       }
     },
     "node_modules/ant-design-vue": {
-      "version": "4.0.8",
-      "license": "MIT",
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-3.2.0.tgz",
+      "integrity": "sha512-qY9f/kF9YqfzV/vJ9/GKj7s1wmpCuNwWVRyQ3qsG8P4Was/u5WTKG5hz9huUY/cNle2nBTDacvMBIOkfxPeUiQ==",
       "dependencies": {
         "@ant-design/colors": "^6.0.0",
-        "@ant-design/icons-vue": "^7.0.0",
+        "@ant-design/icons-vue": "^6.1.0",
         "@babel/runtime": "^7.10.5",
-        "@ctrl/tinycolor": "^3.5.0",
-        "@emotion/hash": "^0.9.0",
-        "@emotion/unitless": "^0.8.0",
+        "@ctrl/tinycolor": "^3.4.0",
         "@simonwep/pickr": "~1.8.0",
         "array-tree-filter": "^2.1.0",
         "async-validator": "^4.0.0",
-        "csstype": "^3.1.1",
         "dayjs": "^1.10.5",
         "dom-align": "^1.12.1",
         "dom-scroll-into-view": "^2.0.0",
@@ -3568,14 +3562,9 @@
         "resize-observer-polyfill": "^1.5.1",
         "scroll-into-view-if-needed": "^2.2.25",
         "shallow-equal": "^1.0.0",
-        "stylis": "^4.1.3",
-        "throttle-debounce": "^5.0.0",
         "vue-types": "^3.0.0",
         "warning": "^4.0.0"
       },
-      "engines": {
-        "node": ">=12.22.0"
-      },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/ant-design-vue"
@@ -10683,10 +10672,6 @@
         "postcss": "^8.2.15"
       }
     },
-    "node_modules/stylis": {
-      "version": "4.3.0",
-      "license": "MIT"
-    },
     "node_modules/sucrase": {
       "version": "3.34.0",
       "dev": true,
@@ -11016,13 +11001,6 @@
         "url": "https://opencollective.com/webpack"
       }
     },
-    "node_modules/throttle-debounce": {
-      "version": "5.0.0",
-      "license": "MIT",
-      "engines": {
-        "node": ">=12.22"
-      }
-    },
     "node_modules/thunky": {
       "version": "1.1.0",
       "dev": true,

+ 1 - 1
package.json

@@ -10,7 +10,7 @@
   },
   "dependencies": {
     "@fullhuman/postcss-purgecss": "^3.0.0",
-    "ant-design-vue": "^4.0.0-beta.2",
+    "ant-design-vue": "^3.2.0",
     "axios": "^1.4.0",
     "buzz": "^1.2.1",
     "core-js": "^3.8.3",

BIN
src/assets/img/about/wenli1.jpg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
src/assets/json/辽宁省v3_full.json


+ 3 - 1
src/main.ts

@@ -2,8 +2,10 @@ import { createApp } from 'vue'
 import App from './App.vue'
 import router from './router'
 import store from './store'
+import 'ant-design-vue/dist/antd.css';
 import './tailwindcss.css'
+import Antd from 'ant-design-vue/es';
 // router.beforeEach(guard=>{
 //     console.log(guard)
 // })
-createApp(App).use(store).use(router).mount('#app')
+createApp(App).use(store).use(router).use(Antd).mount('#app')

+ 211 - 126
src/views/about1/index.vue

@@ -1,159 +1,239 @@
 <template>
-  <div class="map" id="mapEchart" style="width: 100%; height: 100vh"></div>
+  <div class="flex">
+    <div class="left">
+      <a-form
+        :model="form"
+        name="basic"
+        :label-col="{ span: 8 }"
+        :wrapper-col="{ span: 16 }"
+        autocomplete="off"
+      >
+        <a-form-item label="alpha" name="beta">
+          <a-input-number
+          
+            v-model:value="form.geo3D.light.main.alpha"
+            :min="0"
+            :max="360"
+            @change="chartReLoad"
+          />
+        </a-form-item>
+        <a-form-item label="beta" name="beta">
+          <a-input-number
+         
+            v-model:value="form.geo3D.light.main.beta"
+            :min="0"
+            :max="360"
+            @change="chartReLoad"
+          />
+        </a-form-item>
+
+        <a-form-item label="intensity" name="beta">
+          <a-input-number
+      
+            v-model:value="form.geo3D.light.main.intensity"
+            :min="0"
+            :max="360"
+            @change="chartReLoad"
+          />
+        </a-form-item>
+    
+        <a-form-item label="color" name="beta">
+          <a-input
+        
+            v-model:value="form.geo3D.itemStyle.color"
+            type="color"
+            @change="chartReLoad"
+          />
+        </a-form-item>
+
+        <a-form-item label="metalness" name="beta">
+          <a-input-number
+        
+            v-model:value="form.geo3D.realisticMaterial.metalness"
+        
+            @change="chartReLoad"
+          />
+        </a-form-item>
+        <!-- <a-form-item
+          label="Password"
+          name="password"
+          :rules="[{ required: true, message: 'Please input your password!' }]"
+        >
+          <a-input-password v-model:value="form.password" />
+        </a-form-item> -->
+      </a-form>
+    </div>
+    <div class="map" id="mapEchart" style="width: 75%; height: 100vh"></div>
+  </div>
 </template>
 
 <script lang="ts" setup>
 // 引入工具
-import geoJson from "@/assets/json/福州市v2_full.json"; //该文件路径改成自己项目中的文件路径即可
+import geoJson from "@/assets/json/辽宁省v3_full.json"; //该文件路径改成自己项目中的文件路径即可
 import * as echarts from "echarts";
 import "echarts-gl"; //3D地图插件
-import { onMounted } from "vue";
+import { onMounted, reactive, ref } from "vue";
 import img149 from "@/assets/img/about/149.png";
-import wenli from "@/assets/img/about/wenli.jpg"
+import wenli from "@/assets/img/about/wenli.jpg";
 var imageDom = document.createElement("img");
 imageDom.src = img149;
 // 定义echarts方法
-const chartMap = () => {
-  var myChart = echarts.init(document.getElementById("mapEchart"));
-  // 重点:不要遗漏这句代码!!
-  echarts.registerMap("zhejiang", geoJson);
-  // 图表配置项
-  let option = {
-    tooltip: {
+var myChart;
+let option = {
+  tooltip: {
+    show: true,
+  },
+  //热力图配置项
+  visualMap: [
+    // {
+    //   type: "continuous",
+    //   text: ["xxx"],
+    //   calculable: true,
+    //   max: 250,
+    //   inPange: {
+    //     color: ["#87aa66", "#eba438", "#d94d4c"],
+    //   },
+    // },
+  ],
+  //3D地图配置项
+  geo3D: {
+    map: "zhejiang",
+    roam: true,
+    instancing: true,
+    boxWidth: 877,
+    boxHeight: 866,
+    regionHeight: 6,
+    colorMaterial: {},
+    groundPlane: {
       show: true,
+      color: "#ff4400",
+      realisticMaterial:{
+        detailTexture:""
+      }
+    },
+    itemStyle: {
+      color: "rgba(0,225,255,0.65)",
+      opacity: 1,
+      borderWidth: 4,
+      borderColor: "#fff",
+    },
+    viewControl: {
+      autoRotate: false,
+      autoRotateAfterStill: 3,
+      maxDistance: 800,
+      distance: 500,
+      minAlpha: 5, // 上下旋转的最小 alpha 值。即视角能旋转到达最上面的角度。[ default: 5 ]
+      maxAlpha: 90, // 上下旋转的最大 alpha 值。即视角能旋转到达最下面的角度。[ default: 90 ]
+      minBeta: -360, // 左右旋转的最小 beta 值。即视角能旋转到达最左的角度。[ default: -80 ]
+      maxBeta: 360, // 左右旋转的最大 beta 值。即视角能旋转到达最右的角度。[ default: 80 ]
+      animation: true, // 是否开启动画。[ default: true ]
+      animationDurationUpdate: 1000, // 过渡动画的时长。[ default: 1000 ]
+      animationEasingUpdate: "cubicInOut", // 过渡动画的缓动效果。[ default: cubicInOut ]
     },
-    //热力图配置项
-    visualMap: [
-      {
-        type: "continuous",
-        text: ["xxx"],
-        calculable: true,
-        max: 250,
-        inPange: {
-          color: ["#87aa66", "#eba438", "#d94d4c"],
-        },
-      },
-    ],
-    //3D地图配置项
-    geo3D: {
-      map: "zhejiang",
-      roam: true,
-      instancing: true,
-      boxWidth: 877,
-      boxHeight: 866,
-      regionHeight:6,
-      colorMaterial: {
 
-      },
-      groundPlane:{
-        show:false,
-        color:"#333"
+    emphasis: {
+      disabled: true, //是否可以被选中
+      label: {
+        //移入时的高亮文本
+        show: false,
+        color: "#333", //显示字体颜色变淡
+        fontSize: 18, //显示字体变大
       },
       itemStyle: {
-        color: "rgba(0,200,200,1)",
-        opacity: 1,
-        borderWidth: 4,
-        borderColor: "#fff",
-
-      },
-      viewControl: {
-        autoRotate: false,
-        autoRotateAfterStill: 3,
-        maxDistance:800,
-        distance: 120,
-        minAlpha: 5, // 上下旋转的最小 alpha 值。即视角能旋转到达最上面的角度。[ default: 5 ]
-        maxAlpha: 90, // 上下旋转的最大 alpha 值。即视角能旋转到达最下面的角度。[ default: 90 ]
-        minBeta: -360, // 左右旋转的最小 beta 值。即视角能旋转到达最左的角度。[ default: -80 ]
-        maxBeta: 360, // 左右旋转的最大 beta 值。即视角能旋转到达最右的角度。[ default: 80 ]
-        animation: true, // 是否开启动画。[ default: true ]
-        animationDurationUpdate: 1000, // 过渡动画的时长。[ default: 1000 ]
-        animationEasingUpdate: "cubicInOut", // 过渡动画的缓动效果。[ default: cubicInOut ]
+        color: "#fff", //显示移入的区块变粉色
       },
+    },
+    label: {
+      show: false,
+      position: "top",
+      color: "#111", //地图初始化区域字体颜色
+      fontSize: 14,
+      lineHeight: 16,
+    },
+    shading: "realistic",
+    realisticMaterial: {
+      detailTexture: wenli,
+      metalness: 0,
 
-      emphasis: {
-        disabled: true, //是否可以被选中
-        label: {
-          //移入时的高亮文本
-          show: false,
-          color: "#333", //显示字体颜色变淡
-          fontSize: 18, //显示字体变大
-        },
-        itemStyle: {
-          color: "#fff", //显示移入的区块变粉色
-        },
-      },
-      label: {
-        show: false,
-        position: "top",
-        color: "#111", //地图初始化区域字体颜色
-        fontSize: 14,
-        lineHeight: 16,
-      },
-      shading: "realistic",
-      realisticMaterial: {
-        detailTexture: wenli,
-        metalness: 0,
+      metalnessAdjust:0,
+    },
+    lambertMaterial: {
+      detailTexture: wenli,
+      metalness: 0,
 
-        metalnessAdjust:1
-        
+      metalnessAdjust: 0,
+    },
+    light: {
+      //光照阴影
+      main: {
+        // color: "#fff", //光照颜色
+        intensity: 3, //光照强度
+        shadowQuality: "high", //阴影亮度
+        shadow: true, //是否显示阴影
+        //shadowQuality: "medium", //阴影质量 ultra //阴影亮度
+        alpha: 40, //上下
+        beta: 10, //左右
       },
-      light: {
-        //光照阴影
-        main: {
-          // color: "#fff", //光照颜色
-          intensity: 2, //光照强度
-          shadowQuality: 'high', //阴影亮度
-          shadow: true, //是否显示阴影
-          //shadowQuality: "medium", //阴影质量 ultra //阴影亮度
-          alpha: 40,
-          beta: -40,
-         
-        },
-        ambient: {
-          intensity: 0.5,
-        },
+      ambient: {
+        intensity: 0,
       },
+      ambientCubemap:{
+        specularIntensity:0
+      }
     },
-    // series: [
-    //   //3D柱状图配置项
-    //   {
-    //     name: "xxx",
-    //     type: "bar3D",
-    //     show: false,
-    //     coordinateSystem: "geo3D",
-    //     barSize: 3,
-    //     shading: "lambert",
-    //     opacity: 1,
-    //     bevelSize: 0.2,
-    //     label: {
-    //       show: false,
-    //       formatter: "{a}",
-    //     },
-    //     //自定义的data数组 value中数组的含义:[杭州的经度or纬度,要展示的3d柱状图数值大小]
-    //     data: [
-    //       { name: "杭州", value: [120.161693, 30.280059, 643] },
-    //       { name: "温州", value: [120.705869, 28.001095, 98] },
-    //       { name: "湖州", value: [120.094566, 30.899015, 72] },
-    //       { name: "嘉兴", value: [120.762045, 30.750912, 131] },
-    //       { name: "绍兴", value: [120.586673, 30.036519, 116] },
-    //       { name: "丽水", value: [119.929503, 28.472979, 40] },
-    //       { name: "衢州", value: [118.880768, 28.941661, 22] },
-    //       { name: "金华", value: [119.654027, 29.084455, 156] },
-    //       { name: "台州", value: [121.426996, 28.662297, 110] },
-    //       { name: "宁波", value: [121.556686, 29.880177, 163] },
-    //       { name: "舟山", value: [122.214339, 29.991092, 20] },
-    //     ],
-    //   },
-    // ],
-  };
+  },
+  // series: [
+  //   //3D柱状图配置项
+  //   {
+  //     name: "xxx",
+  //     type: "bar3D",
+  //     show: false,
+  //     coordinateSystem: "geo3D",
+  //     barSize: 3,
+  //     shading: "lambert",
+  //     opacity: 1,
+  //     bevelSize: 0.2,
+  //     label: {
+  //       show: false,
+  //       formatter: "{a}",
+  //     },
+  //     //自定义的data数组 value中数组的含义:[杭州的经度or纬度,要展示的3d柱状图数值大小]
+  //     data: [
+  //       { name: "杭州", value: [120.161693, 30.280059, 643] },
+  //       { name: "温州", value: [120.705869, 28.001095, 98] },
+  //       { name: "湖州", value: [120.094566, 30.899015, 72] },
+  //       { name: "嘉兴", value: [120.762045, 30.750912, 131] },
+  //       { name: "绍兴", value: [120.586673, 30.036519, 116] },
+  //       { name: "丽水", value: [119.929503, 28.472979, 40] },
+  //       { name: "衢州", value: [118.880768, 28.941661, 22] },
+  //       { name: "金华", value: [119.654027, 29.084455, 156] },
+  //       { name: "台州", value: [121.426996, 28.662297, 110] },
+  //       { name: "宁波", value: [121.556686, 29.880177, 163] },
+  //       { name: "舟山", value: [122.214339, 29.991092, 20] },
+  //     ],
+  //   },
+  // ],
+};
+const chartMap = () => {
+  // 重点:不要遗漏这句代码!!
+  echarts.registerMap("zhejiang", geoJson);
+  // 图表配置项
+
   myChart.setOption(option);
+
   //让可视化地图跟随浏览器大小缩放
   window.addEventListener("resize", () => {
     myChart.resize();
   });
 };
+const chartReLoad = () => {
+  console.log(option);
+  myChart.setOption(option);
+};
 
+const form = reactive(option);
 onMounted(() => {
+  myChart = echarts.init(document.getElementById("mapEchart"));
   // 挂载echart
   chartMap();
 });
@@ -163,4 +243,9 @@ onMounted(() => {
 .map {
   background-color: #ffffff;
 }
+.left {
+  width: 25%;
+  background-color: lightgreen;
+  height: 100vh;
+}
 </style>

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio