From b09b821ef36fd1ea979e9a5daa98e95732ac81d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 16 七月 2025 18:16:00 +0800 Subject: [PATCH] 2025-07-16 --- src/pc/components/login/normal-login/loginform.jsx | 121 +++++++++++++++++++++++++++------------- 1 files changed, 82 insertions(+), 39 deletions(-) diff --git a/src/pc/components/login/normal-login/loginform.jsx b/src/pc/components/login/normal-login/loginform.jsx index 536b883..8790dd8 100644 --- a/src/pc/components/login/normal-login/loginform.jsx +++ b/src/pc/components/login/normal-login/loginform.jsx @@ -1,7 +1,8 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Form, Icon, Input, Button, Checkbox } from 'antd' +import { Form, Input, Button, Checkbox, notification } from 'antd' +import { QrcodeOutlined, UserOutlined, LockOutlined } from '@ant-design/icons' import asyncElementComponent from '@/utils/asyncComponent' import MKEmitter from '@/utils/events.js' @@ -11,10 +12,8 @@ class LoginTabForm extends Component { static propTpyes = { - dict: PropTypes.object, - menuId: PropTypes.string, - loginWays: PropTypes.array, - wrap: PropTypes.array, + wrap: PropTypes.object, + changeway: PropTypes.func } state = { @@ -24,26 +23,41 @@ } UNSAFE_componentWillMount () { - const { loginWays, wrap } = this.props + const { wrap } = this.props - let _loginWays = [] let scanWay = null - loginWays.forEach(item => { - if (!wrap.loginWays || wrap.loginWays.includes(item.type)) { - if (item.type === 'sms_vcode') { - item.label = '鐭俊鐧诲綍' - } else if (item.type === 'uname_pwd') { - item.label = '璐﹀彿鐧诲綍' - } else if (item.type === 'app_scan') { - scanWay = item + + let loginWays = [] + wrap.loginWays.forEach(way => { + if (way === 'sms_vcode') { + loginWays.push({ + type: 'sms_vcode', + label: '鐭俊鐧诲綍', + tempId: wrap.tempId, + sort: 2 + }) + } else if (way === 'uname_pwd') { + loginWays.push({ + type: 'uname_pwd', + label: '璐﹀彿鐧诲綍', + shortcut: wrap.shortcut, + sort: 1 + }) + } else if (way === 'app_scan') { + scanWay = { + type: 'app_scan', + label: '鎵爜鐧诲綍', + sort: 3 } - _loginWays.push(item) + loginWays.push(scanWay) } }) + loginWays.sort((a, b) => a.sort - b.sort) + this.setState({ - loginWays: _loginWays, - activeWay: _loginWays[0], + loginWays: loginWays, + activeWay: loginWays[0], scanWay }) } @@ -52,24 +66,37 @@ const { wrap } = this.props if (!is(fromJS(wrap), fromJS(nextProps.wrap))) { - let _loginWays = [] let scanWay = null - nextProps.loginWays.forEach(item => { - if (!nextProps.wrap.loginWays || nextProps.wrap.loginWays.includes(item.type)) { - if (item.type === 'sms_vcode') { - item.label = '鐭俊鐧诲綍' - } else if (item.type === 'uname_pwd') { - item.label = '璐﹀彿鐧诲綍' - } else if (item.type === 'app_scan') { - scanWay = item + let loginWays = [] + nextProps.wrap.loginWays.forEach(way => { + if (way === 'sms_vcode') { + loginWays.push({ + type: 'sms_vcode', + label: '鐭俊鐧诲綍', + tempId: wrap.tempId, + sort: 2 + }) + } else if (way === 'uname_pwd') { + loginWays.push({ + type: 'uname_pwd', + label: '璐﹀彿鐧诲綍', + shortcut: wrap.shortcut, + sort: 1 + }) + } else if (way === 'app_scan') { + scanWay = { + type: 'app_scan', + label: '鎵爜鐧诲綍', + sort: 3 } - _loginWays.push(item) + loginWays.push(scanWay) } }) + loginWays.sort((a, b) => a.sort - b.sort) this.setState({ - loginWays: _loginWays, - activeWay: _loginWays[0], + loginWays: loginWays, + activeWay: loginWays[0], scanWay }) } @@ -80,10 +107,19 @@ } changeMenu = () => { - const { wrap, menuId } = this.props + const { wrap } = this.props + + if (!wrap.linkmenu) { + notification.warning({ + top: 92, + message: '璇疯缃叧鑱旇彍鍗曪紒', + duration: 5 + }) + return + } MKEmitter.emit('changeEditMenu', { - MenuID: wrap.link === 'linkmenu' ? wrap.linkmenu : menuId, + MenuID: wrap.linkmenu, copyMenuId: '', MenuNo: '', MenuName: '' @@ -100,22 +136,28 @@ } render() { + const { wrap } = this.props const { activeWay, loginWays, scanWay } = this.state + + let style = {} + if (wrap.borderRadius) { + style.borderRadius = wrap.borderRadius + } return ( <Form className="login-edit-form"> - <div className="login-way-title">{activeWay.label}</div> - {scanWay && activeWay.type !== 'app_scan' ? <div className="scan-icon" onClick={() => this.onChangeTab(scanWay)}><Icon type="qrcode" /></div> : null} + {wrap.topTip !== 'hidden' ? <div className="login-way-title">{activeWay.label}</div> : null} + {scanWay && activeWay.type !== 'app_scan' ? <div className="scan-icon" onClick={() => this.onChangeTab(scanWay)}><QrcodeOutlined /></div> : null} {activeWay.type === 'uname_pwd' ? <div className={'form-item-wrap ' + (activeWay.shortcut === 'none' ? 'no-short' : '')}> <Form.Item> <Input - prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />} - placeholder="鐢ㄦ埛鍚�" + prefix={<UserOutlined style={{ color: 'rgba(0,0,0,.25)' }} />} + placeholder="鐢ㄦ埛鍚�/鎵嬫満鍙�/閭" autoComplete="off" /> </Form.Item> <Form.Item> - <Input.Password placeholder="瀵嗙爜" prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />} /> + <Input.Password placeholder="瀵嗙爜" visibilityToggle={wrap.vispwd !== 'false'} prefix={<LockOutlined style={{ color: 'rgba(0,0,0,.25)' }} />} /> </Form.Item> {!activeWay.shortcut || activeWay.shortcut === 'remember' ? <Form.Item className="minline"> <Checkbox>璁颁綇瀵嗙爜</Checkbox> @@ -124,7 +166,7 @@ <Checkbox>鑷姩鐧诲綍</Checkbox> </Form.Item> : null} <Form.Item className="btn-login"> - <Button type="primary" onDoubleClick={() => this.changeMenu()} className="login-form-button"> + <Button type="primary" style={style} onDoubleClick={() => this.changeMenu()} className="login-form-button"> 鐧诲綍 </Button> </Form.Item> @@ -148,7 +190,7 @@ /> </Form.Item> <Form.Item className="btn-login"> - <Button type="primary" onDoubleClick={() => this.changeMenu()} className="login-form-button"> + <Button type="primary" style={style} onDoubleClick={() => this.changeMenu()} className="login-form-button"> 鐧诲綍 </Button> </Form.Item> @@ -159,6 +201,7 @@ </div> 璇蜂娇鐢ㄥ鎴风鎵竴鎵櫥褰� </div> : null} + {wrap.classify !== 'login' ? <span className="mk-jump-way" onClick={() => this.props.changeway()}>娌℃湁璐﹀彿锛屽幓娉ㄥ唽锛�</span> : null} <div className={'login-ways ' + (activeWay.type === 'app_scan' ? 'center' : '')}> {loginWays.map(item => { if (item.type === 'app_scan' || activeWay.type === item.type) return null -- Gitblit v1.8.0