diff --git a/src/components/EditableLinkGroup/index.js b/src/components/EditableLinkGroup/index.js index e230c3dd33e4deccf49a8c3aaa8f74ad9b095398..2d0b4aa83a34921f6936c24b104d4933475c969d 100644 --- a/src/components/EditableLinkGroup/index.js +++ b/src/components/EditableLinkGroup/index.js @@ -6,18 +6,17 @@ import styles from './index.less'; // TODO: 添加逻辑 class EditableLinkGroup extends PureComponent { - static defaultProps = { - links: [], - onAdd: () => {}, - linkElement: 'a', - }; - static propTypes = { links: PropTypes.array, onAdd: PropTypes.func, linkElement: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), }; + static defaultProps = { + links: [], + onAdd: () => {}, + linkElement: 'a', + }; render() { const { links, linkElement, onAdd } = this.props; return ( diff --git a/src/components/Ellipsis/index.js b/src/components/Ellipsis/index.js index 891c72036310a220abb77a3871465701b0e957d0..4fb2c48bcc216d7deaaaeb434ecf474175aceaef 100644 --- a/src/components/Ellipsis/index.js +++ b/src/components/Ellipsis/index.js @@ -20,7 +20,7 @@ const EllipsisText = ({ text, length, tooltip, ...other }) => { if (length - tail.length <= 0) { displayText = ''; } else { - displayText = text.slice(0, length - tail.length); + displayText = text.slice(0, length); } if (tooltip) { diff --git a/src/components/HeaderSearch/index.js b/src/components/HeaderSearch/index.js index 295a837a6716c129622e93e9ec985ffdb1895b7a..855e7ac1811d5eab54e6af984779426bdaff86a5 100644 --- a/src/components/HeaderSearch/index.js +++ b/src/components/HeaderSearch/index.js @@ -5,15 +5,6 @@ import classNames from 'classnames'; import styles from './index.less'; export default class HeaderSearch extends PureComponent { - static defaultProps = { - defaultActiveFirstOption: false, - onPressEnter: () => {}, - onSearch: () => {}, - className: '', - placeholder: '', - dataSource: [], - defaultOpen: false, - }; static propTypes = { className: PropTypes.string, placeholder: PropTypes.string, @@ -23,6 +14,17 @@ export default class HeaderSearch extends PureComponent { dataSource: PropTypes.array, defaultOpen: PropTypes.bool, }; + + static defaultProps = { + defaultActiveFirstOption: false, + onPressEnter: () => {}, + onSearch: () => {}, + className: '', + placeholder: '', + dataSource: [], + defaultOpen: false, + }; + state = { searchMode: this.props.defaultOpen, value: '', diff --git a/src/components/Login/index.js b/src/components/Login/index.js index 702c13f1f7d759e161ef12a87c6f5610e527a532..383174492272554d62f2c828ba4339f5429c4dfb 100644 --- a/src/components/Login/index.js +++ b/src/components/Login/index.js @@ -9,18 +9,20 @@ import styles from './index.less'; import LoginContext from './loginContext'; class Login extends Component { - static defaultProps = { - className: '', - defaultActiveKey: '', - onTabChange: () => {}, - onSubmit: () => {}, - }; static propTypes = { className: PropTypes.string, defaultActiveKey: PropTypes.string, onTabChange: PropTypes.func, onSubmit: PropTypes.func, }; + + static defaultProps = { + className: '', + defaultActiveKey: '', + onTabChange: () => {}, + onSubmit: () => {}, + }; + state = { type: this.props.defaultActiveKey, tabs: [], diff --git a/src/components/Login/index.less b/src/components/Login/index.less index 2894749b79a37bf658bb3f13d191613771204544..e0a984cd2aa20043d5599f4a98ea65afd31905ab 100644 --- a/src/components/Login/index.less +++ b/src/components/Login/index.less @@ -35,7 +35,6 @@ .getCaptcha { display: block; width: 100%; - height: 42px; } .submit { diff --git a/src/components/NoticeIcon/index.js b/src/components/NoticeIcon/index.js index b91591529bf72a400cfb8fd37d2fbf60e539a3e3..57321b49071f2d93f025726ebdad031129059b72 100644 --- a/src/components/NoticeIcon/index.js +++ b/src/components/NoticeIcon/index.js @@ -7,6 +7,8 @@ import styles from './index.less'; const { TabPane } = Tabs; export default class NoticeIcon extends PureComponent { + static Tab = TabPane; + static defaultProps = { onItemClick: () => {}, onPopupVisibleChange: () => {}, @@ -19,7 +21,6 @@ export default class NoticeIcon extends PureComponent { }, emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/wAhyIChODzsoKIOBHcBk.svg', }; - static Tab = TabPane; constructor(props) { super(props); this.state = {}; diff --git a/src/components/PageHeader/index.less b/src/components/PageHeader/index.less index 2a8c9a6af7b694f0b7e669f2fb27c959484f990d..13324b97da07718dade2c0480bcc0ddf9d79ce1b 100644 --- a/src/components/PageHeader/index.less +++ b/src/components/PageHeader/index.less @@ -11,6 +11,7 @@ .row { display: flex; + width: 100%; } .breadcrumb { @@ -66,10 +67,11 @@ .content, .extraContent, .main { - // IE auto is no have height - flex: 1; + flex: 0 1 auto; + } + .main { + width: 100%; } - .title, .action { margin-bottom: 16px; diff --git a/src/routes/User/Login.js b/src/routes/User/Login.js index 5d03da0b376e6098f29319aaa8542576f452aba8..1271588e08ba44e940ccc54d8bb13b3851195b21 100644 --- a/src/routes/User/Login.js +++ b/src/routes/User/Login.js @@ -78,7 +78,7 @@ export default class LoginPage extends Component { {login.status === 'error' && login.type === 'account' && - !login.submitting && + !submitting && this.renderMessage('账户或密码错误(admin/888888)')} @@ -86,7 +86,7 @@ export default class LoginPage extends Component { {login.status === 'error' && login.type === 'mobile' && - !login.submitting && + !submitting && this.renderMessage('验证码错误')} diff --git a/src/utils/utils.js b/src/utils/utils.js index 110e26e1eced52296ba6028cbc256f562f2f61bc..60d16d162e1ccf39c80c1bab36410ee205c4ef4a 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -71,14 +71,23 @@ export function getPlainNode(nodeList, parentPath = '') { return arr; } +function accMul(arg1, arg2) { + let m = 0; + const s1 = arg1.toString(); + const s2 = arg2.toString(); + m += s1.split('.').length > 1 ? s1.split('.')[1].length : 0; + m += s2.split('.').length > 1 ? s2.split('.')[1].length : 0; + return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / 10 ** m; +} + export function digitUppercase(n) { const fraction = ['角', '分']; const digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; - const unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']]; + const unit = [['元', '万', '亿'], ['', '拾', '佰', '仟', '万']]; let num = Math.abs(n); let s = ''; fraction.forEach((item, index) => { - s += (digit[Math.floor(num * 10 * 10 ** index) % 10] + item).replace(/零./, ''); + s += (digit[Math.floor(accMul(num, 10 * 10 ** index)) % 10] + item).replace(/零./, ''); }); s = s || '整'; num = Math.floor(num);