对象、数组对象
-
clone( data ) 深拷贝
clone = function (data) { var tmp = data.constructor === Array ? [] : {} for (var k in data) { if (!data[k]) { tmp[k] = data[k] } else if (data[k].constructor === Object || data[k].constructor === Array) { tmp[k] = deepClone(data[k]) } else { tmp[k] = data[k] } } return tmp }
-
formateData( ne, struct ) 数据格式化,去除struct中不存在的key
// 格式化数据 formateData: function (ne, struct) { return getMess(ne, struct) }
-
compareData( ol, ne, struct ) 数据比对,ol为原数据, ne为新数据, struct为数据结构
// json数据格式化 ol为原数据,ne为新数据, struct为数据结构 compareData: function (ol, ne, struct) { if (struct) { // 传入了 取出数据结构的 按照取出数据结构进行比对 var mps = getMess(ne, struct) return getchanged(ol, mps) } else { // 没有传入的 return getMy(ol, ne) } }
// 结构格式化 function getMess (ne, struct) { var tem = {} if (!ne) { // 假值 // null/0/'' tem = ne } else if (ne.constructor === Array) { // 数组 tem = [] for (var i = 0; i < ne.length; i++) { tem.push(getMess(ne[i], struct[0])) } } else if (ne.constructor === Object) { // 对象 tem = {} for (var k in struct) { tem[k] = getMess(ne[k], struct[k]) } } else { // 简单值 tem = ne } return tem }
// 数据比对 function getMy (ol, ne, struct) { var tem = {} for (var ta in ne) { if (ta === 'sel') continue if (ta === 'id') tem['id'] = ne[ta] // eslint-disable-next-line eqeqeq if (ol[ta] != ne[ta] && struct[ta]) { if (ne[ta] instanceof Array) { tem[ta] = [] // 先判断b的是否都在 for (var i = 0; i < ne[ta].length; i++) { // 是否是新增的 新增的没有id if (ne[ta][i].id) { for (let j = 0; j < ol[ta].length; j++) { if (ne[ta][i].id === ol[ta][j].id && ne[ta][i].id !== undefined && ol[ta][i].id !== undefined) { ol[ta][j].jsonsel = true tem[ta].push(getMy(ol[ta][i], ne[ta][i], struct[ta][0])) } } } else { // 没有id的新增数据 // 这里是新增的获取数据 tem[ta].push(ne[ta][i]) } } // 标示已经被删除的 for (let j = 0; j < ol[ta].length; j++) { if (!ol[ta][j].jsonsel) { tem[ta].push({ id: ol[ta][j].id, isdeleted: 1 }) } } } else if (ne[ta] instanceof Object && !(ne[ta] instanceof Date)) { if (ne[ta].id) { if (ne[ta].id === ol[ta].id && ne[ta].id !== undefined && ol[ta].id !== undefined) { tem[ta] = getMy(ol[ta], ne[ta], struct[ta]) } } else { // 这里是新增的获取数据 tem[ta] = ne[ta] } } else { tem[ta] = ne[ta] } } } if (JSON.stringify(tem) === '{}') {} else { return tem } }
function getchanged (ol, ne, delTimeStr) { var tem = {} for (var ta in ne) { if (ta === 'sel') continue if (ta === 'id') tem['id'] = ne[ta] if (ta === 'version') tem['version'] = ne[ta] // 删除dateString结尾的字段=>for:fa if (delTimeStr && (ta.substring(ta.length - 9) === 'dateString' || ta.substring(ta.length - 9) === 'timeString')) { delete ne.ta } // eslint-disable-next-line eqeqeq if (ol[ta] != ne[ta] && (typeof (ol[ta]) != 'undefined')) { if (ne[ta] instanceof Array) { tem[ta] = [] // 先判断b的是否都在 for (var i = 0; i < ne[ta].length; i++) { // 是否是新增的 新增的没有id if (ne[ta][i].id) { for (let j = 0; j < ol[ta].length; j++) { if (ol[ta][j].id && ne[ta][i].id === ol[ta][j].id) { ol[ta][j].jsonsel = true tem[ta].push(getchanged(ol[ta][j], ne[ta][i], delTimeStr)) } } } else { // 没有id的新增数据 // 这里是新增的获取数据 tem[ta].push(ne[ta][i]) } } // 标示已经被删除的 for (let j = 0; j < ol[ta].length; j++) { if (!ol[ta][j].jsonsel) { if (ol[ta][j].id) { tem[ta].push({ id: ol[ta][j].id, isdeleted: 1 }) } } } } else if (ne[ta] instanceof Object && !(ne[ta] instanceof Date)) { if (ne[ta].id) { if (ne[ta].id === ol[ta].id && ne[ta].id !== undefined && ol[ta].id !== undefined) { tem[ta] = getchanged(ol[ta], ne[ta], delTimeStr) } } else { // 这里是新增的获取数据 tem[ta] = ne[ta] } } else { tem[ta] = ne[ta] } } } if (JSON.stringify(tem) === '{}') {} else { return tem } }
function getchang (ol, ne, delTimeStr) { var tem = {} for (var ta in ne) { if (ta === 'sel') continue if (ta === 'id') tem['id'] = ne[ta] if (ta === 'version') tem['version'] = ne[ta] // 删除dateString结尾的字段=>for:fa if (delTimeStr && (ta.substring(ta.length - 9) === 'dateString' || ta.substring(ta.length - 9) === 'timeString')) { delete ne.ta } // eslint-disable-next-line eqeqeq if (ol[ta] != ne[ta] && (typeof (ol[ta]) != 'undefined')) { if (ne[ta] instanceof Array) { tem[ta] = [] // 先判断b的是否都在 for (var i = 0; i < ne[ta].length; i++) { // 是否是新增的 新增的没有id if (ne[ta][i].id) { for (let j = 0; j < ol[ta].length; j++) { if (ol[ta][j].id && ne[ta][i].id === ol[ta][j].id) { ol[ta][j].jsonsel = true tem[ta].push(getchang(ol[ta][j], ne[ta][i], delTimeStr)) } } } else { // 没有id的新增数据 // 这里是新增的获取数据 tem[ta].push(ne[ta][i]) } } // 标示已经被删除的 for (let j = 0; j < ol[ta].length; j++) { if (ol[ta][j] instanceof Object) { if (!ol[ta][j].jsonsel) { if (ne[ta][i].id) { tem[ta].push({ id: ol[ta][j].id, isdeleted: 1 }) } else { // 无操作 } } } } } else if (ne[ta] instanceof Object && !(ne[ta] instanceof Date)) { if (ne[ta].id) { if (ne[ta].id === ol[ta].id && ne[ta].id !== undefined && ol[ta].id !== undefined) { tem[ta] = getchang(ol[ta], ne[ta], delTimeStr) } } else { // 这里是新增的获取数据 tem[ta] = ne[ta] } } else { tem[ta] = ne[ta] } } } if (JSON.stringify(tem) === '{}') {} else { return tem } }
-
checkEmpty( data, notEmpty ) 非空校验,数据Model, 校验提示数组
- 生成uuid
uuid = function () { var s = [] var hexDigits = '0123456789abcdef' for (var i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1) } s[14] = '4' // bits 12-15 of the time_hi_and_version field to 0010 s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01 s[8] = s[13] = s[18] = s[23] = '-' var uuid = s.join('') return uuid }
日期
-
timestampToData(timestamp) 格式化时间戳为日期
// 格式化时间戳为日期格式 timestampToData = function (timestamp) { var date = new Date(timestamp) var Y = date.getFullYear() var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) return Y + '-' + M + '-' + D }
-
dateCompate(startdate, enddate)起始结束日期对比
// 起始结束时间对比 dateCompare = function (startdate, enddate) { try { var arr = startdate.split('-') startdate = new Date(arr[0], arr[1] - 1, arr[2]) var arrs = enddate.split('-') enddate = new Date(arrs[0], arrs[1] - 1, arrs[2]) if (startdate.getTime() > enddate.getTime()) { return false } else { return true } } catch (e) { return false } }
-
getNowTime() 获取当前时间
getNowTime: function () { var d = new Date(); return d.getFullYear() + "-" + date2pos(d.getMonth() + 1) + "-" + date2pos(d.getDate()) + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds(); }
-
getMonthStart() 获取当月第一天
getSysMonthStart: function (date) { var date= date ? new Date(date) : new Date(); date.setDate(1); return $filter('date')(date, 'yyyy-MM-dd'); }
-
getMonthEnd() 获取当月最后一天
// 获得当前月最后一天 getSysMonthEnd: function (date) { var date= date ? new Date(date) : new Date(); return $filter('date')(getCurrentMonthLast(date), 'yyyy-MM-dd'); function getCurrentMonthLast(date){ var currentMonth=date.getMonth(); var nextMonth=++currentMonth; var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1); var oneDay=1000*60*60*24; return new Date(nextMonthFirstDay-oneDay); } }
……
Http请求
-
doGet(data,url){ return new Promise(funciton(){ ……})}
-
doPost(data,url){ return new Promise(funciton(){ ……})}
-
doDelete(data,url){ return new Promise(funciton(){ ……})}
-
doInsert(data,url){ return new Promise(funciton(){ ……})}
-
doFormData(data,url){ return new Promise(funciton(){ ……})}
……