// 工具函数
|
// 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
|
}
|