Explorar o código

Merge branch 'fix'

Karsa %!s(int64=2) %!d(string=hai) anos
pai
achega
28709002ef
Modificáronse 1 ficheiros con 21 adicións e 6 borrados
  1. 21 6
      src/views/chartShow/index.vue

+ 21 - 6
src/views/chartShow/index.vue

@@ -176,12 +176,15 @@ export default defineComponent({
         let sameSideIndex = chartData.findIndex(
           (i:IDataProps) => i.IsAxis === item.IsAxis
         );
+        //轴数值的最大长度 用于计算单位标题相对与轴的偏移计算 没啥卵用需求如此 只为了显示美观 无逻辑用处
+        let MaxlabelLen = getLabelMaxLen(item.DataList) + item.Unit.length
+
         //y轴
         let yItem = {
           ...basicYAxis,
           labels: {
             formatter: function (ctx: any) {
-              let val = Math.abs(ctx.value) < 1000 ? ctx.value :  ctx.value / 1000 + 'k';
+              let val = ctx.value;
               return sameSideIndex !== index ? '' : val;
             },
             align: 'center',
@@ -196,7 +199,8 @@ export default defineComponent({
             align: 'high',
             rotation: 0,
             y: -15,
-            offset: 0
+            textAlign: item.IsAxis===1 ? 'left' : 'right',
+            reserveSpace: false
           },
           opposite: [0,2].includes(item.IsAxis),
           reversed: item.IsOrder,
@@ -295,6 +299,13 @@ export default defineComponent({
       return [left_edbs,right_edbs,right_two_edbs].flat(Infinity);
     }
 
+    const getLabelMaxLen = (data : any[]) => {
+      let value_arr = data.map(_ => String(Math.abs(_.Value)));
+      let max_len_value = value_arr.reduce((a,b)=> (a.length > b.length ? a : b))
+      let num =  Number(max_len_value) > 1 ?  String(Math.floor(Number(max_len_value))) : max_len_value
+      return num.length
+    }
+
     /* 堆叠图/组合图设置  
     本来和曲线图逻辑基本一致兼容下即可 为了以后便于维护和阅读还是拆开写吧
      */
@@ -335,12 +346,15 @@ export default defineComponent({
         item.IsAxis = serie_yIndex === index ? item.IsAxis : chartData[serie_yIndex].IsAxis;
         item.IsOrder = serie_yIndex === index ? item.IsOrder : chartData[serie_yIndex].IsOrder;
 
+        //轴数值的最大长度 用于计算单位标题相对与轴的偏移计算 没啥卵用需求如此 只为了显示美观 无逻辑用处
+        let MaxlabelLen = getLabelMaxLen(item.DataList) + item.Unit.length
+
         //y轴
         let yItem = {
           ...basicYAxis,
           labels: {
             formatter: function (ctx: any) {
-              let val =  Math.abs(ctx.value) < 1000 ? ctx.value :  ctx.value / 1000 + 'k';
+              let val = ctx.value;
               return sameSideIndex !== index ? '' : val;
             },
             align: 'center',
@@ -355,7 +369,8 @@ export default defineComponent({
             align: 'high',
             rotation: 0,
             y: -15,
-            offset: 0
+            textAlign: item.IsAxis===1 ? 'left' : 'right',
+            reserveSpace: false
           },
           opposite: [0,2].includes(item.IsAxis),
           reversed: item.IsOrder,
@@ -468,7 +483,7 @@ export default defineComponent({
           const s_yItem = {
             labels: {
               formatter: function (ctx: any) {
-                let val = ctx.value < 1000 ? ctx.value :  ctx.value / 1000 + 'k';
+                let val = ctx.value;
                 return index !== 0 ? '' : val;
               },
               align: 'center',
@@ -520,7 +535,7 @@ export default defineComponent({
           const s_yItem = {
             labels: {
               formatter: function (ctx: any) {
-                let val = ctx.value < 1000 ? ctx.value : ctx.value / 1000 + 'k';
+                let val = ctx.value;
                 return index !== 0 ? '' : val;
               },
               align: 'center',