From 19a4741002f4208bf7fc951cbf3219897af5699a Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期四, 26 十月 2023 16:41:22 +0800
Subject: [PATCH] 标绘查询修改

---
 src/components/BarGraph.vue |  143 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 92 insertions(+), 51 deletions(-)

diff --git a/src/components/BarGraph.vue b/src/components/BarGraph.vue
index 72e0d0b..b1d5c64 100644
--- a/src/components/BarGraph.vue
+++ b/src/components/BarGraph.vue
@@ -1,11 +1,6 @@
 <template>
-  <div class="title">
-    {{ layerData.layerName }}
-  </div>
-  <div
-    :id="`myEcharts${chartsId}`"
-    :style="{ width: width, height: height }"
-  ></div>
+  <div class="title">{{ layerData.layerName }}</div>
+  <div id="myEcharts" :style="{ width: width, height: height }"></div>
 </template>
 <script lang="ts" setup>
 import {
@@ -27,7 +22,6 @@
   width: String,
   height: String,
   layerData: Object,
-  chartsId: String,
 });
 let myEcharts = echarts;
 let seriesData = ref([]);
@@ -35,6 +29,8 @@
 let dataLength;
 let data = [];
 let isshow = ref(true);
+let myChart = null;
+let optionData = [];
 watch(
   () => props.layerData,
   (nVal, oVal) => {
@@ -43,26 +39,24 @@
       xAxisData.value.push(e.len);
     });
     data = trans(props.layerData.points);
-    console.log(data);
+    optionData = props.layerData.points;
     seriesData.value = [];
+
     data.forEach((e) => {
       seriesData.value.push({
         data: e,
         type: "line",
         smooth: true,
         symbol: "none", //鍙栨秷鎶樼偣鍦嗗湀
-        itemStyle: {
-          normal: {
-            label: {
-              show: false,
-              position: "top",
-              formatter: "{c}",
-            },
+        label: {
+          label: {
+            show: false,
+            position: "top",
+            formatter: "{c}",
           },
         },
       });
     });
-    console.log(seriesData.value);
 
     nextTick(() => {
       initChart();
@@ -73,31 +67,33 @@
 onMounted(() => {
   // console.log(props.layerData);
   xAxisData.value = [];
-  props.layerData.points.forEach((e, i) => {
-    xAxisData.value.push(e.len);
-  });
-  data = trans(props.layerData.points);
-  seriesData.value = [];
-  data.forEach((e) => {
-    seriesData.value.push({
-      data: e,
-      type: "line",
-      smooth: true,
-      symbol: "none", //鍙栨秷鎶樼偣鍦嗗湀
-      itemStyle: {
-        normal: {
+  if (props.layerData && props.layerData.points) {
+    props.layerData.points.forEach((e, i) => {
+      xAxisData.value.push(e.len);
+    });
+    data = trans(props.layerData.points);
+    optionData = props.layerData.points;
+    seriesData.value = [];
+    data.forEach((e) => {
+      seriesData.value.push({
+        data: e,
+        type: "line",
+        smooth: true,
+
+        label: {
           label: {
             show: false,
             position: "top",
             formatter: "{c}",
           },
         },
-      },
+      });
     });
-  });
-  nextTick(() => {
-    initChart();
-  });
+
+    nextTick(() => {
+      initChart();
+    });
+  }
 });
 
 onUnmounted(() => {
@@ -117,11 +113,18 @@
   return result;
 }
 function initChart() {
-  let chart = myEcharts.init(
-    document.getElementById(`myEcharts${props.chartsId}`),
+  if (myChart) {
+    myChart.clear();
+  }
+  var valXData = [];
+  xAxisData.value.filter((rs) => {
+    valXData.push((parseFloat(rs) / 1000).toFixed(3));
+  });
+  myChart = myEcharts.init(
+    document.getElementById(`myEcharts`),
     "purple-passion"
   );
-  chart.setOption({
+  myChart.setOption({
     // title: {
     //   text: props.layerData.layerName,
     //   left: "center",
@@ -142,18 +145,19 @@
       // data: xAxisData.value,
     },
     xAxis: {
-      name: "绫筹紙m锛�",
+      name: "鍗冪背",
       type: "category",
-      data: xAxisData.value,
-      show: false, // 涓嶆樉绀哄潗鏍囪酱绾裤�佸潗鏍囪酱鍒诲害绾垮拰鍧愭爣杞翠笂鐨勬枃瀛�
+      data: valXData,
+      show: true, // 涓嶆樉绀哄潗鏍囪酱绾裤�佸潗鏍囪酱鍒诲害绾垮拰鍧愭爣杞翠笂鐨勬枃瀛�
       axisTick: {
-        show: false, // 涓嶆樉绀哄潗鏍囪酱鍒诲害绾�
+        show: true, // 涓嶆樉绀哄潗鏍囪酱鍒诲害绾�
       },
+
       axisLine: {
-        show: false, // 涓嶆樉绀哄潗鏍囪酱绾�
+        show: true, // 涓嶆樉绀哄潗鏍囪酱绾�
       },
       axisLabel: {
-        show: false, // 涓嶆樉绀哄潗鏍囪酱涓婄殑鏂囧瓧
+        show: true, // 涓嶆樉绀哄潗鏍囪酱涓婄殑鏂囧瓧
         showMinLabel: true, // 寮哄埗鏄剧ず鏈�灏忓�兼爣绛�
         showMaxLabel: true, // 寮哄埗鏄剧ず鏈�澶у�兼爣绛�
       },
@@ -169,28 +173,65 @@
           backgroundColor: "#6a7985",
         },
       },
-      formatter: "鏁板�硷細{c} <br> 璺濈锛歿b}m", //{a}锛堢郴鍒楀悕绉帮級锛寋b}锛堟暟鎹」鍚嶇О锛夛紝{c}锛堟暟鍊硷級, {d}锛堢櫨鍒嗘瘮锛�
+
+      // formatter: "鏁板�硷細{c} <br> 璺濈锛歿b}m", //{a}锛堢郴鍒楀悕绉帮級锛寋b}锛堟暟鎹」鍚嶇О锛夛紝{c}锛堟暟鍊硷級, {d}锛堢櫨鍒嗘瘮锛�
+      formatter: (result) => {
+        var val = result[0];
+        if (optionData) {
+          for (var i in optionData) {
+            var res = optionData[i];
+            if (
+              optionData[val.dataIndex].len == res.len &&
+              res.vals[0] == val.data
+            ) {
+              return (
+                "鏁板�硷細 " +
+                res.vals[0] +
+                " <br> 璺濈锛�" +
+                (res.len / 1000).toFixed(3) +
+                "KM<br> 缁忓害锛�" +
+                res.x.toFixed(6) +
+                "<br> 绾害锛�" +
+                res.y.toFixed(6)
+              );
+              break;
+            }
+          }
+          return "鏁板�硷細 " + val.data + " <br> 璺濈锛�" + val.dataIndex + "Km";
+        } else {
+          return "鏁板�硷細 " + val.data + " <br> 璺濈锛�" + val.dataIndex + "m";
+        }
+      },
     },
+
+    grid: {
+      left: "5%", // 缁勪欢绂诲鍣ㄥ乏渚х殑璺濈,鐧惧垎姣斿瓧绗︿覆鎴栨暣鍨嬫暟瀛�
+
+      right: "23%",
+
+      containLabel: true, //grid 鍖哄煙鏄惁鍖呭惈鍧愭爣杞寸殑鍒诲害鏍囩锛�
+    },
+
     yAxis: {
       type: "value",
-      show: false, // 涓嶆樉绀哄潗鏍囪酱绾裤�佸潗鏍囪酱鍒诲害绾垮拰鍧愭爣杞翠笂鐨勬枃瀛�
+      show: true, // 涓嶆樉绀哄潗鏍囪酱绾裤�佸潗鏍囪酱鍒诲害绾垮拰鍧愭爣杞翠笂鐨勬枃瀛�
       axisTick: {
-        show: false, // 涓嶆樉绀哄潗鏍囪酱鍒诲害绾�
+        show: true, // 涓嶆樉绀哄潗鏍囪酱鍒诲害绾�
       },
       axisLine: {
-        show: false, // 涓嶆樉绀哄潗鏍囪酱绾�
+        show: true, // 涓嶆樉绀哄潗鏍囪酱绾�
       },
       axisLabel: {
-        show: false, // 涓嶆樉绀哄潗鏍囪酱涓婄殑鏂囧瓧
+        show: true, // 涓嶆樉绀哄潗鏍囪酱涓婄殑鏂囧瓧
       },
       splitLine: {
-        show: false, // 涓嶆樉绀虹綉鏍肩嚎
+        show: true, // 涓嶆樉绀虹綉鏍肩嚎
       },
     },
     series: seriesData.value,
   });
   window.onresize = function () {
-    chart.resize();
+    myChart.resize();
   };
 }
 </script>

--
Gitblit v1.9.3