|
|
@@ -67,6 +67,7 @@
|
|
|
v-model="item.chartTime"
|
|
|
:type="item.timeType"
|
|
|
placeholder="选择日期"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</div>
|
|
|
@@ -151,6 +152,11 @@ export default {
|
|
|
},
|
|
|
gaugeData: [],
|
|
|
historyData: [], // 存储历史数据数组
|
|
|
+ pickerOptions: {
|
|
|
+ disabledDate(time) {
|
|
|
+ return time.getTime() > Date.now();
|
|
|
+ },
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -187,6 +193,7 @@ export default {
|
|
|
async refreshSingleChart(item) {
|
|
|
try {
|
|
|
const updatedData = await this.getHistoryDatas(item);
|
|
|
+ console.log('updatedData~~~', updatedData);
|
|
|
// 找到对应的图表数据并更新
|
|
|
const index = this.historyData.findIndex(d => d.identifier === item.identifier);
|
|
|
if (index !== -1) {
|
|
|
@@ -272,7 +279,8 @@ export default {
|
|
|
async getDefaultHistoryData(item) {
|
|
|
try {
|
|
|
// 确保chartTime和timeType属性存在,提供默认值
|
|
|
- const chartTime = item.chartTime || new Date().toISOString().split('T')[0];
|
|
|
+ // chartTime 可能是 Date 对象或字符串,统一转换为 Date 对象
|
|
|
+ const chartTime = item.chartTime ? new Date(item.chartTime) : new Date();
|
|
|
const timeType = item.timeType || 'month';
|
|
|
|
|
|
// 第一步:先获取时间范围,确保时间参数有效
|
|
|
@@ -378,7 +386,7 @@ export default {
|
|
|
timeType: apiTimeType
|
|
|
};
|
|
|
// 第三步:发送API请求获取历史数据
|
|
|
-
|
|
|
+ console.log(`开始发送API请求 - 属性: ${item.name || item.identifier}, 参数:`, requestParams);
|
|
|
const res = await getHistoryData(requestParams);
|
|
|
console.log(`API请求完成 - 属性: ${item.name || item.identifier}, 结果:`, res);
|
|
|
// 处理API返回结果,确保res是对象
|
|
|
@@ -420,31 +428,26 @@ export default {
|
|
|
return response;
|
|
|
} catch (error) {
|
|
|
console.error(`获取属性 ${item.name || item.identifier} 的历史数据失败:`, error);
|
|
|
+ // 返回一个默认的响应对象,避免 undefined
|
|
|
+ return {
|
|
|
+ identifier: item.identifier || '',
|
|
|
+ name: item.name || '',
|
|
|
+ unit: item.unit || '',
|
|
|
+ unitName: item.unitName || '',
|
|
|
+ chartTime: item.chartTime || new Date(),
|
|
|
+ timeType: item.timeType || 'month',
|
|
|
+ trendData: {
|
|
|
+ xAxis: [],
|
|
|
+ series: [{ name: item.name || '', data: [], color: '#5470C6' }]
|
|
|
+ },
|
|
|
+ timeHistoryList: []
|
|
|
+ };
|
|
|
}
|
|
|
},
|
|
|
dateClick(item, dateType) {
|
|
|
- // 根据时间类型设置默认日期
|
|
|
+ console.log(item, dateType)
|
|
|
const now = new Date();
|
|
|
- let defaultDate = '';
|
|
|
-
|
|
|
- switch (dateType) {
|
|
|
- case 'year':
|
|
|
- // 当年格式:YYYY
|
|
|
- defaultDate = now.getFullYear().toString();
|
|
|
- break;
|
|
|
- case 'month':
|
|
|
- // 当月格式:YYYY-MM
|
|
|
- defaultDate = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}`;
|
|
|
- break;
|
|
|
- case 'date':
|
|
|
- // 当日格式:YYYY-MM-DD
|
|
|
- defaultDate = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`;
|
|
|
- break;
|
|
|
- default:
|
|
|
- defaultDate = '';
|
|
|
- }
|
|
|
-
|
|
|
- item.chartTime = defaultDate;
|
|
|
+ item.chartTime = now;
|
|
|
item.timeType = dateType;
|
|
|
},
|
|
|
// 日期数据格式化
|