[improvement][project] global refactor , code format , support llm , support fuzzy detect ,support query filter and so on.

This commit is contained in:
lexluo
2023-07-08 15:00:03 +08:00
parent 5ffd617431
commit 404163f391
329 changed files with 21050 additions and 5036 deletions

View File

@@ -2,6 +2,8 @@ import React, { useEffect, useState } from 'react';
import { Button, Modal, message } from 'antd';
import { addDomainExtend, editDomainExtend, getDomainExtendDetailConfig } from '../../service';
import DimensionMetricVisibleTransfer from './DimensionMetricVisibleTransfer';
import { exChangeRichEntityListToIds } from './utils';
type Props = {
domainId: number;
themeData: any;
@@ -36,7 +38,6 @@ const DimensionMetricVisibleModal: React.FC<Props> = ({
onSubmit,
}) => {
const [sourceList, setSourceList] = useState<any[]>([]);
const [visibilityData, setVisibilityData] = useState<any>({});
const [selectedKeyList, setSelectedKeyList] = useState<string[]>([]);
const settingTypeConfig = settingType === 'dimension' ? dimensionConfig : metricConfig;
useEffect(() => {
@@ -47,27 +48,12 @@ const DimensionMetricVisibleModal: React.FC<Props> = ({
setSourceList(list);
}, [settingSourceList]);
const queryThemeListData: any = async () => {
const { code, data } = await getDomainExtendDetailConfig({
domainId,
});
if (code === 200) {
setVisibilityData(data.visibility);
return;
}
message.error('获取可见信息失败');
};
useEffect(() => {
queryThemeListData();
}, []);
useEffect(() => {
setSelectedKeyList(visibilityData?.[settingTypeConfig.visibleIdListKey] || []);
}, [visibilityData]);
setSelectedKeyList(themeData.visibility?.[settingTypeConfig.visibleIdListKey] || []);
}, [themeData]);
const saveEntity = async () => {
const { id } = themeData;
const { id, entity } = themeData;
let saveDomainExtendQuery = addDomainExtend;
if (id) {
saveDomainExtendQuery = editDomainExtend;
@@ -79,6 +65,8 @@ const DimensionMetricVisibleModal: React.FC<Props> = ({
}
return list;
}, []);
const entityParams = exChangeRichEntityListToIds(entity);
themeData.entity = entityParams;
const params = {
...themeData,
visibility: themeData.visibility || {},

View File

@@ -2,15 +2,17 @@ import { useEffect, useState, forwardRef, useImperativeHandle } from 'react';
import type { ForwardRefRenderFunction } from 'react';
import { message, Form, Input, Select, Button } from 'antd';
import { addDomainExtend, editDomainExtend } from '../../service';
import type { ISemantic, IChatConfig } from '../../data';
import { formLayout } from '@/components/FormHelper/utils';
import { exChangeRichEntityListToIds } from './utils';
import styles from '../style.less';
type Props = {
entityData: any;
metricList: any[];
dimensionList: any[];
entityData: IChatConfig.IEntity;
metricList: ISemantic.IMetricList;
dimensionList: ISemantic.IDimensionList;
domainId: number;
onSubmit: (params?: any) => void;
onSubmit: () => void;
};
const FormItem = Form.Item;
@@ -34,33 +36,19 @@ const EntityCreateForm: ForwardRefRenderFunction<any, Props> = (
if (Object.keys(entityData).length === 0) {
return;
}
const { detailData = {}, names = [] } = entityData;
if (!detailData.dimensionIds) {
entityData = {
...entityData,
detailData: {
...detailData,
dimensionIds: [],
},
};
}
if (!detailData.metricIds) {
entityData = {
...entityData,
detailData: {
...detailData,
metricIds: [],
},
};
}
form.setFieldsValue({ ...entityData, name: names.join(',') });
const names = entityData.names || [];
const formatEntityData = exChangeRichEntityListToIds(entityData);
form.setFieldsValue({
...formatEntityData,
name: names.join(','),
});
}, [entityData]);
useImperativeHandle(ref, () => ({
getFormValidateFields,
}));
useEffect(() => {
const metricOption = metricList.map((item: any) => {
const metricOption = metricList.map((item: ISemantic.IMetricItem) => {
return {
label: item.name,
value: item.id,
@@ -70,7 +58,7 @@ const EntityCreateForm: ForwardRefRenderFunction<any, Props> = (
}, [metricList]);
useEffect(() => {
const dimensionEnum = dimensionList.map((item: any) => {
const dimensionEnum = dimensionList.map((item: ISemantic.IDimensionItem) => {
return {
label: item.name,
value: item.id,
@@ -128,6 +116,13 @@ const EntityCreateForm: ForwardRefRenderFunction<any, Props> = (
mode="multiple"
allowClear
style={{ width: '100%' }}
filterOption={(inputValue: string, item: any) => {
const { label } = item;
if (label.includes(inputValue)) {
return true;
}
return false;
}}
placeholder="请选择主体标识"
options={dimensionListOptions}
/>
@@ -137,6 +132,13 @@ const EntityCreateForm: ForwardRefRenderFunction<any, Props> = (
mode="multiple"
allowClear
style={{ width: '100%' }}
filterOption={(inputValue: string, item: any) => {
const { label } = item;
if (label.includes(inputValue)) {
return true;
}
return false;
}}
placeholder="请选择展示维度信息"
options={dimensionListOptions}
/>
@@ -146,6 +148,13 @@ const EntityCreateForm: ForwardRefRenderFunction<any, Props> = (
mode="multiple"
allowClear
style={{ width: '100%' }}
filterOption={(inputValue: string, item: any) => {
const { label } = item;
if (label.includes(inputValue)) {
return true;
}
return false;
}}
placeholder="请选择展示指标信息"
options={metricListOptions}
/>

View File

@@ -3,10 +3,11 @@ import React, { useState, useEffect, useRef } from 'react';
import type { Dispatch } from 'umi';
import { connect } from 'umi';
import type { StateType } from '../../model';
import { getDomainExtendConfig } from '../../service';
import { getDomainExtendConfig, getDomainExtendDetailConfig } from '../../service';
import ProCard from '@ant-design/pro-card';
import EntityCreateForm from './EntityCreateForm';
import MetricSettingForm from './MetricSettingForm';
import type { IChatConfig } from '../../data';
import DimensionMetricVisibleForm from './DimensionMetricVisibleForm';
type Props = {
@@ -17,18 +18,21 @@ type Props = {
const EntitySection: React.FC<Props> = ({ domainManger, dispatch }) => {
const { selectDomainId, dimensionList, metricList } = domainManger;
const [entityData, setEntityData] = useState<any>({});
const [entityData, setEntityData] = useState<IChatConfig.IEntity>({} as IChatConfig.IEntity);
const [themeData, setThemeData] = useState<any>({});
const entityCreateRef = useRef<any>({});
const queryThemeListData: any = async () => {
const { code, data } = await getDomainExtendConfig({
const { code, data } = await getDomainExtendDetailConfig({
domainId: selectDomainId,
});
// getDomainExtendConfig({
// domainId: selectDomainId,
// });
if (code === 200) {
const target = data?.[0] || {};
const target = data;
if (target) {
setThemeData(target);
setEntityData({
@@ -75,7 +79,14 @@ const EntitySection: React.FC<Props> = ({ domainManger, dispatch }) => {
<MetricSettingForm
domainId={Number(selectDomainId)}
themeData={themeData}
metricList={metricList}
// metricList={metricList}
metricList={metricList.filter((item) => {
const blackMetricIdList = themeData.visibility?.blackMetricIdList;
if (Array.isArray(blackMetricIdList)) {
return !blackMetricIdList.includes(item.id);
}
return false;
})}
onSubmit={() => {
queryThemeListData();
}}
@@ -86,8 +97,22 @@ const EntitySection: React.FC<Props> = ({ domainManger, dispatch }) => {
ref={entityCreateRef}
domainId={Number(selectDomainId)}
entityData={entityData}
metricList={metricList}
dimensionList={dimensionList}
// metricList={metricList}
metricList={metricList.filter((item) => {
const blackMetricIdList = themeData.visibility?.blackMetricIdList;
if (Array.isArray(blackMetricIdList)) {
return !blackMetricIdList.includes(item.id);
}
return false;
})}
// dimensionList={dimensionList}
dimensionList={dimensionList.filter((item) => {
const blackDimensionList = themeData.visibility?.blackDimIdList;
if (Array.isArray(blackDimensionList)) {
return !blackDimensionList.includes(item.id);
}
return false;
})}
onSubmit={() => {
queryThemeListData();
}}

View File

@@ -17,7 +17,7 @@ const FormItem = Form.Item;
const Option = Select.Option;
const MetricSettingForm: ForwardRefRenderFunction<any, Props> = (
{ metricList, domainId, themeData: uniqueMetricData },
{ metricList, domainId, themeData: uniqueMetricData, onSubmit },
ref,
) => {
const [form] = Form.useForm();
@@ -82,6 +82,7 @@ const MetricSettingForm: ForwardRefRenderFunction<any, Props> = (
if (code === 200) {
form.setFieldValue('id', data);
onSubmit?.();
message.success('保存成功');
return;
}
@@ -116,6 +117,13 @@ const MetricSettingForm: ForwardRefRenderFunction<any, Props> = (
allowClear
showSearch
style={{ width: '100%' }}
filterOption={(inputValue: string, item: any) => {
const { label } = item;
if (label.includes(inputValue)) {
return true;
}
return false;
}}
placeholder="请选择展示指标信息"
options={metricListOptions}
/>

View File

@@ -0,0 +1,28 @@
import { IChatConfig, ISemantic } from '../../data';
export const exChangeRichEntityListToIds = (entityData: IChatConfig.IEntity) => {
const entityList = entityData.entityIds || [];
const detailData: {
dimensionIds: number[];
metricIds: number[];
} = { dimensionIds: [], metricIds: [] };
const { dimensionList, metricList } = entityData.entityInternalDetailDesc || {};
if (Array.isArray(dimensionList)) {
detailData.dimensionIds = dimensionList.map((item: ISemantic.IDimensionItem) => {
return item.id;
});
}
if (Array.isArray(metricList)) {
detailData.metricIds = metricList.map((item: ISemantic.IMetricItem) => {
return item.id;
});
}
const entityIds = entityList.map((item) => {
return item.id;
});
return {
...entityData,
entityIds,
detailData,
};
};