更新:重构和迁移多个PHP文件到deprecated目录,删除不再使用的文件,更新pubfunc.js版本;index_trend,stock_trend 数据源以及代码重构简化

This commit is contained in:
杨水淼
2025-07-09 15:21:52 +08:00
parent 43a202c789
commit 5152b3ee2f
15 changed files with 174 additions and 179 deletions
+24 -124
View File
@@ -7,6 +7,7 @@ $_REQUEST['t_start']= $_REQUEST['t_start']?$_REQUEST['t_start']:'2020-01-01';
$_REQUEST['t_end'] = $_REQUEST['t_end']?$_REQUEST['t_end']:date('Y-m-d');
$ts_code = $_REQUEST['code'];
?>
<script src="js/renderCharts.js"></script>
<form name="main" id="main" method="get"> <div style="width:100%;text-align:center">
指数代码:
<select name='code' id='code'>
@@ -14,7 +15,7 @@ $ts_code = $_REQUEST['code'];
<option value='399001.SZ'>深圳成指</option>
<option value='399005.SZ'>中小板指</option>
<option value='399006.SZ'>创业板指</option>
<option value='000016.SZ'>上证50</option>
<option value='000016.SH'>上证50</option>
<option value='399300.SZ'>沪深300</option>
<option value='399905.SZ'>中证500</option>
</select>&nbsp;
@@ -36,47 +37,47 @@ $ts_code = $_REQUEST['code'];
<div id="total_mv" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<script>
let start_date=formatDateToYYYYMMDD("<?=$_REQUEST['t_start'] ?>");
let end_date=formatDateToYYYYMMDD("<?=$_REQUEST['t_end'] ?>");
url = "https://api.doorcome.cn/api/indexDatas/?tscode=<?=$_REQUEST['code'] ?>";
url += "&start_date="+start_date+"&end_date="+end_date;
let t_start = $('#t_start').val();
let t_end = $('#t_end').val();
let code = $("#code").val();
let codeName=convertIndexCode("<?=$_REQUEST['code'] ?>");
//let start_date=formatDateToYYYYMMDD("<?=$_REQUEST['t_start'] ?>");
//let end_date=formatDateToYYYYMMDD("<?=$_REQUEST['t_end'] ?>");
url = "https://api.doorcome.cn/api/indexDatas/?tscode="+code;
url += "&start_date="+t_start+"&end_date="+t_end;
fetch(url)
.then(httpresponse => httpresponse.json())
.then(parsedData => {
// 图表配置:pe_ttm
var params = {};
params.chartid='pe_ttm';
codeName=convertIndexCode("<?=$_REQUEST['code'] ?>");
params.legend = [codeName,'pe_ttm'];
params.text = params.legend[0]+' V.S '+params.legend[1];
params.data1 = pickData(parsedData, 'trade_date', 'close');
params.data2 = pickData(parsedData, 'trade_date', 'pe_ttm')
dataCal = calculateStats(params.data1);
dataCal = calculateStats(params.data2);
params.sub_text = "TTM PE Max:"+dataCal['max'];
params.sub_text += " Min:"+dataCal['min'];
params.sub_text += " Average:"+dataCal['avg'];
params.sub_text += " Recent:"+dataCal['last'];
params.sub_text += ", Min:"+dataCal['min'];
params.sub_text += ", Average:"+dataCal['avg'];
params.sub_text += ", Recent:"+dataCal['last'];
doubleLineChart(params);
// 图表配置:pb
params = {};
params.chartid='pb';
codeName=convertIndexCode("<?=$_REQUEST['code'] ?>");
params.legend = [codeName,'pb'];
params.text = params.legend[0]+' V.S '+params.legend[1];
params.data1 = pickData(parsedData, 'trade_date', 'close');
params.data2 = pickData(parsedData, 'trade_date', 'pb')
dataCal = calculateStats(params.data1);
params.sub_text = "TTM PE Max:"+dataCal['max'];
params.sub_text += " Min:"+dataCal['min'];
params.sub_text += " Average:"+dataCal['avg'];
params.sub_text += " Recent:"+dataCal['last'];
dataCal = calculateStats(params.data2);
params.sub_text = "PB Max:"+dataCal['max'];
params.sub_text += ", Min:"+dataCal['min'];
params.sub_text += ", Average:"+dataCal['avg'];
params.sub_text += ", Recent:"+dataCal['last'];
doubleLineChart(params);
// 图表配置:total_mv
params = {};
params.chartid='total_mv';
codeName=convertIndexCode("<?=$_REQUEST['code'] ?>");
params.legend = [codeName,'总市值-万亿'];
params.text = params.legend[0]+' V.S '+params.legend[1];
params.data1 = pickData(parsedData, 'trade_date', 'close');
@@ -89,115 +90,14 @@ $ts_code = $_REQUEST['code'];
]
};
});
dataCal = calculateStats(params.data1);
params.sub_text = "TTM PE Max:"+dataCal['max'];
params.sub_text += " Min:"+dataCal['min'];
params.sub_text += " Average:"+dataCal['avg'];
params.sub_text += " Recent:"+dataCal['last'];
dataCal = calculateStats(params.data2);
params.sub_text = "总市值 Max:"+dataCal['max'];
params.sub_text += ", Min:"+dataCal['min'];
params.sub_text += ", Average:"+dataCal['avg'];
params.sub_text += ", Recent:"+dataCal['last'];
doubleLineChart(params);
})
.catch(error => console.error('数据加载失败:', error));
// 窗口大小自适应
window.addEventListener('resize', () => {
[pe_ttm, pb, total_mv].forEach(chart => chart.resize());
});
function doubleLineChart(params){
/*
需要外部提供:
chartid: div container id
legend: array
unit: str
sub_text: str
data:data1,data2, array
*/
var dom = document.getElementById(params.chartid);
var myChart = echarts.init(dom,'dark');
option = null;
option = {
title: {
text: params.text,
subtext: params.sub_text,
textAlign:'center',
left:'50%'
},
tooltip: {
trigger: 'axis'
},
legend: {
data:params.legend,
right:'20'
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'time',
boundaryGap: false
},
yAxis: [{
type: 'value',
name:params.legend[0], //图列
show:true
},
{
type:'value',
name:params.legend[1], //图例
//scale:true,
boundaryGap:false,
show:true,
splitLine:{
show:false, //Y2 坐标刻度横线
},
}
],
dataZoom: [{
type: 'inside', //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:params.legend[0],
type:'line',
yAxisIndex:0,
symbol:'none',
data:params.data1
},
{
name:params.legend[1],
type:'line',
yAxisIndex:1,
symbol:'none', //数据圆点
smooth:false,
data:params.data2
}
]
};
if (option && typeof option === "object") {
myChart.setOption(option, true);
}
}
</script>
<?php include_once "html/footer.php"; ?>