king
2020-01-12 40f4c8f438295248600b90dcceb5fa0444d42f39
2020-01-12
8个文件已修改
119 ■■■■■ 已修改文件
src/api/index.js 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/index.jsx 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/index.scss 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/sidemenu/index.jsx 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/tableshare/actionList/index.jsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/loginform.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js
@@ -1,11 +1,11 @@
import axios from 'axios'
import qs from 'qs'
import {notification } from 'antd'
// import md5 from 'md5'
// import Utils from '@/utils/utils.js'
import options from '@/store/options.js'
// axios.defaults.baseURL = 'http://qingqiumarket.cn'
axios.defaults.crossDomain = true
// axios.defaults.headers.common['token'] = 'token'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
axios.defaults.withCredentials = true
@@ -16,7 +16,7 @@
  } else if (config.url.includes('Upload')) {
    config.headers = { 'Content-Type': 'multipart/form-data' }
  } else {
    config.headers.token = sessionStorage.getItem('TOKEN') || ''
    // config.headers.token = sessionStorage.getItem('TOKEN') || ''
    config.data = JSON.stringify(config.data)
  }
@@ -123,6 +123,13 @@
      param.rduri = window.GLOB.mainSystemApi
    }
    // param.nonc = Utils.getuuid()
    // param._ = new Date().getTime()
    // let keys = Object.keys(param).sort()
    // let values = keys.map(key => key + param[key]).join('')
    // param.sign  = md5(values)
    return axios({
      url: '/webapi/dostar',
      data: param
src/components/header/index.jsx
@@ -46,6 +46,7 @@
    logourl: window.GLOB.mainlogo || logourl,
    loginVisible: false,
    loginLoading: false,
    avatar: avatar,
    systems: []
  }
@@ -152,23 +153,15 @@
    // 获取主菜单
    let result = await Api.getSystemConfig({func: 'sPC_Get_MainMenu'})
    if (result.status) {
      let _avatar = Utils.getrealurl(result.HeadIcon) // 头像
      if (_avatar) {
        avatar = _avatar
      }
      if (result.debug === 'true') { // 是否为debug模式,即可复制菜单参数
        this.props.resetDebug()
      }
      let param = sessionStorage.getItem('view_param') // 是否为打开新页面
      if (param) {
      let MainMenuId = sessionStorage.getItem('MainMenu') // 是否为打开新页面
      if (MainMenuId) {
        // 通过url中menuid筛选出选中的主菜单
        let menuId = param.split('&')[0]
        let _menu = result.data.filter(item => item.MenuID === menuId)[0]
        if (!_menu) {
          sessionStorage.removeItem('view_param')
        }
        let _menu = result.data.filter(item => item.MenuID === MainMenuId)[0]
        sessionStorage.removeItem('MainMenu')
        this.props.modifyMainMenu(_menu || result.data[0])
      } else {
        this.props.modifyMainMenu(result.data[0])
@@ -291,11 +284,17 @@
  }
  changeSystem = (system) => {
    console.log(system)
    let _param = window.btoa('ud=' + sessionStorage.getItem('UserID') + '&sd=' + sessionStorage.getItem('SessionUid') + '&ld=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name'))
    window.location.href = system.LinkUrl1 + '#/ssologin/' + _param
  }
  
  UNSAFE_componentWillMount () {
    // 组件加载时,获取菜单数据
    let _avatar = sessionStorage.getItem('avatar')
    if (_avatar) {
      _avatar = Utils.getrealurl(_avatar) // 头像
      this.setState({avatar: _avatar})
    }
    this.loadmenu()
  }
@@ -319,11 +318,11 @@
          <Switch size="small" className="edit-switch" disabled={!!this.props.editLevel} checked={this.props.editState} onChange={this.changeEditState} />
        </Menu.Item>}
        {!this.props.editState ? <Menu.Item key="1" onClick={this.changePassword}>{this.state.dict['header.password']}</Menu.Item> : null}
        <Menu.SubMenu title="切换系统">
        {this.state.systems.length > 0 ? <Menu.SubMenu title="切换系统">
          {this.state.systems.map((system, index) => (
            <Menu.Item className="header-subSystem" key={'sub' + index} onClick={() => {this.changeSystem(system)}}> {system.AppName} </Menu.Item>
          ))}
        </Menu.SubMenu>
        </Menu.SubMenu> : null}
        <Menu.Item key="2" onClick={this.logout}>{this.state.dict['header.logout']}</Menu.Item>
      </Menu>
    )
@@ -352,7 +351,7 @@
        {/* 头像、用户名 */}
        <Dropdown className="header-setting" overlay={menu}>
          <div>
            <img src={avatar} alt=""/>
            <img src={this.state.avatar} alt=""/>
            <span>
              <span className="username">{this.state.userName}</span> <Icon type="down" />
            </span>
src/components/header/index.scss
@@ -79,6 +79,8 @@
    line-height: 48px;
    margin-right: 10px;
    img {
      width: 29px;
      height: 29px;
      border-radius: 30px;
      margin-right: 7px;
    }
src/components/sidemenu/index.jsx
@@ -48,27 +48,28 @@
        return
      }
      let param = sessionStorage.getItem('view_param') // 是否为打开新页面
      let msg = sessionStorage.getItem('UserID') + '&' + sessionStorage.getItem('SessionUid') + '&' + sessionStorage.getItem('LoginUID')
      let SubMenuId = sessionStorage.getItem('SubMenu')   // 是否为打开新页面
      let ThirdMenuId = sessionStorage.getItem('ThirdMenu') // 是否为打开新页面
      let msg = sessionStorage.getItem('UserID') + '&sd=' + sessionStorage.getItem('SessionUid') + '&ld=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name')
      let submenuId = '' // 展开二级菜单ID
      let tabId = '' // 打开的tab页id
      
      if (param) {
        param = param.split('&')
        submenuId = param[1]
        let submenu = result.data.filter(item => item.ParentID === submenuId)[0]
      if (SubMenuId && ThirdMenuId) {
        submenuId = SubMenuId
        let submenu = result.data.filter(item => item.ParentID === SubMenuId)[0]
        if (!submenu) {
          submenuId = ''
        } else {
          tabId = param[2]
          let tabmenu = submenu.FunMenu.filter(item => item.MenuID === tabId)[0]
          tabId = ThirdMenuId
          let tabmenu = submenu.FunMenu.filter(item => item.MenuID === ThirdMenuId)[0]
          if (!tabmenu) {
            submenuId = ''
            tabId = ''
          }
        }
        sessionStorage.removeItem('view_param')
        sessionStorage.removeItem('SubMenu')
        sessionStorage.removeItem('ThirdMenu')
      }
      let parentID = submenuId ? submenuId : result.data[0].ParentID // 展开二级菜单ID
@@ -85,7 +86,7 @@
        if (item.FunMenu) {
          _smenu.children = item.FunMenu.map((child, n) => {
            let _tmenu = {}
            let _msg = window.btoa(menu.MenuID + '&' + _smenu.MenuID + '&' + child.MenuID + '&' + msg) // 待完善
            let _msg = window.btoa('mm=' + menu.MenuID + '&sm=' + _smenu.MenuID + '&tm=' + child.MenuID + '&ud=' + msg) // 待完善
            _tmenu.src = '#/main/' + _msg
            if (child.LinkUrl === 'CommonTable') {
              _tmenu.type = 'CommonTable'
@@ -128,10 +129,11 @@
      if (tabId) {
        let _menu = menulist.filter(menu => menu.MenuID === submenuId)[0]
        let opentab = _menu && _menu.children.filter(tab => tab.MenuID === tabId)[0]
        if (opentab) {
          opentab.selected = true
          this.props.modifyTabview([opentab])
          let home = this.props.tabviews[0]
          home.selected = false
          this.props.modifyTabview([home, opentab])
        }
      }
    } else {
src/router/index.js
@@ -11,6 +11,7 @@
const routers = [
  {path: '/login', name: 'login', component: login, auth: false},
  {path: '/ssologin/:param', name: 'ssologin', auth: true},
  {path: '/main', name: 'main', component: main, auth: true},
  {path: '/main/:param', name: 'pmain', component: main, auth: true}
]
@@ -23,7 +24,32 @@
    if (item.name === 'pmain') { // 新窗口打开,取url参数放入sessionStorage
      let _param = window.atob(props.match.params.param)
      sessionStorage.setItem('view_param', _param)
      let p = {}
      _param.split('&').forEach(cell => {
        let _cell = cell.split('=')
        p[_cell[0]] = _cell[1]
      })
      sessionStorage.setItem('UserID', p.ud)
      sessionStorage.setItem('SessionUid', p.sd)
      sessionStorage.setItem('LoginUID', p.ld)
      sessionStorage.setItem('User_Name', p.un)
      sessionStorage.setItem('MainMenu', p.mm)
      sessionStorage.setItem('SubMenu', p.sm)
      sessionStorage.setItem('ThirdMenu', p.tm)
      return (<item.component {...props}/>)
    } else if (item.name === 'ssologin') {
      let _param = window.atob(props.match.params.param)
      let p = {}
      _param.split('&').forEach(cell => {
        let _cell = cell.split('=')
        p[_cell[0]] = _cell[1]
      })
      sessionStorage.setItem('UserID', p.ud)
      sessionStorage.setItem('SessionUid', p.sd)
      sessionStorage.setItem('LoginUID', p.ld)
      sessionStorage.setItem('User_Name', p.un)
      return (<Redirect to={{ pathname: '/main'}}/>)
    }
    
@@ -36,16 +62,7 @@
    if (userId && isauth) {
      return (<item.component {...props}/>)
    } else {
      let param = sessionStorage.getItem('view_param')
      if (param) {
        param = param.split('&')
        sessionStorage.setItem('UserID', param[3])
        sessionStorage.setItem('SessionUid', param[4])
        sessionStorage.setItem('LoginUID', param[5])
        return (<item.component {...props}/>)
      } else {
        return (<Redirect to={{ pathname: '/login', state: {from: props.location}}}/>)
      }
      return (<Redirect to={{ pathname: '/login', state: {from: props.location}}}/>)
    }
  }
src/tabviews/tableshare/actionList/index.jsx
@@ -305,6 +305,12 @@
          param[setting.primaryKey] = ids.join(',')
        }
        if (btn.OpenType === 'pop' && formdata) { // 表单
          formdata.forEach(_data => {
            param[_data.key] = _data.value
          })
        }
        new Promise(resolve => {
          // 内部请求
          if (btn.innerFunc) {
src/views/login/index.jsx
@@ -64,6 +64,7 @@
          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)
src/views/login/loginform.jsx
@@ -98,6 +98,7 @@
            <Input
              prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
              placeholder={this.props.dict['login.username']}
              autoComplete="off"
            />,
          )}
        </Form.Item>