Explorar o código

兼容手机刻度

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

+ 22 - 10
src/views/chartShow/index.vue

@@ -55,6 +55,7 @@ export default defineComponent({
 
     const code = ref(route.query.code);
     const isShare = ref(route.query.fromType === 'share');
+    const screen = ref(document.body.clientWidth < 1200 ? 'phone' : 'pc');
 
     const state = reactive<IState>({
       options: {},
@@ -128,10 +129,7 @@ export default defineComponent({
         true
       );
       // console.log(year_differ)
-      if (
-      state.chartInfo.DateType === 4 ||
-        ([5, 6].includes(state.chartInfo.DateType) && year_differ <= 1)
-      ) {
+      if ([5, 6].includes(state.chartInfo.DateType) && year_differ <= 1) {
         return true
       } else {
         return false
@@ -143,7 +141,7 @@ export default defineComponent({
       const { dataList,chartInfo } = state;
 
       //拼接标题 数据列
-      let data = [] as any[],ydata = [] as any[];
+      let data = [] as any[],ydata = [] as any[],minTimeArr: number[] = [],maxTimeArr: number[] = [];
       const chartData = _.cloneDeep(dataList);
 
       //支持的图表类型
@@ -232,6 +230,11 @@ export default defineComponent({
           obj.data.push([i.DataTimestamp, i.Value]);
         }
 
+        if(item.DataList.length){
+            minTimeArr.push(item.DataList[0].DataTimestamp)
+            maxTimeArr.push(item.DataList[item.DataList.length-1].DataTimestamp)
+        }
+
         data.push(obj);
         ydata.push(yItem);
       })
@@ -239,8 +242,14 @@ export default defineComponent({
       // 范围为1年内 x轴显示为月/日 否则默认年/月
       let xAxis:any = {};
       const bool_time:boolean = xTimeDiffer();
+      let minTime: number=Math.min(...minTimeArr);
+      let maxTime=Math.max(...maxTimeArr);
+
+      let step = setXaxisStep(maxTime-minTime);
+
       xAxis = bool_time ? {
         ...defaultOpts.xAxis,
+        tickInterval: screen.value === 'phone' ? step : undefined,
         labels: {
           formatter: function (ctx: any) {
             return Highcharts.dateFormat('%m/%d', ctx.value);
@@ -251,6 +260,7 @@ export default defineComponent({
         }
       } : {
         ...defaultOpts.xAxis,
+        tickInterval: screen.value === 'phone' ? step : undefined,
         labels: {
           style: {
             fontSize: '10px',
@@ -265,6 +275,12 @@ export default defineComponent({
       };
     }
 
+    /* 设置x轴步长 刻度数量多一点 */
+    const setXaxisStep = (timestamp: number) => {
+      // return  timestamp / 6 < 24 * 3600 * 1000 * 30 ? 24 * 3600 * 1000 * 30 : timestamp / 6;
+      return  timestamp / 6;
+    }
+
     /* 季节图 */
     const setSeasonOptions = () => {
       const chartData = state.dataList[0];
@@ -358,6 +374,7 @@ export default defineComponent({
       // 季节图x轴显示月/日 周度指标额外处理时间轴显示
       const xAxis = {
         ...defaultOpts.xAxis,
+        tickInterval:  screen.value === 'phone' ? 24 * 3600 * 1000 * 60 : undefined,
         labels: {
           formatter: function (ctx: any) {
             return Highcharts.dateFormat('%m/%d', ctx.value);
@@ -420,11 +437,6 @@ export default defineComponent({
             enabled: false,
           };
 
-      //农历图调整顶部缩进
-      // if (state.chartInfo.Calendar === '农历' && browser() !== 'FF' && getTerminal() !== 'ios') chart = {
-      //   spacing: [-26, 8, 2, 8]
-      // }
-
       state.options = {
         colors:
           state.chartInfo.Calendar === '公历'