From d4f3b364064b51826f1d8fcaa414d944189da830 Mon Sep 17 00:00:00 2001 From: smallchill Date: Fri, 29 Mar 2019 16:43:06 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BF=AE=E5=A4=8D=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=83=A8=E5=88=86bug=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=A4=9A=E7=A7=9F=E6=88=B7=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 5 +- src/defaultSettings.js | 3 +- src/pages/Login/Login.js | 23 +++++---- src/pages/System/Dept/Dept.js | 13 ++++-- src/pages/System/Dept/DeptAdd.js | 1 - src/pages/System/Dept/DeptEdit.js | 8 +++- src/pages/System/Dict/DictAdd.js | 1 - src/pages/System/Dict/DictEdit.js | 8 +++- src/pages/System/Menu/MenuAdd.js | 1 - src/pages/System/Menu/MenuEdit.js | 7 ++- src/pages/System/Role/Role.js | 13 ++++-- src/pages/System/Role/RoleAdd.js | 1 - src/pages/System/Role/RoleEdit.js | 8 +++- src/pages/System/User/User.js | 5 ++ src/pages/System/User/UserAdd.js | 74 +++++++++++++++++------------ src/pages/System/User/UserEdit.js | 78 ++++++++++++++++++------------- src/pages/System/User/UserView.js | 28 ++++++++--- tslint.json | 3 ++ 18 files changed, 178 insertions(+), 102 deletions(-) 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 {
- - + + {getFieldDecorator('account', { rules: [ { @@ -89,35 +99,39 @@ class UserAdd extends PureComponent { })()} - - - {getFieldDecorator('tenantCode', { - rules: [ - { - required: true, - message: '请选择所属租户', - }, - ], - })( - - )} - - + {tenantMode ? ( + + + + {getFieldDecorator('tenantCode', { + rules: [ + { + required: true, + message: '请选择所属租户', + }, + ], + })( + + )} + + + + ) : null} diff --git a/src/pages/System/User/UserEdit.js b/src/pages/System/User/UserEdit.js index 7e7b12d..5591d3f 100644 --- a/src/pages/System/User/UserEdit.js +++ b/src/pages/System/User/UserEdit.js @@ -6,6 +6,7 @@ import Panel from '../../../components/Panel'; import func from '../../../utils/Func'; import styles from '../../../layouts/Sword.less'; import { USER_CHANGE_INIT, USER_DETAIL, USER_INIT, USER_SUBMIT } from '../../../actions/user'; +import { tenantMode } from '../../../defaultSettings'; const FormItem = Form.Item; @@ -65,8 +66,6 @@ class UserEdit extends PureComponent { submitting, } = this.props; - console.log(detail); - const formItemLayout = { labelCol: { span: 8, @@ -76,6 +75,15 @@ class UserEdit extends PureComponent { }, }; + const formAllItemLayout = { + labelCol: { + span: 4, + }, + wrapperCol: { + span: 20, + }, + }; + const action = (