Commit 88dcded2 by zhaochengxiang

分支新增模型

parent e87fdc08
...@@ -6,6 +6,7 @@ export const AnchorDirId = 'did'; ...@@ -6,6 +6,7 @@ export const AnchorDirId = 'did';
//编辑模型 //编辑模型
export const Action = 'action'; export const Action = 'action';
export const CatalogId = 'cid'; export const CatalogId = 'cid';
export const BranchId = 'branchId';
export const ModelerId = 'mid'; export const ModelerId = 'mid';
export const Hints = 'hints'; export const Hints = 'hints';
export const ModelerData = 'mdata'; export const ModelerData = 'mdata';
......
...@@ -7,7 +7,7 @@ import ImportAction from './ImportAction'; ...@@ -7,7 +7,7 @@ import ImportAction from './ImportAction';
import CatalogModal from './CatalogModal'; import CatalogModal from './CatalogModal';
import { dispatchLatest, dispatch } from '../../../../model'; import { dispatchLatest, dispatch } from '../../../../model';
import { getQueryParam, showMessage, showNotifaction } from '../../../../util'; import { getQueryParam, showMessage, showNotifaction } from '../../../../util';
import { Action, CatalogId, ModelerId, Hints, ModelerData, PermitCheckOut, Editable, StateId, VersionId, Holder, DDL, ReadOnly } from '../../../../util/constant'; import { Action, CatalogId, ModelerId, Hints, ModelerData, PermitCheckOut, Editable, StateId, VersionId, Holder, DDL, ReadOnly, BranchId } from '../../../../util/constant';
import HistoryAndVersionDrawer from './HistoryAndVersionDrawer'; import HistoryAndVersionDrawer from './HistoryAndVersionDrawer';
import { EditModelContext } from './ContextManage'; import { EditModelContext } from './ContextManage';
import EditInherited from './EditInherited'; import EditInherited from './EditInherited';
...@@ -18,7 +18,7 @@ import './EditModel.less'; ...@@ -18,7 +18,7 @@ import './EditModel.less';
const EditModel = (props) => { const EditModel = (props) => {
const [ actionData, setActionData ] = useState({ action: '', catalogId: '', modelerId: '', hints: [], roughModelerData: null, permitCheckOut: false, editable: false, stateId: '', versionId: '', ddl: '', readOnly: false }); const [ actionData, setActionData ] = useState({ action: '', catalogId: '', modelerId: '', hints: [], roughModelerData: null, permitCheckOut: false, editable: false, stateId: '', versionId: '', ddl: '', readOnly: false, branchId: '' });
const [ modelerData, setModelerData ] = useState({}); const [ modelerData, setModelerData ] = useState({});
const [ terms, setTerms ] = useState([]); const [ terms, setTerms ] = useState([]);
...@@ -32,7 +32,7 @@ const EditModel = (props) => { ...@@ -32,7 +32,7 @@ const EditModel = (props) => {
const attrIsEditingRef = useRef(false); const attrIsEditingRef = useRef(false);
const indexIsEditingRef = useRef(false); const indexIsEditingRef = useRef(false);
const { action, catalogId, modelerId, hints, roughModelerData, permitCheckOut, editable, stateId, versionId, holder, ddl, readOnly } = actionData; const { action, catalogId, modelerId, hints, roughModelerData, permitCheckOut, editable, stateId, versionId, holder, ddl, readOnly, branchId } = actionData;
const [form] = Form.useForm(); const [form] = Form.useForm();
const [modal, contextHolder] = Modal.useModal() const [modal, contextHolder] = Modal.useModal()
...@@ -51,6 +51,7 @@ const EditModel = (props) => { ...@@ -51,6 +51,7 @@ const EditModel = (props) => {
const _holder = getQueryParam(Holder, props.location.search); const _holder = getQueryParam(Holder, props.location.search);
const _ddl = getQueryParam(DDL, props.location.search); const _ddl = getQueryParam(DDL, props.location.search);
const _readOnly = getQueryParam(ReadOnly, props.location.search); const _readOnly = getQueryParam(ReadOnly, props.location.search);
const _branchId = getQueryParam(BranchId, props.location.search)
let _hints = []; let _hints = [];
if ((_hintsStr||'') !== '') { if ((_hintsStr||'') !== '') {
...@@ -64,7 +65,7 @@ const EditModel = (props) => { ...@@ -64,7 +65,7 @@ const EditModel = (props) => {
judgeAttributeRepeat(_roughModelerData.easyDataModelerDataModelAttributes); judgeAttributeRepeat(_roughModelerData.easyDataModelerDataModelAttributes);
} }
setActionData({ action: _action, catalogId: _catalogId, modelerId: _modelerId, hints: _hints, roughModelerData: _roughModelerData, permitCheckOut: (_permitCheckOut==='true'), editable: (_editable==='true'), stateId: _stateId, versionId: _versionId, holder: _holder, ddl: _ddl, readOnly: _readOnly }); setActionData({ action: _action, catalogId: _catalogId, modelerId: _modelerId, hints: _hints, roughModelerData: _roughModelerData, permitCheckOut: (_permitCheckOut==='true'), editable: (_editable==='true'), stateId: _stateId, versionId: _versionId, holder: _holder, ddl: _ddl, readOnly: _readOnly, branchId: _branchId });
actionRef.current = _action; actionRef.current = _action;
const interval = setInterval(() => { const interval = setInterval(() => {
...@@ -478,7 +479,7 @@ const EditModel = (props) => { ...@@ -478,7 +479,7 @@ const EditModel = (props) => {
</div> </div>
<div className='edit-container'> <div className='edit-container'>
<div className='edit-container-card'> <div className='edit-container-card'>
<ImportAction ref={importActionRef} hints={hints} onChange={onActionChange} action={action} modelerId={modelerId} catalogId={catalogId} ddl={ddl} form={form} terms={terms} roughModelerData={roughModelerData} permitCheckOut={permitCheckOut} stateId={stateId} versionId={versionId} autoTabKey={autoTabKey} {...props} /> <ImportAction ref={importActionRef} hints={hints} onChange={onActionChange} action={action} modelerId={modelerId} catalogId={catalogId} ddl={ddl} form={form} terms={terms} roughModelerData={roughModelerData} permitCheckOut={permitCheckOut} stateId={stateId} versionId={versionId} branchId={branchId} autoTabKey={autoTabKey} {...props} />
</div> </div>
</div> </div>
<div className='edit-footer'> <div className='edit-footer'>
......
...@@ -18,7 +18,7 @@ import './ImportAction.less' ...@@ -18,7 +18,7 @@ import './ImportAction.less'
export const importActionSubject = new Subject() export const importActionSubject = new Subject()
const ImportAction = React.forwardRef((props, ref) => { const ImportAction = React.forwardRef((props, ref) => {
const { action, hints, onChange, form, modelerId, terms, ddl, roughModelerData, versionId, permitCheckOut, catalogId } = props; const { action, hints, onChange, form, modelerId, terms, ddl, roughModelerData, versionId, permitCheckOut, catalogId, branchId } = props;
const [ constraints, setConstraints ] = useState([]); const [ constraints, setConstraints ] = useState([]);
const [ constraint, setConstraint ] = useState({}); const [ constraint, setConstraint ] = useState({});
...@@ -168,6 +168,7 @@ const ImportAction = React.forwardRef((props, ref) => { ...@@ -168,6 +168,7 @@ const ImportAction = React.forwardRef((props, ref) => {
payload: { payload: {
params: { params: {
dataCatalogId: catalogId, dataCatalogId: catalogId,
branchId
}, },
data: { data: {
hints: _hints, hints: _hints,
...@@ -189,6 +190,9 @@ const ImportAction = React.forwardRef((props, ref) => { ...@@ -189,6 +190,9 @@ const ImportAction = React.forwardRef((props, ref) => {
dispatch({ dispatch({
type: 'datamodel.getDraftUsingDDL', type: 'datamodel.getDraftUsingDDL',
payload: { payload: {
params: {
branchId
},
data: { data: {
ddl: _ddl, ddl: _ddl,
modelerModelingConstraint: _constraint, modelerModelingConstraint: _constraint,
......
...@@ -18,7 +18,7 @@ const importModes = [ ...@@ -18,7 +18,7 @@ const importModes = [
] ]
const ImportModal = (props) => { const ImportModal = (props) => {
const { view, catalogId, visible, onCancel, onCancelByWord, onCancelByDDL } = props; const { view, catalogId, visible, onCancel, onCancelByWord, onCancelByDDL, branchId } = props;
const [ modeKey, setModeKey ] = useState('excel-copy'); const [ modeKey, setModeKey ] = useState('excel-copy');
const [ hints, setHints ] = useState([]); const [ hints, setHints ] = useState([]);
...@@ -44,6 +44,7 @@ const ImportModal = (props) => { ...@@ -44,6 +44,7 @@ const ImportModal = (props) => {
payload: { payload: {
params: { params: {
catalogId, catalogId,
branchId,
}, },
fileList: row.upload fileList: row.upload
}, },
...@@ -157,7 +158,7 @@ const ImportModal = (props) => { ...@@ -157,7 +158,7 @@ const ImportModal = (props) => {
importModes.map((item, index) => { importModes.map((item, index) => {
let title = ''; let title = '';
if (item.key==='word'&&(view!=='dir'||(catalogId||'') === '')) { if (item.key==='word'&&(view==='state'||!catalogId)) {
title = '请先选择主题'; title = '请先选择主题';
} }
...@@ -169,7 +170,7 @@ const ImportModal = (props) => { ...@@ -169,7 +170,7 @@ const ImportModal = (props) => {
<Tooltip key={index} title={title}> <Tooltip key={index} title={title}>
<Radio <Radio
value={item.key} value={item.key}
disabled={item.key==='word'&&(view!=='dir'||(catalogId||'') === '')}> disabled={item.key==='word'&&(view==='state'||!catalogId)}>
{item.name} {item.name}
</Radio> </Radio>
</Tooltip> </Tooltip>
......
...@@ -3,6 +3,7 @@ import { Modal, Button, Tree, Spin, } from "antd" ...@@ -3,6 +3,7 @@ import { Modal, Button, Tree, Spin, } from "antd"
import produce from "immer" import produce from "immer"
import { dispatch } from '../../../../model' import { dispatch } from '../../../../model'
import { showMessage } from "../../../../util"
const FC = ({ visible, onCancel }) => { const FC = ({ visible, onCancel }) => {
const basicRef = React.useRef() const basicRef = React.useRef()
...@@ -12,7 +13,13 @@ const FC = ({ visible, onCancel }) => { ...@@ -12,7 +13,13 @@ const FC = ({ visible, onCancel }) => {
} }
const save = () => { const save = () => {
const node = basicRef.current.node
if (!node) {
showMessage('warn', '请先选择物理平台')
return
}
close(node)
} }
const footer = React.useMemo(() => { const footer = React.useMemo(() => {
...@@ -32,7 +39,7 @@ const FC = ({ visible, onCancel }) => { ...@@ -32,7 +39,7 @@ const FC = ({ visible, onCancel }) => {
visible={visible} visible={visible}
footer={footer} footer={footer}
width={400} width={400}
bodyStyle={{ padding: '15px', overflowX: 'auto', height: '80vh' }} bodyStyle={{ padding: '15px', overflowX: 'auto', height: '70vh' }}
centered destroyOnClose centered destroyOnClose
onCancel={() => { close() }} onCancel={() => { close() }}
> >
...@@ -50,6 +57,10 @@ const Basic = React.forwardRef(function ({}, ref) { ...@@ -50,6 +57,10 @@ const Basic = React.forwardRef(function ({}, ref) {
const [autoExpandParent, setAutoExpandParent] = React.useState(false) const [autoExpandParent, setAutoExpandParent] = React.useState(false)
const [node, setNode] = React.useState() const [node, setNode] = React.useState()
React.useImperativeHandle(ref, () => ({
node
}), [node])
React.useEffect(() => { React.useEffect(() => {
getTreeData() getTreeData()
}, []) }, [])
......
...@@ -16,7 +16,7 @@ import HistoryAndVersionDrawer from './Component/HistoryAndVersionDrawer'; ...@@ -16,7 +16,7 @@ import HistoryAndVersionDrawer from './Component/HistoryAndVersionDrawer';
import StartFlowModal from './Component/StartFlowModal'; import StartFlowModal from './Component/StartFlowModal';
import { showMessage, showNotifaction, inputWidth, DeleteTipModal } from '../../../util'; import { showMessage, showNotifaction, inputWidth, DeleteTipModal } from '../../../util';
import { dispatch, dispatchLatestHomepage } from '../../../model'; import { dispatch, dispatchLatestHomepage } from '../../../model';
import { Action, CatalogId, ModelerId, Hints, ModelerData, PermitCheckOut, Editable, StateId, Holder, DDL, ReadOnly } from '../../../util/constant'; import { Action, CatalogId, ModelerId, Hints, ModelerData, PermitCheckOut, Editable, StateId, Holder, DDL, ReadOnly, BranchId } from '../../../util/constant';
import { AppContext } from '../../../App'; import { AppContext } from '../../../App';
import DebounceInput from './Component/DebounceInput'; import DebounceInput from './Component/DebounceInput';
import ColSettingModal from './Component/ColSettingModal'; import ColSettingModal from './Component/ColSettingModal';
...@@ -81,6 +81,7 @@ class Model extends React.Component { ...@@ -81,6 +81,7 @@ class Model extends React.Component {
branchAddParams: { branchAddParams: {
visible: false, visible: false,
}, },
branchAddModelCatalog: undefined,
} }
} }
...@@ -438,19 +439,27 @@ class Model extends React.Component { ...@@ -438,19 +439,27 @@ class Model extends React.Component {
} }
onImportModalCancel = (refresh = false, confirm = false, hints = []) => { onImportModalCancel = (refresh = false, confirm = false, hints = []) => {
const { catalogId, currentView } = this.state; const { catalogId, currentView, branchAddModelCatalog } = this.state;
this.setState({ importModalVisible: false }, () => { this.setState({ importModalVisible: false }, () => {
refresh && this.onTableChange(); refresh && this.onTableChange();
if (confirm) { if (confirm) {
let currentCatalogId = '', branchId = ''
if (currentView === 'dir') {
currentCatalogId = catalogId
} else if (currentView === 'branch') {
currentCatalogId = branchAddModelCatalog
branchId = catalogId
}
if ((hints||[]).length > 0) { if ((hints||[]).length > 0) {
setTimeout(() => { setTimeout(() => {
window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${(currentView==='dir')?(catalogId||''):''}&${Hints}=${encodeURIComponent((hints||[]).join(','))}`); window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${currentCatalogId}&${Hints}=${encodeURIComponent((hints||[]).join(','))}&${BranchId}=${branchId}`);
}, 1000); }, 1000);
} else { } else {
setTimeout(() => { setTimeout(() => {
window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${(currentView==='dir')?(catalogId||''):''}`); window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${currentCatalogId}&${BranchId}=${branchId}`);
}, 1000); }, 1000);
} }
} }
...@@ -485,14 +494,22 @@ class Model extends React.Component { ...@@ -485,14 +494,22 @@ class Model extends React.Component {
} }
onImportModalCancelByDDL = (confirm = false, ddl = '') => { onImportModalCancelByDDL = (confirm = false, ddl = '') => {
const { catalogId } = this.state; const { catalogId, currentView, branchAddModelCatalog } = this.state;
this.setState({ importModalVisible: false }, () => { this.setState({ importModalVisible: false }, () => {
if (confirm && (ddl||'') !== '') { if (confirm && (ddl||'') !== '') {
setTimeout(() => { setTimeout(() => {
window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${catalogId}&${DDL}=${encodeURIComponent(ddl)}`, '_blank'); let currentCatalogId = '', branchId = ''
if (currentView === 'dir') {
currentCatalogId = catalogId
} else if (currentView === 'branch') {
currentCatalogId = branchAddModelCatalog
branchId = catalogId
}
window.open(`/data-govern/data-model-action?${Action}=add&${CatalogId}=${currentCatalogId}&${BranchId}=${branchId}&${DDL}=${encodeURIComponent(ddl)}`, '_blank');
}, 1000); }, 1000);
} }
...@@ -783,7 +800,8 @@ class Model extends React.Component { ...@@ -783,7 +800,8 @@ class Model extends React.Component {
<ImportModal <ImportModal
view={currentView} view={currentView}
catalogId={catalogId} catalogId={(currentView==='branch')?this.state.branchAddModelCatalog:catalogId}
branchId={(currentView==='branch')?catalogId: ''}
visible={importModalVisible} visible={importModalVisible}
onCancel={this.onImportModalCancel} onCancel={this.onImportModalCancel}
onCancelByWord={this.onImportModalCancelByWord} onCancelByWord={this.onImportModalCancelByWord}
...@@ -851,6 +869,11 @@ class Model extends React.Component { ...@@ -851,6 +869,11 @@ class Model extends React.Component {
this.setState({ this.setState({
branchAddParams: { branchAddParams: {
visible: false, visible: false,
},
branchAddModelCatalog: val?.id,
}, () => {
if (val) {
this.setState({ importModalVisible: true })
} }
}) })
}} }}
......
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