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>
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
include_once "../inc/getData.inc.php";
|
||||
include_once "../html/headChart.php"; //required after $ts_code and $ts_name,maybe doesn't matter
|
||||
$day_st=$_REQUEST['s']?$_REQUEST['s']:'2006-01-01';
|
||||
$day_end=$_REQUEST['e']?$_REQUEST['e']:date('Y-m-d');
|
||||
#$day_st_='2006-01-01';
|
||||
#$day_end_=date('Y-m-d');
|
||||
$lx=isset($lx)?$lx:$_REQUEST['lx'];
|
||||
$share =$_REQUEST['share'];
|
||||
$share = ($share)?$share:'ShareHDNum';
|
||||
if($share=='ShareHDNum') $unit = '(亿股)';
|
||||
elseif($share=='vPosition') $unit = '(亿元)';
|
||||
elseif($share=='VSRatio') $unit = '(元)';
|
||||
#var_dump($lx);
|
||||
$data=getIndexData('000001.SH',$day_st,$day_end);
|
||||
#$data1=getIndexData('399001.SZ',$day_st,$day_end);
|
||||
$data2=getIhData($lx,$share,$day_st,$day_end);
|
||||
$legend=array('上证综指','深证成指',lxDefine($lx));
|
||||
#$value=json_encode($data['data']);
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var dom = document.getElementById("container");
|
||||
var myChart = echarts.init(dom,'dark');
|
||||
var app = {};
|
||||
option = null;
|
||||
window.chartConfig = {
|
||||
legend: <?php echo json_encode($legend); ?>,
|
||||
unit: '<?php echo $unit; ?>'
|
||||
};
|
||||
var cfg = window.chartConfig;
|
||||
|
||||
option = {
|
||||
title: {
|
||||
text: cfg.legend[0]+" V.S "+cfg.legend[2],
|
||||
//subtext:"双轴显示",
|
||||
textAlign:'center',
|
||||
left:'50%'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: cfg.legend,
|
||||
right:'20'
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
//type: 'category',
|
||||
type: 'time',
|
||||
boundaryGap: false
|
||||
},
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name:legend[0], //图列
|
||||
show:true
|
||||
},
|
||||
{
|
||||
type:'value',
|
||||
name: cfg.legend[2]+cfg.unit, //图例
|
||||
//scale:true,
|
||||
boundaryGap:false,
|
||||
show:true,
|
||||
splitLine:{
|
||||
show:false, //Y2 坐标刻度横线
|
||||
},
|
||||
}
|
||||
],
|
||||
dataZoom: [{
|
||||
type: 'slider', //or slider
|
||||
start: 0,
|
||||
end: 100
|
||||
}, {
|
||||
start: 0,
|
||||
end: 100,
|
||||
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
|
||||
handleSize: '80%',
|
||||
handleStyle: {
|
||||
color: '#fff',
|
||||
shadowBlur: 3,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.6)',
|
||||
shadowOffsetX: 2,
|
||||
shadowOffsetY: 2
|
||||
}
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
name:legend[0],
|
||||
type:'line',
|
||||
yAxisIndex:0,
|
||||
symbol:'none',
|
||||
data:<?php echo json_encode($data['data']); ?>
|
||||
},
|
||||
{
|
||||
name:legend[2],
|
||||
type:'line',
|
||||
yAxisIndex:1,
|
||||
//symbol:'none',
|
||||
smooth:false,
|
||||
data:<?php echo json_encode($data2['data']); ?>
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
if (option && typeof option === "object") {
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user