Explorar el Código

优化第三方

ZaiZai hace 1 año
padre
commit
cd05a26d30
Se han modificado 4 ficheros con 45 adiciones y 11 borrados
  1. 10 0
      src/api/request/index.js
  2. 1 1
      src/router/index.js
  3. 19 6
      src/views/home/auth.vue
  4. 15 4
      src/views/user/auth.vue

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

@@ -1,9 +1,19 @@
 import { httpApi } from 'hc-vue3-ui'
 import router from '~src/router/index'
+import pinia from '~src/store/init'
+import { useAppStore } from '~src/store'
+import website from '~src/config'
+
+//初始变量
+const store = useAppStore(pinia)
 
 //封装的请求
 export const HcApi = async (obj, msg = 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
         //发起请求
         httpApi(obj).then((response) => {
             //console.log(response)

+ 1 - 1
src/router/index.js

@@ -14,7 +14,7 @@ const router = vueRouter.createRouter({
 //路由拦截
 router.beforeResolve(async (to) => {
     NProgress.start()
-    const token = getToken(), auth = ['/login', '/auth']
+    const token = getToken(), auth = ['/login', '/auth', '/auth-token']
     if (auth.indexOf(to.path) !== -1) {
         return true
     } else if (!token) {

+ 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 { useRoute, useRouter } from 'vue-router'
 import svg403 from '~src/assets/view/403.svg'
 import { setUserAppInfo, setUserTenantInfo } from '~sto/user'
 import { getObjVal, getObjValue, isNullES } from 'js-fast-way'
+import { getTopUrl } from '~uti/tools'
 
 //初始变量
 const router = useRouter()
@@ -36,21 +37,33 @@ onMounted(() => {
     //先清理下缓存
     store.clearStoreData()
     // http://档案的域名/#/auth-token?token=xxxxxxx
-    const { token } = getObjValue(useRoutes.query)
+    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()
     const { error, code, data } = await loginByToken(form)
     const res = getObjVal(data)
     if (!error && code === 200 && res) {

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

@@ -15,13 +15,15 @@
 
 <script setup>
 import { onMounted, ref } from 'vue'
+import { getTenantID } from '~api/user'
 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 { getTopUrl } from '~uti/tools'
 
 //初始变量
 const router = useRouter()
@@ -41,16 +43,25 @@ 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({