更新:重构股票和指数趋势页面,增加流通市值图表,优化数据获取逻辑,修复代码中的小错误

This commit is contained in:
杨水淼
2025-07-10 17:24:15 +08:00
parent 5152b3ee2f
commit daeae185dd
4 changed files with 158 additions and 27 deletions
+37 -6
View File
@@ -1,4 +1,12 @@
<?php
/*
* @Author: 杨水淼 yangshuimiao@jsjd.cc
* @Date: 2025-07-08 08:16:01
* @LastEditors: 杨水淼 yangshuimiao@jsjd.cc
* @LastEditTime: 2025-07-09 16:02:10
* @FilePath: \echarts\index_trend.php
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
$title="指数VS PE/PB/PS/市值 趋势";
include_once "html/head.php";
@@ -29,6 +37,7 @@ $ts_code = $_REQUEST['code'];
<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')" checked> PB 市净率
<input type='checkbox' id='cb_total_mv' onclick="hideSwitch(this.id,'total_mv')" checked> 总市值
<input type='checkbox' id='cb_float_mv' onclick="hideSwitch(this.id,'float_mv')" checked> 流通市值
</div> </form>
<div >&nbsp;</div>
<!-- 图表容器 -->
@@ -36,13 +45,13 @@ $ts_code = $_REQUEST['code'];
<div id="pb" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<div id="total_mv" style="width: 1000px; height:400px; margin: 0 auto 20px;"></div>
<div id="float_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 code = $("#code").val();
let codeName=convertIndexCode("<?=$_REQUEST['code'] ?>");
//let start_date=formatDateToYYYYMMDD("<?=$_REQUEST['t_start'] ?>");
//let end_date=formatDateToYYYYMMDD("<?=$_REQUEST['t_end'] ?>");
let codeName=convertIndexCode(code);
url = "https://api.doorcome.cn/api/indexDatas/?tscode="+code;
url += "&start_date="+t_start+"&end_date="+t_end;
fetch(url)
@@ -54,7 +63,7 @@ $ts_code = $_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')
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'];
@@ -67,7 +76,7 @@ $ts_code = $_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')
params.data2 = pickData(parsedData, 'trade_date', 'pb');
dataCal = calculateStats(params.data2);
params.sub_text = "PB Max:"+dataCal['max'];
params.sub_text += ", Min:"+dataCal['min'];
@@ -81,7 +90,7 @@ $ts_code = $_REQUEST['code'];
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 = pickData(parsedData, 'trade_date', 'total_mv');
params.data2 = params.data2.map(item => {
return {
value: [
@@ -96,6 +105,28 @@ $ts_code = $_REQUEST['code'];
params.sub_text += ", Average:"+dataCal['avg'];
params.sub_text += ", Recent:"+dataCal['last'];
doubleLineChart(params);
// 图表配置:float_mv
params = {};
params.chartid='float_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', 'float_mv');
params.data2 = params.data2.map(item => {
return {
value: [
item.value[0],
parseFloat((parseFloat(item.value[1]) / 10000 / 10000 / 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));