Commit 88dcded2 by zhaochengxiang

分支新增模型

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