mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 21:17:08 +00:00
* [improvement][semantic-fe] Add model alias setting & Add view permission restrictions to the model permission management tab. [improvement][semantic-fe] Add permission control to the action buttons for the main domain; apply high sensitivity filtering to the authorization of metrics/dimensions. [improvement][semantic-fe] Optimize the editing mode in the dimension/metric/datasource components to use the modelId stored in the database for data, instead of relying on the data from the state manager. * [improvement][semantic-fe] Add time granularity setting in the data source configuration. * [improvement][semantic-fe] Dictionary import for dimension values supported in Q&A visibility * [improvement][semantic-fe] Modification of data source creation prompt wording" * [improvement][semantic-fe] metric market experience optimization * [improvement][semantic-fe] enhance the analysis of metric trends * [improvement][semantic-fe] optimize the presentation of metric trend permissions * [improvement][semantic-fe] add metric trend download functionality * [improvement][semantic-fe] fix the dimension initialization issue in metric correlation * [improvement][semantic-fe] Fix the issue of database changes not taking effect when creating based on an SQL data source. * [improvement][semantic-fe] Optimizing pagination logic and some CSS styles * [improvement][semantic-fe] Fixing the API for the indicator list by changing "current" to "pageNum" * [improvement][semantic-fe] Fixing the default value setting for the indicator list * [improvement][semantic-fe] Adding batch operations for indicators/dimensions/models * [improvement][semantic-fe] Replacing the single status update API for indicators/dimensions with a batch update API * [improvement][semantic-fe] Redesigning the indicator homepage to incorporate trend charts and table functionality for indicators
91 lines
2.3 KiB
TypeScript
91 lines
2.3 KiB
TypeScript
import { message } from 'antd';
|
|
import React, { useState, useEffect } from 'react';
|
|
import { connect } from 'umi';
|
|
import type { StateType } from '../../model';
|
|
import { getDomainExtendConfig, addDomainExtend, editDomainExtend } from '../../service';
|
|
import ProCard from '@ant-design/pro-card';
|
|
|
|
import TextAreaCommonEditList from '../../components/CommonEditList/TextArea';
|
|
|
|
type Props = {
|
|
domainManger: StateType;
|
|
};
|
|
|
|
const RecommendedQuestionsSection: React.FC<Props> = ({ domainManger }) => {
|
|
const { selectModelId: modelId } = domainManger;
|
|
|
|
const [questionData, setQuestionData] = useState<string[]>([]);
|
|
const [currentRecordId, setCurrentRecordId] = useState<number>(0);
|
|
|
|
const queryThemeListData: any = async () => {
|
|
const { code, data } = await getDomainExtendConfig({
|
|
modelId,
|
|
});
|
|
|
|
if (code === 200) {
|
|
const target = data?.[0] || {};
|
|
if (Array.isArray(target.recommendedQuestions)) {
|
|
setQuestionData(
|
|
target.recommendedQuestions.map((item: { question: string }) => {
|
|
return item.question;
|
|
}),
|
|
);
|
|
setCurrentRecordId(target.id || 0);
|
|
} else {
|
|
setQuestionData([]);
|
|
setCurrentRecordId(0);
|
|
}
|
|
return;
|
|
}
|
|
|
|
message.error('获取问答设置信息失败');
|
|
};
|
|
|
|
const saveEntity = async (list: string[]) => {
|
|
let saveDomainExtendQuery = addDomainExtend;
|
|
if (currentRecordId) {
|
|
saveDomainExtendQuery = editDomainExtend;
|
|
}
|
|
const { code, msg } = await saveDomainExtendQuery({
|
|
recommendedQuestions: list.map((question: string) => {
|
|
return { question };
|
|
}),
|
|
id: currentRecordId,
|
|
modelId,
|
|
});
|
|
|
|
if (code === 200) {
|
|
return;
|
|
}
|
|
message.error(msg);
|
|
};
|
|
|
|
const initPage = async () => {
|
|
queryThemeListData();
|
|
};
|
|
|
|
useEffect(() => {
|
|
if (!modelId) {
|
|
return;
|
|
}
|
|
initPage();
|
|
}, [modelId]);
|
|
|
|
return (
|
|
<div style={{ width: 800, margin: '20px auto' }}>
|
|
<ProCard bordered title="问题推荐列表">
|
|
<TextAreaCommonEditList
|
|
value={questionData}
|
|
onChange={(list) => {
|
|
saveEntity(list);
|
|
setQuestionData(list);
|
|
}}
|
|
/>
|
|
</ProCard>
|
|
</div>
|
|
);
|
|
};
|
|
export default connect(({ domainManger }: { domainManger: StateType }) => ({
|
|
domainManger,
|
|
}))(RecommendedQuestionsSection);
|