Commit 87ade056 by yuzhenWang

非超级管理员加产品--选择平台参数

parent d6b27755
import router from '@/router'
import { ElMessageBox, } from 'element-plus'
import { ElMessageBox } from 'element-plus'
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import { isHttp, isEmpty } from "@/utils/validate"
import { isHttp, isEmpty } from '@/utils/validate'
import defAva from '@/assets/images/profile.jpg'
import usePermissionStore from '@/store/modules/permission'
const useUserStore = defineStore(
'user',
{
state: () => ({
token: getToken(),
id: '',
name: '',
nickName: '',
avatar: '',
isSuperAdmin: 0,
roles: [],
permissions: [],
tenants: [], // 新增租户列表
currentTenant: null // 新增当前租户
}),
actions: {
// 登录
login(userInfo) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => {
const useUserStore = defineStore('user', {
state: () => ({
token: getToken(),
id: '',
name: '',
nickName: '',
avatar: '',
isSuperAdmin: 0,
roles: [],
permissions: [],
tenants: [], // 新增租户列表
currentTenant: null // 新增当前租户
}),
actions: {
// 登录
login(userInfo) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
return new Promise((resolve, reject) => {
login(username, password, code, uuid)
.then(res => {
setToken(res.data.token)
this.token = res.data.token
resolve()
}).catch(error => {
})
.catch(error => {
reject(error)
})
})
},
// 获取用户信息
getInfo() {
return new Promise((resolve, reject) => {
getInfo().then(res => {
})
},
// 获取用户信息
getInfo() {
return new Promise((resolve, reject) => {
getInfo()
.then(res => {
const user = res.data.apiLoginUserInfoResponse
let avatar = user.avatar || ""
let avatar = user.avatar || ''
if (!isHttp(avatar)) {
avatar = (isEmpty(avatar)) ? defAva : import.meta.env.VITE_APP_BASE_API + avatar
avatar = isEmpty(avatar) ? defAva : import.meta.env.VITE_APP_BASE_API + avatar
}
// 设置租户列表
this.tenants = res.data.apiLoginTenantResponseList || []
// 尝试从本地存储获取当前租户,否则使用第一个
const savedTenant = JSON.parse(localStorage.getItem('' +
''))
const savedTenant = JSON.parse(localStorage.getItem('' + ''))
const currentTenant = savedTenant || (this.tenants.length > 0 ? this.tenants[0] : null)
if (currentTenant) {
......@@ -74,51 +74,61 @@ const useUserStore = defineStore(
this.nickName = user.nickName
this.avatar = avatar
this.isSuperAdmin = user.isSuperAdmin
console.log('====================================')
console.log('user', user)
console.log('====================================')
/* 初始密码提示 */
if(res.data.isDefaultModifyPwd) {
ElMessageBox.confirm('您的密码还是初始密码,请修改密码!', '安全提示', {
if (res.data.isDefaultModifyPwd) {
ElMessageBox.confirm('您的密码还是初始密码,请修改密码!', '安全提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
}).catch(() => {})
})
.then(() => {
router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
})
.catch(() => {})
}
/* 过期密码提示 */
if(!res.data.isDefaultModifyPwd && res.isPasswordExpired) {
ElMessageBox.confirm('您的密码已过期,请尽快修改密码!', '安全提示', {
if (!res.data.isDefaultModifyPwd && res.isPasswordExpired) {
ElMessageBox.confirm('您的密码已过期,请尽快修改密码!', '安全提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
}).catch(() => {})
})
.then(() => {
router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
})
.catch(() => {})
}
resolve(res)
}).catch(error => {
})
.catch(error => {
reject(error)
})
})
},
//切换租户
switchTenant(tenant) {
return new Promise((resolve) => {
this.currentTenant = tenant
localStorage.setItem('currentTenant', JSON.stringify(tenant))
})
},
//切换租户
switchTenant(tenant) {
return new Promise(resolve => {
this.currentTenant = tenant
localStorage.setItem('currentTenant', JSON.stringify(tenant))
// 保存租户ID到专用字段
localStorage.setItem('selectedTenantId', tenant.apiLoginTenantInfoResponse.tenantBizId)
// 保存租户ID到专用字段
localStorage.setItem('selectedTenantId', tenant.apiLoginTenantInfoResponse.tenantBizId)
// 更新角色和权限
if (tenant.roles && tenant.roles.length > 0) {
this.roles = tenant.roles
this.permissions = tenant.permissions
} else {
this.roles = ['ROLE_DEFAULT']
}
// 更新角色和权限
if (tenant.roles && tenant.roles.length > 0) {
this.roles = tenant.roles
this.permissions = tenant.permissions
} else {
this.roles = ['ROLE_DEFAULT']
}
usePermissionStore().generateRoutes().then(accessRoutes => {
usePermissionStore()
.generateRoutes()
.then(accessRoutes => {
// 移除旧路由
const currentRoutes = router.getRoutes()
currentRoutes.forEach(route => {
......@@ -139,35 +149,35 @@ const useUserStore = defineStore(
// window.location.reload() // 确保完全刷新
// })
})
router.push('/workbench')
})
},
// 退出系统
logOut() {
return new Promise((resolve, reject) => {
this.token = ''
this.roles = []
this.permissions = []
this.tenants = []
this.currentTenant = null
removeToken()
localStorage.removeItem('currentTenant')
resolve()
// logout(this.token).then(() => {
// this.token = ''
// this.roles = []
// this.permissions = []
// this.tenants = []
// this.currentTenant = null
// removeToken()
// localStorage.removeItem('currentTenant')
// resolve()
// }).catch(error => {
// reject(error)
// })
})
}
router.push('/workbench')
})
},
// 退出系统
logOut() {
return new Promise((resolve, reject) => {
this.token = ''
this.roles = []
this.permissions = []
this.tenants = []
this.currentTenant = null
removeToken()
localStorage.removeItem('currentTenant')
resolve()
// logout(this.token).then(() => {
// this.token = ''
// this.roles = []
// this.permissions = []
// this.tenants = []
// this.currentTenant = null
// removeToken()
// localStorage.removeItem('currentTenant')
// resolve()
// }).catch(error => {
// reject(error)
// })
})
}
})
}
})
export default useUserStore
......@@ -895,6 +895,7 @@ import useUserStore from '@/store/modules/user'
import { ref, computed, watch, nextTick } from 'vue'
import ImageUpload from '@/components/ImageUpload/index.vue' //图片上传组件
import CategoryTable from '@/components/CategoryTable/index.vue' //图片上传组件
const emit = defineEmits(['handleSuccess'])
const props = defineProps({
// 类型,是新增还是编辑,
......@@ -1105,7 +1106,9 @@ const confirmPlatform = () => {
const choosePlatform = async () => {
platFormOpen.value = true
platFormQueryParams.value.pageNo = 1
if (userStore.isSuperAdmin == '0') {
platFormQueryParams.value.loginTenantBizId = userStore.currentTenant.apiLoginTenantInfoResponse.tenantBizId
}
// 获取列表数据
await getPlatFormList()
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment