From 8d66ff34fae5b048a6b7923cc75d34f13a08be9d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 02 八月 2022 11:42:43 +0800 Subject: [PATCH] Merge branch 'develop' --- src/pc/components/login/normal-login/index.jsx | 91 +++++++++++++++++++++++++++------------------ 1 files changed, 55 insertions(+), 36 deletions(-) diff --git a/src/pc/components/login/normal-login/index.jsx b/src/pc/components/login/normal-login/index.jsx index 91ea5f3..226531c 100644 --- a/src/pc/components/login/normal-login/index.jsx +++ b/src/pc/components/login/normal-login/index.jsx @@ -13,9 +13,10 @@ import './index.scss' const LoginForm = asyncComponent(() => import('./loginform')) +const SignForm = asyncComponent(() => import('./signform')) const NormalForm = asyncIconComponent(() => import('@/components/normalform')) -class PropCardEditComponent extends Component { +class LoginComponent extends Component { static propTpyes = { card: PropTypes.object, deletecomponent: PropTypes.func, @@ -24,7 +25,7 @@ state = { card: null, - back: false + active: 'login' } UNSAFE_componentWillMount () { @@ -41,13 +42,8 @@ width: card.width || 24, name: card.name, subtype: card.subtype, - wrap: { name: card.name, width: card.width || 24, loginWays: ['uname_pwd'], shortcut: 'remember' }, - style: { background: '#ffffff', width: '330px', borderRadius: '4px', marginLeft: '55vw'}, - loginWays: [ - {type: 'uname_pwd', label: '璐﹀彿鐧诲綍', shortcut: 'remember'}, - {type: 'sms_vcode', label: '鐭俊鐧诲綍'}, - {type: 'app_scan', label: '鎵爜鐧诲綍'}, - ] + wrap: { name: card.name, width: card.width || 24, classify: 'login', loginWays: ['uname_pwd'], shortcut: 'remember' }, + style: { background: '#ffffff', width: '330px', borderRadius: '4px', marginLeft: '55vw'} } if (ismob) { @@ -65,19 +61,21 @@ _card.wrap.name = card.name _card.style = config.style } - this.setState({ - card: _card - }) - this.props.updateConfig(_card) + + this.updateComponent(_card) } else { let _card = fromJS(card).toJS() - if (_card.loginWays.length === 2) { - _card.loginWays.push({type: 'app_scan', label: '鎵爜鐧诲綍'}) - } if (_card.wrap.link && _card.wrap.link === 'menu') { _card.wrap.linkmenu = _card.uuid } + _card.wrap.classify = _card.wrap.classify || 'login' + + let active = 'login' + if (_card.wrap.classify === 'signin') { + active = 'signin' + } this.setState({ + active, card: _card }) } @@ -104,15 +102,21 @@ /** * @description 鍗$墖琛屽灞備俊鎭洿鏂帮紙鏁版嵁婧愶紝鏍峰紡绛夛級 */ - updateComponent = (component) => { + updateComponent = (card) => { + card.width = card.wrap.width + card.name = card.wrap.name + + card.errors = [] + + if (!card.wrap.linkmenu) { + card.errors.push({ level: 0, detail: '鐧诲綍鍚庤烦杞彍鍗曟湭璁剧疆锛�'}) + } + this.setState({ - card: component + card: card }) - component.width = component.wrap.width - component.name = component.wrap.name - - this.props.updateConfig(component) + this.props.updateConfig(card) } changeStyle = () => { @@ -127,12 +131,8 @@ if (comIds.length !== 1 || comIds[0] !== card.uuid) return let _card = {...card, style} - - this.setState({ - card: _card - }) - this.props.updateConfig(_card) + this.updateComponent(_card) } clickComponent = (e) => { @@ -153,21 +153,26 @@ card.wrap = res - if (res.shortcut) { - card.loginWays[0].shortcut = res.shortcut + let active = 'login' + if (res.classify === 'signin') { + active = 'signin' } + this.setState({ + active + }) this.updateComponent(card) } render() { - const { card } = this.state + const { card, active } = this.state let style = resetStyle(card.style) - if (card.wrap.maxWidth) { - style.maxWidth = card.wrap.maxWidth + + if (card.style.width) { let left = style.marginLeft && style.marginLeft !== '0px' ? style.marginLeft : 'auto' let right = style.marginRight && style.marginRight !== '0px' ? style.marginRight : 'auto' style.margin = (style.marginTop || 0) + ' ' + right + ' ' + (style.marginBottom || 0) + ' ' + left + style.maxWidth = `calc(100% - ${style.marginLeft || '0px'} - ${style.marginRight || '0px'})` delete style.marginLeft delete style.marginRight delete style.marginTop @@ -178,7 +183,7 @@ <div className="login-edit-box" style={style} onClick={this.clickComponent} id={card.uuid}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="鐧诲綍璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}> + <NormalForm title="娉ㄥ唽/鐧诲綍璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/> @@ -187,11 +192,25 @@ } trigger="hover"> <ToolOutlined /> </Popover> - <LoginForm loginWays={card.loginWays} wrap={card.wrap} /> - <div className="component-name"><div className="center">{card.name}</div></div> + {card.wrap.loginWays && active === 'login' ? <LoginForm wrap={card.wrap} changeway={() => this.setState({active: 'signin'})}/> : null} + {card.wrap.signWays && active === 'signin' ? <SignForm wrap={card.wrap} changeway={() => this.setState({active: 'login'})}/> : null} + <div className="component-name"> + <div className="center"> + <div className="title">{card.name}</div> + <div className="content"> + {card.errors && card.errors.map((err, index) => { + if (err.level === 0) { + return <span key={index} className="error">{err.detail}</span> + } else { + return <span key={index} className="waring">{err.detail}锛�</span> + } + })} + </div> + </div> + </div> </div> ) } } -export default PropCardEditComponent \ No newline at end of file +export default LoginComponent \ No newline at end of file -- Gitblit v1.8.0