Commit 976ebb43 authored by 陈前坚's avatar 陈前坚

perf: appconfig

parent edd75859
...@@ -15,19 +15,31 @@ import { ...@@ -15,19 +15,31 @@ import {
FolderAddTwoTone, FolderAddTwoTone,
EditTwoTone, EditTwoTone,
DeleteTwoTone, DeleteTwoTone,
FolderOpenOutlined,
FileOutlined,
} from '@ant-design/icons'; } from '@ant-design/icons';
import { getTree, addMenuApi, getRoleList } from '../../services/appConfig/api'; import {
getTree,
addMenuApi,
addMenuGroupApi,
getRoleList,
getMenuInfo,
deleteMenuApi,
} from '../../services/appConfig/api';
import ListCardItem from '../orgnazation/listCardItem'; import ListCardItem from '../orgnazation/listCardItem';
import styles from './AppMenu.less'; import styles from './AppMenu.less';
import PicturesWall from '@/components/Upload/index';
const SevenParams = () => { const SevenParams = () => {
const [treeLoading, setTreeLoading] = useState(true); const [treeLoading, setTreeLoading] = useState(true);
const [treeData, setTreeData] = useState([]); // 菜单树 const [treeData, setTreeData] = useState([]); // 菜单树
const [rolelist, setRolelist] = useState([]); const [rolelist, setRolelist] = useState([]);
const [roleValueList, setRoleValueList] = useState({});
const [menuID, setMenuID] = useState(''); const [menuID, setMenuID] = useState('');
const [menuTitle, setMenuTitle] = useState('菜单管理'); const [menuTitle, setMenuTitle] = useState('菜单管理');
const [menuLabel, setMenuLabel] = useState('在线图标');
const [addMenuVisible, setAddMenuVisible] = useState(false); const [addMenuVisible, setAddMenuVisible] = useState(false);
const [addMenuGroupVisible, setAddMenuGroupVisible] = useState(false); const [addMenuGroupVisible, setAddMenuGroupVisible] = useState(false);
...@@ -38,8 +50,8 @@ const SevenParams = () => { ...@@ -38,8 +50,8 @@ const SevenParams = () => {
const [addMenuGroupForm] = Form.useForm(); const [addMenuGroupForm] = Form.useForm();
const getRoleValueCallback = useCallback((value, index) => { const getRoleValueCallback = useCallback((value, index) => {
// roleValueList[index] = value; roleValueList[index] = value;
// setRoleValueList({ ...roleValueList }); setRoleValueList({ ...roleValueList });
}, []); }, []);
// 获取菜单树 // 获取菜单树
...@@ -94,7 +106,12 @@ const SevenParams = () => { ...@@ -94,7 +106,12 @@ const SevenParams = () => {
<> <>
<Tooltip title="添加菜单组"> <Tooltip title="添加菜单组">
<FolderAddTwoTone <FolderAddTwoTone
onClick={e => addMenuGroup(e, menu.text, menu.menuID)} onClick={() => addMenuGroup(menu, '分组图标')}
/>
</Tooltip>
<Tooltip title="添加菜单组">
<EditTwoTone
onClick={() => editMenuGroup(menu, '在线图标')}
/> />
</Tooltip> </Tooltip>
</> </>
...@@ -102,35 +119,40 @@ const SevenParams = () => { ...@@ -102,35 +119,40 @@ const SevenParams = () => {
{menu.menuType === 'MiniAppMenuGroupTwo' && ( {menu.menuType === 'MiniAppMenuGroupTwo' && (
<> <>
<Tooltip title="添加菜单"> <Tooltip title="添加菜单">
<FileAddTwoTone <FileAddTwoTone onClick={() => addMenu(menu)} />
onClick={e => addMenu(e, menu.text, menu.menuID)} </Tooltip>
<Tooltip title="编辑菜单组">
<EditTwoTone
onClick={() => editMenuGroup(menu, '分组图标')}
/> />
</Tooltip> </Tooltip>
</> </>
)} )}
<Tooltip title="编辑当前菜单"> {menu.menuType === 'MiniAppMenuThree' && (
<EditTwoTone onClick={e => editMenu(e, menu.text, menu.menuID)} /> <>
</Tooltip> <Tooltip title="编辑菜单">
<Tooltip title="删除当前菜单"> <EditTwoTone onClick={() => editMenu(menu)} />
<DeleteTwoTone </Tooltip>
onClick={e => deleteMenu(e, menu.text, menu.menuID)} </>
/> )}
<Tooltip title="删除菜单">
<DeleteTwoTone onClick={() => deleteMenu(menu)} />
</Tooltip> </Tooltip>
</div> </div>
</> </>
), ),
key: menu.menuID, key: menu.menuID,
// icon: <SolutionOutlined />, icon: menu.leaf ? <FileOutlined /> : <FolderOpenOutlined />,
// 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作 // 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作
children: haveChildren ? menu.children.map(i => mapTree(i)) : [], children: haveChildren ? menu.children.map(i => mapTree(i)) : [],
}; };
}; };
// 左侧目录树相关操作 // 左侧目录树相关操作
const addMenu = (e, title, id) => { const addMenu = menu => {
setAddMenuVisible(true); setAddMenuVisible(true);
setMenuTitle(`在${title}下添加菜单`); setMenuTitle(`在${menu.text}下添加菜单`);
setMenuID(id); setMenuID(menu.menuID);
addMenuForm.setFieldsValue({ addMenuForm.setFieldsValue({
menuName: '', menuName: '',
shortName: '', shortName: '',
...@@ -139,31 +161,64 @@ const SevenParams = () => { ...@@ -139,31 +161,64 @@ const SevenParams = () => {
funParam: '', funParam: '',
}); });
}; };
const addMenuGroup = (e, title, id) => { const addMenuGroup = (menu, label) => {
setAddMenuGroupVisible(true); setAddMenuGroupVisible(true);
setMenuTitle(`在${title}下添加菜单组`); setMenuTitle(`在${menu.text}下添加菜单组`);
setMenuID(id); setMenuLabel(label);
addMenuGroupForm.setFieldsValue({
menuName: '',
shortName: '',
imageUrl: '',
offlineImgUrl: '',
funParam: '',
});
}; };
const editMenu = (e, title, id) => { const editMenu = menu => {
setAddMenuVisible(true); setAddMenuVisible(true);
setMenuTitle(`编辑${title}`); setMenuTitle(`编辑${menu.text}`);
setMenuID(id); setMenuID(menu.menuID);
addMenuApi(`/Cityinterface/rest/services/OMS.svc/M_GetMenu`, { getMenuInfo(menu.menuID)
_version: 9999,
_dc: new Date().getTime(),
menuID: id,
})
.then(res => { .then(res => {
if (res.success) { if (res.success) {
addMenuForm.setFieldsValue({ addMenuForm.setFieldsValue({
menuName: res.menuName, menuName: res.menuName,
menuAlias: res.menuAlias, shortName: res.menuShortName,
menuIcon: res.menuIcon, imageUrl: res.imageUrl,
pageUrl: res.pageUrl,
funParam: res.funParam,
relatedRoleList: res.relatedRoleList || [],
});
} else {
notification.error({
message: '获取失败',
description: res.message,
});
}
})
.catch(err => {
message.error(err);
});
};
const editMenuGroup = (menu, label) => {
setAddMenuGroupVisible(true);
setMenuTitle(`编辑${menu.text}`);
setMenuID(menu.menuID);
setMenuLabel(label);
getMenuInfo(menu.menuID)
.then(res => {
if (res.success) {
addMenuGroupForm.setFieldsValue({
menuName: res.menuName,
shortName: res.menuShortName,
imageUrl: res.imageUrl,
pageUrl: res.pageUrl,
offlineImgUrl: res.offlineImgUrl,
funParam: res.funParam,
relatedRoleList: res.relatedRoleList || [], relatedRoleList: res.relatedRoleList || [],
}); });
} else { } else {
notification.error({ notification.error({
message: '提交失败', message: '获取失败',
description: res.message, description: res.message,
}); });
} }
...@@ -172,10 +227,10 @@ const SevenParams = () => { ...@@ -172,10 +227,10 @@ const SevenParams = () => {
message.error(err); message.error(err);
}); });
}; };
const deleteMenu = (e, title, id) => { const deleteMenu = menu => {
setDeleteMenuVisible(true); setDeleteMenuVisible(true);
setMenuTitle(`删除菜单${title}`); setMenuTitle(`删除菜单${menu.text}`);
setMenuID(id); setMenuID(menu.menuID);
}; };
// 提交添加菜单 // 提交添加菜单
const submitAddMenu = () => { const submitAddMenu = () => {
...@@ -213,10 +268,17 @@ const SevenParams = () => { ...@@ -213,10 +268,17 @@ const SevenParams = () => {
let menuName = addMenuGroupForm.getFieldValue('menuName'); let menuName = addMenuGroupForm.getFieldValue('menuName');
let shortName = addMenuGroupForm.getFieldValue('shortName'); let shortName = addMenuGroupForm.getFieldValue('shortName');
let imageUrl = addMenuGroupForm.getFieldValue('imageUrl'); let imageUrl = addMenuGroupForm.getFieldValue('imageUrl');
let pageUrl = addMenuGroupForm.getFieldValue('pageUrl'); let offlineImgUrl = addMenuGroupForm.getFieldValue('offlineImgUrl');
let funParam = addMenuGroupForm.getFieldValue('funParam'); let funParam = addMenuGroupForm.getFieldValue('funParam');
if (menuName && shortName && imageUrl && pageUrl) { if (menuName && shortName && imageUrl && offlineImgUrl) {
addMenuApi(menuID, menuName, shortName, imageUrl, pageUrl, funParam) addMenuGroupApi(
menuID,
menuName,
shortName,
imageUrl,
offlineImgUrl,
funParam,
)
.then(res => { .then(res => {
if (res.success) { if (res.success) {
setAddMenuGroupVisible(false); setAddMenuGroupVisible(false);
...@@ -240,12 +302,7 @@ const SevenParams = () => { ...@@ -240,12 +302,7 @@ const SevenParams = () => {
}; };
// 提交删除菜单 // 提交删除菜单
const submitDeleteMenu = () => { const submitDeleteMenu = () => {
addMenuApi(`/Cityinterface/rest/services/OMS.svc/W4_DeleteMenu`, { deleteMenuApi(menuID)
_version: 9999,
_dc: new Date().getTime(),
menuID,
subSystemValue: '手持系统',
})
.then(res => { .then(res => {
if (res.success) { if (res.success) {
setDeleteMenuVisible(false); setDeleteMenuVisible(false);
...@@ -269,6 +326,32 @@ const SevenParams = () => { ...@@ -269,6 +326,32 @@ const SevenParams = () => {
return ( return (
<div className={styles.contentContainer}> <div className={styles.contentContainer}>
<div className={styles.menuContainer}> <div className={styles.menuContainer}>
<div style={{ padding: '10px 10px 0 16px' }}>
菜单列表
<Tooltip title="添加菜单">
<FileAddTwoTone
style={{
fontSize: '18px',
float: 'right',
margin: '4px 4px 0px 12px',
color: '#1890FF',
}}
onClick={() => addMenu({ text: '根目录', menuID: -1 })}
/>
</Tooltip>
<Tooltip title="添加菜单组">
<FolderAddTwoTone
style={{
fontSize: '18px',
float: 'right',
marginTop: '4px',
}}
onClick={() =>
addMenuGroup({ text: '根目录', menuID: -1 }, '在线图标')
}
/>
</Tooltip>
</div>
{treeData.length > 0 && ( {treeData.length > 0 && (
<Spin spinning={treeLoading} tip="loading..."> <Spin spinning={treeLoading} tip="loading...">
<Tree <Tree
...@@ -314,7 +397,7 @@ const SevenParams = () => { ...@@ -314,7 +397,7 @@ const SevenParams = () => {
cancelText="取消" cancelText="取消"
centered centered
> >
<Form form={addMenuForm}> <Form form={addMenuForm} labelCol={{ span: 4 }}>
<Form.Item <Form.Item
name="menuName" name="menuName"
label="菜单名称" label="菜单名称"
...@@ -337,11 +420,14 @@ const SevenParams = () => { ...@@ -337,11 +420,14 @@ const SevenParams = () => {
<Input placeholder="请输入菜单图标" /> <Input placeholder="请输入菜单图标" />
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="pageUrl" name="imageUrl"
label="功能路径" label="菜单图标"
rules={[{ required: true, message: '不能为空' }]} rules={[{ required: true, message: '不能为空' }]}
> >
<Input placeholder="请输入功能路径" /> <Input placeholder="请输入菜单图标" />
</Form.Item>
<Form.Item label="图标预览">
<PicturesWall maxLen={3} />
</Form.Item> </Form.Item>
<Form.Item name="funParam" label="功能参数"> <Form.Item name="funParam" label="功能参数">
<Input placeholder="请输入功能参数" /> <Input placeholder="请输入功能参数" />
...@@ -365,7 +451,7 @@ const SevenParams = () => { ...@@ -365,7 +451,7 @@ const SevenParams = () => {
cancelText="取消" cancelText="取消"
centered centered
> >
<Form form={addMenuGroupForm}> <Form form={addMenuGroupForm} labelCol={{ span: 4 }}>
<Form.Item <Form.Item
name="menuName" name="menuName"
label="分组名称" label="分组名称"
...@@ -382,17 +468,26 @@ const SevenParams = () => { ...@@ -382,17 +468,26 @@ const SevenParams = () => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="imageUrl" name="imageUrl"
label="菜单图标" label={menuLabel}
rules={[{ required: true, message: '不能为空' }]} rules={[{ required: true, message: '不能为空' }]}
> >
<Input placeholder="请输入菜单图标" /> <Input placeholder="请输入菜单图标" />
</Form.Item> </Form.Item>
<Form.Item <Form.Item label="图标预览">
name="pageUrl" <PicturesWall maxLen={3} />
label="离线图标" </Form.Item>
rules={[{ required: true, message: '不能为空' }]} {/* 添加菜单组,label名称为在线图标才有离线图标 */}
> {menuLabel === '在线图标' && (
<Input placeholder="请输入离线图标" /> <Form.Item
name="offlineImgUrl"
label="离线图标"
rules={[{ required: true, message: '不能为空' }]}
>
<Input placeholder="请输入离线图标" />
</Form.Item>
)}
<Form.Item label="图标预览">
<PicturesWall maxLen={3} />
</Form.Item> </Form.Item>
<Form.Item name="funParam" label="功能参数"> <Form.Item name="funParam" label="功能参数">
<Input placeholder="请输入功能参数" /> <Input placeholder="请输入功能参数" />
......
...@@ -3,14 +3,20 @@ ...@@ -3,14 +3,20 @@
display: flex; display: flex;
.menuContainer{ .menuContainer{
min-width: 300px; min-width: 300px;
border:1px solid #abaeb1;
min-height:calc(100vh - 300px);
overflow-y:auto;
.ant-tree-list{ .ant-tree-list{
padding: 10px; padding: 10px;
border:1px solid #abaeb1;
height:calc(100vh - 300px); height:calc(100vh - 300px);
.ant-tree-switcher{ .ant-tree-switcher{
line-height: 1; line-height: 1;
color:#1890FF; color:#1890FF;
} }
.ant-tree-iconEle{
line-height: 1.2;
color:#1890FF;
}
} }
} }
.previewContainer{ .previewContainer{
......
...@@ -27,6 +27,8 @@ import { ...@@ -27,6 +27,8 @@ import {
ApartmentOutlined, ApartmentOutlined,
SearchOutlined, SearchOutlined,
StopOutlined, StopOutlined,
FolderOpenOutlined,
FileOutlined,
} from '@ant-design/icons'; } from '@ant-design/icons';
import { PageContainer } from '@ant-design/pro-layout'; import { PageContainer } from '@ant-design/pro-layout';
// import classnames from 'classnames'; // import classnames from 'classnames';
...@@ -272,7 +274,7 @@ const UserManage = () => { ...@@ -272,7 +274,7 @@ const UserManage = () => {
</> </>
), ),
key: org.id, key: org.id,
// icon: <SolutionOutlined />, // icon: org.leaf ? <FileOutlined /> : <FolderOpenOutlined />,
// 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作 // 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作
children: haveChildren ? org.children.map(i => mapTree(i)) : [], children: haveChildren ? org.children.map(i => mapTree(i)) : [],
}; };
...@@ -282,7 +284,7 @@ const UserManage = () => { ...@@ -282,7 +284,7 @@ const UserManage = () => {
return { return {
title: `${org.text}`, title: `${org.text}`,
key: org.id, key: org.id,
// icon: <SolutionOutlined />, // icon: org.leaf ? <FileOutlined /> : <FolderOpenOutlined />,
// 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作 // 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作
children: haveChildren ? org.children.map(i => mapTree1(i)) : [], children: haveChildren ? org.children.map(i => mapTree1(i)) : [],
}; };
...@@ -852,7 +854,7 @@ const UserManage = () => { ...@@ -852,7 +854,7 @@ const UserManage = () => {
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
> >
<Form form={addUserForm}> <Form form={addUserForm} labelCol={{ span: 4 }}>
<Form.Item <Form.Item
name="loginName" name="loginName"
label="登录名称" label="登录名称"
...@@ -874,10 +876,10 @@ const UserManage = () => { ...@@ -874,10 +876,10 @@ const UserManage = () => {
> >
<Input placeholder="请输入用户姓名" /> <Input placeholder="请输入用户姓名" />
</Form.Item> </Form.Item>
<Form.Item name="phone" label="手 机 号 码"> <Form.Item name="phone" label="手机号码">
<Input placeholder="请输入手机号码" /> <Input placeholder="请输入手机号码" />
</Form.Item> </Form.Item>
<Form.Item name="email" label="电 子 邮 箱"> <Form.Item name="email" label="电子邮箱">
<Input placeholder="请输入电子邮箱" /> <Input placeholder="请输入电子邮箱" />
</Form.Item> </Form.Item>
</Form> </Form>
...@@ -891,7 +893,7 @@ const UserManage = () => { ...@@ -891,7 +893,7 @@ const UserManage = () => {
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
> >
<Form form={addOrgForm}> <Form form={addOrgForm} labelCol={{ span: 4 }}>
<Form.Item <Form.Item
name="OUName" name="OUName"
label="机构名称" label="机构名称"
...@@ -899,7 +901,7 @@ const UserManage = () => { ...@@ -899,7 +901,7 @@ const UserManage = () => {
> >
<Input placeholder="请输入机构名称" /> <Input placeholder="请输入机构名称" />
</Form.Item> </Form.Item>
<Form.Item name="description" label="--描---述--"> <Form.Item name="description" label="描述">
<Input placeholder="请输入相关描述" /> <Input placeholder="请输入相关描述" />
</Form.Item> </Form.Item>
</Form> </Form>
...@@ -913,7 +915,7 @@ const UserManage = () => { ...@@ -913,7 +915,7 @@ const UserManage = () => {
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
> >
<Form form={editOrgForm}> <Form form={editOrgForm} labelCol={{ span: 4 }}>
<Form.Item <Form.Item
name="OUName" name="OUName"
label="机构名称" label="机构名称"
...@@ -921,7 +923,7 @@ const UserManage = () => { ...@@ -921,7 +923,7 @@ const UserManage = () => {
> >
<Input placeholder="请输入机构名称" /> <Input placeholder="请输入机构名称" />
</Form.Item> </Form.Item>
<Form.Item name="description" label="--描---述--"> <Form.Item name="description" label="描述">
<Input placeholder="请输入相关描述" /> <Input placeholder="请输入相关描述" />
</Form.Item> </Form.Item>
</Form> </Form>
...@@ -1006,13 +1008,13 @@ const UserManage = () => { ...@@ -1006,13 +1008,13 @@ const UserManage = () => {
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
> >
<Form form={passwordForm}> <Form form={passwordForm} labelCol={{ span: 4 }}>
<Form.Item name="oldpassword" label="原 始 密 码"> <Form.Item name="oldpassword" label="原始密码">
<Input disabled /> <Input disabled />
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="newPassword" name="newPassword"
label="新- 密-码" label="新码"
rules={[{ required: true, message: '不能为空' }]} rules={[{ required: true, message: '不能为空' }]}
> >
<Input placeholder="请输入新密码" /> <Input placeholder="请输入新密码" />
...@@ -1035,7 +1037,7 @@ const UserManage = () => { ...@@ -1035,7 +1037,7 @@ const UserManage = () => {
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
> >
<Form form={editUserForm}> <Form form={editUserForm} labelCol={{ span: 4 }}>
<Form.Item <Form.Item
name="loginName" name="loginName"
label="登录名称" label="登录名称"
...@@ -1050,10 +1052,10 @@ const UserManage = () => { ...@@ -1050,10 +1052,10 @@ const UserManage = () => {
> >
<Input placeholder="请输入用户姓名" /> <Input placeholder="请输入用户姓名" />
</Form.Item> </Form.Item>
<Form.Item name="phone" label="手 机 号 码"> <Form.Item name="phone" label="手机号码">
<Input placeholder="请输入手机号码" /> <Input placeholder="请输入手机号码" />
</Form.Item> </Form.Item>
<Form.Item name="email" label="电 子 邮 箱"> <Form.Item name="email" label="电子邮箱">
<Input placeholder="请输入电子邮箱" /> <Input placeholder="请输入电子邮箱" />
</Form.Item> </Form.Item>
</Form> </Form>
......
...@@ -54,11 +54,48 @@ export const addMenuApi = ( ...@@ -54,11 +54,48 @@ export const addMenuApi = (
subSystemValue: 'miniapp', subSystemValue: 'miniapp',
relatedRoleList: '', relatedRoleList: '',
}); });
// 添加菜单组
export const addMenuGroupApi = (
menuID,
menuName,
shortName,
imageUrl,
offlineImgUrl,
funParam,
) =>
get(`/Cityinterface/rest/services/OMS.svc/MiniApp_AddMenu`, {
_version: 9999,
_dc: new Date().getTime(),
// 根目录添加,parentID 为-1
parentID: menuID || -1,
menuName,
shortName,
imageUrl,
offlineImgUrl,
funParam,
subSystemValue: 'miniapp',
relatedRoleList: '',
});
// 添加菜单 // 获取角色列表
export const getRoleList = () => export const getRoleList = () =>
get(`/Cityinterface/rest/services/OMS.svc/P_GetRoleListPlain`, { get(`/Cityinterface/rest/services/OMS.svc/P_GetRoleListPlain`, {
_version: 9999, _version: 9999,
_dc: new Date().getTime(), _dc: new Date().getTime(),
subSystemValue: 'miniapp', subSystemValue: 'miniapp',
}); });
// 获取菜单
export const getMenuInfo = id =>
get(`/Cityinterface/rest/services/OMS.svc/Mini_GetMenuInfo`, {
_version: 9999,
_dc: new Date().getTime(),
menuID: id,
});
// 获取菜单
export const deleteMenuApi = id =>
get(`/Cityinterface/rest/services/OMS.svc/MiniApp_DeleteMenu`, {
_version: 9999,
_dc: new Date().getTime(),
menuID: id,
subSystemValue: 'miniapp',
});
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