1
PC-20250623MANY\Administrator
2025-08-30 9f5adc78ec0e386684a12f3b4f26a0fff4a3286f
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": // 分时图数据对接
@@ -319,11 +319,10 @@
      HQData.RequestHistoryData(data, callback);
      break;
    case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新
      HQData.RequestRealtimeData(data, callback);
      // HQData.RequestHistoryData(data, callback);
      // HQData.RequestRealtimeData(data, callback);
      break;
    case "KLineChartContainer::RequestFlowCapitalData": // 流通股本
      HQData.RequestFlowCapitalData(data, callback);
      // HQData.RequestFlowCapitalData(data, callback);
      break;
    case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载
@@ -331,7 +330,6 @@
      break;
    case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新
      // HQData.RequestMinuteRealtimeData(data, callback);
      HQData.RequestHistoryMinuteData(data, callback);
      break;
  }
};
@@ -827,14 +825,14 @@
  // if (kLines.type === 'IN' ||kLines.type === 'US') {
  url =
    window.globalVar +
    `/api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`;
    `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 = 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 = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`
  // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}`
  return {
@@ -1288,7 +1286,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'
@@ -1302,13 +1300,13 @@
  const interval = ["D", "W", "M"][period];
  var url =
    window.globalVar +
    `/api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`;
    `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}`
  // 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;
@@ -1323,7 +1321,7 @@
  return {
    Url: url,
    Symbol: symbol,
    // InternalSymbol: internalSymbol,
    InternalSymbol: internalSymbol,
    Period: period,
    Right: right,
  };
@@ -1341,7 +1339,7 @@
    const kLines = JSON.parse(window.localStorage.getItem("kLine"));
    url =
      window.globalVar +
      `/api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`;
      `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`;
  }
  return {
@@ -1416,10 +1414,13 @@
  var period = data.Self.Period; // 周期
  var right = data.Self.Right; // 复权
  console.log(`日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`);
  var obj = HQData.GetKLineApiUrl(symbol, period, right, null);
  // return
  console.log(
    `日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`,
    obj.Url
  );
  $.ajax({
    url: obj.Url,
    type: "GET",
@@ -1491,25 +1492,12 @@
      //
      yClose = close;
    }
    // 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) {
  if (option.Data.Self.IsDestroy === false) {
  HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData);
  callback(hqChartData);
  // }
  }
};
// 日线实时数据更新
HQData.RequestRealtimeData = function (data, callback) {
@@ -1523,107 +1511,115 @@
  if (dateRange && dateRange.End && dateRange.End.Date > 0)
    option.End = dateRange.End.Date;
  var obj = HQData.GetKLineApiUrl(symbol, period, right, option);
  console.log(
    `日线实时数据更新 [HQData::RequestRealtimeData] Symbol=${symbol}`,
    obj
    `日线实时数据更新 [HQData::RequestRealtimeData] Symbol=${symbol}`
  );
  var obj = HQData.GetKLineApiUrl(symbol, period, right, option);
  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 = JSON.parse(recvData);
  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
  var yClose = "123";
  // console.log("recvDatadata====", data, kLines);
  console.log("recvDatadata====", kLines, option);
  var data = recvData.data;
  // var stock = { symbol: option.Obj.Symbol, name: 'K线图' }
  // 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 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')
  //     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.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)
  //     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] };
  const kLines = JSON.parse(window.localStorage.getItem("kLine"));
  // var yClose = data.preKPrice;
  var yClose = "123";
  console.log("recvDatadata====", data);
  if (kLines.type === "IN" || kLines.type === "US") {
    for (var i = 0; i < data.klines.length; ++i) {
      var strItem = data.klines[i];
      var item = strItem.split(",");
      // var 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");
  // HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
  // callback(hqchartData);
      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]);
  //#region ---------------------------
  var strItem = data[data.length - 1];
      stock.yclose = yClose;
      stock.open = open;
      stock.high = high;
      stock.low = low;
      stock.price = close;
      stock.vol = vol;
      stock.amount = amount;
      stock.date = date;
  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;
    }
  }
  // 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 newItem = {
  //   name: "123",
  //   // symbol: option.Obj.Symbol,
  //   date,
  //   yClose,
  //   open,
  //   high: Math.random() * 100,
  //   low,
  //   close,
  //   vol,
  //   amount,
  // };
  var hqchartData = { code: 0, stock: [stock] };
  var newItem = [date, yClose, open, high, low, close, vol, amount];
  var hqchartData = {
    code: 0,
    stock: [newItem],
  };
  console.log("hqchartData", hqchartData);
  // if (option.Data.Self.IsDestroy === false) {
  HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
  callback(hqchartData);
  //#endregion
  // }
};
// 分钟全量数据下载
HQData.RequestHistoryMinuteData = function (data, callback) {
  data.PreventDefault = true;
  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
  var symbol = data.Request.Data.symbol; // 请求的股票代码
  var period = data.Self.Period; // 周期
  var right = data.Self.Right; // 复权
@@ -1652,8 +1648,7 @@
  hqChartData.name = "123";
  var yClose = "";
  // console.log("recvData===data.name22", recvData, kLines);
  console.log("recvData===data.name22", kLines);
  console.log("recvData===data.name22", recvData, kLines);
  recvData = JSON.parse(recvData);
  if (kLines.type === "SZHB") {
@@ -1708,7 +1703,7 @@
    callback(hqChartData);
  }
};
// 分钟增量数据更新
HQData.RequestMinuteRealtimeData = function (data, callback) {
  data.PreventDefault = true;
  var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
@@ -1720,9 +1715,8 @@
  if (dateRange && dateRange.End && dateRange.End.Date > 0)
    option.End = dateRange.End.Date;
  // console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`, obj.Url);
  var obj = HQData.GetKLineApiUrl(symbol, period, right, option);
  // var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
  var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
  $.ajax({
    url: obj.Url,
@@ -1743,7 +1737,7 @@
    data: [],
    ver: 2.0,
    symbol: option.Obj.Symbol,
    name: data.name || "",
    name: data.name,
  }; // 更新数据使用2.0版本格式
  var yClose = data.preKPrice;