From 3c8ba56f8ea1950067fac67f378e0e87bec3a23e Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 14 十月 2024 13:35:34 +0800 Subject: [PATCH] 曲线查询更改 --- src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSet.vue | 93 ++++++++++++++++++++++++++-------------------- 1 files changed, 53 insertions(+), 40 deletions(-) diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSet.vue b/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSet.vue index 022707c..3c5d8fc 100644 --- a/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSet.vue +++ b/src/components/chat/chatComponents/summaryCom/components/recordSet/RecordSet.vue @@ -38,12 +38,12 @@ import { useDrawChatChart } from '../../../hooks/useDrawChatChart'; import { ChartTypeEnum } from '../../../types'; import YRange from './components/YRange.vue'; -import type { RecordSet, RecordSetParamsItem } from './types'; +import type { RecordSetParamsItem } from './types'; import { RecordSetParamsType, recordSetMapCom, scoreMap } from './types'; -import { filterQuery } from '/@/api/ai/chat'; +import { curveQuery } from '/@/api/ai/chat'; +import { axisLabelFormatter } from '/@/utils/chart'; import { deepClone } from '/@/utils/other'; import { debounce } from '/@/utils/util'; -import { axisLabelFormatter } from '/@/utils/chart'; const chartRef = ref<HTMLDivElement>(null); const yRange = ref({ @@ -71,37 +71,52 @@ default: '20rem', }, }) as { - data: RecordSet; + data: any; }; const chartLoading = ref(false); +const stepOptions = [ + { title: '5鍒嗛挓', value: '5 minutes' }, + { title: '10鍒嗛挓', value: '10 minutes' }, + { title: '鍗婂皬鏃�', value: '30 minutes' }, + { title: '1灏忔椂', value: '1 hours' }, + { title: '1澶�', value: '1 days' }, +]; + const visibleParams = computed(() => { - const visibleList = props.data?.params?.filter((item) => !item?.hide) ?? []; - + // const visibleList = props.data?.params?.filter((item) => !item?.hide) ?? []; + // index 浣滀负 id + const visibleList = (props.data?.filter ?? []).map((item, index) => ({ + id: index + '', + ...item, + })); const newList: RecordSetParamsItem[] = []; - let nextMatchIndex = null; for (let index = 0; index < visibleList.length; index++) { - if (nextMatchIndex === index) continue; const current = visibleList[index]; - const currentAny = current as any; - if (index !== visibleList.length - 1 && currentAny.type === RecordSetParamsType.StartTime) { - const next = visibleList[index + 1]; - const nextAny = next as any; - - if (nextAny.group === currentAny.group && nextAny.type === RecordSetParamsType.EndTime) { + switch (current.type) { + case RecordSetParamsType.TimeRange: newList.push({ + id: current.id, type: RecordSetParamsType.TimeRange, - value: [currentAny.value, nextAny.value], - group: currentAny.group, - range: [currentAny, nextAny], - } as any); - nextMatchIndex = index + 1; - } else { - newList.push(current); - } - } else { - newList.push(current); + origin: current, + value: [current.start_value, current.end_value], + title: current.title, + }); + break; + case RecordSetParamsType.Step: + newList.push({ + id: current.id, + type: RecordSetParamsType.Step, + origin: current, + value: current.value, + list: stepOptions, + title: current.title, + }); + break; + default: + break; } + Reflect.deleteProperty(current,'id') } return newList; @@ -116,7 +131,6 @@ let valueCol = null; let preData = null; - let activeChartType: ChartTypeEnum = props.data?.chart_type ?? ChartTypeEnum.Line; const originChartType = activeChartType; @@ -176,14 +190,14 @@ }); } const yAxisFormatter = - originChartType === ChartTypeEnum.Score + originChartType === ChartTypeEnum.Score ? (value) => { return scoreMap[value]; } : axisLabelFormatter; const tooltipValueFormatter = - originChartType === ChartTypeEnum.Score + originChartType === ChartTypeEnum.Score ? (value) => { return scoreMap[value]; } @@ -327,31 +341,30 @@ const { chartContainerResize, chartInstance } = useDrawChatChart({ chartRef, drawChart }); // 鏇存崲鍒楄〃 -const changeMap = new Map<string, string>(null); - +const changeMap = new Map<string, any>(null); const handleQueryChange = async (val: any, item: RecordSetParamsItem) => { if (!val) return; - const historyId = (props as any).originData.historyId; - const summaryIndex = (props as any).summaryIndex; let res = null; try { if (item.type === RecordSetParamsType.TimeRange) { - changeMap.set(item.range[0].id, val[0]), changeMap.set(item.range[1].id, val[1]); + item.origin.start_value = val[0]; + item.origin.end_value = val[1]; + changeMap.set(item.id, item.origin); } else { - changeMap.set(item.id, val); + item.origin.value = val; + changeMap.set(item.id, item.origin); } - const paramsObj = {}; - for (const [key, value] of changeMap) { - paramsObj[key] = value; - } + + + const filterObj = Array.from(changeMap.values()); const params = { history_id: historyId, - query_index: summaryIndex, - param_json: JSON.stringify(paramsObj), + agent_key: props.data.agent_key, + filter_json: JSON.stringify(filterObj), }; - res = await filterQuery(params); + res = await curveQuery(params); chartLoading.value = true; } finally { chartLoading.value = false; -- Gitblit v1.9.3