yuang-framework-ui-common 1.0.18 → 1.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,20 @@
1
1
  import { http } from '../config/httpConfig';
2
2
  import { getLocalStorageItem, setLocalStorageItem, removeLocalStorageItem } from '../utils/storageUtils';
3
3
 
4
- const initGateway = () => {
4
+ const initGatewayConfig = () => {
5
5
  return new Promise<void>(async resolve => {
6
- let gatewayAccessToken = getLocalStorageItem("gatewayAccessToken");
7
- if (!gatewayAccessToken) {
8
- let res = await http.get('/server/gateway/getGatewayConfig');
9
- setLocalStorageItem("gatewayAccessToken", res.data.data.gatewayAccessToken, res.data.data.gatewayTimeout);
10
- setLocalStorageItem("gatewayPublicKey", res.data.data.gatewayPublicKey, res.data.data.gatewayTimeout);
11
- }
6
+ let res = await http.get('/server/gateway/getGatewayConfig');
7
+ setLocalStorageItem("gatewayAccessToken", res.data.data.gatewayAccessToken, res.data.data.gatewayTimeout);
8
+ setLocalStorageItem("gatewayPublicKey", res.data.data.gatewayPublicKey, res.data.data.gatewayTimeout);
12
9
  resolve();
13
10
  })
14
11
  }
15
12
 
16
- const clearGateway = () => {
13
+ const clearGatewayConfig = () => {
17
14
  removeLocalStorageItem("gatewayAccessToken");
18
15
  removeLocalStorageItem("gatewayPublicKey");
19
16
  }
20
17
  export {
21
- initGateway,
22
- clearGateway
18
+ initGatewayConfig,
19
+ clearGatewayConfig
23
20
  }
@@ -3,11 +3,11 @@ import axios from "axios"
3
3
  import { showErrorMessage } from '../utils/messageUtils';
4
4
  import { alertMessageBox } from '../utils/messageBoxUtils';
5
5
 
6
- import { getSsoLoginUrl, clearSsoAccessToken } from '../utils/ssoUtils';
6
+ import { getSsoLoginUrl, clearSsoAccessToken, setSsoAccessToken } from '../utils/ssoUtils';
7
7
 
8
- import { clearGateway } from '../config/gatewayConfig';
8
+ import { clearGatewayConfig, initGatewayConfig } from '../config/gatewayConfig';
9
9
 
10
- import {getLocalStorageItem} from '../utils/storageUtils'
10
+ import { getLocalStorageItem } from '../utils/storageUtils'
11
11
 
12
12
  const messageMap = {
13
13
  requestError: '请求异常',
@@ -22,12 +22,19 @@ const http = axios.create({
22
22
 
23
23
 
24
24
  /* 请求拦截 */
25
- http.interceptors.request.use(config => {
25
+ http.interceptors.request.use(async config => {
26
26
  config.headers["X-Requested-With"] = 'XMLHttpRequest';
27
27
 
28
28
  let gatewayAccessToken = getLocalStorageItem("gatewayAccessToken") ?? '';
29
29
  let gatewayPublicKey = getLocalStorageItem("gatewayPublicKey") ?? '';
30
30
  let ssoAccessToken = getLocalStorageItem("ssoAccessToken") ?? '';
31
+
32
+ debugger
33
+ if(!gatewayAccessToken && config.url != '/server/gateway/getGatewayConfig') {
34
+ await initGatewayConfig();
35
+ return axios.request(config);
36
+ }
37
+
31
38
  if (gatewayAccessToken) {
32
39
  config.headers["Gateway-Access-Token"] = gatewayAccessToken;
33
40
  }
@@ -68,10 +75,25 @@ http.interceptors.response.use((res) => {
68
75
  });
69
76
  return Promise.reject(new Error(res?.data?.message));
70
77
  } else if (res?.data?.statusCode === 822001) {
71
- clearGateway();
78
+ clearGatewayConfig();
72
79
  showErrorMessage(messageMap.requestError);
73
80
  return Promise.reject(new Error(res?.data?.message));
81
+ } else if (res?.data?.statusCode === 815001) {
82
+ showErrorMessage(res?.data?.message);
83
+ clearSsoAccessToken();
84
+ location.href = getSsoLoginUrl();
85
+ return Promise.reject(new Error(res?.data?.message));
86
+ } else if (res?.data?.statusCode === 815002) {
87
+ axios.get('/sso-api/client/auth/getSsoRefreshToken').then(res => {
88
+ setSsoAccessToken(res.data.data);
89
+ // 重发请求
90
+ return axios.request(res.config);
91
+ })
92
+ } else if (res?.data?.statusCode === 815003) {
93
+ showErrorMessage(res?.data?.message);
94
+ return Promise.reject(new Error(res?.data?.message));
74
95
  }
96
+
75
97
  showErrorMessage(res?.data?.message || messageMap.requestError);
76
98
  return Promise.reject(new Error(res?.data?.message));
77
99
  }
@@ -1,7 +1,7 @@
1
1
  import Cookies from 'js-cookie'
2
2
  import {getAesRandomKey, aesEncrypt} from './aesUtils';
3
3
  import {rsaEncrypt} from './rsaUtils';
4
- import {getLocalStorageItem, setLocalStorageItem} from './storageUtils';
4
+ import {getLocalStorageItem, setLocalStorageItem, removeLocalStorageItem} from './storageUtils';
5
5
 
6
6
 
7
7
  const getSsoLoginUrl = (redirectUrl = '') => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuang-framework-ui-common",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "scripts": {
package/src/App.vue CHANGED
@@ -1,19 +1,8 @@
1
1
  <template>
2
- <RouterView v-if="isShowRouterView"/>
2
+ <RouterView />
3
3
  </template>
4
4
  <script setup lang="ts">
5
5
  import { RouterView } from 'vue-router'
6
- import { onBeforeMount, ref, getCurrentInstance } from 'vue';
7
- import { initGateway } from '../lib/config/gatewayConfig'
8
-
9
- let isShowRouterView = ref(false);
10
-
11
- const { proxy } = getCurrentInstance() as any;
12
-
13
- onBeforeMount(async () => {
14
- await initGateway();
15
- isShowRouterView.value = true;
16
- })
17
6
  </script>
18
7
 
19
8
  <style scoped>