HM-SPMS/web/nginx/html/js/theme.js

95 lines
2.5 KiB
JavaScript
Raw Normal View History

2026-01-06 04:47:40 +08:00
function getThemeJson(param) {
var xhr = null;
var url = "../css/theme/config.json?" + new Date();
if (param.url) {
url = param.url;
}
try {
xhr = new XMLHttpRequest();
} catch (error) {
console.error(error);
if (typeof param.error == "function") {
param.error(error);
}
return false;
}
var fn = function() {
var step = xhr.readyState;
var status = xhr.status;
if (step == 4) {
var data = xhr.responseText;
if (status == 200) {
if (typeof param.success == "function") {
param.success(data);
}
} else {
if (typeof param.error == "function") {
param.error();
}
}
if (typeof param.completed == "function") {
param.completed(data);
}
}
};
xhr.onreadystatechange = fn;
var s = param.async;
s === undefined && (s = true);
xhr.open("get", url, s);
xhr.send();
}
function setTheme(hreflist, datepickerFlag, ztreeFlag) {
var fnspace = (function() {
return {
init: function(theme, hreflist, datepickerFlag, ztreeFlag) {
// 加载时间插件主题样式
if (datepickerFlag) {
}
// 加载树插件主题样式
if (ztreeFlag) {
}
//加载页面主题样式文件
if (hreflist && hreflist.length > 0) {
for (var i = 0; i < hreflist.length; i++) {
this.addCSSFile(hreflist[i].replace("${theme}", theme));
}
}
},
addCSSFile: function(href) {
//引入css样式表
var link = {};
link.type = "text/css";
link.rel = "stylesheet";
link.href = href;
this.createLink(link);
},
createLink: function(obj) {
var link = document.createElement("link");
for (var key in obj) {
link[key] = obj[key];
}
document.getElementsByTagName("head")[0].appendChild(link);
}
};
})();
getThemeJson({
success: function(data) {
var d = JSON.parse(data);
var urlParam = decodeURIComponent(location.search);
var _temp = "";
if (urlParam.indexOf("theme") !== -1) {
var arr = urlParam.substr(urlParam.indexOf("theme")).split(/[\=\&]/g);
_temp = arr[1];
localStorage.setItem("theme", _temp);
} else {
_temp = d.theme;
}
var theme = _temp || localStorage.getItem("configTheme") || "light";
fnspace.init(theme, hreflist, datepickerFlag, ztreeFlag);
},
error: function() {
console.error("获取主题失败");
}
});
}