mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 04:27:39 +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 * [improvement][semantic-fe] Optimizing the logic for setting dimension values and editing data sources, and adding system settings functionality * [improvement][semantic-fe] Upgrading antd version to 5.x, extracting the batch operation button component, optimizing the interaction for system settings, and expanding the configuration generation types for list-to-select component. * [improvement][semantic-fe] Adding the ability to filter dimensions based on whether they are tags or not.
114 lines
3.1 KiB
TypeScript
114 lines
3.1 KiB
TypeScript
import { Table, Transfer } from 'antd';
|
|
import type { ColumnsType, TableRowSelection } from 'antd/es/table/interface';
|
|
import type { TransferItem } from 'antd/es/transfer';
|
|
import difference from 'lodash/difference';
|
|
import React from 'react';
|
|
import { connect } from 'umi';
|
|
import type { StateType } from '../../model';
|
|
import type { IChatConfig } from '../../data';
|
|
import TransTypeTag from '../TransTypeTag';
|
|
import { SemanticNodeType, TransType } from '../../enum';
|
|
interface RecordType {
|
|
id: number;
|
|
key: string;
|
|
name: string;
|
|
bizName: string;
|
|
type: TransType.DIMENSION | TransType.METRIC;
|
|
}
|
|
|
|
type Props = {
|
|
domainManger: StateType;
|
|
knowledgeInfosMap?: IChatConfig.IKnowledgeInfosItemMap;
|
|
onKnowledgeInfosMapChange?: (knowledgeInfosMap: IChatConfig.IKnowledgeInfosItemMap) => void;
|
|
[key: string]: any;
|
|
};
|
|
|
|
// type TaskStateMap = Record<string, DictTaskState>;
|
|
|
|
const DimensionMetricVisibleTableTransfer: React.FC<Props> = ({
|
|
// domainManger,
|
|
knowledgeInfosMap,
|
|
// onKnowledgeInfosMapChange,
|
|
...restProps
|
|
}) => {
|
|
let rightColumns: ColumnsType<RecordType> = [
|
|
{
|
|
dataIndex: 'name',
|
|
title: '名称',
|
|
},
|
|
{
|
|
dataIndex: 'type',
|
|
width: 80,
|
|
title: '类型',
|
|
render: (type: SemanticNodeType) => {
|
|
return <TransTypeTag type={type} />;
|
|
},
|
|
},
|
|
];
|
|
|
|
const leftColumns: ColumnsType<RecordType> = [
|
|
{
|
|
dataIndex: 'name',
|
|
title: '名称',
|
|
},
|
|
{
|
|
dataIndex: 'type',
|
|
title: '类型',
|
|
render: (type) => {
|
|
return <TransTypeTag type={type} />;
|
|
},
|
|
},
|
|
];
|
|
if (!knowledgeInfosMap) {
|
|
rightColumns = leftColumns;
|
|
}
|
|
return (
|
|
<>
|
|
<Transfer {...restProps}>
|
|
{({
|
|
direction,
|
|
filteredItems,
|
|
onItemSelectAll,
|
|
onItemSelect,
|
|
selectedKeys: listSelectedKeys,
|
|
}) => {
|
|
const columns = direction === 'left' ? leftColumns : rightColumns;
|
|
const rowSelection: TableRowSelection<TransferItem> = {
|
|
onSelectAll(selected, selectedRows) {
|
|
const treeSelectedKeys = selectedRows.map(({ key }) => key);
|
|
const diffKeys = selected
|
|
? difference(treeSelectedKeys, listSelectedKeys)
|
|
: difference(listSelectedKeys, treeSelectedKeys);
|
|
onItemSelectAll(diffKeys as string[], selected);
|
|
},
|
|
onSelect({ key }, selected) {
|
|
onItemSelect(key as string, selected);
|
|
},
|
|
selectedRowKeys: listSelectedKeys,
|
|
};
|
|
|
|
return (
|
|
<Table
|
|
rowSelection={rowSelection}
|
|
columns={columns}
|
|
dataSource={filteredItems as any}
|
|
size="small"
|
|
pagination={false}
|
|
scroll={{ y: 450 }}
|
|
onRow={({ key }) => ({
|
|
onClick: () => {
|
|
onItemSelect(key as string, !listSelectedKeys.includes(key as string));
|
|
},
|
|
})}
|
|
/>
|
|
);
|
|
}}
|
|
</Transfer>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default connect(({ domainManger }: { domainManger: StateType }) => ({
|
|
domainManger,
|
|
}))(DimensionMetricVisibleTableTransfer);
|