<template>
|
<el-dialog :destroy-on-close="true" v-model="isShow" draggable :close-on-click-modal="false" :title="chartValues?.title">
|
<RecordSet chartHeight="30rem" ref="recordSetRef" :data="chartValues">
|
<TimeRange ref="timeRangeRef" v-model="queryRange" class="flex-0 m-1" @change="timeRangeChange" />
|
<List class="flex-0 m-1" v-model="stepTime" :data="listData" @change="selectStepChange" />
|
</RecordSet>
|
</el-dialog>
|
</template>
|
|
<script setup lang="ts">
|
import { nextTick, ref, watch } from 'vue';
|
import RecordSet from './RecordSet.vue';
|
import { queryScadaTimeValues } from '/@/api/ai/chat';
|
import { useCompRef } from '/@/utils/types';
|
import { getRecentDateRange } from '/@/utils/util';
|
import { formatDate } from '/@/utils/formatTime';
|
import TimeRange from './components/TimeRange.vue';
|
import List from './components/List.vue';
|
|
const props = defineProps(['otype', 'oname', 'indexName']);
|
|
const isShow = defineModel({
|
type: Boolean,
|
});
|
|
const recordSetRef = useCompRef(RecordSet);
|
const timeRangeRef = useCompRef(TimeRange);
|
|
const listData = {
|
list: [
|
{ title: '5分钟', value: '5 minutes' },
|
{ title: '10分钟', value: '10 minutes' },
|
{ title: '半小时', value: '30 minutes' },
|
{ title: '1小时', value: '1 hours' },
|
{ title: '1天', value: '1 days' },
|
],
|
type: 'list',
|
title: '时长',
|
value: '5 minutes',
|
} as any;
|
|
const queryRange = ref<string[]>(null);
|
const timeRangeChange = (val) => {
|
setChartData();
|
};
|
|
const selectStepChange = (val) => {
|
setChartData();
|
};
|
const stepTime = ref('5 minutes');
|
const chartValues = ref(null);
|
const setChartData = async () => {
|
const res = await queryScadaTimeValues({
|
// 设备类型
|
ptype: props.otype,
|
// 设备名称
|
pname: props.oname,
|
otype: props.indexName,
|
start_time: timeRangeRef.value.formatDateValue[0],
|
end_time: timeRangeRef.value.formatDateValue[1],
|
step_time: stepTime.value,
|
});
|
chartValues.value = res.values;
|
chartValues.value.chart = 'single_line';
|
nextTick(() => {
|
setTimeout(() => {
|
if(recordSetRef.value.isMultiCompare){
|
recordSetRef.value.handleData();
|
recordSetRef.value.handleMultiCompare();
|
}else{
|
recordSetRef.value.drawChart();
|
}
|
}, 0);
|
});
|
};
|
|
watch(
|
() => isShow.value,
|
(val) => {
|
if (!val) {
|
return;
|
}
|
queryRange.value = getRecentDateRange(1).map((item) => formatDate(item));
|
nextTick(()=>{
|
setChartData();
|
|
})
|
}
|
);
|
</script>
|
<style scoped lang="scss"></style>
|