ZaiZai 1 рік тому
батько
коміт
6bf3f7699b

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20240131110857"
+  "value": "20240131153311"
 }

+ 15 - 8
src/api/request/header.js

@@ -1,16 +1,23 @@
-import {Base64} from 'js-base64';
-import website from '~src/config';
-import {getToken} from '~src/api/util/auth';
+import pinia from '~src/store/init'
+import { useAppStore } from '~src/store'
+import { Base64 } from 'js-base64'
+import website from '~src/config'
+import { getToken } from '~src/api/util/auth'
 
-export function getTokenHeader(text= false) {
-    let headers = {};
-    headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+//初始变量
+const store = useAppStore(pinia)
+
+export function getTokenHeader(text = false) {
+    let headers = {}
+    headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`
+    headers['Client-Id'] = website.clientId
+    headers['Tenant-Id'] = store.tenantId
     //让每个请求携带token
     const token = getToken()
     if (token) headers[website.tokenHeader] = 'bearer ' + token
     //headers中配置text请求
     if (text === true) {
-        headers["Content-Type"] = "text/plain";
+        headers['Content-Type'] = 'text/plain'
     }
-    return headers;
+    return headers
 }

+ 10 - 0
src/api/request/httpApi.js

@@ -1,10 +1,20 @@
 import request from './index'
+import pinia from '~src/store/init'
+import { useAppStore } from '~src/store'
 import { getObjValue } from 'js-fast-way'
 import { apiErrorMessage, apiWarningMessage } from '~com/message/index.js'
+import website from '~src/config'
+
+//初始变量
+const store = useAppStore(pinia)
 
 //封装的请求
 export const httpApi = async (obj, message = true) => {
     return new Promise((resolve) => {
+        //处理统一的请求头
+        obj.headers = obj.headers ?? {}
+        obj.headers['Client-Id'] = obj.headers['Client-Id'] ?? website.clientId
+        obj.headers['Tenant-Id'] = obj.headers['Tenant-Id'] ?? store.tenantId
         //发起请求
         request(obj).then(async (response) => {
             resolve(await getResData(response, false))

+ 19 - 6
src/views/home/auth.vue

@@ -16,11 +16,12 @@
 <script setup>
 import { onMounted, ref } from 'vue'
 import { useAppStore } from '~src/store'
-import { loginByToken } from '~api/user'
+import { getTenantID, loginByToken } from '~api/user'
 import { setUserAppInfo, setUserTenantInfo } from '~sto/user'
 import { useRoute, useRouter } from 'vue-router'
-import { getObjVal, isNullES } from 'js-fast-way'
+import { getObjVal, getObjValue, isNullES } from 'js-fast-way'
 import svg403 from '~src/assets/view/403.svg'
+import { getTopUrl } from '~uti/tools'
 
 //初始变量
 const router = useRouter()
@@ -36,18 +37,30 @@ onMounted(() => {
     //先清理下缓存
     store.clearStoreData()
     // http://档案的域名/#/auth-token?token=xxxxxxx
-    const token = useRoutes?.query?.token
+    const { token, tenantid } = getObjValue(useRoutes.query)
     if (!isNullES(token)) {
         isErrorShow.value = false
-        loginByTokenApi({
-            token: token,
-        })
+        setLoginByTokenData(token, tenantid)
     } else {
         loading.value = false
         isErrorShow.value = true
     }
 })
 
+//获取租户id
+const getTenantIdApi = async () => {
+    const { data } = await getTenantID(getTopUrl())
+    const { id } = await setUserTenantInfo(getObjVal(data))
+    return id
+}
+
+//设置租户信息
+const setLoginByTokenData = async (token, tenant_id) => {
+    const tenantIds = await getTenantIdApi()
+    const tenantId = tenant_id ? tenant_id : tenantIds
+    await loginByTokenApi({ token, tenantId })
+}
+
 //请求授权登录
 const loginByTokenApi = async (form) => {
     await setUserTenantInfo()

+ 16 - 4
src/views/user/auth.vue

@@ -18,9 +18,11 @@ import { onMounted, ref } from 'vue'
 import { useAppStore } from '~src/store'
 import { setUserTenantInfo, useAppLogin } from '~sto/user'
 import { useRoute, useRouter } from 'vue-router'
-import { getObjValue, isNullES } from 'js-fast-way'
+import { getObjVal, getObjValue, isNullES } from 'js-fast-way'
 import svg403 from '~src/assets/view/403.svg'
 import userApi from '~api/userInfo'
+import { getTenantID } from '~api/user'
+import { getTopUrl } from '~uti/tools'
 
 //初始变量
 const router = useRouter()
@@ -40,16 +42,26 @@ onMounted(() => {
     if (token) {
         isErrorShow.value = false
         store.setTokenVal(token)
-        queryCurrentUserData(tenantid ?? '000000')
+        queryCurrentUserData(tenantid)
     } else {
         loading.value = false
         isErrorShow.value = true
     }
 })
 
+
+//获取租户id
+const getTenantIdApi = async () => {
+    const { data } = await getTenantID(getTopUrl())
+    const { id } = await setUserTenantInfo(getObjVal(data))
+    return id
+}
+
 //获取用户信息
-const queryCurrentUserData = async (tenantId) => {
-    await setUserTenantInfo()
+const queryCurrentUserData = async (tenant_id) => {
+    await getTenantIdApi()
+    const tenantIds = await getTenantIdApi()
+    const tenantId = tenant_id ? tenant_id : tenantIds
     const { error, code, data } = await userApi.queryCurrentUserData()
     if (!error && code === 200) {
         await useAppLoginApi({