1
PC-20250623MANY\Administrator
2025-08-27 34f560a862e6c904a94382f0da5a4bcf3826fc91
src/eastmoney/HQData.js
@@ -305,7 +305,7 @@
};
HQData.NetworkFilter = function (data, callback) {
  HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data);
  HQData.Log(`网络过滤器 [HQData::NetworkFilter] ${HQData.Explain}`, data);
  switch (data.Name) {
    case "MinuteChartContainer::RequestMinuteData": // 分时图数据对接
@@ -320,6 +320,7 @@
      break;
    case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新
      HQData.RequestRealtimeData(data, callback);
      // HQData.RequestHistoryData(data, callback);
      break;
    case "KLineChartContainer::RequestFlowCapitalData": // 流通股本
      HQData.RequestFlowCapitalData(data, callback);
@@ -329,7 +330,8 @@
      HQData.RequestHistoryMinuteData(data, callback);
      break;
    case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新
      HQData.RequestMinuteRealtimeData(data, callback);
      // HQData.RequestMinuteRealtimeData(data, callback);
      HQData.RequestHistoryMinuteData(data, callback);
      break;
  }
};
@@ -1286,7 +1288,7 @@
  console.log(111111, symbol, period, right, option);
  // https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=0&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=0.300059&klt=101&fqt=0
  var internalSymbol = HQData.GetInternalSymbol(symbol);
  // var internalSymbol = HQData.GetInternalSymbol(symbol);
  // console.log(internalSymbol,'caonima');
  // if (!internalSymbol.Market) {
  //   internalSymbol.Market = '106'
@@ -1321,7 +1323,7 @@
  return {
    Url: url,
    Symbol: symbol,
    InternalSymbol: internalSymbol,
    // InternalSymbol: internalSymbol,
    Period: period,
    Right: right,
  };
@@ -1407,16 +1409,17 @@
    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}`);
  console.log(`日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`);
  var obj = HQData.GetKLineApiUrl(symbol, period, right, null);
  // return
  $.ajax({
    url: obj.Url,
    type: "GET",
@@ -1488,14 +1491,27 @@
      //
      yClose = close;
    }
  }
  if (option.Data.Self.IsDestroy === false) {
    HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData);
    callback(hqChartData);
    // var aaa = [
    //   "20250829",
    //   yClose,
    //   Math.random() * 100,
    //   Math.random() * 100,
    //   Math.random() * 100,
    //   Math.random() * 100,
    //   Math.random() * 100,
    //   Math.random() * 100,
    // ];
    // hqChartData.data.push(aaa);
  }
  console.log("全量数据", hqChartData);
  // 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]; // 请求的股票代码
@@ -1507,64 +1523,113 @@
  if (dateRange && dateRange.End && dateRange.End.Date > 0)
    option.End = dateRange.End.Date;
  console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`);
  var obj = HQData.GetKLineApiUrl(symbol, period, right, option);
  console.log(
    `日线实时数据更新 [HQData::RequestRealtimeData] Symbol=${symbol}`,
    obj
  );
  if (!obj.Url) return;
  // return
  $.ajax({
    url: obj.Url,
    type: "GET",
    success: function (recvData) {
      HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj });
      HQData.RecvRealtimeData(recvData, callback, {
        Data: data,
        Obj: obj,
      });
    },
  });
};
HQData.RecvRealtimeData = function (recvData, callback, option) {
  var data = recvData.data;
  // var data = recvData.data;
  var data = JSON.parse(recvData);
  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
  var yClose = "123";
  console.log("recvDatadata====", data);
  if (!data || !data.klines) return;
  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 date = moment.unix(Date.parse(item[0])).format("YYYYMMDD");
  // console.log("recvDatadata====", data, kLines);
  console.log("recvDatadata====", kLines, option);
  // var stock = { symbol: option.Obj.Symbol, name: data.name || "" };
  // if (!data || !data.klines) return;
  // 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 date = moment.unix(Date.parse(item[0])).format("YYYYMMDD");
      var open = parseFloat(item[1]);
      var close = parseFloat(item[2]);
      var high = parseFloat(item[3]);
      var low = parseFloat(item[4]);
      var vol = parseFloat(item[5]) * 100;
      var amount = parseFloat(item[6]);
  //     var open = parseFloat(item[1]);
  //     var close = parseFloat(item[2]);
  //     var high = parseFloat(item[3]);
  //     var low = parseFloat(item[4]);
  //     var vol = parseFloat(item[5]) * 100;
  //     var amount = parseFloat(item[6]);
      stock.yclose = yClose;
      stock.open = open;
      stock.high = high;
      stock.low = low;
      stock.price = close;
      stock.vol = vol;
      stock.amount = amount;
      stock.date = date;
  //     stock.yclose = yClose;
  //     stock.open = open;
  //     stock.high = high;
  //     stock.low = low;
  //     stock.price = close;
  //     stock.vol = vol;
  //     stock.amount = amount;
  //     stock.date = date;
      yClose = close;
    }
  }
  //     yClose = close;
  //   }
  // }
  // var hqchartData = { code: 0, stock: [stock] };
  var hqchartData = { code: 0, stock: [stock] };
  // HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
  // callback(hqchartData);
  //#region ---------------------------
  var strItem = data[data.length - 1];
  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 + "");
  yClose = close;
  // var newItem = {
  //   name: "123",
  //   // symbol: option.Obj.Symbol,
  //   date,
  //   yClose,
  //   open,
  //   high: Math.random() * 100,
  //   low,
  //   close,
  //   vol,
  //   amount,
  // };
  var newItem = [date, yClose, open, high, low, close, vol, amount];
  var hqchartData = {
    code: 0,
    stock: [newItem],
  };
  console.log("hqchartData", hqchartData);
  HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
  callback(hqchartData);
  //#endregion
};
// 分钟全量数据下载
HQData.RequestHistoryMinuteData = function (data, callback) {
  data.PreventDefault = true;
  var symbol = data.Request.Data.symbol; // 请求的股票代码
  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
  var period = data.Self.Period; // 周期
  var right = data.Self.Right; // 复权
  console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`);
  console.log(
    `分钟全量数据下载 [HQData::RequestHistoryMinuteData] Symbol=${symbol}`
  );
  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null);
  $.ajax({
@@ -1587,7 +1652,8 @@
  hqChartData.name = "123";
  var yClose = "";
  console.log("recvData===data.name22", recvData, kLines);
  // console.log("recvData===data.name22", recvData, kLines);
  console.log("recvData===data.name22", kLines);
  recvData = JSON.parse(recvData);
  if (kLines.type === "SZHB") {
@@ -1642,7 +1708,7 @@
    callback(hqChartData);
  }
};
// 分钟增量数据更新
HQData.RequestMinuteRealtimeData = function (data, callback) {
  data.PreventDefault = true;
  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
@@ -1654,8 +1720,9 @@
  if (dateRange && dateRange.End && dateRange.End.Date > 0)
    option.End = dateRange.End.Date;
  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`, obj.Url);
  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
  // console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`, obj.Url);
  var obj = HQData.GetKLineApiUrl(symbol, period, right, option);
  // var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
  $.ajax({
    url: obj.Url,