// 以下代码是配置layui扩展模块的目录,以及加载主题 layui.config({ base: '/module/' }).extend({ formSelects: 'formSelects/formSelects-v4', treetable: 'treetable-lay/treetable', treetable2: 'treetable2/TreeTable', autocomplete: 'complete/autocomplete', step: 'step-lay/step' }).use(['layer', 'config', 'index', 'element'], function () { var $ = layui.jquery; var layer = layui.layer; let config = layui.config; let index = layui.index; let element = layui.element; // 检查是否登录 if (!config.getToken() || config.getToken() == '') { location.replace('login.html'); return; } // 检查多标签功能是否开启 index.checkPageTabs(); // 获取当前用户信息 index.getUser(function (user) { $('.layui-layout-admin .layui-header').vm(user); index.initLeftNav(); element.render('nav'); index.initRouter(); index.bindEvent(); }); // 加载设置的主题 var theme = layui.data('easyweb').theme; if (theme) { layui.link('/assets/css/theme/' + theme + '.css'); } // 移除loading动画 setTimeout(function () { $('.page-loading').remove(); }, window == top ? 500 : 300); }); // 移除主题 function removeTheme() { layui.jquery('link[id^=layuicss-assetscsstheme]').remove(); } /** * js常用工具类 */ /** * 方法作用:【格式化时间】 * 使用方法 * 示例: * 使用方式一: * var now = new Date(); * var nowStr = now.dateFormat("yyyy-MM-dd hh:mm:ss"); * 使用方式二: * new Date().dateFormat("yyyy年MM月dd日"); * new Date().dateFormat("MM/dd/yyyy"); * new Date().dateFormat("yyyyMMdd"); * new Date().dateFormat("yyyy-MM-dd hh:mm:ss"); * @param format {date} 传入要格式化的日期类型 * @returns {2015-01-31 16:30:00} */ Date.prototype.dateFormat = function (format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(), //second "q+": Math.floor((this.getMonth() + 3) / 3), //quarter "S": this.getMilliseconds() //millisecond } if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } } return format; } /*********************************************************************** * 日期时间工具类 * * 注:调用方式,deteUtil.方法名 * * ********************************************************************/ var dateUtil = { /* * 方法作用:【取传入日期是星期几】 * 使用方法:dateUtil.nowFewWeeks(new Date()); * @param date{date} 传入日期类型 * @returns {星期四,...} */ nowFewWeeks: function (date) { if (date instanceof Date) { var dayNames = new Array("星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); return dayNames[date.getDay()]; } else { return "Param error,date type!"; } }, /** * 比较第一个时间值和第二个时间值的大小 如果第一个大 返回true 否则返回false * **/ compareDate: function (datebegin, dateend) { var datebegindate = dateUtil.strTurnDate(datebegin); var dateenddate = dateUtil.strTurnDate(dateend); if (datebegindate > dateenddate) { return true; } else { return false; } }, /*** * 获取今天的时间字符串 */ getNowDate: function () { var dayTime = new Date(); dayTime.setTime(dayTime.getTime()); return dayTime.getFullYear() + "-" + (dayTime.getMonth() + 1) + "-" + dayTime.getDate(); }, /* * 方法作用:【字符串转换成日期】 * 使用方法:dateUtil.strTurnDate("2010-01-01"); * @param str {String}字符串格式的日期,传入格式:yyyy-mm-dd(2015-01-31) * @return {Date}由字符串转换成的日期 */ strTurnDate: function (str) { var re = /^(\d{4})\S(\d{1,2})\S(\d{1,2})$/; var dt; if (re.test(str)) { dt = new Date(RegExp.$1, RegExp.$2 - 1, RegExp.$3); } return dt; }, /* * 方法作用:【计算2个日期之间的天数】 * 传入格式:yyyy-mm-dd(2015-01-31) * 使用方法:dateUtil.dayMinus(startDate,endDate); * @startDate {Date}起始日期 * @endDate {Date}结束日期 * @return endDate - startDate的天数差 */ dayMinus: function (startDate, endDate) { if (startDate instanceof Date && endDate instanceof Date) { var days = Math.floor((endDate - startDate) / (1000 * 60 * 60 * 24)); return days; } else { return "Param error,date type!"; } }, /** * 判断一个字符串是否日期 * @param {字符串} strDate */ isDate: function (strDate) { if (!strUtil.isEmpty(strDate) && !isNaN(Date.parse(strDate))) { return true; } return false; } }; /*********************************************************************** * 加载工具类 * * 注:调用方式,loadUtil.方法名 * * ********************************************************************/ var loadUtil = { /* * 方法说明:【动态加载js文件css文件】 * 使用方法:loadUtil.loadjscssfile("http://XXXXXXXXXXXXXXXXXX/jquery.js","js") * @param fileurl 文件路径, * @param filetype 文件类型,支持传入类型,js、css */ loadjscssfile: function (fileurl, filetype) { if (filetype == "js") { var fileref = document.createElement('script'); fileref.setAttribute("type", "text/javascript"); fileref.setAttribute("src", fileurl); } else if (filetype == "css") { var fileref = document.createElement('link'); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", fileurl); } if (typeof fileref != "undefined") { document.getElementsByTagName("head")[0].appendChild(fileref); } else { alert("loadjscssfile method error!"); } } }; /*********************************************************************** * 字符串操作工具类 * * 注:调用方式,strUtil.方法名 * * ********************************************************************/ var strUtil = { /* * 判断字符串是否为空 * @param str 传入的字符串 * @returns {} */ isEmpty: function (str) { if (str != '' && str != undefined && str != null) { return false; } else { return true; } }, /* * 判断两个字符串子否相同 * @param str1 * @param str2 * @returns {Boolean} */ isEquals: function (str1, str2) { if (str1 == str2) { return true; } else { return false; } }, /* * 忽略大小写判断字符串是否相同 * @param str1 * @param str2 * @returns {Boolean} */ isEqualsIgnorecase: function (str1, str2) { if (str1.toUpperCase() == str2.toUpperCase()) { return true; } else { return false; } }, /** * 判断是否是数字 * @param value * @returns {Boolean} */ isNum: function (value) { if (value != null && value.length > 0 && isNaN(value) == false) { return true; } else { return false; } }, /** * 判断是否是中文 * @param str * @returns {Boolean} */ isChine: function (str) { var reg = /^([u4E00-u9FA5]|[uFE30-uFFA0])*$/; if (reg.test(str)) { return false; } return true; } }; //从当前页面的url地址中获取参数数据 function getRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } return theRequest; } /** * 1.判断用户是否在登录状态 * 2.自动将没权限的按钮隐藏 * 如果页面有列表,则在列表的 done事件内调用 * 如果页面没有列表,则在页面所有js执行的最后调用此函数 * * 所有需要权限控制显示的按钮,需要在class内加上permissions, * 同时在控件上增加permissions="user-btn-import"这样的自定义属性 * 其中引号内是菜单管理--里面对应的资源的菜单path */ function permissionsInput(res,config) { if(!strUtil.isEmpty(res)&&res.code==401){ config.removeToken(); if(res.msg.includes("Access token expired")){ layer.msg('登录过期', {icon: 2, time: 1500}, function () { location.replace('/login.html'); }, 5000); }else if(res.msg.includes("Invalid access token")){ layer.msg('您的账号在其他地方登陆,请重新登录或修改密码', {icon: 2, time: 1500}, function () { location.replace('/login.html'); }, 5000); } return; } var needpPermissions = $(".permissions"); var permissions = layui.sessionData('tempData')['permissions']; needpPermissions.each(function () { var item = $(this); if (permissions.indexOf(item.attr("permissions")) < 0) { item.hide(); } }) }