/** * 通用工具库 */ var firstText; layui.define(['form', 'element', 'vue', 'layer', 'laydate', 'jquery', 'table'], function (exports) { var form = layui.form, layer = layui.layer, element = layui.element, laydate = layui.laydate, $ = layui.jquery, table = layui.table; //字符串常量 var MOD_NAME = 'hhweb', THIS = 'layui-this', SHOW = 'layui-show', HIDE = 'layui-hide', DISABLED = 'layui-disabled'; //外部接口 var hhweb = { config: {} //全局配置项 //设置全局项 , set: function (options) { var that = this; that.config = $.extend({}, that.config, options); return that; } //事件监听 , on: function (events, callback) { return layui.onevent.call(this, MOD_NAME, events, callback); } //删除 , del: function (url, dataids, callback) { if (dataids == undefined || dataids == "" || dataids.length == 0) { layer.alert("至少选择一条记录", { icon: 2, shadeClose: true, title: "错误信息" }); return; } layer.confirm('真的删除么', function (index) { $.post(url, { ids: dataids }, function (data) { if (data.Code == 200) { if (callback != undefined) callback(); } else { layer.msg(data.Message); } }, "json"); layer.close(index); }); } , ValidTextVal(obj, type, msg) { if (type == "NumText") { var oldlength = $(obj).val().length; $(obj).val($(obj).val().replace(/\D/g, '')); if ($(obj).val().length != oldlength) { layer.msg(msg) } } if (type == "NumDecText") { var oldlength = $(obj).val().length; $(obj).val($(obj).val().replace(/[^0-9.]/g, '')); if ($(obj).val().length != oldlength) { layer.msg(msg) } } } , DomEnable(dom) { $(dom).removeAttr("disabled"); $(dom).css("background-color", "white"); } , DomDisable(dom) { } , DomDisableImportant(dom) { $(dom).attr({ disabled: "disabled" }); $(dom).css("background-color", "#eee"); } , CheckRequired(filterId, func) { var filter = ".required"; if (func != undefined) { filter = filter + func; } if (filterId != undefined) { filter = filterId + " " + filter; } var rtn = null; var required = $(filter); required.each(function () { if ($(this).parent().parent().css("display") == "block") { if ($(this).val() == null || $(this).val().replace(/^\s+|\s+$/g, "") == "") { rtn = $(this); return false; } } }); return rtn; } , blink(selector) { $(selector).fadeOut('normal', function () { $(this).fadeIn('normal', function () { blink(this); }); }); } //表格列 恢复记忆 , ColumnSetting(tablelid, colsAarr) { var account = window.localStorage.getItem("Account"); var paths = window.location.pathname.split("/"); var controller = paths[paths.length - 2]; var cookieName = account + "_" + controller + "_" + tablelid; var cookieval = window.localStorage.getItem(cookieName); if (cookieval == null) return colsAarr; var colsetting = JSON.parse(cookieval); colsAarr[0].forEach(function (item, len) { if (colsetting != null) { if (colsetting[item.field] !== undefined) { item.hide = !(colsetting[item.field]); } } }); return colsAarr; } } $(document).ready(function () { $('.layui-date').each(function () { laydate.render({ elem: this , btns: ['confirm'] , type: "datetime" , done: function (value, date, endDate) { try { var Id = this.elem[0].attributes["name"].nodeValue; var Expression = this.elem[0]['__v_model'].expression; for (var item in hhweb.Config) { var vueobj = item; var vueclass = hhweb.Config[item]; if (vueobj === Id) { vueclass[Expression] = value; } } } catch (e) { } } }); }); $(".NumText").keyup(function () { hhweb.ValidTextVal(this, "NumText", "请输入整数"); }).bind("paste", function () { //CTR+V事件处理 hhweb.ValidTextVal(this, "NumText", "请输入整数"); }).css("ime-mode", "disabled"); //CSS设置输入法不可用 $(".NumDecText").keyup(function () { hhweb.ValidTextVal(this, "NumDecText", "请输入数值"); }).bind("paste", function () { //CTR+V事件处理 hhweb.ValidTextVal(this, "NumDecText", "请输入数值"); }).css("ime-mode", "disabled"); //CSS设置输入法不可用 $(document).on('keydown', function (e) { //禁用页面F5刷新 if (e.which == 116) { e.preventDefault(); //Skip default behavior of the enter key } //CTRL+ENTER 提交 if (e.ctrlKey && e.keyCode == 13) { if ($(".layui-layer-btn0").length > 0) { $(".layui-layer-btn0").click(); } } //ESC 取消 if (e.keyCode == 27) { if ($(".layui-layer-close1").length > 0) { $(".layui-layer-close1").click(); } } }) //单击行勾选checkbox事件 $(document).on("click", ".layui-table-body table.layui-table tbody tr", function () { var index = $(this).attr('data-index'); var tableBox = $(this).parents('.layui-table-box'); //存在固定列 if (tableBox.find(".layui-table-fixed.layui-table-fixed-l").length > 0) { tableDiv = tableBox.find(".layui-table-fixed.layui-table-fixed-l"); } else { tableDiv = tableBox.find(".layui-table-body.layui-table-main"); } var checkCell = tableDiv.find("tr[data-index=" + index + "]").find("td div.laytable-cell-checkbox div.layui-form-checkbox I"); if (checkCell.length > 0) { checkCell.click(); } }); $(document).on("click", "td div.laytable-cell-checkbox div.layui-form-checkbox", function (e) { e.stopPropagation(); }); form.on('checkbox()', function (data) { try { var attributes = data.elem.attributes; if (attributes['lay-filter'] !== undefined) { if (attributes['lay-filter'].nodeValue == 'LAY_TABLE_TOOL_COLS') { var tb = data.elem.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode; var account = window.localStorage.getItem("Account"); var paths = window.location.pathname.split("/"); var controller = paths[paths.length - 2]; var tablelid = tb.previousElementSibling.id; var checkflag = data.elem.checked; var colname = attributes['name'].nodeValue; var cookieName = account + "_" + controller + "_" + tablelid; var cookieval = window.localStorage.getItem(cookieName); var colsetting = {}; if (cookieval == undefined) { colsetting[colname] = checkflag; } else { colsetting = JSON.parse(cookieval); colsetting[colname] = checkflag; } window.localStorage.setItem(cookieName, JSON.stringify(colsetting)); console.log("cookieName:" + cookieName + "=" + JSON.stringify(colsetting)); } } } catch (e) { } }); //所有文本框绑定事件 var input = $('input:text:not(:disabled)'); input.each(function () { if (firstText == undefined) { firstText = $(this); } var thisInfo = $(this); thisInfo.bind({ keydown: function (e) { var n = input.length; if (e.which == 13) { e.preventDefault(); //Skip default behavior of the enter key if ($(this).val() != "") { var nextIndex = input.index(this) + 1; if (nextIndex < n) { input[nextIndex].focus(); } else { input[nextIndex - 1].blur(); } } else { $(this).focus(); } } }, focus: function () { if (thisInfo.attr("readonly") == "readonly") return; thisInfo.css("background-color", "yellow"); }, blur: function () { if (thisInfo.attr("readonly") == "readonly") return; thisInfo.css("background-color", "white"); } }); }); $(firstText).focus(); }); exports(MOD_NAME, hhweb); });