From 58fceea247453dddf4b2e16bdde3063eec44d351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Fri, 9 Feb 2024 16:52:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Abp.Net8/src/Yi.Abp.Web/yi-abp-dev.db | Bin 405504 -> 405504 bytes Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db | 0 Yi.Abp.Net8/src/Yi.Abp.Web/yi-test2.db | Bin 409600 -> 409600 bytes Yi.RuoYi.Vue3/src/store/modules/user.js | 14 +++++++++++--- Yi.RuoYi.Vue3/src/utils/auth.js | 13 ++++++++++++- Yi.RuoYi.Vue3/src/utils/request.js | 9 +++++++-- Yi.RuoYi.Vue3/src/views/login.vue | 13 ++++++++----- 7 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/yi-abp-dev.db b/Yi.Abp.Net8/src/Yi.Abp.Web/yi-abp-dev.db index 8d01d76f7724be9b69fa3ec65294d9c264155355..d7e0338306df3ee51ed6fc28a5d615dd4bbe18d0 100644 GIT binary patch delta 2280 zcma)+O=ule7=|;=kIBuw%_@o!)G?9f0=&xp7*A9 zr_N1&Jef>9J$`-szC$lY-$p05x^sU%{>n}}TG9d{Cmbxa zqL3CCX-|RLRKGm&9N7#-HP*zly| zr8K;NMi>h{A|4i$?AK=y5~Rh$IiVS$Oe@0ceis@Z#u~AzG+ioz=wJr|)@=xkBK z(qRl4G5hzYvDEq?kLVn$3?t6M^s0UzTbXNk$XFp*04N%|bjm7d3%%d3k{;0(PvumH z`BH}1R`l0XkAj9KOrf0#<77mIk1iPGNV{RTiYRUFpka||LOD@emv+yeSxFn5EW9^G z5sE84hMutkI!VhJy;(mIYwE?8e>A%^>rGa*QzW;;UUL`gu+k+jk9dX3%6Rf9t*}f zu3YBRM6_yy5hFd5w8up77Qm9=Y${ETKW)x{!*EikpghfRuDTl;{ zR=Lq(&6pC`^*Qgca0kN6b4GK*GlscPYOmkzjoYtHkY0RtEO|cuBe|I_C69pb!G+{# z`cv{w`dM;4ekuM2ybfm5)%Yr4>1KR3y$C+s?#>;FuYB=DG|?YrW%eEzUyDZBh0B$3 zlqI*cM-1Dm|9|Uiv2u>Gmli7HC<|x4G7dLM|G!pAw{niMBj)!0Jwp6JW&CHb`~Q~g zv~rFT*`zX#lEt_(wnNsxTgqlD=P2>%RK`(qF;f}u_TZP=FMhgmZoPH;__Yp*ZXF{% zus#NEf#1PR@H6-kd2XA_m@k&$w5GZf-wk*#Vp_a&un!Nti|H65W(BoT@*w?1uMzfT&;x! zAs~XKpdk>5K}aX*?7TuOgi9L1!p=tLSkEO_=)tnZ+k7z3zTY#`>n-(qOHa;t=IPmW z&urg#^?kA47|ft+&E00})b05X^DA?Y8iSqI!a-x>@k+hXS#PbLJAM9Qhbbc?unH@i z0H!ugFr|WE)+Jz4W+jay3Y24@7|b$}p@5LmKnSCil-3??y&i78#V(Gv-Vv$-a38t+ z;AV2~>a9ER-G}#=30Qmle1G`<+40W)acTd>=I3AD1;2%3`8Pgc*Pyb1+WGB!}Az55ScsH7V9dIp;_vND!Q2Vi@3*$`lJh9Zcp2 z11|YQ9}t2L1lLq@Q;fsUIifU?LJ^CNjSObO63lJ%cP~J=JMe_3%&95^0OPbO=tn8% zU{Vs6aEpcO1*?c8n2?13>4V0aX)(dULr{TM%85;j_2K0lf*VOlByr@<#7V3ZEF!0E zwig;h9McI77BUqmE~PdF{8(G8H}__mU(uW99vUEy`e+VacQ4D!=H|f_ue>qMi&9_n zJKi)`zBU@1=1x{egQH8c@xNPB8BI>3b$K*6jd%WNa4g29f07&SyZ#AWKqt-&!SZETeH^o+g`t2>bL!V JyWDSAegl{-?UMii delta 50 zcmZo@kZfp>oFL6;I8nx#(QsqJlJ}cg1pdlzXB1#$Rsb^p@V7ZIwmC4hIWV_5u(Ua_ F0sy0X4`cuU diff --git a/Yi.RuoYi.Vue3/src/store/modules/user.js b/Yi.RuoYi.Vue3/src/store/modules/user.js index 621e3224..10cad31e 100644 --- a/Yi.RuoYi.Vue3/src/store/modules/user.js +++ b/Yi.RuoYi.Vue3/src/store/modules/user.js @@ -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) diff --git a/Yi.RuoYi.Vue3/src/utils/auth.js b/Yi.RuoYi.Vue3/src/utils/auth.js index 08a43d6e..ca2c6e4f 100644 --- a/Yi.RuoYi.Vue3/src/utils/auth.js +++ b/Yi.RuoYi.Vue3/src/utils/auth.js @@ -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) +} diff --git a/Yi.RuoYi.Vue3/src/utils/request.js b/Yi.RuoYi.Vue3/src/utils/request.js index 2dbf706c..7d755f7b 100644 --- a/Yi.RuoYi.Vue3/src/utils/request.js +++ b/Yi.RuoYi.Vue3/src/utils/request.js @@ -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) { diff --git a/Yi.RuoYi.Vue3/src/views/login.vue b/Yi.RuoYi.Vue3/src/views/login.vue index af637836..e9c8433e 100644 --- a/Yi.RuoYi.Vue3/src/views/login.vue +++ b/Yi.RuoYi.Vue3/src/views/login.vue @@ -43,7 +43,7 @@ 当前租户: @@ -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;