// 工具函数 // var object={} 对象 // var array=[] 数组 //数组去重 function uniqueInArray(arr) { if (Array.hasOwnProperty('from')) { return Array.from(new Set(arr)); } else { var n = {}, r = []; for (var i = 0; i < arr.length; i++) { if (!n[arr[i]]) { n[arr[i]] = true; r.push(arr[i]); } } return r; } } //数组去重 function unique(arr) { return Array.from(new Set(arr)) } //数组对象去重 function uniqueArr(arr1) { const res = new Map(); return arr1.filter((a) => !res.has(a.PumpId) && res.set(a.PumpId, 1)) } //数组对象去重 function uniqueArrObj(arr1) { const res = new Map(); return arr1.filter((a) => !res.has(a.GroupName) && res.set(a.GroupName, 1)) } var SplitArray = function (N, Q) { var R = [], F; for (F = 0; F < Q.length;) R.push(Q.slice(F, F += N)) return R } var ajax = { /** request解决异步问题 */ request(url, data, method) { return new Promise((resolve, reject) => { wx.request({ url: url, method: method, data: data, header: { 'content-type': 'application/json' }, success(res) { resolve(res.data) }, fail(err) { reject(err) } }) }) }, /**获取promise中的[[PromiseValue]]值 */ promise_resolve(val) { var a = Promise.resolve(val); a.then(function (result) { result = result console.log(result, 111) }) }, } var compare = function (prop) { return function (obj1, obj2) { var val1 = obj1[prop]; var val2 = obj2[prop]; if (val1 < val2) { return -1; } else if (val1 > val2) { return 1; } else { return 0; } } } /**排序 pcompare用法: * array.sort(pcompare("RequestFormID")); 降序 * array.sort(pcompare("RequestFormID"),value); 升序 * value: undefined是降序 其它为升序 * RequestFormID 数组里某个对象的key */ function pcompare(prop, rev) { // 第二个参数没有传递,默认升序排序 if (rev === undefined) { rev = 1; } else { rev = rev ? 1 : -1; } return function (obj1, obj2) { var val1 = obj1[prop], val2 = obj2[prop]; return val1 < val2 ? rev * (-1) : rev * 1; } } /**弹窗区 */ var popup = { showModal(title, content) { wx.showModal({ title: title, content: content, }) }, showToast(title, icon, image, duration) { wx.showToast({ title: title, icon: icon, duration: duration, }) } } /** 日期区 */ var getNewDateArry = { //时间小于10补0 withData(param) { return param < 10 ? '0' + param : '' + param; }, // 当前时间的处理 getNewDateArry() { var newDate = new Date(); var year = this.withData(newDate.getFullYear()), mont = this.withData(newDate.getMonth() + 1), date = this.withData(newDate.getDate()), hour = this.withData(newDate.getHours()), minu = this.withData(newDate.getMinutes()), seco = this.withData(newDate.getSeconds()); var listArray = { ymdhms: [year, mont, date, hour, minu, seco], ymdhm: [year, mont, date, hour, minu], ymdh: [year, mont, date, hour], ymd: [year, mont, date], ym: [year, mont], y: [year], } return listArray; }, } var getRandom = { getRandom(max, min) { return Math.floor(Math.random() * (max - min + 1) + min) } } /**常用功能 */ var functions = { //01 截取字符串 val:需要截取的数据 start:起始下标为0 end:结束 截取0~n个字符 sub(val, start, end) { var val = val; var val = val.substring(start, end); return val; }, /**02 随机生成颜色*/ getRandomColor() { const rgb = [] for (let i = 0; i < 3; ++i) { let color = Math.floor(Math.random() * 256).toString(16) color = color.length == 1 ? '0' + color : color rgb.push(color) } return '#' + rgb.join('') }, /**03 排序 pcompare用法: * array.sort(pcompare("RequestFormID")); 降序 * array.sort(pcompare("RequestFormID"),value); 升序 * value: undefined是降序 其它为升序 * RequestFormID 数组里某个对象的key */ pcompare(prop, rev) { // 第二个参数没有传递,默认升序排序 if (rev === undefined) { rev = 1; } else { rev = rev ? 1 : -1; } return function (obj1, obj2) { var val1 = obj1[prop], val2 = obj2[prop]; return val1 < val2 ? rev * (-1) : rev * 1; } }, } function formatTime(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':') } function formatDay(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); return [year, month, day].map(formatNumber).join('-'); } //年月日 function getDay(day,date) { var today = date ? new Date(date) : new Date(); var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day; today.setTime(targetday_milliseconds); var tYear = today.getFullYear(); var tMonth = today.getMonth(); var tDate = today.getDate(); tMonth = doHandleMonth(tMonth + 1); tDate = doHandleMonth(tDate); return tYear + "-" + tMonth + "-" + tDate; } function doHandleMonth(month) { var m = month; if (month.toString().length == 1) { m = "0" + month; } return m; } function GetNextDate(currentDate, scaleStep) { var currentDate = new Date(currentDate); if (scaleStep == 0) return currentDate; //scaleStep = 1 向后计算后一天 //scaleStep = -1 向前计算前一天 for (var minIncrements = 1;; minIncrements++) { var nextDate = new Date(currentDate); nextDate.setHours(currentDate.getHours() + scaleStep * minIncrements); if (nextDate.getDate() != currentDate.getDate()) { return nextDate; } } } function GetBeforeDate(n) { var now = new Date; now.setDate(now.getDate() - n); return now; } function formatNumber(n) { n = n.toString() return n[1] ? n : '0' + n } // 计算字符串长度(英文占一个字符,中文汉字占2个字符) function strlen(str) { var len = 0; for (var i = 0; i < str.length; i++) { var c = str.charCodeAt(i); if ((c >= 0x0001 && c <= 0x007e) || (c >= 0xff60 && c <= 0xff9f)) { len++; } else { len += 2; } } return len; } var valueFormat = function (value) { var v = value.toString(); var result = v; var decimalIndex = v.indexOf('.'); if (decimalIndex != -1) { result = v.substring(decimalIndex + 1, v.length); if (result.length > 3) { v = parseFloat(value).toFixed("3"); var str = v.toString(); if (str.substr(str.length - 2, 2) == "00") { v = parseFloat(value).toFixed("1"); } else if (str.substr(str.length - 1, 1) == "0") { v = parseFloat(value).toFixed("2"); } } } return v; } function getUnitName(recordType, unit) { if (recordType == 5) { return "mm/s" } else if (recordType == 4) { return "°C" } else if (recordType == 1 || recordType == 2) { return "MPa" } else if (recordType == 3) { //泵流量 return "m3/h" } else if (recordType == 6) { //泵转速 return "rpm" } else if (recordType == 101) { //电机功率 return "kW" } else if (recordType == 102) { //电机频率 return "HZ" } else if (recordType == 104 || recordType == 105 || recordType == 106) { //电机线电流a return "A" } else if (recordType == 107 || recordType == 108 || recordType == 109) { //电机相电压a return "V" } else if (recordType == 905) { //水位 return "m" } else { return "" } } function getRecordImage(recordType) { if (recordType == 5) { return "zdHL.png" } else if (recordType == 4) { return "wdHL.png" } else if (recordType == 1 || recordType == 2) { return "ylHL.png" } else if (recordType == 3) { //泵流量 return "FlowHL.png" } else if (recordType == 6) { //泵转速 return "SpeedHL.png" } else if (recordType == 101) { //电机功率 return "PowerHL.png" } else if (recordType == 102) { //电机频率 return "FrequencyHL.png" } else if (recordType == 104 || recordType == 105 || recordType == 106) { //电机线电流a return "CurrentHL.png" } else if (recordType == 107 || recordType == 108 || recordType == 109) { //电机相电压a return "VolHL.png" } else if (recordType == 905) { //水位 return "HeightHL.png" } else { return "ylHL.png" } } function formatTimeUtil(template, date) { var today = date ? new Date(date) : new Date(); var o = { "M+": today.getMonth() + 1, //月份 "d+": today.getDate(), //日 "h+": today.getHours(), //小时 "m+": today.getMinutes(), //分 "s+": today.getSeconds(), //秒 "q+": Math.floor((today.getMonth() + 3) / 3), //季度 "S": today.getMilliseconds() //毫秒 }; var fmt = template; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (today.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; } module.exports = { formatTime: formatTime, formatTimeUtil:formatTimeUtil, formatDay: formatDay, getDay: getDay, getRecordImage: getRecordImage, getUnitName: getUnitName, valueFormat: valueFormat, GetNextDate: GetNextDate, GetBeforeDate: GetBeforeDate, pcompare: pcompare, //排序 popup: popup, /**弹窗*/ getNewDateArry: getNewDateArry, /** 日期 */ functions: functions, /**常用功能 */ ajax: ajax, getRandom: getRandom, uniqueInArray: uniqueInArray, unique: unique, compare: compare, uniqueArr: uniqueArr, SplitArray: SplitArray, uniqueArrObj: uniqueArrObj }