mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-20 06:34:55 +00:00
* [improvement][Chat] Support agent permission management #1143 * [improvement][chat]Iterate LLM prompts of parsing and correction. * [improvement][headless]Clean code logic of headless core. * (fix) (chat) 记忆管理更新不生效 (#1912) * [improvement][headless-fe] Added null-check conditions to the data formatting function. * [improvement][headless]Clean code logic of headless translator. * [improvement][headless-fe] Added permissions management for agents. * [improvement][headless-fe] Unified the assistant's permission settings interaction to match the system style. * [improvement](Dict)Support returns dict task list of dimensions by page * [improvement][headless-fe] Revised the interaction for semantic modeling routing and implemented the initial version of metric management switching. * [improvement][launcher]Set system property `s2.test` in junit tests in order to facilitate conditional breakpoints. * [improvement][headless] add validateAndQuery interface in SqlQueryApiController * [improvement][launcher]Use API to get element ID avoiding hard-code. * [improvement][launcher]Support DuckDB database and refactor translator code structure. --------- Co-authored-by: lxwcodemonkey <jolunoluo@tencent.com> Co-authored-by: tristanliu <tristanliu@tencent.com> Co-authored-by: daikon12 <1059907724@qq.com> Co-authored-by: lexluo09 <39718951+lexluo09@users.noreply.github.com>
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
import { message } from 'antd';
|
|
import React, { useState, useEffect } from 'react';
|
|
import { getMetricData } from '../service';
|
|
import { useParams, useModel } from '@umijs/max';
|
|
import styles from './style.less';
|
|
import { ISemantic } from '../data';
|
|
import MetricInfoEditSider from './MetricInfoEditSider';
|
|
import MetricInfoCreateForm from './components/MetricInfoCreateForm';
|
|
import { MetricSettingKey } from './constants';
|
|
|
|
type Props = Record<string, any>;
|
|
|
|
const MetricDetail: React.FC<Props> = () => {
|
|
const params: any = useParams();
|
|
const metricId = params.metricId;
|
|
const [metircData, setMetircData] = useState<ISemantic.IMetricItem>();
|
|
const metricModel = useModel('SemanticModel.metricData');
|
|
const { selectMetric, setSelectMetric } = metricModel;
|
|
const [settingKey, setSettingKey] = useState<MetricSettingKey>(MetricSettingKey.BASIC);
|
|
|
|
useEffect(() => {
|
|
if (!metricId) {
|
|
return;
|
|
}
|
|
queryMetricData(metricId);
|
|
}, [metricId]);
|
|
|
|
useEffect(() => {
|
|
return () => {
|
|
setSelectMetric(undefined);
|
|
};
|
|
}, []);
|
|
|
|
const queryMetricData = async (metricId: string) => {
|
|
const { code, data, msg } = await getMetricData(metricId);
|
|
if (code === 200) {
|
|
setMetircData({ ...data });
|
|
setSelectMetric({ ...data });
|
|
return;
|
|
}
|
|
message.error(msg);
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<div className={styles.metricEditWrapper}>
|
|
<div className={styles.metricDetail}>
|
|
<div className={styles.siderContainer}>
|
|
<MetricInfoEditSider
|
|
onSettingKeyChange={(key: string) => {
|
|
setSettingKey(key);
|
|
}}
|
|
metircData={metircData}
|
|
/>
|
|
</div>
|
|
<div className={styles.tabContainer}>
|
|
<MetricInfoCreateForm settingKey={settingKey} metricItem={metircData} />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default MetricDetail;
|