feat: 完成前端切换功能

This commit is contained in:
橙子
2024-02-09 16:52:17 +08:00
parent 36f72c857d
commit 58fceea247
7 changed files with 38 additions and 11 deletions

View File

View File

@@ -1,5 +1,5 @@
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import { getToken, setToken, removeToken,getTenantId,setTenantId,removeTenantId } from '@/utils/auth'
import defAva from '@/assets/images/profile.jpg'
const useUserStore = defineStore(
@@ -10,21 +10,28 @@ const useUserStore = defineStore(
name: '',
avatar: '',
roles: [],
permissions: []
permissions: [],
tenantId:getTenantId()
}),
actions: {
// 登录
login(userInfo) {
login(userInfo,tenantId) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
//登录之前先设置租户id用户登录接口的请求设置
setTenantId(tenantId);
this.tenantId=tenantId;
return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => {
setToken(res.data.token);
this.token = res.data.token;
resolve();
}).catch(error => {
removeTenantId();
this.tenantId=null;
reject(error)
})
})
@@ -68,6 +75,7 @@ const useUserStore = defineStore(
this.roles = []
this.permissions = []
removeToken()
removeTenantId()
resolve()
}).catch(error => {
reject(error)

View File

@@ -1,7 +1,7 @@
import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token'
const TenantIdKey='Tenant-Id'
export function getToken() {
return Cookies.get(TokenKey)
}
@@ -13,3 +13,14 @@ export function setToken(token) {
export function removeToken() {
return Cookies.remove(TokenKey)
}
export function getTenantId() {
return Cookies.get(TenantIdKey)
}
export function setTenantId(tenantId) {
return Cookies.set(TenantIdKey, tenantId)
}
export function removeTenantId() {
return Cookies.remove(TenantIdKey)
}

View File

@@ -1,6 +1,6 @@
import axios from 'axios'
import { ElNotification, ElMessageBox, ElMessage, ElLoading } from 'element-plus'
import { getToken } from '@/utils/auth'
import { getToken,getTenantId } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import { tansParams, blobValidate } from '@/utils/ruoyi'
import cache from '@/plugins/cache'
@@ -67,7 +67,12 @@ service.interceptors.request.use(config => {
if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
console.log(getTenantId(),"uuu");
if(getTenantId()!==undefined&&getTenantId()!==null&&getTenantId()!=='null')
{
console.log('爆炸');
config.headers['__tenant'] = getTenantId()
}
// get请求映射params参数
if (config.method === 'get' && config.params) {

View File

@@ -43,7 +43,7 @@
<el-form-item>
<span>当前租户</span>
<el-select
v-model="tenantSelectedId"
v-model="tenantSelected"
class="m-2"
placeholder="租户选择"
style="width: 80%"
@@ -52,7 +52,7 @@
v-for="item in tenantList"
:key="item.id"
:label="item.name"
:value="item.id"
:value="item.name"
/>
</el-select>
@@ -95,13 +95,13 @@ const userStore = useUserStore()
const router = useRouter();
const { proxy } = getCurrentInstance();
const tenantSelectedId=ref('defalut');
const tenantSelected=ref('defalut');
const loginForm = ref({
username: "",
password: "",
rememberMe: false,
code: "",
uuid: ""
uuid: "",
});
const loginRules = {
@@ -137,7 +137,10 @@ function handleLogin() {
Cookies.remove("rememberMe");
}
// 调用action的登录方法
userStore.login(loginForm.value).then(() => {
const currentTenantId=tenantList.value.filter(x=>x.name==tenantSelected.value)[0]?.id??null;
console.log(currentTenantId,'currentTenantId')
userStore.login(loginForm.value,currentTenantId).then(() => {
router.push({ path: redirect.value || "/" });
}).catch(() => {
loading.value = false;