diff --git a/src/api/user.js b/src/api/user.js
index 5472ce1..ae41c7c 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -37,12 +37,13 @@ export const loginBySocial = (tenantId, source, code, state) => request({
}
})
-export const refreshToken = (refresh_token, tenantId, deptId) => request({
+export const refreshToken = (refresh_token, tenantId, deptId, roleId) => request({
url: '/api/blade-auth/oauth/token',
method: 'post',
headers: {
'Tenant-Id': tenantId,
- 'Dept-Id': (website.switchMode ? deptId : '')
+ 'Dept-Id': (website.switchMode ? deptId : ''),
+ 'Role-Id': (website.switchMode ? roleId : '')
},
params: {
tenantId,
diff --git a/src/lang/en.js b/src/lang/en.js
index 00a65d0..4518861 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -88,6 +88,7 @@ export default {
info: 'info',
logOut: 'logout',
userinfo: 'userinfo',
+ switchDept : 'switch dept',
dashboard: 'dashboard',
lock: 'lock',
bug: 'none bug',
diff --git a/src/lang/zh.js b/src/lang/zh.js
index 56d4519..e95b7d7 100644
--- a/src/lang/zh.js
+++ b/src/lang/zh.js
@@ -87,6 +87,7 @@ export default {
navbar: {
logOut: '退出登录',
userinfo: '个人信息',
+ switchDept : '部门切换',
dashboard: '首页',
lock: '锁屏',
bug: '没有错误日志',
diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index 7e480e1..c7253c6 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -88,11 +88,20 @@
{{$t('navbar.userinfo')}}
+ {{$t('navbar.switchDept')}}
+
{{$t('navbar.logOut')}}
+
+
+
@@ -122,7 +131,55 @@
},
name: "top",
data() {
- return {};
+ return {
+ userBox: false,
+ userForm: {
+ deptId: '',
+ roleId: ''
+ },
+ userOption: {
+ labelWidth: 70,
+ submitBtn: true,
+ emptyBtn: false,
+ submitText: '切换',
+ column: [
+ {
+ label: '部门',
+ prop: 'deptId',
+ type: 'select',
+ props: {
+ label: 'deptName',
+ value: 'id'
+ },
+ dicUrl: '/api/blade-system/dept/select',
+ span: 24,
+ display: false,
+ rules: [{
+ required: true,
+ message: "请选择部门",
+ trigger: "blur"
+ }],
+ },
+ {
+ label: '角色',
+ prop: 'roleId',
+ type: 'select',
+ props: {
+ label: 'roleName',
+ value: 'id'
+ },
+ dicUrl: '/api/blade-system/role/select',
+ span: 24,
+ display: false,
+ rules: [{
+ required: true,
+ message: "请选择角色",
+ trigger: "blur"
+ }],
+ },
+ ]
+ }
+ };
},
filters: {},
created() {
@@ -162,6 +219,22 @@
setScreen() {
this.$store.commit("SET_FULLSCREN");
},
+ switchDept() {
+ const userId = this.userInfo.user_id;
+ const deptColumn = this.findObject(this.userOption.column, "deptId");
+ deptColumn.dicUrl = `/api/blade-system/dept/select?userId=${userId}`;
+ deptColumn.display = true;
+ const roleColumn = this.findObject(this.userOption.column, "roleId");
+ roleColumn.dicUrl = `/api/blade-system/role/select?userId=${userId}`;
+ roleColumn.display = true;
+ this.userBox = true;
+ },
+ submitSwitch (form, done) {
+ this.$store.dispatch("refreshToken", form).then(() => {
+ this.userBox = false;
+ })
+ done();
+ },
logout() {
this.$confirm(this.$t("logoutTip"), this.$t("tip"), {
confirmButtonText: this.$t("submitText"),
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 670bfd7..6a7989c 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -115,10 +115,13 @@ const user = {
})
},
//刷新token
- refreshToken({state, commit}) {
- window.console.log('handle refresh token')
+ refreshToken({state, commit}, userInfo) {
+ window.console.log('handle refresh token');
return new Promise((resolve, reject) => {
- refreshToken(state.refreshToken, state.tenantId, state.userInfo.dept_id).then(res => {
+ refreshToken(state.refreshToken, state.tenantId,
+ !validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id,
+ !validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id
+ ).then(res => {
const data = res.data;
commit('SET_TOKEN', data.access_token);
commit('SET_REFRESH_TOKEN', data.refresh_token);