@@ -131,6 +136,7 @@ import { WindBlowerList, RequestData, Devices } from './type'
import {
queryWindTurbinesPages,
historyReq,
+ windowReq,
getReportTemplateListReq,
addReportTemplateListReq,
delReportTemplateListReq,
@@ -212,6 +218,13 @@ const intervals = [
{ label: '一天', value: '1d' },
{ label: '原始', value: 'NONE' },
]
+const calFunction = ref('interpolation')
+const calFunctions = [
+ { label: '瞬时值', value: 'interpolation' },
+ { label: '平均值', value: 'average' },
+ { label: '最大值', value: 'max' },
+ { label: '最小值', value: 'min' },
+]
// 模板
const template = ref('')
const reportTemplateList = ref<{ label: string; value: string; columns: any[]; interval: string }[]>([])
@@ -441,55 +454,70 @@ const queryHistoryData = () => {
interval: interval.value,
startTime: new Date(timeRange.value[0]).getTime(),
endTime: new Date(timeRange.value[1]).getTime(),
- } as any
- historyReq(requestData)
- .then((res) => {
- if (res.code == 200) {
- const result = res.data
- if (Object.keys(result)?.length) {
- const realResult = result[windBlowerValue.value]
- let tableData = [] as any
- attributeCodes.forEach((item: any) => {
- if (Object.keys(realResult).includes(item)) {
- tableData.push({
- name: item,
- times: realResult[item].times,
- value: realResult[item].values.map((val: any) => (val === 0 ? 0 : val?.toFixed(2))),
- })
- }
- })
- const processedData = new Map()
- idCounter.value = 0
- if (tableData.length) {
- tableData.forEach(({ name, times, value }: any) => {
- times.forEach((time: number, index: number) => {
- if (!processedData.has(time)) {
- processedData.set(time, { id: idCounter.value++, time: timestampToTime(time) })
- }
- const values = value[index]
- processedData.get(time)[name] = enumStore.keys.includes(name) ? enumStore.data?.[name]?.[values] : values
- })
- })
- }
- reportTableData.value = Array.from(processedData.values())
- if (!reportTableData.value.length) {
- ElMessage.warning('查询数据为空!')
- reportTableData.value = []
- }
- reportLoading.value = false
- } else {
- ElMessage.warning('查询数据为空!')
- reportTableData.value = []
- reportLoading.value = false
- }
- } else {
+ calFunction: calFunction.value,
+ } as anyObj
+ if (calFunction.value == 'interpolation') {
+ historyReq(requestData)
+ .then((res) => {
+ handleRes(res, attributeCodes)
+ })
+ .finally(() => {
reportLoading.value = false
- ElMessage.warning('查询失败')
+ })
+ } else {
+ windowReq(requestData)
+ .then((res) => {
+ handleRes(res, attributeCodes)
+ })
+ .finally(() => {
+ reportLoading.value = false
+ })
+ }
+}
+
+const handleRes = (res: any, attributeCodes: any) => {
+ if (res.code == 200) {
+ const result = res.data
+ if (Object.keys(result)?.length) {
+ const realResult = result[windBlowerValue.value]
+ let tableData = [] as any
+ attributeCodes.forEach((item: any) => {
+ if (Object.keys(realResult).includes(item)) {
+ tableData.push({
+ name: item,
+ times: realResult[item].times,
+ value: realResult[item].values.map((val: any) => (val === 0 ? 0 : val?.toFixed(2))),
+ })
+ }
+ })
+ const processedData = new Map()
+ idCounter.value = 0
+ if (tableData.length) {
+ tableData.forEach(({ name, times, value }: any) => {
+ times.forEach((time: number, index: number) => {
+ if (!processedData.has(time)) {
+ processedData.set(time, { id: idCounter.value++, time: timestampToTime(time) })
+ }
+ const values = value[index]
+ processedData.get(time)[name] = enumStore.keys.includes(name) ? enumStore.data?.[name]?.[values] : values
+ })
+ })
+ }
+ reportTableData.value = Array.from(processedData.values())
+ if (!reportTableData.value.length) {
+ ElMessage.warning('查询数据为空!')
+ reportTableData.value = []
}
- })
- .finally(() => {
reportLoading.value = false
- })
+ } else {
+ ElMessage.warning('查询数据为空!')
+ reportTableData.value = []
+ reportLoading.value = false
+ }
+ } else {
+ reportLoading.value = false
+ ElMessage.warning('查询失败')
+ }
}
// 时间转换
@@ -560,11 +588,14 @@ onMounted(() => {
}
.commonSelect {
- min-width: 250px;
+ min-width: 150px;
:deep(.el-select__wrapper) {
height: 40px;
}
}
+.templateSelect {
+ min-width: 223px;
+}
.button {
height: 40px;
diff --git a/ui/dasadmin/src/views/backend/statAnalysis/trendAnalysis.vue b/ui/dasadmin/src/views/backend/statAnalysis/trendAnalysis.vue
index d266b2b8..208f8f51 100644
--- a/ui/dasadmin/src/views/backend/statAnalysis/trendAnalysis.vue
+++ b/ui/dasadmin/src/views/backend/statAnalysis/trendAnalysis.vue
@@ -269,7 +269,7 @@ const statAnalysisSelectOptions: any = reactive({
{ label: '原始', value: 'NONE' },
],
calFunction: [
- { label: '插值', value: 'interpolation' },
+ { label: '瞬时值', value: 'interpolation' },
{ label: '平均值', value: 'average' },
{ label: '最大值', value: 'max' },
{ label: '最小值', value: 'min' },
diff --git a/ui/dasadmin/src/views/backend/statAnalysis/trendComparison.vue b/ui/dasadmin/src/views/backend/statAnalysis/trendComparison.vue
index 06e74507..0c63b35c 100644
--- a/ui/dasadmin/src/views/backend/statAnalysis/trendComparison.vue
+++ b/ui/dasadmin/src/views/backend/statAnalysis/trendComparison.vue
@@ -162,7 +162,7 @@ const statAnalysisSelectOptions: any = reactive({
{ label: '原始', value: 'NONE' },
],
calFunction: [
- { label: '插值', value: 'interpolation' },
+ { label: '瞬时值', value: 'interpolation' },
{ label: '平均值', value: 'average' },
{ label: '最大值', value: 'max' },
{ label: '最小值', value: 'min' },