Browse Source

feat: 兼容云端的一些修改

main
betaqi 2 months ago
parent
commit
c35d9e265e
  1. 1
      global.types/components.d.ts
  2. 23
      src/views/stationData/components/deviceDrawer.vue
  3. 3
      src/views/stationData/components/newDataChart.vue

1
global.types/components.d.ts vendored

@ -24,6 +24,7 @@ declare module 'vue' { @@ -24,6 +24,7 @@ declare module 'vue' {
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDrawer: typeof import('element-plus/es')['ElDrawer']
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElHeader: typeof import('element-plus/es')['ElHeader']
ElInput: typeof import('element-plus/es')['ElInput']
ElMenu: typeof import('element-plus/es')['ElMenu']

23
src/views/stationData/components/deviceDrawer.vue

@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
<div class="flex-1 p-4 h-full overflow-hidden">
<el-button class="mb-4" type="primary"
@click="loadChardData">查询数据</el-button>
<NewDataChart v-if="isShowChart" :chart-datas="chartDatas" :legends="legends"
<NewDataChart v-if="isShowChart && !loading" :chart-datas="chartDatas" :legends="legends"
:axis-data="Array.from(axisData)" ref="chartRef" />
</div>
</main>
@ -120,6 +120,9 @@ async function loadDeviceDetails() { @@ -120,6 +120,9 @@ async function loadDeviceDetails() {
if (!fullscreenLoading.value) {
openFullScreen()
}
chartDatas.clear()
axisData.clear()
legends.value = []
const poinsRes = await loadPoints()
if (!poinsRes || poinsRes.code !== 0) {
message.error('获取点位数据失败')
@ -136,6 +139,9 @@ async function loadDeviceDetails() { @@ -136,6 +139,9 @@ async function loadDeviceDetails() {
const chartDatas = reactive(new Map<string, any[]>())
const axisData = new Set<string>()
const legends = ref<{ addr: string; label: string }[]>([])
const loading = ref(false)
async function loadChardData(){
if(!columsParams.value.filter(i => i !== 'ts').length){
message.error('请选择点位')
@ -153,18 +159,23 @@ async function loadChardData(){ @@ -153,18 +159,23 @@ async function loadChardData(){
params.site_id = props.siteInfo!.name || ''
params.device_id = curDevice.value?.sn || ''
}
loading.value = true
const res = await getDeviceDetails(params)
if (res.code === 0) {
pointData.value = Array.isArray(res.data.results) ? res.data.results : []
chartDatas.clear()
axisData.clear()
for (const addr of columsParams.value.filter(i => i !== 'ts')) {
const label = pointList.value.find(i => i.addr === addr)?.label || addr
const find = legends.value.find(i => i.addr === addr)
if (!find) {
legends.value.push({ addr, label })
}
}
pointData.value.forEach((data: any[]) => {
const [ts, val, addr] = data
legends.value.push({
addr: addr,
label: checkPointList.value.find(i => i.addr === addr)!.label,
})
if (checkPointList.value.some(i => i.addr === addr)) {
const time = dayjs(Number(ts)).format('YYYY-MM-DD HH:mm:ss')
if (addr) {
@ -184,6 +195,8 @@ async function loadChardData(){ @@ -184,6 +195,8 @@ async function loadChardData(){
} else {
message.error('获取设备数据失败')
}
console.log(chartDatas, axisData, legends)
loading.value = false
}
function zmqImport(device: IOfflineDevice) {

3
src/views/stationData/components/newDataChart.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="device-data-chart">
<v-chart class="chart" :option="chartOption" :autoresize="autoresize" :loading-options="loadingOpt"
<v-chart class="chart" :option="chartOption" :autoresize="autoresize" :loading-options="loadingOpt"
:loading="loading" ref="chartRef" @legendselectchanged="changeLegend" />
</div>
</template>
@ -90,7 +90,6 @@ const chartOption = computed<EChartsOption>(() => { @@ -90,7 +90,6 @@ const chartOption = computed<EChartsOption>(() => {
tmpSeries.push(lineData)
}
const option: EChartsOption = {
grid: {
left: 60,

Loading…
Cancel
Save