baseUrl = window.top.RootSetting.url; uploadAxios = axios.create( { timeout: 60000, headers:{ } }); commonAxios = axios.create({ timeout: 60000, // withCredentials: true, headers: { 'Content-Type': 'application/json', }, transformRequest: [function (data) { function dateFormat(date, fmt) { if (null == date || undefined == date) return ''; var o = { "M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "h+": date.getHours(), //小时 "m+": date.getMinutes(), //分 "s+": date.getSeconds(), //秒 "S": date.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } Date.prototype.toJSON = function () { return dateFormat(this, 'yyyy-MM-dd') } data = JSON.stringify(data) return data }] }); Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }; function createCode (code) { // var code_ = ""; // var date = new Date(); // code_ = date.getTime(); // if (code) { // code_ = code + "_" + code_; // } // return code_; /* var param = { ruleCode: code } Server.call("root/code/nextval", param, function(result) { console.log(result); if (result && result.data) { var code_ = result.data.value; return code_; } }); */ }; function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } return temp; }; function dateFormat(date, fmt) { if (null == date || undefined == date) return ''; var o = { "M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "h+": date.getHours(), //小时 "m+": date.getMinutes(), //分 "s+": date.getSeconds(), //秒 "S": date.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }; function getUrl(vue, url, params, callback, error_callback) { url = baseUrl + url; let lastUrl = url.substring(url.lastIndexOf("/") + 1); let user = localStorage.getItem('user'); let userInfo = JSON.parse(user); if (!params) { params = { user_name: userInfo.name } } else if(!params.user_name && userInfo) { params.user_name = userInfo.name } commonAxios.get(url, { params: params }).then(data_ => { if(typeof(data_.data) == "string"){ data_.data = JSON.parse(data_.data); } if (!data_.data.success) { vue.$message({ showClose: true, message: data_.data.errormessage, type: 'error' }); return; } var result = data_.data; if (!isEncoded) { var dataStr = JSON.stringify(data_.data); // dataStr = percent2percent25(dataStr); dataStr = decodeURI(dataStr); var result = eval('(' + dataStr + ')'); } if (callback) { if (lastUrl && lastUrl.startsWith("get")) { lastUrl = lastUrl.substring(3).toLowerCase(); if (result[lastUrl]) { callback(result[lastUrl]); } else { callback(result); } } else { callback(result); } } }) .catch(error => { vue.$message({ showClose: true, message: url + ':请求出现错误:' + error, type: 'error' }); console.error(error); if (error_callback) { error_callback(error); } }) }; function uploadFile(vue, formData, callback, error_callback) { var user_id = localStorage.getItem("id"); uploadAxios.post(baseUrl +'file/exec?userId=' + user_id, formData).then(data_ => { vue.$message({ showClose: true, message: '上传成功!', type: 'success' }); if (callback) { callback(data_); } }).catch(error => { vue.$message({ showClose: true, message: ':请求出现错误:' + error, type: 'error' }); console.error(error); if (error_callback) { error_callback(error); } }); } function uploadFileAnalysis(vue, formData, callback, error_callback) { /* formData.type="textCommon"; */ uploadAxios.post(baseUrl +'api/parseLicense', formData).then(data_ => { vue.$message({ showClose: true, message: '上传成功!', type: 'success' }); if (callback) { callback(data_); } }).catch(error => { vue.$message({ showClose: true, message: ':请求出现错误:' + error, type: 'error' }); console.error(error); if (error_callback) { error_callback(error); } }); } function getDataList(me, dataName, params, callback, error_callback) { params.dataName = dataName; getUrl(me, "data/getEntitySet", params, callback, error_callback); }; function getOneData(me, dataName, params, callback, error_callback) { params.dataName = dataName; getUrl(me, "data/getEntity", params, callback, error_callback); }; function saveData(me, dataName, params, callback, error_callback) { for(let one in params) { let val = params[one]; if(val === "") { params[one] = undefined; } } params.dataName = dataName; getUrl(me, "data/saveEntity", params, callback, error_callback); }; function delData(me, dataName, id, callback, error_callback) { let params = { id:id, dataName: dataName }; getUrl(me, "data/deleteEntity", params, callback, error_callback); }; function percent2percent25(URI) { if (URI.indexOf('%') > -1) { return URI.replace(/%/g, '%25') } else { return URI; } } function postUrl(vue, url, params, callback, error_callback) { url = baseUrl + url; let lastUrl = url.substring(url.lastIndexOf("/") + 1); let formData = new FormData(); for(let name in params) { let val = params[name]; formData.append(name, val); } axios.post(url, formData) .then(data_ => { if (!data_.data.success) { vue.$message({ showClose: true, message: data_.data.errormessage, type: 'error' }); return; } if (callback) { if (lastUrl && lastUrl.startsWith("get")) { lastUrl = lastUrl.substring(3).toLowerCase(); if (data_.data[lastUrl]) { callback(data_.data[lastUrl]); } else { callback(data_.data.data); } } else { callback(data_.data.data); } } }) .catch(error => { vue.$message({ showClose: true, message: url + ':请求出现错误:' + error, type: 'error' }); console.info(error); if (error_callback) { error_callback(error); } }) }; function postCommonUrl(vue, url, params, callback, error_callback) { url = baseUrl + url; let lastUrl = url.substring(url.lastIndexOf("/") + 1); commonAxios.post(url, params) .then(data_ => { if (!data_.data.success) { vue.$message({ showClose: true, message: data_.data.errormessage, type: 'error' }); return; } if (callback) { if (lastUrl && lastUrl.startsWith("get")) { lastUrl = lastUrl.substring(3).toLowerCase(); if (data_.data[lastUrl]) { callback(data_.data[lastUrl]); } else { callback(data_.data.data); } } else { callback(data_.data.data); } } }) .catch(error => { vue.$message({ showClose: true, message: url + ':请求出现错误:' + error, type: 'error' }); console.info(error); if (error_callback) { error_callback(error); } }) }; function objectToURI(object) { if (!object) { return null; } if (typeof object == "String") { return encodeURI(object); } var param = null; for (var prop in object) { if (object[prop]) { if (param) { param = param + "&" + prop + "=" + encodeURI(object[prop]); } else { param = prop + "=" + encodeURI(object[prop]); } } } return param; } function getGetParams(url) { // var url = window.location.href; const search = url.split('?')[1] if (!search) { return {} } try { return JSON.parse( '{"' + decodeURIComponent(search) .replace(/"/g, '\\"') .replace(/&/g, '","') .replace(/=/g, '":"') + '"}' ); }catch(e) { return {}; } } function getGetParams_(url) { // var url = window.location.href; const search = url.split('?')[1]; var obj_ = {}; if (!search) { return {} } var search_list = search.split("&"); search_list.map(e=>{ var e_list = e.split("="); if (e_list.length == 2) { var e_k = e_list[0].replace(/"/g, '\\"'); var e_v = e_list[1].replace(/"/g, '\\"'); obj_[e_k] = e_v; } }) return obj_; } function ArrayToTreeByNotParent(array_, name, parentId, parId, disabled_field, isencode, parentobj) { if(!parentId) { parentId = "parent_id"; } if(!name) { name = "label"; } if(!parId) { parId = ""; } let obj = {}; let result = []; let list = JSON.parse(JSON.stringify(array_)); list.map(el => { obj[el.id] = el; }) let openId = ""; for (let i = 0, len = list.length; i < len; i++) { let parentId_ = list[i][parentId]; //如果存在判断只读字段,并且该字段有值则设置该节点为只读 if (disabled_field) { if(list[i][disabled_field]) { list[i].disabled = true; } } //设置显示字段 if (isencode) { list[i].label = decodeURI(encodeURI( list[i][name]));//数据如果带“%”的需要编码再解码,否则会存在格式错误 list[i].name = decodeURI(encodeURI( list[i][name])); } else { list[i].label = decodeURI(list[i][name]); list[i].name = decodeURI(list[i][name]); } if (parentId_ == parId || !parentId_ || parentId_ == "null") { if(!obj[list[i].id].children) { obj[list[i].id].children = null; } result.push(list[i]); continue; } else if (obj[parentId_]) { if (!obj[parentId_].children) { obj[parentId_].children = []; } obj[parentId_].children.push(list[i]); } else if(!obj[parentId_]) { var item = { children: [] }; for (var k in parentobj) { item[k] = list[i][parentobj[k]]; } obj[parentId_] = item; result.push(obj[parentId_]); obj[parentId_].children.push(list[i]); } } return result; } function ArrayToTree(array_, name, parentId, parId, disabled_field, isencode) { if(!parentId) { parentId = "parent_id"; } if(!name) { name = "label"; } if(!parId) { parId = ""; } let obj = {}; let result = []; let list = JSON.parse(JSON.stringify(array_)); list.map(el => { obj[el.id] = el; }) let openId = ""; for (let i = 0, len = list.length; i < len; i++) { let parentId_ = list[i][parentId]; //如果存在判断只读字段,并且该字段有值则设置该节点为只读 if (disabled_field) { if(list[i][disabled_field]) { list[i].disabled = true; } } //设置显示字段 if (isencode) { list[i].label = decodeURI(encodeURI( list[i][name]));//数据如果带“%”的需要编码再解码,否则会存在格式错误 list[i].name = decodeURI(encodeURI( list[i][name])); } else { list[i].label = decodeURI(list[i][name]); list[i].name = decodeURI(list[i][name]); } if (parentId_ == parId || !parentId_ || parentId_ == "null") { if(!obj[list[i].id].children) { obj[list[i].id].children = null; } result.push(list[i]); continue; } else if (obj[parentId_]) { if (!obj[parentId_].children) { obj[parentId_].children = []; } obj[parentId_].children.push(list[i]); } } return result; } function ArrayToTree2(array_, name, parentId, parId, disabled_field, isencode) { if(!parentId) { parentId = "parent_id"; } if(!name) { name = "label"; } if(!parId) { parId = ""; } let obj = {}; let result = []; let list = JSON.parse(JSON.stringify(array_)); list.map(el => { obj[el.id] = el; }) let openId = ""; for (let i = 0, len = list.length; i < len; i++) { let parentId_ = list[i][parentId]; //如果存在判断只读字段,并且该字段有值则设置该节点为只读 if (disabled_field) { if(list[i][disabled_field]) { list[i].disabled = true; } } if (parentId_ == parId || !parentId_ || parentId_ == "null") { if(!obj[list[i].id].children2) { obj[list[i].id].children2 = null; } result.push(list[i]); continue; } else if (obj[parentId_]) { if (!obj[parentId_].children2) { obj[parentId_].children2 = []; } obj[parentId_].children2.push(list[i]); } } return result; } function listTOGroup(array_, id, parentId, label) { let parId = ""; let obj = {}; let result = []; let list = JSON.parse(JSON.stringify(array_)); list.map(el => { obj[el.id] = el; }) let openId = ""; for (let i = 0, len = list.length; i < len; i++) { let parentId_ = list[i][parentId]; //设置显示字段 list[i].value = list[i][id]; list[i].label = list[i][label]; if (parentId_ == parId || !parentId_) { obj[list[i].id].children = []; result.push(list[i]); continue; } else if (obj[parentId_]) { if (!obj[parentId_].children) { obj[parentId_].children = []; } obj[parentId_].children.push(list[i]); } } return result; } function list2Options(array_, value, label) { var result = array_.map(function(one) { return { value: one[value], label: one[label] } }); return result; } function clone(obj) { var result, oClass = isClass(obj); //确定result的类型 if (oClass === "Object") { result = {}; } else if (oClass === "Array") { result = []; } else { return obj; } for (var key in obj) { var copy = obj[key]; if (isClass(copy) == "Object") { result[key] = arguments.callee(copy); //递归调用 } else if (isClass(copy) == "Array") { result[key] = arguments.callee(copy); } else if (key == "contains") {} else if (key == "remove") {} else { result[key] = obj[key]; } } return result; }; function isClass(o) { if (o === null) return "Null"; if (o === undefined) return "Undefined"; return Object.prototype.toString.call(o).slice(8, -1); } function formatterRate(rate, fixed) { if (!fixed) { fixed = 1; } if (rate == "") { return ""; } if (rate == 0) { return 0; } if (isNaN(rate)) { return 0; } return (rate * 10000 / 100).toFixed(fixed); } function formatters(rate, fixed) { if (!fixed) { fixed = 1; } if (rate == "") { return ""; } if (isNaN(rate)) { return rate; } if (parseInt(rate) == rate) { return rate; } return (rate * 100 / 100).toFixed(fixed); } function sortNumber(a, b) { return a - b } function groupArr(list, field) { var obj = {}; for (var i = 0; i < list.length; i++) { var keys = Object.keys(list[i]); for (var j = 0; j < keys.length; j++) { var item = keys[j] if (item == field) { obj[list[i][item]] = { list: obj[list[i][field]] ? obj[list[i][field]].list : [], type: list[i][field] }; } } obj[list[i][field]].list.push(list[i]) } var att = []; for (item in obj) { att.push({ list: obj[item].list, type: obj[item].type, }) } return att; } function dealExportByBlob(res) { let fileName = decodeURI(res.headers['content-disposition'].split('filename=')[1]) // let fileName = decodeURI(res.headers['content-disposition'].match(/filename=(\S*)(?=(.xls|.xlsx))/)[1]) let blob = new Blob([res.data], { type: 'application/vnd.ms-excel;charset=UTF-8' }) if (window.navigator.msSaveBlob) { // 没有此判断的话,ie11下的导出没有效果 window.navigator.msSaveBlob(blob, fileName) } else { let downloadElement = document.createElement('a') let href = window.URL.createObjectURL(blob) // 创建下载的链接 downloadElement.href = href downloadElement.download = fileName // 下载后文件名 document.body.appendChild(downloadElement) downloadElement.click() // 点击下载 document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) // 释放掉blob对象 } } function dealExportByPath(fileurl, fileName) { let downloadElement = document.createElement('a'); downloadElement.href = fileurl; downloadElement.download = fileName; // 下载后文件名 document.body.appendChild(downloadElement); downloadElement.click(); // 点击下载 document.body.removeChild(downloadElement); // 下载完成移除元素 } function randomData(length, multiple, fixed) { if (!length) { length = 1; } if (!multiple) { multiple = 1; } if (!fixed) { fixed = 0; } if (length == 1) { return getOneRandom(multiple, fixed); } var data = []; for (var i = 0; i < length; i++) { data[i] = getOneRandom(multiple, fixed); } return data; } function getOneRandom(multiple, fixed) { return parseFloat((Math.random() * multiple).toFixed(fixed)); } function uuid(len, radix) { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); var uuid = [], i; radix = radix || chars.length; if (len) { // Compact form for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]; } else { // rfc4122, version 4 form var r; // rfc4122 requires these characters uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; uuid[14] = '4'; // Fill in random data. At i==19 set the high bits of clock sequence as // per rfc4122, sec. 4.1.5 for (i = 0; i < 36; i++) { if (!uuid[i]) { r = 0 | Math.random() * 16; uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; } } } return uuid.join(''); } function uuid_short() { return uuid(32); } function isObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; } function str2JSON(str) { if(str == ""|| str == undefined) { return null; } return JSON.parse(str); } function getArrDifference(array1, array2) { var result = []; for(var i = 0; i < array2.length; i++){ var obj = array2[i]; var num = obj.id; var isExist = false; for(var j = 0; j < array1.length; j++){ var aj = array1[j]; var n = aj.field_id; if(n == num){ isExist = true; break; } } if(!isExist){ result.push(obj); } } return result; } function groupBy( array , f ) { let groups = {}; array.forEach( function( o ) { let group = JSON.stringify( f(o) ); groups[group] = groups[group] || []; groups[group].push( o ); }); return Object.keys(groups).map( function( group ) { return groups[group]; }); } Array.prototype.contains = function (obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; } function dateformatter(date, type){ if(!type) { type = 0; } if(0 == type) { return dateFormatCommon(date); } if(1 == type) { return dateFormatEn(date); } if(2 == type) { return dateFormatCn(date); } if(-1 == type) { return new Date(Date.parse(date.replace(/-/g, "/"))); } } function dateFormatCommon(date) { var nowdate = new Date(date).toLocaleDateString().replace(/\//g, '-') return nowdate } function dateFormatEn(date) { var nowdate = new Date(date).toLocaleDateString() return nowdate } function dateFormatCn(now) { y = now.getFullYear(), m = ("0" + (now.getMonth() + 1)).slice(-2), d = ("0" + now.getDate()).slice(-2); return y + "-" + m + "-" + d + " " + now.toTimeString().substr(0, 8); } function isAssetTypeAnImage(ext) { return [ 'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff']. indexOf(ext.toLowerCase()) !== -1; } function logOut() { window.top.location.href = "login.html"; localStorage.removeItem('user'); localStorage.removeItem('emp'); localStorage.removeItem('menu'); } function quotedStr(val) { return "'" + val + "'"; } function handleDownload(fileId) { var elemIF = document.createElement('iframe') elemIF.src = getDownloadFileUrl(fileId); elemIF.style.display = 'none' document.body.appendChild(elemIF) } function getDownloadFileUrl(fileId) { // return baseUrl + 'file/downloadFile?id=' + fileId; return baseUrl + 'file/download?id=' + fileId; } Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }; /// 项目使用 function addNotice(me, to_id, content, callback) { let params = { to_id: to_id, content: content }; let url = "work/push2Msg"; getUrl(me, url, params, result => { if(callback) { callback(result); } }) }