update:token登录
This commit is contained in:
@@ -46,6 +46,7 @@ try {
|
|||||||
home: 'Home',
|
home: 'Home',
|
||||||
personal: 'Personal Center',
|
personal: 'Personal Center',
|
||||||
invite: 'Invite Record',
|
invite: 'Invite Record',
|
||||||
|
tokenLogin: 'Token Login',
|
||||||
},
|
},
|
||||||
${ScopeFuncs}: {
|
${ScopeFuncs}: {
|
||||||
${i18nAppEn.join('\n ')}
|
${i18nAppEn.join('\n ')}
|
||||||
@@ -72,6 +73,7 @@ try {
|
|||||||
home: '首页',
|
home: '首页',
|
||||||
personal: '个人中心',
|
personal: '个人中心',
|
||||||
invite: '邀请记录',
|
invite: '邀请记录',
|
||||||
|
tokenLogin: 'Token登录',
|
||||||
},
|
},
|
||||||
${ScopeFuncs}: {
|
${ScopeFuncs}: {
|
||||||
${i18nFuncZhCn.join('\n ')}
|
${i18nFuncZhCn.join('\n ')}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import 'form-designer-plus/dist/designer.style.css'; //引入VForm3样式
|
|||||||
import vue3TreeOrg from 'vue3-tree-org';
|
import vue3TreeOrg from 'vue3-tree-org';
|
||||||
import 'vue3-tree-org/lib/vue3-tree-org.css';
|
import 'vue3-tree-org/lib/vue3-tree-org.css';
|
||||||
|
|
||||||
import '/@/spdm/index.scss';
|
import '/@/spdm/index.scss'; // SPDM CODE
|
||||||
|
|
||||||
// 日历组件
|
// 日历组件
|
||||||
import { setupCalendar } from 'v-calendar';
|
import { setupCalendar } from 'v-calendar';
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import {NextLoading} from '/@/utils/loading';
|
|||||||
|
|
||||||
const storesTagsViewRoutes = useTagsViewRoutes();
|
const storesTagsViewRoutes = useTagsViewRoutes();
|
||||||
const errorList = ['/401', '/404'];
|
const errorList = ['/401', '/404'];
|
||||||
const whiteList = ['/login', '/authRedirect', ...errorList];
|
// SPDM CODE
|
||||||
|
const whiteList = ['/login', '/authRedirect', '/tokenLogin', ...errorList];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1、前端控制路由时:isRequestRoutes 为 false,需要写 roles,需要走 setFilterRoute 方法。
|
* 1、前端控制路由时:isRequestRoutes 为 false,需要写 roles,需要走 setFilterRoute 方法。
|
||||||
|
|||||||
@@ -88,6 +88,14 @@ export const staticRoutes: Array<RouteRecordRaw> = [
|
|||||||
isAuth: false,
|
isAuth: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{ // SPDM CODE
|
||||||
|
path: '/tokenLogin',
|
||||||
|
name: 'staticRoutes.tokenLogin',
|
||||||
|
component: () => import('/@/spdm/views/tokenLogin.vue'),
|
||||||
|
meta: {
|
||||||
|
isAuth: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
43
src/spdm/api/request.ts
Normal file
43
src/spdm/api/request.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
import { BASE_URL } from '../config';
|
||||||
|
|
||||||
|
const service = axios.create({
|
||||||
|
baseURL: BASE_URL,
|
||||||
|
timeout: 60000,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;application/xml;charset=utf-8;',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
service.interceptors.request.use(
|
||||||
|
(config) => {
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
return Promise.reject(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
service.interceptors.response.use(
|
||||||
|
(res) => {
|
||||||
|
if (res.data.code !== 200) {
|
||||||
|
ElMessage.error(res.data.message);
|
||||||
|
}
|
||||||
|
return res.data;
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
ElMessage.error('系统繁忙,请稍后再试');
|
||||||
|
return Promise.reject(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
const get = (url: string, params = {}) => {
|
||||||
|
return service.get(url, { params });
|
||||||
|
};
|
||||||
|
|
||||||
|
const post = (url: string, data = {}) => {
|
||||||
|
return service.post(url, data);
|
||||||
|
};
|
||||||
|
|
||||||
|
export { get, post };
|
||||||
9
src/spdm/api/system/user.ts
Normal file
9
src/spdm/api/system/user.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { get } from '../request';
|
||||||
|
import { PREFIX_SYSTEM } from '../../config';
|
||||||
|
|
||||||
|
const PREFIX = PREFIX_SYSTEM;
|
||||||
|
|
||||||
|
// 获取用户token
|
||||||
|
export const getUserTokenApi = (params: any) => {
|
||||||
|
return get(`${PREFIX}user/getUserToken`, params);
|
||||||
|
};
|
||||||
@@ -1,2 +1,9 @@
|
|||||||
// export const SPDM_URL = 'http://192.168.65.64:3001'; // 本地
|
// 测试环境
|
||||||
export const SPDM_URL = 'http://192.168.65.161:3000'; // 测试环境
|
export const SPDM_URL = 'http://192.168.65.161:3000'; // SPDM项目地址
|
||||||
|
export const PREFIX_SYSTEM = '/system/'; // system模块前缀
|
||||||
|
export const BASE_URL = '/spdmApi/simulation'; // baseUrl
|
||||||
|
|
||||||
|
// // 本地环境
|
||||||
|
// export const SPDM_URL = 'http://192.168.65.64:3001'; // SPDM项目地址
|
||||||
|
// export const PREFIX_SYSTEM = '/system/'; // system模块前缀
|
||||||
|
// export const BASE_URL = '/spdmApi/simulation'; // baseUrl
|
||||||
43
src/spdm/views/tokenLogin.vue
Normal file
43
src/spdm/views/tokenLogin.vue
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<template>
|
||||||
|
<div />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { onMounted } from 'vue';
|
||||||
|
import { getUserTokenApi } from '../api/system/user';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
|
import { REFRESH_TOKEN_KEY, Session, Token } from '/@/utils/storage';
|
||||||
|
import Cookies from 'js-cookie';
|
||||||
|
import { useUserInfo } from '/@/stores/userInfo';
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getTokenFun();
|
||||||
|
});
|
||||||
|
|
||||||
|
const getTokenFun = () => {
|
||||||
|
const { userId, redirectUrl = '' } = route.query;
|
||||||
|
if (!userId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
userId,
|
||||||
|
};
|
||||||
|
getUserTokenApi(params).then((res: any) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
const { access_token, cid_tenant_id, cid_user_id, refresh_token } = res.data;
|
||||||
|
Cookies.set('cid_user_id', cid_user_id);
|
||||||
|
Session.setTenant(cid_tenant_id);
|
||||||
|
Token.set(access_token);
|
||||||
|
Session.set(REFRESH_TOKEN_KEY, refresh_token);
|
||||||
|
const url: any = redirectUrl || '/home';
|
||||||
|
useUserInfo().setUserInfos();
|
||||||
|
window.location.href = url;
|
||||||
|
} else {
|
||||||
|
ElMessage.warning('用户账号无效');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
// import logo from '/@/assets/logo.png';
|
// import logo from '/@/assets/logo.png';
|
||||||
import logo from '/@/spdm/assets/spdm_logo.png';
|
import logo from '/@/spdm/assets/spdm_logo.png'; // SPDM CODE
|
||||||
import logoMini from '/@/assets/logo-mini.svg';
|
import logoMini from '/@/assets/logo-mini.svg';
|
||||||
import {Local} from '/@/utils/storage';
|
import {Local} from '/@/utils/storage';
|
||||||
import {mergeWith} from 'lodash';
|
import {mergeWith} from 'lodash';
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export const useUserInfo = defineStore('userInfo', {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
login(data)
|
login(data)
|
||||||
.then(({data: res}) => {
|
.then(({data: res}) => {
|
||||||
// SPDM子应用使用
|
// SPDM CODE
|
||||||
Cookies.set('cid_user_id', res.user_id)
|
Cookies.set('cid_user_id', res.user_id)
|
||||||
Session.setTenant(res.tenant_id);
|
Session.setTenant(res.tenant_id);
|
||||||
// 存储token 信息
|
// 存储token 信息
|
||||||
@@ -189,7 +189,7 @@ export const useUserInfo = defineStore('userInfo', {
|
|||||||
async setUserInfos() {
|
async setUserInfos() {
|
||||||
await getUserInfo()
|
await getUserInfo()
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
// SPDM子应用使用
|
// SPDM CODE
|
||||||
Cookies.set('cid_user_info', JSON.stringify(res.data.sysUser));
|
Cookies.set('cid_user_info', JSON.stringify(res.data.sysUser));
|
||||||
this.userInfos = {
|
this.userInfos = {
|
||||||
user: res.data.sysUser,
|
user: res.data.sysUser,
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
<h3>{{ currentData?.processName }}</h3>
|
<h3>{{ currentData?.processName }}</h3>
|
||||||
</template>
|
</template>
|
||||||
<template #default>
|
<template #default>
|
||||||
|
<!-- SPDM CODE -->
|
||||||
<div class="spdm-approve-preview">
|
<div class="spdm-approve-preview">
|
||||||
<div v-show="processRreview" class="spdm-content">
|
<div v-show="processRreview" class="spdm-content">
|
||||||
<SpdmView :processId="processInstanceId" @load="previewLoadFun" />
|
<SpdmView :processId="processInstanceId" @load="previewLoadFun" />
|
||||||
@@ -114,7 +115,7 @@ import FlowNodeFormat from '/@/views/flow/form/tools/FlowNodeFormatData.vue';
|
|||||||
import other from '/@/utils/other';
|
import other from '/@/utils/other';
|
||||||
import {queryMineTask, queryTask} from '/@/api/flow/task';
|
import {queryMineTask, queryTask} from '/@/api/flow/task';
|
||||||
import {BasicTableProps, useTable} from '/@/hooks/table';
|
import {BasicTableProps, useTable} from '/@/hooks/table';
|
||||||
import SpdmView from '/@/spdm/views/preview.vue'
|
import SpdmView from '/@/spdm/views/preview.vue'; // SPDM CODE
|
||||||
|
|
||||||
const rightDrawerVisible = ref(false);
|
const rightDrawerVisible = ref(false);
|
||||||
const showSearch = ref(true);
|
const showSearch = ref(true);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import viteCompression from 'vite-plugin-compression';
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import {svgBuilder} from '/@/components/IconSelector/index';
|
import {svgBuilder} from '/@/components/IconSelector/index';
|
||||||
import vueDevTools from 'vite-plugin-vue-devtools';
|
import vueDevTools from 'vite-plugin-vue-devtools';
|
||||||
|
import { BASE_URL } from '/@/spdm/config'; // SPDM CODE
|
||||||
|
|
||||||
const pathResolve = (dir: string) => {
|
const pathResolve = (dir: string) => {
|
||||||
return resolve(__dirname, '.', dir);
|
return resolve(__dirname, '.', dir);
|
||||||
@@ -122,6 +123,12 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
|
|||||||
changeOrigin: true, // 是否修改请求头中的 Origin 字段
|
changeOrigin: true, // 是否修改请求头中的 Origin 字段
|
||||||
// rewrite: (path) => path.replace(/^\/file\/2D/, ''),
|
// rewrite: (path) => path.replace(/^\/file\/2D/, ''),
|
||||||
},
|
},
|
||||||
|
'/spdmApi': { // SPDM CODE
|
||||||
|
target: 'http://192.168.65.161:3000/api/', // 目标服务器地址
|
||||||
|
ws: true, // 是否启用 WebSocket
|
||||||
|
changeOrigin: true, // 是否修改请求头中的 Origin 字段
|
||||||
|
rewrite: (path) => path.replace(/^\/spdmApi/, ''),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
build: {
|
build: {
|
||||||
|
|||||||
Reference in New Issue
Block a user