import React, {Component} from 'react'
|
import { message } from 'antd'
|
import md5 from 'md5'
|
import moment from 'moment'
|
import Api from '@/api'
|
import zhCN from '@/locales/zh-CN/login.js'
|
import enUS from '@/locales/en-US/login.js'
|
import options from '@/store/options.js'
|
import Utils from '@/utils/utils.js'
|
import asyncComponent from '@/utils/asyncComponent'
|
import logourl from '../../assets/img/login-logo.png'
|
import './index.scss'
|
|
const LoginForm = asyncComponent(() => import('./loginform'))
|
const iszhCN = !localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN'
|
|
class Login extends Component {
|
state = {
|
selectedlang: iszhCN ? 'zh-CN' : 'en-US',
|
dict: iszhCN ? zhCN : enUS,
|
isDisabled: false,
|
auth: false
|
}
|
|
changelang (item) {
|
// 切换语言
|
this.setState({
|
dict: item === 'zh-CN' ? zhCN : enUS
|
})
|
}
|
|
md5Password (pwd) {
|
// md5密码加密
|
const salt = 'minkesoft'
|
return md5(md5(pwd + salt))
|
}
|
|
handleSubmit = () => {
|
this.loginformRef.handleConfirm().then(res => {
|
this.setState({
|
isDisabled: true
|
})
|
this.loginsubmit(res)
|
})
|
}
|
|
async loginsubmit (param) {
|
// 登录提交
|
// let password = this.md5Password(param.password)
|
let password = param.password
|
let result = await Api.loginsystem(param.username, password)
|
if (!result.IsError) {
|
Api.getusermsg(param.username, password).then(res => {
|
if (res.status) {
|
sessionStorage.setItem('UserID', res.UserID)
|
sessionStorage.setItem('SessionUid', Utils.getuuid())
|
sessionStorage.setItem('LoginUID', res.LoginUID)
|
localStorage.setItem('lang', param.lang)
|
|
if (param.remember) { // 记住密码时账号密码存入localStorage
|
localStorage.setItem('username', param.username)
|
localStorage.setItem('password', param.password)
|
} else {
|
localStorage.removeItem('username')
|
localStorage.removeItem('password')
|
}
|
|
if (this.props.location.state && this.props.location.state.from.pathname) {
|
// 查看是否为其他页面跳转,路径存在时,跳回原页面
|
this.props.history.replace(this.props.location.state.from.pathname)
|
} else {
|
this.props.history.replace('/main')
|
}
|
} else {
|
message.warning(res.message)
|
}
|
})
|
} else {
|
message.warning(result.Message)
|
this.setState({
|
isDisabled: false
|
})
|
}
|
}
|
|
componentDidMount () {
|
let timeStamp = new Date().getTime()
|
let str = md5('MK19' + options.AppId + timeStamp)
|
Api.systemauth(options.AppId, timeStamp).then(res => {
|
if (res.status && res.EPC === str) {
|
let box = []
|
for (let i = 0; i < 15; i++) {
|
let s = 'mksoft' + moment().add(i, 'days').format('YYYYMMDD')
|
box.push(md5(s))
|
}
|
box = box.join(',')
|
localStorage.setItem('AuthCode', box)
|
|
this.setState({
|
auth: true
|
})
|
} else {
|
localStorage.removeItem('AuthCode')
|
this.setState({
|
auth: false
|
})
|
}
|
})
|
|
let authCode = localStorage.getItem('AuthCode')
|
let _s = md5('mksoft' + moment().format('YYYYMMDD'))
|
if (authCode && authCode.includes(_s)) {
|
this.setState({
|
auth: true
|
})
|
}
|
}
|
|
render () {
|
return (
|
<div className="login-container">
|
<div className="logo">
|
<img src={logourl} alt=""/>
|
</div>
|
<div className="login-middle">
|
<LoginForm
|
dict={this.state.dict}
|
auth={this.state.auth}
|
lang={this.state.selectedlang}
|
isDisabled={this.state.isDisabled}
|
changelang={(value) => this.changelang(value)}
|
handleSubmit={() => this.handleSubmit()}
|
wrappedComponentRef={(inst) => this.loginformRef = inst}
|
/>
|
</div>
|
<div className="login-bottom">
|
<p>
|
<span className="split">Copyright©2017</span>
|
<span className="split">{this.state.dict['login.copyright']}</span>
|
<span>北京明科普华信息技术有限公司</span>
|
</p>
|
<p>
|
<span>ICP备案:</span>
|
<span>京ICP备12007830号</span>
|
</p>
|
</div>
|
</div>
|
)
|
}
|
}
|
|
export default Login
|