Commit 370db5ea by zhaochengxiang

模型目录支持上移下移

parent 9b32e18d
......@@ -54,6 +54,10 @@ export function* refreshDataModelCatalog() {
return yield call(datamodelerService.refreshDataModelCatalog);
}
export function* upDownModelCatalog(payload) {
return yield call(datamodelerService.upDownModelCatalog, payload);
}
export function* loadDataModelStateCatalog() {
return yield call(datamodelerService.loadDataModelStateCatalog);
}
......
......@@ -20,6 +20,10 @@ export function deleteDataModelCatalog(payload) {
return PostJSON("/datamodeler/easyDataModelerCURD/deleteDataModelCatalog", payload);
}
export function upDownModelCatalog(payload) {
return GetJSON("/datamodeler/easyDataModelerCURD/upDownModelCatalog", payload);
}
//绑定模型和模型目录
export function bindCatalogDataModel(payload) {
return PostJSON("/datamodeler/easyDataModelerCURD/catalogDataModel", payload);
......
import React, { useState, useEffect, useRef } from "react";
import { Tooltip, Tree, Modal, Spin, Dropdown, Menu, Button } from "antd";
import { PlusOutlined, EditOutlined, SyncOutlined, DeleteOutlined, ImportOutlined, UnorderedListOutlined, ReloadOutlined } from '@ant-design/icons';
import { PlusOutlined, EditOutlined, SyncOutlined, DeleteOutlined, ImportOutlined, UnorderedListOutlined, ReloadOutlined, ArrowUpOutlined, ArrowDownOutlined } from '@ant-design/icons';
import classnames from 'classnames';
import UpdateTreeItemModal from './UpdateTreeItemModal';
......@@ -325,6 +325,30 @@ const ModelTree = (props) => {
getDirTreeData('', null, 'load');
}
const moveNode = (steps) => {
if (!item) {
showMessage('info', '请先选择目录');
return;
}
setLoading(true);
dispatch({
type: 'datamodel.upDownModelCatalog',
payload: {
modelCatalogId: item.id,
steps
},
callback: () => {
showMessage('success', (steps===-1)?'上移目录成功':'下移目录成功');
setItem(null);
getDirTreeData();
},
error: () => {
setLoading(false);
}
});
}
const deleteNode = () => {
if (!item) {
showMessage('info', '请先选择目录');
......@@ -417,35 +441,35 @@ const ModelTree = (props) => {
{
viewSelectedKey==='dir' && (
<Tooltip title="新增目录" className='ml-4'>
<Tooltip title="新增目录" className='ml-2'>
<PlusOutlined onClick={add} style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
)
}
{
viewSelectedKey==='dir' && (
<Tooltip title="修改目录" className='ml-4'>
<Tooltip title="修改目录" className='ml-2'>
<EditOutlined onClick={update} style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
)
}
{
viewSelectedKey==='dir' && (
<Tooltip title="存量模型导入" className='ml-4'>
<Tooltip title="存量模型导入" className='ml-2'>
<ImportOutlined onClick={() => { importStockModel && importStockModel() }} style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
)
}
<Tooltip title="刷新目录" className='ml-4'>
<Tooltip title="刷新目录" className='ml-2'>
<Button type='text' icon={<ReloadOutlined />} size='small' onClick={refresh} />
</Tooltip>
{
(viewSelectedKey==='dir') && !isSetRootId && (
<Dropdown overlay={syncMenu} placement="bottomLeft">
<Tooltip title="同步目录" className='ml-4'>
<SyncOutlined className='ml-4' style={{ fontSize:16,cursor:'pointer' }} />
<Tooltip title="同步目录" className='ml-2'>
<SyncOutlined className='ml-2' style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
</Dropdown>
)
......@@ -453,7 +477,7 @@ const ModelTree = (props) => {
{
(viewSelectedKey==='dir') && isSetRootId && (
<Tooltip title="同步目录" className='ml-4'>
<Tooltip title="同步目录" className='ml-2'>
<Button type='text' icon={<SyncOutlined />} size='small' onClick={sync} />
</Tooltip>
)
......@@ -461,11 +485,27 @@ const ModelTree = (props) => {
{
viewSelectedKey==='dir' && (
<Tooltip title="删除目录" className='ml-4'>
<DeleteOutlined onClick={deleteNode} style={{ fontSize:16,cursor:'pointer' }} />
<Tooltip title="上移目录" className='ml-2'>
<ArrowUpOutlined onClick={() => { moveNode(-1); }} style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
)
}
{
viewSelectedKey==='dir' && (
<Tooltip title="下移目录" className='ml-2'>
<ArrowDownOutlined onClick={() => { moveNode(1); }} style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
)
}
{
viewSelectedKey==='dir' && (
<Tooltip title="删除目录" className='ml-2'>
<DeleteOutlined onClick={deleteNode} style={{ fontSize:16,cursor:'pointer' }} />
</Tooltip>
)
}
</div>
}
<div className='p-3'>
......
......@@ -35,11 +35,11 @@ class UpdateTreeItemForm extends React.Component {
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 8 },
sm: { span: 6 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
sm: { span: 18 },
},
};
......@@ -70,12 +70,6 @@ class UpdateTreeItemForm extends React.Component {
>
<Input />
</Form.Item>
<Form.Item
label="权重"
name="weight"
>
<InputNumber min={0} />
</Form.Item>
</Form>
);
}
......@@ -98,9 +92,9 @@ const UpdateTreeItemModal = (props) => {
form.setFields([{ name: 'name', errors: [] }, { name: 'remark', errors: [] }]);
if (type === 'add') {
form.setFieldsValue({ action: _action, name: '', remark: '', weight: 0 });
form.setFieldsValue({ action: _action, name: '', remark: '' });
} else {
form.setFieldsValue({ action: '', name: item?item.name:'', remark: item?item.remark:'', weight: item?item.weight:0 });
form.setFieldsValue({ action: '', name: item?item.name:'', remark: item?item.remark:'' });
}
}
//eslint-disable-next-line react-hooks/exhaustive-deps
......@@ -118,14 +112,12 @@ const UpdateTreeItemModal = (props) => {
payload = {
name: values.name||'',
remark: values.remark||'',
weight: values.weight||0,
parentId: rootId
};
} else if (type === 'add') {
payload = {
name: values.name||'',
remark: values.remark||'',
weight: values.weight||0,
parentId: item.id
};
} else {
......@@ -133,7 +125,6 @@ const UpdateTreeItemModal = (props) => {
...item,
name: values.name||'',
remark: values.remark||'',
weight: values.weight||0,
}
}
......
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