Commit a5770afb by zhaochengxiang

推荐

parent 5bad3999
...@@ -170,6 +170,10 @@ export function* getSupportedDatatypes() { ...@@ -170,6 +170,10 @@ export function* getSupportedDatatypes() {
return yield call(datamodelerService.getSupportedDatatypes); return yield call(datamodelerService.getSupportedDatatypes);
} }
export function* getSuggestionPreference(payload) {
return yield call(datamodelerService.getSuggestionPreference, payload);
}
export function* suggest(payload) { export function* suggest(payload) {
return yield call(datamodelerService.suggest, payload); return yield call(datamodelerService.suggest, payload);
} }
......
...@@ -124,6 +124,10 @@ export function getSupportedDatatypes() { ...@@ -124,6 +124,10 @@ export function getSupportedDatatypes() {
return GetJSON("/datamodeler/easyDataModelerCURD/getSupportedDatatypes"); return GetJSON("/datamodeler/easyDataModelerCURD/getSupportedDatatypes");
} }
export function getSuggestionPreference(payload) {
return GetJSON("/datamodeler/easyDataModelerDesign/getSuggestionPreference", payload);
}
export function suggest(payload) { export function suggest(payload) {
return PostJSON("/datamodeler/easyDataModelerDesign/suggest", payload); return PostJSON("/datamodeler/easyDataModelerDesign/suggest", payload);
} }
......
...@@ -646,6 +646,7 @@ const ImportAction = React.forwardRef((props, ref) => { ...@@ -646,6 +646,7 @@ const ImportAction = React.forwardRef((props, ref) => {
reference={reference} reference={reference}
/> />
<ImportActionTable <ImportActionTable
catalogId={catalogId}
modelerData={modelerData||{}} modelerData={modelerData||{}}
constraint={constraint} constraint={constraint}
template={template} template={template}
......
...@@ -224,7 +224,7 @@ export const DragableBodyRow = ({ index, moveRow, className, style, ...restProps ...@@ -224,7 +224,7 @@ export const DragableBodyRow = ({ index, moveRow, className, style, ...restProps
}; };
export const ImportActionTable = (props) => { export const ImportActionTable = (props) => {
const { modelerData, onChange, editable, supportedDatatypes, constraint, template, validateReports, type = 'model', terms, action, originAction } = props; const { catalogId, modelerData, onChange, editable, supportedDatatypes, constraint, template, validateReports, type = 'model', terms, action, originAction } = props;
const [ data, setData ] = useState([]); const [ data, setData ] = useState([]);
const [ form ] = Form.useForm(); const [ form ] = Form.useForm();
...@@ -1141,6 +1141,8 @@ export const ImportActionTable = (props) => { ...@@ -1141,6 +1141,8 @@ export const ImportActionTable = (props) => {
<div onClick={(e) => { e.stopPropagation() }}> <div onClick={(e) => { e.stopPropagation() }}>
<Suggest <Suggest
{...suggestParams} {...suggestParams}
catalogId={catalogId}
modelerData={modelerData}
onCancel={() => { onCancel={() => {
setSuggestParams({ setSuggestParams({
visible: false, visible: false,
......
...@@ -10,7 +10,9 @@ import { useDebounceEffect } from 'ahooks' ...@@ -10,7 +10,9 @@ import { useDebounceEffect } from 'ahooks'
const topN = 20 const topN = 20
const FC = (props) => { const FC = (props) => {
const { visible, name, cnName, onCancel, onOk, triggerType = 'cnName' } = props const { visible, name, cnName, onCancel, onOk, triggerType = 'cnName', catalogId, modelerData } = props
const [loadingPreference, setLoadingPreference] = React.useState(false)
const [preference, setPreference] = React.useState()
const [loading, setLoading] = React.useState(false) const [loading, setLoading] = React.useState(false)
const [suggests, setSuggests] = React.useState() const [suggests, setSuggests] = React.useState()
const [selectedRows, setSelectedRows] = React.useState() const [selectedRows, setSelectedRows] = React.useState()
...@@ -118,6 +120,7 @@ const FC = (props) => { ...@@ -118,6 +120,7 @@ const FC = (props) => {
React.useEffect(() => { React.useEffect(() => {
if (visible) { if (visible) {
setAnimating(true) setAnimating(true)
getSuggestionPreference()
setArgs({ setArgs({
name, name,
cnName, cnName,
...@@ -131,10 +134,10 @@ const FC = (props) => { ...@@ -131,10 +134,10 @@ const FC = (props) => {
}, [visible]) }, [visible])
useDebounceEffect(()=>{ useDebounceEffect(()=>{
if (args.name || args.cnName) { if (preference && (args.name||args.cnName)) {
getSuggests() getSuggests()
} }
}, [args], { wait: 300 }) }, [args, preference], { wait: 300 })
useDebounceEffect(()=>{ useDebounceEffect(()=>{
setColumns(isCompact?[...cols].slice(0, 4):[...cols]) setColumns(isCompact?[...cols].slice(0, 4):[...cols])
...@@ -160,6 +163,32 @@ const FC = (props) => { ...@@ -160,6 +163,32 @@ const FC = (props) => {
} }
} }
const getSuggestionPreference = () => {
setLoadingPreference(true)
let params = {}
if (modelerData?.id) {
params = {
easyDataModelerDataModelId: modelerData?.id
}
} else if (catalogId) {
params = {
dataCatalogId: catalogId
}
}
dispatch({
type: 'datamodel.getSuggestionPreference',
payload: params,
callback: data => {
setLoadingPreference(false)
setPreference(data)
},
error: () => {
setLoadingPreference(false)
}
})
}
const getSuggests = () => { const getSuggests = () => {
setLoading(true) setLoading(true)
dispatch({ dispatch({
...@@ -170,7 +199,8 @@ const FC = (props) => { ...@@ -170,7 +199,8 @@ const FC = (props) => {
cnName: args.cnName??'', cnName: args.cnName??'',
offset, offset,
topN, topN,
} },
data: preference
}, },
callback: data => { callback: data => {
setLoading(false) setLoading(false)
...@@ -200,9 +230,11 @@ const FC = (props) => { ...@@ -200,9 +230,11 @@ const FC = (props) => {
} }
const close = () => { const close = () => {
setLoadingPreference(false)
setLoading(false) setLoading(false)
setAnimating(false) setAnimating(false)
setCompact(true) setCompact(true)
setPreference()
setSuggests() setSuggests()
setOffset(1) setOffset(1)
setMore(false) setMore(false)
...@@ -274,7 +306,7 @@ const FC = (props) => { ...@@ -274,7 +306,7 @@ const FC = (props) => {
}} }}
/> />
</div> </div>
<Spin spinning={loading}> <Spin spinning={loading||loadingPreference}>
<div style={{ height: isCompact?'50vh':'80vh', overflow: 'auto' }}> <div style={{ height: isCompact?'50vh':'80vh', overflow: 'auto' }}>
<Table <Table
extraColWidth={32} extraColWidth={32}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment