Commit 45ba3fb1 by zhaochengxiang

主数据管理

parent eca28759
...@@ -29,6 +29,7 @@ const DefineTable = (props) => { ...@@ -29,6 +29,7 @@ const DefineTable = (props) => {
const {pageNum, pageSize} = pagination; const {pageNum, pageSize} = pagination;
useEffect(() => { useEffect(() => {
setCheckedKeys([]);
setPagination({...pagination, pageNum: 1}); setPagination({...pagination, pageNum: 1});
}, [nodeId]) }, [nodeId])
......
import { useMemo, useState, useEffect } from 'react'; import { useMemo, useState, useEffect } from 'react';
import { Space, Button, Input, Pagination } from 'antd'; import { Space, Button, Input, Pagination, Tooltip } from 'antd';
import { useContextMenu, Menu as RcMenu, Item as RcItem } from "react-contexify"; import { useContextMenu, Menu as RcMenu, Item as RcItem } from "react-contexify";
import ResizeableTable from '../../../ResizeableTable'; import ResizeableTable from '../../../ResizeableTable';
import DebounceInput from '../../../Model/Component/DebounceInput'; import DebounceInput from '../../../Model/Component/DebounceInput';
import UpdateDataMasterModal from './UpdateDataMasterModal'; import UpdateDataMasterModal from './UpdateDataMasterModal';
import { inputWidth } from '../../../../../util'; import { inputWidth, showMessage } from '../../../../../util';
import { dispatch } from '../../../../../model'; import { dispatch } from '../../../../../model';
import '../../Define/Component/DefineTable.less'; import '../../Define/Component/DefineTable.less';
...@@ -30,7 +30,7 @@ const ManageTable = (props) => { ...@@ -30,7 +30,7 @@ const ManageTable = (props) => {
const {pageNum, pageSize} = pagination; const {pageNum, pageSize} = pagination;
const columns = useMemo(() => { const columns = useMemo(() => {
return ([ const newColumns = [
{ {
title: '序号', title: '序号',
dataIndex: 'key', dataIndex: 'key',
...@@ -39,44 +39,18 @@ const ManageTable = (props) => { ...@@ -39,44 +39,18 @@ const ManageTable = (props) => {
}, },
width: 60, width: 60,
ellipsis: true, ellipsis: true,
}, }
{ ];
title: '属性1', (fields||[]).forEach(item => {
dataIndex: 'attr1', newColumns.push({
width: 200, title: item.name,
ellipsis: true, dataIndex: item.name,
},
{
title: '属性2',
dataIndex: 'attr2',
width: 200,
ellipsis: true,
},
{
title: '属性3',
dataIndex: 'attr3',
width: 200,
ellipsis: true,
},
{
title: '属性4',
dataIndex: 'attr4',
width: 200,
ellipsis: true,
},
{
title: '属性5',
dataIndex: 'attr5',
width: 200,
ellipsis: true,
},
{
title: '属性6',
dataIndex: 'attr6',
width: 200, width: 200,
ellipsis: true, ellipsis: true,
}, });
]); })
return newColumns;
}, [fields]); }, [fields]);
const MENU_ID = 'data-master-manage-table-contextmenu'; const MENU_ID = 'data-master-manage-table-contextmenu';
...@@ -85,6 +59,7 @@ const ManageTable = (props) => { ...@@ -85,6 +59,7 @@ const ManageTable = (props) => {
}); });
useEffect(() => { useEffect(() => {
setCheckedKeys([]);
setPagination({...pagination, pageNum: 1}); setPagination({...pagination, pageNum: 1});
}, [nodeId]) }, [nodeId])
...@@ -163,7 +138,21 @@ const ManageTable = (props) => { ...@@ -163,7 +138,21 @@ const ManageTable = (props) => {
} }
const onBatchDeleteClick = () => { const onBatchDeleteClick = () => {
setDeleteLoading(true);
dispatch({
type: 'msd.deleteDatas',
payload: {
data: checkedKeys||[]
},
callback: (data) => {
setDeleteLoading(false);
showMessage('success', '删除成功');
getFiledsAndDatas();
},
error: () => {
setDeleteLoading(false);
}
});
} }
const onSearchInputChange = (value) => { const onSearchInputChange = (value) => {
...@@ -177,7 +166,10 @@ const ManageTable = (props) => { ...@@ -177,7 +166,10 @@ const ManageTable = (props) => {
const handleItemClick = ({ event, props, data, triggerEvent }) => { const handleItemClick = ({ event, props, data, triggerEvent }) => {
const key = event.currentTarget.id; const key = event.currentTarget.id;
if (key === 'update') { if (key === 'detail') {
setAction('detail');
setIsDataMasterModalVisible(true);
} if (key === 'update') {
setAction('update'); setAction('update');
setIsDataMasterModalVisible(true); setIsDataMasterModalVisible(true);
} }
...@@ -201,11 +193,13 @@ const ManageTable = (props) => { ...@@ -201,11 +193,13 @@ const ManageTable = (props) => {
<Button onClick={onAddClick}>新建</Button> <Button onClick={onAddClick}>新建</Button>
</Space> </Space>
<Space> <Space>
<Button onClick={onBatchDeleteClick}>删除</Button> <Tooltip title={(checkedKeys||[]).length===0?'请先选择模版':''}>
<Button onClick={onBatchDeleteClick} disabled={(checkedKeys||[]).length===0} loading={deleteLoading}>删除</Button>
</Tooltip>
</Space> </Space>
</Space> </Space>
<InputDebounce <InputDebounce
placeholder="通过主数据名称搜索" placeholder="请输入关键字"
allowClear allowClear
value={keyword} value={keyword}
onChange={onSearchInputChange} onChange={onSearchInputChange}
...@@ -214,7 +208,7 @@ const ManageTable = (props) => { ...@@ -214,7 +208,7 @@ const ManageTable = (props) => {
</div> </div>
<div className='data-master-content p-3'> <div className='data-master-content p-3'>
<ResizeableTable <ResizeableTable
rowKey='id' rowKey='_id'
rowSelection={rowSelection} rowSelection={rowSelection}
columns={columns} columns={columns}
dataSource={tableData} dataSource={tableData}
...@@ -254,6 +248,9 @@ const ManageTable = (props) => { ...@@ -254,6 +248,9 @@ const ManageTable = (props) => {
/> />
<RcMenu id={MENU_ID}> <RcMenu id={MENU_ID}>
<RcItem id="detail" onClick={handleItemClick}>
详情
</RcItem>
<RcItem id="update" onClick={handleItemClick}> <RcItem id="update" onClick={handleItemClick}>
编辑 编辑
</RcItem> </RcItem>
......
import { Modal, Form, Input } from "antd"; import { useEffect, useState, useMemo } from "react";
import { useEffect } from "react"; import { Modal, Form, Input, Button, Descriptions } from "antd";
import { dispatch } from "../../../../../model";
import './UpdateDataMasterModal.less'; import './UpdateDataMasterModal.less';
...@@ -60,9 +62,9 @@ const UpdateDataMasterModal = (props) => { ...@@ -60,9 +62,9 @@ const UpdateDataMasterModal = (props) => {
type: url, type: url,
payload: { payload: {
params: { params: {
modelId: id modelId: nodeId,
}, },
data: fields data: row
}, },
callback: () => { callback: () => {
setConfirmLoading(false); setConfirmLoading(false);
...@@ -82,10 +84,24 @@ const UpdateDataMasterModal = (props) => { ...@@ -82,10 +84,24 @@ const UpdateDataMasterModal = (props) => {
className='update-data-master-modal' className='update-data-master-modal'
title={title} title={title}
visible={visible} visible={visible}
onCancel={onCancel} onCancel={() => { onCancel && onCancel(false); }}
onOk={onFormFinish} onOk={onFormFinish}
footer={[
<Button key="cancel" onClick={() => {onCancel && onCancel();}}>
取消
</Button>,
action!=='detail' && <Button
key="ok"
type="primary"
loading={confirmLoading}
onClick={onFormFinish}
>
确定
</Button>,
]}
> >
<Form {
(action!=='detail') ? <Form
form={form} form={form}
{...formItemLayout} {...formItemLayout}
> >
...@@ -98,7 +114,16 @@ const UpdateDataMasterModal = (props) => { ...@@ -98,7 +114,16 @@ const UpdateDataMasterModal = (props) => {
) )
}) })
} }
</Form> </Form> : <Descriptions column={1}>
{
(fields||[]).map((item, index) => {
return (
<Descriptions.Item label={<div style={{ textAlign: 'right', width: 85 }}>{item.name||''}</div>} >{data?data[item.name||'']:''}</Descriptions.Item>
);
})
}
</Descriptions>
}
</Modal> </Modal>
); );
} }
......
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