w-vue-middle
Version:
统一公共服务组件
140 lines (130 loc) • 3.61 kB
JavaScript
/*
* @Author: Jason Liu
* @Date: 2022-03-10 10:38:00
* @Desc:
*/
const $appService = require("../api/appService");
const { getUserInfo } = require("w-vue-middle/api/appService");
const { encrypt } = require("./encryp.js");
/**
* @Author: Jason Liu
* @description:前往子系统
*/
export function nextApp(vue) {
let params = $storage.queryURLparams();
let defaultUrl = $service.defaultPage;
let url = params.referUrl || defaultUrl;
if (params.auth && params.referUrl) {
url = `${decodeURIComponent(params.referUrl)}`;
if (url.indexOf("?") > -1) {
url += `&ticket=${$storage.get(
"PORTAL_JTI"
)}&token=${$storage.getToken()}`;
} else {
url += `?ticket=${$storage.get(
"PORTAL_JTI"
)}&token=${$storage.getToken()}`;
}
// window.location.href = url;
window.location.replace(url);
} else {
vue.$router.push(decodeURIComponent(url));
}
}
export const nextPage = (to, from, next) => {
if ($storage.getToken()) {
next();
} else if (top != window) {
//TODO:子应用嵌入登录方式
} else {
next({
name: "login",
query: {
referUrl: to.path
}
});
//goLogin();
}
};
/**
* @Author: Jason Liu
* @description: 获取当前系统的分析页面
*/
export function getThisUrl() {
return encodeURIComponent(window.location.href);
}
// /**
// * @Author: Jason Liu
// * @description: 验证用户信息
// */
// export function AuthenticateUser() {
// let params = $storage.queryURLparams();
// if (window != top) {
// $appService
// .login({
// orgId: params.h || window.appService.buttUser.h,
// password: encrypt(params.p || window.appService.buttUser.p),
// userId: params.u || window.appService.buttUser.u
// })
// .then(req => {
// return true;
// });
// } else if (params.token) {
// $storage.set("tokey", "portal");
// $storage.set("PORTAL_JTI", params.ticket);
// $storage.set("Bearer", params.token);
// let isReload = false;
// if (!$storage.get("STSTEM_INFO")) {
// isReload = true;
// }
// $appService.getUserMenus(params.token).then(req => {
// if (isReload) {
// window.location.reload();
// }
// });
// $appService.getUserInfo();
// } else if ($storage.getToken()) {
// $appService.getUserInfo();
// return true;
// }
// }
/**
* @Author: Jason Liu
* @description: 验证用户信息
*/
export function AuthenticateUser() {
return new Promise((resolve, reject) => {
let params = $storage.queryURLparams();
if (window != top) {
let token = $storage.getToken();
if (!token) {
$userservice
.login({
orgId: params.h || window.appService.buttUser.h,
password: window.$encrypt(params.p || window.appService.buttUser.p),
userId: params.u || window.appService.buttUser.u
})
.then(req => {
resolve(true);
});
} else {
resolve(true);
}
} else if (params.token) {
$storage.set("tokey", "portal");
$storage.set("PORTAL_JTI", params.ticket);
$storage.set("Bearer", params.token);
$storage.set("portalurl", params.portalurl); //首页地址
$storage.set("authfailurl", params.authfailurl); //用户登录地址
return getUserInfo().finally(() => {
resolve(true);
});
} else if ($storage.getToken()) {
return getUserInfo().finally(() => {
resolve(true);
});
} else {
resolve(true);
}
});
}