From b8f6f514b675fa6a006dfafbc99303b3c5c8ba85 Mon Sep 17 00:00:00 2001
From: dcc <dcc@163.com>
Date: Fri, 17 May 2024 10:52:12 +0800
Subject: [PATCH] 一鍵平倉增加英文多语言,IFSC改成Select recharge account

---
 src/eastmoney/HQData.js | 2705 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 1,530 insertions(+), 1,175 deletions(-)

diff --git a/src/eastmoney/HQData.js b/src/eastmoney/HQData.js
index 48ff86e..5ab9adc 100644
--- a/src/eastmoney/HQData.js
+++ b/src/eastmoney/HQData.js
@@ -1,459 +1,700 @@
 /*
    Copyright (c) 2018 jones
- 
+
     http://www.apache.org/licenses/LICENSE-2.0
 
    开源项目 https://github.com/jones2000/HQChart
- 
+
    jones_2000@163.com
 
    行情数据对接,使用东方财富网页数据做为案例的测试数据源
    教程中所有的实例中使用的数据都来自互联网,或测试数据。仅用于学习HQChart图形使用. 教程禁止用于商业产品
 */
 
-import $, { hasData } from 'jquery'
-import HQChart from 'hqchart'
+import $ from "jquery";
+// import $, { hasData } from 'jquery'
+import HQChart from "hqchart";
+import moment from "moment";
+import apiRrl from "@/axios/api.url";
 
-//源码调试用
-//import Chart from '../../jscommon/umychart.vue/umychart.vue.js'
-//var HQChart={ Chart:Chart };
+// 源码调试用
+// import Chart from '../../jscommon/umychart.vue/umychart.vue.js'
+// var HQChart={ Chart:Chart };
 
-function HQData()  { }
+function HQData() {}
+window.globalVar = apiRrl.baseURL;
+HQData.Explain = "东财财富网接口";
 
-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.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);
+  };
 
-HQData.Log=HQChart.Chart.JSConsole.Chart.Log;
+  // 美股分时图坐标
+  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轴刻度信息
 
-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); }
+  // 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().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().CreateBJData = () => {
+    return HQData.CreateSHSZData(
+      HQChart.Chart.JSChart.GetMinuteTimeStringData()
+    );
+  }; // 替换交易时间段
+  HQChart.Chart.JSChart.GetMinuteCoordinateData().GetBJData = (
+    upperSymbol,
+    width
+  ) => {
+    return HQData.GetSHSZData(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().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().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().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: "花生"
+  });
 
-    //港股分时图坐标
-    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轴刻度信息
+  // 芝加哥期货交易所
+  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: "小型道指"
+  });
 
-    //外汇分时图坐标
-    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 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 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:'花生' });
+  // 自定义类型
+  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=盘后
+};
 
-    //芝加哥期货交易所
-    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:'小型道指' });
+HQData.NetworkFilter = function(data, callback) {
+  HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data);
 
-    //美国洲际交易所
-    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:'低硫柴油' });
+  switch (data.Name) {
+    case "MinuteChartContainer::RequestMinuteData": // 分时图数据对接
+      HQData.RequestMinuteData(data, callback);
+      break;
+    case "MinuteChartContainer::RequestHistoryMinuteData":
+      HQData.RequestMinuteDaysData(data, callback);
+      break;
 
-    //自定义类型
-    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=盘后
+    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;
+  }
+};
 
+HQData.RequestMinuteData = function(data, callback) {
+  data.PreventDefault = true;
 
-HQData.NetworkFilter=function(data, callback)
-{
-    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 '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;
+  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);
+  console.log(obj, "======");
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function(recvData) {
+      HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj });
     }
-}
+  });
+};
 
-HQData.RequestMinuteData=function(data, callback)
-{
-    data.PreventDefault=true;
-    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);
+HQData.RecvMinuteData = function(recvData, callback, option) {
+  // var data = recvData.data
+  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);
+  // var isChinaFutrues = HQData.IsChinaFutures(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);
+  // 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];
+    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;
 
-    $.ajax(
-    {
-        url: obj.Url,
-        type: "GET",
-        success:function(recvData) 
-        {
-            HQData.RecvMinuteData(recvData, callback, { Data:data, Obj:obj });                 
+    stock.date = date;
+    stock.minute.push(stockItem);
+  }
+
+  var hqchartData = { stock: [stock], code: 0 };
+
+  if (option.Data.Self.IsDestroy === false) {
+    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);
+
+  $.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 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 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;
+  }
+
+  for (var j = 0; i < data.trends.length; ++i, ++j) {
+    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 (j % minuteCount === 0) {
+      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])
+    };
+
+    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
+    ]);
+  }
+
+  if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay);
+
+  aryDayData = aryDayData.reverse();
+
+  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.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 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
+  };
+  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 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
+    ]);
+
+    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);
+
+  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);
+    if (newMinuteData) {
+      for (var j = 0; j < newMinuteData.length; ++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;
+        } else {
+          preClose = item[4];
+          preAvprice = item[7];
+          preDate = item[8];
         }
-    });
-
-}
-
-HQData.RecvMinuteData=function(recvData, callback, option)
-{
-    var data=recvData.data;
-
-    var stock={symbol:option.Obj.Symbol, minute:[] };
-    stock.name=data.name;
-    stock.yclose=data.preClose;
-
-    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);  //伦敦金属交易所
-    if (isChinaFutrues) stock.yclearing=data.preSettlement; //期货昨结算价
-
-    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])); // 不兼容 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 stockItem=
-        { 
-            date:date,
-            time:time,
-            open:parseFloat(item[1]),
-            high:parseFloat(item[2]),
-            low:parseFloat(item[3]),
-            price:parseFloat(item[4]), 
-            vol:parseFloat(item[5]),
-            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);
+      }
+      itemDay.minute = newMinuteData;
+    } else {
+      var item = itemDay.minute[itemDay.minute.length - 1];
+      preClose = item[4];
+      preAvprice = item[7];
+      preDate = item[8];
     }
+  }
 
-    var hqchartData={stock:[stock], code:0 };
+  aryDayData = aryDayData.reverse();
 
-    if (option.Data.Self.IsDestroy==false)
-	{
-        
-        HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData)
-		callback(hqchartData);
-    }
-}
+  var hqchartData = {
+    symbol: option.Obj.Symbol,
+    name: data.name,
+    data: aryDayData,
+    code: 0
+  };
 
-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);
+  if (option.Data.Self.IsDestroy === false) {
+    HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData);
+    callback(hqchartData);
+  }
+};
 
-    $.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.CorrectMinuteData = function(minuteData, xDatetime) {
+  if (minuteData.length === xDatetime.length) return null;
 
-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 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 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 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;
-    }
-    
-    for(var j=0;i<data.trends.length; ++i, ++j)
-    {
-        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();
+  for (var i = 0; i < minuteData.length; ++i) {
+    var item = minuteData[i];
+    var time = item[0];
 
-        if (j%minuteCount==0)
-        {
-            if (itemDay && itemDay.minute.length>0) aryDayData.push(itemDay);
-            itemDay={ minute:[], date:date, yclose: yClose };
-        }
+    var findItem = mapData.get(time);
+    findItem.Data = item;
+  }
 
-        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 newMinuteData = [];
+  for (var item of mapData) {
+    var value = item[1];
 
-        if (isStockA) stockItem.vol*=100;
+    if (value.Data) newMinuteData[value.Index] = value.Data;
+    else newMinuteData[value.Index] = [value.Time];
+  }
 
-        itemDay.minute.push([stockItem.time, stockItem.open, stockItem.high, stockItem.low, stockItem.price, stockItem.vol, stockItem.amount, stockItem.avprice, stockItem.date]);
-    }
+  return newMinuteData;
+};
+// HQChart内置代码转成东方财富代码
+HQData.GetInternalSymbol = function(symbol) {
+  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];
+  }
+  var market = parseInt(arySymbol[1]);
+  var internalSymbol = arySymbol[0];
 
-    if (itemDay && itemDay.minute.length>0) aryDayData.push(itemDay);
+  if (internalSymbol.indexOf("-") > 0) {
+    var aryValue = internalSymbol.split("-");
+    internalSymbol = aryValue[1];
+  }
 
-    aryDayData=aryDayData.reverse();
-
-    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.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 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 };
-    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 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]);
-
-        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);
-
-    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);
-        if (newMinuteData)
-        {
-            for(var j=0;j<newMinuteData.length;++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;
-                }
-                else
-                {
-                    preClose=item[4];
-                    preAvprice=item[7];
-                    preDate=item[8];
-                }
-            }
-            itemDay.minute=newMinuteData;
-        } 
-        else
-        {
-            var item=itemDay.minute[itemDay.minute.length-1];
-            preClose=item[4];
-            preAvprice=item[7];
-            preDate=item[8];
-        }
-    }
-
-    aryDayData=aryDayData.reverse();
-
-    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.CorrectMinuteData=function(minuteData, xDatetime)
-{
-    if (minuteData.length==xDatetime.length) return null;
-
-    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 });
-    }
-
-    for(var i=0;i<minuteData.length;++i)
-    {
-        var item=minuteData[i];
-        var time=item[0];
-
-        var findItem=mapData.get(time);
-        findItem.Data=item;
-    }
-
-    var newMinuteData=[];
-    for(var item of mapData)
-    {
-        var value=item[1];
-
-        if (value.Data) newMinuteData[value.Index]=value.Data;
-        else newMinuteData[value.Index]=[value.Time];
-    }
-
-    return newMinuteData;
-}
-
-
-HQData.GetInternalSymbol=function(symbol)   //HQChart内置代码转成东方财富代码
-{
-    var aryData=symbol.split(".");
-    var symbolUpper=symbol.toUpperCase();
-    var arySymbol=aryData[0].split('_');
-    var market=parseInt(arySymbol[1]);
-    var internalSymbol=arySymbol[0] ;
-
-    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))    //美股
     {
@@ -461,15 +702,15 @@
         var set106Market=new Set(
             ["RENN", "DIDI","BABA","ZH"]
         );
-    
+
         var set100Market=new Set
         (
             ["DJIA", "SPX", "NDX"]
         )
-    
+
         if (set106Market.has(aryData[0])) market=106;
         else if (set100Market.has(aryData[0])) market=100;
-    
+
         return { Market:market, Symbol:aryData[0].toUpperCase() };
     }
     else if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSZ(symbolUpper))
@@ -502,8 +743,8 @@
         var market=113;
 
         //上期能源
-        if (symbolUpper.indexOf("SC")==0 || symbolUpper.indexOf("NR")==0 || 
-            symbolUpper.indexOf("LU")==0 ||symbolUpper.indexOf("BC")==0) 
+        if (symbolUpper.indexOf("SC")==0 || symbolUpper.indexOf("NR")==0 ||
+            symbolUpper.indexOf("LU")==0 ||symbolUpper.indexOf("BC")==0)
             market=142;
 
         return { Market:market, Symbol:aryData[0] };
@@ -572,849 +813,963 @@
         return { Market:market, Symbol:aryData[0] };
     }
     */
-}
+};
+HQData.GetMinuteApiUrl = function(symbol, dayCount) {
+  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 = 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}`
 
-HQData.GetMinuteApiUrl=function(symbol, dayCount)
-{
-    var internalSymbol=HQData.GetInternalSymbol(symbol);
-    //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://kline.workingman.icu/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=${dayCount}&iscr=0&iscca=0`
+  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;
+};
+// 是否显示第2个成交量图
+HQData.IsShowVolChart = function(upperSymbol) {
+  if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))
+    return false;
+  if (upperSymbol === "UDI_100.ET") return false;
 
-    return true;
-}
+  return true;
+};
 
-HQData.IsShowVolChart=function(upperSymbol) //是否显示第2个成交量图
-{
-    if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) return false;
-    if (upperSymbol=="UDI_100.ET") return false;
-
-    return true;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////////////////
-//  
+/// ////////////////////////////////////////////////////////////////////////////////////////
+//
 //  美国洲际交易所 重柴油
 //
-HQData.GetCustomTradeTimeData=function(key)
-{
-    if (key=="IPE_G")   //美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗????
-    {
-        //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' }
-                ]
-            }
-        };
+HQData.GetCustomTradeTimeData = function(key) {
+  // 美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗????
+  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")
-    {
-        var data=//ID=0 08:50-07:00
-        {
-            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;
+  } 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;
-    }
-}
+    return data;
+  }
+};
 
-
-
-////////////////////////////////////////////////////////////////////////////
+/// /////////////////////////////////////////////////////////////////////////
 // 美股走势图X轴坐标
 //
-////////////////////////////////////////////////////////////////////////////
-HQData.CreateUSAData=function(minuteStringData)
-{
-    const TIME_SPLIT =
-    [
-        { Start: 2130, End: 2359 },
-        { Start: 0, End: 400 }
-    ];
+/// /////////////////////////////////////////////////////////////////////////
+HQData.CreateUSAData = function(minuteStringData) {
+  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"], 
-        ],
+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"]
+    ],
 
-        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 }
-    ];
+/// ////////////////////////////////////////////////////////////////////////
+HQData.CreateSHSZData = function(minuteStringData) {
+  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"]
+    ],
 
-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"]
-        ],
+    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 }
-    ];
+/// ////////////////////////////////////////////////////////////////////////////////////
+HQData.CreateHKData = function(minuteStringData) {
+  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"]
-        ],
+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"]
+    ],
 
-        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轴坐标
 //
-////////////////////////////////////////////////////////////////////////////////////////
-HQData.CreateForeignExchangeData=function(minuteStringData)
-{
-    //外汇 5:00 - 4:59
-    const TIME_SPLIT=           
-    [
-        { Start:500, End:2359 },
-        { Start:0,  End:459 },
+/// /////////////////////////////////////////////////////////////////////////////////////
+HQData.CreateForeignExchangeData = function(minuteStringData) {
+  // 外汇 5:00 - 4:59
+  const TIME_SPLIT = [
+    { Start: 500, End: 2359 },
+    { Start: 0, End: 459 }
+  ];
+
+  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"]
+    ],
+
+    Count: 1440,
+    MiddleCount: 600,
+
+    GetData: function(width) {
+      if (width < 200) return this.Min;
+      else if (width < 450) return this.Simple;
+
+      return this.Full;
+    }
+  };
+
+  return FOREX_MINUTE_X_COORDINATE;
+};
+
+/// /////////////////////////////////////////////////////////////////////
+//  美元指数
+//
+/// ////////////////////////////////////////////////////////////////////
+HQData.GetETTimeData = function(upperSymbol, minuteStringData) {
+  if (upperSymbol === "UDI_100.ET") {
+    // 美元指数 6:00 - 5:59
+    const TIME_SPLIT = [
+      { Start: 600, End: 2359 },
+      { Start: 0, End: 559 }
     ];
 
     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"],
-        ],
+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"]
+      ],
 
-        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 data;
+  }
+};
 
+HQData.GetETDecimal = function(symbol) {
+  var upperSymbol = symbol.toUpperCase();
+  if (upperSymbol === "UDI_100.ET") return 2;
 
-////////////////////////////////////////////////////////////////////////
-//  美元指数
+  return 2;
+};
+
+/// ////////////////////////////////////////////////////////////////////////////////
+// K线数据对接
 //
-///////////////////////////////////////////////////////////////////////
-HQData.GetETTimeData=function(upperSymbol,minuteStringData)
-{
-    if (upperSymbol=="UDI_100.ET")
-    {
-        //美元指数 6:00 - 5:59
-        const TIME_SPLIT=           
-        [
-            { Start:600, End:2359 },
-            { Start:0,  End:559 },
-        ];
+/// //////////////////////////////////////////////////////////////////////////////
+HQData.GetKLineApiUrl = function(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
 
-        return minuteStringData.CreateTimeData(TIME_SPLIT);
+  var internalSymbol = HQData.GetInternalSymbol(symbol);
+  // console.log(internalSymbol,'caonima');
+  // if (!internalSymbol.Market) {
+  //   internalSymbol.Market = '106'
+  //   internalSymbol.Symbol = 'BRK_A'
+  // }
+
+  // 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 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 (option && option.Update === true) {
+    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 {
+    // 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}`
+  }
+
+  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 = "";
+  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}`
+  } 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`
+    // }
+  }
+
+  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
+
+    [4, 1], // 1min
+    [5, 5], // 5min
+    [6, 15], // 15min
+    [7, 30], // 30min
+    [8, 60] // 60min
+  ]);
+
+  return MAP_PERIOD.get(periodID);
+};
+
+HQData.GetInternalRight = function(right) {
+  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 = symbol.toUpperCase()
+  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 symbolUpper = symbol.toUpperCase()
+  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 (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper)) {
+    if (market === 100) return false; // 指数不支持复权
+    return true;
+  }
+
+  return false;
+};
+
+HQData.RequestFlowCapitalData = function(data, callback) {
+  data.PreventDefault = true;
+  var hqChartData = { code: 0, stock: [] }; // 如果没有数据就填空
+
+  if (data.Self.IsDestroy === false) {
+    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; // 复权
+
+  console.log(`[HQData::RequestHistoryData] Symbol=${symbol}`);
+  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 });
     }
-}
+  });
+};
 
-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"],
-            ],
-    
-            Count: 1440,
-            MiddleCount: 600,
-    
-            GetData: function (width) 
-            {
-                if (width < 200) return this.Min;
-                else if (width < 450) return this.Simple;
-    
-                return this.Full;
-            }
-        } 
-    
-        return data;
+HQData.RecvHistoryData = function(recvData, callback, option) {
+  // var data = recvData.data
+
+  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"));
+  // var yClose = data.preKPrice
+  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 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.id).format("YYYYMMDD");
+      //
+      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);
+      //
+      yClose = close;
     }
-}
+  } 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 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 newItem = [date, yClose, open, high, low, close, vol, amount];
 
-HQData.GetETDecimal=function(symbol)
-{
-    var upperSymbol=symbol.toUpperCase();
-    if (upperSymbol=="UDI_100.ET") return 2;
-
-    return 2;
-}
-
-
-
-///////////////////////////////////////////////////////////////////////////////////
-//K线数据对接
-//
-/////////////////////////////////////////////////////////////////////////////////
-HQData.GetKLineApiUrl=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);
-    var internalPeriod=HQData.GetInternalPeriod(period);
-    var internalRight=HQData.GetInternalRight(right);
-    if (option && option.Update==true)
-    {
-        var beginDate=option.End;
-        var url=`http://kline.workingman.icu/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}`;
+      hqChartData.data.push(newItem);
+      //
+      yClose = close;
     }
-    else
-    {
-        var url=`http://kline.workingman.icu/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=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}`;
+  }
+
+  if (option.Data.Self.IsDestroy === false) {
+    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();
+
+  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);
+
+  $.ajax({
+    url: obj.Url,
+    type: "GET",
+    success: function(recvData) {
+      HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj });
     }
+  });
+};
 
-    return { Url:url, Symbol:symbol, InternalSymbol:internalSymbol, Period:period, Right:right };
-}
+HQData.RecvRealtimeData = function(recvData, callback, option) {
+  var data = recvData.data;
+  // var stock = { symbol: option.Obj.Symbol, name: 'K线图' }
+  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]
+  //   // var item = strItem.split(',')
+  //   // var today = new Date(item.t)
+  //   // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
+  //   var date = moment.unix(item.t).format('YYYYMMDD')
 
-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 open = parseFloat(item.o)
+  //   var close = parseFloat(item.c)
+  //   var high = parseFloat(item.h)
+  //   var low = parseFloat(item.l)
+  //   var vol = parseFloat(item.vo)
+  //   var amount = parseFloat(item.v)
 
-    var internalSymbol=HQData.GetInternalSymbol(symbol);
-    var internalPeriod=HQData.GetInternalPeriod(period);
-    var internalRight=HQData.GetInternalRight(right);
+  //   stock.yclose = yClose
+  //   stock.open = open
+  //   stock.high = high
+  //   stock.low = low
+  //   stock.price = close
+  //   stock.vol = vol
+  //   stock.amount = amount
+  //   stock.date = date
 
-    if (option && option.Update==true)
-    {
-        var beginDate=option.End;
-        var url=`http://kline.workingman.icu/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}`;
+  //   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") {
+    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 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]);
+
+      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;
     }
-    else
-    {
-        var url=`http://kline.workingman.icu/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=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}`;
+  }
+  // if (kLines.type === 'qh') {
+  //   for (var x = 0; x < recvData.list.length; ++x) {
+  //     var strItem2 = recvData.list[x]
+  //     //   var item = strItem.split(',')
+  //     // var today = new Date(strItem.t)
+  //     // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate()
+  //     var date2 = moment.unix(strItem2.ctm).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 newItem2 = [date2, yClose, open2, high2, low2, close2, vol2, amount2]
+  //     hqChartData.data.push(newItem2)
+  //     //
+  //     yClose = close
+  //   }
+  // }
+
+  var hqchartData = { code: 0, stock: [stock] };
+
+  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; // 复权
+
+  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
+      });
     }
+  });
+};
 
-    return { Url:url, Symbol:symbol, InternalSymbol:internalSymbol, Period:period, Right:right };
-}
+HQData.RecvHistoryMinuteData = function(recvData, callback, option) {
+  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";
 
-HQData.GetInternalPeriod=function(periodID)
-{
-    var MAP_PERIOD=new Map(
-        [
-            [0, 101],   //day
-            [1, 102],   //week
-            [2, 103],   //month
+  var yClose = "";
+  console.log("recvData===data.name22", recvData, kLines);
+  recvData = JSON.parse(recvData);
 
-            [4, 1],    //1min
-            [5, 5],    //5min
-            [6, 15],   //15min
-            [7, 30],   //30min
-            [8, 60],   //60min
-        ]
-    );
+  if (kLines.type === "SZHB") {
+    recvData = recvData.data;
+    recvData.reverse();
+    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.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];
 
-    return MAP_PERIOD.get(periodID);
-}
-
-HQData.GetInternalRight=function(right)
-{
-    if (right==0) return 0;
-    else if (right==1) return 1;
-    else return 2;
-}
-
-HQData.IsEnableRight=function(period, symbol)   //是否支持复权
-{
-    var symbolUpper=symbol.toUpperCase();
-    if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZStockA(symbolUpper)) return true;
-    if (HQChart.Chart.MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true;
-
-    var aryData=symbol.split(".");
-    var symbolUpper=symbol.toUpperCase();
-    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;
+      hqChartData.data.push(newItem);
+      //
+      yClose = close;
     }
+  } 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");
 
-    if (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper))
-    {
-        if (market==100) return false;  //指数不支持复权
-        return true;
+      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 newItem = [date, yClose, open, high, low, close, vol, amount, time];
+
+      hqChartData.data.push(newItem);
+      //
+      yClose = close;
     }
+  }
 
-    return false;
-}
+  if (option.Data.Self.IsDestroy === false) {
+    HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData);
+    callback(hqChartData);
+  }
+};
 
-HQData.RequestFlowCapitalData=function(data,callback)
-{
-    data.PreventDefault=true;
-    var hqChartData={code:0, stock:[]}; //如果没有数据就填空
-	
-	if (data.Self.IsDestroy==false)
-	{
-		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();
 
-HQData.RequestHistoryData=function(data, callback)
-{
-    data.PreventDefault=true;
-    var symbol=data.Request.Data.symbol; //请求的股票代码
-    var period=data.Self.Period;    //周期
-    var right=data.Self.Right;      //复权
+  var option = { Update: true };
+  if (dateRange && dateRange.End && dateRange.End.Date > 0)
+    option.End = dateRange.End.Date;
 
-    console.log(`[HQData::RequestHistoryData] Symbol=${symbol}`);
-    var obj=HQData.GetKLineApiUrl(symbol,period, right, null);
+  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
+  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
 
-    $.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;
-
-    var hqChartData={code:0, data:[]};
-    hqChartData.symbol=option.Obj.Symbol;
-    hqChartData.name=data.name;
-
-    var yClose=data.preKPrice;;
-    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 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];
-        hqChartData.data.push(newItem);
-
-        yClose=close;
+  $.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版本格式
 
-    if (option.Data.Self.IsDestroy==false)
-	{
-        HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData)
-		callback(hqChartData);
-    }
-}
+  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(",");
 
-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();
+    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 option={ Update:true };
-    if (dateRange && dateRange.End && dateRange.End.Date>0) option.End=dateRange.End.Date;
+    var newItem = [date, yClose, open, high, low, close, vol, amount, time];
+    hqChartData.data.push(newItem);
 
-    console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`);
-    var obj=HQData.GetKLineApiUrl(symbol,period, right, option);
+    yClose = close;
+  }
 
-    $.ajax(
-    {
-        url: obj.Url,
-        type: "GET",
-        success:function(recvData) 
-        {
-            HQData.RecvRealtimeData(recvData, callback, { Data:data, Obj:obj });                 
-        }
-    });
-}
+  if (option.Data.Self.IsDestroy === false) {
+    HQData.Log("[HQData.RecvMinuteRealtimeData] hqchartData ", hqChartData);
+    callback(hqChartData);
+  }
+};
 
-HQData.RecvRealtimeData=function(recvData, callback, option)
-{
-    var data=recvData.data;
-    var stock={symbol:option.Obj.Symbol, name:data.name };
-    
-    var yClose=data.preKPrice;
-    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 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;
-
-        yClose=close;
-    }
-
-    var hqchartData={code:0, stock:[stock] };
-
-    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;      //复权
-
-    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 });                 
-        }
-    });
-
-}
-
-HQData.RecvHistoryMinuteData=function(recvData, callback, option)
-{
-    var data=recvData.data;
-
-    var hqChartData={code:0, data:[]};
-    hqChartData.symbol=option.Obj.Symbol;
-    hqChartData.name=data.name;
-
-    var yClose=data.preKPrice;;
-    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 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);
-
-        yClose=close;
-    }
-
-
-    if (option.Data.Self.IsDestroy==false)
-	{
-        HQData.Log("[HQData.RecvHistoryMinuteData] 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();
-
-    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);
-
-    $.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 yClose=data.preKPrice;
-    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 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);
-
-        yClose=close;
-    }
-
-    if (option.Data.Self.IsDestroy==false)
-	{
-        HQData.Log("[HQData.RecvMinuteRealtimeData] hqchartData ", hqChartData)
-		callback(hqChartData);
-    }
-}
-
-export default
-{
-	HQData:HQData
-}
+export default {
+  HQData: HQData
+};

--
Gitblit v1.9.3