src/api/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/header/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/header/index.scss | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/sidemenu/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/router/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/tabviews/tableshare/actionList/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/login/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/login/loginform.jsx | ●●●●● 补丁 | 查看 | 原始文档 | 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>