update:token登录
This commit is contained in:
@@ -46,6 +46,7 @@ try {
|
||||
home: 'Home',
|
||||
personal: 'Personal Center',
|
||||
invite: 'Invite Record',
|
||||
tokenLogin: 'Token Login',
|
||||
},
|
||||
${ScopeFuncs}: {
|
||||
${i18nAppEn.join('\n ')}
|
||||
@@ -72,6 +73,7 @@ try {
|
||||
home: '首页',
|
||||
personal: '个人中心',
|
||||
invite: '邀请记录',
|
||||
tokenLogin: 'Token登录',
|
||||
},
|
||||
${ScopeFuncs}: {
|
||||
${i18nFuncZhCn.join('\n ')}
|
||||
|
||||
@@ -19,7 +19,7 @@ import 'form-designer-plus/dist/designer.style.css'; //引入VForm3样式
|
||||
import vue3TreeOrg from 'vue3-tree-org';
|
||||
import 'vue3-tree-org/lib/vue3-tree-org.css';
|
||||
|
||||
import '/@/spdm/index.scss';
|
||||
import '/@/spdm/index.scss'; // SPDM CODE
|
||||
|
||||
// 日历组件
|
||||
import { setupCalendar } from 'v-calendar';
|
||||
|
||||
@@ -10,7 +10,8 @@ import {NextLoading} from '/@/utils/loading';
|
||||
|
||||
const storesTagsViewRoutes = useTagsViewRoutes();
|
||||
const errorList = ['/401', '/404'];
|
||||
const whiteList = ['/login', '/authRedirect', ...errorList];
|
||||
// SPDM CODE
|
||||
const whiteList = ['/login', '/authRedirect', '/tokenLogin', ...errorList];
|
||||
|
||||
/**
|
||||
* 1、前端控制路由时:isRequestRoutes 为 false,需要写 roles,需要走 setFilterRoute 方法。
|
||||
|
||||
@@ -88,6 +88,14 @@ export const staticRoutes: Array<RouteRecordRaw> = [
|
||||
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 '/@/spdm/assets/spdm_logo.png';
|
||||
import logo from '/@/spdm/assets/spdm_logo.png'; // SPDM CODE
|
||||
import logoMini from '/@/assets/logo-mini.svg';
|
||||
import {Local} from '/@/utils/storage';
|
||||
import {mergeWith} from 'lodash';
|
||||
|
||||
@@ -56,7 +56,7 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
return new Promise((resolve, reject) => {
|
||||
login(data)
|
||||
.then(({data: res}) => {
|
||||
// SPDM子应用使用
|
||||
// SPDM CODE
|
||||
Cookies.set('cid_user_id', res.user_id)
|
||||
Session.setTenant(res.tenant_id);
|
||||
// 存储token 信息
|
||||
@@ -189,7 +189,7 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
async setUserInfos() {
|
||||
await getUserInfo()
|
||||
.then((res) => {
|
||||
// SPDM子应用使用
|
||||
// SPDM CODE
|
||||
Cookies.set('cid_user_info', JSON.stringify(res.data.sysUser));
|
||||
this.userInfos = {
|
||||
user: res.data.sysUser,
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
<h3>{{ currentData?.processName }}</h3>
|
||||
</template>
|
||||
<template #default>
|
||||
<!-- SPDM CODE -->
|
||||
<div class="spdm-approve-preview">
|
||||
<div v-show="processRreview" class="spdm-content">
|
||||
<SpdmView :processId="processInstanceId" @load="previewLoadFun" />
|
||||
@@ -114,7 +115,7 @@ import FlowNodeFormat from '/@/views/flow/form/tools/FlowNodeFormatData.vue';
|
||||
import other from '/@/utils/other';
|
||||
import {queryMineTask, queryTask} from '/@/api/flow/task';
|
||||
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 showSearch = ref(true);
|
||||
|
||||
@@ -9,6 +9,7 @@ import viteCompression from 'vite-plugin-compression';
|
||||
// @ts-ignore
|
||||
import {svgBuilder} from '/@/components/IconSelector/index';
|
||||
import vueDevTools from 'vite-plugin-vue-devtools';
|
||||
import { BASE_URL } from '/@/spdm/config'; // SPDM CODE
|
||||
|
||||
const pathResolve = (dir: string) => {
|
||||
return resolve(__dirname, '.', dir);
|
||||
@@ -122,6 +123,12 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
|
||||
changeOrigin: true, // 是否修改请求头中的 Origin 字段
|
||||
// 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: {
|
||||
|
||||
Reference in New Issue
Block a user