var Feng = { ctxPath: "", addCtx: function (ctx) { if (this.ctxPath == "") { this.ctxPath = ctx; } }, confirm: function (tip, ensure) {//询问框 parent.layer.confirm(tip, { btn: ['确定', '取消'] }, function (index, layero) { var btn = layero.find(".layui-layer-btn0"); btn.css("pointer-events", "none") ensure(); parent.layer.close(index); }, function (index) { parent.layer.close(index); }); }, log: function (info) { console.log(info); }, alert: function (info, iconIndex) { parent.layer.msg(info, { icon: iconIndex }); }, info: function (info) { Feng.alert(info, 0); }, success: function (info) { Feng.alert(info, 1); }, error: function (info) { Feng.alert(info, 2); }, infoDetail: function (title, info) { var display = ""; if (typeof info == "string") { display = info; } else { if (info instanceof Array) { for (var x in info) { display = display + info[x] + "
"; } } else { display = info; } } parent.layer.open({ title: title, type: 1, skin: 'layui-layer-rim', //加上边框 area: ['950px', '600px'], //宽高 content: '
' + display + '
' }); }, writeObj: function (obj) { var description = ""; for (var i in obj) { var property = obj[i]; description += i + " = " + property + ","; } layer.alert(description, { skin: 'layui-layer-molv', closeBtn: 0 }); }, showInputTree: function (inputId, inputTreeContentId, leftOffset, rightOffset) { var onBodyDown = function (event) { if (!(event.target.id == "menuBtn" || event.target.id == inputTreeContentId || $(event.target).parents("#" + inputTreeContentId).length > 0)) { $("#" + inputTreeContentId).fadeOut("fast"); $("body").unbind("mousedown", onBodyDown);// mousedown当鼠标按下就可以触发,不用弹起 } }; if (leftOffset == undefined && rightOffset == undefined) { var inputDiv = $("#" + inputId); var inputDivOffset = $("#" + inputId).offset(); $("#" + inputTreeContentId).css({ left: inputDivOffset.left + "px", top: inputDivOffset.top + inputDiv.outerHeight() + "px" }).slideDown("fast"); } else { $("#" + inputTreeContentId).css({ left: leftOffset + "px", top: rightOffset + "px" }).slideDown("fast"); } $("body").bind("mousedown", onBodyDown); }, baseAjax: function (url, tip) { var ajax = new $ax(Feng.ctxPath + url, function (data) { Feng.success(tip + "成功!"); }, function (data) { Feng.error(tip + "失败!" + data.responseJSON.message + "!"); }); return ajax; }, changeAjax: function (url) { return Feng.baseAjax(url, "修改"); }, zTreeCheckedNodes: function (zTreeId) { var zTree = $.fn.zTree.getZTreeObj(zTreeId); var nodes = zTree.getCheckedNodes(); var ids = ""; for (var i = 0, l = nodes.length; i < l; i++) { ids += "," + nodes[i].id; } return ids.substring(1); }, eventParseObject: function (event) {//获取点击事件的源对象 event = event ? event : window.event; var obj = event.srcElement ? event.srcElement : event.target; return $(obj); }, sessionTimeoutRegistry: function () { $.ajaxSetup({ contentType: "application/x-www-form-urlencoded;charset=utf-8", complete: function (XMLHttpRequest, textStatus) { //通过XMLHttpRequest取得响应头,sessionstatus, var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); if (sessionstatus == "timeout") { //如果超时就处理 ,指定要跳转的页面 window.location = Feng.ctxPath + "/global/sessionError"; } } }); }, initValidator: function (formId, fields) { $('#' + formId).bootstrapValidator({ feedbackIcons: { valid: 'glyphicon glyphicon-ok', invalid: 'glyphicon glyphicon-remove', validating: 'glyphicon glyphicon-refresh' }, fields: fields, live: 'enabled', message: '该字段不能为空' }); }, initValidatorTip: function (formId, fields) { $('#' + formId).bootstrapValidator({ feedbackIcons: { valid: 'glyphicon glyphicon-ok', invalid: 'glyphicon glyphicon-remove', validating: 'glyphicon glyphicon-refresh' }, container: 'tooltip', group: '.rowGroup', fields: fields, live: 'enabled', message: '该字段不能为空' }).on('error.field.bv', function (e, data) { var $parent = data.element.parents('.form-group-sm'), $icon = $parent.find('.form-control-feedback[data-bv-icon-for="' + data.field + '"]'), title = $icon.data('bs.tooltip').getTitle(); $icon.tooltip('destroy').tooltip({ html: true, placement: 'right', title: title, container: 'body' }); }); }, underLineToCamel: function (str) { var strArr = str.split('_'); for (var i = 1; i < strArr.length; i++) { strArr[i] = strArr[i].charAt(0).toUpperCase() + strArr[i].substring(1); } var result = strArr.join(''); return result.charAt(0).toUpperCase() + result.substring(1); }, randomNum: function (minNum, maxNum) { switch (arguments.length) { case 1: return parseInt(Math.random() * minNum + 1, 10); break; case 2: return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10); break; default: return 0; break; } }, newCrontab: function (href, menuName) { var dataUrl = href; var needCreateCrontab = true; // 轮询已有的标签,判断是否已经存在标签 parent.$('.J_menuTab').each(function () { if ($(this).data('id') == dataUrl) { if (!$(this).hasClass('active')) { $(this).addClass('active').siblings('.J_menuTab').removeClass('active'); parent.MyCrontab.scrollToTab(this); parent.MyCrontab.$('.J_mainContent .J_iframe').each(function () { if ($(this).data('id') == dataUrl) { $(this).show().siblings('.J_iframe').hide(); $(this).attr('src', $(this).attr('src')); return false; } }); } needCreateCrontab = false; return false; } }); //创建标签 if (needCreateCrontab) { var tabLink = '' + menuName + ' '; parent.$('.J_menuTab').removeClass('active'); parent.$('.J_menuTabs .page-tabs-content').append(tabLink); var iframeContent = ''; parent.$('.J_mainContent').find('iframe.J_iframe').hide().parents('.J_mainContent').append(iframeContent); parent.MyCrontab.scrollToTab($('.J_menuTab.active')); } }, endWith: function (str, val) { if (str == null || val == null) { return false; } if (str.length < val.length) { return false; } var temp = str.substring(str.length - val.length); if (temp == val) { return true; } else { return false; } }, setUrlParam: function (url, jsonObj) { for (var temp in jsonObj) { var key = temp; var value = jsonObj[temp]; if (value != null && value != '') { if (url.indexOf("?") != -1) { url = url + "&" + key + "=" + encodeURI(encodeURI(value)); } else { url = url + "?" + key + "=" + encodeURI(encodeURI(value)); } } } return url }, getUrlValue: function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURI(r[2]); return null; }, addAjaxSelect: function (val) { var id = val.id; //下拉框对象的id var obj = val.obj; var url = val.url; //请求地址 var displayCode = val.displayCode; //下拉框实际值名称 var displayName = val.displayName; //下拉框显示值名称 var bindData = val.bindData; var type = val.type; //请求方式 GET 或者 POST, 默认POST var async = val.async; //同步方式 {异步--falae, 同步--true}, 默认为同步 if (async == null) { async = false; } if (type == null) { type == "POST"; } var select = typeof id != "undefined" ? $("#" + id) : $(obj); select.empty(); var ajax = new $ax(url, function (data) { var length = data.length; var html = ""; for (var i = 0; i < length; i++) { if (length == 1) { if (typeof bindData != "undefined" && bindData) { html = html + ""; } else { html = html + ""; } } else { if (typeof bindData != "undefined" && bindData) { if (data[i][displayCode] == select.attr("defval")) { html += ""; } else { html += ""; } } else { if (data[i][displayCode] == select.attr("defval")) { html += ""; } else { html += ""; } } } } select.append(html); if (length == 1) { //如果只有一个选项,需要触发select的onchange方法 select.change(); } }, function (data) { Feng.error("操作失败!"); }); ajax.async = async; ajax.type = type; ajax.set({}); ajax.start(); }, acceptImg: function () { return { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/gif,image/jpg,image/jpeg,image/bmp,image/png' }; }, acceptWord: function () { return { title: 'word', extensions: 'rar,zip,doc,xls,docx,xlsx,pdf', mimeTypes: '.rar,.zip,.doc,.xls,.docx,.xlsx,.pdf' }; }, acceptWord_Img: function () { return { title: 'word_img', extensions: 'doc,xls,docx,xlsx,pdf,gif,jpg,jpeg,bmp,png', mimeTypes: '.doc,.xls,.docx,.xlsx,.pdf,image/gif,image/jpg,image/jpeg,image/bmp,image/png' }; }, resetSelect: function (id) { var options = $("#" + id).children(); if (options.length > 1) { $("#" + id).val(""); } }, dictFormatter: function (code, type) { var result = ""; var ajax = new $ax(Feng.ctxPath + "/dict/findDetailByCode/" + type + "/" + code, function (data) { result = data.name; }, function (data) { Feng.error("操作失败!"); }); ajax.start(); return result; }, showImg: function (context) { //传一个对像 var pic = $(context); var src = pic.attr("src"); var prev = pic.parent().prev(); var _title = prev.text(); var sn = _title.lastIndexOf("."); var suffix = _title.substring(sn + 1, _title.length).toLowerCase(); var title = "图片预览"; var allowedPicTypes = ["jpg", "jpeg", "gif", "png"]; if (allowedPicTypes.indexOf(suffix) > -1) { title = _title; } layer.open({ type: 2, title: title, fixed: false, area: ['80%', '80%'], content: "/common/api/imgViewer?picShow=" + encodeURIComponent(src), maxmin: true, shade: 0 }) /*var sbp = window.top.$("#showBigPic"); sbp.empty(); sbp.append(""); window.top.$("#_pic0001").viewer({ toolbar:true, fullscreen:false }); window.top.$("#_pic0001").click();*/ }, showContract: function (talentId) { layer.open({ type: 2, title: "查看合同文件", fixed: false, area: ['80%', '80%'], content: "/common/api/contractView?id=" + talentId, maxmin: true, shade: 0 }) }, findChildDictBatch: function (data) { var ajax = new $ax(Feng.ctxPath + "/common/tool/findChildDictBatch", function (res) { var data = res.obj; for (var i in data) { var html = ""; for (var j in data[i]) { html = html + ''; } $("#" + i).empty().append(html); } }, function (data) { Feng.error("初始化失败!" + data.responseJSON.message + "!"); }); ajax.setData(data); ajax.setcontentType('application/json;charset=utf-8'); ajax.start(); }, checkMobilePhoneNum: function (num) { var telReg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; if (!telReg.test(num)) { return false; } else { return true; } }, getCheckLog: function (id, data) { //初始化日志 $('#' + id).bootstrapTable({ url: Feng.ctxPath + "/common/api/getCheckLog", method: 'POST', contentType: "application/x-www-form-urlencoded; charset=UTF-8", search: false, // 是否显示表格搜索,此搜索是客户端搜索,不会进服务端 showRefresh: false, // 是否显示刷新按钮 clickToSelect: true, // 是否启用点击选中行 singleSelect: true, // 设置True 将禁止多选 striped: true, // 是否显示行间隔色 pagination: false, // 设置为 true 会在表格底部显示分页条 paginationHAlign: "left", paginationDetailHAlign: "right", sidePagination: "server", // 设置在哪里进行分页,可选值为 'client' 或者 'server' showColumns: false, queryParams: function (params) { return data; }, rowStyle: function (row, index) { return { css: { "word-break": "break-word", "white-space": "inherit" } } }, columns: [ {title: '步骤', field: 'stepName', visible: true, align: 'center', valign: 'middle', width: "10%", 'class': 'uitd_showTip', formatter: function (value, row, index) { return "" + value; } }, {title: '审核状态', field: 'stateName', visible: true, align: 'center', valign: 'middle', width: "10%", 'class': 'uitd_showTip'}, {title: '状态变更', field: 'stateChange', visible: true, align: 'center', valign: 'middle', width: "20%", 'class': 'uitd_showTip'}, {title: '审核意见/备注', field: 'description', visible: true, align: 'center', valign: 'middle', width: "30%", 'class': 'uitd_showTip', formatter: function (value, row, index) { return '"' + value + '"'; } }, {title: '操作人', field: 'createUser', visible: true, align: 'center', valign: 'middle', width: "15%", 'class': 'uitd_showTip'}, {title: '操作时间', field: 'createTime', visible: true, align: 'center', valign: 'middle', width: "15%", 'class': 'uitd_showTip'}, ] , onPostBody: function () { $('#' + id + "td.uitd_showTip").bind("mouseover", function () { var htm = $(this).html(); $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show'); }); } }); }, getCheckLogModel: function (id, type, fileType) { layer.open({ type: 1, title: "日志", fixed: false, content: '
', area: ['80%', '80%'], maxmin: true, success: function (layero, index) { //初始化日志 $('#' + id).bootstrapTable({ url: Feng.ctxPath + "/common/api/getCheckLog", method: 'POST', contentType: "application/x-www-form-urlencoded; charset=UTF-8", search: false, // 是否显示表格搜索,此搜索是客户端搜索,不会进服务端 showRefresh: false, // 是否显示刷新按钮 clickToSelect: true, // 是否启用点击选中行 singleSelect: true, // 设置True 将禁止多选 striped: true, // 是否显示行间隔色 pagination: false, // 设置为 true 会在表格底部显示分页条 paginationHAlign: "left", paginationDetailHAlign: "right", sidePagination: "server", // 设置在哪里进行分页,可选值为 'client' 或者 'server' showColumns: false, queryParams: function (params) { if (Feng.isEmptyStr(fileType)) { fileType = ""; } return {"type": type, "mainId": id, "typeFileId": fileType, "active": 1}; }, rowStyle: function (row, index) { return { css: { "word-break": "break-word", "white-space": "inherit" } } }, columns: [ {title: '步骤', field: 'stepName', visible: true, align: 'center', valign: 'middle', width: "10%", 'class': 'uitd_showTip', formatter: function (value, row, index) { return "" + value; } }, {title: '审核状态', field: 'stateName', visible: true, align: 'center', valign: 'middle', width: "10%", 'class': 'uitd_showTip'}, {title: '状态变更', field: 'stateChange', visible: true, align: 'center', valign: 'middle', width: "20%", 'class': 'uitd_showTip'}, {title: '审核意见/备注', field: 'description', visible: true, align: 'center', valign: 'middle', width: "30%", 'class': 'uitd_showTip', formatter: function (value, row, index) { return '"' + value + '"'; } }, {title: '操作人', field: 'createUser', visible: true, align: 'center', valign: 'middle', width: "15%", 'class': 'uitd_showTip'}, {title: '操作时间', field: 'createTime', visible: true, align: 'center', valign: 'middle', width: "15%", 'class': 'uitd_showTip'}, ] , onPostBody: function () { $('#' + id + "td.uitd_showTip").bind("mouseover", function () { var htm = $(this).html(); $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show'); }); } }); } }); }, pdfReader: function (url, filename) { filename = typeof filename == "undefined" ? "临时文件" : filename; var index = layer.open({ type: 2, title: "查看PDF文件 - " + filename, area: ['80%', '80%'], //宽高 fix: false, //不固定 maxmin: true, content: url }); return index; }, showPdf: function (url, id, title) { if (Feng.isEmptyStr(id)) { id = "id"; } if (Feng.isEmptyStr(title)) { title = "预览"; } let origin = window.location.origin; //let full_url = "https://fileview.jinjianghc.com/onlinePreview?url=" + encodeURIComponent(Base64.encode(url)); var index = layer.open({ id: id, type: 2, shade: 0, title: title, area: ['80%', '80%'], //宽高 fix: false, //不固定 maxmin: true, content: url, }); // layer.full(index); }, showExcel: function (url, id, title) { if (Feng.isEmptyStr(id)) { id = "id"; } if (Feng.isEmptyStr(title)) { title = "预览"; } let origin = window.location.origin; //let full_url = "https://fileview.jinjianghc.com/onlinePreview?url=" + encodeURIComponent(Base64.encode(url)); var index = layer.open({ id: id, type: 2, shade: 0, title: title, area: ['80%', '80%'], //宽高 fix: false, //不固定 maxmin: true, content: Feng.ctxPath + "/common/api/filePreview?url=" + url + "&title=" + title, }); //window.location.href = url; }, showFile: function (url, id, title) { if (Feng.isEmptyStr(id)) { id = "id"; } if (Feng.isEmptyStr(title)) { title = "预览"; } var index = layer.open({ id: id, type: 2, shade: 0, title: title, area: ['600px', '350px'], //宽高 fix: false, //不固定 maxmin: true, content: url, }); }, isEmptyStr: function (str) { if (str == null || str == '') { return true; } else { return false; } }, isNotEmptyStr: function (str) { if (str != null && str != '') { return true; } else { return false; } }, checkAll: function (id) { $("#" + id + " input").each(function () { this.checked = true; }) }, unCheckAll: function (id) { $("#" + id + " input").each(function () { if (this.checked) { this.checked = false; } else { this.checked = true; } }) }, showMiniFileModal: function (project, type, id, source, talent_condition, checkState, showOldFile) { layer.open({ type: 2, title: "附件", shade: 0, resize: true, maxmin: true, // moveOut:true, id: "file", area: ['800px', '500px'], offset: 'rb', //右下角弹出content: shift: 2, content: Feng.ctxPath + "/common/api/gotoFileShow", zIndex: layer.zIndex, success: function (layero, index) { layer.setTop(layero); //按钮【按钮一】的回调 var iframeWin = window[layero.find('iframe')[0]['name']]; iframeWin.getFile(project, type, id, source, talent_condition, checkState, showOldFile); } }); }, getCheckBoxValues: function (str) { //获取checkbox值 var val = ""; $("#" + str + " input[name='" + str + "']").each(function () { if (this.checked) { val = val + $(this).val() + ","; } }); return val.substring(0, val.length - 1); }, initDate: function () { $(".date").removeAttr('lay-key'); $(".date").each(function () { laydate.render({ elem: this , type: 'date' , trigger: 'click' }); }); }, downloadFile: function (id, type) { window.location.href = Feng.ctxPath + "/common/api/downloadFile?id=" + id + "&type=" + type; }, bankChange: function (val, target) { var bank = $("#" + val).val(); if ($.trim(bank) == '中国工商银行') { $("#" + target).val('102391050013'); } else { $("#" + target).val(''); } }, chkFileInvalid: function (file, maxImageSize, maxFileSize, fileType, msg) { var size = 0; if (typeof fileType != "undefined" && fileType != null) { if (fileType.indexOf(file.type) < 0) { msg = typeof msg != "undefined" ? msg : "不支持的文件类型"; Feng.error(msg) return false; } } switch (file.type) { case "image/jpeg": case "image/gif": case "image/png": case "image/jpg": size = maxImageSize * 1024 * 1024;//图片限制最大5M if (file.size > size) { Feng.error("图片大小不能超过" + maxImageSize + "MB!"); return false; } break; case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": case "application/pdf": case "application/msword": case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": case "application/vnd.ms-excel": case "application/zip": case "application/x-rar-compressed": case "application/x-7z-compressed": size = maxFileSize * 1024 * 1024;//其它允许文件类型限制最大均为10M if (file.size > size) { Feng.error("文件大小不能超过" + maxFileSize + "MB!"); return false; } break; default: Feng.error("文件类型不支持") return false; } return true; }, isImg: function (type) { var imgtypes = ["image/jpeg", "image/gif", "image/png", "image/jpg"]; if (imgtypes.indexOf(type) > -1) { return true; } return false; } };