var util = { //返回上一个页面 breakpage: function (p) { if (p == undefined) { p = -1; } window.location.href = "javascript:history.go(" + p + ")"; }, //时间转换 convertTime: function (val) { var date; if (typeof val == 'string' && val.indexOf("Date") <= -1) { date = new Date(val); } else { var re = /-?d+/; var m = re.exec(val); date = new Date(parseInt(m[0])); } return date; }, //时间格式化显示 formatTime: function (val, format) { if (val == '' || val == null) { return ''; } var date; if (typeof val == 'string' && val.indexOf("Date") <= -1) { date = new Date(val); } else if (typeof val == 'object') { //时间格式 date = val; } else { var re = /-?d+/; var m = re.exec(val); date = new Date(parseInt(m[0])); } if (format || format != null) { var o = { "M+": date.getMonth() + 1, //month "d+": date.getDate(), //day "H+": date.getHours(), //hour "m+": date.getMinutes(), //minute "s+": date.getSeconds(), //second "q+": Math.floor((date.getMonth() + 3) / 3), //quarter "S": date.getMilliseconds() //millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } return format; }, //表单提交重定向 formSubmitRedrict: function (url, datas, method, target, bc) { var tempFormName = 'tempForm'; for (var i = 0; document.getElementById(tempFormName) != undefined; i++) { tempFormName = 'tempForm' + i; } var tempForm = document.createElement("form"); tempForm.id = tempFormName; tempForm.method = method == undefined ? "post" : method; tempForm.action = url; tempForm.target = target == undefined ? "" : target; for (var i = 0; i < datas.length; i++) { var hideInput = document.createElement("input"); hideInput.type = "hidden"; hideInput.name = datas[i].name; hideInput.value = datas[i].value; tempForm.appendChild(hideInput); } if (bc == undefined) { bc = function () { } } if (document.all) { tempForm.attachEvent("onsubmit", bc); //IE } else { tempForm.addEventListener("submit", bc); //firefox } document.body.appendChild(tempForm); if (document.all) { tempForm.fireEvent("onsubmit"); } else { tempForm.dispatchEvent(new Event("submit")); } tempForm.submit(); document.body.removeChild(tempForm); }, //copy到剪切板 copyText: function (data, cb) { //data==={text: OrderNo,target:$event.target } //创建隐藏的标签 var textArea; try { textArea = document.createElement("<textarea></textarea>"); } catch (e) { textArea = document.createElement("textarea"); } textArea.textContent = data.text; //不显示出来 textArea.style.width = '1px'; textArea.style.height = '1px'; textArea.style.color = textArea.style.backgroundColor; //定位,不滚动 if (!data.target) { data.target = document.body; } data.target.appendChild(textArea); textArea.select(); // 选择对象 var res = false; try { res = document.execCommand("copy");//复制 } catch (err) { data.target.removeChild(textArea); console.log('该浏览器不支持点击复制到剪贴板'); } if (cb && typeof cb == "function") { cb(res) } data.target.removeChild(textArea); }, //生成【类型-名称】获取器,本地session存储,可用于过滤器调用 GetTypeNameModel: function (op) { var model = { sessionStorageKey: op.sessionStorageKey,//此类型在本地session中key值 apiUrl: op.apiUrl,//此类型列表获取接口 idKey: op.idKey,//此类型在对象中id标识字段名 nameKey: op.nameKey,//此类型在对象中显示名称字段名 list: [], getList: function () { var list = sessionStorage.getItem(model.sessionStorageKey); if (list) { model.list = JSON.parse(list); } else { ajaxProtogenesis.ajax("post", model.apiUrl, true, {}, function (res) { model.list = res.RetData; sessionStorage.setItem(model.sessionStorageKey, JSON.stringify(model.list)); }) } }, getName: function (id) {//根据类型获取名称的方法 if (model.list == [] || model.length == 0) { model.getList(); } var res = ''; if (model.list.length > 0) { for (var i = 0; i < model.list.length; i++) { if (model.list[i][model.idKey] == id) { res = model.list[i][model.nameKey]; break; } } } return res; } }; model.getList(); return model; }, //数组转为二维数组形式成表格的行 arrayToRow: function (model, all, rowNo, maxCell,defaultData) { //model行的数组,all所有数据数组,rowNo当前行下标,maxCell总列数,defaultData数据不存在时用默认值填充 //获取当前这行数据 var row = []; for (var i = 0; i < maxCell; i++) { if (all.length > rowNo * maxCell + i) { row.push(all[rowNo * maxCell + i]); } else { row.push(defaultData) } } model.push(row); rowNo++;//下一行下标 if (all.length > rowNo * maxCell) { this.arrayToRow(model, all, rowNo, maxCell, defaultData); } return model; }, //数组转为二维数组形式成表格 arrayToTable: function (all, maxRow, maxCell,def) { //all所有数据数组,单张表maxRow总行数,maxCell总列数,def默认值。 //每张表的数据数组 var tableDatas = []; util.arrayToRow(tableDatas, all, 0, maxRow * maxCell, def); //为表获取行 var tables = []; for (var i = 0; i < tableDatas.length; i++) { var rows = []; rows = util.arrayToRow(rows, tableDatas[i], 0, maxCell, def); tables[i] = rows; } return tables; }, //数组转为二维数组形式成表格_示例 arrayToTableTest: function () { var all = []; for (var i = 0; i < 97; i++) { all.push(i + 1); } var t96 = this.arrayToTable(all, 12, 8, {}) console.log(t96); return t96; }, //添加属性到util,用合并对象的方式,用来给全局调用的属性,但要注意属性名称冲突 addAssign: function (obj) { Object.assign(util, obj); } }; //获取样本类型名称方法对象 util.TypeNameModel_SampleType = util.GetTypeNameModel({ sessionStorageKey: "_sampleTypeList20210932", apiUrl: "/Product/ProductInfo/GetProductExtractionSampleDTO", idKey: "ExtractionSampleTypeId", nameKey: "SampleTypeName", }); ////ng过滤器例: //FeiYeNGApp.filter("SampleType", function () { // return function (input) { // return util.TypeNameModel_SampleType.getName(input); // } //}); //微信小程序转ng电脑端,复制代码做部分中间处理 var wx = { //本地缓存 setStorageSync: function (key, value) { if (typeof value == "object") { value = JSON.stringify(value); } localStorage.setItem(key, value); }, getStorageSync: function (key) { var value = localStorage.getItem(key); try { return JSON.parse(value); } catch (e) { } return value; }, removeStorageSync: function (key) { localStorage.removeItem(key); }, //跳转 navigateTo: function (data) { document.location.href = data.url; }, navigateBack: function (data) { if (!data) { util.breakpage(-1); return; } util.breakpage((0 - data.delta)); } };