更新:重构和迁移多个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
+91 -15
View File
@@ -7,6 +7,7 @@ $ts_name = tscodeToName(ts_code_conv($_REQUEST['ts_code']));
$title="股价VS PE/PB/PS 趋势:".$ts_name.'('.$_REQUEST['ts_code'].')';
include_once "html/head.php";
?>
<script src="js/renderCharts.js"></script>
<form name="main" id="main" method="get"> <div style="width:100%;text-align:center">
股票代码: <input type='text' name='ts_code' id='ts_code' width="30px" value='<?=$_REQUEST['ts_code']?>' >
开始时间: <input type='date' name='t_start' id='t_start' width='30px' value='<?=$_REQUEST['t_start']?>' >
@@ -14,23 +15,98 @@ include_once "html/head.php";
<input type='submit' value="给我查!">
<div >&nbsp;</div>
<input type='checkbox' id='cb_pe' onclick="hideSwitch(this.id,'pe_ttm')" checked> PE_TTM 市盈率
<input type='checkbox' id='cb_pb' onclick="hideSwitch(this.id,'pb')" > PB 市净率
<input type='checkbox' id='cb_ps' onclick="hideSwitch(this.id,'ps')" > PS 市销率
<input type='checkbox' id='cb_pb' onclick="hideSwitch(this.id,'pb')" checked> PB 市净率
<input type='checkbox' id='cb_ps' onclick="hideSwitch(this.id,'ps')" checked> PS 市销率
<input type='checkbox' id='cb_ttmv' onclick="hideSwitch(this.id,'total_mv')" checked> 总市值
</div> </form>
<div >&nbsp;</div>
<div style="width:100%; text-align:center" id='pe_ttm'>
<iframe src="https://echart.doorcome.cn/chartFore.php?s=<?=$_REQUEST['t_start']?>&item=pe_ttm&ts_code=<?=$_REQUEST['ts_code']?>&e=<?=$_REQUEST['t_end']?>"
height="400px" width="1000px"></iframe>
</div>
<div >&nbsp;</div>
<div style="width:100%; text-align:center; display:None;" id='pb'>
<iframe src="https://echart.doorcome.cn/chartFore.php?s=<?=$_REQUEST['t_start']?>&item=pb&ts_code=<?=$_REQUEST['ts_code']?>&e=<?=$_REQUEST['t_end']?>"
height="400px" width="1000px"></iframe>
</div>
<div >&nbsp;</div>
<div style="width:100%; text-align:center; display:None;" id='ps'>
<iframe src="https://echart.doorcome.cn/chartFore.php?s=<?=$_REQUEST['t_start']?>&item=ps&ts_code=<?=$_REQUEST['ts_code']?>&e=<?=$_REQUEST['t_end']?>"
height="400px" width="1000px"></iframe>
<!-- 图表容器 -->
<div id="pe_ttm" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<div id="pb" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<div id="ps" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<div id="total_mv" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<script>
let t_start = $('#t_start').val();
let t_end = $('#t_end').val();
let ts_code = $("#ts_code").val();
let codeName ="<?=$ts_name?>";
url = "https://api.doorcome.cn/api/stockparam/?tscode="+ts_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';
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.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'];
doubleLineChart(params);
// 图表配置:pb
params = {};
params.chartid='pb';
params.legend = [codeName,'市净率'];
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.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);
// 图表配置:ps
params = {};
params.chartid='ps';
params.legend = [codeName,'市销率'];
params.text = params.legend[0]+' V.S '+params.legend[1];
params.data1 = pickData(parsedData, 'trade_date', 'close');
params.data2 = pickData(parsedData, 'trade_date', 'ps')
dataCal = calculateStats(params.data2);
params.sub_text = "PS 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';
params.legend = [codeName,'总市值-亿'];
params.text = params.legend[0]+' V.S '+params.legend[1];
params.data1 = pickData(parsedData, 'trade_date', 'close');
params.data2 = pickData(parsedData, 'trade_date', 'total_mv')
params.data2 = params.data2.map(item => {
return {
value: [
item.value[0],
parseFloat((parseFloat(item.value[1]) / 10000).toFixed(2))
]
};
});
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));
</script>
</div>
<?php include_once "html/footer.php"; ?>