var active;
var userId;
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({
window: 'js/winui.window'
}).define(['window', 'radialin', 'form', 'element', 'tautocomplete', 'spop'], function (exports) {
var $ = layui.jquery,
form = layui.form,
element = layui.element;
$(document).attr("title", sysMainMation.mationTitle);
$(".tradition-left-top").find("span").html(sysMainMation.mationTitle);
// 修改版权
$(".tradition-right-bottom-copyright").html(sysMainMation.copyright);
//顶部桌面模板
var desktopTemplate = $("#desktopTemplate").html();
//菜单盒子模板
var menuBoxTemplate = $("#menuBoxTemplate").html();
//二级菜单模板
var menuMoreTemplate = $("#menuMoreTemplate").html();
//一级菜单模板
var menuTemplate = $("#menuTemplate").html();
// 文件管理、日程、笔记、论坛权限
authBtn('1645958796795');
authBtn('1645959056141');
authBtn('1645959177299');
authBtn('1645959237037');
$(function () {
// 获取当前登录员工信息
systemCommonUtil.getSysCurrentLoginUserMation(function (data){
userId = data.bean.id;
$("#userPhoto").attr("src", fileBasePath + data.bean.userPhoto);
$("#userName").html(data.bean.userCode + '(' + data.bean.userName + ')');
});
// 加载首页
initDefaultPage();
// 加载菜单数据
loadMenuListToShow();
etiger.socket.init();
});
//搜索自动补充数据来源
var data = new Array();
//加载菜单数据
function loadMenuListToShow(){
//获取桌面消息
AjaxPostUtil.request({url: reqBasePath + "login009", params: {language: languageType}, type: 'json', method: "GET", callback: function(l){
var str = "";//顶部桌面字符串
var menuBoxStr = "";//多个菜单的字符串
var jsonStr = {};
var defaultName = (languageType == "zh" ? "默认桌面" : "Default desktop");
jsonStr = {
bean: {
id: 'winfixedpage00000000',
name: defaultName,
show: 'block',
chooseDeskTop: ' select'
}
};
str += getDataUseHandlebars(desktopTemplate, jsonStr);
menuBoxStr += getDataUseHandlebars(menuBoxTemplate, jsonStr);
$.each(l.rows, function(i, row){
row.show = 'none';
jsonStr = {
bean: row
};
str += getDataUseHandlebars(desktopTemplate, jsonStr);
menuBoxStr += getDataUseHandlebars(menuBoxTemplate, jsonStr);
});
$(".desktop-menu-box").find("ul").html(str);
$("#sysMenuListBox").html(menuBoxStr);
//重新计算头部宽度
initDeskTopMenuBox();
// 加载菜单
AjaxPostUtil.request({url: reqBasePath + "login005", params:{}, type: 'json', method: "GET", callback: function (json) {
var menuStr;
$.each(json.rows, function(i, row){
menuStr = "";
if(row.menuIconType === 1){//icon
row.icon = '';
}else if(row.menuIconType === 2){//图片
row.icon = '';
}
if(languageType == 'cn'){
row.name = row.menuNameEn;
}
if(row.pageURL != '--'){
//一级菜单
menuStr = getDataUseHandlebars(menuTemplate, {bean: row});
if(isNull(row.deskTopId)){
$("ul[menurowid='winfixedpage00000000']").append(menuStr);
} else {
$("ul[menurowid='" + row.deskTopId + "']").append(menuStr);
}
data.push({id: row.id, name: row.name, pageURL: row.pageURL, winName: isNull(row.deskTopId) ? defaultName : $(".desktop-menu-box").find("li[rowid='" + row.deskTopId + "']").find('span').html()});
} else {
//二级菜单
if(!isNull(row.childs)){
$.each(row.childs, function(j, child){
if(child.menuIconType === 1){//icon
child.icon = '';
}else if(child.menuIconType === 2){//图片
child.icon = '';
}
if(languageType == 'cn'){
child.name = child.menuNameEn;
}
data.push({id: child.id, name: child.name, pageURL: child.pageURL, winName: isNull(row.deskTopId) ? defaultName : $(".desktop-menu-box").find("li[rowid='" + row.deskTopId + "']").find('span').html()});
});
}
menuStr = getDataUseHandlebars(menuMoreTemplate, {bean: row});
if(isNull(row.deskTopId)){
$("ul[menurowid='winfixedpage00000000']").append(menuStr);
} else {
$("ul[menurowid='" + row.deskTopId + "']").append(menuStr);
}
}
});
var text2 = $("#Text2").tautocomplete({
width: "500px",
placeholder: $("#Text2").attr("placeholder"),
columns: [{field: 'name', title: '菜单名称'}, {field: 'winName', title: '所属桌面'}],
data: function() {
var filterData = [];
var searchData = eval("/" + text2.searchdata() + "/gi");
$.each(data, function(i, v) {
if(v.name.search(new RegExp(searchData)) != -1) {
filterData.push(v);
}
});
return filterData;
},
onchange: function() {
if(!isNull(text2.id())){
var dataMenu = $("#sysMenuListBox").find("a[data-id='" + text2.id() + "']");
indexMenu.loadTraditionPage(dataMenu);
}
}
});
matchingLanguage();
}});
}});
}
//计算头部宽度
function initDeskTopMenuBox(){
var items = $(".desktop-menu-box").find('li');
var maxWidth = 50;
$.each(items, function(i, item){
maxWidth += $(item).width();
});
$(".desktop-menu-box").find('ul').css({'width': maxWidth + 'px'});
}
//触发事件
active = {
//在这里给active绑定几项事件,后面可通过active调用这些事件
tabAdd: function(url, id, name) {
url = systemCommonUtil.getHasVersionUrl(url);
//新增一个Tab项 传入三个参数,分别对应其标题,tab页面的地址,还有一个规定的id,是标签中data-id的属性值
//关于tabAdd的方法所传入的参数可看layui的开发文档中基础方法部分
element.tabAdd('menubox', {
title: name,
content: '',
id: id //规定好的id
})
CustomRightClick(id); //给tab绑定右击事件
},
tabChange: function(id) {
//切换到指定Tab项
element.tabChange('menubox', id); //根据传入的id传入到指定的tab项
},
tabDelete: function(id) {
element.tabDelete("menubox", id); //删除
},
tabDeleteAll: function(ids) { //删除所有
$.each(ids, function(i, item) {
element.tabDelete("menubox", item); //ids是一个数组,里面存放了多个id,调用tabDelete方法分别删除
})
}
};
// 当点击有page-item-click属性的标签时,即左侧菜单栏中内容 ,触发点击事件
$("body").on("click", ".page-item-click", function (e) {
var dataMenu = $(this);
if("win" === dataMenu.attr("data-type")){
window.open(dataMenu.attr("data-url"));
} else {
indexMenu.loadTraditionPage(dataMenu);
}
});
//右键事件
function CustomRightClick(id) {
//取消右键 rightmenu属性开始是隐藏的 ,当右击的时候显示,左击的时候隐藏
$('#LAY_app_tabsheader li').on('contextmenu', function() {
return false;
})
$('#LAY_app_tabsheader, #LAY_app_tabsheader li').click(function() {
$('.rightmenu').hide();
});
//桌面点击右击
$('#LAY_app_tabsheader li').on('contextmenu', function(e) {
var popupmenu = $(".rightmenu");
popupmenu.find("li").attr("data-id", id); //在右键菜单中的标签绑定id属性
//判断右侧菜单的位置
l = ($(document).width() - e.clientX) < popupmenu.width() ? (e.clientX - popupmenu.width()) : e.clientX;
t = ($(document).height() - e.clientY) < popupmenu.height() ? (e.clientY - popupmenu.height()) : e.clientY;
popupmenu.css({
left: l,
top: t
}).show(); //进行绝对定位
return false;
});
}
//加载初始化界面-首页
function initDefaultPage(){
active.tabAdd("../../tpl/mainPage/mainPage.html", "initDefaultPageId", '');
active.tabChange("initDefaultPageId");
}
//菜单点击
$("body").on("click", ".menu-box-none", function (e) {
if($(this).parent().hasClass("layui-nav-itemed")){
$(this).parent().removeClass("layui-nav-itemed");
} else {
$(this).parent().addClass("layui-nav-itemed");
}
});
//关闭操作
$("body").on("click", ".rightmenu li, .right-close-operator dd a", function (e) {
//右键菜单中的选项被点击之后,判断type的类型,决定关闭所有还是关闭当前。
if($(this).attr("data-type") == "closethis") {
var choosePage = $("#LAY_app_tabsheader li[class='layui-this']").attr('lay-id');
if(isNull(choosePage)){
winui.window.msg('请选中当前标签页~', {shift: 6});
return;
}
//如果关闭当前,即根据显示右键菜单时所绑定的id,执行tabDelete
if(choosePage != 'initDefaultPageId'){
active.tabDelete(choosePage);
} else {
winui.window.msg('首页不能关闭~', {shift: 6});
}
} else if($(this).attr("data-type") == "closeall") {
var tabtitle = $("#LAY_app_tabsheader li");
var ids = new Array();
$.each(tabtitle, function(i) {
if($(this).attr("lay-id") != 'initDefaultPageId'){
ids.push($(this).attr("lay-id"));
}
})
//如果关闭所有 ,即将所有的lay-id放进数组,执行tabDeleteAll
active.tabDeleteAll(ids);
} else if($(this).attr("data-type") == "closeother") {//关闭其他标签页
var choosePage = $("#LAY_app_tabsheader li[class='layui-this']").attr('lay-id');
if(isNull(choosePage)){
winui.window.msg('请选中当前标签页~', {shift: 6});
return;
}
var tabtitle = $("#LAY_app_tabsheader li");
var ids = new Array();
$.each(tabtitle, function(i) {
if($(this).attr("lay-id") != 'initDefaultPageId' && $(this).attr("lay-id") != choosePage){
ids.push($(this).attr("lay-id"));
}
})
//如果关闭所有 ,即将所有的lay-id放进数组,执行tabDeleteAll
active.tabDeleteAll(ids);
}
$('.rightmenu').hide(); //最后再隐藏右键菜单
});
// 全屏操作
var isFullScreen = false;// 全屏参数
$("body").on("click", "#isFullScreen", function (e) {
if(!isFullScreen){// 非全屏状态
isFullScreen = true;
fullScreen();
} else {// 全屏状态
isFullScreen = false;
exitFullScreen();
}
});
// 个人中心
$("body").on("click", ".winui-start-syspersonal", function (e) {
// 否则判断该tab项是否以及存在
var isData = false; // 初始化一个标志,为false说明未打开该tab项 为true则说明已有
$.each($("#LAY_app_tabsheader li[lay-id]"), function() {
// 如果点击左侧菜单栏所传入的id 在右侧tab项中的lay-id属性可以找到,则说明该tab项已经打开
if($(this).attr("lay-id") === "syspersonal") {
isData = true;
}
})
if(isData == false) {
// 标志为false 新增一个tab项
active.tabAdd("../../tpl/syspersonal/syspersonal.html", "syspersonal", '个人中心');
}
active.tabChange("syspersonal");
});
// 任务空间
$("body").on("click", ".winui-start-job-space", function (e) {
window.open("../../tpl/jobSpace/jobSpace.html");
});
// 配色方案
$("body").on("click", ".winui-start-color-scheme", function (e) {
layer.open({
type: 2,
title: '配色方案',
shadeClose: true,
closeBtn: 0,
shade: 0.3,
area: ['380px', '95%'],
offset: 'rb',
content: '../../tpl/colorScheme/colorScheme.html'
});
});
// 切换风格
$("body").on("click", ".winui-switching-style", function (e) {
location.href = "../../tpl/index/index.html";
});
var nowType = isNull(getCookie("languageType")) ? "zh" : getCookie("languageType");
if(nowType == "zh"){
// 中文
$("#switchLanguage").find("a").attr("title", "切换英文");
$("#switchLanguage").find("a").html('');
} else {
// 英文
$("#switchLanguage").find("a").attr("title", "切换中文");
$("#switchLanguage").find("a").html('');
}
// 切换语言
$("body").on("click", "#switchLanguage", function (e) {
var nowType = isNull(getCookie("languageType")) ? "zh" : getCookie("languageType");
if(nowType == "zh"){
// 中文,设置为英文
setCookie('languageType', "cn");
} else {
// 英文,设置为中文
setCookie('languageType', "zh");
}
window.location.reload();
});
// 菜单收缩按钮
var notOrContraction = false;// 菜单收缩参数
$("body").on("click", "#notOrContraction", function (e) {
if(!notOrContraction){// 展开状态
notOrContraction = true;
$(".tradition-left").animate({width: "0px"});
$(".tradition-right").animate({width: "100%"});
} else {// 收缩状态
notOrContraction = false;
$(".tradition-left").animate({width: "220px"});
var _width = $("body").width();
$(".tradition-right").animate({width: (_width - 220) + "px"}, function () {
$(this).css({width:"calc(100% - 220px)"})
});
}
});
// 退出
$("body").on("click", ".logout", function (e) {
winui.window.confirm('确认注销吗?', {id: 'exit-confim', icon: 3, title: '提示', skin: 'msg-skin-message', success: function(layero, index){
var times = $("#exit-confim").parent().attr("times");
var zIndex = $("#exit-confim").parent().css("z-index");
$("#layui-layer-shade" + times).css({'z-index': zIndex});
}}, function (index) {
AjaxPostUtil.request({url: reqBasePath + "login003", params: {}, type: 'json', method: "POST", callback: function (json) {
if (etiger != null) {
etiger.socket.close();
}
location.href = "../../tpl/index/login.html";
}, errorCallback: function (json) {
location.href = "../../tpl/index/login.html";
}});
});
});
// 头部桌面列表滚动事件
$("body").on("wheel", ".desktop-menu-box", function (e) {
var _this = $(this);
var right = _this.find("ul").width() - _this[0].offsetWidth;
if (_this.scrollLeft() < right && e.originalEvent.deltaY > 0) {
//禁止事件默认行为(此处禁止鼠标滚轮行为关联到"屏幕滚动条上下移动"行为)
var left = (_this.scrollLeft() + 50);
_this.scrollLeft(left)
}
if (_this.scrollLeft() > 0 && e.originalEvent.deltaY < 0) {
//禁止事件默认行为(此处禁止鼠标滚轮行为关联到"屏幕滚动条上下移动"行为)
var left = (_this.scrollLeft() - 50);
_this.scrollLeft(left)
}
});
// 头部桌面列表点击事件
$("body").on("click", ".desktop-menu-box ul .layui-nav-item", function (e) {
$("#sysMenuListBox").find(".layui-nav-tree").hide();
$(".desktop-menu-box ul .layui-nav-item").removeClass('select');
$(this).addClass('select');
var rowId = $(this).attr("rowid");
$("#sysMenuListBox").find("ul[menurowid='" + rowId + "']").show();
});
// 消息中心
$("body").on("click", "#messageCenter", function (e) {
indexMenu.loadTraditionPage($(this));
});
// 左侧底部功能
$("body").on("click", ".tradition-left-bottom .other-item", function (e) {
var dataMenu = $(this);
var icon = dataMenu.find(".other-item-img").html();
indexMenu.loadTraditionPage(dataMenu, icon);
});
$(window).resize(function () {
});
matchingLanguage();
exports('traditionpageindex', {});
});