Commit 3ea0b4dd by zhaochengxiang

模型未输入中英文,点击保存,滚动轴要和必填提示同步

parent 384d07e3
......@@ -3,7 +3,7 @@ import { Form, Button, Space, Tooltip } from 'antd';
import LocalStorage from 'local-storage';
import { useMount, useUnmount } from 'ahooks';
import ImportAction from './ImportAction';
import ImportAction, { ImportActionSubject } from './ImportAction';
import CatalogModal from './CatalogModal';
import { dispatchLatest, dispatch } from '../../../../model';
import { getDataModelerRole, getQueryParam, showMessage, showNotifaction } from '../../../../util';
......@@ -21,7 +21,6 @@ const EditModel = (props) => {
const [ confirmLoading, setConfirmLoading ] = useState(false);
const [ catalogModalVisible, setCatalogModalVisible ] = useState(false);
const [ historyAndVersionDrawerVisible, setHistoryAndVersionDrawerVisible ] = useState(false);
const [ autoTabKey, setAutoTabKey ] = useState(null);
const [user, setUser] = useState();
const actionRef = useRef('');
......@@ -129,15 +128,13 @@ const EditModel = (props) => {
})
if (repeat) {
setAutoTabKey('2');
ImportActionSubject.next({ type: 'tabChangeEvent', key: 'model-import-action-table' });
setTerms(terms);
}
}
const save = async (e, cid = '') => {
setAutoTabKey(null);
try {
const row = await form.validateFields();
......@@ -228,7 +225,7 @@ const EditModel = (props) => {
} catch (errInfo) {
console.log('Validate Failed:', errInfo);
setAutoTabKey('1');
ImportActionSubject.next({ type: 'tabChangeEvent', key: 'model-import-action-basic' });
}
}
......@@ -362,7 +359,7 @@ const EditModel = (props) => {
</div> */}
<div className='edit-container'>
<div className='edit-container-card'>
<ImportAction hints={hints} onChange={onActionChange} action={action} modelerId={modelerId} ddl={ddl} form={form} terms={terms} roughModelerData={roughModelerData} permitCheckOut={permitCheckOut} stateId={stateId} versionId={versionId} autoTabKey={autoTabKey} logicId={logicId} metadataId={metadataId} catalogId={catalogId} {...props} />
<ImportAction hints={hints} onChange={onActionChange} action={action} modelerId={modelerId} ddl={ddl} form={form} terms={terms} roughModelerData={roughModelerData} permitCheckOut={permitCheckOut} stateId={stateId} versionId={versionId} logicId={logicId} metadataId={metadataId} catalogId={catalogId} {...props} />
</div>
</div>
<div className='edit-footer'>
......
import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';
import { Spin, Tabs, Anchor, Affix, Button } from 'antd';
import LocalStorage from 'local-storage';
import { Subject } from 'rxjs'
import ImportActionHeader from './ImportActionHeader';
import { ImportActionTable } from './ImportActionTable';
......@@ -15,6 +16,8 @@ import { dispatch } from '../../../../model';
import './ImportAction.less'
import ImportActionProcess from './ImportActionProcess';
export const ImportActionSubject = new Subject();
const ImportAction = React.forwardRef((props, ref) => {
const { action, hints, onChange, form, modelerId, terms, ddl, roughModelerData, versionId, permitCheckOut, catalogId, logicId, metadataId } = props;
......@@ -41,6 +44,26 @@ const ImportAction = React.forwardRef((props, ref) => {
}
}), [loading])
const onTabChange = (val) => {
setActiveValue(val);
var targetElement = container?.querySelector(`.${val}`); // 找到目标元素
if (targetElement) {
animating.current = true;
targetElement.scrollIntoView();
}
}
useEffect(() => {
const $$action = ImportActionSubject.subscribe((act) => {
if (act?.type === 'tabChangeEvent' && act?.key) {
onTabChange(act?.key)
}
})
return () => {
$$action.unsubscribe()
}
}, [onTabChange])
useEffect(() =>{
if ((action||'')==='') return;
......@@ -630,14 +653,7 @@ const ImportAction = React.forwardRef((props, ref) => {
(action==='detail' && ((modelerData||{}).optionList||[]).findIndex(item => item.enabled && item.name==='查看') === -1) ? <div style={{ padding: '10px 20px', height: 60 }}>
{loading?'':'暂无权限'}
</div> : <div className='import-action'>
<Tabs activeKey={activeValue} centered onChange={(val) => {
setActiveValue(val);
var targetElement = container?.querySelector(`.${val}`); // 找到目标元素
if (targetElement) {
animating.current = true;
targetElement.scrollIntoView();
}
}}>
<Tabs activeKey={activeValue} centered onChange={onTabChange}>
<Tabs.TabPane tab='基本信息' key="model-import-action-basic" />
<Tabs.TabPane tab='技术信息' key="model-import-action-technical" />
<Tabs.TabPane tab='数据表结构' key="model-import-action-table" />
......
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