king
2020-12-03 569ccb3c1ff82f30ffefa7d3700571448d742662
src/views/login/index.jsx
@@ -70,6 +70,10 @@
    })
  }
  /**
   * @description 账号密码登录
   * @param {Object} param 用户名密码等信息
   */
  async loginsubmit (param) {
    if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 业务系统必须设置单点地址
      Modal.warning({
@@ -86,6 +90,9 @@
      sessionStorage.setItem('User_Name', res.UserName)
      sessionStorage.setItem('Full_Name', res.FullName)
      sessionStorage.setItem('avatar', res.icon || '')
      sessionStorage.setItem('dataM', res.dataM ? 'true' : '')
      sessionStorage.setItem('debug', res.debug || '')
      sessionStorage.setItem('role_id', res.role_id || '')
      localStorage.setItem('lang', param.lang || 'zh-CN')
@@ -119,6 +126,17 @@
      })
    } else {
      message.warning(res.message)
      if (res.message.indexOf('密码错误') > -1) {
        const input = document.getElementById('password')
        if (input) {
          input.select()
        }
      } else if (res.message.indexOf('登录权限') > -1) {
        const input = document.getElementById('username')
        if (input) {
          input.select()
        }
      }
      this.setState({
        isDisabled: false
      })
@@ -141,6 +159,9 @@
      sessionStorage.setItem('User_Name', res.UserName)
      sessionStorage.setItem('Full_Name', res.FullName)
      sessionStorage.setItem('avatar', res.icon || '')
      sessionStorage.setItem('dataM', res.dataM ? 'true' : '')
      sessionStorage.setItem('debug', res.debug || '')
      sessionStorage.setItem('role_id', res.role_id || '')
      localStorage.setItem('lang', param.lang || 'zh-CN')
@@ -170,57 +191,66 @@
  componentDidMount () {
    const timeStamp = new Date().getTime()
    const _authUrl = window.location.href.split('#')[0] + 'AuthCode'
    let _appId = window.GLOB.appId
    if (options.sysType === 'cloud') { // 云端使用系统配置appid
      _appId = options.caId
    let authCode = localStorage.getItem(_authUrl)
    let _s = md5('mksoft' + moment().format('YYYYMMDD'))
    authCode = authCode ? authCode.split(',') : []
    let index = authCode.findIndex(key => key === _s)
    if (index > -1) {
      this.setState({
        auth: true
      })
    }
    let str = md5('MK19' + _appId + timeStamp)
    let param = {
      rduri: 'http://minkesoft.com/mksepc/webapi/dostars',
      func: 'sEmpowerCloud_Get_LinkUrl',
      AppID: _appId,
      TimeStamp: timeStamp,
      appkey: window.GLOB.appkey,
      userid: 'bh0bapabtd45epsgra79segbch6c1ibk',
      LoginUID: 'bh0bapabtd45epsgra79segbch6c1ibk'
    }
    Api.dostarToDostars(param).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(_authUrl, box)
    if (index === -1 || index > 5) {
      let _appId = window.GLOB.appId
  
          this.setState({
            auth: true
          })
        } else {
      if (options.sysType === 'cloud') { // 云端使用系统配置appid
        _appId = options.caId
      }
      let str = md5('MK19' + _appId + timeStamp)
      let _rduri = window.atob('aHR0cDovL2VwYy5tazloL$mkmNuL3dlYmFwaS9kb3N0YXJz'.replace(/\$mk/ig, ''))
      let _func = window.atob('c0VtcG93ZXJDbG91$mkZF9HZXRfTGlua1VybA=='.replace(/\$mk/ig, ''))
      let _id = window.atob('YmgwYmFwYWJ0ZDQ1ZXBz$mkZ3JhNzlzZWdiY2g2YzFpYms='.replace(/\$mk/ig, ''))
      let param = {
        rduri: _rduri,
        func: _func,
        AppID: _appId,
        TimeStamp: timeStamp,
        appkey: window.GLOB.appkey,
        userid: _id,
        LoginUID: _id
      }
      Api.dostarToDostars(param).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(_authUrl, box)
            this.setState({
              auth: true
            })
          } else {
            localStorage.removeItem(_authUrl)
            this.setState({
              auth: false
            })
          }
        } else if (res.ErrCode === 'N') {
          localStorage.removeItem(_authUrl)
          this.setState({
            auth: false
          })
        }
      } else if (res.ErrCode === 'N') {
        localStorage.removeItem(_authUrl)
        this.setState({
          auth: false
        })
      }
    })
    let authCode = localStorage.getItem(_authUrl)
    let _s = md5('mksoft' + moment().format('YYYYMMDD'))
    if (authCode && authCode.includes(_s)) {
      this.setState({
        auth: true
      })
    }
@@ -244,7 +274,7 @@
          LText: `select '${window.GLOB.appkey}'`,
        }
        _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
        _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
        _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp)
        Api.getSystemConfig(_param).then(res => {
@@ -392,9 +422,9 @@
            Appkey: window.GLOB.appkey || ''
          }
          _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
          _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
          _param.secretkey = Utils.encrypt(_param.LTextOut, _param.timestamp)
          _param.open_key = Utils.encrypt(_param.secretkey, _param.timestamp, true)
          _param.open_key = Utils.encryptOpenKey(_param.secretkey, _param.timestamp)
          Api.dostarInterface(_param).then(response => {
            if (response.status) {
@@ -437,6 +467,7 @@
      <div className="login-container" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : {}}>
        <div className="logo" style={lineColor ? {borderColor: lineColor} : {}}>
          {loginlogo ? <img src={loginlogo} alt=""/> : null}
          {this.state.platName ? <p className="plat-name">{this.state.platName}</p> : null}
        </div>
        <div className="login-middle" style={lineColor ? {borderColor: lineColor} : {}}>
          {loginWays ? <LoginForm