12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144 |
- /**
- *
- * 扩展按钮事件处理
- *
- * @author xiacj
- * @version 1.0
- * @date 2020-02-16
- *
- */
- layui.use(['element', 'form', 'table', 'checkForm', 'laydate', 'mapChooser', 'miniTab'], function () {
- var form = layui.form,
- layer = layui.layer,
- $ = layui.$;
- table = layui.table;
- checkForm = layui.checkForm;
- laydate = layui.laydate;
- mapChooser = layui.mapChooser;
- miniTab = layui.miniTab;
- //自定义插件
- var customPlugins = {};
- customPlugins["mapChooser"] = mapChooser;
- var $window = $(window);
- var file_types = {
- "application/pdf": "pdf",
- "application/x-zip-compressed": "zip",
- "image/gif": "gif",
- "image/png": "png",
- "image/jpg": "jpg",
- "image/bmp": "bmp",
- "image/jpeg": "jpg",
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "doc",
- "application/msword": "doc",
- "application/vnd.ms-excel": "excel",
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "excel",
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": "ppt"
- };
- /**
- * 获取表单json格式参数
- *
- * @param {Object} formId
- */
- function getFormJson(form) {
- return util.getFormJson(form);
- };
- /**
- * 初始化查按钮的点击事件
- *
- */
- function initBtnLsnr() {
- $(".ag-btn-query").on("click", queryList);
- $(".ag-btn-add").on("click", addInit);
- $(".ag-btn-update").on("click", updateInit);
- $(".ag-btn-cancel").on("click", cancel);
- $(".ag-btn-save").on("click", save);
- //用bind方法绑定可能会导致重负提交
- $(".ag-btn-del").on("click", del);
- $(".ag-btn-reset").on("click", resetForm);
- $(".ag-data-tree").on("click", initAgZtree);
- };
- function resetForm() {
- var index = $(this).attr("ag-data-index");
- var form = $(".ag-form[ag-data-index=" + index + "]");
- $.each(form.find("[name]"), function (i, item) {
- $(item).val("");
- });
- layui.form.render();
- }
- /**
- *
- * 处理分页按钮事件,数据加载之后调用
- *
- */
- function addPageLisnr(page, index) {
- var pageHtml =
- '<a href="#" rel="pre" class="ag-btn-page-pre">< 上一页</a> <a href="#" rel="next" class="ag-btn-page-next">下一页></a><span id="totalPageSpan"></span>|<span id="totalRecordSpan"></span>|<span id="pageNoSpan"></span>';
- $(".ag-area-page").html(pageHtml);
- //上一页
- $(".ag-btn-page-pre").unbind();
- $(".ag-btn-page-pre").bind("click", function () {
- var pageNo = parseInt(page.pageNo);
- if (pageNo >= 2) {
- pageNo = pageNo - 1;
- var pageSize = page.pageSize;
- var pageJson = {
- "pageNo": pageNo,
- "pageSize": pageSize
- };
- var pageJsonStr = JSON.stringify(pageJson);
- $("input[name=page]").val(pageJsonStr);
- $(".ag-btn-query[ag-data-index=" + index + "]").click();
- }
- });
- //下一页
- $(".ag-btn-page-next").unbind();
- $(".ag-btn-page-next").bind("click", function () {
- var pageNo = parseInt(page.pageNo);
- var totalPage = parseInt(page.totalPage);
- if ((pageNo + 1) <= totalPage) {
- pageNo = pageNo + 1;
- var pageSize = page.pageSize;
- var pageJson = {
- "pageNo": pageNo,
- "pageSize": pageSize
- };
- var pageJsonStr = JSON.stringify(pageJson);
- $("input[name=page]").val(pageJsonStr);
- $(".ag-btn-query[ag-data-index=" + index + "]").click();
- }
- });
- $("#totalPageSpan").html("总页数:" + page.totalPage);
- $("#totalRecordSpan").html("总记录数:" + page.totalRecord);
- $("#pageNoSpan").html("当前页:" + page.pageNo);
- };
- /**
- *
- * 查询方法
- */
- function queryList() {
- var index = $(this).attr("ag-data-index");
- var form = $(".ag-form[ag-data-index=" + index + "]");
- var url = $(this).attr("ag-data-url");
- var checkRet = checkForm.validateForm(form);
- if (!checkRet) {
- return false;
- }
- initPage(index); // 初始化分页dom
- // 获取查询条件参数
- var param = getFormJson($(".ag-form[ag-data-index=" + index + "]"));
- var queryParams = $(this).data("query-params");
- if (!util.isNull(queryParams)) {
- var queryJson = $.parseJSON(queryParams);
- delete queryJson.page;
- var checkParam = $.extend({}, param);
- delete checkParam.page;
- if (JSON.stringify(queryJson) != JSON.stringify(checkParam)) {
- $(" input[name=page]", form).val('{"pageNo":"1","pageSize":"20"}');
- param.page = '{"pageNo":"1","pageSize":"20"}';
- }
- }
- $(this).data("query-params", JSON.stringify(param));
- // 获取地址前缀
- var agCtx = util.getAgCtx(this);
- url = ctx + "/" + agCtx + url;
- util.ajaxJson("查询中,请稍后...", url, param, function (page) {
- if (page.retCode == "1") {
- util.error(util.isNull(page.retMsg) ? '未知异常' : page.retMsg);
- return;
- }
- var colsStr = $(".ag-table-header[ag-data-index=" + index + "]").html();
- // 格式化列表需要的参数
- var cols = decorateData(colsStr);
- //执行一个 table 实例
- table.render({
- elem: $(".ag-table[ag-data-index=" + index + "]"),
- height: $(".ag-table[ag-data-index=" + index + "]").height() - 35,
- data: page.data, //数据接口
- title: '用户表',
- page: false, //开启分页
- totalRow: false, //开启合计行
- limit: $.parseJSON(param.page).pageSize,
- cols: cols
- });
- // 分页填数据 page 返回数据 index 查询条件和表格唯一标识
- buildPage(page, index);
- }, function (req) {
- var page = $("input[name=page]").val();
- req.setRequestHeader("page", page);
- });
- };
- function initPage(idx) {
- // 如果form下没有input则创建一个input
- if ($(".ag-form[ag-data-index=" + idx + "] > input[name=page]").length == 0) {
- var input = $("<input type='hidden' name='page' value=''>");
- $(".ag-form[ag-data-index=" + idx + "]").append(input);
- }
- // 如果input值为空则赋值页码和当前页
- if (util.isNull($(".ag-form[ag-data-index=" + idx + "] > input[name=page]").val())) {
- $(".ag-form[ag-data-index=" + idx + "] > input[name=page]").val('{"pageNo":"1","pageSize":"20"}');
- }
- // 查找当前页面table下分页dom
- var pager = $(".ag-table[ag-data-index=" + idx + "] ").siblings(".ag-area-page");
- if (pager.length == 0) {
- return;
- }
- if (pager.children(".layui-table-page").length > 0) {
- return;
- }
- // 删除当前元素 ?为什么要删除
- pager.empty();
- // 获取上面创建元素存储的页码和当前页
- var pageSize = $.parseJSON($(".ag-form[ag-data-index=" + idx + "] > input[name=page]").val()).pageSize;
- // 分页dom盒子
- var pageDiv = $('<div class="layui-table-page"></div>');
- // 分页dom元素
- var box = $("<div class='layui-box layui-laypage layui-laypage-default'></div>");
- // 向左翻页dom
- var firstA = $(
- '<a href="javascript:;" class="layui-laypage-prev layui-disabled" data-page="1"><i class="layui-icon"></i></a>');
- box.append(firstA);
- // 向右分页dom
- var lastA = $(
- '<a href="javascript:;" class="layui-laypage-next layui-disabled" data-page="1"><i class="layui-icon"></i></a>');
- box.append(lastA);
- // 描述当前分页情况+自定义跳转页码
- var search = $(
- '<span class="layui-laypage-skip">到第<input type="text" min="1" max = "1" value="1" class="layui-input">页<button type="button" class="layui-laypage-btn">确定</button></span>'
- );
- box.append(search);
- var count = $('<span class="layui-laypage-count">共 0 条</span>');
- box.append(count);
- // 每页显示多少条选项
- var limit = $(
- '<span class="layui-laypage-limits"><select class="page-select"><option value="10" >10 条/页</option><option value="20">20 条/页</option><option value="30">30 条/页</option><option value="40">40 条/页</option><option value="50">50 条/页</option><option value="60">60 条/页</option><option value="70">70 条/页</option><option value="80">80 条/页</option><option value="90">90 条/页</option></select></span>'
- );
- box.append(limit);
- pageDiv.append(box);
- pager.append(pageDiv);
- //赋默认显示多少条
- pager.find(".page-select").val(pageSize);
- /**
- * 上一页、下一页、页码点击事件绑定
- */
- pager.delegate(".layui-laypage-prev,.layui-laypage-next,.ipage:not(.layui-laypage-curr)", "click", function (e) {
- if ($(this).hasClass("layui-disabled")) {
- return;
- }
- var dataPage = $(this).attr("data-page");
- // 存储每次切换分页值
- var pageInput = $(".ag-form[ag-data-index=" + idx + "] > input[name=page]");
- var json = $.parseJSON(pageInput.val());
- json.pageNo = dataPage;
- pageInput.val(JSON.stringify(json));
- // 重新执行click事件 更新数据 分页参数从上面form创建input中区
- $(".ag-btn-query").trigger("click");
- /**
- * 输入页码点击确定事件绑定
- */
- }).delegate(".layui-laypage-skip .layui-laypage-btn", "click", function () {
- var input = $(this).parent().find("input");
- var min = input.attr("min");
- var max = input.attr("max");
- if (isNaN(input.val())) {
- util.showDialog("请输入数字!", 0);
- return;
- }
- if (parseInt(input.val()) < min) {
- util.showDialog("最小页码:1,请重新输入!", 0);
- return;
- }
- if (parseInt(input.val()) > max) {
- util.showDialog("最大页码:" + max + ",请重新输入!", 0);
- return;
- }
- var pageInput = $(".ag-form[ag-data-index=" + idx + "] > input[name=page]");
- var json = $.parseJSON(pageInput.val());
- json.pageNo = input.val();
- pageInput.val(JSON.stringify(json));
- $(".ag-btn-query").trigger("click");
- }).delegate(".layui-laypage-limits select", "change", function () {
- var pageInput = $(".ag-form[ag-data-index=" + idx + "] > input[name=page]");
- var json = $.parseJSON(pageInput.val());
- json.pageSize = $(this).val();
- pageInput.val(JSON.stringify(json));
- $(".ag-btn-query").trigger("click");
- });
- }
- function buildPage(data, idx) {
- // 获取分页区域
- var pager = $(".ag-table[ag-data-index=" + idx + "] ").siblings(".ag-area-page");
- if (pager.length == 0) {
- return;
- }
- if (data == undefined) {
- data = {};
- data.pageNo = 1;
- data.totalPage = 1;
- data.totalRecord = 0;
- }
- pager.find(".ipage").remove();
- pager.find(".layui-laypage-count").html("共 " + data.totalRecord + " 条");
- pager.find(".layui-laypage-skip input").attr("max", data.totalPage);
- var prev = pager.find(".layui-laypage-prev");
- var next = pager.find(".layui-laypage-next");
- prev.removeClass("layui-disabled");
- next.removeClass("layui-disabled");
- prev.attr("data-page", parseInt(data.pageNo) <= 1 ? "1" : parseInt(data.pageNo) - 1);
- next.attr("data-page", parseInt(data.pageNo) >= parseInt(data.totalPage) ? data.totalPage : parseInt(data.pageNo) +
- 1);
- var endNum = 0;
- var startNum = 0;
- // 判断上一页按钮是否禁用
- if (parseInt(data.pageNo) <= 1) {
- endNum = parseInt(data.totalPage) >= 3 ? parseInt(data.pageNo) + 2 : parseInt(data.totalPage);
- startNum = 1;
- prev.addClass("layui-disabled");
- }
- // 判断下一页按钮是否禁用
- if (parseInt(data.pageNo) >= parseInt(data.totalPage)) {
- endNum = parseInt(data.pageNo);
- startNum = parseInt(data.totalPage) < 3 ? 1 : parseInt(data.pageNo) - 2;
- next.addClass("layui-disabled");
- }
- if (parseInt(data.pageNo) > 1 && data.pageNo < data.totalPage) {
- startNum = parseInt(data.pageNo) - 1;
- endNum = parseInt(data.pageNo) + 1;
- }
- for (var i = startNum; i <= endNum; i++) {
- if (i == parseInt(data.pageNo)) {
- var currSpan = $('<span class="layui-laypage-curr ipage"><em class="layui-laypage-em"></em><em>' + data.pageNo +
- '</em></span>');
- next.before(currSpan);
- } else {
- var a = $('<a href="javascript:;" class="ipage" data-page="' + i + '">' + i + '</a>');
- next.before(a);
- }
- }
- }
- var btnOpt = {
- "ag-data-index": "",
- "ag-win-check": "",
- "ag-data-url": "",
- "ag-data-url-key": "",
- "ag-win-id": "0",
- "ag-data-pk": "id",
- "ag-win-width": "800",
- "ag-win-height": "600",
- "ag-win-title": "",
- "ag-win-title-key": "",
- "ag-win-type": "1",
- "data": "",
- "ag-data-ctx": "sysmgr",
- "ag-data-refresh": ""
- }
- function buildBtnOpt(obj) {
- var opt = $.extend({}, btnOpt);
- for (var key in btnOpt) {
- var val = $(obj).attr(key);
- if (!util.isNull(val)) {
- opt[key] = val;
- }
- }
- var tableId = $("table[ag-data-index=" + opt["ag-data-index"] + "]").attr("id");
- var checkStatus = table.checkStatus(tableId);
- opt.data = checkStatus.data; //获取选中行数据
- var appendUrl = "";
- if (!util.isNull(opt.data) && $.isArray(opt.data) && opt.data.length > 0) {
- $.each(opt["ag-data-pk"].split(","), function (i, t) {
- appendUrl = appendUrl + t + "=" + opt.data[0][t] + "&";
- })
- var url = util.isNull(opt["ag-data-url-key"]) ? opt["ag-data-url"] : opt.data[0][opt["ag-data-url-key"]];
- var title = util.isNull(opt['ag-win-title-key']) ? opt['ag-win-title'] : opt.data[0][opt["ag-win-title-key"]];
- opt['ag-win-title'] = title;
- if (!util.isNull(url)) {
- if (url.indexOf("?") == -1) {
- url = url + "?" + appendUrl;
- } else {
- url = url + "&" + appendUrl;
- }
- opt["ag-data-url"] = url;
- }
- }
- return opt;
- }
- /**
- *
- * 修改初始化方法
- *
- ***/
- function updateInit() {
- var opt = buildBtnOpt(this);
- if (opt.data.length == 0) {
- util.warning('请选择一条数据库记录!');
- return;
- }
- if (!util.isNull(opt["ag-win-check"]) && !util.call(opt["ag-win-check"], opt)) {
- return;
- }
- util.call(getHrefLsnr(opt["ag-win-type"]), opt);
- };
- function cancel() {
- var url = $('.ag-btn-cancel').data('url')
- var title = $('.ag-btn-cancel').data('title')
- var tabId = $('.layui-this', window.parent.document).attr('lay-id')
- var isparent = $('.ag-btn-cancel').data('isparent')
- console.log(isparent)
- if (url) {
- miniTab.delete(tabId, isparent);
- util.addTab(url, title)
- }
- util.closeWin();
- };
- /**
- *添加初始化方法
- *
- ***/
- function addInit() {
- var opt = buildBtnOpt(this);
- if (!util.isNull(opt["ag-win-check"]) && !util.call(opt["ag-win-check"], opt)) {
- return;
- }
- util.call(getHrefLsnr(opt["ag-win-type"]), opt);
- };
- /***
- *保存方法-增加或者修改的保存方法
- *
- **/
- function save() {
- var index = $(this).attr("ag-data-index");
- var form = $(".ag-form[ag-data-index=" + index + "]");
- var funcType = $(this).attr("ag-func-type"); // 判断弹窗种类 parent---ifream prop---dom结构
- var checkRet = checkForm.validateForm(form);
- if (!checkRet) {
- return false;
- }
- var agCtx = util.getAgCtx(this);
- var url = ctx + "/" + agCtx + $(this).attr("ag-data-url");
- var param = getFormJson(form);
- var that = this;
- var appendJson = $(this).attr("ag-save-append");
- if (!util.isNull(appendJson)) {
- $.extend(true, param, $.parseJSON(appendJson));
- }
- util.ajaxJson("保存中,请稍后....", url, param, function (data) {
- var result = data.result;
- var desc = data.desc;
- if (result == 0) {
- util.success(desc);
- // var queryBtn = parent.layui.$(".ag-btn-query");
- // if (queryBtn.length > 0) {
- // $(queryBtn).click();
- // //util.closeWin();
- // }
- $(queryBtn).click();
- var func = $(that).attr("ag-back-func");
- if (funcType == 'parent') { //
- var index = $('.mc-hover-active', parent.document).index()
- var date = $('.mc-hover-active', parent.document).data('date')
- parent[func]('', index)
- parent.getDataType(date) // 获取隐藏内容数据
- parent.getMoreData(date) // 获取更多数据
- $('.mc-timeline-box').fadeIn(1000)
- var displayStatus = $('.mc-timeline-box', parent.document).css('display')
- if (displayStatus == 'block') {
- $('.mc-close-style', '.mc-hover-active', parent.document).show()
- }
- $('.mc-hover-active', parent.document).addClass('mc-hover-active').siblings().removeClass('mc-hover-active');
- return
- }
- if (funcType == 'prop') {
- $('.mc-select-style', parent.document).val(index)
- parent.initMoreList(moreList[index]) // 渲染弹窗list
- return
- }
- if (!util.isNull(func)) {
- if (func.indexOf(".") != -1) {
- eval(func);
- return;
- }
- window[func](data);
- }
- } else {
- util.error(desc);
- }
- });
- };
- function del() {
- var opt = buildBtnOpt(this);
- if (opt.data.length == 0) {
- util.warning('请选择一条数据库记录!');
- return;
- }
- if (!util.isNull(opt["ag-win-check"]) && !util.call(opt["ag-win-check"], opt)) {
- return;
- }
- util.showDialog("您确定要删除选中记录么?", 3, doDel, opt);
- }
- function doDel(opt) {
- var url = ctx + "/" + opt["ag-data-ctx"] + opt["ag-data-url"];
- util.ajaxJson("删除中,请稍后!", url, {}, function (data) {
- var result = data.result;
- var desc = data.desc;
- if (result == 0) {
- util.success(desc);
- var queryBtn = layui.$(".ag-btn-query");
- if (queryBtn.length > 0) {
- $(queryBtn).click();
- }
- var func = $(this).attr("ag-back-func");
- if (!util.isNull(func)) {
- if (func.indexOf(".") != -1) {
- eval(func);
- return;
- }
- window[func](data);
- }
- } else {
- util.error(desc);
- }
- });
- }
- function createFile() {
- var formFile = new Object();
- formFile.config = {
- "ag-file-multiple": "true",
- "ag-file-delete": "true",
- "ag-file-add": "true",
- "ag-file-down": "true",
- "ag-file-max": 99,
- "ag-file-iframe-down-url": "/sys/settings/file/download",
- "ag-file-iframe-del-url": "/sys/settings/file/delFile",
- "ag-file-iframe-add-url": "/sys/settings/file/upload",
- "ag-file-iframe-name": "downloadHidenFr",
- "ag-data-ctx": "sysmgr"
- }
- formFile.loadForm = function (obj) {
- this.form = $(obj);
- /**
- * 当存在附件时生成附件dom 并 绑定附件相关事件
- */
- this.loadFormFiles();
- /**
- * 绑定事件
- */
- this.bindLsnr();
- }
- formFile.bindLsnr = function () {
- var that = this;
- var width = that.form.width();
- that.form.find(".ag-file").width(parseInt(width / 305) * 305 - 120);
- window.onresize = function () {
- var width = that.form.width();
- var num = parseInt(width / 305);
- that.form.find(".ag-file").width(num * 305 - 120 - (num == 1 ? 5 : 0));
- }
- // that.form.delegate(".ag-file .ag-file-header .ag-file-header-button", "click", function() {
- // $(this).siblings(".ag-file-header-file").trigger("click");
- // });
- /**
- * 附件添加事件
- */
- that.form.delegate(".ag-file .ag-file-header .ag-file-header-file", "change", function (e) {
- var inputFile = $(this);
- var agFile = that.form.find(".ag-file").eq(0);
- var items = agFile.find(".ag-file-item-li");
- var maxNum = agFile.attr("ag-file-max");
- if (parseInt(maxNum) <= items.length) {
- util.showDialog("最大添加附件数量:" + maxNum + ",无法继续添加!", 0);
- } else {
- var IEVersion = util.IEVersion();
- if (IEVersion > 0 && IEVersion < 10) {
- that.addFileIE(inputFile, inputFile.parent().parent());
- } else {
- $.each(inputFile[0].files, function (i, file) {
- that.addIfile(file, inputFile.parent().parent());
- });
- inputFile.after(inputFile.clone().val(""));
- inputFile.remove();
- }
- }
- });
- /*****预览事件****/
- that.form.delegate(".ag-file .ag-file-item-li-thumb .ag-file-item-li-thumb-icon", "click", function () {
- });
- $.each(that.form.find(".ag-file"), function (i, f) {
- f = $(f);
- if (f.attr("ag-file-down") == "true") {
- f.delegate(".ag-file-item-li-thumb-icon", "click", function () {
- $(this).parent().parent().parent().find(".ag-file-item-li-title").trigger("click");
- });
- /*****下载事件****/
- f.delegate(".ag-file-item-li .ag-file-item-li-title", "click", function () {
- var li = $(this).parents(".ag-file-item-li:first");
- var saveName = li.data("ag-file-name-savename");
- if (util.isNull(saveName)) {
- util.showDialog("未上传,不能下载!", 0);
- return;
- }
- var url = f.data("ag-file-iframe-down-url");
- url = ctx + "/" + util.getAgCtx(f) + url;
- _listHrefDownloadFile({ "ag-data-url": url + "?saveName=" + saveName + "&fileId=" + saveName });
- });
- }
- if (f.attr("ag-file-delete") == "true") {
- /*****删除事件****/
- f.delegate(".ag-file-item-li .ag-file-delete .layui-icon.layui-icon-delete", "click", function () {
- var li = $(this).parents(".ag-file-item-li:first");
- var saveName = li.data("ag-file-name-savename");
- var fileThat = $(this);
- if (util.isNull(saveName)) {
- fileThat.parents(".ag-file-item-li:first").remove();
- return;
- }
- var url = f.data("ag-file-iframe-del-url");
- url = ctx + "/" + util.getAgCtx(f) + url;
- util.showDialog("您确定要删除选中附件么?", 3, function () {
- util.ajaxJson("删除中,请稍后...", url, {
- "fileId": saveName
- }, function (data) {
- if (data.result == "0") {
- fileThat.parents(".ag-file-item-li:first").remove();
- util.showDialog("删除成功!", 2);
- return;
- }
- util.showDialog("删除失败!", 0);
- });
- }, {});
- });
- }
- });
- }
- /**
- * 当存在附件类名时,生成附件dom
- */
- formFile.loadFormFiles = function () {
- var that = this;
- var fileDiv = that.form.find(".ag-file");
- if (fileDiv.length == 0) {
- return;
- }
- var defaultOpt = $.extend({}, that.config);
- $.each(fileDiv, function (i, f) {
- f = $(f);
- for (var key in defaultOpt) {
- if (util.isNull(f.attr(key))) {
- f.attr(key, defaultOpt[key]);
- }
- f.data(key, f.attr(key));
- }
- /**
- * 判断是否可新增附件
- */
- if (f.attr("ag-file-add") == "true") {
- that.appendFileHeadeTpl(f);
- }
- var item = $("<ol class='ag-file-item'></ol>");
- f.append(item);
- /*********插入下载配置*********/
- if ($("[name=" + f.data("ag-file-iframe-name") + "]").length == 0) {
- var iframe = $("<iframe name='" + f.data("ag-file-iframe-name") + "' class='layui-hide'></iframe>");
- f.append(iframe);
- }
- });
- }
- /**
- * 追加添加附件区域
- */
- formFile.appendFileHeadeTpl = function (f) {
- var headerDiv = $("<div class='ag-file-header'></div>");
- var headerTextDiv = $("<span class='ag-file-header_text'></span>");
- var headerIcon = $("<span class='ag-file-header_icon'></span>");
- var headerBtn = $("<button type='button' class='ag-file-header-button'> 添加附件.</button>");
- var multiple = f.attr("ag-file-multiple");
- var headerInput = $("<input class='ag-file-header-file' name='file' type='file' " + (multiple == "true" ? "multiple" : "") +
- " />");
- headerDiv.append(headerTextDiv);
- headerDiv.append(headerIcon);
- headerDiv.append(headerBtn);
- headerDiv.append(headerInput);
- f.append(headerDiv);
- }
- /**
- * 上传事件
- */
- formFile.uploadFile = function (file, layFilter) {
- var that = this;
- var form = new FormData();
- form.append("file", file);
- var moduleName = that.form.find(".ag-file").eq(0).attr("ag-file-module");
- $.each(that.form.find("input[name],select[name],textarea[name]"), function () {
- if ($(this).attr("name") == "file") {
- return true;
- }
- form.append($(this).attr("name"), $(this).val());
- });
- form.append('moduleName', moduleName)
- var url = that.form.find(".ag-file").eq(0).data("ag-file-iframe-add-url");
- url = ctx + "/" + util.getAgCtx(that.form.find(".ag-file").eq(0)) + url;
- util.ajaxFile("上传中,请稍后...", url, form, function (data) {
- if (data.result != 0) {
- that.error(layFilter, data.desc.length > 50 ? "上传失败!" : data.desc);
- return;
- }
- that.succ(layFilter, data.body);
- }, function (data) {
- var msg = "上传失败...";
- try {
- var json = $.parseJSON(data.responseText);
- if (json.message && json.message.indexOf("Maximum") != -1) {
- msg = "附件大小超出服务器限制";
- }
- } catch (e) {
- }
- that.error(layFilter, msg);
- }, function (myXhr) {
- if (myXhr.upload) {
- myXhr.upload.addEventListener('progress', function (e) {
- var progressRate = parseInt(e.loaded * 100 / e.total) + '%';
- layui.element.progress(layFilter, progressRate == "100%" ? "99%" : progressRate);
- }, false);
- }
- return myXhr;
- });
- }
- formFile.error = function error(layFilter, msg) {
- var that = this;
- $("[lay-filter=" + layFilter + "]", that.form).children().removeClass("layui-bg-green").addClass("layui-bg-red")
- .width("100%").text(
- msg).css("text-align", "center");
- $("[lay-filter=" + layFilter + "]", that.form).parents(".ag-file-item-li:first").data("ag-file-name-savename",
- "");
- }
- formFile.succ = function (layFilter, data) {
- var that = this;
- layui.element.progress(layFilter, "100%");
- $("[lay-filter=" + layFilter + "]", that.form).parents(".ag-file-item-li:first").data("ag-file-name-savename",
- data.saveName);
- $("[lay-filter=" + layFilter + "]", that.form).children().width("100%").text(
- '上传成功!').css({
- "text-align": "center",
- "color": "white"
- });
- }
- formFile.addFileIE = function (obj, f) {
- var that = this;
- var moduleName = that.form.find(".ag-file").eq(0).attr("ag-file-module");
- var url = that.form.find(".ag-file").eq(0).data("ag-file-iframe-add-url");
- var iframeName = that.form.find(".ag-file").eq(0).data("ag-file-iframe-name");
- url = ctx + "/" + util.getAgCtx(that.form.find(".ag-file").eq(0)) + url + "IE";
- $("form[form_" + iframeName + "]").remove();
- var form = $('<form method="post" style="display:none;" name="form_' + iframeName + '" enctype="multipart/form-data" />');
- obj.after(obj.clone().val(""));
- obj.appendTo(form);
- $.each(that.form.find("input[name],select[name],textarea[name]"), function () {
- if ($(this).attr("name") == "file") {
- return true;
- }
- form.append($("<input type='hidden' name='" + $(this).attr("name") + "' value='" + $(this).val() + "'/>"));
- });
- form.append($("<input type='hidden' name='moduleName' value='" + moduleName + "'/>"));
- form.append($("<input type='hidden' name='agileauthtoken' value='" + util.getToken() + "'/>"));
- $(document.body).append(form);
- form.ajaxSubmit({
- async: false,
- type: "post",
- url: url,
- dataType: "text/html",
- beforeSubmit: function (formData, jqForm, options) {
- util.load("附件上传ing..");
- },
- success: function (data) {
- util.disLoad();
- data = $.parseJSON(util.decode(data));
- if (data.result == "0") {
- var body = data.body;
- body.fileType = file_types[body.fileType] ? file_types[body.fileType] : "default";
- body.fileSize = Math.ceil(body.fileSize / 1024);
- var layFilter = that.appendFileItemTpl(body, f);
- that.succ(layFilter, body);
- return;
- }
- util.error("上传失败!");
- },
- error: function (xhr, status, error, form) {
- util.disLoad();
- util.error("上传失败!");
- }
- });
- }
- /**
- * 插入附件 obj 可能是file对象 也可能是查询返回的bean
- * @param {Object} obj
- */
- formFile.addIfile = function (obj, f) {
- var that = this;
- var data = {};
- if (obj instanceof File) {
- data.fileType = file_types[obj.type] ? file_types[obj.type] : "default";
- data.fileName = obj.name;
- data.fileSize = Math.ceil(obj.size / 1024);
- data.file = obj;
- data.opTime = util.getTime();
- if (data.fileSize / 1024 > 30) {
- util.error("最大上传文件大小20M!");
- return;
- }
- } else {
- $.extend(true, data, obj);
- data.fileType = file_types[obj.fileType] ? file_types[obj.fileType] : "default";
- data.fileSize = Math.ceil(data.fileSize / 1024);
- }
- /**
- * 根据数据追加附件模板 返回进度条唯一标识
- */
- var layFilter = that.appendFileItemTpl(data, f);
- /**
- * 如果是附件上传操作则向后台发送请求传输对象
- */
- if (data.file) {
- $("[lay-filter=" + layFilter + "]", that.form).removeClass("layui-hide");
- $("[lay-filter=" + layFilter + "]", that.form).children().removeClass("layui-bg-red").removeClass(
- "layui-bg-green");
- that.uploadFile(obj, layFilter);
- }
- }
- /**
- * 追加附件模板到指定区域
- * @param {Object} data
- */
- formFile.appendFileItemTpl = function (data, f) {
- var that = this;
- var li = $('<li class="ag-file-item-li"></li>');
- li.data("ag-file-name-filename", data.fileName);
- li.data("ag-file-name-savename", data.saveName);
- li.data("ag-file-name-optime", data.opTime);
- li.data("ag-file-name-filesize", data.fileSize);
- var thumb = $('<div class="ag-file-item-li-thumb"></div>');
- var span = $('<span class="ag-file-item-li-thumb-icon ag-form-type-' + data.fileType + '"></span>');
- var a = $('<a href="#" title="点击下载:' + data.fileName + '"></a>');
- a.append(span);
- var random = util.randomWord(false, 32);
- var progress = $('<div class="layui-progress layui-progress-big ' + (data.file ? '' : 'layui-hide') + ' " lay-filter="' + random +
- '" lay-showPercent="true"> <div class="layui-progress-bar text-white" lay-percent="0%"><span class="layui-progress-text">0%</span></div></div>'
- );
- var dl = $("<dl></dl>");
- var dt = $("<dt></dt>");
- var span = $("<span class='ag-file-blender'></span>");
- var deleteDiv = $(
- "<div class='ag-file-delete' ><a title='删除此附件' href='#' ><span class=' layui-icon layui-icon-delete'></span></a></div>"
- );
- var downA = $("<a href='#' class='ag-file-item-li-title' title='点击下载:" + data.fileName + "' >" + data.fileName +
- "</a>");
- var sizeDd = $("<dd class='ag-file-item-li-size' >" + data.fileSize + "kb</dd>");
- var timeDd = $("<dd class='ag-file-item-li-date'><time >" + util.timeDiff(data.opTime) + "</time></dd>");
- dt.append(span);
- if (f.attr("ag-file-delete") == "true" && (data.delFlag == "Y" || util.isNull(data.delFlag))) {
- dl.append(deleteDiv);
- }
- dt.append(downA);
- dl.append(dt);
- dl.append(sizeDd);
- dl.append(timeDd);
- thumb.append(a);
- thumb.append(progress);
- li.append(thumb);
- li.append(dl);
- that.form.find(".ag-file-item").append(li);
- console.log(that.form.find(".ag-file-item").innerWidth())
- console.log($('.ag-file-item li').length)
- return random;
- }
- return formFile;
- }
- /**
- * 初始化表单数据-修改表单
- *
- */
- function initForm() {
- var param = util.getUrlParam();
- hiddenBtn(param);
- $(".ag-form").each(function (idx, agForm) {
- // $(agForm).find('input[ag-verify]').change(function(){
- // checkForm.validateForm(agForm)
- // })mc-require
- var formFile = createFile();
- formFile.loadForm(agForm);
- var dataUrl = $(agForm).attr("ag-data-url");
- $.each($(agForm).find("[ag-select-func]"), function (i, item) {
- form.on("select(" + $(item).attr("lay-filter") + ")", function (data) {
- window[$(item).attr("ag-select-func")].call(item, data);
- });
- });
- for (var name in param) {
- var val = param[name];
- if (!util.isNull(val)) {
- $(agForm).find("[name=" + name + "]").val(val);
- }
- }
- var agCallBack = $(agForm).attr("ag-form-callBack");
- if (!util.isNull(agCallBack)) {
- util.call(agCallBack);
- }
- if (!util.isNull(dataUrl)) {
- var formParam = getFormJson($(agForm));
- //加载数据并补充初始化表单
- var url = ctx + "/" + util.getAgCtx($(agForm)) + dataUrl;
- util.loadShade();
- util.ajaxJson("", url, formParam, function (data) {
- util.closeAll();
- /**
- * 复选框
- *
- */
- var chkBoxDivArr = $(agForm).find(".ag-chkbox");
- if (chkBoxDivArr.length > 0) {
- var chkStr = "";
- $(chkBoxDivArr).each(function (idx, chkboxDiv) {
- var key = $(chkboxDiv).attr("ag-chkbox-name");
- var dataArr = data[key + "ChkBox"];
- $(dataArr).each(function (idxData, chkData) {
- var checked = 'checked=""';
- if (util.isNull(chkData.selected)) {
- checked = '';
- }
- var record = '<input type="checkbox" customVal="' + chkData.optCode + '" value="' + chkData.optCode +
- '" name="' + key + '" lay-skin="primary" title="' + chkData.optName + '" ' + checked + '>'
- chkStr = chkStr + record;
- });
- $(chkboxDiv).html(chkStr);
- form.render('checkbox');
- });
- }
- /**
- * 附件
- */
- if (formFile.form.find(".ag-file").length > 0) {
- var key = formFile.form.find(".ag-file").eq(0).attr("ag-file-key");
- if (!util.isNull(data[key]) && data[key].length > 0) {
- $.each(data[key], function (ind, file) {
- formFile.addIfile(file, formFile.form.find(".ag-file").eq(0));
- });
- }
- }
- for (var name in data) {
- var val = data[name];
- if (!util.isNull(val)) {
- $(agForm).find("input[name=" + name + "],textarea[name=" + name + "]").val(val);
- }
- if (name.endWith("Opt")) {
- var optArr = data[name];
- optArr = util.isNull(optArr) ? [] : optArr;
- var selectStr = "";
- var selObj = $("select[name=" + name.substr(0, name.length - 3) + "]");
- if (selObj.attr("ag-select-default-val") == "true") {
- selectStr += "<option value=''>-请选择-</option>"
- }
- if (optArr != null) {
- for (var i = 0; i < optArr.length; i++) {
- var selectedStr = optArr[i].selected;
- if (util.isNull(selectedStr)) {
- selectedStr = "";
- }
- var optBean = "<option value='" + optArr[i].optCode + "' " + selectedStr + ">" + optArr[i].optName +
- "</option>";
- selectStr = selectStr + optBean;
- }
- }
- $(selObj).html(selectStr);
- form.render('select');
- }
- if (name.endWith("Tree")) {
- var treeObj = $("[name=" + name.substr(0, name.length - 4) + "]");
- treeObj.data("ag-tree-data", data[name]);
- }
- }
- //自定义插件入口
- var pluginName = $(agForm).attr("ag-plugin-name");
- if (!util.isNull(pluginName)) {
- //init参数根据需要在扩展
- customPlugins[pluginName].init(data);
- }
- var agCallBack = $(agForm).attr("ag-form-callBack");
- if (!util.isNull(agCallBack)) {
- util.call(agCallBack, data);
- }
- if (data.startTime < util.getTime() && data.id) {
- $('.ag-mc-hide').hide()
- }
- });
- };
- });
- renderForm();
- }
- //渲染表单-date
- function renderForm() {
- var agDateArr = $(".ag-date");
- $(agDateArr).each(function (idx, input) {
- var opt = {
- elem: input,
- type: $(input).attr("ag-date-type")
- }
- if (!util.isNull($(input).attr("ag-date-format"))) {
- opt.format = $(input).attr("ag-date-format");
- }
- laydate.render(opt);
- });
- }
- function initFormHeight() {
- //目前没有唯一标识判断 先根据查询按钮判断是不是查询页面
- //如果是查询页面则返回.
- if ($(".ag-btn-query").length > 0) {
- return;
- }
- $(".ag-form").css("overflow-y", "auto");
- var ie = util.IEVersion();
- if (!isNaN(ie) && ie > 0 && ie < 10) {
- $(".ag-form").css("height", $(window).height() - 140 + "px");
- return;
- }
- $(".ag-form").css("height", "calc( 100vh - 140px)");
- }
- function initListHeight() {
- var agTable = $(".ag-table");
- if (agTable.length == 0) {
- return;
- }
- var sibHeight = 0;
- //获取容器父级--父级所有兄弟节点
- var $query = agTable.parent().siblings(":visible").not("script").not("iframe").not(".datagrid-mask,.datagrid-mask-msg");
- for (var i = 0; i < $query.length; i++) {
- if (!$($query[i]).attr("class") || $($query[i]).attr("class").indexOf("layui-layer") != -1) {
- continue;
- }
- sibHeight += ($($query[i]).outerHeight() + util.getMarginHeight($query[i]));
- }
- sibHeight += util.getRealityOrderHeight(agTable.parent());
- var parentDiffHeight = sibHeight;
- //获取容器兄弟节点高度
- $.each(agTable.siblings(":visible").not("script").not("iframe").not(".layui-form.layui-border-box.layui-table-view"),
- function (i, t) {
- sibHeight += ($(t).outerHeight() + util.getMarginHeight($(t)));
- });
- var ie = util.IEVersion();
- agTable.parent().attr("style", "");
- if (!isNaN(ie) && ie > 0 && ie < 10) {
- agTable.parent().css('height', $(window).height() - parentDiffHeight + "px");
- agTable.css('height', $(window).height() - sibHeight + "px");
- return;
- }
- agTable.parent().css('height', 'calc( 100vh - ' + parentDiffHeight + 'px)');
- agTable.css('height', 'calc( 100vh - ' + sibHeight + 'px)');
- }
- function initAgZtree() {
- var id = $(this).attr("id");
- if (util.isNull(id)) {
- id = util.getMSecond();
- $(this).attr("id", id);
- }
- var title = $(this).attr("ag-tree-title");
- if (util.isNull(title)) {
- util.error("请设置ag-tree-title属性");
- return;
- }
- util.openWin("/static/views/ztreeInit.html?id=" + id, title, 800, 600);
- }
- /**
- * 无title属性补丁
- */
- function addTitle() {
- $.each($("[ag-win-title]:not([title])"), function (i, t) {
- $(t).attr("title", $(t).attr("ag-win-title"));
- });
- $(".ag-btn-del:not([title])").attr("title", "删除");
- }
- /**
- * 根据请求参数隐藏显示按钮
- */
- function hiddenBtn(param) {
- if (!util.isNull(param.fqFlag) && param.fqFlag == "Y") {
- $(".custom-fq-false").hide();
- return;
- }
- $(".custom-fq-true").hide();
- }
- $(document).ready(function () {
- initBtnLsnr();
- initForm();
- initListHeight();
- initFormHeight();
- addTitle();
- });
- });
- /**
- * 列表链接,post请求
- *
- * @param {Object} url
- */
- function _listHrefPost(opt) {
- util.showDialog(opt["ag-win-title"], 3, _post, opt);
- }
- function _post(opt) {
- var url = ctx + "/" + (util.isNull(opt["ag-data-ctx"]) ? "" : opt["ag-data-ctx"]) + opt["ag-data-url"];
- util.ajaxJson("处理中...", url, {}, function (data) {
- if (data) {
- if ("0" == data.result) {
- util.success(data.desc ? data.desc : "成功");
- if (!util.isNull(opt["ag-data-refresh"]) && (opt["ag-data-refresh"] == true || opt["ag-data-refresh"] == "true")) {
- $(".ag-btn-query").click();
- }
- } else if ("1" == data.result) {
- util.error(data.desc ? data.desc : "失败");
- }
- }
- }, "json");
- }
- /**
- * 列表链接,下载文件
- *
- * @param {Object} url
- */
- function _listHrefDownloadFile(opt) {
- util.showDialog("确定下载文件么?", 3, "ret=_doRealDownLoad('" + opt["ag-data-url"] + "')");
- }
- function _doRealDownLoad(url) {
- if ($("[name=downloadHidenFr1").length == 0) {
- var iframe = $("<iframe name='downloadHidenFr1' class='layui-hide'></iframe>");
- iframe.appendTo('body');
- }
- url = util.addUrlToken(url);
- var form = $("<form></form>").attr("action", url).attr("method", "post");
- form[0].target = "downloadHidenFr1";
- form.appendTo('body').submit().remove();
- }
- function _listHrefWindow(opt) {
- var opts = {
- "winId": opt["ag-win-id"]
- }
- util.openWin(util.decode(opt["ag-data-url"]), opt["ag-win-title"], opt["ag-win-width"], opt["ag-win-height"], opts);
- }
- function _listHrefTab(opt) {
- util.addTab(opt["ag-data-url"], opt["ag-win-title"]);
- }
- /**
- * 根据列配置信息和数据,装饰数据,加入链接处理
- *
- * @param {Object} colInfo
- * @param {Object} data
- */
- function decorateData(colsStr) {
- var colModel = $.parseJSON(colsStr);
- for (var i = 0; i < colModel.length; i++) {
- for (var k = 0; k < colModel[i].length; k++) {
- if (!colModel[i][k].align) {
- colModel[i][k].align = "center";
- }
- if (colModel[i][k].btns) {
- if (!$.isArray(colModel[i][k].btns)) {
- return;
- }
- var id = "tpl_btns_" + util.randomWord(false, 8);
- colModel[i][k].templet = "#" + id;
- var appendAHtml = "";
- for (var z = 0; z < colModel[i][k].btns.length; z++) {
- var item = colModel[i][k].btns[z];
- var realUrl = decorateTpl(item.url);
- var lsnrStr = getHrefLsnr(item.openType);
- var opts = {
- "ag-data-url": realUrl,
- "ag-win-title": item.openTitle,
- "ag-win-width": item.width,
- "ag-win-height": item.height,
- "ag-data-refresh": item.refresh
- }
- var aFunc = lsnrStr + "(" + JSON.stringify(opts) + ")";
- var a = "<a href='javascript:void(0)' style='padding:0px 5px' class=' layui-table-link " + item.className +
- "' onclick='" + aFunc + " '>" + (item.btnVal ? item.btnVal : "操作") + "</a>";
- appendAHtml += a;
- }
- appendScript(id, appendAHtml);
- }
- }
- }
- return colModel;
- }
- /**
- *根据href的类型获取链接处理函数名称
- *
- * @param {Object} openType
- */
- function getHrefLsnr(openType) {
- var hrefLsnr = {
- "openType0": "_listHrefDownloadFile", // 下载
- "openType1": "_listHrefWindow", // 弹窗
- "openType2": "_listHrefTab", // tab页
- "openType3": "_listHrefPost", // 触发post请求
- };
- var funcName = hrefLsnr["openType" + openType];
- return funcName;
- }
- function appendScript(id, a) {
- if ($("#" + id).length > 0) {
- $("#" + id).remove();
- }
- var scr = $("<script type='text/html' id='" + id + "'>" + a + "</script>");
- scr.appendTo($(document.body));
- }
- /**
- *
- * 根据配置url和参数 转换模板
- *
- */
- function decorateTpl(inUrl, model) {
- var reg = new RegExp("&", "g");
- var url = inUrl.replace(reg, "&");
- url = url.replace("@ctx@", ctx);
- var realUrl = url;
- if (url.indexOf("?") != -1) {
- var tempArr = url.split("?");
- var realParam = "";
- var urlNoParam = tempArr[0];
- var paramStr = tempArr[1];
- var paramArr = paramStr.split("&");
- if (urlNoParam.indexOf("@") != -1) {
- var arr = urlNoParam.match(/@(\S*)@/g);
- arr = arr == null ? [] : arr;
- if (arr != null) {
- for (var i = 0; i < arr.length; i++) {
- urlNoParam = urlNoParam.replace(arr[i], "{{d." + arr[i].substring(1, arr[i].length - 1) + "}}");
- }
- }
- }
- for (var k = 0; k < paramArr.length; k++) {
- var pair = paramArr[k].split("=");
- if (pair.length == 1 || util.isNull(pair[1])) {
- realParam += paramArr[k] + "&";
- continue;
- }
- /**
- * $Query 代表从查询参数获取
- */
- if ("$Query" == pair[1]) {
- if ($("[name=" + pair[0] + "]").length > 0) {
- realParam += pair[0] + "=" + $("[name=" + pair[0] + "]").eq(0).val() + "&";
- } else {
- realParam += pair[0] + "=" + "&";
- }
- continue;
- }
- var arr = pair[1].match(/@(\S*)@/g);
- arr = arr == null ? [] : arr;
- var arr1 = pair[1].match(/#(\S*)#/g);
- arr1 = arr1 == null ? [] : arr1;
- for (var i = 0; i < arr1.length; i++) {
- arr.push(arr1[i]);
- }
- if (arr != null) {
- for (var i = 0; i < arr.length; i++) {
- pair[1] = pair[1].replace(arr[i], "{{d." + arr[i].substring(1, arr[i].length - 1) + "}}");
- }
- realParam += pair[0] + "=" + pair[1] + "&";
- continue;
- }
- realParam += paramArr[k] + "&";
- }
- realUrl = urlNoParam + "?" + realParam;
- }
- return realUrl;
- }
|