Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CivWeb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ReactWeb5
CivWeb
Commits
15916b72
Commit
15916b72
authored
4 months ago
by
周宏民
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 集成登录跳转前做菜单权限判断,获取子站优化
parent
d6a25018
master
Pipeline
#93634
waiting for manual action with stages
Changes
4
Pipelines
1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
8 deletions
+60
-8
index.js
src/components/IntegratedSwitch/index.js
+42
-5
actions.js
src/containers/App/store/actions.js
+1
-0
BasicLayout.js
src/layouts/BasicLayout.js
+0
-0
index.js
src/pages/bootpage/template/integrationNew/index.js
+17
-3
No files found.
src/components/IntegratedSwitch/index.js
View file @
15916b72
...
@@ -14,6 +14,7 @@ import axios from 'axios';
...
@@ -14,6 +14,7 @@ import axios from 'axios';
import
{
defaultApp
}
from
'@/micro'
;
import
{
defaultApp
}
from
'@/micro'
;
import
{
useHistory
}
from
'@wisdom-utils/runtime'
;
import
{
useHistory
}
from
'@wisdom-utils/runtime'
;
import
LoadPage
from
'@/components/LoadPage'
;
import
LoadPage
from
'@/components/LoadPage'
;
import
{
getUserInfo
,
getWebSiteConfig
}
from
'@/api/service/base'
;
import
styles
from
'./index.less'
;
import
styles
from
'./index.less'
;
const
IntegratedSwitch
=
props
=>
{
const
IntegratedSwitch
=
props
=>
{
...
@@ -74,13 +75,21 @@ const IntegratedSwitch = props => {
...
@@ -74,13 +75,21 @@ const IntegratedSwitch = props => {
useEffect
(()
=>
{
useEffect
(()
=>
{
// if (!window?.globalConfig?.userInfo?.OID || (!(window?.globalConfig?.isIntegration > 1) && window?.globalConfig?.Industry !== '集成登录')) return setDataList([]);
// if (!window?.globalConfig?.userInfo?.OID || (!(window?.globalConfig?.isIntegration > 1) && window?.globalConfig?.Industry !== '集成登录')) return setDataList([]);
if
(
!
window
?.
globalConfig
?.
userInfo
?.
OID
||
!
(
window
?.
globalConfig
?.
isIntegration
>=
1
))
return
setDataList
([]);
if
(
!
window
?.
globalConfig
?.
userInfo
?.
OID
||
!
(
window
?.
globalConfig
?.
isIntegration
>=
1
))
return
setDataList
([]);
let
list
=
localStorage
.
getItem
(
'integrationData'
);
//
list
=
list
?
JSON
.
parse
(
list
)
:
[];
if
(
Array
.
isArray
(
list
)
&&
list
?.
length
)
{
setDataList
(
list
||
[]);
}
else
{
appService
appService
.
GetIntegrationConfig
({
.
GetIntegrationConfig
({
type
:
'集成登录'
,
type
:
'集成登录'
,
userId
:
window
?.
globalConfig
?.
userInfo
?.
OID
??
null
,
userId
:
window
?.
globalConfig
?.
userInfo
?.
OID
??
null
,
isEnable
:
true
,
isEnable
:
true
,
client
:
client
:
localStorage
.
getItem
(
'integrationClient'
)
||
sessionStorage
.
getItem
(
'client'
)
||
props
?.
global
?.
client
||
''
,
localStorage
.
getItem
(
'integrationClient'
)
||
sessionStorage
.
getItem
(
'client'
)
||
props
?.
global
?.
client
||
''
,
})
})
.
then
(
res
=>
{
.
then
(
res
=>
{
setDataList
(
res
?.
data
||
[]);
setDataList
(
res
?.
data
||
[]);
...
@@ -88,15 +97,16 @@ const IntegratedSwitch = props => {
...
@@ -88,15 +97,16 @@ const IntegratedSwitch = props => {
.
catch
(
err
=>
{
.
catch
(
err
=>
{
setDataList
([]);
setDataList
([]);
});
});
}
},
[]);
},
[]);
// 子站跳转
// 子站跳转
// eslint-disable-next-line no-shadow
// eslint-disable-next-line no-shadow
const
handlePage
=
useCallback
((
item
,
loginAction
)
=>
{
const
handlePage
=
useCallback
((
item
,
loginAction
)
=>
{
if
(
item
.
subType
===
'外链'
)
{
setJumpLoading
(
true
);
setJumpLoading
(
true
);
jumpProgressStart
();
jumpProgressStart
();
startTiming
(
5
);
startTiming
(
5
);
if
(
item
.
subType
===
'外链'
)
{
// 营收
// 营收
if
(
item
.
paramValue
===
'ticket'
)
{
if
(
item
.
paramValue
===
'ticket'
)
{
// 获取临时token
// 获取临时token
...
@@ -129,10 +139,27 @@ const IntegratedSwitch = props => {
...
@@ -129,10 +139,27 @@ const IntegratedSwitch = props => {
}
}
}
}
} else if (item.subType === '内链') {
} else if (item.subType === '内链') {
const cli = item.appKey;
const token = props.global?.token || Cookies.get('token');
getWebSiteConfig({
identity: token,
client: cli,
}).then(res => {
if (!res?.data?.[0]?.widgets?.length) {
message.error({
duration: 3,
content: '您没有该板块权限,请联系管理员',
});
return;
}
setJumpLoading(true);
jumpProgressStart();
startTiming(5);
if (window.qiankunIsCache) {
if (window.qiankunIsCache) {
store.set('event:dropCache');
store.set('event:dropCache');
}
}
const cli = item.appKey;
Cookies.set('client', cli, {
Cookies.set('client', cli, {
expires: 86400000 / (24 * 60 * 60 * 1000),
expires: 86400000 / (24 * 60 * 60 * 1000),
path: '/',
path: '/',
...
@@ -157,7 +184,11 @@ const IntegratedSwitch = props => {
...
@@ -157,7 +184,11 @@ const IntegratedSwitch = props => {
// props.instance && props.instance.updateConfig(config);
// props.instance && props.instance.updateConfig(config);
loginAction && loginAction.getUserInfoAndConfig('', true, item.type);
loginAction && loginAction.getUserInfoAndConfig('', true, item.type);
});
} else {
} else {
setJumpLoading(true);
jumpProgressStart();
startTiming(5);
let { url } = item;
let { url } = item;
if (url?.indexOf('{userId}') >= 0) {
if (url?.indexOf('{userId}') >= 0) {
url = url.replace('{userId}', window.globalConfig?.userInfo?.OID);
url = url.replace('{userId}', window.globalConfig?.userInfo?.OID);
...
@@ -173,6 +204,9 @@ const IntegratedSwitch = props => {
...
@@ -173,6 +204,9 @@ const IntegratedSwitch = props => {
} else {
} else {
window.open(res.data?.data, '_blank');
window.open(res.data?.data, '_blank');
}
}
} else {
setJumpLoading(false);
jumpProgressEnd();
}
}
});
});
}
}
...
@@ -220,7 +254,9 @@ const IntegratedSwitch = props => {
...
@@ -220,7 +254,9 @@ const IntegratedSwitch = props => {
</Tooltip>
</Tooltip>
</div>
</div>
</li>
</li>
{dataList.map(item => (
{dataList.map(item => {
if (item.subType === '内链' && item.appKey === props?.global?.client) return null;
return (
<li className={styles.switchPageLi} key={item.name} onClick={event => handlePage(item, loginAction)}>
<li className={styles.switchPageLi} key={item.name} onClick={event => handlePage(item, loginAction)}>
<div className={styles.switchPageList}>
<div className={styles.switchPageList}>
<Tooltip placement="top" title={item.name}>
<Tooltip placement="top" title={item.name}>
...
@@ -231,7 +267,8 @@ const IntegratedSwitch = props => {
...
@@ -231,7 +267,8 @@ const IntegratedSwitch = props => {
</Tooltip>
</Tooltip>
</div>
</div>
</li>
</li>
))}
);
})}
</ul>
</ul>
</div>
</div>
) : null;
) : null;
...
...
This diff is collapsed.
Click to expand it.
src/containers/App/store/actions.js
View file @
15916b72
...
@@ -229,6 +229,7 @@ export function logout(data) {
...
@@ -229,6 +229,7 @@ export function logout(data) {
sessionStorage
.
setItem
(
'client'
,
integrationClient
);
sessionStorage
.
setItem
(
'client'
,
integrationClient
);
}
}
localStorage
.
removeItem
(
'integrationClient'
);
localStorage
.
removeItem
(
'integrationClient'
);
localStorage
.
removeItem
(
'integrationData'
);
localStorage
.
removeItem
(
'access_token'
);
localStorage
.
removeItem
(
'access_token'
);
localStorage
.
removeItem
(
'password_token'
);
localStorage
.
removeItem
(
'password_token'
);
localStorage
.
removeItem
(
'password_pwdRegex'
);
localStorage
.
removeItem
(
'password_pwdRegex'
);
...
...
This diff is collapsed.
Click to expand it.
src/layouts/BasicLayout.js
View file @
15916b72
This diff is collapsed.
Click to expand it.
src/pages/bootpage/template/integrationNew/index.js
View file @
15916b72
...
@@ -9,6 +9,7 @@ import { connect } from 'react-redux';
...
@@ -9,6 +9,7 @@ import { connect } from 'react-redux';
import
{
actionCreators
}
from
'@/containers/App/store'
;
import
{
actionCreators
}
from
'@/containers/App/store'
;
import
axios
from
'axios'
;
import
axios
from
'axios'
;
import
{
getImageUrl
}
from
'@/utils/utils'
;
import
{
getImageUrl
}
from
'@/utils/utils'
;
import
{
getUserInfo
,
getWebSiteConfig
}
from
'@/api/service/base'
;
import
{
FullscreenExitOutlined
,
FullscreenOutlined
}
from
'@ant-design/icons'
;
import
{
FullscreenExitOutlined
,
FullscreenOutlined
}
from
'@ant-design/icons'
;
import
{
message
,
Button
}
from
'antd'
;
import
{
message
,
Button
}
from
'antd'
;
...
@@ -100,7 +101,7 @@ const IntegrationNew = props => {
...
@@ -100,7 +101,7 @@ const IntegrationNew = props => {
})
})
.
then
(
res1
=>
{
.
then
(
res1
=>
{
const
list
=
res1
.
data
||
[];
const
list
=
res1
.
data
||
[];
list
.
length
&&
localStorage
.
setItem
(
'integrationData'
,
JSON
.
stringify
(
list
));
setIntegrationData
(
list
);
setIntegrationData
(
list
);
});
});
};
};
...
@@ -175,11 +176,24 @@ const IntegrationNew = props => {
...
@@ -175,11 +176,24 @@ const IntegrationNew = props => {
}
}
};
};
const
toClient
=
(
item
,
loginA
)
=>
{
const
toClient
=
async
(
item
,
loginA
)
=>
{
const
token
=
props
.
global
?.
token
||
Cookies
.
get
(
'token'
);
const
cli
=
item
.
appKey
;
const
res
=
await
getWebSiteConfig
({
identity
:
token
,
client
:
cli
,
});
if
(
!
res
?.
data
?.[
0
]?.
widgets
?.
length
)
{
message
.
error
({
duration
:
3
,
content
:
'您没有该板块权限,请联系管理员'
,
});
return
;
}
if
(
window
.
qiankunIsCache
)
{
if
(
window
.
qiankunIsCache
)
{
store
.
set
(
'event:dropCache'
);
store
.
set
(
'event:dropCache'
);
}
}
const
cli
=
item
.
appKey
;
Cookies
.
set
(
'client'
,
cli
,
{
Cookies
.
set
(
'client'
,
cli
,
{
expires
:
86400000
/
(
24
*
60
*
60
*
1000
),
expires
:
86400000
/
(
24
*
60
*
60
*
1000
),
path
:
'/'
,
path
:
'/'
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment