瀏覽代碼

升级依赖

ZaiZai 2 年之前
父節點
當前提交
23f3b681e3
共有 6 個文件被更改,包括 133 次插入24 次删除
  1. 1 1
      package.json
  2. 1 1
      src/router/index.js
  3. 6 0
      src/router/modules/base.js
  4. 98 0
      src/views/login/auth.vue
  5. 23 18
      src/views/user/auth.vue
  6. 4 4
      yarn.lock

+ 1 - 1
package.json

@@ -18,7 +18,7 @@
         "dayjs": "^1.11.9",
         "echarts": "^5.4.3",
         "element-plus": "2.3.8",
-        "hc-vue3-ui": "^1.7.9",
+        "hc-vue3-ui": "^1.8.0",
         "js-base64": "^3.7.5",
         "js-cookie": "^3.0.5",
         "js-fast-way": "0.2.5",

+ 1 - 1
src/router/index.js

@@ -17,7 +17,7 @@ router.beforeResolve(async (to) => {
     const token = getToken()
     if (to.path === '/login') {
         return true
-    } else if (to.path === '/auth') {
+    } else if (to.path === '/auth' || to.path === '/app-auth') {
         return true
     } else if (!token) {
         return '/login'

+ 6 - 0
src/router/modules/base.js

@@ -18,6 +18,12 @@ export default [
         meta: { title: '授权登录' },
         component: () => import('~src/views/user/auth.vue'),
     },
+    {
+        path: '/app-auth',
+        name: 'app-auth',
+        meta: { title: '授权入口' },
+        component: () => import('~src/views/login/auth.vue'),
+    },
     {
         path: '/home',
         name: 'home',

+ 98 - 0
src/views/login/auth.vue

@@ -0,0 +1,98 @@
+<template>
+    <div v-loading="loading" class="hc-body-loading" element-loading-text="授权登录中...">
+        <div v-if="isErrorShow" class="error-page">
+            <div class="img" :style="`background-image: url(${svg403});`" />
+            <div class="content">
+                <h1>403</h1>
+                <div class="desc">
+                    抱歉,token授权登录异常,请重新进入
+                </div>
+                <div class="actions">
+                    <el-button type="primary" block size="large" @click="toLoginTap">
+                        手动登录
+                    </el-button>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { onMounted, ref } from 'vue'
+import { useAppStore } from '~src/store'
+import { useAppLogin } from '~sto/user'
+import userApi from '~api/userInfo'
+import { useRoute, useRouter } from 'vue-router'
+import svg403 from '~src/assets/view/403.svg'
+
+//初始变量
+const router = useRouter()
+const useRoutes = useRoute()
+const useAppState = useAppStore()
+
+//变量
+const loading = ref(true)
+const isErrorShow = ref(false)
+
+//渲染完成
+onMounted(() => {
+    // 域名后加  /#/auth?token=xxxxxxx
+    const { token } = useRoutes.query
+    console.log(token)
+    if (token) {
+        isErrorShow.value = false
+        useAppState.setTokenVal(token)
+        queryCurrentUserData()
+    } else {
+        loading.value = false
+        isErrorShow.value = true
+    }
+})
+
+//获取用户信息
+const queryCurrentUserData = async () => {
+    const { error, code, data } = await userApi.queryCurrentUserData()
+    if (!error && code === 200) {
+        await useAppLoginApi({
+            tenantId: '000000',
+            username: data.account,
+            password: data.plaintextPassword,
+            type: 'account',
+        })
+    } else {
+        window.$message?.error('授权信息异常')
+        isErrorShow.value = true
+        loading.value = false
+    }
+}
+
+//请求授权登录
+const useAppLoginApi = async (form) => {
+    loading.value = true
+    useAppLogin(form).then(() => {
+        loading.value = false
+        isErrorShow.value = false
+        window?.$message?.success('授权登录成功')
+        // router.push({path: '/home/index'});
+        router.push({ path: '/using/stats' })//跳转到档案统计页面
+    }).catch(() => {
+        window.$message?.error('授权登录失败')
+        isErrorShow.value = true
+        loading.value = false
+    })
+}
+
+//跳转登陆
+const toLoginTap = () => {
+    router.push({ path: '/login' })
+}
+</script>
+
+<style lang="scss" scoped>
+@import "../../styles/error/style.scss";
+.hc-body-loading {
+    position: relative;
+    height: 100%;
+    width: 100%;
+}
+</style>

+ 23 - 18
src/views/user/auth.vue

@@ -1,12 +1,16 @@
 <template>
     <div v-loading="loading" class="hc-body-loading" element-loading-text="授权登录中...">
         <div v-if="isErrorShow" class="error-page">
-            <div :style="`background-image: url(${svg403});`" class="img"/>
+            <div :style="`background-image: url(${svg403});`" class="img" />
             <div class="content">
                 <h1>403</h1>
-                <div class="desc">抱歉,token授权登录异常,请重新进入</div>
+                <div class="desc">
+                    抱歉,token授权登录异常,请重新进入
+                </div>
                 <div class="actions">
-                    <el-button block size="large" type="primary" @click="toLoginTap">手动登录</el-button>
+                    <el-button block size="large" type="primary" @click="toLoginTap">
+                        手动登录
+                    </el-button>
                 </div>
             </div>
         </div>
@@ -14,14 +18,14 @@
 </template>
 
 <script setup>
-import {ref, onMounted} from "vue";
-import {useAppStore} from "~src/store";
-import {loginByToken} from "~api/user"
-import {setAppName} from "~uti/tools";
-import {useRouter, useRoute} from 'vue-router'
-import svg403 from '~src/assets/view/403.svg';
-import {initUserConfigInfo, setRouterData} from "~sto/user";
-import {getObjVal} from "js-fast-way"
+import { onMounted, ref } from 'vue'
+import { useAppStore } from '~src/store'
+import { loginByToken } from '~api/user'
+import { setAppName } from '~uti/tools'
+import { useRoute, useRouter } from 'vue-router'
+import svg403 from '~src/assets/view/403.svg'
+import { initUserConfigInfo, setRouterData } from '~sto/user'
+import { getObjVal } from 'js-fast-way'
 
 //初始变量
 const router = useRouter()
@@ -38,7 +42,8 @@ const isErrorShow = ref(false)
 //渲染完成
 onMounted(() => {
     // 域名后加  /#/auth?token=xxxxxxx&account=aaaa&timestamp=1670233144838&timeInterval=300&moduleCode=UTF-8
-    const {token, account, timestamp, timeInterval, moduleCode} = useRoutes?.query;
+    // eslint-disable-next-line no-unsafe-optional-chaining
+    const { token, account, timestamp, timeInterval, moduleCode } = useRoutes?.query
     if (token && account && timestamp && timeInterval && moduleCode) {
         isErrorShow.value = false
         loginByTokenApi({
@@ -47,7 +52,7 @@ onMounted(() => {
             timestamp: timestamp,
             timeInterval: timeInterval,
             moduleCode: moduleCode,
-        });
+        })
     } else {
         loading.value = false
         isErrorShow.value = true
@@ -56,8 +61,8 @@ onMounted(() => {
 
 //请求授权登录
 const loginByTokenApi = async (form) => {
-    const {error, code, data} = await loginByToken(form)
-    const res = getObjVal(data);
+    const { error, code, data } = await loginByToken(form)
+    const res = getObjVal(data)
     if (!error && code === 200 && res) {
         useAppState.setTokenVal(res['access_token'])
         useAppState.setRefreshTokenVal(res['refresh_token'])
@@ -72,8 +77,8 @@ const loginByTokenApi = async (form) => {
          useAppState.setLogoIcon('')
          useAppState.setLogoName('')
          setAppName('')
-        window?.$message?.success('授权登录成功');
-        await router.push({path: '/home/index'});
+        window?.$message?.success('授权登录成功')
+        await router.push({ path: '/home/index' })
     } else {
         window.$message?.error('授权登录失败')
         isErrorShow.value = true
@@ -83,7 +88,7 @@ const loginByTokenApi = async (form) => {
 
 //跳转登陆
 const toLoginTap = () => {
-    router.push({path: '/login'});
+    router.push({ path: '/login' })
 }
 </script>
 

+ 4 - 4
yarn.lock

@@ -1308,10 +1308,10 @@ has@^1.0.3:
   dependencies:
     function-bind "^1.1.1"
 
-hc-vue3-ui@^1.7.9:
-  version "1.7.9"
-  resolved "http://47.110.251.215:9000/hc-vue3-ui/-/hc-vue3-ui-1.7.9.tgz#c039aa8b005752e70af638d08692a23d7182d581"
-  integrity sha512-GxJPRTRyH6b7XW/v5Lgj3OV50EmLn+3MuZB/Ib3fIV8L/HeLiNNzrag1i78+SApvnZvNn/v08ElvxafkvR9hDg==
+hc-vue3-ui@^1.8.0:
+  version "1.8.0"
+  resolved "http://47.110.251.215:9000/hc-vue3-ui/-/hc-vue3-ui-1.8.0.tgz#0c4df97fec042ee6e2202a743ace5e00d26dad06"
+  integrity sha512-uNy5ohDhRs0/lj1B+Qix9Za1RR9k+KSws7x1yPS0r3G4a8+oNqDYFZ6LQaRFgEiXWYjxCLDl49YKz1RYGed99A==
   dependencies:
     axios "^1.4.0"
     dayjs "^1.11.9"