From 9f642256f4b99a697af40bbbc4b939bc8faf91cd Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 25 二月 2025 17:20:46 +0800
Subject: [PATCH] 1

---
 src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSetDialog.vue |  132 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 106 insertions(+), 26 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSetDialog.vue b/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSetDialog.vue
index 35e1eef..d46e8d3 100644
--- a/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSetDialog.vue
+++ b/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSetDialog.vue
@@ -1,29 +1,47 @@
 <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 class="flex-0 m-1" @change="timeRangeChange" />
-			<List class="flex-0 m-1" v-model="stepTime" :data="listData" @change="selectStepChange" />
+	<el-dialog
+		:destroy-on-close="true"
+		v-model="isShow"
+		draggable
+		:close-on-click-modal="false"
+		:title="chartValues?.title"
+		v-if="computedIsDialog"
+	>
+		<RecordSet :chartHeight="computedHeight" :tableHeight="tableHeight" 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>
+	<div v-else v-show="isShow">
+		<RecordSet :chartHeight="computedHeight" :tableHeight="tableHeight" ref="recordSetRef" :data="chartValues">
+			<TimeRange ref="timeRangeRef" v-model="queryRange" class="flex-0 m-1" @change="timeRangeChange" />
+		</RecordSet>
+	</div>
 </template>
 
 <script setup lang="ts">
-import { nextTick, ref, watch } from 'vue';
+import { computed, nextTick, ref, watch } from 'vue';
 import RecordSet from './RecordSet.vue';
+import List from './components/List.vue';
+import TimeRange from './components/TimeRange.vue';
 import { queryScadaTimeValues } from '/@/api/ai/chat';
+import { formatDate } from '/@/utils/formatTime';
 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';
+import service from '/@/utils/request';
 
-const props = defineProps(['otype', 'oname','indexName']);
+const props = defineProps(['isDialog', 'height', 'metrics', 'tableHeight', 'metricsInfo', 'lastValueItem']);
+// SDVAL_FULL_FLOW true 25 DEV_FLOW_W
+
+const computedIsDialog = computed(() => props.isDialog ?? true);
+const computedHeight = computed(() => props.height ?? '30rem');
 
 const isShow = defineModel({
 	type: Boolean,
 });
 
 const recordSetRef = useCompRef(RecordSet);
+const timeRangeRef = useCompRef(TimeRange);
 
 const listData = {
 	list: [
@@ -40,40 +58,102 @@
 
 const queryRange = ref<string[]>(null);
 const timeRangeChange = (val) => {
-	queryRange.value = val;
-	setChartData(queryRange.value);
+	setChartData();
 };
 
 const selectStepChange = (val) => {
-	setChartData(queryRange.value);
+	setChartData();
 };
 const stepTime = ref('5 minutes');
 const chartValues = ref(null);
-const setChartData = async (timeRange: string[]) => {
-	const res = await queryScadaTimeValues({
-		// 璁惧绫诲瀷
-		ptype: props.otype,
-		// 璁惧鍚嶇О
-		pname: props.oname,
-		otype:props.indexName,
-		start_time: timeRange[0],
-		end_time: timeRange[1],
-		step_time: stepTime.value,
+const setChartData = async () => {
+	let url = '';
+	if (computedIsDialog.value) {
+		const otype = props.metricsInfo.id;
+		const oname = props.lastValueItem[otype]?.ONAME;
+		const queryId = props.metricsInfo.query_detail_id;
+		url = `chat/query_detail_values?query_id=${queryId}&otype=${otype}&oname=${oname}`;
+	} else {
+		url = props.metrics.url;
+	}
+	let res = await service({
+		url: url,
+		method: 'post',
+		data: {
+			start_time: timeRangeRef.value.formatDateValue[0],
+			end_time: timeRangeRef.value.formatDateValue[1],
+			step_time: stepTime.value,
+		},
 	});
+	if (!computedIsDialog.value) {
+		res = {
+			json_ok: res.json_ok,
+			values: {
+				title: props.metrics.title,
+				values: res.values,
+				cols: [
+					{
+						title: '鏃堕棿',
+						type: 'time',
+					},
+					{
+						title: '鍊�',
+						type: 'value',
+					},
+				],
+			},
+		};
+	} else {
+		res = {
+			json_ok: res.json_ok,
+			values: {
+				title: props.lastValueItem.OTITLE,
+				values: res.values,
+				cols: [
+					{
+						title: '鏃堕棿',
+						type: 'time',
+					},
+					{
+						title: '鍊�',
+						type: 'value',
+					},
+				],
+			},
+		};
+		if (props.metricsInfo.unit) {
+			res.values.unit = props.metricsInfo.unit;
+		}
+	}
 	chartValues.value = res.values;
-	nextTick(()=>{
-		recordSetRef.value.drawChart();
-	})
+	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) {
+			recordSetRef.value?.clearChart();
 			return;
 		}
 		queryRange.value = getRecentDateRange(1).map((item) => formatDate(item));
-		setChartData(queryRange.value);
+		nextTick(() => {
+			setChartData();
+		});
+	},
+	{
+		immediate: true,
 	}
 );
 </script>

--
Gitblit v1.9.3