king
2020-03-30 461e4fff4b51d067671244eec63b097cd9012b6e
src/views/login/index.jsx
@@ -8,11 +8,13 @@
import options from '@/store/options.js'
import Utils from '@/utils/utils.js'
import asyncComponent from '@/utils/asyncComponent'
import asyncLoadComponent from '@/utils/asyncLoadComponent'
import logourl from '@/assets/img/login-logo.png'
import loginbg from '@/assets/img/loginbg.jpg'
import './index.scss'
const LoginForm = asyncComponent(() => import('./loginform'))
const LoginForm = asyncLoadComponent(() => import('./loginform'))
const Action = asyncComponent(() => import('@/tabviews/zshare/actionList'))
const iszhCN = !localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN'
class Login extends Component {
@@ -28,7 +30,8 @@
    ICP: window.GLOB.icp || 'ICP备案: 京ICP备12007830号',
    bgColor: window.GLOB.bgColor || '#000000',
    lineColor: window.GLOB.lineColor || '#1890ff',
    website: window.GLOB.website || (!window.GLOB.copyRight && 'http://minkesoft.com')
    website: window.GLOB.website || (!window.GLOB.copyRight && 'http://minkesoft.com'),
    loaded: false
  }
  changelang (item) {
@@ -55,39 +58,33 @@
  async loginsubmit (param) {
    // 登录提交
    // let password = this.md5Password(param.password)
    let result = await Api.loginsystem(param.username, param.password)
    if (!result.IsError) {
      Api.getusermsg(param.username, param.password).then(res => {
        if (res.status) {
          sessionStorage.setItem('UserID', res.UserID)
          sessionStorage.setItem('SessionUid', Utils.getuuid())
          sessionStorage.setItem('LoginUID', res.LoginUID)
          sessionStorage.setItem('User_Name', res.UserName)
          sessionStorage.setItem('avatar', res.icon || '')
          localStorage.setItem('lang', param.lang)
    let res = await Api.getusermsg(param.username, param.password)
    if (res.status) {
      sessionStorage.setItem('UserID', res.UserID)
      sessionStorage.setItem('SessionUid', Utils.getuuid())
      sessionStorage.setItem('LoginUID', res.LoginUID)
      sessionStorage.setItem('User_Name', res.UserName)
      sessionStorage.setItem('Full_Name', res.FullName)
      sessionStorage.setItem('avatar', res.icon || '')
      localStorage.setItem('lang', param.lang)
          let _url = window.location.href.split('#')[0]
      let _url = window.location.href.split('#')[0]
          if (param.remember) { // 记住密码时账号密码存入localStorage
            localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password}))))
          } else {
            localStorage.removeItem(_url)
          }
          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)
        }
      })
      if (param.remember) { // 记住密码时账号密码存入localStorage
        localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password}))))
      } else {
        localStorage.removeItem(_url)
      }
      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(result.Message)
      message.warning(res.message)
      this.setState({
        isDisabled: false
      })
@@ -96,25 +93,33 @@
  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)
    let _appId = window.GLOB.appId
        this.setState({
          auth: true
        })
      } else {
        localStorage.removeItem('AuthCode')
        this.setState({
          auth: false
        })
    if (options.systemType === 'cloud') { // 云端使用系统配置appid
      _appId = options.AppId
    }
    let str = md5('MK19' + _appId + timeStamp)
    Api.systemauth(_appId, timeStamp).then(res => {
      if (res.status) {
        if (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
          })
        }
      }
    })
@@ -125,9 +130,16 @@
        auth: true
      })
    }
    // let link = document.querySelector("link[rel*='icon']") || document.createElement('link')
    // link.type = 'image/x-icon'
    // link.rel = 'shortcut icon'
    // link.href = 'http://www.stackoverflow.com/favicon.ico'
    // document.getElementsByTagName('head')[0].appendChild(link)
  }
  render () {
    return (
      <div className="login-container" style={{backgroundImage: 'url(' + this.state.bgImage + ')', backgroundColor: this.state.bgColor}}>
        <div className="logo" style={{borderColor: this.state.lineColor}}>
@@ -142,6 +154,7 @@
            isDisabled={this.state.isDisabled}
            changelang={(value) => this.changelang(value)}
            handleSubmit={() => this.handleSubmit()}
            handleloaded={() => {this.setState({loaded: true})}}
            wrappedComponentRef={(inst) => this.loginformRef = inst}
          />
        </div>
@@ -152,6 +165,25 @@
          }
          <p dangerouslySetInnerHTML={{ __html: this.state.ICP.replace(/\s/ig, '&nbsp;') }}></p>
        </div>
        {this.state.loaded ? <div style={{position: 'fixed', bottom: '-300px'}}>
          <Action
            BID=""
            type=""
            menuType=""
            setting={{}}
            actions={[]}
            triggerBtn={{}}
            dict={{}}
            MenuID=""
            permRoles={{}}
            logcolumns={[]}
            ContainerId=""
            refreshdata={() => {}}
            triggerPopview={() => {}}
            getexceloutparam={() => {}}
            gettableselected={() => {}}
          />
        </div> : null}
      </div>
    )
  }