Files
2026-02-06 18:34:35 +08:00

471 lines
18 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
$.getJSON = function (url, data, success, opt) {
data.szhlcode = ComFunJS.getCookie("szhlcode");
var fn = {
success: function (data, textStatus) { }
}
if (success) {
fn.success = success;
}
$.ajax({
url: url,
data: JSON.stringify(data),
dataType: "json",
type: "post",
processData: false,
contentType: "text/json",
success: function (data, textStatus) {
if (data.ErrorMsg) {
top.ComFunJS.winwarning(data.ErrorMsg)
}
if (data.uptoken) {
ComFunJS.setCookie("szhlcode", data.uptoken);//更新Token
}
fn.success(data, textStatus);
},
beforeSend: function (XHR) {
XHR.setRequestHeader("Authorization", ComFunJS.getQueryString('token', '0'));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
if (errorThrown === "Unauthorized") {
top.ComFunJS.winwarning("页面超时!")
top.window.location.href = "/Login.html";
}
},
complete: function (XHR, TS) {
}
});
};
var ComFunJS = new Object({
getQueryString: function (name, defauval) {//获取URL参数,如果获取不到,返回默认值,如果没有默认值,返回空格
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) { return unescape(r[2]); }
else {
return defauval || "";
}
},//获取参数中数据
setCookie: function (name, value) {
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
},
getCookie: function (name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
},
createScript: function (script) {
var myScript = document.createElement("script");
myScript.type = "text/javascript";
myScript.appendChild(document.createTextNode(script));
document.body.appendChild(myScript);
},
isPC: function () {
//var userAgentInfo = navigator.userAgent;
//var Agents = ["Android", "iPhone",
// "SymbianOS", "Windows Phone",
// "iPad", "iPod"];
//var flag = true;
//for (var v = 0; v < Agents.length; v++) {
// if (userAgentInfo.indexOf(Agents[v]) > 0) {
// flag = false;
// break;
// }
//}
var windowWidth = $(window).width();
if (windowWidth < 640) {
return false;
}
if (windowWidth >= 640) {
return true;
}
},
loadScriptString: function (code) {
var script = document.createElement("script");
script.type = "text/javascript";
try {
// firefox、safari、chrome和Opera
script.appendChild(document.createTextNode(code));
} catch (ex) {
// IE早期的浏览器 ,需要使用script的text属性来指定javascript代码。
script.text = code;
}
document.getElementsByTagName("head")[0].appendChild(script);
},
JSONToExcelConvertor: function (JSONData, FileName, ShowLabel) {
var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
var excel = '<table>';
//设置表头
var row = "<tr>";
for (var i = 0, l = ShowLabel.length; i < l; i++) {
row += "<td>" + ShowLabel[i].value + '</td>';
}
//换行
excel += row + "</tr>";
//设置数据
for (var i = 0; i < arrData.length; i++) {
var row = "<tr>";
for (var j = 0; j < arrData[i].length; j++) {
var value = arrData[i][j].value === "." ? "" : arrData[i][j].value;
row += '<td>' + value + '</td>';
}
excel += row + "</tr>";
}
excel += "</table>";
var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel';
excelFile += '; charset=UTF-8">';
excelFile += "<head>";
excelFile += "<!--[if gte mso 9]>";
excelFile += "<xml>";
excelFile += "<x:ExcelWorkbook>";
excelFile += "<x:ExcelWorksheets>";
excelFile += "<x:ExcelWorksheet>";
excelFile += "<x:Name>";
excelFile += "{worksheet}";
excelFile += "</x:Name>";
excelFile += "<x:WorksheetOptions>";
excelFile += "<x:DisplayGridlines/>";
excelFile += "</x:WorksheetOptions>";
excelFile += "</x:ExcelWorksheet>";
excelFile += "</x:ExcelWorksheets>";
excelFile += "</x:ExcelWorkbook>";
excelFile += "</xml>";
excelFile += "<![endif]-->";
excelFile += "</head>";
excelFile += "<body>";
excelFile += excel;
excelFile += "</body>";
excelFile += "</html>";
var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile);
var link = document.createElement("a");
link.href = uri;
link.style = "visibility:hidden";
link.download = FileName + ".xls";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
},
DateAdd: function (date, strInterval, Number) {
var dtTmp = date;
switch (strInterval) {
case 's': return new Date(Date.parse(dtTmp) + (1000 * Number));
case 'n': return new Date(Date.parse(dtTmp) + (60000 * Number));
case 'h': return new Date(Date.parse(dtTmp) + (3600000 * Number));
case 'd': return new Date(Date.parse(dtTmp) + (86400000 * Number));
case 'w': return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'y': return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
}
return date;
},
getfileurl: function (zyidorurl) {
var url = zyidorurl;
if (ComFunJS.getCookie("fileapi")) {
url = ComFunJS.getCookie("fileapi") + ComFunJS.getCookie("qycode") + /document/ + zyidorurl;
}
return url;
},
StringToDate: function (DateStr) {
var converted = Date.parse(DateStr);
var myDate = new Date(converted);
if (isNaN(myDate)) {
//var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';
var arys = DateStr.split('-');
myDate = new Date(arys[0], --arys[1], arys[2]);
}
return myDate;
},
format: function (date, str) {
str = str.replace(/yyyy|YYYY/, date.getFullYear());
str = str.replace(/MM/, date.getMonth() >= 9 ? ((date.getMonth() + 1) * 1).toString() : '0' + (date.getMonth() + 1) * 1);
str = str.replace(/dd|DD/, date.getDate() > 9 ? date.getDate().toString() : '0' + date.getDate());
return str;
},
loadStyleString: function (cssText) {
var script = document.createElement("script");
script.type = "text/javascript";
try {
// firefox、safari、chrome和Opera
script.appendChild(document.createTextNode(code));
} catch (ex) {
// IE早期的浏览器 ,需要使用script的text属性来指定javascript代码。
script.text = code;
}
document.getElementsByTagName("head")[0].appendChild(script);
},
isOffice: function (extname) {
return $.inArray(extname.toLowerCase(), ['doc', 'docx', 'ppt', 'pptx', 'pdf']) != -1
},
isPic: function (extname) {
return $.inArray(extname.toLowerCase(), ['jpg', 'jpeg', 'gif', 'png', 'bmp']) != -1
},
getfile: function (fileid) {
var url = "/api/File/DFile?szhlcode=" + ComFunJS.getCookie("szhlcode");
if (fileid) {
url = url + "&fileId=" + fileid;
}
return url;
},
requestFullScreen: function () {
var de = document.documentElement;
if (de.requestFullscreen) {
de.requestFullscreen();
} else if (de.mozRequestFullScreen) {
de.mozRequestFullScreen();
} else if (de.webkitRequestFullScreen) {
de.webkitRequestFullScreen();
}
},
exitFullscreen: function () {
var de = document;
if (de.exitFullscreen) {
de.exitFullscreen();
} else if (de.mozCancelFullScreen) {
de.mozCancelFullScreen();
} else if (de.webkitCancelFullScreen) {
de.webkitCancelFullScreen();
}
},
//弹出帮助函数
winsuccess: function (content) {
app.$notify({
title: '警告',
message: content,
type: 'success'
});
},//成功窗口
winwarning: function (content) {
app.$notify({
title: '警告',
message: content,
type: 'warning'
});
},//警告窗口
formcomponents: [
{ wigcode: "qjInput", wigname: "输入框", wigurl: "/BiManage/AppPage/FORMBI/vue/qjInput.vue", wigtype: "基础组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjInputNum", wigname: "数字", wigurl: "/BiManage/AppPage/FORMBI/vue/qjInputNum.vue", wigtype: "基础组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjSelect", wigname: "下拉框", wigurl: "/BiManage/AppPage/FORMBI/vue/qjSelect.vue", wigtype: "基础组件", ico: "icon-biaodanzujian-xialakuanglv" },
{ wigcode: "qjDate", wigname: "日期时间", wigurl: "/BiManage/AppPage/FORMBI/vue/qjDate.vue", wigtype: "基础组件", ico: "icon-riqi" },
{ wigcode: "qjCheck", wigname: "选中框", wigurl: "/BiManage/AppPage/FORMBI/vue/qjCheck.vue", wigtype: "基础组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjEdit", wigname: "编辑器", wigurl: "/BiManage/AppPage/FORMBI/vue/qjEdit.vue", wigtype: "基础组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjFile", wigname: "文件上传", wigurl: "/BiManage/AppPage/FORMBI/vue/qjFile.vue", wigtype: "基础组件", ico: "icon-shangchuan" },
{ wigcode: "qjSN", wigname: "流水号", wigurl: "/BiManage/AppPage/FORMBI/vue/qjSN.vue", wigtype: "辅助组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjLine", wigname: "分割线", wigurl: "/BiManage/AppPage/FORMBI/vue/qjLine.vue", wigtype: "辅助组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjTab", wigname: "Tab组件", wigurl: "/BiManage/AppPage/FORMBI/vue/qjTab.vue", wigtype: "辅助组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjTable", wigname: "表格", wigurl: "/BiManage/AppPage/FORMBI/vue/qjTable.vue", wigtype: "高级组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjTree", wigname: "选择树", wigurl: "/BiManage/AppPage/FORMBI/vue/qjTree.vue", wigtype: "高级组件", ico: "icon-biaodanzujian-shurukuang" },
{ wigcode: "qjCascader", wigname: "级联选择", wigurl: "/BiManage/AppPage/FORMBI/vue/qjCascader.vue", wigtype: "高级组件", ico: "icon-biaodanzujian-shurukuang" }
],
jsonToTree: function (jsonData, id, pid, children) {
let result = [],
temp = {};
for (let i = 0; i < jsonData.length; i++) {
temp[jsonData[i][id]] = jsonData[i]; // 以id作为索引存储元素可以无需遍历直接定位元素
}
for (let j = 0; j < jsonData.length; j++) {
let currentElement = jsonData[j];
let tempCurrentElementParent = temp[currentElement[pid]]; // 临时变量里面的当前元素的父元素
if (tempCurrentElementParent) {
// 如果存在父元素
if (!tempCurrentElementParent[children]) {
// 如果父元素没有chindren键
tempCurrentElementParent[children] = []; // 设上父元素的children键
}
tempCurrentElementParent[children].push(currentElement); // 给父元素加上当前元素作为子元素
} else {
// 不存在父元素,意味着当前元素是一级元素
result.push(currentElement);
}
}
return result;
},
winviewform: function (url, title, width, height, callbact) {
var width = width || $("body").width() * 2 / 3;
var height = height || $(window).height() - 140; //$("body").height();
var optionwin = {
type: 2,
fix: true, //不固定
area: [width + 'px', height + 'px'],
maxmin: true,
content: url,
title: title,
shadeClose: false, //加上边框
scrollbar: false,
shade: 0.4,
shift: 0,
success: function (layero, index) {
},
end: function () {
if (callbact) {
return callbact.call(this);
}
}
}
layer.open(optionwin);
},
winbtnwin: function (url, title, width, height, option, btcallbact) {
var width = width || $("body").width() - 300;
var height = height || $(window).height() * 0.8; //var height = height || $("#main").height();
var optionwin = {
type: 2,
fix: true, //不固定
area: [width + 'px', height + 'px'],
maxmin: true,
content: url,
title: title,
shade: 0.4,
shift: 0,
shadeClose: false,
scrollbar: false,
success: function (layero, index) {
if ($(layero).find(".successfoot").length == 0) {
var footdv = $('<div class="successfoot" style="border-bottom-width: 1px; padding: 0 20px 0 10px;margin-top: -3px;height:50px;background: #fff;"></div>');
var btnConfirm = $("<a href='javascript:void(0)' class='btn btn-sm btn-success' style='float:right; margin-top: 10px;width: 140px;'><i class='fa fa-spinner fa-spin' style='display:none'></i> 确 认</a>");
var btnCancel = $("<a href='javascript:void(0)' class='btn btn-sm btn-danger' style='float:right; margin-top: 10px;margin-right: 10px;width: 80px;'>取 消</a>");
var msg = $("<input type='hidden' class='r_data' >");
btnConfirm.appendTo(footdv).bind('click', function () {
return btcallbact.call(this, layero, index, btnConfirm);
})
btnCancel.appendTo(footdv).bind('click', function () {
layer.close(index)
})
$(layero).append(footdv).append(msg);
try {
} catch (e) { }
}
}
}
layer.open(optionwin);
},//带确认框的窗口
getnowdate: function (format, date) {
var now = new Date();
if (date) {
now = new Date(Date.parse(date.replace(/-/g, '/')));
}
format = format.toLowerCase();
var year = now.getFullYear(); //年
var month = now.getMonth() + 1; //月
var day = now.getDate(); //日
var hh = now.getHours();
var mm = now.getMinutes();
var ss = now.getSeconds();
var clock = year + "-";
if (format == "yyyy") {
clock = year;
return clock + "";
}
if (format == "yyyy-mm") {
if (month < 10)
clock += "0";
clock += month + "-";
}
if (format == "yyyy-mm-dd") {
if (month < 10)
clock += "0";
clock += month + "-";
if (day < 10) {
clock += "0";
}
clock += day + "-";
}
if (format == "yyyy-mm-dd hh:mm") {
if (month < 10)
clock += "0";
clock += month + "-";
if (day < 10) {
clock += "0";
}
clock += day + " ";
if (hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10)
clock += "0";
clock += mm + ":";
}
if (format == "yyyy-mm-dd hh:mm:ss") {
if (month < 10)
clock += "0";
clock += month + "-";
if (day < 10) {
clock += "0";
}
clock += day + " ";
if (hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10)
clock += "0";
clock += mm + ":";
if (ss < 10)
clock += "0";
clock += ss + ":";
}
return (clock.substr(0, clock.length - 1));
},//获取当前时间
manurl: function (url) {
if (url.indexOf("/api/Auth/ExeAction") > -1) {
url = url.replace("/api/Auth/ExeAction?Action=", "/API/VIEWAPI.ashx?Action=Auth_")
}
if (url.indexOf("/api/Bll/ExeAction") > -1) {
url = url.replace("/api/Bll/ExeAction", "/API/VIEWAPI.ashx")
}
if (url.indexOf("/api/Bll/PubExeAction") > -1) {
url = url.replace("/api/Bll/PubExeAction?Action=", "/API/VIEWAPI.ashx?Action=Pub_")
}
return url;
}
})