|
|
|
<!--
|
|
|
|
* @Author: chris
|
|
|
|
* @Date: 2025-09-05 09:29:59
|
|
|
|
* @LastEditors: chris
|
|
|
|
* @LastEditTime: 2025-09-12 14:20:17
|
|
|
|
-->
|
|
|
|
<script setup>
|
|
|
|
import LiveData from './components/LiveData.vue'
|
|
|
|
import SoilChart from './components/SoilChart.vue';
|
|
|
|
import { useSettings } from '@/hooks/useSettings';
|
|
|
|
import { getFormattedSoilData } from './mock';
|
|
|
|
|
|
|
|
const { hasTags } = useSettings()
|
|
|
|
|
|
|
|
const liveData = ref({})
|
|
|
|
const chartData = ref({ dates: [], values: []})
|
|
|
|
const soilType = ref('temperature')
|
|
|
|
const selectedTimeRange = ref(7)
|
|
|
|
const chartLoading = ref(false)
|
|
|
|
|
|
|
|
getChartData()
|
|
|
|
|
|
|
|
function getChartData() {
|
|
|
|
chartLoading.value = true
|
|
|
|
setTimeout(() => {
|
|
|
|
console.log(getFormattedSoilData(soilType.value, selectedTimeRange.value))
|
|
|
|
chartData.value = getFormattedSoilData(soilType.value, selectedTimeRange.value)
|
|
|
|
chartLoading.value = false
|
|
|
|
}, 300)
|
|
|
|
return chartData.value
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleSelectionChange(selection) {
|
|
|
|
console.log(selection)
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleSelectSoilItem(item) {
|
|
|
|
soilType.value = item.type
|
|
|
|
getChartData()
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleTimeRangeChange(range) {
|
|
|
|
selectedTimeRange.value = range
|
|
|
|
getChartData()
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<div :class="['soil-monitor-page', 'page-height', { 'hasTagsView': hasTags }]">
|
|
|
|
<el-row :gutter="20">
|
|
|
|
<el-col class="real-time-data" :span="6">
|
|
|
|
<live-data :data="liveData" @select="handleSelectSoilItem"/>
|
|
|
|
</el-col>
|
|
|
|
<el-col class="history-data" :span="18">
|
|
|
|
<soil-chart :soil-type="soilType" :chart-data="chartData" :selected-time-range="selectedTimeRange" :loading="chartLoading" @time-range-change="handleTimeRangeChange" />
|
|
|
|
<!-- <search-form v-model:params="queryParams" class="mb-12px" />
|
|
|
|
<history-table :dataList="historyList" :columns="columnsConfig" @selection-change="handleSelectionChange" /> -->
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.soil-monitor-page {
|
|
|
|
@apply p-20px;
|
|
|
|
|
|
|
|
> .el-row {
|
|
|
|
@apply h-full;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|