You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SDMS/web/js/xadmin.js

206 lines
8.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

$(function () {
// 加载弹出层和元素模块
layui.use(['form', 'element'], function () {
layer = layui.layer; // 获取layui的layer模块
element = layui.element; // 获取layui的element模块
});
// 定义tab操作
var tab = {
tabAdd: function (title, url, id) {
// 新增一个Tab项
element.tabAdd('xbs_tab', {
title: title, // 设置tab的标题
content: '<iframe tab-id="' + id + '" frameborder="0" src="' + url + '" scrolling="yes" class="x-iframe"></iframe>', // 设置tab的内容为iframe
id: id // 设置tab的唯一标识id
})
},
tabDelete: function (othis) {
// 删除指定Tab项
element.tabDelete('xbs_tab', '44'); // 删除id为44的Tab项示例
othis.addClass('layui-btn-disabled'); // 禁用删除按钮
},
tabChange: function (id) {
// 切换到指定Tab项
element.tabChange('xbs_tab', id); // 切换到指定的Tab项
}
};
// 表格多选功能的处理
tableCheck = {
init: function () {
// 绑定复选框点击事件
$(".layui-form-checkbox").click(function (event) {
if ($(this).hasClass('layui-form-checked')) {
$(this).removeClass('layui-form-checked');
if ($(this).hasClass('header')) {
$(".layui-form-checkbox").removeClass('layui-form-checked'); // 如果是header则取消所有选择
}
} else {
$(this).addClass('layui-form-checked');
if ($(this).hasClass('header')) {
$(".layui-form-checkbox").addClass('layui-form-checked'); // 如果是header则选中所有复选框
}
}
});
},
getData: function () {
// 获取所有选中的复选框对应的data-id
var obj = $(".layui-form-checked").not('.header'); // 排除header行
var arr = [];
obj.each(function (index, el) {
arr.push(obj.eq(index).attr('data-id')); // 将选中的data-id添加到数组
});
return arr; // 返回选中的项的id数组
}
};
// 开启表格多选
tableCheck.init();
// 左侧菜单切换事件
$('.container .left_open i').click(function (event) {
if ($('.left-nav').css('left') == '0px') {
// 如果左侧菜单是打开的,则关闭它
$('.left-nav').animate({ left: '-221px' }, 100); // 动画收起菜单
$('.page-content').animate({ left: '0px' }, 100); // 调整页面内容区域
$('.page-content-bg').hide(); // 隐藏背景遮罩
} else {
// 如果左侧菜单是关闭的,则打开它
$('.left-nav').animate({ left: '0px' }, 100); // 动画展开菜单
$('.page-content').animate({ left: '221px' }, 100); // 调整页面内容区域
if ($(window).width() < 768) {
$('.page-content-bg').show(); // 在小屏幕下显示背景遮罩
}
}
});
// 点击背景遮罩关闭菜单
$('.page-content-bg').click(function (event) {
$('.left-nav').animate({ left: '-221px' }, 100); // 动画收起菜单
$('.page-content').animate({ left: '0px' }, 100); // 调整页面内容区域
$(this).hide(); // 隐藏背景遮罩
});
// 关闭tab时移除图标
$('.layui-tab-close').click(function (event) {
$('.layui-tab-title li').eq(0).find('i').remove(); // 移除第一个Tab项的图标
});
// 默认隐藏除fid=0的栏目项
$("tbody.x-cate tr[fid!='0']").hide();
// 栏目多级显示效果,点击展开/收起子栏目
$('.x-show').click(function () {
if ($(this).attr('status') == 'true') {
$(this).html('&#xe625;'); // 修改图标为展开状态
$(this).attr('status', 'false'); // 设置状态为false
cateId = $(this).parents('tr').attr('cate-id'); // 获取当前栏目ID
$("tbody tr[fid=" + cateId + "]").show(); // 显示当前栏目下的子栏目
} else {
cateIds = []; // 清空cateIds数组
$(this).html('&#xe623;'); // 修改图标为收起状态
$(this).attr('status', 'true'); // 设置状态为true
cateId = $(this).parents('tr').attr('cate-id'); // 获取当前栏目ID
getCateId(cateId); // 获取当前栏目的所有子栏目ID
for (var i in cateIds) {
// 隐藏所有子栏目并修改其图标为收起状态
$("tbody tr[cate-id=" + cateIds[i] + "]").hide().find('.x-show').html('&#xe623;').attr('status', 'true');
}
}
});
// 左侧菜单项点击事件
$('.left-nav #nav li').click(function (event) {
if ($(this).children('.sub-menu').length) {
// 如果有子菜单
if ($(this).hasClass('open')) {
$(this).removeClass('open');
$(this).find('.nav_right').html('&#xe697;'); // 修改图标为展开
$(this).children('.sub-menu').stop().slideUp(); // 隐藏子菜单
$(this).siblings().children('.sub-menu').slideUp(); // 隐藏兄弟菜单
} else {
$(this).addClass('open');
$(this).children('a').find('.nav_right').html('&#xe6a6;'); // 修改图标为收起
$(this).children('.sub-menu').stop().slideDown(); // 显示子菜单
$(this).siblings().children('.sub-menu').stop().slideUp(); // 隐藏兄弟菜单
$(this).siblings().find('.nav_right').html('&#xe697;'); // 修改兄弟菜单图标为展开
$(this).siblings().removeClass('open'); // 移除兄弟菜单的open类
}
} else {
var url = $(this).children('a').attr('_href'); // 获取菜单项链接
var title = $(this).find('cite').html(); // 获取菜单项标题
var index = $('.left-nav #nav li').index($(this)); // 获取菜单项索引
// 检查该Tab是否已打开
for (var i = 0; i < $('.x-iframe').length; i++) {
if ($('.x-iframe').eq(i).attr('tab-id') == index + 1) {
tab.tabChange(index + 1); // 切换到已打开的Tab
event.stopPropagation();
return;
}
};
// 否则新建Tab项并切换
tab.tabAdd(title, url, index + 1);
tab.tabChange(index + 1);
}
event.stopPropagation(); // 阻止事件冒泡
});
});
var cateIds = [];
// 获取指定栏目ID下的所有子栏目ID
function getCateId(cateId) {
$("tbody tr[fid=" + cateId + "]").each(function (index, el) {
id = $(el).attr('cate-id'); // 获取子栏目ID
cateIds.push(id); // 将子栏目ID加入数组
getCateId(id); // 递归获取更深层次的子栏目ID
});
}
/* 弹出层相关函数 */
/*
弹出层函数显示一个iframe窗口
title 弹出层的标题
url 请求的URL地址
id 数据ID
w 弹出层宽度(缺省调默认值)
h 弹出层高度(缺省调默认值)
*/
function x_admin_show(title, url, w, h) {
if (title == null || title == '') {
title = false; // 默认无标题
};
if (url == null || url == '') {
url = "404.html"; // 默认URL为404页面
};
if (w == null || w == '') {
w = ($(window).width() * 0.9); // 默认宽度为窗口宽度的90%
};
if (h == null || h == '') {
h = ($(window).height() - 50); // 默认高度为窗口高度减去50
};
// 打开弹出层
layer.open({
type: 2, // 弹出层类型为iframe
area: [w + 'px', h + 'px'], // 设置弹出层大小
fix: false, // 不固定
maxmin: true, // 开启最大化和最小化功能
shadeClose: true, // 点击遮罩关闭
shade: 0.4, // 设置遮罩透明度
title: title, // 设置弹出层标题
content: url // 设置弹出层内容为iframe
});
}
/* 关闭弹出框 */
function x_admin_close() {
var index = parent.layer.getFrameIndex(window.name); // 获取iframe的索引
parent.layer.close(index); // 关闭弹出框
}