mirror of https://github.com/openspug/spug
A web add system setting
parent
612379e7e2
commit
fc73cd1d65
|
@ -19,7 +19,7 @@ export default [
|
|||
{
|
||||
icon: 'setting', title: '系统管理', child: [
|
||||
{title: '账户管理', path: '/system/account'},
|
||||
{title: '系统信息', path: '/system/info'},
|
||||
{title: '系统设置', path: '/system/setting'},
|
||||
]
|
||||
},
|
||||
]
|
|
@ -1,6 +1,8 @@
|
|||
import { makeRoute } from 'libs/router';
|
||||
import AccountIndex from './account/index';
|
||||
import Account from './account';
|
||||
import Setting from './setting';
|
||||
|
||||
export default [
|
||||
makeRoute('/account', AccountIndex)
|
||||
makeRoute('/account', Account),
|
||||
makeRoute('/setting', Setting),
|
||||
]
|
|
@ -0,0 +1,18 @@
|
|||
import React from 'react';
|
||||
import { Button, Form, Input } from 'antd';
|
||||
import styles from './index.module.css';
|
||||
|
||||
|
||||
export default function AlarmSetting(props) {
|
||||
return (
|
||||
<React.Fragment>
|
||||
<div className={styles.title}>报警服务设置</div>
|
||||
<Form style={{maxWidth: 320}}>
|
||||
<Form.Item colon={false} label="短信报警调用凭据">
|
||||
<Input placeholder="请输入"/>
|
||||
</Form.Item>
|
||||
<Button type="primary">保存设置</Button>
|
||||
</Form>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
import React from 'react';
|
||||
import { Button, Form, Input } from 'antd';
|
||||
import styles from './index.module.css';
|
||||
|
||||
|
||||
export default function BasicSetting(props) {
|
||||
return (
|
||||
<React.Fragment>
|
||||
<div className={styles.title}>基本设置</div>
|
||||
<Form style={{maxWidth: 320}}>
|
||||
<Form.Item colon={false} label="昵称">
|
||||
<Input placeholder="请输入"/>
|
||||
</Form.Item>
|
||||
<Form.Item colon={false} label="邮箱">
|
||||
<Input placeholder="请输入"/>
|
||||
</Form.Item>
|
||||
|
||||
<Button type="primary">保存设置</Button>
|
||||
</Form>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
import React from 'react';
|
||||
import { Button, Form, Input } from 'antd';
|
||||
import styles from './index.module.css';
|
||||
|
||||
|
||||
export default function MailServer(props) {
|
||||
return (
|
||||
<React.Fragment>
|
||||
<div className={styles.title}>邮件服务设置</div>
|
||||
<Form className={styles.form}>
|
||||
<Form.Item colon={false} required label="邮件服务器">
|
||||
<Input placeholder="请输入,例如:smtp.exmail.qq.com"/>
|
||||
</Form.Item>
|
||||
<Form.Item colon={false} required label="端口">
|
||||
<Input placeholder="请输入,例如:465"/>
|
||||
</Form.Item>
|
||||
<Form.Item colon={false} required label="邮件账号">
|
||||
<Input placeholder="请输入,例如:dev@exmail.com"/>
|
||||
</Form.Item>
|
||||
<Form.Item colon={false} required label="账号密码">
|
||||
<Input.Password placeholder="请输入邮箱账号对应的密码" />
|
||||
</Form.Item>
|
||||
<Form.Item colon={false} label="发件人昵称">
|
||||
<Input placeholder="请输入" />
|
||||
</Form.Item>
|
||||
<Button type="primary">保存设置</Button>
|
||||
</Form>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
import React from 'react';
|
||||
import { Menu } from 'antd';
|
||||
import BasicSetting from './BasicSetting';
|
||||
import AlarmSetting from './AlarmSetting';
|
||||
import MailServer from './MailServer';
|
||||
import styles from './index.module.css';
|
||||
|
||||
|
||||
class Index extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
selectedKeys: ['basic']
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const {selectedKeys} = this.state;
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<div className={styles.left}>
|
||||
<Menu
|
||||
mode="inline"
|
||||
selectedKeys={selectedKeys}
|
||||
style={{border: 'none'}}
|
||||
onSelect={({selectedKeys}) => this.setState({selectedKeys})}>
|
||||
<Menu.Item key="basic">基本设置</Menu.Item>
|
||||
<Menu.Item key="alarm">报警服务设置</Menu.Item>
|
||||
<Menu.Item key="mail">邮件服务设置</Menu.Item>
|
||||
</Menu>
|
||||
</div>
|
||||
<div className={styles.right}>
|
||||
{selectedKeys[0] === 'basic' && <BasicSetting />}
|
||||
{selectedKeys[0] === 'mail' && <MailServer />}
|
||||
{selectedKeys[0] === 'alarm' && <AlarmSetting />}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default Index
|
|
@ -0,0 +1,25 @@
|
|||
.container {
|
||||
display: flex;
|
||||
background-color: #fff;
|
||||
padding: 16px 0;
|
||||
}
|
||||
.left {
|
||||
flex: 2;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
}
|
||||
.right {
|
||||
flex: 7;
|
||||
padding: 8px 40px;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-bottom: 12px;
|
||||
color: rgba(0, 0, 0, .85);
|
||||
font-weight: 500;
|
||||
font-size: 20px;
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
.form {
|
||||
max-width: 320px;
|
||||
}
|
Loading…
Reference in New Issue