更新:添加每日和每月数据选项,修改相关URL参数,更新JavaScript文件,增加股票指数历史数据获取功能

This commit is contained in:
杨水淼
2025-07-09 07:36:50 +08:00
parent 5d135b24f1
commit 43a202c789
12 changed files with 734 additions and 53 deletions
+101
View File
@@ -1,3 +1,11 @@
/*
* @Author: 杨水淼 yangshuimiao@jsjd.cc
* @Date: 2025-03-21 11:58:51
* @LastEditors: 杨水淼 yangshuimiao@jsjd.cc
* @LastEditTime: 2025-07-08 14:47:38
* @FilePath: \echarts\js\pubfunc.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
* hide switch the iframe
* @param cbid:checkbox id
@@ -32,4 +40,97 @@ function getRows(jsonData,array){
return listSplit;
}
function dmChange(parid,dayblock,monblock){
var v= $('#'+parid).val();
if(v=='Monthly'){
$('#'+dayblock).css('display','none');
$('#'+monblock).css('display','inline');
}
if(v=='Daily'){
$('#'+dayblock).css('display','inline');
$('#'+monblock).css('display','none');
}
}
/*
<option value='000001.SH'>上证指数</option>
<option value='399001.SZ'>深圳成指</option>
<option value='399005.SZ'>中小板指</option>
<option value='399006.SZ'>创业板指</option>
<option value='000016.SZ'>上证50</option>
<option value='399300.SZ'>沪深300</option>
<option value='399905.SZ'>中证500</option>
*/
function convertIndexCode(tscode){
switch(tscode){
case '000001.SH':
return '上证指数';
case '399001.SZ':
return '深圳成指';
case '399005.SZ':
return '中小板指';
case '399006.SZ':
return '创业板指';
case '000016.SZ':
return '上证50';
case '399300.SZ':
return '沪深300';
case '399905.SZ':
return '中证500';
default:
return '';
}
}
function formatDateToYYYYMMDD(dateStr) {
return dateStr.replace(/-/g, '');
}
function pickData(data, dateKey, valueKey) {
return data.map(item => ({
value: [
item[dateKey].slice(0, 4) + '-' + item[dateKey].slice(4, 6) + '-' + item[dateKey].slice(6, 8), // 格式化日期 yyyymmdd 转为 yyyy-mm-dd
item[valueKey].toFixed(2) // 保留两位小数
]
}));
}
/* 将上述pickData函数返回的结果,value计算返回最大值,最小值,均值,以及最后一个值 */
function calculateStats(data) {
if (data.length === 0) {
return {
max: null,
min: null,
avg: null,
last: null
};
}
let max = -Infinity;
let min = Infinity;
let sum = 0;
let last = null;
for (const item of data) {
const value = parseFloat(item.value[1]); // 提取 value 数组中的第二个元素(数值部分)
if (value > max) {
max = value;
}
if (value < min) {
min = value;
}
sum += value;
last = value; // 更新最后一个值
}
const avg = sum / data.length;
return {
max: max.toFixed(2),
min: min.toFixed(2),
avg: avg.toFixed(2),
last: last.toFixed(2)
};
}