fix:修改日期选择器默认时间

This commit is contained in:
zhongzm
2024-11-06 15:25:23 +08:00
parent 8283523327
commit f75719ca37
2 changed files with 39 additions and 32 deletions

View File

@@ -19,7 +19,7 @@ interface KPIBase{
kpiId: string;
title: string;
}
//继承接口
interface KPIColumn extends KPIBase{
dataIndex: string;
key: string;
@@ -49,8 +49,8 @@ const ws = ref<WS | null>(null);
//日期范围响应式变量
const dateRange = ref<[string, string]>([
dayjs().startOf('day').valueOf().toString(),
dayjs().valueOf().toString(),
dayjs().startOf('hour').valueOf().toString(),
dayjs().endOf('hour').valueOf().toString(),
]);
//实时数据状态
const isRealtime = ref(false);
@@ -98,6 +98,10 @@ const TARGET_KPI_IDS: Record<NeType, string[]> = {
// 实时数据开关函数
const fnRealTimeSwitch = (bool: boolean) => {
if (bool) {
if(!chart){
isRealtime.value=false;
return;
}
if (!ws.value) {
ws.value = new WS();
}
@@ -141,6 +145,9 @@ const handleWebSocketMessage = (kpiEvent:any)=>{
};
//成功回调
const wsMessage = (res:Record<string,any>)=>{
if(!chart){
return;
}
const{code,data}=res;
if(code===RESULT_CODE_ERROR||!data?.groupId)return;
handleWebSocketMessage(data.data);
@@ -304,27 +311,27 @@ const updateChart = () => {
},
xAxis: {
// 指定x轴类型为类目轴适用于离散的类目数据
type: 'category',
//type: 'category',
// boundaryGap 控制坐标轴两边留白
// 当为折线图时(isLine为true)时不留白,柱状图时留白
// 这样可以让折线图从原点开始,柱状图有合适的间距
boundaryGap: isLine,
//boundaryGap: isLine,
// 设置x轴的数据
// 将时间戳转换为格式化的时间字符串
data:chartData.value.map(item=>
dayjs(Number(item.date)).format('YYYY-MM-DD HH:mm:ss')
),
// 设置坐标轴刻度标签的样式
axisLabel: {
// 格式化函数,这里直接返回原值
formatter: (value: string) => value,
// 刻度标签旋转角度0表示不旋转
rotate: 0,
// 自动计算标签显示的间隔,防止标签重叠
interval: 'auto', // 自动计算显示间隔
// 刻度标签对齐方式,右对齐
align: 'right',
},
// axisLabel: {
// // 格式化函数,这里直接返回原值
// formatter: (value: string) => value,
// // 刻度标签旋转角度0表示不旋转
// rotate: 0,
// // 自动计算标签显示的间隔,防止标签重叠
// interval: 'auto', // 自动计算显示间隔
// // 刻度标签对齐方式,右对齐
// align: 'right',
// },
},
yAxis: {
// y轴配置
@@ -546,14 +553,18 @@ const { t, currentLocale } = useI18n();
// 更新图表数据方法
const updateChartData = (newData: ChartDataItem) => {
chartData.value.push(newData);
if (chartData.value.length > 100) {
chartData.value.shift();
if(!chart){
return;
}
if (chart) {
chartData.value.push(newData);
if (chartData.value.length > 50) {//100改为50
chartData.value.shift();//大于100条时删除最早的数据
}
//使用try-catch包裹图表更新逻辑
try {
requestAnimationFrame(() => {
chart!.setOption({
if (!chart) return;
const option = {
xAxis: {
data: chartData.value.map(item =>
dayjs(Number(item.date)).format('YYYY-MM-DD HH:mm:ss')
@@ -567,11 +578,15 @@ const updateChartData = (newData: ChartDataItem) => {
name: kpi?.title || kpiId,
};
}),
});
};
chart.setOption(option);
});
}catch (error){
console.error('Failed to update chart:', error);
}
};
// groupedKPIs 计算属性,使用 TARGET_KPI_IDS 来分组过滤
const groupedKPIs = computed(() => {
const groups: Record<string, KPIColumn[]> = {};