Files
PropertyDeployment/resources/Web/MicroCommunityWeb/html/js/user.js
2025-12-09 20:22:03 +08:00

78 lines
3.0 KiB
JavaScript

(function () {
// 确保 vc 对象存在
if (typeof window.vc === 'undefined') {
console.error('vcFramework.js 未加载,等待重试...');
setTimeout(function () {
if (typeof window.vc !== 'undefined') {
initLangSwitch();
} else {
console.error('vcFramework.js 加载失败,请检查路径 /vcCore/vcFramework.js');
}
}, 1000);
return;
}
initLangSwitch();
function initLangSwitch() {
// 语言列表,与 login.js 保持一致
const langs = [
{ name: '中文', lang: 'zh-cn' },
{ name: '繁体', lang: 'cn' },
{ name: 'english', lang: 'en' },
{ name: 'ខ្មែរ', lang: 'Khmer' },
];
// 初始化语言
let _lang = vc.getData('JAVA110-LANG');
console.log('从 localStorage 读取的语言:', _lang);
// 如果没有有效语言或语言不在列表中,设置默认值
if (!_lang || typeof _lang !== 'object' || !_lang.lang || !langs.find(lang => lang.lang === _lang.lang)) {
_lang = { name: '中文', lang: 'zh-cn' };
vc.saveData('JAVA110-LANG', _lang);
console.log('未找到有效语言,保存默认语言:', _lang);
}
// 初始化 LayUI
layui.use('form', function () {
var form = layui.form;
// 设置默认选中值
var select = document.querySelector('select[name="langSelect"]');
if (select) {
select.value = _lang.lang;
form.render('select');
console.log('LayUI 下拉框初始化完成,选中值:', _lang.lang);
} else {
console.error('未找到 langSelect 元素,检查 DOM 是否被覆盖');
}
// 监听语言选择事件
form.on('select(langSelect)', function (data) {
console.log('LayUI 捕获到的语言选择值:', data.value);
const selectedLang = langs.find(lang => lang.lang === data.value);
if (selectedLang) {
console.log('切换语言:', selectedLang);
vc.saveData('JAVA110-LANG', selectedLang);
console.log('保存后 localStorage:', vc.getData('JAVA110-LANG'));
// 更新下拉框
if (select) {
select.value = selectedLang.lang;
form.render('select');
console.log('LayUI 下拉框更新,选中值:', selectedLang.lang);
}
// 刷新页面以应用语言
setTimeout(() => {
console.log('测试刷新');
location.reload();
}, 100);
} else {
console.error('未找到匹配的语言:', data.value);
}
});
});
}
})();