zzzz
2024-04-24 fde4daf5bf6ace15c3f78eb3bb5b9dbdad763674
src/page/kline/components/kLine.vue
@@ -51,7 +51,7 @@
          <div
            class="hqchart"
            id="hqchart_minute"
            ref="kline"
            ref="mychart"
            v-show="chartType == 'minute'"
          ></div>
          <div
@@ -67,6 +67,8 @@
</template>
<script>
import * as echarts from "echarts";
import _ from "lodash";
import HQChart from "hqchart";
import "hqchart/src/jscommon/umychart.resource/css/tools.css";
@@ -1014,6 +1016,7 @@
      VolChartHeight: 10,
      chartType: "kline",
      isShow: false,
      xData: [],
    };
  },
  created() {
@@ -1033,6 +1036,7 @@
  },
  mounted() {
    this.initEcharts();
    this.offHeight = this.$refs["rightContent"].offsetHeight;
    this.OnSize();
    this.SetChartStyle();
@@ -1074,6 +1078,70 @@
  },
  methods: {
    // 横坐标数据处理
    initxData() {
      for (let i = 0; i < this.klineData.length; i++) {
        this.xData[i] = this.klineData[i].datetime;
      }
    },
    // 数据计算以及拆分,将json数据转为数组数据
    splitData(jsonData) {
      const hourData = [];
      for (let i = 0; i < jsonData.length; i++) {
        hourData.push([
          i,
          jsonData[i].price,
          jsonData[i].increase,
          jsonData[i].volume,
          jsonData[i].ratio,
          jsonData[i].amount,
          jsonData[i].datetime,
        ]);
      }
      this.hourData = hourData;
    },
    initEcharts() {
      const option = {
        // 横坐标数据配置
        xAxis: [
          {
            type: "category",
            data: this.xData,
            boundaryGap: false,
            axisLine: { onZero: false },
            splitLine: { show: false },
            min: "dataMin",
            max: "dataMax",
          },
        ],
        // 纵坐标配置
        yAxis: [
          {
            scale: true,
            splitArea: {
              show: true,
            },
          },
        ],
        //图形数据配置:
        series: [
          {
            type: "line",
            data: this.hourData,
            symbol: "none", //无标记图案
            lineStyle: {
              width: 1,
            },
          },
        ],
      };
      const myChart = echarts.init(this.$refs.mychart); // 图标初始化
      myChart.setOption(option); // 渲染页面
      //随着屏幕大小调节图表
      window.addEventListener("resize", () => {
        myChart.resize();
      });
    },
    OnSize() {
      var width = this.$refs.right.clientWidth;
      // var rightTab = this.$refs.rightTab
@@ -1175,11 +1243,14 @@
      item,
      type // K线周期
    ) {
      // if (index !== 0) {  //分时额外处理才注释的
      this.chartType = type;
      this.KLinePeriodIndex = index;
      this.KLineChart.ChangePeriod(item.ID);
      // }
      if (index !== 0) {
        //分时额外处理才注释的
        this.chartType = type;
        this.KLinePeriodIndex = index;
        this.KLineChart.ChangePeriod(item.ID);
      } else {
        this.chartType = "minute";
      }
    },
    OnClickKLineRightMenu(