feat: 完成前端切换功能
This commit is contained in:
Binary file not shown.
0
Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db
Normal file
0
Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db
Normal file
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
import { login, logout, getInfo } from '@/api/login'
|
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'
|
import defAva from '@/assets/images/profile.jpg'
|
||||||
|
|
||||||
const useUserStore = defineStore(
|
const useUserStore = defineStore(
|
||||||
@@ -10,21 +10,28 @@ const useUserStore = defineStore(
|
|||||||
name: '',
|
name: '',
|
||||||
avatar: '',
|
avatar: '',
|
||||||
roles: [],
|
roles: [],
|
||||||
permissions: []
|
permissions: [],
|
||||||
|
tenantId:getTenantId()
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
// 登录
|
// 登录
|
||||||
login(userInfo) {
|
login(userInfo,tenantId) {
|
||||||
const username = userInfo.username.trim()
|
const username = userInfo.username.trim()
|
||||||
const password = userInfo.password
|
const password = userInfo.password
|
||||||
const code = userInfo.code
|
const code = userInfo.code
|
||||||
const uuid = userInfo.uuid
|
const uuid = userInfo.uuid
|
||||||
|
|
||||||
|
//登录之前先设置租户id,用户登录接口的请求设置
|
||||||
|
setTenantId(tenantId);
|
||||||
|
this.tenantId=tenantId;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
login(username, password, code, uuid).then(res => {
|
login(username, password, code, uuid).then(res => {
|
||||||
setToken(res.data.token);
|
setToken(res.data.token);
|
||||||
this.token = res.data.token;
|
this.token = res.data.token;
|
||||||
resolve();
|
resolve();
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
removeTenantId();
|
||||||
|
this.tenantId=null;
|
||||||
reject(error)
|
reject(error)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -68,6 +75,7 @@ const useUserStore = defineStore(
|
|||||||
this.roles = []
|
this.roles = []
|
||||||
this.permissions = []
|
this.permissions = []
|
||||||
removeToken()
|
removeToken()
|
||||||
|
removeTenantId()
|
||||||
resolve()
|
resolve()
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
reject(error)
|
reject(error)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
const TokenKey = 'Admin-Token'
|
const TokenKey = 'Admin-Token'
|
||||||
|
const TenantIdKey='Tenant-Id'
|
||||||
export function getToken() {
|
export function getToken() {
|
||||||
return Cookies.get(TokenKey)
|
return Cookies.get(TokenKey)
|
||||||
}
|
}
|
||||||
@@ -13,3 +13,14 @@ export function setToken(token) {
|
|||||||
export function removeToken() {
|
export function removeToken() {
|
||||||
return Cookies.remove(TokenKey)
|
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)
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { ElNotification, ElMessageBox, ElMessage, ElLoading } from 'element-plus'
|
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 errorCode from '@/utils/errorCode'
|
||||||
import { tansParams, blobValidate } from '@/utils/ruoyi'
|
import { tansParams, blobValidate } from '@/utils/ruoyi'
|
||||||
import cache from '@/plugins/cache'
|
import cache from '@/plugins/cache'
|
||||||
@@ -67,7 +67,12 @@ service.interceptors.request.use(config => {
|
|||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
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参数
|
// get请求映射params参数
|
||||||
if (config.method === 'get' && config.params) {
|
if (config.method === 'get' && config.params) {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<span>当前租户:</span>
|
<span>当前租户:</span>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="tenantSelectedId"
|
v-model="tenantSelected"
|
||||||
class="m-2"
|
class="m-2"
|
||||||
placeholder="租户选择"
|
placeholder="租户选择"
|
||||||
style="width: 80%"
|
style="width: 80%"
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
v-for="item in tenantList"
|
v-for="item in tenantList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
:value="item.id"
|
:value="item.name"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
@@ -95,13 +95,13 @@ const userStore = useUserStore()
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const tenantSelectedId=ref('defalut');
|
const tenantSelected=ref('defalut');
|
||||||
const loginForm = ref({
|
const loginForm = ref({
|
||||||
username: "",
|
username: "",
|
||||||
password: "",
|
password: "",
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: "",
|
code: "",
|
||||||
uuid: ""
|
uuid: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const loginRules = {
|
const loginRules = {
|
||||||
@@ -137,7 +137,10 @@ function handleLogin() {
|
|||||||
Cookies.remove("rememberMe");
|
Cookies.remove("rememberMe");
|
||||||
}
|
}
|
||||||
// 调用action的登录方法
|
// 调用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 || "/" });
|
router.push({ path: redirect.value || "/" });
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user