6642bd08 by renchao@pashanhoo.com

style:集成cas完成

1 parent 2fca351e
1 { 1 {
2 "TITLE": "不动产登记系统", 2 "TITLE": "不动产登记系统",
3 "SERVERAPI": "/bdcdj" 3 "SERVERAPI": "/bdcdj",
4 "ip": "http://192.168.2.38"
4 } 5 }
...\ No newline at end of file ...\ No newline at end of file
......
1 { 1 {
2 "TITLE": "不动产登记系统", 2 "TITLE": "不动产登记系统",
3 "SERVERAPI": "/bdcdj" 3 "SERVERAPI": "/bdcdj",
4 "ip": "http://192.168.2.38"
4 } 5 }
...\ No newline at end of file ...\ No newline at end of file
......
1 { 1 {
2 "TITLE": "不动产登记系统", 2 "TITLE": "不动产登记系统",
3 "SERVERAPI": "service-bdcdj-th" 3 "SERVERAPI": "service-bdcdj-th",
4 "ip": "http://192.168.2.38"
4 } 5 }
...\ No newline at end of file ...\ No newline at end of file
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-05-26 16:57:47 4 * @LastEditTime: 2023-05-31 15:33:18
5 --> 5 -->
6 <!DOCTYPE html> 6 <!DOCTYPE html>
7 <html> 7 <html>
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
18 </title> 18 </title>
19 </head> 19 </head>
20 <script> 20 <script>
21 window.baseUrl = location.origin || location.protocol + '//' + location.host
21 window._config = { 22 window._config = {
22 // 是否微服务模式,业务系统根据需要读取 23 // 是否微服务模式,业务系统根据需要读取
23 cloudEnable: false, 24 cloudEnable: false,
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
27 </div> 27 </div>
28 </template> 28 </template>
29 <script> 29 <script>
30 import axios from 'axios'
30 import { mapGetters } from 'vuex' 31 import { mapGetters } from 'vuex'
31 import NoticeBar from '@/components/NoticeBar/index' 32 import NoticeBar from '@/components/NoticeBar/index'
32 import { 33 import {
...@@ -72,9 +73,20 @@ ...@@ -72,9 +73,20 @@
72 }) 73 })
73 }, 74 },
74 logout () { 75 logout () {
75 const url = baseUrl + "/sso-logout?redirect_uri=" + baseUrl + "/bdcdj"; 76 axios.post(this.BASE_API.ip + "/management/logout").then(() => {
76 window.open(url, "_self"); 77 localStorage.removeItem('token')
77 sessionStorage.removeItem("navList"); 78 if (window._config.casEnable) {
79 window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(window.location.href);
80 } else {
81 this.$router.push({
82 path: '/login',
83 replace: true,
84 query: {
85 redirect: router.currentRoute.value.fullPath
86 }
87 })
88 }
89 })
78 }, 90 },
79 91
80 themeChange (val) { 92 themeChange (val) {
......
1 /* 1 /*
2 * @Description: 项目权限 2 * @Description: 项目权限
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-05-30 16:27:26 4 * @LastEditTime: 2023-05-31 15:55:14
5 */ 5 */
6 import Vue from 'vue' 6 import Vue from 'vue'
7 import router from './router' 7 import router from './router'
...@@ -36,7 +36,7 @@ router.beforeEach(async (to, from, next) => { ...@@ -36,7 +36,7 @@ router.beforeEach(async (to, from, next) => {
36 if (!token) { 36 if (!token) {
37 let ticket = getUrlParam('ticket'); 37 let ticket = getUrlParam('ticket');
38 if (ticket) { 38 if (ticket) {
39 axios.get("http://192.168.2.38/management/cas/validate", { 39 axios.get(Vue.prototype.BASE_API.ip + "/management/cas/validate", {
40 params: { 40 params: {
41 'ticket': ticket, 41 'ticket': ticket,
42 'service': locationUrl 42 'service': locationUrl
...@@ -44,26 +44,6 @@ router.beforeEach(async (to, from, next) => { ...@@ -44,26 +44,6 @@ router.beforeEach(async (to, from, next) => {
44 }).then(async (res) => { 44 }).then(async (res) => {
45 localStorage.setItem('token', res.data.content.accessToken) 45 localStorage.setItem('token', res.data.content.accessToken)
46 window.location.href = localStorage.getItem('location') 46 window.location.href = localStorage.getItem('location')
47 // cas
48 if (!hasAddDict) {
49 store.dispatch('dict/generateDic')
50 }
51 if (hasAddRoute) {
52 next()
53 // next({ ...to, replace: true })
54 } else {
55 const { result: getMenuData } = await getMenuInfo()
56 const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData)
57 // 获取用户信息
58 await store.dispatch('user/getUserInfo')
59 router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }])
60 const routeTo = Cookies.get('routerTo')
61 if (routeTo && routeTo !== '/') {
62 next({ ...to, replace: true })
63 } else {
64 next('/home')
65 }
66 }
67 47
68 }).catch(e => { 48 }).catch(e => {
69 console.log(e) 49 console.log(e)
...@@ -71,9 +51,31 @@ router.beforeEach(async (to, from, next) => { ...@@ -71,9 +51,31 @@ router.beforeEach(async (to, from, next) => {
71 } else { 51 } else {
72 localStorage.setItem("location", window.location.href) 52 localStorage.setItem("location", window.location.href)
73 window.location.href = window._config.casBaseURL + '/login?service=' + encodeURIComponent(locationUrl); 53 window.location.href = window._config.casBaseURL + '/login?service=' + encodeURIComponent(locationUrl);
54 permission()
74 } 55 }
75 } else { 56 } else {
76 next() 57 permission()
58 }
59 async function permission () {
60 if (!hasAddDict) {
61 store.dispatch('dict/generateDic')
62 }
63 if (hasAddRoute) {
64 next()
65 // next({ ...to, replace: true })
66 } else {
67 const { result: getMenuData } = await getMenuInfo()
68 const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData)
69 // 获取用户信息
70 await store.dispatch('user/getUserInfo')
71 router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }])
72 const routeTo = Cookies.get('routerTo')
73 if (routeTo && routeTo !== '/') {
74 next({ ...to, replace: true })
75 } else {
76 next('/home')
77 }
78 }
77 } 79 }
78 } else { 80 } else {
79 if (!token) { 81 if (!token) {
......
1 /* 1 /*
2 * @Description: 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器 2 * @Description: 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-05-26 16:52:25 4 * @LastEditTime: 2023-05-31 15:30:02
5 */ 5 */
6 import axios from 'axios' 6 import axios from 'axios'
7 import { Message } from 'element-ui' 7 import { Message } from 'element-ui'
...@@ -9,6 +9,10 @@ import { endLoadingSubCount } from './requestLoading' ...@@ -9,6 +9,10 @@ import { endLoadingSubCount } from './requestLoading'
9 9
10 // create an axios instance 10 // create an axios instance
11 const service = axios.create({ 11 const service = axios.create({
12 baseURL:
13 process.env.NODE_ENV == "development"
14 ? process.env.VUE_APP_BASE_API
15 : window.baseUrl + "/",
12 withCredentials: true, //是否允许跨域 16 withCredentials: true, //是否允许跨域
13 headers: { 17 headers: {
14 'Content-Type': 'application/json; charset=utf-8' 18 'Content-Type': 'application/json; charset=utf-8'
......
...@@ -18,7 +18,7 @@ module.exports = { ...@@ -18,7 +18,7 @@ module.exports = {
18 * Detail: https://cli.vuejs.org/config/#publicpath 18 * Detail: https://cli.vuejs.org/config/#publicpath
19 */ 19 */
20 // 加载资源的路径 20 // 加载资源的路径
21 publicPath: '/bdcdj/', 21 publicPath: '/dj/',
22 // 设置项目打包生成的文件的存储目录,可以是静态路径也可以是相对路径 22 // 设置项目打包生成的文件的存储目录,可以是静态路径也可以是相对路径
23 outputDir: 'dist', 23 outputDir: 'dist',
24 // 设置放置打包生成的静态资源 (js、css、img、fonts) 的目录 24 // 设置放置打包生成的静态资源 (js、css、img、fonts) 的目录
......