123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- /// <reference path="plugins/layui/layui.js" />
- /// <reference path="jquery.min.js" />
- $(function () {
- history.pushState(null, null, document.URL);
- window.addEventListener('popstate', function () {
- history.pushState(null, null, document.URL);
- });
- layui.use(['layer', 'form'], function () { //独立版的layer无需执行这一句
- var $ = layui.jquery, layer = layui.layer, form = layui.form; //独立版的layer无需执行这一句
- //layer.config({
- // skin: 'layui-layer-lan' //一旦设定,所有弹层风格都采用此主题。
- //});
- });
- });
- var ZLPMS = {
- //弹出窗口的回调函数
- callback: new Dictionary(),
- //打开窗口
- //opts
- //data:参数内容(这是自定义的参数内容)
- //title:标题
- //url:打开地址
- //type: 0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
- //area: 窗口的宽高
- //btn: ['按钮1', '按钮2', '按钮3', …]按钮1的回调是yes,而从按钮2开始,则回调为btn2: function(){}
- //yes: 确定后的回调用方法
- //success:窗口打开成功后调用事件
- //return 返回弹出窗口的index
- OpenWindow: function (opts) {
- var defaultOpts = { title: '弹出窗口', url: '', type: 2, area: ['60%', '60%'], offset: 'auto', closeBtn: 1, btn: ['确定', '关闭'], yes: function (index, layero) { }, cancel: function (index, layero) { }, success: function () { }, end: function () { }, maxmin: false, scrollbar: true, shade: [0.2, '#393D49'] };
- $.extend(defaultOpts, opts);//合并参数
- return layer.open({
- type: 2
- , title: defaultOpts.title
- , area: defaultOpts.area
- , shade: defaultOpts.shade
- , maxmin: defaultOpts.maxmin
- , resize: false
- , content: defaultOpts.url
- , btn: defaultOpts.btn
- , yes: defaultOpts.yes
- , btn2: function (index, layero) {
- layer.close(index);
- }
- , zIndex: layer.zIndex
- , success: function (layero) {
- layer.setTop(layero);//设置为顶层
- }
- });
- },
- //打开窗口包含成功回调
- //opts
- //data:参数内容(这是自定义的参数内容)
- //title:标题
- //url:打开地址
- //type: 0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
- //area: 窗口的宽高
- //btn: ['按钮1', '按钮2', '按钮3', …]按钮1的回调是yes,而从按钮2开始,则回调为btn2: function(){}
- //yes: 确定后的回调用方法
- //success:窗口打开成功后调用事件
- //return 返回弹出窗口的index
- OpenWindowSuccess: function (opts) {
- var defaultOpts = { title: '弹出窗口', url: '', type: 2, area: ['60%', '60%'], offset: 'auto', closeBtn: 1, btn: ['确定', '关闭'], yes: function (index, layero) { }, cancel: function (index, layero) { }, success: function () { }, end: function () { }, maxmin: false, scrollbar: true, shade: [0.2, '#393D49'] };
- $.extend(defaultOpts, opts);//合并参数
- return layer.open({
- type: 2
- , title: defaultOpts.title
- , area: defaultOpts.area
- , shade: defaultOpts.shade
- , maxmin: defaultOpts.maxmin
- , resize: false
- , content: defaultOpts.url
- , btn: defaultOpts.btn
- , yes: defaultOpts.yes
- , btn2: function (index, layero) {
- layer.close(index);
- }
- , zIndex: layer.zIndex
- , success: function (layero) {
- layer.setTop(layero);//设置为顶层
- //开放打开成功完成事件
- if (defaultOpts.success) {
- defaultOpts.success(layero);
- }
- }
- });
- },
- //打开一个新窗口,没有回调,没有按钮,所有关闭与提交在窗口内部实现
- //title:标题
- //url:打开地址,
- //width:宽度,允许使用60%,或600px进行设置
- //height:高度
- //return:返回弹出窗口的index
- OpenNewWindow: function (title, url, width, height, callback, endcallback) {
- var that = this;
- var defaultOpts = { title: title, url: url, type: 2, area: [width, height], offset: 'auto', closeBtn: 1, btn: null, maxmin: true, scrollbar: true, shade: [0.2, '#393D49'] };
- var index = layer.open({
- type: 2
- , title: defaultOpts.title
- , area: defaultOpts.area
- , shade: defaultOpts.shade
- , maxmin: defaultOpts.maxmin
- , resize: true
- , content: defaultOpts.url
- , btn: defaultOpts.btn
- , yes: defaultOpts.yes
- , btn2: function (index, layero) {
- layer.close(index);
- }
- , zIndex: layer.zIndex
- , success: function (layero) {
- layer.setTop(layero);//设置为顶层
- }, end: endcallback
- });
- //添加到字典中
- that.callback.add(index, callback);
- },
- //关闭窗口
- //指定关闭层
- CloseWindow: function (index) {
- layer.close(index);
- },
- //关闭layer的弹出层(调用时不能使用top调用,否则无法关闭窗口)
- CloseTopWindow: function (iscallback, data) {
- var that = this;
- var win = this.getTopmostWinodow();
- var wIndex = win.layer.getFrameIndex(window.name);
- win.layer.close(wIndex);
- if (win.ZLPMS.callback && iscallback) {
- //执行回调
- var callback = win.ZLPMS.callback.find(wIndex);
- if (callback) {//执行回调
- callback();
- //移除字典中的内容
- win.ZLPMS.callback.remove(wIndex);
- }
- }
- },
- //加载窗口
- //text:加载的文本
- //time:自动关闭时间(ms),0表示 不关闭
- //返回值为index,后面关闭需要使用到
- Loading: function (text, time) {
- return layer.open({
- type: 3,
- content: text,
- shade: [0.7, '#393D49'],
- time: time,
- zIndex: layer.zIndex,
- success: function (layero) {
- layer.setTop(layero);//设置为顶层
- }
- });
- },
- //显示加载窗口不关闭
- //返回窗口的index
- Loading2: function (text) {
- return layer.msg(text, {
- icon: 16, shade: 0.1, zIndex: layer.zIndex
- });
- },
- //加载动画(t:0-2)
- Loading3: function (t) {
- return layer.load(t);
- },
- //关闭窗口
- //指定索引
- UnLoading: function (index) {
- layer.close(index);
- },
- //弹出警告消息
- //text:文本内容,icon:图标:0-10
- Alert: function (text, icon) {
- layer.alert(text, { icon: icon, zIndex: layer.zIndex }, function (index) {
- layer.close(index);
- });
- },
- //确定的对话框
- //text内容,callback的回调用方法,cancel的回调用方法
- //icon:0-10,3为?号
- Confirm: function (text, icon, callback) {
- return layer.confirm(text, {
- icon: icon, title: '提示', zIndex: layer.zIndex,
- success: function (layero, index) {
- $("*").blur();
- this.enterEsc = function (event) {
- if (event.keyCode === 13) {
- layero.find(".layui-layer-btn0").click();
- return false; //阻止系统默认回车事件
- }
- };
- $(document).on('keydown', this.enterEsc); //监听键盘事件,关闭层
- },
- end: function () {
- $(document).off('keydown', this.enterEsc); //解除键盘关闭事件
- }
- },
- callback, function (index) {
- layer.close(index);
- });
- },
- //消息提示
- //text:文本内容,time,如果不写是3s关闭
- //icon:0-10
- Msg: function (text, icon, time, callback) {
- layer.msg(text, {
- icon: icon
- , time: 2000 //2秒关闭(如果不配置,默认是3秒)
- , zIndex: layer.zIndex
- }, callback)
- },
- //指定元素提示
- //text,内容,elementid:元素id
- //opts:tips: [3, '#0FA6D8'], //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
- Tips: function (text, elementid, opts) {
- var obj = $('#' + elementid);
- layer.tips(text, obj, opts);
- },
- //输入框简单值
- //msg:显示的文本,type://输入框类型,支持0(文本)默认1(密码)2(多行文本),callback(text);
- Prompt: function (msg, type, callback) {
- layer.prompt({ title: msg, formType: type }, function (text, index) {
- layer.close(index);
- callback(text);
- });
- },
- //获取已打开的窗口Dom对象
- GetChildFrame: function (layero) {
- return top.window[layero.find('iframe')[0]['name']];
- },
- //表单数据转化为对象。参数:表单id
- FormToObject: function (formId) {
- var array = $("#" + formId).serializeArray();
- var rs = new Object();
- for (var i = 0; i < array.length; i++) {
- //重复就在后面加上
- if (rs[array[i].name]) {
- rs[array[i].name] = rs[array[i].name] + "," + array[i].value;
- }
- else {
- rs[array[i].name] = array[i].value;
- }
- }
- return rs;
- },
- //设置表单值
- SetFormVal: function (id, data) {
- layui.use(['form'], function () {
- var form = layui.form;
- form.val(id, data);
- });
- },
- //通过ajax执行Get调用
- //url:调用地址, data: 数据包, callback :回调函数function(data){}
- GetAjax: function (url, data, callback) {
- var that = this;
- var idx = that.Loading2('数据提交中,请稍候...');
- $.ajax({
- url: url,
- data: data,
- method: 'get',
- cache: false,
- success: callback, //成功后回调函数
- error: function (err) {//显示错误消息(直接显示 系统对话框)
- //alert(err.responseText);
- that.Alert(err.responseText, 0);
- },
- complete: function () {//完成执行(无论对错)
- that.CloseWindow(idx);
- }
- });
- },//end GetAjax
- //通过ajax执行Post提交
- PostAjax: function (url, data, callback) {
- var that = this;
- var idx = that.Loading2('数据提交中,请稍候...');
- $.ajax({
- url: url,
- data: data,
- method: 'post',
- cache: false,
- success: callback, //成功后回调函数
- error: function (err) {//显示错误消息
- that.Alert(err.responseText, 0);
- },
- complete: function () {//完成执行(无论对错)
- that.CloseWindow(idx);
- }
- });
- },//end post ajax
- //获取父级顶级窗口
- getTopmostWinodow: function () {
- var win = window;
- while (win.frameElement) {
- win = win.parent;
- }
- return win;
- },
- //设置启用与禁用图标,value:1启用,其它禁用
- SetIsActiveIcon: function (value) {
- if (value == 1) {
- return "<i class=\"fa fa-3x fa-toggle-on\" style=\"color:#8583fc;\"></i>";
- } else {
- return "<i class=\"fa fa-toggle-off\"></i>";
- }
- },
- //设置显示图标
- SetIcons: function (icons, color) {
- return "<i class='" + icons + "' style=\"color:" + color + "\"></i>";
- },
- //设置工具栏的按钮
- SetToolbarButtons: function (buttons, groupname) {
- if (buttons.length > 0) {
- //读取所有按钮
- for (var i = 0; i < buttons.length; i++) {
- var button = buttons[i];
- var id = button.标识;
- var name = button.名称;
- var icons = button.图标;
- var colors = button.颜色;
- var iconhtml = "<i class=\"" + icons + "\" style=\"color:" + colors + "\">" + "<i style='font-size:14px;color:#000'> " + name + "<i></i>"
- var html = "<a href='#' id='" + id + "' class='easyui-linkbutton' data-options=\"plain:true\">" + iconhtml + "</a>";
- $('#' + groupname).append(html);
- }//end for
- } else {
- $('#' + groupname).append("<p>该用户角色没有对当前模块任何的操作权限,或请检查该模块是否分配按钮</p>");
- }
- },
- /**
- * 绑定layui下拉框
- * @param {any} option
- * {
- "url":"",
- "method": "Get",
- "key":"",
- "text":"",
- "filter":"",
- "form":null
- }
- */
- BindLayUiSelect: function (option) {
- $.ajax({
- url: option.url,
- method: 'get',
- async: false, // 同步执行
- success: function (data) {
- if (option.dom && Array.isArray(data) && data.length > 0) {
- let html = '<option value=""></option>';
- html += $.map(data, item => {
- return `<option value="${item[option.key]}">${item[option.text]}</option>`
- }).join("");
- option.dom.html(html);
- } else {
- option.dom.html('<option value=""></option>')
- }
- }, //成功后回调函数
- error: function (err) {//显示错误消息
- option.dom.html('<option value=""></option>')
- },
- complete: function () {
- option.form.render(option.dom);
- }
- });
- },
- GetAPi(url) {
- let ret = null;
- $.ajax({
- url: url,
- method: 'get',
- async: false, // 同步执行
- success: function (data) {
- ret = data;
- }, //成功后回调函数
- error: function (err) {//显示错误消息
- console.error(err);
- }
- });
- return ret;
- },
- PostAPi(url, data) {
- let ret = null;
- $.ajax({
- url: url,
- data: JSON.stringify(data),
- method: 'post',
- async: false, // 同步执行
- success: function (data) {
- ret = data;
- }, //成功后回调函数
- error: function (err) {//显示错误消息
- console.error(err);
- }
- });
- return ret;
- },
- formatterData: function (value, rowData, index) {
- if (value === "0001-01-01 00:00:00") {
- return "";
- }
- return value;
- },
- //时间比较
- compareTime: function (start, end, textTip) {
- var startTime = new Date(start.replace("-", "/").replace("-", "/"));
- var endTime = new Date(end.replace("-", "/").replace("-", "/"));
- if (startTime > endTime) {
- top.ZLPMS.Msg(textTip);
- return false;
- }
- return true
- }
- };
- //获取url中的参数
- function getQueryString(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- var r = window.location.search.substr(1).match(reg);
- if (r != null) return unescape(r[2]);
- return null;
- }
- /*字典 Dictionary类,使用方法
- var pbook = new Dictionary();
- pbook.add("Mike", "723");
- pbook.add("Jennifer", "987");
- pbook.add("Jonathan", "666");
- pbook.showAll();//Mike -> 723; Jennifer -> 987; Jonathan -> 666;
- pbook.count();//3
- pbook.remove("Jennifer");
- */
- function Dictionary() {
- //字典数组
- this.datastore = new Array();
- //添加字典
- this.add = function (key, value) {
- this.datastore[key] = value;
- };
- //查找字典
- this.find = function (key) {
- return this.datastore[key];
- };
- //移除内容
- this.remove = function (key) {
- delete this.datastore[key];
- };
- //在控制台显示打印所有字典内容
- this.showAll = function () {
- var str = "";
- for (var key in this.datastore) {
- str += key + " -> " + this.datastore[key] + "; "
- }
- console.log(str);
- };
- //总数量
- this.count = function () {
- var n = 0;
- for (var key in Object.keys(this.datastore)) {
- ++n;
- }
- return n;
- };
- //清空内容
- this.clear = function () {
- for (var key in this.datastore) {
- delete this.datastore[key];
- }
- };
- }
|