@wangofnextdoor/zlblog
Version:
浙里办日志和老年模式工具包
150 lines (149 loc) • 4.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isElderMode = exports.getCurrentUiStyle = exports.getQueryVariable2 = exports.toggleElderStyle = exports.elderStyle = exports.setCssVar = void 0;
/**
* 动态修改自定义CSS变量
* @param prop CSS属性名
* @param val CSS属性值
* @param dom DOM元素,默认为document.documentElement
*/
const setCssVar = (prop, val, dom = document.documentElement) => {
if (typeof document === 'undefined') {
console.warn('setCssVar只能在浏览器环境中使用');
return;
}
dom.style.setProperty(prop, val);
};
exports.setCssVar = setCssVar;
/**
* 初始化老年模式
*/
const elderStyle = () => {
var _a;
if (typeof window === 'undefined' || typeof window.ZWJSBridge === 'undefined') {
console.warn('ZWJSBridge is not available');
return;
}
console.log("elderStyle", window.ZWJSBridge);
// 先应用默认样式
elderlyOriented();
// 获取UI样式
(_a = window.ZWJSBridge) === null || _a === void 0 ? void 0 : _a.getUiStyle().then((res) => {
console.log("getUiStyle", res);
elderlyOriented(res.uiStyle);
}).catch((err) => {
console.log("getUiStyle", err);
});
};
exports.elderStyle = elderStyle;
/**
* 切换老年模式
* @param uiStyle UI样式类型
*/
const toggleElderStyle = (uiStyle) => {
elderlyOriented(uiStyle);
};
exports.toggleElderStyle = toggleElderStyle;
/**
* 应用老年模式样式
* @param uiStyle UI样式类型
*/
const elderlyOriented = (uiStyle) => {
console.log(uiStyle, "222222uiStyle");
switch (uiStyle) {
case "elder":
(0, exports.setCssVar)("--mainElderFont12", "20px");
(0, exports.setCssVar)("--mainElderFont14", "20px");
(0, exports.setCssVar)("--mainElderFont15", "20px");
(0, exports.setCssVar)("--mainElderFont16", "20px");
(0, exports.setCssVar)("--mainElderFont18", "20px");
(0, exports.setCssVar)("--mainElderFont20", "22px");
(0, exports.setCssVar)("--mainElderFont22", "24px");
break;
default:
(0, exports.setCssVar)("--mainElderFont12", "12px");
(0, exports.setCssVar)("--mainElderFont14", "14px");
(0, exports.setCssVar)("--mainElderFont15", "15px");
(0, exports.setCssVar)("--mainElderFont16", "16px");
(0, exports.setCssVar)("--mainElderFont18", "18px");
(0, exports.setCssVar)("--mainElderFont20", "20px");
(0, exports.setCssVar)("--mainElderFont22", "22px");
}
// 保存到本地存储
if (typeof window !== 'undefined') {
try {
localStorage.setItem("uiStyle", uiStyle || 'normal');
}
catch (error) {
console.warn('Failed to save uiStyle to localStorage:', error);
}
}
};
/**
* 获取URL查询参数(方法1)
* @param variable 参数名
* @returns 参数值
*/
function getQueryVariable2(variable) {
if (typeof window === 'undefined') {
return null;
}
const urlParam = window.location.href;
const requestParams = {};
if (urlParam.indexOf("?") !== -1) {
const str = urlParam.substring(urlParam.indexOf("?") + 1);
const strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
const [key, value] = strs[i].split("=");
if (key && value) {
requestParams[key] = decodeURI(value);
}
}
return requestParams[variable] || null;
}
return null;
}
exports.getQueryVariable2 = getQueryVariable2;
/**
* 获取URL查询参数(方法2)
* @param name 参数名
* @returns 参数值
*/
function getQueryVariable(name) {
if (typeof window === 'undefined') {
return null;
}
// 正式环境
const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
const r = window.location.search.slice(1).match(reg);
if (r != null) {
return decodeURIComponent(r[2]);
}
return getQueryVariable2(name);
}
exports.default = getQueryVariable;
/**
* 获取当前UI样式
* @returns 当前UI样式
*/
const getCurrentUiStyle = () => {
if (typeof window === 'undefined') {
return 'normal';
}
try {
return localStorage.getItem("uiStyle") || 'normal';
}
catch (error) {
console.warn('Failed to get uiStyle from localStorage:', error);
return 'normal';
}
};
exports.getCurrentUiStyle = getCurrentUiStyle;
/**
* 检查是否为老年模式
* @returns 是否为老年模式
*/
const isElderMode = () => {
return (0, exports.getCurrentUiStyle)() === 'elder';
};
exports.isElderMode = isElderMode;