Browse Source

白屏问题修改

msx 4 months ago
parent
commit
c0b62d1648

+ 10 - 1
api/api.js

@@ -12,7 +12,16 @@ const apiService = {
    * 单点登录
    */
   validateCasLogin(params) {
-    return http.get("/sys/cas/client/validateLogin", params);
+	  var index = 0;
+	  var url = "/sys/cas/client/validateLogin";
+	  for(var w in params){
+		  if(index == 0)
+		  url = url+"?"+w+"="+params[w];
+		  else
+		  url = url+"&"+w+"="+params[w];
+		  index++;
+	  }
+    return http.get(url);
   },
 
   /**

+ 16 - 15
common/router/index.js

@@ -2,6 +2,7 @@ import modules from './modules'
 import Vue from 'vue'
 import Router from '@/plugin/uni-simple-router/index.js'
 import { ACCESS_TOKEN } from '@/common/util/constants.js'
+import configService from '@/common/service/config.service.js'
 import api from "@/api/api";
 import { SKIP_SSO_URL_QUERY, locationUrl, openSso, getUrlParam } from './sso.js'
 
@@ -16,26 +17,29 @@ const whiteList = ['/pages/login/login']
 //全局路由前置守卫
 router.beforeEach((to, from, next) => {
 	let token = uni.getStorageSync(ACCESS_TOKEN);
+	
+	console.log("-----to---------------------"+JSON.stringify(token))
 	if (token) {
 		next()
 	} else {
 		// query如果没有明确要求跳过sso则执行sso登录
-		if (to.query[SKIP_SSO_URL_QUERY.key] !== SKIP_SSO_URL_QUERY.val) {
+				// const token = uni.getStorageSync(ACCESS_TOKEN);
+			const ticket = getUrlParam('ticket');
+			console.log("-----ticket---------------------"+ticket)
+		if (ticket != null && ticket != '') {
 			/**
 			   * 单点登录,返回是否需要跳转到单点登录页
 			*/
 			let redirect = false;
-			if (openSso == 'true') {
-				const token = uni.getStorageSync(ACCESS_TOKEN);
-				const ticket = getUrlParam('ticket');
+			// if (openSso == 'true') {
 				if (!token) {
 					if (ticket) {
 						try {
 							new Promise((resolve, reject) => {
 								api
 									.validateCasLogin({
-										ticket: ticket,
-										service: locationUrl,
+										ticket: ""+ticket,
+										service: "http://localhost:8080/",
 									})
 									.then((response) => {
 										if (response.data.code == 200) {
@@ -53,15 +57,12 @@ router.beforeEach((to, from, next) => {
 
 						} catch (e) {
 							redirect = true;
-							uni.navigateTo({
-								url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl)
-							});
 							// if (process.env.VUE_APP_PLATFORM != 'h5') {
 							// 	uni.navigateTo({
-							// 		url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl)
+							// 		url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl())
 							// 	});
 							// } else {
-							// 	window.location.href = 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl);
+							// 	window.location.href = 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl());
 							// }
 
 						}
@@ -70,19 +71,19 @@ router.beforeEach((to, from, next) => {
 						} else {
 							redirect = true;
 								uni.navigateTo({
-									url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl)
+									url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl())
 								});
 							// if (process.env.VUE_APP_PLATFORM != 'h5') {
 							// 	uni.navigateTo({
-							// 		url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl)
+							// 		url: 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl())
 							// 	});
 							// } else {
-							// 	window.location.href = 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl);
+							// 	window.location.href = 'https://id.shendong.com.cn/default' + '/login?service=' + encodeURIComponent(locationUrl());
 							// }
 						}
 					}
 				}
-			}
+			// }
 			let redirectSso = redirect;
 
 			// 如果需要重定向到sso页面则取消路由导航

+ 23 - 2
common/router/sso.js

@@ -1,14 +1,34 @@
 export let SKIP_SSO_URL_QUERY = { key: 'skipsso', val: '1' };
-export	let locationUrl = 'http://' + window.location.host + '/';
+// export	let locationUrl = 'http://' + window.location.host + '/';
 export	let  openSso='true';
 
+/**
+ */
+export function locationUrl() {
+  console.log("----------------locationUrl-----host---------------------------");
+  console.log(window.location.host);
+    return 'http://' + window.location.host + '/';
+}
 
 /**
  * 获取url地址参数
  * @param paraName
  */
 export function getUrlParam(paraName) {
-  const url = document.location.toString();
+	if (process.env.VUE_APP_PLATFORM != 'h5'){
+	// 获取当前页面的实例
+	const pages = getCurrentPages();
+	// 获取当前页面的实例
+	const currentPage = pages[pages.length - 1];
+	// 获取页面的完整地址
+	const url = currentPage.options;
+	
+	console.log("----------------currentPage.options--------"+JSON.stringify(currentPage.options));
+	}
+	else{
+  const url = window.location.toString();
+  console.log("----------------url--------");
+  console.log(url);
   const arrObj = url.split('?');
 
   if (arrObj.length > 1) {
@@ -26,4 +46,5 @@ export function getUrlParam(paraName) {
   } else {
     return '';
   }
+  }
 }

+ 2 - 2
common/service/config.service.js

@@ -3,13 +3,13 @@ let BASE_URL = "";
 if (process.env.NODE_ENV == "development") {
   BASE_URL = "http://182.92.126.35:9999"; // 开发环境
 } else {
-  // BASE_URL = "http://10.246.95.4:9999"; // 布尔台
+  BASE_URL = "http://10.246.95.4:9999"; // 布尔台
   // BASE_URL = "http://10.248.135.10:9999"; // 大柳塔进
   // BASE_URL = "http://10.248.135.121:9999"; // 活鸡兔井
   // BASE_URL = "http://10.246.63.125:9999"; // 寸草塔二矿
   // BASE_URL = "http://10.246.183.35:9999"; // 乌兰木伦
   // BASE_URL = "http://10.120.120.164:9999"; // 察哈素
-  BASE_URL = "http://182.92.126.35:9999"; // 生产环境
+  // BASE_URL = "http://182.92.126.35:9999"; // 生产环境
 }
 let staticDomainURL = BASE_URL + "/sys/common/static";
 

+ 10 - 2
common/service/service.js

@@ -52,6 +52,7 @@ http.interceptor.request((config, cancel) => { /* 请求之前拦截器 */
 })
 
 // 必须使用异步函数,注意
+var that = this
 http.interceptor.response(async (response) => { /* 请求之后拦截器 */
   // if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject()
   //   return Promise.reject(response)
@@ -64,8 +65,8 @@ http.interceptor.response(async (response) => { /* 请求之后拦截器 */
       let data = response.data
       const token = uni.getStorageSync(ACCESS_TOKEN)
       console.log("------异常响应------",token)
-      console.log("------异常响应------",data.status)
-      switch (data.status) {
+      console.log("------异常响应------",data.code)
+      switch (data.code) {
         case 403:
           tip.error('拒绝访问');
           break
@@ -83,6 +84,13 @@ http.interceptor.response(async (response) => { /* 请求之后拦截器 */
         case 504:
          break
         case 401:
+      console.log("------异常响应-401-----",401)
+	  
+	  console.log("------uni-----",uni)
+	  uni.navigateTo({
+				    url: '/pages/login/login'
+				});
+				return
           if (token) {
            /* store.dispatch('Logout').then(() => {
               setTimeout(() => {

+ 1 - 0
manifest.json

@@ -5,6 +5,7 @@
     "versionName" : "2.2.22",
     "versionCode" : 1,
     "transformPx" : false,
+    "external" : true,
     "app-plus" : {
         "orientation" : [
             //竖屏正方向

+ 100 - 2
package-lock.json

@@ -1,6 +1,103 @@
 {
+  "name": "VentApp",
+  "lockfileVersion": 2,
   "requires": true,
-  "lockfileVersion": 1,
+  "packages": {
+    "": {
+      "dependencies": {
+        "dayjs": "^1.11.10",
+        "echarts": "^5.5.1",
+        "flv.js": "^1.6.2",
+        "moment": "^2.30.1",
+        "uview-ui": "^2.0.36",
+        "vuex": "^3.6.2",
+        "zrender": "^5.6.0"
+      }
+    },
+    "node_modules/dayjs": {
+      "version": "1.11.12",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.12.tgz",
+      "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg=="
+    },
+    "node_modules/echarts": {
+      "version": "5.5.1",
+      "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz",
+      "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
+      "dependencies": {
+        "tslib": "2.3.0",
+        "zrender": "5.6.0"
+      }
+    },
+    "node_modules/echarts/node_modules/tslib": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+      "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+    },
+    "node_modules/echarts/node_modules/zrender": {
+      "version": "5.6.0",
+      "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
+      "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
+      "dependencies": {
+        "tslib": "2.3.0"
+      }
+    },
+    "node_modules/flv.js": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz",
+      "integrity": "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==",
+      "dependencies": {
+        "es6-promise": "^4.2.8",
+        "webworkify-webpack": "^2.1.5"
+      }
+    },
+    "node_modules/flv.js/node_modules/es6-promise": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+    },
+    "node_modules/flv.js/node_modules/webworkify-webpack": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
+      "integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw=="
+    },
+    "node_modules/moment": {
+      "version": "2.30.1",
+      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/uview-ui": {
+      "version": "2.0.37",
+      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.37.tgz",
+      "integrity": "sha512-iBcWNmQa01Wr+z004G6XIVPDctOrJIAx7LObQceUAPxZh6kJYjIOAMp5JE1K4VpoMV5bKYDpCd0gmX+M4nTEQQ==",
+      "engines": {
+        "HBuilderX": "^3.1.0"
+      }
+    },
+    "node_modules/vuex": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz",
+      "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==",
+      "peerDependencies": {
+        "vue": "^2.0.0"
+      }
+    },
+    "node_modules/zrender": {
+      "version": "5.6.0",
+      "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
+      "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
+      "dependencies": {
+        "tslib": "2.3.0"
+      }
+    },
+    "node_modules/zrender/node_modules/tslib": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+      "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+    }
+  },
   "dependencies": {
     "dayjs": {
       "version": "1.11.12",
@@ -60,7 +157,8 @@
     },
     "vuex": {
       "version": "3.6.2",
-      "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz"
+      "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz",
+      "requires": {}
     },
     "zrender": {
       "version": "5.6.0",

+ 7 - 0
pages.json

@@ -190,6 +190,13 @@
     },
     {
       "path": "pages/home/detail/fanlocalAnimate/fanlocalAnimate2"
+    },
+    {
+    	"path" : "pages/webview/webview",
+    	"style" : 
+    	{
+    		"navigationBarTitleText" : ""
+    	}
     }
   ],
   "globalStyle": {

+ 33 - 7
pages/login/login.vue

@@ -6,7 +6,8 @@
 				<view class="zai-title text-shadow ">登 录</view>
 			</view>
 			<view class="text-center" :style="[{animation: 'show ' + 0.4+ 's 1'}]">
-				<view class="zai-title text-shadow ">L O G O</view>
+				<!--<u-link  class="zai-title2 text-shadow " href="http://localhost:8080?ticket=234" >切换单点登录</u-link>
+				<view class="zai-title2 text-shadow " @click="changeloginType">切换单点登录</view>-->
 			</view>
             <view class="box padding-lr-xl login-paddingtop" :style="[{animation: 'show ' + 0.6+ 's 1'}]">
 				<block>
@@ -55,8 +56,8 @@
             return {
 				shape:'',//round 圆形
 				loading: false,
-				userName: 'admin',
-				password: 'admin123admin',
+				userName: '',
+				password: '',
 				phoneNo: '',
 				smsCode: '',
 				showPassword: false, //是否显示明文
@@ -69,10 +70,7 @@
 				thirdLoginInfo:"",
 				thirdLoginState:false,
 				bindingPhoneModal:false,
-				thirdUserUuid:'',
-				url: {
-					bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone'
-				}
+				thirdUserUuid:''
             };
         },
 		onLoad:function(){
@@ -220,6 +218,28 @@
 			requestFailed(err) {
 			  this.$message.warning("登录失败")
 			},
+			changeloginType(){
+				console.log("changeloginType====")
+				var tourl = configService.apiUrl;
+				tourl = tourl.replace(9999,8080);
+				tourl = 'https://id.shendong.com.cn/default' + '/login?service=' + 'http://localhost:8080';
+				console.log("==========="+tourl);
+				if (process.env.VUE_APP_PLATFORM != 'h5'){
+				    // plus.runtime.openURL('http://localhost:8080?ticket=12345')
+					this.openBrowser('http://localhost:8080?ticket=12345');
+				}
+				else
+					this.openBrowser('https://www.baidu.com');
+				// window.location.href='/pages/index/index?ticket=123'
+				 // this.$router.push({ path: '/pages/index/index?ticket=123',query:"2w354" })
+			},
+			openBrowser(url) {
+			    // 使用uni.navigateTo打开内置浏览器
+				console.log("----url---------------"+url)
+			    uni.navigateTo({
+			      "url": '/pages/webview/webview?url=' + encodeURIComponent(url)
+			    });
+			  }
         },
 		beforeDestroy() {
 		    if (this.smsCountInterval) {
@@ -252,6 +272,12 @@
        text-align: center;
     }
 
+    .zai-title2 {
+		margin-top: 20upx;
+       font-size: 28upx;
+       color: #000000;
+       text-align: center;
+    }
     .input-placeholder, .zai-input {
         color: #94afce;
     }

+ 20 - 0
pages/webview/webview.vue

@@ -0,0 +1,20 @@
+<!-- /pages/webview/webview.vue -->
+<template>
+  <web-view :src="src"></web-view>
+</template>
+ 
+<script>
+export default {
+  data() {
+    return {
+      src: ''
+    };
+  },
+  onLoad(option) {
+    // 获取传递过来的url参数
+	let optionurl = option.url;
+				console.log("optionurl=========="+optionurl)
+    this.src = decodeURIComponent(option.url);
+  }
+};
+</script>