diff --git a/.eslintrc.js b/.eslintrc.js
index cd6da0a..8b0438b 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -24,7 +24,7 @@ module.exports = {
2,
{
optionalDependencies: true,
- devDependencies: ['**/tests/**.js', '/mock/**.js', '**/**.test.js'],
+ devDependencies: ['**/tests/**.js', '/mock/**/**.js', '**/**.test.js'],
},
],
'jsx-a11y/no-noninteractive-element-interactions': 0,
@@ -33,8 +33,9 @@ module.exports = {
'jsx-a11y/anchor-is-valid': 0,
'no-nested-ternary': 0,
'linebreak-style': 0,
+ 'camelcase': 1,
},
settings: {
- polyfills: ['fetch', 'promises', 'url'],
+ polyfills: ['fetch', 'promises', 'url', 'object-assign'],
},
};
diff --git a/src/defaultSettings.js b/src/defaultSettings.js
index 6e98a77..6714cbe 100644
--- a/src/defaultSettings.js
+++ b/src/defaultSettings.js
@@ -1,4 +1,6 @@
module.exports = {
+ title: 'Sword企业级开发平台',
+ tenantMode: true, // 开启租户模式
navTheme: 'dark', // theme for nav menu
primaryColor: '#1890FF', // primary color of ant design
layout: 'sidemenu', // nav menu position: sidemenu or topmenu
@@ -10,6 +12,5 @@ module.exports = {
menu: {
disableLocal: false,
},
- title: 'Sword企业级开发平台',
pwa: true,
};
diff --git a/src/pages/Login/Login.js b/src/pages/Login/Login.js
index 9652781..96a19dc 100644
--- a/src/pages/Login/Login.js
+++ b/src/pages/Login/Login.js
@@ -4,6 +4,7 @@ import { formatMessage, FormattedMessage } from 'umi/locale';
import { Checkbox, Alert } from 'antd';
import Login from '../../components/Login';
import styles from './Login.less';
+import { tenantMode } from '../../defaultSettings';
const { Tab, TenantCode, UserName, Password, Submit } = Login;
@@ -80,16 +81,18 @@ class LoginPage extends Component {
login.type === 'account' &&
!submitting &&
this.renderMessage(formatMessage({ id: 'app.login.message-invalid-credentials' }))}
-
+ {tenantMode ? (
+
+ ) : null}
{
if (!err) {
- console.log(values);
dispatch(DEPT_SUBMIT(values));
}
});
diff --git a/src/pages/System/Dept/DeptEdit.js b/src/pages/System/Dept/DeptEdit.js
index 2bd9c9c..92a2994 100644
--- a/src/pages/System/Dept/DeptEdit.js
+++ b/src/pages/System/Dept/DeptEdit.js
@@ -1,5 +1,5 @@
import React, { PureComponent } from 'react';
-import { Form, Input, Card, Row, Col, Button, InputNumber, TreeSelect } from 'antd';
+import { Form, Input, Card, Row, Col, Button, InputNumber, TreeSelect, message } from "antd";
import { connect } from 'dva';
import Panel from '../../../components/Panel';
import styles from '../../../layouts/Sword.less';
@@ -34,13 +34,17 @@ class DeptEdit extends PureComponent {
},
form,
} = this.props;
+ const parentId = form.getFieldValue('parentId');
+ if (id === parentId.toString()) {
+ message.warn('上级部门不能选择自身!');
+ return;
+ }
form.validateFieldsAndScroll((err, values) => {
if (!err) {
const params = {
id,
...values,
};
- console.log(params);
dispatch(DEPT_SUBMIT(params));
}
});
diff --git a/src/pages/System/Dict/DictAdd.js b/src/pages/System/Dict/DictAdd.js
index 6bffbc9..d06b4a7 100644
--- a/src/pages/System/Dict/DictAdd.js
+++ b/src/pages/System/Dict/DictAdd.js
@@ -40,7 +40,6 @@ class DictAdd extends PureComponent {
const { dispatch, form } = this.props;
form.validateFieldsAndScroll((err, values) => {
if (!err) {
- console.log(values);
dispatch(DICT_SUBMIT(values));
}
});
diff --git a/src/pages/System/Dict/DictEdit.js b/src/pages/System/Dict/DictEdit.js
index ff32e15..1ac24a1 100644
--- a/src/pages/System/Dict/DictEdit.js
+++ b/src/pages/System/Dict/DictEdit.js
@@ -1,5 +1,5 @@
import React, { PureComponent } from 'react';
-import { Form, Input, Card, Row, Col, Button, InputNumber, TreeSelect } from 'antd';
+import { Form, Input, Card, Row, Col, Button, InputNumber, TreeSelect, message } from "antd";
import { connect } from 'dva';
import Panel from '../../../components/Panel';
import styles from '../../../layouts/Sword.less';
@@ -39,13 +39,17 @@ class DictEdit extends PureComponent {
},
form,
} = this.props;
+ const parentId = form.getFieldValue('parentId');
+ if (id === parentId.toString()) {
+ message.warn('上级字典不能选择自身!');
+ return;
+ }
form.validateFieldsAndScroll((err, values) => {
if (!err) {
const params = {
id,
...values,
};
- console.log(params);
dispatch(DICT_SUBMIT(params));
}
});
diff --git a/src/pages/System/Menu/MenuAdd.js b/src/pages/System/Menu/MenuAdd.js
index 0367456..9a37b64 100644
--- a/src/pages/System/Menu/MenuAdd.js
+++ b/src/pages/System/Menu/MenuAdd.js
@@ -51,7 +51,6 @@ class MenuAdd extends PureComponent {
const { dispatch, form } = this.props;
form.validateFieldsAndScroll((err, values) => {
if (!err) {
- console.log(values);
dispatch(MENU_SUBMIT(values));
}
});
diff --git a/src/pages/System/Menu/MenuEdit.js b/src/pages/System/Menu/MenuEdit.js
index 19cf364..f8a2c1b 100644
--- a/src/pages/System/Menu/MenuEdit.js
+++ b/src/pages/System/Menu/MenuEdit.js
@@ -11,6 +11,7 @@ import {
Radio,
Icon,
Modal,
+ message,
} from 'antd';
import { connect } from 'dva';
import Panel from '../../../components/Panel';
@@ -51,13 +52,17 @@ class MenuEdit extends PureComponent {
},
form,
} = this.props;
+ const parentId = form.getFieldValue('parentId');
+ if (id === parentId.toString()) {
+ message.warn('上级菜单不能选择自身!');
+ return;
+ }
form.validateFieldsAndScroll((err, values) => {
if (!err) {
const params = {
id,
...values,
};
- console.log(params);
dispatch(MENU_SUBMIT(params));
}
});
diff --git a/src/pages/System/Role/Role.js b/src/pages/System/Role/Role.js
index d8f4406..82ecc51 100644
--- a/src/pages/System/Role/Role.js
+++ b/src/pages/System/Role/Role.js
@@ -11,6 +11,7 @@ import {
ROLE_GRANT,
} from '../../../actions/role';
import { MENU_REFRESH_DATA } from '../../../actions/menu';
+import { tenantMode } from '../../../defaultSettings';
const FormItem = Form.Item;
const { TreeNode } = Tree;
@@ -176,14 +177,14 @@ class Role extends PureComponent {
} = this.props;
const columns = [
- {
- title: '角色名称',
- dataIndex: 'roleName',
- },
{
title: '租户编号',
dataIndex: 'tenantCode',
},
+ {
+ title: '角色名称',
+ dataIndex: 'roleName',
+ },
{
title: '角色别名',
dataIndex: 'roleAlias',
@@ -194,6 +195,10 @@ class Role extends PureComponent {
},
];
+ if (!tenantMode) {
+ columns.splice(0, 1);
+ }
+
return (
{
if (!err) {
- console.log(values);
dispatch(ROLE_SUBMIT(values));
}
});
diff --git a/src/pages/System/Role/RoleEdit.js b/src/pages/System/Role/RoleEdit.js
index 224f869..f931e6e 100644
--- a/src/pages/System/Role/RoleEdit.js
+++ b/src/pages/System/Role/RoleEdit.js
@@ -1,5 +1,5 @@
import React, { PureComponent } from 'react';
-import { Form, Input, Card, Row, Col, Button, InputNumber, TreeSelect } from 'antd';
+import { Form, Input, Card, Row, Col, Button, InputNumber, TreeSelect, message } from "antd";
import { connect } from 'dva';
import Panel from '../../../components/Panel';
import styles from '../../../layouts/Sword.less';
@@ -34,13 +34,17 @@ class RoleEdit extends PureComponent {
},
form,
} = this.props;
+ const parentId = form.getFieldValue('parentId');
+ if (id === parentId.toString()) {
+ message.warn('上级角色不能选择自身!');
+ return;
+ }
form.validateFieldsAndScroll((err, values) => {
if (!err) {
const params = {
id,
...values,
};
- console.log(params);
dispatch(ROLE_SUBMIT(params));
}
});
diff --git a/src/pages/System/User/User.js b/src/pages/System/User/User.js
index 23dc44c..ae97c09 100644
--- a/src/pages/System/User/User.js
+++ b/src/pages/System/User/User.js
@@ -5,6 +5,7 @@ import Panel from '../../../components/Panel';
import Grid from '../../../components/Sword/Grid';
import { USER_INIT, USER_LIST, USER_ROLE_GRANT } from '../../../actions/user';
import { resetPassword } from '../../../services/user';
+import { tenantMode } from '../../../defaultSettings';
const FormItem = Form.Item;
const { TreeNode } = Tree;
@@ -211,6 +212,10 @@ class User extends PureComponent {
},
];
+ if (!tenantMode) {
+ columns.splice(0, 1);
+ }
+
return (
提交
@@ -77,8 +87,8 @@ class UserAdd extends PureComponent {