1
PC-20250623MANY\Administrator
2025-08-20 aaf66f2d542927c18fa189642ff4617f0e1039e3
src/page/kline/components/kLine.vue
@@ -6,27 +6,60 @@
          <div class="periodWrap kline_periodWrap" ref="kline_periodWrap">
            <!-- DWM 分 -->
            <div class="btnGroup" style="position: relative">
              <div class="btn2" v-for="(item, index) in KLinePeriodMenu" :class="{ active: KLinePeriodIndex == index }"
                :key="item.ID" @click="OnClickKLinePeriodMenu(index, item, 'kline')">
              <div
                class="btn2"
                v-for="(item, index) in KLinePeriodMenu"
                :class="{ active: KLinePeriodIndex == index }"
                :key="item.ID"
                @click="OnClickKLinePeriodMenu(index, item, 'kline')"
              >
                <span>{{ item.Name }}</span>
              </div>
              <div style="position: absolute; right: 0; top: 25px; z-index: 99" v-if="isShow == true">
                <div class="btnGroup" v-show="IsShowRightMenu" style="display: flex; flex-direction: column">
                  <div class="btn" :class="{ active: KLineRightIndex == index }" v-for="(item, index) in KLineRightMenu"
                    :key="item.ID" style="padding: 10px" @click="OnClickKLineRightMenu(index, item)">
              <div
                style="position: absolute; right: 0; top: 25px; z-index: 99"
                v-if="isShow == true"
              >
                <div
                  class="btnGroup"
                  v-show="IsShowRightMenu"
                  style="display: flex; flex-direction: column"
                >
                  <div
                    class="btn"
                    :class="{ active: KLineRightIndex == index }"
                    v-for="(item, index) in KLineRightMenu"
                    :key="item.ID"
                    style="padding: 10px"
                    @click="OnClickKLineRightMenu(index, item)"
                  >
                    {{ item.Name }}
                  </div>
                  <div class="btn" v-for="item in KLineIndexMenu" :key="item.ID" style="padding: 10px"
                    @click="ChangeKLineIndex(item)">
                  <div
                    class="btn"
                    v-for="item in KLineIndexMenu"
                    :key="item.ID"
                    style="padding: 10px"
                    @click="ChangeKLineIndex(item)"
                  >
                    {{ item.Name }}
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="hqchart" id="hqchart_minute" ref="kline" v-show="chartType == 'minute'"></div>
          <div class="hqchart" id="hqchart_kline" ref="kline2" v-show="chartType == 'kline'"></div>
          <div
            class="hqchart"
            id="hqchart_minute"
            ref="kline"
            v-show="chartType == 'minute'"
          ></div>
          <div
            class="hqchart"
            id="hqchart_kline"
            ref="kline2"
            v-show="chartType == 'kline'"
          ></div>
        </div>
      </div>
    </div>
@@ -43,12 +76,12 @@
import EastMoney from "../../../eastmoney/HQData.js";
import i18n from "@/locales/index.js";
HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function (symbol) {
HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function(symbol) {
  return 2;
}; // 一直交易
function DefaultData() { }
function DefaultData() {}
DefaultData.GetMinuteOption = function () {
DefaultData.GetMinuteOption = function() {
  var option = {
    Type: "分钟走势图", // 创建图形类型
    // Type:'分钟走势图横屏',
@@ -58,7 +91,7 @@
      // { Index:"KDJ", Modify: false, Change: true, Close: true},
      // { Index: "KDJ", Modify: false, Change: false, Close: false }
    ],
    SplashTitle: 'loading...',
    SplashTitle: "loading...",
    Symbol: "AAPL.usa",
    IsAutoUpdate: true, // 是自动更新数据
    AutoUpdateFrequency: 20000,
@@ -113,7 +146,7 @@
  return option;
};
DefaultData.GetMinuteIndexMenu = function () {
DefaultData.GetMinuteIndexMenu = function() {
  var data = [
    {
      Name: "MACD",
@@ -140,7 +173,7 @@
  return data;
};
DefaultData.GetKLineIndexMenu = function () {
DefaultData.GetKLineIndexMenu = function() {
  var data = [
    {
      Name: "MA",
@@ -177,7 +210,7 @@
  return data;
};
DefaultData.GetTestSymbolMenu = function () {
DefaultData.GetTestSymbolMenu = function() {
  // 品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀}
  var data = [
    {
@@ -898,7 +931,7 @@
};
// k形图
DefaultData.GetKLineOption = function () {
DefaultData.GetKLineOption = function() {
  var option = {
    Type: "历史K线图", // 创建图形类型
    Language: "EN", // 英文 'EN' 简体中文:'CN' 繁体中文:"TC"
@@ -919,7 +952,7 @@
      }
      // { Index: 'MACD', Modify: true, Change: true, Close: false }
    ],
    SplashTitle: 'loading...',
    SplashTitle: "loading...",
    Symbol: "600015.sh",
    IsAutoUpdate: true, // 是自动更新数据
    AutoUpdateFrequency: 15000,
@@ -995,7 +1028,7 @@
  return option;
};
DefaultData.GetMinuteDayMenu = function () {
DefaultData.GetMinuteDayMenu = function() {
  var data = [
    {
      Name: "1D",
@@ -1022,7 +1055,7 @@
  return data;
};
DefaultData.GetKLinePeriodMenu = function () {
DefaultData.GetKLinePeriodMenu = function() {
  var data = [
    // { Name: i18n.t('hj86'), ID: 3 },分时额外处理
    // { Name: i18n.t("hj86"), ID: 4 },
@@ -1055,7 +1088,7 @@
  return data;
};
DefaultData.GetKLineRightMenu = function () {
DefaultData.GetKLineRightMenu = function() {
  var data = [
    {
      Name: i18n.t("hj93"),
@@ -1176,7 +1209,7 @@
    var self = this;
    // 侦听元素的调整大小事件,并使用元素作为调整大小事件的参数来调用侦听器函数。传递给函数的选项将
    // 覆盖实例选项
    erd.listenTo(this.$refs["rightContent"], function (element) {
    erd.listenTo(this.$refs["rightContent"], function(element) {
      var width = element.offsetWidth;
      var height = element.offsetHeight;
      self.tableHeight = height - 10; // 将监听到的宽高进行赋值
@@ -1187,7 +1220,10 @@
  },
  beforeDestroy() {
    clearInterval(this.timerss); // 在组件销毁前清除定时器
    this.timerss = null;
    this.timerss = null;
  },
  destroyed() {
    clearInterval(this.timerss); // 在组件销毁前清除定时器
  },
  methods: {
    OnSize() {
@@ -1332,32 +1368,35 @@
        clearInterval(this.timerss);
        this.timerss = null;
      }
      this.timerss = setInterval(() => {
        switch (data.Name) {
          // 分时图数据对接
          case "MinuteChartContainer::RequestMinuteData":
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
          case "MinuteChartContainer::RequestHistoryMinuteData":
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
          case "KLineChartContainer::RequestHistoryData": // 日线全量数据下载
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
          case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
          case "KLineChartContainer::RequestFlowCapitalData": // 流通股本
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
          case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
          case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新
            EastMoney.HQData.NetworkFilter(data, callback);
            break;
        }
      EastMoney.HQData.NetworkFilter(data, callback);
      this.timerss = setInterval(() => {
        EastMoney.HQData.NetworkFilter(data, callback);
        // switch (data.Name) {
        //   // 分时图数据对接
        //   case "MinuteChartContainer::RequestMinuteData":
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        //   case "MinuteChartContainer::RequestHistoryMinuteData":
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        //   case "KLineChartContainer::RequestHistoryData": // 日线全量数据下载
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        //   case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        //   case "KLineChartContainer::RequestFlowCapitalData": // 流通股本
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        //   case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        //   case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新
        //     EastMoney.HQData.NetworkFilter(data, callback);
        //     break;
        // }
      }, 5000);
    },
@@ -1434,7 +1473,7 @@
      justify-content: center;
      // flex-direction: column;
      >.btn {
      > .btn {
        cursor: pointer;
        width: 100%;
        text-align: center;