78 lines
3.0 KiB
JavaScript
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);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
})(); |