Files
echart/js/adj.ajax.js
T
simonandClaude Code 7e57cae242 refactor: 全面代码重构与项目结构整理
安全性:
- 所有SQL查询改用参数化查询(db_query),防止SQL注入
- TUSHARE_API_TOKEN集中到config.php常量,移除硬编码和多份拷贝
- getBasic.inc.php中$_REQUEST输出到JS时添加htmlspecialchars转义

代码组织:
- 21个页面文件移至charts/子目录,根目录仅保留入口文件
- ajax.inc.php拆分:esfTradeDaily/esfListDaily迁至getEstate.inc.php
- getBasic.inc.php拆分:HTML组件函数迁至新建的widgets.inc.php
- 前端依赖去重:移除lib/echarts.min.js、libai/3.4.16.js、research/js/3.4.16.js

规范化:
- AJAX响应格式统一为jsonResponse()标准封装
- 前端全局变量统一为window.chartConfig对象模式
- 修复PHP 8.4 Deprecated警告(getEstateData、getStockHistoryDataByTS参数顺序)
- html/head.php中jQuery/CSS路径改为绝对路径,修复charts/子目录加载问题

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-05-26 08:20:33 +08:00

69 lines
2.4 KiB
JavaScript

var cfg = window.chartConfig;
// ajax with adj set 1
$(function () {
jQuery.support.cors = true;
if($("#adj").val()=='1') {
console.log("Got adj set 1");
var pyurl= "https://py.doorcome.cn/ts/adj?";
pyurl += "ts_code="+$("#ts_code").val();
pyurl += "&s="+$("#s").val();
pyurl += "&e="+$("#e").val();
console.log(pyurl);
//var formData = new FormData($('#form1')[0]);
$.ajax({
crossDomain:true,
//type: 'post',
url: pyurl, //上传文件的请求路径必须是绝对路劲
//data: formData,
cache: false,
processData: false,
contentType: false,
success:function (data) {
console.log("Get data sucessfully");
var adj = getAdj(data);
//console.log(adj);
console.log(cfg.data[0]['value'][0]);
console.log(cfg.data[0]['value'][1]);
cfg.data = adjData(adj,cfg.data,'price');
cfg.data2 = adjData(adj,cfg.data2,'price');
cfg.data3 = adjData(adj,cfg.data3,'price');
cfg.data4 = adjData(adj,cfg.data4,'volum');
cfg.data5 = adjData(adj,cfg.data5,'volum');
console.log(cfg.data[0]['value'][0]);
console.log(cfg.data[0]['value'][1]);
//重新执行画图
if (option && typeof option === "object") {
myChart.setOption(option, true);
}
},
error: function () {
alert("获取数据失败!");
}
});
};
});
function getAdj(data){
var arr = $.parseJSON(data);
var rtArr = {};
var key = '';
//console.log(arr);
var lastAdj= arr[0]['adj_factor'] //last adj number
for(var i = 0; i <arr.length;i++){
key=arr[i]['trade_date'];
rtArr[key] = arr[i]['adj_factor']/lastAdj;
}
return rtArr;
}
function adjData(adj,data,tp){
var k = '';
if(data == null) return 0;
for(var i=0; i<data.length; i++){
k = data[i]['value'][0]; //get date as key
k = k.replace(/-/g,''); //formate key formate from yyyy-mm-dd to yyyymmdd
if(tp=='price')data[i]['value'][1]=Math.round(data[i]['value'][1]*adj[k]*100)/100; //价格保留两位小数
if(tp=='volum')data[i]['value'][1]=Math.round(data[i]['value'][1]/adj[k]); //数量取整数
}
return data;
}