79 lines
2.2 KiB
JavaScript
79 lines
2.2 KiB
JavaScript
// 菜单项切换功能
|
||
$(document).ready(function() {
|
||
// 初始化页面导航
|
||
initNavigation();
|
||
|
||
// 菜单项点击事件
|
||
$('.nav-link').click(function(e) {
|
||
e.preventDefault();
|
||
|
||
// 获取目标页面
|
||
const targetPage = $(this).data('page');
|
||
|
||
// 导航到该页面
|
||
navigateToPage(targetPage);
|
||
});
|
||
|
||
// 响应式处理 - 移动设备上点击菜单后自动收起
|
||
if ($(window).width() <= 768) {
|
||
$('.nav-link').click(function() {
|
||
$('body').removeClass('sidebar-open');
|
||
});
|
||
}
|
||
|
||
// 添加移动设备菜单切换按钮
|
||
$('<button id="sidebar-toggle" class="btn btn-sm btn-primary position-fixed" style="top: 10px; left: 10px; z-index: 1040;"><i class="fas fa-bars"></i></button>')
|
||
.appendTo('body')
|
||
.click(function() {
|
||
$('body').toggleClass('sidebar-open');
|
||
});
|
||
});
|
||
|
||
// 初始化导航函数
|
||
function initNavigation() {
|
||
// 检查URL中是否有哈希值
|
||
let targetPage = window.location.hash.substring(1); // 移除#符号
|
||
|
||
// 如果哈希值为空或无效,默认显示账号管理页面
|
||
if (!targetPage || !$('#' + targetPage).length) {
|
||
targetPage = 'tasks-accounts';
|
||
}
|
||
|
||
// 导航到目标页面
|
||
navigateToPage(targetPage);
|
||
}
|
||
|
||
// 导航到指定页面
|
||
function navigateToPage(pageId) {
|
||
// 切换活动菜单
|
||
$('.nav-link').removeClass('active');
|
||
$(`.nav-link[data-page="${pageId}"]`).addClass('active');
|
||
|
||
// 切换显示页面
|
||
$('.page-content').removeClass('active');
|
||
$('#' + pageId).addClass('active');
|
||
|
||
// 更新URL哈希值,但不触发页面滚动
|
||
if (history.pushState) {
|
||
history.pushState(null, null, '#' + pageId);
|
||
} else {
|
||
window.location.hash = pageId;
|
||
}
|
||
}
|
||
|
||
// 窗口大小变化时的响应式处理
|
||
$(window).resize(function() {
|
||
if ($(window).width() > 576) {
|
||
$('body').removeClass('sidebar-open');
|
||
}
|
||
});
|
||
|
||
$("#email-type").change(function() {
|
||
if ($(this).val() === "tempemail") {
|
||
$("#tempemail-fields").show();
|
||
$("#zmail-fields").hide();
|
||
} else if ($(this).val() === "zmail") {
|
||
$("#tempemail-fields").hide();
|
||
$("#zmail-fields").show();
|
||
}
|
||
}); |