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 = '';
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) {
const index = title.lastIndexOf('.');
const fileType = title.substr(index + 1);
const config = {
"document": {
"permissions": {
comment: false,
fillForms: false,
"edit": false,
},
"fileType": fileType,
"title": title,
"url": url,
// "key": this.md5,
"lang": "zh-CN"
},
"width": '100%',
"editorConfig": {
mode: 'view',
"lang": "zh-CN"
}
};
document.title = title;
const docEditor = new window.DocsAPI.DocEditor("placeholder", config);
//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;
}
};