/*eslint eqeqeq: ["error", "smart"]*/ DONOTUSE_TABLAYID = undefined; if (typeof String.prototype.startsWith != 'function') { String.prototype.startsWith = function (prefix) { return this.slice(0, prefix.length) === prefix; }; } if (typeof Array.prototype.removeByID != 'function') { Array.prototype.removeByID = function (val) { var index = -1; for (var i = 0; i < this.length; i++) { if (this[i].ID == val.ID) { index = i; break; } } if (index > -1) { this.splice(index, 1); } }; } window.ff = { DONOTUSE_Text_LoadFailed: "", DONOTUSE_Text_SubmitFailed: "", DONOTUSE_Text_PleaseSelect: "", DONOTUSE_Text_FailedLoadData: "", SetCookie: function (name, value, allwindow) { try { var cookiePrefix = '', windowGuid = ''; if ("undefined" !== typeof DONOTUSE_COOKIEPRE) { cookiePrefix = DONOTUSE_COOKIEPRE; } if ("undefined" !== typeof DONOTUSE_WINDOWGUID) { windowGuid = DONOTUSE_WINDOWGUID; } if (allwindow) { $.cookie(cookiePrefix + name, value); } else { $.cookie(cookiePrefix + windowGuid + name, value); } } catch (e) { } }, GetCookie: function (name, allwindow) { try { var cookiePrefix = '', windowGuid = ''; if ("undefined" !== typeof DONOTUSE_COOKIEPRE) { cookiePrefix = DONOTUSE_COOKIEPRE; } if ("undefined" !== typeof DONOTUSE_WINDOWGUID) { windowGuid = DONOTUSE_WINDOWGUID; } if (allwindow) { return $.cookie(cookiePrefix + name); } else { return $.cookie(cookiePrefix + windowGuid + name); } } catch (e) { } }, GetSelections: function (gridId) { var checkStatus = layui.table.checkStatus(gridId); var data = checkStatus.data; var ids = []; if (data.length > 0) { for (var i = 0; i < data.length; i++) { ids.push(data[i].ID); } } return ids; }, GetNonSelections: function (gridId) { var table = layui.table , nums = 0 , ids = [] // 未选中id , data = table.cache[gridId] || []; //计算未选中个数 layui.each(data, function (i, item) { if (item.constructor === Array) { invalidNum++; //无效数据,或已删除的 return; } if (!item[table.config.checkName]) { nums++; ids.push(item.ID); } }); return ids; }, GetSelectionData: function (gridId) { return layui.table.checkStatus(gridId).data; }, GetNonSelectionData: function (gridId) { var table = layui.table , nums = 0 // 未选中个数 , invalidNum = 0 , arr = [] // 未选中数据 , data = table.cache[gridId] || []; //计算未选中个数 layui.each(data, function (i, item) { if (item.constructor === Array) { invalidNum++; //无效数据,或已删除的 return; } if (!item[table.config.checkName]) { nums++; arr.push(table.clearCacheKey(item)); } }); return arr; }, GetIsSelectAll: function (gridId) { return layui.table.checkStatus(gridId).isAll; }, Alert: function (msg, title) { var layer = layui.layer; if (title != undefined) { layer.alert(msg, { title: title }); } else { layer.alert(msg); } }, Msg: function (msg, title) { var layer = layui.layer; if (title != undefined) { layer.msg(msg, { title: title }); } else { layer.msg(msg); } }, LoadPage: function (url, newwindow, title, para) { this.SetCookie("windowids", null); var layer = layui.layer; var index = layer.load(2); url = decodeURIComponent(url); furl = url; var re = /(\/_framework\/outside\?url=)(.*?)$/ig; url = url.replace(re, function (match, p1, p2) { return p1 + encodeURIComponent(p2); }); if (newwindow === true || para !== undefined) { var getpost = "GET"; if (para !== undefined) { getpost = "Post"; } $.ajax({ type: getpost, url: url, data: para, success: function (data, textStatus, request) { if (request.getResponseHeader('IsScript') === 'true') { eval(data); } else { data = '
' + data + "
"; var child = window.open("/Home/PIndex#/_framework/redirect"); child.document.close(); $(child.document).ready(function () { setTimeout(function () { $('#LAY_app_body', child.document).html(data); $(child.document).attr("title", title); }, 500); }); } layer.close(index); }, error: function (a, b, c) { layer.close(index); if (a.responseText !== undefined && a.responseText !== "") { layer.alert(a.responseText); } else { layer.alert(ff.DONOTUSE_Text_LoadFailed); } } }); } else { layer.close(index); location.hash = url; } }, LoadPage1: function (url, where) { url = url.toLowerCase(); if (url.indexOf("http://") === 0 || url.indexOf("https://") === 0) { $('#' + where).html(""); $('#' + where).css("overflow-y", "auto"); } else { var layer = layui.layer, index = layer.load(2); $.ajax({ url: decodeURIComponent(url), type: 'GET', success: function (data) { $('#' + where).html(data); $('#' + where).css("overflow-y", "scroll"); layer.close(index); }, error: function (xhr, status, error) { layer.close(index); layer.alert(ff.DONOTUSE_Text_LoadFailed); }, complete: function () { ff.SetCookie("windowids", null); } }); } }, GetPostData: function (formId) { var richtextbox = $("#" + formId + " textarea"); for (var i = 0; i < richtextbox.length; i++) { var ra = richtextbox[i].attributes['layeditindex']; if (ra !== undefined && ra != null) { var rindex = ra.value; layui.layedit.sync(rindex); } } var combobox = $('#' + formId + ' :checkbox'); var datastr = $('#' + formId).serialize(); var checkboxes = $('#' + formId + ' :checkbox'); for (i = 0; i < checkboxes.length; i++) { var ck = checkboxes[i]; if (ck.checked === false && (ck.value === 'true' || ck.value === 'false')) { datastr += "&" + ck.name + "=false"; } } return datastr; }, RenderForm: function (formId) { var comboxs = $(".layui-form[lay-filter=" + formId + "] div[wtm-ctype='combo']"); layui.use(['form'], function () { var form = layui.form.render(null, formId); }); }, PostForm: function (url, formId, divid, searchervm) { var layer = layui.layer; var index = layer.load(2); if (url === undefined || url === "") { url = $("#" + formId).attr("action"); } var d = null; if (searchervm !== undefined && searchervm !== null && searchervm !== "") { d = ff.GetSearchFormData(formId, searchervm); } else { d = ff.GetFormData(formId) } $.ajax({ cache: false, type: "POST", url: url, data: d, async: true, error: function (request) { layer.close(index); alert(ff.DONOTUSE_Text_SubmitFailed); }, success: function (data, textStatus, request) { if (request.getResponseHeader('IsScript') === 'true') { eval(data); } else { var inlayer = $("#" + formId).parents(".layui-layer-content"); if (inlayer !== undefined && inlayer.length > 0) { data = "
" + data + "
"; } else { data = "
" + data + "
"; } $("#" + divid).parent().html(data); } layer.close(index); } }); }, BgRequest: function (url, para, divid) { var layer = layui.layer; var index = layer.load(2); var getpost = "GET"; if (para !== undefined) { getpost = "Post"; } $.ajax({ cache: false, type: getpost, url: url, data: para, async: true, error: function (request) { layer.close(index); if (request.responseText !== undefined && request.responseText !== "") { layer.alert(request.responseText); } else { layer.alert(ff.DONOTUSE_Text_LoadFailed); } }, success: function (str, textStatus, request) { layer.close(index); if (request.getResponseHeader('IsScript') === 'true') { eval(str); } else { data = "
" + str + "
"; var p = $("#" + divid).parent(); p.html(data); } } }); }, OpenDialog: function (url, windowid, title, width, height, para, maxed) { var layer = layui.layer; var index = layer.load(2); var wid = this.GetCookie("windowids"); var owid = wid; if (wid === null || wid === '') { wid = windowid; } else { wid += "," + windowid; } this.SetCookie("windowids", wid); if ("undefined" !== typeof DONOTUSE_WINDOWGUID) { this.SetCookie("windowguid", DONOTUSE_WINDOWGUID, true); } var getpost = "GET"; if (para !== undefined) { getpost = "Post"; } $.ajax({ cache: false, type: getpost, url: url, data: para, async: true, error: function (xhr) { layer.close(index); let location = xhr.getResponseHeader("Location"); if (location) { window.location = location; return false; } ff.SetCookie("windowids", owid); if (xhr.responseText !== undefined && xhr.responseText !== "") { layer.alert(xhr.responseText); } else { layer.alert(ff.DONOTUSE_Text_LoadFailed); } }, success: function (str, textStatus, request) { layer.close(index); max = true; if (request.getResponseHeader('IsScript') === 'true') { ff.SetCookie("windowids", owid); eval(str); } else { str = "
" + str + "
"; var area = 'auto'; if (width > document.body.clientWidth) { max = false; maxed = true; } if (width !== undefined && width !== null && height !== undefined && height !== null) { area = [width + 'px', height + 'px']; } if (width !== undefined && width !== null && (height === undefined || height === null)) { area = width + 'px'; } if (title === undefined || title === null || title === '') { title = false; max = false; } var oid = layer.open({ type: 1 , title: title , area: area , maxmin: max , shade: 0.8 , btn: [] , id: windowid //设定一个id,防止重复弹出 , content: str //, success: function (layero, index) { // if (height == undefined || height == null || height == '' || max == false){ // document.getElementById('layui-layer' + index).getElementsByClassName('layui-layer-content')[0].style.overflow = 'unset'; // } //} , resizing: function (layero) { ff.triggerResize(); $(layero).find("div[ischart = '1']").each( function (index) { eval($(this).attr('id') + 'Chart.resize();'); } ); } , full: function (layero) { ff.triggerResize(); $(layero).find("div[ischart = '1']").each( function (index) { eval($(this).attr('id') + 'Chart.resize();'); } ); } , restore : function (layero) { ff.triggerResize(); $(layero).find("div[ischart = '1']").each( function (index) { eval($(this).attr('id') + 'Chart.resize();'); } ); } , end: function () { if (ff.GetCookie("windowids") === wid) { ff.SetCookie("windowids", owid); } } }); if (maxed === true) { layer.full(oid); ff.triggerResize(); } } } }); }, OpenDialog2: function (url, windowid, title, width, height, tempId, para) { var layer = layui.layer; var index = layer.load(2); var wid = this.GetCookie("windowids"); var owid = wid; if (wid === null || wid === '') { wid = windowid; } else { wid += "," + windowid; } this.SetCookie("windowids", wid); this.SetCookie("windowguid", DONOTUSE_WINDOWGUID, true); var getpost = "GET"; if (para !== undefined) { getpost = "Post"; } $.ajax({ cache: false, type: getpost, url: url, data: para, async: true, error: function (request) { layer.close(index); ff.SetCookie("windowids", owid); if (request.responseText !== undefined && request.responseText !== "") { layer.alert(request.responseText); } else { layer.alert(ff.DONOTUSE_Text_LoadFailed); } }, success: function (str) { var regGridId = /<\s{0,}table\s+.*\s+id\s{0,}=\s{0,}"(.*)"\s+lay-filter="\1"\s{0,}.*?>\s{0,}<\s{0,}\/\s{0,}table\s{0,}>/im; var regGridVar = /wtVar_(.*)\s{0,}=\s{0,}table.render\([a-zA-Z0-9_]{1,}option\)/im; if ($(tempId).length > 0 && regGridId.test(str) && regGridVar.test(str)) { // 获取gridId var gridId = regGridId.exec(str)[1]; var gridVar = 'wtVar_' + regGridVar.exec(str)[1]; var template = $(tempId)[0].innerHTML; template = template.replace(/[$]{2}script[$]{2}/img, ""); //get old gridid try { var oldgridid = /table[.]reload\('(.*)',\s{0,}{/img.exec(template)[1]; //替换gridId template = template.replace(new RegExp(oldgridid, "gim"), gridId); } catch (e) { } str = str.replace('$$SearchPanel$$', template); } layer.close(index); var area = 'auto'; if (width !== undefined && width !== null && height !== undefined && height !== null) { area = [width + 'px', height + 'px']; } if (width !== undefined && width !== null && (height === undefined || height === null)) { area = width + 'px'; } var max = true; if (title === undefined || title === null || title === '') { title = false; max = false; } if (width > document.body.clientWidth) { max = false; } var oid = layer.open({ type: 1 , title: title , area: area , maxmin: max , btn: [] , shade: 0.8 , id: windowid //设定一个id,防止重复弹出 , content: str , end: function () { ff.SetCookie("windowids", owid); } }); if (width > document.body.clientWidth) { layer.full(oid); } } }); }, CloseDialog: function () { var layer = layui.layer; var wid = this.GetCookie("windowids"); if (wid !== null && wid !== '') { var wids = wid.split(","); var windowid = wids.pop(); var index = $('#' + windowid).parent('.layui-layer').attr("times"); layer.close(index); this.SetCookie("windowids", wids.join()); } else { if (layui.setter == undefined || layui.setter.pageTabs == undefined) { window.close(); } else if (layui.setter.pageTabs === false || $('.layadmin-tabsbody-item').length === 0) { $('#LAY_app_body').html(''); } else { layui.admin.closeThisTabs(); } } }, ResizeChart: function (id) { if (layui == undefined ) { return; } if (id === undefined || id === null || id === '') { layui.use(['admin'], function () { layui.admin.resize(function () { { $("div[ischart = '1']").each( function (index) { eval($(this).attr('id') + 'Chart.resize();'); } ); } }); } ); } else { layui.use(['admin'], function () { layui.admin.resize(function () { { $("#"+id).find("div[ischart = '1']").each( function (index) { eval($(this).attr('id') + 'Chart.resize();'); } ); } }); } ); } }, ChainChange: function (url, self) { var form = layui.form; var linkto = self.attributes["wtm-linkto"]; if (linkto == undefined) { return; } var formid = self.closest("form").id var target = $('#' + formid).find('#' + linkto.value); if (target.length == 0) { return; } var controltype = target.attr("wtm-ctype"); var targetfilter = target.attr("lay-filter"); var targetname = target.attr("wtm-name"); var ismulticombo = target.attr("wtm-combo") != undefined; var targetid = target.attr("id"); var comboid = targetid; if (controltype == undefined) { controltype = ""; } if (targetfilter == undefined) { targetfilter = ""; } targetfilter += "div"; //clear switch (controltype) { case "combo": window[comboid].update({ data: [] }); break; case "checkbox": target.html(''); form.render('checkbox', targetfilter); break; case "radio": target.html(''); form.render('radio', targetfilter); break; case "tree": window[comboid].update({ data: [] }); break; case "transfer": layui.transfer.reload(targetid, { data: [] }); default: } if (url != "") { $.get(url, {}, function (data, status) { if (status === "success") { var i = 0; var item = null; if (controltype === "tree") { window[comboid].update({ data: ff.getTreeItems(data.Data) }); } if (controltype === "transfer") { layui.transfer.reload(targetid, { data: ff.getTransferItems(data.Data) }); } if (controltype === "combo") { window[comboid].update({ data: ff.getComboItems(data.Data) }); } if (controltype === "checkbox") { for (i = 0; i < data.Data.length; i++) { item = data.Data[i]; if (item.Selected === true) { target.append(""); } else { target.append(""); } } form.render('checkbox', targetfilter); } if (controltype === "radio") { for (i = 0; i < data.Data.length; i++) { item = data.Data[i]; if (item.Selected === true) { target.append(""); } else { target.append(""); } } form.render('radio', targetfilter); } } else { layer.alert(ff.DONOTUSE_Text_FailedLoadData); } }); } ff.ChainChange("", target[0], ""); }, LoadComboItems: function (controltype,url, controlid, targetname,svals, cb) { var target = $("#" + controlid); var targetfilter = target.attr("lay-filter"); var ismulticombo = target.attr("wtm-combo") != undefined; if (svals == undefined || svals == null) { svals = []; } $.get(url, {}, function (data, status) { if (status === "success") { var i = 0; var item = null; if (controltype === "tree") { var da = ff.getTreeItems(data.Data, svals); window[controlid].update({ data: da }); if (cb !== undefined && cb != null) { cb(); } } if (controltype == "transfer") { layui.transfer.reload(controlid, { data: ff.getTransferItems(data.Data, svals) }); } if (controltype === "combo") { var da = ff.getComboItems(data.Data, svals); window[controlid].update({ data: da }); } if (controltype === "checkbox") { for (i = 0; i < data.Data.length; i++) { item = data.Data[i]; if (item.Selected === true || svals.indexOf(item.Value) > -1) { target.append(""); } else { target.append(""); } } layui.form.render('checkbox', targetfilter + "div"); } if (controltype === "radio") { for (i = 0; i < data.Data.length; i++) { item = data.Data[i]; if (item.Selected === true || svals.indexOf(item.Value) > -1) { target.append(""); } else { target.append(""); } } layui.form.render('radio', targetfilter + "div"); } } else { layer.alert(ff.DONOTUSE_Text_FailedLoadData); } }); }, GetFormArray: function (formId) { var searchForm = $('#' + formId), filter = [], fieldElem = searchForm.find('input,select,textarea'); layui.each(fieldElem, function (_, item) { if (!item.name) return; if (/^checkbox|radio$/.test(item.type) && !item.checked) return; if (item.value !== null && item.value !== "") filter.push({ name: item.name, value: item.value }); }); return filter; }, GetFormData: function (formId) { var richtextbox = $("#" + formId + " textarea"); for (var i = 0; i < richtextbox.length; i++) { var ra = richtextbox[i].attributes['layeditindex']; if (ra !== undefined && ra != null) { var rindex = ra.value; layui.layedit.sync(rindex); } } var searchForm = $('#' + formId), filter = {}, filterback = {}, fieldElem = searchForm.find('input,select,textarea'); var tables = $('#' + formId + ' table[id]'); for (var i = 0; i < tables.length; i++) { var tableid = tables[i].id; var loaddata = layui.table.cache[tableid]; if (loaddata == undefined || loaddata.length == 0) { var subpro = tables[i].attributes["subpro"].value; if (subpro != undefined && subpro != "") { filter[subpro + ".length"] = "0"; } } } var xselect = searchForm.find("div[wtm-ctype='tree'],div[wtm-ctype='combo']"); layui.each(xselect, function (_, item) { var val = window[item.id].getValue('value'); if (val.length > 1) { fieldElem = fieldElem.filter(function (index) { return this.name != item.attributes["wtm-name"].value; }) $.each(val, function (i, v) { fieldElem.push({ name: item.attributes["wtm-name"].value, value: v }); }); } }); var check = {}; layui.each(fieldElem, function (_, item) { if (!item.name) return; if (/^checkbox$/.test(item.type) && !item.checked) { if (item.value === "true") { filter[item.name] = false; } return; } if (/^radio$/.test(item.type) && !item.checked) { return; } var itemname = item.name; if (/_DONOTUSE_(.*?)\[(\d?)\]\.(.*?)$/.test(itemname)) { var name1 = RegExp.$1; var number = RegExp.$2; var name2 = RegExp.$3; if (filterback.hasOwnProperty(name1) == false && filter.hasOwnProperty(name1 + "[" + number + "]." + name2) == false) { filterback[name1] = 1; } return; } if (/_DONOTUSE_(.*?)$/.test(itemname)) { var name1 = RegExp.$1; if (filterback.hasOwnProperty(name1) == false && filter.hasOwnProperty(name1) == false) { filterback[name1] = 1; } return; } var issub = false; if (/(.*?)\[(\-?\d?)\]\.(.*?)$/.test(itemname)) { var name1 = RegExp.$1; var number = RegExp.$2; var name2 = RegExp.$3; if (number == "-1") { var checkname = itemname; if (check.hasOwnProperty(checkname) == false) { check[checkname] = 0; } if (filterback.hasOwnProperty(name1) == true) { filterback[name1] = undefined; } if (filterback.hasOwnProperty(itemname) == true) { filterback[itemname] = undefined; } var newname = itemname; newname = name1 + "[" + check[checkname] + "]." + name2; filter[newname] = item.value; check[checkname] = check[checkname] + 1; issub = true; } } if (issub == false) { if (filter.hasOwnProperty(itemname)) { var temp = filter[itemname]; if (!(temp instanceof Array)) temp = [temp]; temp.push(item.value); filter[itemname] = temp; } else { filter[itemname] = item.value; if (filterback.hasOwnProperty(itemname) == true && item.value != "") { filterback[itemname] = undefined; } } } }); for (item in filterback) { if (filterback[item] !== undefined) { filter[item] = undefined; filter[item + ".length"] = "0"; } } return filter; }, GetSearchFormData: function (formId, listvm) { var data = ff.GetFormData(formId); for (var attr in data) { if (attr.startsWith(listvm + ".")) { data[attr.replace(listvm + ".", "")] = data[attr]; delete data[attr]; } } return data; }, DownloadExcelOrPdf: function (url, formId, defaultcondition, ids) { var formData = ff.GetSearchFormData(formId); if (defaultcondition == null) { defaultcondition = {}; } var tempwhere = {}; $.extend(tempwhere, defaultcondition); $.extend(tempwhere, formData); var form = $('
'); for (var attr in tempwhere) { if (tempwhere[attr] != null) { if (Array.isArray(tempwhere[attr])) { for (var i = 0; i < tempwhere[attr].length; i++) { form.append($('')); } } else { form.append($('')); } } } if (ids !== undefined && ids !== null) { for (var i = 0; i < ids.length; i++) { form.append($('')); } } $('body').append(form); form.submit(); form.remove(); }, Download: function (url, ids) { var form = $(''); if (ids !== undefined && ids !== null) { for (var i = 0; i < ids.length; i++) { form.append($('')); } } $('body').append(form); form.submit(); form.remove(); }, RefreshChart: function (chartid) { var postdata = ''; var searcher = $('form[chartlink*="' + chartid + '"]'); if (searcher !== undefined && searcher.length > 0) { postdata = ff.GetFormData(searcher[0].id); } $.ajax({ cache: false, type: 'POST', url: eval(chartid+"ChartUrl"), data: postdata, async: true, success: function (data, textStatus, request) { if (data.series != undefined) { data.series = data.series.replace(/"type":"charttype"/g, eval(chartid + 'ChartType')); } eval(chartid + 'Chart.setOption({dataset: JSON.parse(data.dataset),series: JSONfns.parse(data.series)},{replaceMerge:\'series\'});'); if (eval(chartid + 'ChartLegend') == 'true') { eval(chartid + 'Chart.setOption({legend:JSON.parse(data.legend)});'); } } }); }, /** * RefreshGrid * @param {string} dialogid the dialogid * @param {number} index the grid index */ RefreshGrid: function (dialogid, index) { if (index === undefined) { index = 0; } var tab = ""; if (layui.setter.pageTabs === true && dialogid == "LAY_app_body") { tab = " .layadmin-tabsbody-item.layui-show"; } var tables = $('#' + dialogid + tab + ' table[id]'); var searchBtns = $('#' + dialogid + tab + ' form a[IsSearchButton]'); if (searchBtns.length > index) { var sb = $('#' + searchBtns[index].id); var form = sb.parents("form"); if (form.attr("oldpost") == 'True') { sb.trigger("click"); } else { sb.trigger("myclick", true); } } else { if (tables.length > index) { layui.table.reload(tables[index].id); } } }, AddGridRow: function (gridid, option, data) { var loaddata = layui.table.cache[gridid]; for (val in data) { if (val === "ID") { data[val] = ff.guid(); } } var re = /((.*?)/ig; var re2 = /((.*?)/ig; for (val in data) { if (typeof (data[val]) == 'string') { data[val] = data[val].replace(/\[\d?\]/ig, "[" + loaddata.length + "]"); data[val] = data[val].replace(/_\d?_/ig, "_" + loaddata.length + "_"); data[val] = data[val].replace(re, "$1 onchange=\"ff.gridcellchange(this,'" + gridid + "'," + loaddata.length + ",'" + val + "',0)\" />$2"); data[val] = data[val].replace(re2, "$1 onchange=\"ff.gridcellchange(this,'" + gridid + "'," + loaddata.length + ",'" + val + "',1)\" >$2"); data[val] = data[val].replace(re3, "$1 $3"); } } loaddata.push(data); option.url = null; option.data = loaddata; option.limit = 9999; layui.table.render(option); }, SetGridCellDate: function (id) { layui.use('laydate', function () { var laydate = layui.laydate; laydate.render({ elem: '#' + id , show: true , closeStop: '#' + id , done: function (value, date, endDate) { document.getElementById(id).onchange(); } }); }); }, LoadLocalData: function (gridid, option, datas, isnormaltable) { var re = /(/ig; var re2 = /(