From 9d7de030d38f8d71fdf54ddfe26e46e71f17e9c0 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 20 Sep 2025 15:21:43 +0800
Subject: [PATCH] 1

---
 src/eastmoney/HQData.js | 2154 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 1,226 insertions(+), 928 deletions(-)

diff --git a/src/eastmoney/HQData.js b/src/eastmoney/HQData.js
index 817d5a0..16f68dd 100644
--- a/src/eastmoney/HQData.js
+++ b/src/eastmoney/HQData.js
@@ -11,416 +11,689 @@
    教程中所有的实例中使用的数据都来自互联网,或测试数据。仅用于学习HQChart图形使用. 教程禁止用于商业产品
 */
 
-import $ from 'jquery'
+import $ from "jquery";
 // import $, { hasData } from 'jquery'
-import HQChart from 'hqchart'
-import moment from 'moment'
+import HQChart from "hqchart";
+import moment from "moment";
+import apiRrl from "@/config/index";
 
 // 源码调试用
 // import Chart from '../../jscommon/umychart.vue/umychart.vue.js'
 // var HQChart={ Chart:Chart };
 
-function HQData () { }
-window.globalVar = 'https://brac.barcblays.com/'
-// window.globalVar = 'http://192.168.0.105:8091/'
-HQData.Explain = '东财财富网接口'
+function HQData() {}
+window.globalVar = apiRrl.baseURL;
+HQData.Explain = "东财财富网接口";
 
-HQChart.Chart.JSConsole.Chart.Log = () => { }
-HQChart.Chart.JSConsole.Complier.Log = () => { }
+HQChart.Chart.JSConsole.Chart.Log = () => {};
+HQChart.Chart.JSConsole.Complier.Log = () => {};
 
-HQData.Log = HQChart.Chart.JSConsole.Chart.Log
+HQData.Log = HQChart.Chart.JSConsole.Chart.Log;
 
 HQData.SetMinuteChartCoordinate = function () {
-  HQChart.Chart.MARKET_SUFFIX_NAME.IsShowAvPrice = (upperSymbol) => { return HQData.IsShowAvPrice(upperSymbol) }
-  HQChart.Chart.MARKET_SUFFIX_NAME.IsEnableRight = (period, symbol) => { return HQData.IsEnableRight(period, symbol) }
+  HQChart.Chart.MARKET_SUFFIX_NAME.IsShowAvPrice = (upperSymbol) => {
+    return HQData.IsShowAvPrice(upperSymbol);
+  };
+  HQChart.Chart.MARKET_SUFFIX_NAME.IsEnableRight = (period, symbol) => {
+    return HQData.IsEnableRight(period, symbol);
+  };
 
   // 美股分时图坐标
-  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateUSAData = () => { return HQData.CreateUSAData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段
-  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetUSAData = (upperSymbol, width) => { return HQData.GetUSAData(upperSymbol, width) } // 替换X轴刻度信息
+  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateUSAData = () => {
+    return HQData.CreateUSAData(
+      HQChart.Chart.JSChart.GetMinuteTimeStringData()
+    );
+  }; // 替换交易时间段
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetUSAData = (
+    upperSymbol,
+    width
+  ) => {
+    return HQData.GetUSAData(upperSymbol, width);
+  }; // 替换X轴刻度信息
 
   // A股分时图坐标
-  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateSHSZData = () => { return HQData.CreateSHSZData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段
-  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetSHSZData = (upperSymbol, width) => { return HQData.GetSHSZData(upperSymbol, width) } // 替换X轴刻度信息
+  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateSHSZData = () => {
+    return HQData.CreateSHSZData(
+      HQChart.Chart.JSChart.GetMinuteTimeStringData()
+    );
+  }; // 替换交易时间段
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetSHSZData = (
+    upperSymbol,
+    width
+  ) => {
+    return HQData.GetSHSZData(upperSymbol, width);
+  }; // 替换X轴刻度信息
 
   // 北交所
-  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateBJData = () => { return HQData.CreateSHSZData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段
-  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetBJData = (upperSymbol, width) => { return HQData.GetSHSZData(upperSymbol, width) } // 替换X轴刻度信息
+  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateBJData = () => {
+    return HQData.CreateSHSZData(
+      HQChart.Chart.JSChart.GetMinuteTimeStringData()
+    );
+  }; // 替换交易时间段
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetBJData = (
+    upperSymbol,
+    width
+  ) => {
+    return HQData.GetSHSZData(upperSymbol, width);
+  }; // 替换X轴刻度信息
 
   // 港股分时图坐标
-  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateHKData = () => { return HQData.CreateHKData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段
-  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetHKData = (upperSymbol, width) => { return HQData.GetHKData(upperSymbol, width) } // 替换X轴刻度信息
+  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateHKData = () => {
+    return HQData.CreateHKData(HQChart.Chart.JSChart.GetMinuteTimeStringData());
+  }; // 替换交易时间段
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetHKData = (
+    upperSymbol,
+    width
+  ) => {
+    return HQData.GetHKData(upperSymbol, width);
+  }; // 替换X轴刻度信息
 
   // 外汇分时图坐标
-  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateForeignExchangeData = () => { return HQData.CreateForeignExchangeData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段
-  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetForeignExchangeData = (upperSymbol, width) => { return HQData.GetForeignExchangeData(upperSymbol, width) } // 替换X轴刻度信息
+  HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateForeignExchangeData =
+    () => {
+      return HQData.CreateForeignExchangeData(
+        HQChart.Chart.JSChart.GetMinuteTimeStringData()
+      );
+    }; // 替换交易时间段
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetForeignExchangeData = (
+    upperSymbol,
+    width
+  ) => {
+    return HQData.GetForeignExchangeData(upperSymbol, width);
+  }; // 替换X轴刻度信息
 
   // 期货
-  var chinaFutrues = HQChart.Chart.JSChart.GetChinaFuturesTimeData()
-  chinaFutrues.AddNewFutures({ Suffix: '.SHF', Symbol: 'WR', Time: 9, Decimal: 2, Name: '线材' }) // obj= { Suffix:后缀, Symbol:品种代码, Time:交易时间段, Decimal:小数位数, Name:名字 }
-  chinaFutrues.AddNewFutures({ Suffix: '.DCE', Symbol: 'BB', Time: 9, Decimal: 2, Name: '胶合板' })
-  chinaFutrues.AddNewFutures({ Suffix: '.DCE', Symbol: 'JD', Time: 9, Decimal: 2, Name: '鸡蛋' })
-  chinaFutrues.AddNewFutures({ Suffix: '.DCE', Symbol: 'LH', Time: 9, Decimal: 2, Name: '生猪' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'WH', Time: 9, Decimal: 0, Name: '强麦' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'PM', Time: 9, Decimal: 0, Name: '普麦' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'RI', Time: 9, Decimal: 0, Name: '早籼稻' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'RS', Time: 9, Decimal: 0, Name: '菜籽' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'JR', Time: 9, Decimal: 0, Name: '粳稻' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'LR', Time: 9, Decimal: 0, Name: '晚籼稻' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'LR', Time: 9, Decimal: 0, Name: '晚籼稻' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'SM', Time: 9, Decimal: 0, Name: '锰硅' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'SF', Time: 9, Decimal: 0, Name: '硅铁' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'AP', Time: 9, Decimal: 0, Name: '苹果' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'CJ', Time: 9, Decimal: 0, Name: '红枣' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'UR', Time: 9, Decimal: 0, Name: '尿素' })
-  chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'PK', Time: 9, Decimal: 0, Name: '花生' })
+  var chinaFutrues = HQChart.Chart.JSChart.GetChinaFuturesTimeData();
+  chinaFutrues.AddNewFutures({
+    Suffix: ".SHF",
+    Symbol: "WR",
+    Time: 9,
+    Decimal: 2,
+    Name: "线材",
+  }); // obj= { Suffix:后缀, Symbol:品种代码, Time:交易时间段, Decimal:小数位数, Name:名字 }
+  chinaFutrues.AddNewFutures({
+    Suffix: ".DCE",
+    Symbol: "BB",
+    Time: 9,
+    Decimal: 2,
+    Name: "胶合板",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".DCE",
+    Symbol: "JD",
+    Time: 9,
+    Decimal: 2,
+    Name: "鸡蛋",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".DCE",
+    Symbol: "LH",
+    Time: 9,
+    Decimal: 2,
+    Name: "生猪",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "WH",
+    Time: 9,
+    Decimal: 0,
+    Name: "强麦",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "PM",
+    Time: 9,
+    Decimal: 0,
+    Name: "普麦",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "RI",
+    Time: 9,
+    Decimal: 0,
+    Name: "早籼稻",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "RS",
+    Time: 9,
+    Decimal: 0,
+    Name: "菜籽",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "JR",
+    Time: 9,
+    Decimal: 0,
+    Name: "粳稻",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "LR",
+    Time: 9,
+    Decimal: 0,
+    Name: "晚籼稻",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "LR",
+    Time: 9,
+    Decimal: 0,
+    Name: "晚籼稻",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "SM",
+    Time: 9,
+    Decimal: 0,
+    Name: "锰硅",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "SF",
+    Time: 9,
+    Decimal: 0,
+    Name: "硅铁",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "AP",
+    Time: 9,
+    Decimal: 0,
+    Name: "苹果",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "CJ",
+    Time: 9,
+    Decimal: 0,
+    Name: "红枣",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "UR",
+    Time: 9,
+    Decimal: 0,
+    Name: "尿素",
+  });
+  chinaFutrues.AddNewFutures({
+    Suffix: ".CZC",
+    Symbol: "PK",
+    Time: 9,
+    Decimal: 0,
+    Name: "花生",
+  });
 
   // 芝加哥期货交易所
-  var futrues = HQChart.Chart.JSChart.GetInternalTimeData('CBOTTimeData')
-  futrues.AddNewFutures({ Symbol: 'ZW', Time: 3, Decimal: 2, Name: '小麦' })
-  futrues.AddNewFutures({ Symbol: 'XW', Time: 4, Decimal: 2, Name: '迷你小麦' })
-  futrues.AddNewFutures({ Symbol: 'ZC', Time: 3, Decimal: 2, Name: '玉米' })
-  futrues.AddNewFutures({ Symbol: 'XC', Time: 4, Decimal: 2, Name: '迷你玉米' })
-  futrues.AddNewFutures({ Symbol: 'ZS', Time: 3, Decimal: 2, Name: '大豆' })
-  futrues.AddNewFutures({ Symbol: 'XK', Time: 4, Decimal: 2, Name: '迷你大豆' })
-  futrues.AddNewFutures({ Symbol: 'ZL', Time: 3, Decimal: 2, Name: '豆油' })
-  futrues.AddNewFutures({ Symbol: 'ZM', Time: 3, Decimal: 2, Name: '豆粕' })
-  futrues.AddNewFutures({ Symbol: 'ZO', Time: 3, Decimal: 2, Name: '燕麦' })
-  futrues.AddNewFutures({ Symbol: 'ZR', Time: 3, Decimal: 2, Name: '稻谷' })
-  futrues.AddNewFutures({ Symbol: 'ZL', Time: 3, Decimal: 2, Name: '豆油' })
-  futrues.AddNewFutures({ Symbol: 'NQ', Time: 5, Decimal: 2, Name: '小型纳指' })
-  futrues.AddNewFutures({ Symbol: 'ES', Time: 5, Decimal: 2, Name: '小型标普' })
-  futrues.AddNewFutures({ Symbol: 'YM', Time: 5, Decimal: 0, Name: '小型道指' })
+  var futrues = HQChart.Chart.JSChart.GetInternalTimeData("CBOTTimeData");
+  futrues.AddNewFutures({ Symbol: "ZW", Time: 3, Decimal: 2, Name: "小麦" });
+  futrues.AddNewFutures({
+    Symbol: "XW",
+    Time: 4,
+    Decimal: 2,
+    Name: "迷你小麦",
+  });
+  futrues.AddNewFutures({ Symbol: "ZC", Time: 3, Decimal: 2, Name: "玉米" });
+  futrues.AddNewFutures({
+    Symbol: "XC",
+    Time: 4,
+    Decimal: 2,
+    Name: "迷你玉米",
+  });
+  futrues.AddNewFutures({ Symbol: "ZS", Time: 3, Decimal: 2, Name: "大豆" });
+  futrues.AddNewFutures({
+    Symbol: "XK",
+    Time: 4,
+    Decimal: 2,
+    Name: "迷你大豆",
+  });
+  futrues.AddNewFutures({ Symbol: "ZL", Time: 3, Decimal: 2, Name: "豆油" });
+  futrues.AddNewFutures({ Symbol: "ZM", Time: 3, Decimal: 2, Name: "豆粕" });
+  futrues.AddNewFutures({ Symbol: "ZO", Time: 3, Decimal: 2, Name: "燕麦" });
+  futrues.AddNewFutures({ Symbol: "ZR", Time: 3, Decimal: 2, Name: "稻谷" });
+  futrues.AddNewFutures({ Symbol: "ZL", Time: 3, Decimal: 2, Name: "豆油" });
+  futrues.AddNewFutures({
+    Symbol: "NQ",
+    Time: 5,
+    Decimal: 2,
+    Name: "小型纳指",
+  });
+  futrues.AddNewFutures({
+    Symbol: "ES",
+    Time: 5,
+    Decimal: 2,
+    Name: "小型标普",
+  });
+  futrues.AddNewFutures({
+    Symbol: "YM",
+    Time: 5,
+    Decimal: 0,
+    Name: "小型道指",
+  });
 
   // 美国洲际交易所
   // var futrues = HQChart.Chart.JSChart.GetInternalTimeData('IPETimeData')
-  var lIndex = futrues.TIME_SPLIT.length
-  futrues.TIME_SPLIT[lIndex] = HQData.GetCustomTradeTimeData('IPE_G')
-  futrues.TIME_SPLIT2[lIndex] = HQData.GetCustomTradeTimeData('IPE_G_2')
-  futrues.AddNewFutures({ Symbol: 'G', Time: lIndex, Decimal: 0, Name: '低硫柴油' })
+  var lIndex = futrues.TIME_SPLIT.length;
+  futrues.TIME_SPLIT[lIndex] = HQData.GetCustomTradeTimeData("IPE_G");
+  futrues.TIME_SPLIT2[lIndex] = HQData.GetCustomTradeTimeData("IPE_G_2");
+  futrues.AddNewFutures({
+    Symbol: "G",
+    Time: lIndex,
+    Decimal: 0,
+    Name: "低硫柴油",
+  });
 
   // 自定义类型
-  HQChart.Chart.JSChart.GetMinuteTimeStringData().GetET = (upperSymbol) => { return HQData.GetETTimeData(upperSymbol, HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 当天所有的交易时间点
-  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetETData = (upperSymbol) => { return HQData.GetETData(upperSymbol) } // X轴刻度设置
-  HQChart.Chart.MARKET_SUFFIX_NAME.GetETDecimal = (symbol) => { return HQData.GetETDecimal(symbol) } // 不同品种,使用不同小数位数
-  HQChart.Chart.MARKET_SUFFIX_NAME.IsETShowAvPrice = (symbol) => { return false } // 提示信息是否显示均线数值
-  HQChart.Chart.MARKET_SUFFIX_NAME.GetETMarketStatus = (symbol) => { return 2 } // 获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
-}
+  HQChart.Chart.JSChart.GetMinuteTimeStringData().GetET = (upperSymbol) => {
+    return HQData.GetETTimeData(
+      upperSymbol,
+      HQChart.Chart.JSChart.GetMinuteTimeStringData()
+    );
+  }; // 当天所有的交易时间点
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetETData = (upperSymbol) => {
+    return HQData.GetETData(upperSymbol);
+  }; // X轴刻度设置
+  HQChart.Chart.MARKET_SUFFIX_NAME.GetETDecimal = (symbol) => {
+    return HQData.GetETDecimal(symbol);
+  }; // 不同品种,使用不同小数位数
+  HQChart.Chart.MARKET_SUFFIX_NAME.IsETShowAvPrice = (symbol) => {
+    return false;
+  }; // 提示信息是否显示均线数值
+  HQChart.Chart.MARKET_SUFFIX_NAME.GetETMarketStatus = (symbol) => {
+    return 2;
+  }; // 获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
+};
 
 HQData.NetworkFilter = function (data, callback) {
-  HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data)
+  HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data);
 
   switch (data.Name) {
-    case 'MinuteChartContainer::RequestMinuteData': // 分时图数据对接
-      HQData.RequestMinuteData(data, callback)
-      break
-    case 'MinuteChartContainer::RequestHistoryMinuteData':
-      HQData.RequestMinuteDaysData(data, callback)
-      break
+    case "MinuteChartContainer::RequestMinuteData": // 分时图数据对接
+      HQData.RequestMinuteData(data, callback);
+      break;
+    case "MinuteChartContainer::RequestHistoryMinuteData":
+      HQData.RequestMinuteDaysData(data, callback);
+      break;
 
-    case 'KLineChartContainer::RequestHistoryData': // 日线全量数据下载
-      HQData.RequestHistoryData(data, callback)
-      break
-    case 'KLineChartContainer::RequestRealtimeData': // 日线实时数据更新
-      HQData.RequestRealtimeData(data, callback)
-      break
-    case 'KLineChartContainer::RequestFlowCapitalData': // 流通股本
-      HQData.RequestFlowCapitalData(data, callback)
-      break
+    case "KLineChartContainer::RequestHistoryData": // 日线全量数据下载
+      HQData.RequestHistoryData(data, callback);
+      break;
+    case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新
+      // HQData.RequestRealtimeData(data, callback);
+      break;
+    case "KLineChartContainer::RequestFlowCapitalData": // 流通股本
+      // HQData.RequestFlowCapitalData(data, callback);
+      break;
 
-    case 'KLineChartContainer::ReqeustHistoryMinuteData': // 分钟全量数据下载
-      HQData.RequestHistoryMinuteData(data, callback)
-      break
-    case 'KLineChartContainer::RequestMinuteRealtimeData': // 分钟增量数据更新
-      HQData.RequestMinuteRealtimeData(data, callback)
-      break
+    case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载
+      HQData.RequestHistoryMinuteData(data, callback);
+      break;
+    case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新
+      // HQData.RequestMinuteRealtimeData(data, callback);
+      break;
   }
-}
+};
 
 HQData.RequestMinuteData = function (data, callback) {
-  data.PreventDefault = true
+  data.PreventDefault = true;
 
-  var symbol = data.Request.Data.symbol[0] // 请求的股票代码
+  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
   // var dayCount = data.Request.Data.daycount
-  console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`)
-  var obj = HQData.GetMinuteApiUrl(symbol, 1)
-
-  $.ajax(
-    {
-      url: obj.Url,
-      type: 'GET',
-      success: function (recvData) {
-        HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj })
-      }
-    })
-}
+  console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`);
+  var obj = HQData.GetMinuteApiUrl(symbol, 1);
+  console.log(obj, "======");
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function (recvData) {
+      HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj });
+    },
+  });
+};
 
 HQData.RecvMinuteData = function (recvData, callback, option) {
   // var data = recvData.data
-  var stock = { symbol: option.Obj.Symbol, minute: [] }
+  var stock = { symbol: option.Obj.Symbol, minute: [] };
   // stock.name = data.name
   // stock.yclose = data.preClose
-  stock.name = '12312'
-  stock.yclose = '123'
-  var symbol = option.Obj.Symbol
-  var symbolUpper = symbol.toUpperCase()
-  var isStockA = HQData.IsSHSZ(symbolUpper)
+  stock.name = "12312";
+  stock.yclose = "123";
+  var symbol = option.Obj.Symbol;
+  var symbolUpper = symbol.toUpperCase();
+  var isStockA = HQData.IsSHSZ(symbolUpper);
   // var isChinaFutrues = HQData.IsChinaFutures(symbolUpper)
-  var isLME = HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(symbolUpper) // 伦敦金属交易所
+  var isLME = HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(symbolUpper); // 伦敦金属交易所
   // if (isChinaFutrues) stock.yclearing = data.preSettlement // 期货昨结算价
   // for (var i = 0; i < data.trends.length; ++i) {
-    recvData = JSON.parse(recvData)
+  recvData = JSON.parse(recvData);
+  // var date = moment.unix(strItem.t || strItem.id).format("YYYYMMDD");
+  // //
+  // var open = parseFloat(strItem.o || strItem.open);
+  // var close = parseFloat(strItem.c || strItem.close);
+  // var high = parseFloat(strItem.h || strItem.high);
+  // var low = parseFloat(strItem.l || strItem.low);
+  // var vol = parseFloat(strItem.v || strItem.vol) * 100;
   for (var i = 0; i < recvData.length; ++i) {
-    var strItem = recvData[i]
+    var strItem = recvData[i];
+    strItem.t = strItem.t || strItem.id;
+    strItem.c = strItem.c || strItem.close;
+    strItem.h = strItem.h || strItem.high;
+    strItem.l = strItem.l || strItem.low;
+    strItem.v = strItem.v || strItem.vol;
     // console.log(strItem)
     // var item = strItem.split(',')
     // console.log('查看', item)
     // var today = new Date(Date.parse(item[0])); // 不兼容 safari 浏览器
-    var today = new Date(strItem.t) // 同时兼容 safari 浏览器
-    var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-    var time = today.getHours() * 100 + today.getMinutes()
-    var stockItem =
-        {
-          date: date,
-          time: time,
-          open: parseFloat(strItem.o),
-          high: parseFloat(strItem.h),
-          low: parseFloat(strItem.l),
-          // price: parseFloat(item[4]),
-          vol: parseFloat(strItem.vo)
-          // amount: parseFloat(item[6]),
-          // avprice: parseFloat(item[7])
-        }
-    if (isStockA) stockItem.vol *= 100
-    if (isLME) stockItem.avprice = null
+    var today = new Date(strItem.t); // 同时兼容 safari 浏览器
+    var date =
+      today.getFullYear() * 10000 +
+      (today.getMonth() + 1) * 100 +
+      today.getDate();
+    var time = today.getHours() * 100 + today.getMinutes();
+    var stockItem = {
+      date: date,
+      time: time,
+      open: parseFloat(strItem.o),
+      high: parseFloat(strItem.h),
+      low: parseFloat(strItem.l),
+      // price: parseFloat(item[4]),
+      vol: parseFloat(strItem.vo),
+      // amount: parseFloat(item[6]),
+      // avprice: parseFloat(item[7])
+    };
+    if (isStockA) stockItem.vol *= 100;
+    if (isLME) stockItem.avprice = null;
 
-    stock.date = date
-    stock.minute.push(stockItem)
+    stock.date = date;
+    stock.minute.push(stockItem);
+    // stock.minute= stockItem;
   }
 
-  var hqchartData = { stock: [stock], code: 0 }
+  var hqchartData = { stock: [stock], code: 0 };
 
   if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvMinuteDaysData] hqchartData ', hqchartData)
-    callback(hqchartData)
+    HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData);
+    callback(hqchartData);
   }
-}
+};
 
 HQData.RequestMinuteDaysData = function (data, callback) {
-  data.PreventDefault = true
-  var symbol = data.Request.Data.symbol // 请求的股票代码
-  var dayCount = data.Request.Data.daycount
-  var symbolUpper = symbol.toUpperCase()
-  console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`)
-  var obj = HQData.GetMinuteApiUrl(symbol, dayCount)
+  data.PreventDefault = true;
+  var symbol = data.Request.Data.symbol; // 请求的股票代码
+  var dayCount = data.Request.Data.daycount;
+  var symbolUpper = symbol.toUpperCase();
+  console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`);
+  var obj = HQData.GetMinuteApiUrl(symbol, dayCount);
 
-  $.ajax(
-    {
-      url: obj.Url,
-      type: 'GET',
-      success: function (recvData) {
-        if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHFE(symbolUpper) || HQChart.Chart.MARKET_SUFFIX_NAME.IsDCE(symbolUpper) ||
-                HQChart.Chart.MARKET_SUFFIX_NAME.IsCZCE(symbolUpper) || HQChart.Chart.MARKET_SUFFIX_NAME.IsCFFEX(symbolUpper)) { HQData.RecvMinuteDaysDataV2(recvData, callback, { Data: data, Obj: obj }) } else { HQData.RecvMinuteDaysData(recvData, callback, { Data: data, Obj: obj }) }
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function (recvData) {
+      if (
+        HQChart.Chart.MARKET_SUFFIX_NAME.IsSHFE(symbolUpper) ||
+        HQChart.Chart.MARKET_SUFFIX_NAME.IsDCE(symbolUpper) ||
+        HQChart.Chart.MARKET_SUFFIX_NAME.IsCZCE(symbolUpper) ||
+        HQChart.Chart.MARKET_SUFFIX_NAME.IsCFFEX(symbolUpper)
+      ) {
+        HQData.RecvMinuteDaysDataV2(recvData, callback, {
+          Data: data,
+          Obj: obj,
+        });
+      } else {
+        HQData.RecvMinuteDaysData(recvData, callback, { Data: data, Obj: obj });
       }
-    })
-}
+    },
+  });
+};
 
 HQData.RecvMinuteDaysData = function (recvData, callback, option) {
-  var data = recvData.data
-  var aryDayData = []
-  var itemDay = null
-  var yClose = data.preClose
-  var symbol = option.Obj.Symbol
-  var symbolUpper = symbol.toUpperCase()
-  var isStockA = HQData.IsSHSZ(symbolUpper)
+  var data = recvData.data;
+  var aryDayData = [];
+  var itemDay = null;
+  var yClose = data.preClose;
+  var symbol = option.Obj.Symbol;
+  var symbolUpper = symbol.toUpperCase();
+  var isStockA = HQData.IsSHSZ(symbolUpper);
 
-  var xDatetime = HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData(symbol)
-  var firstTime = xDatetime[0] // 第1个数据的时间
-  var minuteCount = xDatetime.length
-  var i = 0
+  var xDatetime =
+    HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData(symbol);
+  var firstTime = xDatetime[0]; // 第1个数据的时间
+  var minuteCount = xDatetime.length;
+  var i = 0;
   for (i = 0; i < data.trends.length; ++i) {
-    var strItem = data.trends[i]
-    var item = strItem.split(',')
+    var strItem = data.trends[i];
+    var item = strItem.split(",");
     // var today = new Date(Date.parse(item[0])); // 不兼容 safari 浏览器
-    var today = new Date(Date.parse(item[0].replace(/-/g, '/'))) // 同时兼容 safari 浏览器
-    var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-    var time = today.getHours() * 100 + today.getMinutes()
-    if (time === firstTime) break
+    var today = new Date(Date.parse(item[0].replace(/-/g, "/"))); // 同时兼容 safari 浏览器
+    var date =
+      today.getFullYear() * 10000 +
+      (today.getMonth() + 1) * 100 +
+      today.getDate();
+    var time = today.getHours() * 100 + today.getMinutes();
+    if (time === firstTime) break;
   }
 
   for (var j = 0; i < data.trends.length; ++i, ++j) {
-    var strItem = data.trends[i]
-    var item = strItem.split(',')
+    var strItem = data.trends[i];
+    var item = strItem.split(",");
     // var today = new Date(Date.parse(item[0])); // 不兼容 safari 浏览器
-    var today = new Date(Date.parse(item[0].replace(/-/g, '/'))) // 同时兼容 safari 浏览器
-    var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-    var time = today.getHours() * 100 + today.getMinutes()
+    var today = new Date(Date.parse(item[0].replace(/-/g, "/"))); // 同时兼容 safari 浏览器
+    var date =
+      today.getFullYear() * 10000 +
+      (today.getMonth() + 1) * 100 +
+      today.getDate();
+    var time = today.getHours() * 100 + today.getMinutes();
 
     if (j % minuteCount === 0) {
-      if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay)
-      itemDay = { minute: [], date: date, yclose: yClose }
+      if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay);
+      itemDay = { minute: [], date: date, yclose: yClose };
     }
 
-    var price = parseFloat(item[4])
-    var stockItem =
-        {
-          date: date,
-          time: time,
-          open: price,
-          high: price,
-          low: price,
-          price: price,
-          amount: parseFloat(item[6]),
-          vol: parseFloat(item[5]),
-          avprice: parseFloat(item[7])
-        }
+    var price = parseFloat(item[4]);
+    var stockItem = {
+      date: date,
+      time: time,
+      open: price,
+      high: price,
+      low: price,
+      price: price,
+      amount: parseFloat(item[6]),
+      vol: parseFloat(item[5]),
+      avprice: parseFloat(item[7]),
+    };
 
-    if (isStockA) stockItem.vol *= 100
+    if (isStockA) stockItem.vol *= 100;
 
-    itemDay.minute.push([stockItem.time, stockItem.open, stockItem.high, stockItem.low, stockItem.price, stockItem.vol, stockItem.amount, stockItem.avprice, stockItem.date])
+    itemDay.minute.push([
+      stockItem.time,
+      stockItem.open,
+      stockItem.high,
+      stockItem.low,
+      stockItem.price,
+      stockItem.vol,
+      stockItem.amount,
+      stockItem.avprice,
+      stockItem.date,
+    ]);
   }
 
-  if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay)
+  if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay);
 
-  aryDayData = aryDayData.reverse()
+  aryDayData = aryDayData.reverse();
 
-  var hqchartData = { symbol: option.Obj.Symbol, name: data.name, data: aryDayData, code: 0 }
+  var hqchartData = {
+    symbol: option.Obj.Symbol,
+    name: data.name,
+    data: aryDayData,
+    code: 0,
+  };
 
   if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvMinuteDaysData] hqchartData ', hqchartData)
-    callback(hqchartData)
+    HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData);
+    callback(hqchartData);
   }
-}
+};
 
 // 期货模式
 HQData.RecvMinuteDaysDataV2 = function (recvData, callback, option) {
-  var data = recvData.data
-  var aryDayData = []
-  var yClose = data.preClose
-  var symbol = option.Obj.Symbol
-  var symbolUpper = symbol.toUpperCase()
-  var yClearing = data.preSettlement // 期货昨结算价
+  var data = recvData.data;
+  var aryDayData = [];
+  var yClose = data.preClose;
+  var symbol = option.Obj.Symbol;
+  var symbolUpper = symbol.toUpperCase();
+  var yClearing = data.preSettlement; // 期货昨结算价
 
-  var xDatetime = HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData(symbol)
-  var endTime = xDatetime[xDatetime.length - 1] // 最后个数据的时间
-  var minuteCount = xDatetime.length
+  var xDatetime =
+    HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData(symbol);
+  var endTime = xDatetime[xDatetime.length - 1]; // 最后个数据的时间
+  var minuteCount = xDatetime.length;
 
-  var itemDay = { minute: [], date: null, yclose: yClose, yclearing: yClearing }
+  var itemDay = {
+    minute: [],
+    date: null,
+    yclose: yClose,
+    yclearing: yClearing,
+  };
   for (var i = 0; i < data.trends.length; ++i) {
-    var strItem = data.trends[i]
-    var item = strItem.split(',')
-    var today = new Date(Date.parse(item[0]))
-    var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-    var time = today.getHours() * 100 + today.getMinutes()
+    var strItem = data.trends[i];
+    var item = strItem.split(",");
+    var today = new Date(Date.parse(item[0]));
+    var date =
+      today.getFullYear() * 10000 +
+      (today.getMonth() + 1) * 100 +
+      today.getDate();
+    var time = today.getHours() * 100 + today.getMinutes();
 
-    var price = parseFloat(item[4])
-    var stockItem =
-        {
-          date: date,
-          time: time,
-          open: price,
-          high: price,
-          low: price,
-          price: price,
-          amount: parseFloat(item[6]),
-          vol: parseFloat(item[5]),
-          avprice: parseFloat(item[7])
-        }
+    var price = parseFloat(item[4]);
+    var stockItem = {
+      date: date,
+      time: time,
+      open: price,
+      high: price,
+      low: price,
+      price: price,
+      amount: parseFloat(item[6]),
+      vol: parseFloat(item[5]),
+      avprice: parseFloat(item[7]),
+    };
 
-    itemDay.date = date
-    itemDay.minute.push([stockItem.time, stockItem.open, stockItem.high, stockItem.low, stockItem.price, stockItem.vol, stockItem.amount, stockItem.avprice, stockItem.date])
+    itemDay.date = date;
+    itemDay.minute.push([
+      stockItem.time,
+      stockItem.open,
+      stockItem.high,
+      stockItem.low,
+      stockItem.price,
+      stockItem.vol,
+      stockItem.amount,
+      stockItem.avprice,
+      stockItem.date,
+    ]);
 
     if (time === endTime) {
-      if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay)
-      itemDay = { minute: [], date: null, yclose: yClose, yclearing: yClearing }
+      if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay);
+      itemDay = {
+        minute: [],
+        date: null,
+        yclose: yClose,
+        yclearing: yClearing,
+      };
     }
   }
 
-  if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay)
+  if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay);
 
-  var preClose = null, preAvprice = null, preDate = null
+  var preClose = null,
+    preAvprice = null,
+    preDate = null;
   for (var i = 0; i < aryDayData.length - 1; ++i) {
-    var itemDay = aryDayData[i]
-    var newMinuteData = HQData.CorrectMinuteData(itemDay.minute, xDatetime)
+    var itemDay = aryDayData[i];
+    var newMinuteData = HQData.CorrectMinuteData(itemDay.minute, xDatetime);
     if (newMinuteData) {
       for (var j = 0; j < newMinuteData.length; ++j) {
-        var item = newMinuteData[j]
+        var item = newMinuteData[j];
         if (item.length === 1) {
-          item[1] = item[2] = item[3] = item[4] = preClose
-          item[5] = item[6] = 0
-          item[7] = preAvprice
-          item[8] = preDate
+          item[1] = item[2] = item[3] = item[4] = preClose;
+          item[5] = item[6] = 0;
+          item[7] = preAvprice;
+          item[8] = preDate;
         } else {
-          preClose = item[4]
-          preAvprice = item[7]
-          preDate = item[8]
+          preClose = item[4];
+          preAvprice = item[7];
+          preDate = item[8];
         }
       }
-      itemDay.minute = newMinuteData
+      itemDay.minute = newMinuteData;
     } else {
-      var item = itemDay.minute[itemDay.minute.length - 1]
-      preClose = item[4]
-      preAvprice = item[7]
-      preDate = item[8]
+      var item = itemDay.minute[itemDay.minute.length - 1];
+      preClose = item[4];
+      preAvprice = item[7];
+      preDate = item[8];
     }
   }
 
-  aryDayData = aryDayData.reverse()
+  aryDayData = aryDayData.reverse();
 
-  var hqchartData = { symbol: option.Obj.Symbol, name: data.name, data: aryDayData, code: 0 }
+  var hqchartData = {
+    symbol: option.Obj.Symbol,
+    name: data.name,
+    data: aryDayData,
+    code: 0,
+  };
 
   if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvMinuteDaysData] hqchartData ', hqchartData)
-    callback(hqchartData)
+    HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData);
+    callback(hqchartData);
   }
-}
+};
 
 HQData.CorrectMinuteData = function (minuteData, xDatetime) {
-  if (minuteData.length === xDatetime.length) return null
+  if (minuteData.length === xDatetime.length) return null;
 
-  var mapData = new Map()
+  var mapData = new Map();
   for (var i = 0; i < xDatetime.length; ++i) {
-    var item = xDatetime[i]
-    mapData.set(item, { Index: i, Time: item, Data: null })
+    var item = xDatetime[i];
+    mapData.set(item, { Index: i, Time: item, Data: null });
   }
 
   for (var i = 0; i < minuteData.length; ++i) {
-    var item = minuteData[i]
-    var time = item[0]
+    var item = minuteData[i];
+    var time = item[0];
 
-    var findItem = mapData.get(time)
-    findItem.Data = item
+    var findItem = mapData.get(time);
+    findItem.Data = item;
   }
 
-  var newMinuteData = []
+  var newMinuteData = [];
   for (var item of mapData) {
-    var value = item[1]
+    var value = item[1];
 
-    if (value.Data) newMinuteData[value.Index] = value.Data
-    else newMinuteData[value.Index] = [value.Time]
+    if (value.Data) newMinuteData[value.Index] = value.Data;
+    else newMinuteData[value.Index] = [value.Time];
   }
 
-  return newMinuteData
-}
+  return newMinuteData;
+};
 // HQChart内置代码转成东方财富代码
 HQData.GetInternalSymbol = function (symbol) {
-  var aryData = symbol.split('.')
-  var symbolUpper = symbol.toUpperCase()
-  var arySymbol = ''
-  arySymbol = aryData[0].split('_')
+  var aryData = symbol.split(".");
+  var symbolUpper = symbol.toUpperCase();
+  var arySymbol = "";
+  arySymbol = aryData[0].split("_");
   // console.log(symbol,aryData,arySymbol,66666666666)
   if (arySymbol.length === 3) {
-    arySymbol[0] = arySymbol[0] + '_' + arySymbol[1]
-    arySymbol[1] = arySymbol[2]
+    arySymbol[0] = arySymbol[0] + "_" + arySymbol[1];
+    arySymbol[1] = arySymbol[2];
   }
-  var market = parseInt(arySymbol[1])
-  var internalSymbol = arySymbol[0]
+  var market = parseInt(arySymbol[1]);
+  var internalSymbol = arySymbol[0];
 
-  if (internalSymbol.indexOf('-') > 0) {
-    var aryValue = internalSymbol.split('-')
-    internalSymbol = aryValue[1]
+  if (internalSymbol.indexOf("-") > 0) {
+    var aryValue = internalSymbol.split("-");
+    internalSymbol = aryValue[1];
   }
 
-  return { Market: market, Symbol: internalSymbol }
+  return { Market: market, Symbol: internalSymbol };
   /*
 
     if (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper))    //美股
@@ -540,51 +813,61 @@
         return { Market:market, Symbol:aryData[0] };
     }
     */
-}
+};
 HQData.GetMinuteApiUrl = function (symbol, dayCount) {
-
-  var internalSymbol = HQData.GetInternalSymbol(symbol)
-  console.log('查看', internalSymbol)
+  var internalSymbol = HQData.GetInternalSymbol(symbol);
+  console.log("查看", internalSymbol);
   // var url=`http://push2his.eastmoney.com/api/qt/stock/trends2/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&ndays=1&iscr=0&iscca=0`
   // var url = `http://api.mifeng.ws/api/futures/kline?time=1&period=day&symbol=FCPO&type=1` // ====
-  var url = ''
-  const kLines = JSON.parse(window.localStorage.getItem('kLine'))
-  console.log('kLines===', kLines)
-  if (kLines.type === 'IN' ||kLines.type === 'US') {
-     url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`
-  }
-  if (kLines.type === 'qh') {
-    url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&stockType=${kLines.type}`
-     // url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
-    // url = `http://api-v1-f.js-stock.top/getkine?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&key=jssj2023key`
-  }
+  var url = "";
+  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
+  console.log("kLines===", kLines);
+  // if (kLines.type === 'IN' ||kLines.type === 'US') {
+  url =
+    window.globalVar +
+    `api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`;
+  // }
+  // if (kLines.type === 'qh') {
+  // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&stockType=${kLines.type}`
+  // url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
+  // url = `http://api-v1-f.js-stock.top/getkine?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&key=jssj2023key`
+  // }
   // var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
   // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}`
 
-  return { Url: url, Symbol: symbol, InternalSymbol: internalSymbol, DayCount: dayCount }
-}
+  return {
+    Url: url,
+    Symbol: symbol,
+    InternalSymbol: internalSymbol,
+    DayCount: dayCount,
+  };
+};
 
-HQData.IsSHSZ = function (symbol) { // 是否是A股
-  return HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZ(symbol)
-}
+HQData.IsSHSZ = function (symbol) {
+  // 是否是A股
+  return HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZ(symbol);
+};
 
-HQData.IsChinaFutures = function (symbol) { // 国内期货
-  return HQChart.Chart.MARKET_SUFFIX_NAME.IsChinaFutures(symbol)
-}
+HQData.IsChinaFutures = function (symbol) {
+  // 国内期货
+  return HQChart.Chart.MARKET_SUFFIX_NAME.IsChinaFutures(symbol);
+};
 
-HQData.IsShowAvPrice = function (upperSymbol) { // 是否显示均价
-  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(upperSymbol)) return false
-  if (upperSymbol === 'UDI_100.ET') return false
+HQData.IsShowAvPrice = function (upperSymbol) {
+  // 是否显示均价
+  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(upperSymbol)) return false;
+  if (upperSymbol === "UDI_100.ET") return false;
 
-  return true
-}
+  return true;
+};
 // 是否显示第2个成交量图
 HQData.IsShowVolChart = function (upperSymbol) {
-  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) return false
-  if (upperSymbol === 'UDI_100.ET') return false
+  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))
+    return false;
+  if (upperSymbol === "UDI_100.ET") return false;
 
-  return true
-}
+  return true;
+};
 
 /// ////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -592,282 +875,272 @@
 //
 HQData.GetCustomTradeTimeData = function (key) {
   // 美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗????
-  if (key === 'IPE_G') {
+  if (key === "IPE_G") {
     // 7:50-6:00
-    var data =
-        {
-          Name: '7:50-6:00',
-          Data:
-            [
-              { Start: 750, End: 2359 },
-              { Start: 0, End: 600 }
-            ],
-          Coordinate:
-            {
-              Full: // 完整模式
-                [
-                  { Value: 800, Text: '8:00' },
-                  { Value: 1000, Text: '10:00' },
-                  { Value: 1200, Text: '12:00' },
-                  { Value: 1400, Text: '14:00' },
-                  { Value: 1600, Text: '16:00' },
-                  { Value: 1800, Text: '18:00' },
-                  { Value: 2000, Text: '20:00' },
-                  { Value: 2200, Text: '22:00' },
-                  { Value: 0, Text: '0:00' },
-                  { Value: 200, Text: '2:00' },
-                  { Value: 400, Text: '4:00' },
-                  { Value: 600, Text: '6:00' }
-                ],
-              Simple: // 简洁模式
-                [
-                  { Value: 800, Text: '8:00' },
-                  { Value: 1200, Text: '12:00' },
-                  { Value: 1600, Text: '16:00' },
-                  { Value: 2000, Text: '20:00' },
-                  { Value: 0, Text: '0:00' },
-                  { Value: 400, Text: '4:00' },
-                  { Value: 600, Text: '6:00' }
-                ],
-              Min: // 最小模式
-                [
-                  { Value: 800, Text: '8:00' },
-                  { Value: 2000, Text: '20:00' },
-                  { Value: 600, Text: '6:00' }
-                ]
-            }
-        }
-
-    return data
-  } else if (key === 'IPE_G_2') { // ID=0 08:50-07:00
     var data = {
-      Name: '08:50-07:00',
-      Data:
-            [
-              { Start: 850, End: 2359 },
-              { Start: 0, End: 700 }
-            ],
-      Coordinate:
-            {
-              Full: // 完整模式
-                [
-                  { Value: 900, Text: '9:00' },
-                  { Value: 1100, Text: '11:00' },
-                  { Value: 1300, Text: '13:00' },
-                  { Value: 1500, Text: '15:00' },
-                  { Value: 1700, Text: '17:00' },
-                  { Value: 1900, Text: '19:00' },
-                  { Value: 2100, Text: '21:00' },
-                  { Value: 2300, Text: '23:00' },
-                  { Value: 1, Text: '1:00' },
-                  { Value: 300, Text: '3:00' },
-                  { Value: 500, Text: '5:00' },
-                  { Value: 700, Text: '7:00' }
-                ],
-              Simple: // 简洁模式
-                [
-                  { Value: 900, Text: '9:00' },
-                  { Value: 1300, Text: '13:00' },
-                  { Value: 1700, Text: '17:00' },
-                  { Value: 2100, Text: '21:00' },
-                  { Value: 1, Text: '1:00' },
-                  { Value: 500, Text: '5:00' },
-                  { Value: 700, Text: '7:00' }
-                ],
-              Min: // 最小模式
-                [
-                  { Value: 900, Text: '9:00' },
-                  { Value: 2100, Text: '21:00' },
-                  { Value: 700, Text: '7:00' }
-                ]
-            }
-    }
+      Name: "7:50-6:00",
+      Data: [
+        { Start: 750, End: 2359 },
+        { Start: 0, End: 600 },
+      ],
+      Coordinate: {
+        // 完整模式
+        Full: [
+          { Value: 800, Text: "8:00" },
+          { Value: 1000, Text: "10:00" },
+          { Value: 1200, Text: "12:00" },
+          { Value: 1400, Text: "14:00" },
+          { Value: 1600, Text: "16:00" },
+          { Value: 1800, Text: "18:00" },
+          { Value: 2000, Text: "20:00" },
+          { Value: 2200, Text: "22:00" },
+          { Value: 0, Text: "0:00" },
+          { Value: 200, Text: "2:00" },
+          { Value: 400, Text: "4:00" },
+          { Value: 600, Text: "6:00" },
+        ],
+        // 简洁模式
+        Simple: [
+          { Value: 800, Text: "8:00" },
+          { Value: 1200, Text: "12:00" },
+          { Value: 1600, Text: "16:00" },
+          { Value: 2000, Text: "20:00" },
+          { Value: 0, Text: "0:00" },
+          { Value: 400, Text: "4:00" },
+          { Value: 600, Text: "6:00" },
+        ],
+        // 最小模式
+        Min: [
+          { Value: 800, Text: "8:00" },
+          { Value: 2000, Text: "20:00" },
+          { Value: 600, Text: "6:00" },
+        ],
+      },
+    };
 
-    return data
+    return data;
+  } else if (key === "IPE_G_2") {
+    // ID=0 08:50-07:00
+    var data = {
+      Name: "08:50-07:00",
+      Data: [
+        { Start: 850, End: 2359 },
+        { Start: 0, End: 700 },
+      ],
+      Coordinate: {
+        // 完整模式
+        Full: [
+          { Value: 900, Text: "9:00" },
+          { Value: 1100, Text: "11:00" },
+          { Value: 1300, Text: "13:00" },
+          { Value: 1500, Text: "15:00" },
+          { Value: 1700, Text: "17:00" },
+          { Value: 1900, Text: "19:00" },
+          { Value: 2100, Text: "21:00" },
+          { Value: 2300, Text: "23:00" },
+          { Value: 1, Text: "1:00" },
+          { Value: 300, Text: "3:00" },
+          { Value: 500, Text: "5:00" },
+          { Value: 700, Text: "7:00" },
+        ],
+        // 简洁模式
+        Simple: [
+          { Value: 900, Text: "9:00" },
+          { Value: 1300, Text: "13:00" },
+          { Value: 1700, Text: "17:00" },
+          { Value: 2100, Text: "21:00" },
+          { Value: 1, Text: "1:00" },
+          { Value: 500, Text: "5:00" },
+          { Value: 700, Text: "7:00" },
+        ],
+        // 最小模式
+        Min: [
+          { Value: 900, Text: "9:00" },
+          { Value: 2100, Text: "21:00" },
+          { Value: 700, Text: "7:00" },
+        ],
+      },
+    };
+
+    return data;
   }
-}
+};
 
 /// /////////////////////////////////////////////////////////////////////////
 // 美股走势图X轴坐标
 //
 /// /////////////////////////////////////////////////////////////////////////
 HQData.CreateUSAData = function (minuteStringData) {
-  const TIME_SPLIT =
-    [
-      { Start: 2130, End: 2359 },
-      { Start: 0, End: 400 }
-    ]
+  const TIME_SPLIT = [
+    { Start: 2130, End: 2359 },
+    { Start: 0, End: 400 },
+  ];
 
-  return minuteStringData.CreateTimeData(TIME_SPLIT)
-}
+  return minuteStringData.CreateTimeData(TIME_SPLIT);
+};
 
 HQData.GetUSAData = function (upperSymbol, width) {
-  const SHZE_MINUTE_X_COORDINATE =
-    {
-      Full: // 完整模式
-        [
-          [0, 0, 'rgb(200,200,200)', '21:30'],
-          [30, 1, 'RGB(200,200,200)', '22:00'],
-          [60, 0, 'RGB(200,200,200)', '22:30'],
-          [90, 1, 'RGB(200,200,200)', '23:00'],
-          [120, 0, 'RGB(200,200,200)', '23:30'],
-          [150, 1, 'RGB(200,200,200)', '00:00'],
-          [180, 0, 'RGB(200,200,200)', '00:30'],
-          [210, 1, 'RGB(200,200,200)', '01:00'],
-          [240, 0, 'RGB(200,200,200)', '01:30'],
-          [270, 1, 'RGB(200,200,200)', '02:00'],
-          [300, 0, 'RGB(200,200,200)', '02:30'],
-          [330, 1, 'RGB(200,200,200)', '03:00'],
-          [360, 0, 'RGB(200,200,200)', '03:30'],
-          [390, 1, 'RGB(200,200,200)', '04:00']
-        ],
-      Simple: // 简洁模式
-        [
-          [0, 0, 'rgb(200,200,200)', '21:30'],
-          [90, 1, 'RGB(200,200,200)', '23:00'],
-          [150, 1, 'RGB(200,200,200)', '00:00'],
-          [270, 1, 'RGB(200,200,200)', '02:00'],
-          [390, 1, 'RGB(200,200,200)', '04:00']
-        ],
-      Min: // 最小模式
-        [
-          [0, 0, 'rgb(200,200,200)', '21:30'],
-          [210, 1, 'RGB(200,200,200)', '01:00'],
-          [390, 1, 'RGB(200,200,200)', '04:00']
-        ],
+  const SHZE_MINUTE_X_COORDINATE = {
+    // 完整模式
+    Full: [
+      [0, 0, "rgb(200,200,200)", "21:30"],
+      [30, 1, "RGB(200,200,200)", "22:00"],
+      [60, 0, "RGB(200,200,200)", "22:30"],
+      [90, 1, "RGB(200,200,200)", "23:00"],
+      [120, 0, "RGB(200,200,200)", "23:30"],
+      [150, 1, "RGB(200,200,200)", "00:00"],
+      [180, 0, "RGB(200,200,200)", "00:30"],
+      [210, 1, "RGB(200,200,200)", "01:00"],
+      [240, 0, "RGB(200,200,200)", "01:30"],
+      [270, 1, "RGB(200,200,200)", "02:00"],
+      [300, 0, "RGB(200,200,200)", "02:30"],
+      [330, 1, "RGB(200,200,200)", "03:00"],
+      [360, 0, "RGB(200,200,200)", "03:30"],
+      [390, 1, "RGB(200,200,200)", "04:00"],
+    ],
+    // 简洁模式
+    Simple: [
+      [0, 0, "rgb(200,200,200)", "21:30"],
+      [90, 1, "RGB(200,200,200)", "23:00"],
+      [150, 1, "RGB(200,200,200)", "00:00"],
+      [270, 1, "RGB(200,200,200)", "02:00"],
+      [390, 1, "RGB(200,200,200)", "04:00"],
+    ],
+    // 最小模式
+    Min: [
+      [0, 0, "rgb(200,200,200)", "21:30"],
+      [210, 1, "RGB(200,200,200)", "01:00"],
+      [390, 1, "RGB(200,200,200)", "04:00"],
+    ],
 
-      Count: 391, //! ! 一共的分钟数据个数,不要填错了
-      MiddleCount: 195, // Count/2 就可以。
+    Count: 391, //! ! 一共的分钟数据个数,不要填错了
+    MiddleCount: 195, // Count/2 就可以。
 
-      GetData: function (width) {
-        if (width < 200) return this.Min
-        else if (width < 400) return this.Simple
+    GetData: function (width) {
+      if (width < 200) return this.Min;
+      else if (width < 400) return this.Simple;
 
-        return this.Full
-      }
-    }
+      return this.Full;
+    },
+  };
 
-  return SHZE_MINUTE_X_COORDINATE
-}
+  return SHZE_MINUTE_X_COORDINATE;
+};
 
 /// /////////////////////////////////////////////////////////////////////////
 // A股走势图X轴坐标
 //
 /// ////////////////////////////////////////////////////////////////////////
 HQData.CreateSHSZData = function (minuteStringData) {
-  const TIME_SPLIT =
-    [
-      { Start: 930, End: 1130 },
-      { Start: 1301, End: 1500 }
-    ]
+  const TIME_SPLIT = [
+    { Start: 930, End: 1130 },
+    { Start: 1301, End: 1500 },
+  ];
 
-  return minuteStringData.CreateTimeData(TIME_SPLIT)
-}
+  return minuteStringData.CreateTimeData(TIME_SPLIT);
+};
 
 HQData.GetSHSZData = function (upperSymbol, width) {
-  const SHZE_MINUTE_X_COORDINATE =
-    {
-      Full: // 完整模式
-        [
-          [0, 0, 'rgb(200,200,200)', '09:30'],
-          [31, 0, 'RGB(200,200,200)', '10:00'],
-          [61, 0, 'RGB(200,200,200)', '10:30'],
-          [91, 0, 'RGB(200,200,200)', '11:00'],
-          [120, 1, 'RGB(200,200,200)', '11:30'],
-          [150, 0, 'RGB(200,200,200)', '13:30'],
-          [180, 0, 'RGB(200,200,200)', '14:00'],
-          [210, 0, 'RGB(200,200,200)', '14:30'],
-          [240, 1, 'RGB(200,200,200)', '15:00'] // 15:00
-        ],
-      Simple: // 简洁模式
-        [
-          [0, 0, 'rgb(200,200,200)', '09:30'],
-          [61, 0, 'RGB(200,200,200)', '10:30'],
-          [120, 1, 'RGB(200,200,200)', '11:30'],
-          [180, 0, 'RGB(200,200,200)', '14:00'],
-          [240, 1, 'RGB(200,200,200)', '15:00']
-        ],
-      Min: // 最小模式
-        [
-          [0, 0, 'rgb(200,200,200)', '09:30'],
-          [120, 1, 'RGB(200,200,200)', '11:30'],
-          [240, 1, 'RGB(200,200,200)', '15:00']
-        ],
+  const SHZE_MINUTE_X_COORDINATE = {
+    // 完整模式
+    Full: [
+      [0, 0, "rgb(200,200,200)", "09:30"],
+      [31, 0, "RGB(200,200,200)", "10:00"],
+      [61, 0, "RGB(200,200,200)", "10:30"],
+      [91, 0, "RGB(200,200,200)", "11:00"],
+      [120, 1, "RGB(200,200,200)", "11:30"],
+      [150, 0, "RGB(200,200,200)", "13:30"],
+      [180, 0, "RGB(200,200,200)", "14:00"],
+      [210, 0, "RGB(200,200,200)", "14:30"],
+      [240, 1, "RGB(200,200,200)", "15:00"], // 15:00
+    ],
+    // 简洁模式
+    Simple: [
+      [0, 0, "rgb(200,200,200)", "09:30"],
+      [61, 0, "RGB(200,200,200)", "10:30"],
+      [120, 1, "RGB(200,200,200)", "11:30"],
+      [180, 0, "RGB(200,200,200)", "14:00"],
+      [240, 1, "RGB(200,200,200)", "15:00"],
+    ],
+    // 最小模式
+    Min: [
+      [0, 0, "rgb(200,200,200)", "09:30"],
+      [120, 1, "RGB(200,200,200)", "11:30"],
+      [240, 1, "RGB(200,200,200)", "15:00"],
+    ],
 
-      Count: 241, //! ! 一共的分钟数据个数,不要填错了
-      MiddleCount: 121, // Count/2 就可以。
+    Count: 241, //! ! 一共的分钟数据个数,不要填错了
+    MiddleCount: 121, // Count/2 就可以。
 
-      GetData: function (width) {
-        if (width < 200) return this.Min
-        else if (width < 400) return this.Simple
+    GetData: function (width) {
+      if (width < 200) return this.Min;
+      else if (width < 400) return this.Simple;
 
-        return this.Full
-      }
-    }
+      return this.Full;
+    },
+  };
 
-  return SHZE_MINUTE_X_COORDINATE
-}
+  return SHZE_MINUTE_X_COORDINATE;
+};
 
 /// ////////////////////////////////////////////////////////////////////////////////////
 // 港股走势图X轴坐标
 //
 /// ////////////////////////////////////////////////////////////////////////////////////
 HQData.CreateHKData = function (minuteStringData) {
-  const TIME_SPLIT =
-    [
-      { Start: 930, End: 1200 },
-      { Start: 1301, End: 1600 }
-    ]
+  const TIME_SPLIT = [
+    { Start: 930, End: 1200 },
+    { Start: 1301, End: 1600 },
+  ];
 
-  return minuteStringData.CreateTimeData(TIME_SPLIT)
-}
+  return minuteStringData.CreateTimeData(TIME_SPLIT);
+};
 
 HQData.GetHKData = function (upperSymbol, width) {
-  const HK_MINUTE_X_COORDINATE =
-    {
-      Full: // 完整模式
-        [
-          [0, 1, 'RGB(200,200,200)', '09:30'],
-          [30, 0, 'RGB(200,200,200)', '10:00'],
-          [60, 1, 'RGB(200,200,200)', '10:30'],
-          [90, 0, 'RGB(200,200,200)', '11:00'],
-          [120, 1, 'RGB(200,200,200)', '11:30'],
-          [151, 0, 'RGB(200,200,200)', '13:00'],
-          [181, 1, 'RGB(200,200,200)', '13:30'],
-          [211, 0, 'RGB(200,200,200)', '14:00'],
-          [241, 1, 'RGB(200,200,200)', '14:30'],
-          [271, 0, 'RGB(200,200,200)', '15:00'],
-          [301, 1, 'RGB(200,200,200)', '15:30'],
-          [331, 1, 'RGB(200,200,200)', '16:00']
-        ],
-      Simple: // 简洁模式
-        [
-          [0, 1, 'RGB(200,200,200)', '09:30'],
-          [60, 1, 'RGB(200,200,200)', '10:30'],
-          [120, 1, 'RGB(200,200,200)', '11:30'],
-          [211, 0, 'RGB(200,200,200)', '14:00'],
-          [271, 0, 'RGB(200,200,200)', '15:00'],
-          [331, 1, 'RGB(200,200,200)', '16:00']
-        ],
-      Min: // 最小模式
-        [
-          [0, 1, 'RGB(200,200,200)', '09:30'],
-          [151, 0, 'RGB(200,200,200)', '13:00'],
-          [331, 1, 'RGB(200,200,200)', '16:00']
-        ],
+  const HK_MINUTE_X_COORDINATE = {
+    // 完整模式
+    Full: [
+      [0, 1, "RGB(200,200,200)", "09:30"],
+      [30, 0, "RGB(200,200,200)", "10:00"],
+      [60, 1, "RGB(200,200,200)", "10:30"],
+      [90, 0, "RGB(200,200,200)", "11:00"],
+      [120, 1, "RGB(200,200,200)", "11:30"],
+      [151, 0, "RGB(200,200,200)", "13:00"],
+      [181, 1, "RGB(200,200,200)", "13:30"],
+      [211, 0, "RGB(200,200,200)", "14:00"],
+      [241, 1, "RGB(200,200,200)", "14:30"],
+      [271, 0, "RGB(200,200,200)", "15:00"],
+      [301, 1, "RGB(200,200,200)", "15:30"],
+      [331, 1, "RGB(200,200,200)", "16:00"],
+    ],
+    // 简洁模式
+    Simple: [
+      [0, 1, "RGB(200,200,200)", "09:30"],
+      [60, 1, "RGB(200,200,200)", "10:30"],
+      [120, 1, "RGB(200,200,200)", "11:30"],
+      [211, 0, "RGB(200,200,200)", "14:00"],
+      [271, 0, "RGB(200,200,200)", "15:00"],
+      [331, 1, "RGB(200,200,200)", "16:00"],
+    ],
+    // 最小模式
+    Min: [
+      [0, 1, "RGB(200,200,200)", "09:30"],
+      [151, 0, "RGB(200,200,200)", "13:00"],
+      [331, 1, "RGB(200,200,200)", "16:00"],
+    ],
 
-      Count: 331,
-      MiddleCount: 150,
+    Count: 331,
+    MiddleCount: 150,
 
-      GetData: function (width) {
-        if (width < 200) return this.Min
-        else if (width < 450) return this.Simple
+    GetData: function (width) {
+      if (width < 200) return this.Min;
+      else if (width < 450) return this.Simple;
 
-        return this.Full
-      }
-    }
-  return HK_MINUTE_X_COORDINATE
-}
+      return this.Full;
+    },
+  };
+  return HK_MINUTE_X_COORDINATE;
+};
 
 /// /////////////////////////////////////////////////////////////////////////////////////
 //  外汇走势图X轴坐标
@@ -875,149 +1148,145 @@
 /// /////////////////////////////////////////////////////////////////////////////////////
 HQData.CreateForeignExchangeData = function (minuteStringData) {
   // 外汇 5:00 - 4:59
-  const TIME_SPLIT =
-    [
-      { Start: 500, End: 2359 },
-      { Start: 0, End: 459 }
-    ]
+  const TIME_SPLIT = [
+    { Start: 500, End: 2359 },
+    { Start: 0, End: 459 },
+  ];
 
-  return minuteStringData.CreateTimeData(TIME_SPLIT)
-}
+  return minuteStringData.CreateTimeData(TIME_SPLIT);
+};
 
 HQData.GetForeignExchangeData = function (upperSymbol, width) {
-  const FOREX_MINUTE_X_COORDINATE =
-    {
-      Full: // 完整模式
-        [
-          [0, 1, 'RGB(200,200,200)', '05:00'],
-          [120, 1, 'RGB(200,200,200)', '07:00'],
-          [240, 1, 'RGB(200,200,200)', '09:00'],
-          [360, 1, 'RGB(200,200,200)', '11:00'],
-          [480, 0, 'RGB(200,200,200)', '13:00'],
-          [600, 1, 'RGB(200,200,200)', '15:00'],
-          [720, 1, 'RGB(200,200,200)', '17:00'],
-          [840, 1, 'RGB(200,200,200)', '19:00'],
-          [960, 1, 'RGB(200,200,200)', '21:00'],
-          [1080, 1, 'RGB(200,200,200)', '23:00'],
-          [1200, 1, 'RGB(200,200,200)', '01:00'],
-          [1320, 1, 'RGB(200,200,200)', '03:00'],
-          [1439, 1, 'RGB(200,200,200)', '04:59']
-        ],
-      Simple: // 简洁模式
-        [
-          [0, 1, 'RGB(200,200,200)', '06:00'],
-          [240, 1, 'RGB(200,200,200)', '10:00'],
-          [480, 0, 'RGB(200,200,200)', '14:00'],
-          [720, 1, 'RGB(200,200,200)', '18:00'],
-          [960, 1, 'RGB(200,200,200)', '22:00'],
-          [1200, 1, 'RGB(200,200,200)', '02:00']
-        ],
-      Min: // 最小模式
-        [
-          [0, 1, 'RGB(200,200,200)', '06:00'],
-          [480, 0, 'RGB(200,200,200)', '14:00'],
-          [960, 1, 'RGB(200,200,200)', '22:00']
-        ],
+  const FOREX_MINUTE_X_COORDINATE = {
+    // 完整模式
+    Full: [
+      [0, 1, "RGB(200,200,200)", "05:00"],
+      [120, 1, "RGB(200,200,200)", "07:00"],
+      [240, 1, "RGB(200,200,200)", "09:00"],
+      [360, 1, "RGB(200,200,200)", "11:00"],
+      [480, 0, "RGB(200,200,200)", "13:00"],
+      [600, 1, "RGB(200,200,200)", "15:00"],
+      [720, 1, "RGB(200,200,200)", "17:00"],
+      [840, 1, "RGB(200,200,200)", "19:00"],
+      [960, 1, "RGB(200,200,200)", "21:00"],
+      [1080, 1, "RGB(200,200,200)", "23:00"],
+      [1200, 1, "RGB(200,200,200)", "01:00"],
+      [1320, 1, "RGB(200,200,200)", "03:00"],
+      [1439, 1, "RGB(200,200,200)", "04:59"],
+    ],
+    // 简洁模式
+    Simple: [
+      [0, 1, "RGB(200,200,200)", "06:00"],
+      [240, 1, "RGB(200,200,200)", "10:00"],
+      [480, 0, "RGB(200,200,200)", "14:00"],
+      [720, 1, "RGB(200,200,200)", "18:00"],
+      [960, 1, "RGB(200,200,200)", "22:00"],
+      [1200, 1, "RGB(200,200,200)", "02:00"],
+    ],
+    // 最小模式
+    Min: [
+      [0, 1, "RGB(200,200,200)", "06:00"],
+      [480, 0, "RGB(200,200,200)", "14:00"],
+      [960, 1, "RGB(200,200,200)", "22:00"],
+    ],
 
-      Count: 1440,
-      MiddleCount: 600,
+    Count: 1440,
+    MiddleCount: 600,
 
-      GetData: function (width) {
-        if (width < 200) return this.Min
-        else if (width < 450) return this.Simple
+    GetData: function (width) {
+      if (width < 200) return this.Min;
+      else if (width < 450) return this.Simple;
 
-        return this.Full
-      }
-    }
+      return this.Full;
+    },
+  };
 
-  return FOREX_MINUTE_X_COORDINATE
-}
+  return FOREX_MINUTE_X_COORDINATE;
+};
 
 /// /////////////////////////////////////////////////////////////////////
 //  美元指数
 //
 /// ////////////////////////////////////////////////////////////////////
 HQData.GetETTimeData = function (upperSymbol, minuteStringData) {
-  if (upperSymbol === 'UDI_100.ET') {
+  if (upperSymbol === "UDI_100.ET") {
     // 美元指数 6:00 - 5:59
-    const TIME_SPLIT =
-        [
-          { Start: 600, End: 2359 },
-          { Start: 0, End: 559 }
-        ]
+    const TIME_SPLIT = [
+      { Start: 600, End: 2359 },
+      { Start: 0, End: 559 },
+    ];
 
-    return minuteStringData.CreateTimeData(TIME_SPLIT)
+    return minuteStringData.CreateTimeData(TIME_SPLIT);
   }
-}
+};
 
 HQData.GetETData = function (upperSymbol) {
-  if (upperSymbol === 'UDI_100.ET') {
-    const data =
-        {
-          Full: // 完整模式
-            [
-              [0, 1, 'RGB(200,200,200)', '06:00'],
-              [120, 1, 'RGB(200,200,200)', '08:00'],
-              [240, 1, 'RGB(200,200,200)', '10:00'],
-              [360, 1, 'RGB(200,200,200)', '12:00'],
-              [480, 0, 'RGB(200,200,200)', '14:00'],
-              [600, 1, 'RGB(200,200,200)', '16:00'],
-              [720, 1, 'RGB(200,200,200)', '18:00'],
-              [840, 1, 'RGB(200,200,200)', '20:00'],
-              [960, 1, 'RGB(200,200,200)', '22:00'],
-              [1080, 1, 'RGB(200,200,200)', '0:00'],
-              [1200, 1, 'RGB(200,200,200)', '02:00'],
-              [1320, 1, 'RGB(200,200,200)', '04:00'],
-              [1439, 1, 'RGB(200,200,200)', '05:59']
-            ],
-          Simple: // 简洁模式
-            [
-              [0, 1, 'RGB(200,200,200)', '06:00'],
-              [240, 1, 'RGB(200,200,200)', '10:00'],
-              [480, 0, 'RGB(200,200,200)', '14:00'],
-              [720, 1, 'RGB(200,200,200)', '18:00'],
-              [960, 1, 'RGB(200,200,200)', '22:00'],
-              [1200, 1, 'RGB(200,200,200)', '02:00'],
-              [1439, 1, 'RGB(200,200,200)', '05:59']
-            ],
-          Min: // 最小模式
-            [
-              [0, 1, 'RGB(200,200,200)', '06:00'],
-              [720, 1, 'RGB(200,200,200)', '18:00'],
-              [1439, 1, 'RGB(200,200,200)', '05:59']
-            ],
+  if (upperSymbol === "UDI_100.ET") {
+    const data = {
+      // 完整模式
+      Full: [
+        [0, 1, "RGB(200,200,200)", "06:00"],
+        [120, 1, "RGB(200,200,200)", "08:00"],
+        [240, 1, "RGB(200,200,200)", "10:00"],
+        [360, 1, "RGB(200,200,200)", "12:00"],
+        [480, 0, "RGB(200,200,200)", "14:00"],
+        [600, 1, "RGB(200,200,200)", "16:00"],
+        [720, 1, "RGB(200,200,200)", "18:00"],
+        [840, 1, "RGB(200,200,200)", "20:00"],
+        [960, 1, "RGB(200,200,200)", "22:00"],
+        [1080, 1, "RGB(200,200,200)", "0:00"],
+        [1200, 1, "RGB(200,200,200)", "02:00"],
+        [1320, 1, "RGB(200,200,200)", "04:00"],
+        [1439, 1, "RGB(200,200,200)", "05:59"],
+      ],
+      // 简洁模式
+      Simple: [
+        [0, 1, "RGB(200,200,200)", "06:00"],
+        [240, 1, "RGB(200,200,200)", "10:00"],
+        [480, 0, "RGB(200,200,200)", "14:00"],
+        [720, 1, "RGB(200,200,200)", "18:00"],
+        [960, 1, "RGB(200,200,200)", "22:00"],
+        [1200, 1, "RGB(200,200,200)", "02:00"],
+        [1439, 1, "RGB(200,200,200)", "05:59"],
+      ],
+      // 最小模式
+      Min: [
+        [0, 1, "RGB(200,200,200)", "06:00"],
+        [720, 1, "RGB(200,200,200)", "18:00"],
+        [1439, 1, "RGB(200,200,200)", "05:59"],
+      ],
 
-          Count: 1440,
-          MiddleCount: 600,
+      Count: 1440,
+      MiddleCount: 600,
 
-          GetData: function (width) {
-            if (width < 200) return this.Min
-            else if (width < 450) return this.Simple
+      GetData: function (width) {
+        if (width < 200) return this.Min;
+        else if (width < 450) return this.Simple;
 
-            return this.Full
-          }
-        }
+        return this.Full;
+      },
+    };
 
-    return data
+    return data;
   }
-}
+};
 
 HQData.GetETDecimal = function (symbol) {
-  var upperSymbol = symbol.toUpperCase()
-  if (upperSymbol === 'UDI_100.ET') return 2
+  var upperSymbol = symbol.toUpperCase();
+  if (upperSymbol === "UDI_100.ET") return 2;
 
-  return 2
-}
+  return 2;
+};
 
 /// ////////////////////////////////////////////////////////////////////////////////
 // K线数据对接
 //
 /// //////////////////////////////////////////////////////////////////////////////
 HQData.GetKLineApiUrl = function (symbol, period, right, option) {
-  console.log(111111, symbol, period, right, option)
+  console.log(111111, symbol, period, right, option);
   // https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=0&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=0.300059&klt=101&fqt=0
 
-  var internalSymbol = HQData.GetInternalSymbol(symbol)
+  var internalSymbol = HQData.GetInternalSymbol(symbol);
   // console.log(internalSymbol,'caonima');
   // if (!internalSymbol.Market) {
   //   internalSymbol.Market = '106'
@@ -1026,20 +1295,22 @@
 
   // var internalPeriod = HQData.GetInternalPeriod(period)
   // var internalRight = HQData.GetInternalRight(right)
-  const kLines = JSON.parse(window.localStorage.getItem('kLine'))
-  if (kLines.type === 'IN' ||kLines.type === 'US') {
-    const interval = ['D', 'W', 'M'][period]
-    var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
-  }
-  const interval2 = [1440, 10080, 10080][period]
+  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
+  // if (kLines.type === 'IN' ||kLines.type === 'US') {
+  const interval = ["D", "W", "M"][period];
+  var url =
+    window.globalVar +
+    `api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`;
+  // }
+  const interval2 = [1440, 10080, 10080][period];
   // const interval2 = [1440, 10080, 43200][period]
-  if (kLines.type === 'qh') {
-    // var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
-    url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${interval2}&stockType=${kLines.type}`
-  }
+  // if (kLines.type === 'qh') {
+  // var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
+  // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${interval2}&stockType=${kLines.type}`
+  // }
   if (option && option.Update === true) {
-    var beginDate = option.End
-    console.log('这是', beginDate)
+    var beginDate = option.End;
+    console.log("这是", beginDate);
     // var url = `http://api.mifeng.ws/api/futures/kline?time=1&period=day&symbol=FCPO&type=1`
     // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}`
   } else {
@@ -1047,207 +1318,217 @@
     // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}`
   }
 
-  return { Url: url, Symbol: symbol, InternalSymbol: internalSymbol, Period: period, Right: right }
-}
+  return {
+    Url: url,
+    Symbol: symbol,
+    InternalSymbol: internalSymbol,
+    Period: period,
+    Right: right,
+  };
+};
 
 HQData.GetMinuteKLineApiUrl = function (symbol, period, right, option) {
-  // https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=0&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=0.300059&klt=101&fqt=0
-
-  var internalSymbol = HQData.GetInternalSymbol(symbol)
-  // console.log(internalSymbol,'caonima');
-  var internalPeriod = HQData.GetInternalPeriod(period)
-  var internalRight = HQData.GetInternalRight(right)
-  console.log(internalPeriod)
-  var url = ''
+  var internalSymbol = HQData.GetInternalSymbol(symbol);
+  var internalPeriod = HQData.GetInternalPeriod(period);
+  var internalRight = HQData.GetInternalRight(right);
+  console.log("internalPeriod", internalPeriod);
+  var url = "";
   if (option && option.Update === true) {
-    var beginDate = option.End
-    // url = `https://kline.mitrade.cc11/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=${beginDate}&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}`
-    // var url = `https://kline.mitrade.cc11/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=${beginDate}&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}`
+    var beginDate = option.End;
   } else {
-    // var url = `http://api-in.js-stock.top/kline?interval=${internalPeriod}&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}`
-    // url = `http://api-in.js-stock.top/kline?interval=${internalPeriod}&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}`
-    const kLines = JSON.parse(window.localStorage.getItem('kLine'))
-    if (kLines.type === 'IN' ||kLines.type === 'US') {
-      url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`
-    }
-    if (kLines.type === 'qh') {
-      const internalPe = internalPeriod === 1 ? 5 : internalPeriod
-      url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${internalPe}&stockType=${kLines.type}`
-      // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${internalPe}&key=jssj2023key`
-    }
+    const kLines = JSON.parse(window.localStorage.getItem("kLine"));
+    url =
+      window.globalVar +
+      `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`;
   }
 
-  return { Url: url, Symbol: symbol, InternalSymbol: internalSymbol, Period: period, Right: right }
-}
+  return {
+    Url: url,
+    Symbol: symbol,
+    InternalSymbol: internalSymbol,
+    Period: period,
+    Right: right,
+  };
+};
 
 HQData.GetInternalPeriod = function (periodID) {
-  var MAP_PERIOD = new Map(
-    [
-      [0, 101], // day
-      [1, 102], // week
-      [2, 103], // month
+  var MAP_PERIOD = new Map([
+    [0, 101], // day
+    [1, 102], // week
+    [2, 103], // month
 
-      [4, 1], // 1min
-      [5, 5], // 5min
-      [6, 15], // 15min
-      [7, 30], // 30min
-      [8, 60] // 60min
-    ]
-  )
+    [4, 1], // 1min
+    [5, 5], // 5min
+    [6, 15], // 15min
+    [7, 30], // 30min
+    [8, 60], // 60min
+  ]);
 
-  return MAP_PERIOD.get(periodID)
-}
+  return MAP_PERIOD.get(periodID);
+};
 
 HQData.GetInternalRight = function (right) {
-  if (right === 0) return 0
-  else if (right === 1) return 1
-  else return 2
-}
+  if (right === 0) return 0;
+  else if (right === 1) return 1;
+  else return 2;
+};
 // 是否支持复权
 HQData.IsEnableRight = function (period, symbol) {
-  var symbolUpper = null
-  symbolUpper = symbol.toUpperCase()
+  var symbolUpper = null;
+  symbolUpper = symbol.toUpperCase();
   // var symbolUpper = symbol.toUpperCase()
-  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZStockA(symbolUpper)) return true
-  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true
+  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZStockA(symbolUpper)) return true;
+  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true;
 
-  var aryData = symbol.split('.')
-  symbolUpper = symbol.toUpperCase()
+  var aryData = symbol.split(".");
+  symbolUpper = symbol.toUpperCase();
   // var symbolUpper = symbol.toUpperCase()
-  var arySymbol = aryData[0].split('_')
-  var market = parseInt(arySymbol[1])
+  var arySymbol = aryData[0].split("_");
+  var market = parseInt(arySymbol[1]);
 
   if (HQChart.Chart.MARKET_SUFFIX_NAME.IsHK(symbolUpper)) {
-    if (market === 100) return false // 指数不支持复权
-    return true
+    if (market === 100) return false; // 指数不支持复权
+    return true;
   }
 
   if (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper)) {
-    if (market === 100) return false // 指数不支持复权
-    return true
+    if (market === 100) return false; // 指数不支持复权
+    return true;
   }
 
-  return false
-}
+  return false;
+};
 
 HQData.RequestFlowCapitalData = function (data, callback) {
-  data.PreventDefault = true
-  var hqChartData = {code: 0, stock: []} // 如果没有数据就填空
+  data.PreventDefault = true;
+  var hqChartData = { code: 0, stock: [] }; // 如果没有数据就填空
 
   if (data.Self.IsDestroy === false) {
-    callback(hqChartData)
+    callback(hqChartData);
   }
-}
-
+};
+// 日线全量数据下载
 HQData.RequestHistoryData = function (data, callback) {
-  data.PreventDefault = true
-  var symbol = data.Request.Data.symbol // 请求的股票代码
-  var period = data.Self.Period // 周期
-  var right = data.Self.Right // 复权
+  data.PreventDefault = true;
+  var symbol = data.Request.Data.symbol; // 请求的股票代码
+  var period = data.Self.Period; // 周期
+  var right = data.Self.Right; // 复权
 
-  console.log(`[HQData::RequestHistoryData] Symbol=${symbol}`)
-  var obj = HQData.GetKLineApiUrl(symbol, period, right, null)
+  var obj = HQData.GetKLineApiUrl(symbol, period, right, null);
 
-  $.ajax(
-    {
-      url: obj.Url,
-      type: 'GET',
-      success: function (recvData) {
-        HQData.RecvHistoryData(recvData, callback, { Data: data, Obj: obj })
-      }
-    })
-}
+  console.log(
+    `日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`,
+    obj.Url
+  );
+
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function (recvData) {
+      HQData.RecvHistoryData(recvData, callback, { Data: data, Obj: obj });
+    },
+  });
+};
 
 HQData.RecvHistoryData = function (recvData, callback, option) {
   // var data = recvData.data
-  console.log(111111212121, recvData)
-  var hqChartData = {code: 0, data: []}
-  hqChartData.symbol = option.Obj.Symbol
-  // hqChartData.name = option.name
-  // hqChartData.name = '123aa'
+
+  var hqChartData = { code: 0, data: [] };
+  hqChartData.symbol = option.Obj.Symbol;
+  // hqChartData.name = data.name
+  hqChartData.name = "123";
   // console.log('data.name', data.name)
-  const kLines = JSON.parse(window.localStorage.getItem('kLine'))
+  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
   // var yClose = data.preKPrice
-  var yClose = '500'
-  recvData = JSON.parse(recvData)
-  if (kLines.type === 'IN' ||kLines.type === 'US') {
+  var yClose = "500";
+  recvData = JSON.parse(recvData);
+
+  if (kLines.type === "SZHB") {
+    recvData = recvData.data;
+    recvData.reverse();
     for (var i = 0; i < recvData.length; ++i) {
-      var strItem = recvData[i]
+      var strItem = recvData[i];
       //   var item = strItem.split(',')
       // var today = new Date(strItem.t)
       // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-      var date = moment.unix(strItem.t).format('YYYYMMDD')
+      var date = moment.unix(strItem.id).format("YYYYMMDD");
       //
-      var open = parseFloat(strItem.o)
-      var close = parseFloat(strItem.c)
-      var high = parseFloat(strItem.h)
-      var low = parseFloat(strItem.l)
-      var vol = parseFloat(strItem.v) * 100
-      var amount = parseFloat((Math.random() * 100) + '')
+      var open = parseFloat(strItem.open);
+      var close = parseFloat(strItem.close);
+      var high = parseFloat(strItem.high);
+      var low = parseFloat(strItem.low);
+      var vol = parseFloat(strItem.vol) * 100;
+      var amount = parseFloat(Math.random() * 100 + "");
       //
-      var newItem = [date, yClose, open, high, low, close, vol, amount]
-      hqChartData.data.push(newItem)
+      var newItem = [date, yClose, open, high, low, close, vol, amount];
+
+      hqChartData.data.push(newItem);
       //
-      yClose = close
+      yClose = close;
     }
-  }
-  if (kLines.type === 'qh') {
-    console.log('recvData====', recvData)
-    for (var x = 0; x < recvData.list.length; ++x) {
-      var strItem2 = recvData.list[x]
+  } else {
+    for (var i = 0; i < recvData.length; ++i) {
+      var strItem = recvData[i];
+      strItem.t = strItem.t || strItem.id;
+      strItem.c = strItem.c || strItem.close;
+      strItem.h = strItem.h || strItem.high;
+      strItem.l = strItem.l || strItem.low;
+      strItem.v = strItem.v || strItem.vol;
       //   var item = strItem.split(',')
       // var today = new Date(strItem.t)
       // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-      var date2 = moment(strItem2.ctm).format('YYYYMMDD')
+      var date = moment.unix(strItem.t).format("YYYYMMDD");
       //
-      var open2 = parseFloat(strItem2.open)
-      var close2 = parseFloat(strItem2.close)
-      var high2 = parseFloat(strItem2.high)
-      var low2 = parseFloat(strItem2.low)
-      var vol2 = 100
-      // var vol2 = parseFloat(strItem2.v) * 100
-      var amount2 = parseFloat((Math.random() * 100) + '')
+      var open = parseFloat(strItem.o);
+      var close = parseFloat(strItem.c);
+      var high = parseFloat(strItem.h);
+      var low = parseFloat(strItem.l);
+      var vol = parseFloat(strItem.v) * 100;
+      var amount = parseFloat(Math.random() * 100 + "");
       //
-      var newItem2 = [date2, yClose, open2, high2, low2, close2, vol2, amount2]
-      hqChartData.data.push(newItem2)
+      var newItem = [date, yClose, open, high, low, close, vol, amount];
+
+      hqChartData.data.push(newItem);
       //
-      yClose = close
+      yClose = close;
     }
   }
 
   if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvHistoryData] hqchartData ', hqChartData)
-    callback(hqChartData)
+    HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData);
+    callback(hqChartData);
   }
-}
-
+};
+// 日线实时数据更新
 HQData.RequestRealtimeData = function (data, callback) {
-  data.PreventDefault = true
-  var symbol = data.Request.Data.symbol[0] // 请求的股票代码
-  var period = data.Self.Period // 周期
-  var right = data.Self.Right // 复权
-  var dateRange = data.Self.ChartPaint[0].Data.GetDateRange()
+  data.PreventDefault = true;
+  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
+  var period = data.Self.Period; // 周期
+  var right = data.Self.Right; // 复权
+  var dateRange = data.Self.ChartPaint[0].Data.GetDateRange();
 
-  var option = { Update: true }
-  if (dateRange && dateRange.End && dateRange.End.Date > 0) option.End = dateRange.End.Date
+  var option = { Update: true };
+  if (dateRange && dateRange.End && dateRange.End.Date > 0)
+    option.End = dateRange.End.Date;
 
-  console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`)
-  var obj = HQData.GetKLineApiUrl(symbol, period, right, option)
+  console.log(
+    `日线实时数据更新 [HQData::RequestRealtimeData] Symbol=${symbol}`
+  );
+  var obj = HQData.GetKLineApiUrl(symbol, period, right, option);
 
-  $.ajax(
-    {
-      url: obj.Url,
-      type: 'GET',
-      success: function (recvData) {
-        HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj })
-      }
-    })
-}
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function (recvData) {
+      HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj });
+    },
+  });
+};
 
 HQData.RecvRealtimeData = function (recvData, callback, option) {
-  var data = recvData.data
+  var data = recvData.data;
   // var stock = { symbol: option.Obj.Symbol, name: 'K线图' }
-  var stock = { symbol: option.Obj.Symbol, name: data.name || '' }
+  // var stock = { symbol: option.Obj.Symbol, name: data.name || "" };
   // var yClose = data[0].c
   // for (var i = 0; i < data.length; ++i) {
   //   var item = data[i]
@@ -1274,34 +1555,35 @@
 
   //   yClose = close
   // }
-  const kLines = JSON.parse(window.localStorage.getItem('kLine'))
-  var yClose = data.preKPrice
-  console.log('recvDatadata====', data)
-  if (kLines.type === 'IN' ||kLines.type === 'US') {
+  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
+  // var yClose = data.preKPrice;
+  var yClose = "123";
+  console.log("recvDatadata====", data);
+  if (kLines.type === "IN" || kLines.type === "US") {
     for (var i = 0; i < data.klines.length; ++i) {
-      var strItem = data.klines[i]
-      var item = strItem.split(',')
+      var strItem = data.klines[i];
+      var item = strItem.split(",");
       // var today = new Date(Date.parse(item[0]))
       // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-      var date = moment.unix(Date.parse(item[0])).format('YYYYMMDD')
+      var date = moment.unix(Date.parse(item[0])).format("YYYYMMDD");
 
-      var open = parseFloat(item[1])
-      var close = parseFloat(item[2])
-      var high = parseFloat(item[3])
-      var low = parseFloat(item[4])
-      var vol = parseFloat(item[5]) * 100
-      var amount = parseFloat(item[6])
+      var open = parseFloat(item[1]);
+      var close = parseFloat(item[2]);
+      var high = parseFloat(item[3]);
+      var low = parseFloat(item[4]);
+      var vol = parseFloat(item[5]) * 100;
+      var amount = parseFloat(item[6]);
 
-      stock.yclose = yClose
-      stock.open = open
-      stock.high = high
-      stock.low = low
-      stock.price = close
-      stock.vol = vol
-      stock.amount = amount
-      stock.date = date
+      stock.yclose = yClose;
+      stock.open = open;
+      stock.high = high;
+      stock.low = low;
+      stock.price = close;
+      stock.vol = vol;
+      stock.amount = amount;
+      stock.date = date;
 
-      yClose = close
+      yClose = close;
     }
   }
   // if (kLines.type === 'qh') {
@@ -1327,147 +1609,163 @@
   //   }
   // }
 
-  var hqchartData = { code: 0, stock: [stock] }
+  var hqchartData = { code: 0, stock: [stock] };
 
-  if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvRealtimeData] hqchartData ', hqchartData)
-    callback(hqchartData)
-  }
-}
+  // if (option.Data.Self.IsDestroy === false) {
+  HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
+  callback(hqchartData);
+  // }
+};
+// 分钟全量数据下载
 HQData.RequestHistoryMinuteData = function (data, callback) {
-  data.PreventDefault = true
-  var symbol = data.Request.Data.symbol // 请求的股票代码
-  var period = data.Self.Period // 周期
-  var right = data.Self.Right // 复权
+  data.PreventDefault = true;
+  var symbol = data.Request.Data.symbol; // 请求的股票代码
+  var period = data.Self.Period; // 周期
+  var right = data.Self.Right; // 复权
 
-  console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`)
-  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null)
+  console.log(
+    `分钟全量数据下载 [HQData::RequestHistoryMinuteData] Symbol=${symbol}`
+  );
+  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null);
 
-  $.ajax(
-    {
-      url: obj.Url,
-      type: 'GET',
-      success: function (recvData) {
-        HQData.RecvHistoryMinuteData(recvData, callback, { Data: data, Obj: obj })
-      }
-    })
-}
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function (recvData) {
+      HQData.RecvHistoryMinuteData(recvData, callback, {
+        Data: data,
+        Obj: obj,
+      });
+    },
+  });
+};
 
 HQData.RecvHistoryMinuteData = function (recvData, callback, option) {
-  var hqChartData = {code: 0, data: []}
-  hqChartData.symbol = option.Obj.Symbol
+  var hqChartData = { code: 0, data: [] };
+  hqChartData.symbol = option.Obj.Symbol;
   // hqChartData.name = data.name
-  const kLines = JSON.parse(window.localStorage.getItem('kLine'))
-  hqChartData.name = '123'
-  // console.log('data.name', data.name)
-  //
-  // var yClose = data.preKPrice
-  var yClose = ''
-  console.log('recvData===data.name22', recvData)
-  recvData = JSON.parse(recvData)
-  if (kLines.type === 'IN' ||kLines.type === 'US') {
+  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
+  hqChartData.name = "123";
+
+  var yClose = "";
+  console.log("recvData===data.name22", recvData, kLines);
+  recvData = JSON.parse(recvData);
+
+  if (kLines.type === "SZHB") {
+    recvData = recvData.data;
+    recvData.reverse();
     for (var i = 0; i < recvData.length; ++i) {
-      var strItem = recvData[i]
+      var strItem = recvData[i];
       //   var item = strItem.split(',')
-      var today = new Date(strItem.t)
-      var time = today.getHours() * 100 + today.getMinutes()
+      // var today = new Date(strItem.t)
       // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-      var date = moment.unix(strItem.t).format('YYYYMMDD')
-      var open = parseFloat(strItem.o)
-      var close = parseFloat(strItem.c)
-      var high = parseFloat(strItem.h)
-      var low = parseFloat(strItem.l)
-      var vol = parseFloat(strItem.v) * 100
-      var amount = parseFloat((Math.random() * 100) + '')
+      var date = moment.unix(strItem.id).format("YYYYMMDD");
+      var time = moment.unix(strItem.id).format("HHmm");
+      var open = parseFloat(strItem.open);
+      var close = parseFloat(strItem.close);
+      var high = parseFloat(strItem.high);
+      var low = parseFloat(strItem.low);
+      var vol = parseFloat(strItem.vol) * 100;
+      var amount = parseFloat(Math.random() * 100 + "");
       //
-      var newItem = [date, yClose, open, high, low, close, vol, amount,time]
-      hqChartData.data.push(newItem)
+      var newItem = [date, yClose, open, high, low, close, vol, amount, time];
+
+      hqChartData.data.push(newItem);
       //
-      yClose = close
+      yClose = close;
     }
-  }
-  if (kLines.type === 'qh') {
-    for (var x = 0; x < recvData.list.length; ++x) {
-      var strItem2 = recvData.list[x]
-      var date2 = moment(strItem2.ctm).format('YYYYMMDD')
+  } else {
+    for (var i = 0; i < recvData.length; ++i) {
+      var strItem = recvData[i];
+      //   var item = strItem.split(',')
+      // var today = new Date(strItem.t)
+      // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
+      var date = moment.unix(strItem.t).format("YYYYMMDD");
+      var time = moment.unix(strItem.t).format("HHmm");
+
+      var open = parseFloat(strItem.o);
+      var close = parseFloat(strItem.c);
+      var high = parseFloat(strItem.h);
+      var low = parseFloat(strItem.l);
+      var vol = parseFloat(strItem.v) * 100;
+      var amount = parseFloat(Math.random() * 100 + "");
       //
-      var open2 = parseFloat(strItem2.open)
-      var close2 = parseFloat(strItem2.close)
-      var high2 = parseFloat(strItem2.high)
-      var low2 = parseFloat(strItem2.low)
-      var vol2 = 100
-      // var vol2 = parseFloat(strItem2.v) * 100
-      var amount2 = parseFloat((Math.random() * 100) + '')
+      var newItem = [date, yClose, open, high, low, close, vol, amount, time];
+
+      hqChartData.data.push(newItem);
       //
-      var newItem2 = [date2, yClose, open2, high2, low2, close2, vol2, amount2]
-      hqChartData.data.push(newItem2)
-      //
-      yClose = close
+      yClose = close;
     }
   }
 
   if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvHistoryData] hqchartData ', hqChartData)
-    callback(hqChartData)
+    HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData);
+    callback(hqChartData);
   }
-}
+};
 
 HQData.RequestMinuteRealtimeData = function (data, callback) {
-  data.PreventDefault = true
-  var symbol = data.Request.Data.symbol[0] // 请求的股票代码
-  var period = data.Self.Period // 周期
-  var right = data.Self.Right // 复权
-  var dateRange = data.Self.ChartPaint[0].Data.GetDateRange()
+  data.PreventDefault = true;
+  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
+  var period = data.Self.Period; // 周期
+  var right = data.Self.Right; // 复权
+  var dateRange = data.Self.ChartPaint[0].Data.GetDateRange();
 
-  var option = { Update: true }
-  if (dateRange && dateRange.End && dateRange.End.Date > 0) option.End = dateRange.End.Date
+  var option = { Update: true };
+  if (dateRange && dateRange.End && dateRange.End.Date > 0)
+    option.End = dateRange.End.Date;
 
-  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`)
-  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option)
+  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
+  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
 
-  $.ajax(
-    {
-      url: obj.Url,
-      type: 'GET',
-      success: function (recvData) {
-        HQData.RecvMinuteRealtimeData(recvData, callback, { Data: data, Obj: obj })
-      }
-    })
-}
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function (recvData) {
+      HQData.RecvMinuteRealtimeData(recvData, callback, {
+        Data: data,
+        Obj: obj,
+      });
+    },
+  });
+};
 
 HQData.RecvMinuteRealtimeData = function (recvData, callback, option) {
-  var data = recvData.data
-  var hqChartData = {code: 0, data: [], ver: 2.0, symbol: option.Obj.Symbol, name: data.name} // 更新数据使用2.0版本格式
+  var data = recvData.data;
+  var hqChartData = {
+    code: 0,
+    data: [],
+    ver: 2.0,
+    symbol: option.Obj.Symbol,
+    name: data.name,
+  }; // 更新数据使用2.0版本格式
 
-  var yClose = data.preKPrice
-  console.log('212121132', recvData)
+  var yClose = data.preKPrice;
+  console.log("212121132", recvData);
   for (var i = 0; i < data.klines.length; ++i) {
-    var strItem = data.klines[i]
-    var item = strItem.split(',')
-    var today = new Date(Date.parse(item[0]))
-    var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
-    var time = today.getHours() * 100 + today.getMinutes()
+    var strItem = data.klines[i];
+    var item = strItem.split(",");
 
-    var open = parseFloat(item[1])
-    var close = parseFloat(item[2])
-    var high = parseFloat(item[3])
-    var low = parseFloat(item[4])
-    var vol = parseFloat(item[5]) * 100
-    var amount = parseFloat(item[6])
+    var time = moment.unix(item[0]).format("HHmm");
+    var open = parseFloat(item[1]);
+    var close = parseFloat(item[2]);
+    var high = parseFloat(item[3]);
+    var low = parseFloat(item[4]);
+    var vol = parseFloat(item[5]) * 100;
+    var amount = parseFloat(item[6]);
 
-    var newItem = [date, yClose, open, high, low, close, vol, amount, time]
-    hqChartData.data.push(newItem)
+    var newItem = [date, yClose, open, high, low, close, vol, amount, time];
+    hqChartData.data.push(newItem);
 
-    yClose = close
+    yClose = close;
   }
 
   if (option.Data.Self.IsDestroy === false) {
-    HQData.Log('[HQData.RecvMinuteRealtimeData] hqchartData ', hqChartData)
-    callback(hqChartData)
+    HQData.Log("[HQData.RecvMinuteRealtimeData] hqchartData ", hqChartData);
+    callback(hqChartData);
   }
-}
+};
 
-export default
-{
-  HQData: HQData
-}
+export default {
+  HQData: HQData,
+};

--
Gitblit v1.9.3