@@ -0,0 +1,106 @@
|
||||
/**
|
||||
* 数字基座内嵌加载帮助类
|
||||
*/
|
||||
|
||||
class BschLoadUtil {
|
||||
#isDev = false;
|
||||
#appId = null;
|
||||
constructor() {
|
||||
if (!BschLoadUtil.instance) {
|
||||
this.isSelf = window.self === window.top;
|
||||
this.#appId = this.uuid();
|
||||
this.ticket = null;
|
||||
this.roleInfo = {
|
||||
userId: null,
|
||||
roleId: null,
|
||||
schId: null,
|
||||
childId: null,
|
||||
};
|
||||
BschLoadUtil.instance = this;
|
||||
}
|
||||
return BschLoadUtil.instance;
|
||||
}
|
||||
getTicket() {
|
||||
if (!this.#isDev) {
|
||||
const ticket = this.getUrlParam("ticket"),
|
||||
roleInfoStr = this.getUrlParam("role");
|
||||
var roleInfo = this.roleDecode(roleInfoStr);
|
||||
this.ticket = ticket;
|
||||
this.roleInfo = roleInfo;
|
||||
}
|
||||
return { ticket: this.ticket, roleInfo: this.roleInfo };
|
||||
}
|
||||
|
||||
goBackDesktop() {
|
||||
if (this.#isDev) {
|
||||
console.error("调试模式,无效操作!");
|
||||
return;
|
||||
}
|
||||
parent.postMessage(JSON.stringify({ id: this.#appId, code: 1 }), "*");
|
||||
}
|
||||
|
||||
reloadParent() {
|
||||
if (this.#isDev) {
|
||||
console.error("调试模式,无效操作!");
|
||||
return;
|
||||
}
|
||||
parent.postMessage(JSON.stringify({ id: this.#appId, code: 2 }), "*");
|
||||
}
|
||||
|
||||
showUserInfo() {
|
||||
if (this.#isDev) {
|
||||
console.error("调试模式,无效操作!");
|
||||
return;
|
||||
}
|
||||
parent.postMessage(JSON.stringify({ id: this.#appId, code: 3 }), "*");
|
||||
}
|
||||
|
||||
roleDecode(roleInfoStr) {
|
||||
try {
|
||||
var str = window.atob(roleInfoStr);
|
||||
str = decodeURIComponent(str);
|
||||
var obj = JSON.parse(str);
|
||||
return obj;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return {
|
||||
id: null,
|
||||
ticket: "",
|
||||
roleInfo: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
setDevTicket(ticket, roleInfo) {
|
||||
if (this.isSelf) {
|
||||
this.ticket = ticket;
|
||||
this.roleInfo = roleInfo;
|
||||
this.#isDev = true;
|
||||
}
|
||||
}
|
||||
getIsSelf() {
|
||||
if (this.#isDev) return false;
|
||||
else return this.isSelf;
|
||||
}
|
||||
|
||||
getUrlParam(name) {
|
||||
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
let r = window.location.search.substr(1).match(reg);
|
||||
if (r != null) return unescape(r[2]);
|
||||
else return null;
|
||||
}
|
||||
uuid() {
|
||||
return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
||||
let r = (Math.random() * 16) | 0,
|
||||
v = c == "x" ? r : (r & 0x3) | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
static getInstance() {
|
||||
if (!this.instance) {
|
||||
return (this.instance = new BschLoadUtil());
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user