|
@@ -2,8 +2,9 @@
|
|
|
<div class="internet-detail-container">
|
|
<div class="internet-detail-container">
|
|
|
<div class="gauge-charts-container">
|
|
<div class="gauge-charts-container">
|
|
|
<div class="gauge-charts-wrapper">
|
|
<div class="gauge-charts-wrapper">
|
|
|
- <div class="gauge-card" v-for="item in realData">
|
|
|
|
|
|
|
+ <div class="gauge-card" v-for="item in gaugeData">
|
|
|
<GaugeChart
|
|
<GaugeChart
|
|
|
|
|
+ height="250px"
|
|
|
:value="item.value"
|
|
:value="item.value"
|
|
|
:min="item.min"
|
|
:min="item.min"
|
|
|
:max="item.max"
|
|
:max="item.max"
|
|
@@ -15,35 +16,22 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="gauge-charts-wrapper">
|
|
|
|
|
|
|
+ <div class="status-wrapper">
|
|
|
<el-form label-width="150px" style="width: 100%">
|
|
<el-form label-width="150px" style="width: 100%">
|
|
|
- <el-row v-for="obj in realData">
|
|
|
|
|
- <template>
|
|
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <template v-for="obj in realData">
|
|
|
<!-- 过滤掉运行状态 v-if="!['status', 'status_m'].includes(key)" -->
|
|
<!-- 过滤掉运行状态 v-if="!['status', 'status_m'].includes(key)" -->
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item :label="obj.name">
|
|
|
|
|
|
|
+ <el-form-item v-if="obj.identifier == 'status'" :label="obj.name+':'">
|
|
|
|
|
+ <span>{{ obj.specs[obj.value] }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item v-else :label="obj.name+':'">
|
|
|
<span>{{ obj.value }}</span>
|
|
<span>{{ obj.value }}</span>
|
|
|
<span style="margin-left: 5px" v-if="obj.unit">{{
|
|
<span style="margin-left: 5px" v-if="obj.unit">{{
|
|
|
obj.unit
|
|
obj.unit
|
|
|
}}</span>
|
|
}}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="最大值">
|
|
|
|
|
- <!-- <span>最大值</span> -->
|
|
|
|
|
- <span style="margin-left: 5px">{{
|
|
|
|
|
- obj.max
|
|
|
|
|
- }}</span>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="最小值">
|
|
|
|
|
- <!-- <span>最小值</span> -->
|
|
|
|
|
- <span style="margin-left: 5px">{{
|
|
|
|
|
- obj.min
|
|
|
|
|
- }}</span>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
</template>
|
|
</template>
|
|
|
<!-- 运行状态设置 -->
|
|
<!-- 运行状态设置 -->
|
|
|
<el-col :span="12" v-if="realData.status_m">
|
|
<el-col :span="12" v-if="realData.status_m">
|
|
@@ -70,7 +58,7 @@
|
|
|
<div class="chart-card" v-for="item in historyData">
|
|
<div class="chart-card" v-for="item in historyData">
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">{{item.name}}</el-col>
|
|
<el-col :span="8">{{item.name}}</el-col>
|
|
|
- <el-col :span="8">最高值{{ item.maxValue }}{{ item.unit}} | 最低值{{ item.minValue }}{{ item.unit}} | 平均值{{ item.avgValue }}{{ item.unit}}</el-col>
|
|
|
|
|
|
|
+ <el-col :span="8"><span class="detail-span">最高值{{ item.maxValue }} {{ item.unit}}</span> | <span class="detail-span">最低值{{ item.minValue }} {{ item.unit}}</span> | <span class="detail-span">平均值{{ item.avgValue }} {{ item.unit}}</span></el-col>
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<div class="tools">
|
|
<div class="tools">
|
|
|
<div class="">
|
|
<div class="">
|
|
@@ -153,28 +141,41 @@ export default {
|
|
|
return {
|
|
return {
|
|
|
realData: [],
|
|
realData: [],
|
|
|
dict: {
|
|
dict: {
|
|
|
- chartTime: {
|
|
|
|
|
- date: 3,
|
|
|
|
|
- month: 2,
|
|
|
|
|
- year: 1
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ chartTime: {
|
|
|
|
|
+ date: 3,
|
|
|
|
|
+ month: 2,
|
|
|
|
|
+ year: 1
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ gaugeData: [],
|
|
|
historyData: [], // 存储历史数据数组
|
|
historyData: [], // 存储历史数据数组
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
|
-
|
|
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ // 监听info属性变化,当info数据加载完成后执行getRealData
|
|
|
|
|
+ info: {
|
|
|
|
|
+ handler(newInfo) {
|
|
|
|
|
+ if (newInfo && Object.keys(newInfo).length > 0) {
|
|
|
|
|
+ this.getRealData();
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ deep: true,
|
|
|
|
|
+ immediate: true
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
mounted() {
|
|
mounted() {
|
|
|
- // this.setMonth();
|
|
|
|
|
- // 初始化数据
|
|
|
|
|
- this.getRealData();
|
|
|
|
|
|
|
+ // 只有当info已有数据时才初始化
|
|
|
|
|
+ // if (this.info && Object.keys(this.info).length > 0) {
|
|
|
|
|
+ // this.getRealData();
|
|
|
|
|
+ // }
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
beforeDestroy() {
|
|
beforeDestroy() {
|
|
|
- // 清除定时器
|
|
|
|
|
- // if (this.timer) {
|
|
|
|
|
- // clearInterval(this.timer);
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ // 组件销毁前的清理工作
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
handlsz() {
|
|
handlsz() {
|
|
@@ -199,7 +200,7 @@ export default {
|
|
|
async refreshHistoryData() {
|
|
async refreshHistoryData() {
|
|
|
try {
|
|
try {
|
|
|
// 并行请求所有property的历史数据
|
|
// 并行请求所有property的历史数据
|
|
|
- const historyPromises = this.realData.map(item =>
|
|
|
|
|
|
|
+ const historyPromises = this.gaugeData.map(item =>
|
|
|
this.getHistoryDatas(item)
|
|
this.getHistoryDatas(item)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
@@ -224,8 +225,14 @@ export default {
|
|
|
if (property.identifier == item.identifier) {
|
|
if (property.identifier == item.identifier) {
|
|
|
item.max = property.dataType.specs.max;
|
|
item.max = property.dataType.specs.max;
|
|
|
item.min = property.dataType.specs.min;
|
|
item.min = property.dataType.specs.min;
|
|
|
- item.unit = property.dataType.specs.unit;
|
|
|
|
|
|
|
+ item.propertyUnit = property.dataType.specs.unit;
|
|
|
item.unitName = property.dataType.specs.unitName;
|
|
item.unitName = property.dataType.specs.unitName;
|
|
|
|
|
+ item.specs = property.dataType.specs;
|
|
|
|
|
+ item.dataType= property.dataType;
|
|
|
|
|
+ item.propertyName = property.name;
|
|
|
|
|
+ item.accessMode = property.accessMode;
|
|
|
|
|
+ item.saveHistory = property.saveHistory;
|
|
|
|
|
+ item.required = property.required;
|
|
|
// item.value = property.dataType.specs.scale ? item.value / property.dataType.specs.scale : item.value;
|
|
// item.value = property.dataType.specs.scale ? item.value / property.dataType.specs.scale : item.value;
|
|
|
// 为每个图表添加独立的状态
|
|
// 为每个图表添加独立的状态
|
|
|
item.chartTime = new Date();
|
|
item.chartTime = new Date();
|
|
@@ -233,13 +240,20 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const gaugeData = this.realData.filter(item => item.max !== undefined && item.min !== undefined);
|
|
|
|
|
+ this.gaugeData = gaugeData;
|
|
|
console.log('info~~~~~', this.info);
|
|
console.log('info~~~~~', this.info);
|
|
|
- console.log('实时数据~~~~~', this.realData);
|
|
|
|
|
|
|
+ console.log('实时数据~~~~~', this.gaugeData);
|
|
|
|
|
|
|
|
// 并行请求所有property的历史数据
|
|
// 并行请求所有property的历史数据
|
|
|
- const historyPromises = this.realData.map(item =>
|
|
|
|
|
- this.getHistoryDatas(item)
|
|
|
|
|
|
|
+ const historyPromises = this.gaugeData.map(item =>
|
|
|
|
|
+ {
|
|
|
|
|
+ if(item.saveHistory) {
|
|
|
|
|
+ return this.getDefaultHistoryData(item);
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
// 等待所有请求完成并存储结果
|
|
// 等待所有请求完成并存储结果
|
|
@@ -250,49 +264,182 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
// 请求历史数据
|
|
// 请求历史数据
|
|
|
|
|
+ async getDefaultHistoryData(item) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 确保chartTime和timeType属性存在,提供默认值
|
|
|
|
|
+ const chartTime = item.chartTime || new Date().toISOString().split('T')[0];
|
|
|
|
|
+ const timeType = item.timeType || 'month';
|
|
|
|
|
+
|
|
|
|
|
+ // 第一步:先获取时间范围,确保时间参数有效
|
|
|
|
|
+ let time;
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 调用getTimeList方法获取时间范围
|
|
|
|
|
+ time = this.getTimeList(chartTime, timeType);
|
|
|
|
|
+
|
|
|
|
|
+ // 验证时间范围的有效性
|
|
|
|
|
+ if (!time || !time.startTime || !time.endTime) {
|
|
|
|
|
+ // 提供默认时间范围
|
|
|
|
|
+ const defaultDate = new Date().toISOString().split('T')[0];
|
|
|
|
|
+ time = {
|
|
|
|
|
+ startTime: defaultDate + ' 00:00:00',
|
|
|
|
|
+ endTime: defaultDate + ' 23:59:59'
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (timeError) {
|
|
|
|
|
+ // 提供默认时间范围作为最后保障
|
|
|
|
|
+ const defaultDate = new Date().toISOString().split('T')[0];
|
|
|
|
|
+ time = {
|
|
|
|
|
+ startTime: defaultDate + ' 00:00:00',
|
|
|
|
|
+ endTime: defaultDate + ' 23:59:59'
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+ const response = {};
|
|
|
|
|
+
|
|
|
|
|
+ // 设置必要的属性
|
|
|
|
|
+ response.identifier = item.identifier || '';
|
|
|
|
|
+ response.name = item.name || '';
|
|
|
|
|
+ response.unit = item.unit || '';
|
|
|
|
|
+ response.unitName = item.unitName || '';
|
|
|
|
|
+ response.chartTime = chartTime;
|
|
|
|
|
+ response.timeType = timeType;
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化趋势数据结构
|
|
|
|
|
+ const trendData = {
|
|
|
|
|
+ xAxis: [],
|
|
|
|
|
+ series: [
|
|
|
|
|
+ {
|
|
|
|
|
+ name: '',
|
|
|
|
|
+ data: [],
|
|
|
|
|
+ color: '#5470C6'
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ };
|
|
|
|
|
+ response.trendData = trendData;
|
|
|
|
|
+ response.timeHistoryList = [];
|
|
|
|
|
+
|
|
|
|
|
+ return response;
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ // console.error(`获取属性 ${item.name || item.identifier} 的历史数据失败:`, error);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 请求历史数据
|
|
|
async getHistoryDatas(item) {
|
|
async getHistoryDatas(item) {
|
|
|
try {
|
|
try {
|
|
|
- let time = this.getTimeList(item.chartTime, item.timeType);
|
|
|
|
|
- const res = await getHistoryData({
|
|
|
|
|
|
|
+ // 确保chartTime和timeType属性存在,提供默认值
|
|
|
|
|
+ const chartTime = item.chartTime || new Date().toISOString().split('T')[0];
|
|
|
|
|
+ const timeType = item.timeType || 'month';
|
|
|
|
|
+
|
|
|
|
|
+ // 第一步:先获取时间范围,确保时间参数有效
|
|
|
|
|
+ // console.log(`开始获取时间范围 - 属性: ${item.name || item.identifier}, chartTime: ${chartTime}, timeType: ${timeType}`);
|
|
|
|
|
+
|
|
|
|
|
+ let time;
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 调用getTimeList方法获取时间范围
|
|
|
|
|
+ time = this.getTimeList(chartTime, timeType);
|
|
|
|
|
+
|
|
|
|
|
+ // 验证时间范围的有效性
|
|
|
|
|
+ if (!time || !time.startTime || !time.endTime) {
|
|
|
|
|
+ // 提供默认时间范围
|
|
|
|
|
+ const defaultDate = new Date().toISOString().split('T')[0];
|
|
|
|
|
+ time = {
|
|
|
|
|
+ startTime: defaultDate + ' 00:00:00',
|
|
|
|
|
+ endTime: defaultDate + ' 23:59:59'
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (timeError) {
|
|
|
|
|
+ console.error('获取时间范围时出错:', timeError);
|
|
|
|
|
+ // 提供默认时间范围作为最后保障
|
|
|
|
|
+ const defaultDate = new Date().toISOString().split('T')[0];
|
|
|
|
|
+ time = {
|
|
|
|
|
+ startTime: defaultDate + ' 00:00:00',
|
|
|
|
|
+ endTime: defaultDate + ' 23:59:59'
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 安全获取apiTimeType
|
|
|
|
|
+ let apiTimeType = 'month'; // 默认值
|
|
|
|
|
+ try {
|
|
|
|
|
+ apiTimeType = this.dict?.chartTime?.[timeType] || 'month';
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.warn('获取API时间类型失败,使用默认值month:', e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 构建完整的请求参数
|
|
|
|
|
+ const requestParams = {
|
|
|
startTime: time.startTime,
|
|
startTime: time.startTime,
|
|
|
endTime: time.endTime,
|
|
endTime: time.endTime,
|
|
|
property: item.identifier,
|
|
property: item.identifier,
|
|
|
substanceId: this.id,
|
|
substanceId: this.id,
|
|
|
- timeType: this.dict.chartTime[item.timeType]
|
|
|
|
|
- });
|
|
|
|
|
- console.log('历史数据~~~~~', res);
|
|
|
|
|
- res.identifier = item.identifier;
|
|
|
|
|
- res.name = item.name;
|
|
|
|
|
- res.unit = item.unit;
|
|
|
|
|
- res.unitName = item.unitName;
|
|
|
|
|
- res.chartTime = item.chartTime;
|
|
|
|
|
- res.timeType = item.timeType;
|
|
|
|
|
|
|
+ timeType: apiTimeType
|
|
|
|
|
+ };
|
|
|
|
|
+ // 第三步:发送API请求获取历史数据
|
|
|
|
|
+
|
|
|
|
|
+ const res = await getHistoryData(requestParams);
|
|
|
|
|
+ console.log(`API请求完成 - 属性: ${item.name || item.identifier}, 结果:`, res);
|
|
|
|
|
+ // 处理API返回结果,确保res是对象
|
|
|
|
|
+ const response = res || {};
|
|
|
|
|
+
|
|
|
|
|
+ // 设置必要的属性
|
|
|
|
|
+ response.identifier = item.identifier || '';
|
|
|
|
|
+ response.name = item.name || '';
|
|
|
|
|
+ response.unit = item.unit || '';
|
|
|
|
|
+ response.unitName = item.unitName || '';
|
|
|
|
|
+ response.chartTime = chartTime;
|
|
|
|
|
+ response.timeType = timeType;
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化趋势数据结构
|
|
|
const trendData = {
|
|
const trendData = {
|
|
|
xAxis: [],
|
|
xAxis: [],
|
|
|
series: [
|
|
series: [
|
|
|
- {
|
|
|
|
|
- name: '',
|
|
|
|
|
- data: [],
|
|
|
|
|
- color: '#5470C6'
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ name: response.name,
|
|
|
|
|
+ data: [],
|
|
|
|
|
+ color: '#5470C6'
|
|
|
|
|
+ }
|
|
|
]
|
|
]
|
|
|
- }
|
|
|
|
|
- res.timeHistoryList.map(i => {
|
|
|
|
|
- trendData.xAxis.push(i.time);
|
|
|
|
|
- trendData.series[0].data.push(i.value);
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // 处理时间历史数据,确保timeHistoryList是数组
|
|
|
|
|
+ const timeHistoryList = Array.isArray(response.timeHistoryList) ? response.timeHistoryList : [];
|
|
|
|
|
|
|
|
- trendData.series[0].name = item.name;
|
|
|
|
|
- res.trendData = trendData;
|
|
|
|
|
- console.log(`属性 ${item.name || item.identifier} 的历史数据:`, res);
|
|
|
|
|
- return res; // 返回历史数据供Promise.all收集
|
|
|
|
|
|
|
+ timeHistoryList.forEach(i => {
|
|
|
|
|
+ if (i && i.time !== undefined && i.value !== undefined) {
|
|
|
|
|
+ trendData.xAxis.push(i.time);
|
|
|
|
|
+ trendData.series[0].data.push(i.value);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ response.trendData = trendData;
|
|
|
|
|
+ response.timeHistoryList = timeHistoryList;
|
|
|
|
|
+ console.log(`获取属性 ${item.name || item.identifier} 的历史数据成功,数据条数:`, timeHistoryList.length);
|
|
|
|
|
+
|
|
|
|
|
+ return response;
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.error(`获取属性 ${item.name || item.identifier} 的历史数据失败:`, error);
|
|
console.error(`获取属性 ${item.name || item.identifier} 的历史数据失败:`, error);
|
|
|
- return null; // 出错时返回null
|
|
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
dateClick(item, dateType) {
|
|
dateClick(item, dateType) {
|
|
|
- item.chartTime = '';
|
|
|
|
|
|
|
+ // 根据时间类型设置默认日期
|
|
|
|
|
+ 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.timeType = dateType;
|
|
item.timeType = dateType;
|
|
|
},
|
|
},
|
|
|
// 日期数据格式化
|
|
// 日期数据格式化
|
|
@@ -336,10 +483,6 @@ export default {
|
|
|
endTime
|
|
endTime
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
- // 默认当月(不再需要,每个图表有独立的时间设置)
|
|
|
|
|
- setMonth() {
|
|
|
|
|
- // 不再需要设置全局温度时间
|
|
|
|
|
- },
|
|
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
@@ -373,15 +516,24 @@ export default {
|
|
|
|
|
|
|
|
.gauge-charts-wrapper {
|
|
.gauge-charts-wrapper {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- gap: 30px;
|
|
|
|
|
|
|
+ gap: 10px;
|
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
|
- width: 50%;
|
|
|
|
|
|
|
+ width: 60%;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.status-wrapper {
|
|
|
|
|
+ width: 40%;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.line-charts-wrapper {
|
|
.line-charts-wrapper {
|
|
|
margin-top: 30px;
|
|
margin-top: 30px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+.detail-span {
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
.gauge-card,
|
|
.gauge-card,
|
|
|
.chart-card {
|
|
.chart-card {
|
|
|
flex: 1;
|
|
flex: 1;
|
|
@@ -391,6 +543,7 @@ export default {
|
|
|
padding: 20px;
|
|
padding: 20px;
|
|
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.gauge-title,
|
|
.gauge-title,
|