管灌系统农户端微信小程序(嘉峪关应用)
zuoxiao
2024-02-26 3f7ec892d68f71e996489d14d9918dc332281b1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/* utils */
 
/**
 * addUnit */
// 为 css 添加单位
function addUnit(value) {
  var REGEXP = getRegExp('^-?\d+(.\d+)?$');
  if (value == null) {
    return undefined;
  }
  return REGEXP.test('' + value) ? value + 'px' : value;
}
 
function isString(string) {
  return string && string.constructor === 'String';
}
 
function isArray(array) {
  return array && array.constructor === 'Array';
}
 
function isObject(obj) {
  return obj && obj.constructor === 'Object';
}
 
var isNoEmptyObj = function (obj) {
  return isObject(obj) && JSON.stringify(obj) !== '{}';
};
 
function includes(arr, value) {
  if (!arr || !isArray(arr)) return false;
 
  var i = 0;
  var len = arr.length;
 
  for (; i < len; i++) {
    if (arr[i] === value) return true;
  }
  return false;
}
 
function cls(base, arr) {
  var res = [base];
  var i = 0;
  for (var size = arr.length; i < size; i++) {
    var item = arr[i];
 
    if (item && item.constructor === 'Array') {
      var key = arr[i][0];
      var value = arr[i][1];
 
      if (value) {
        res.push(base + '--' + key);
      }
    } else if (typeof item === 'string' || typeof item === 'number') {
      if (item) {
        res.push(base + '--' + item);
      }
    }
  }
  return res.join(' ');
}
 
function getBadgeAriaLabel(options) {
  var maxCount = options.maxCount || 99;
  if (options.dot) {
    return '有新的消息';
  }
  if (options.count === '...') {
    return '有很多消息';
  }
  if (isNaN(options.count)) {
    return options.count;
  }
  var str1 = '有' + maxCount + '+条消息';
  var str2 = '有' + options.count + '条消息';
  return Number(options.count) > maxCount ? str1 : str2;
}
 
function endsWith(str, endStr) {
  return str.slice(-endStr.length) === endStr ? str : str + endStr;
}
 
function keys(obj) {
  return JSON.stringify(obj)
    .replace(getRegExp('{|}|"', 'g'), '')
    .split(',')
    .map(function (item) {
      return item.split(':')[0];
    });
}
 
function kebabCase(str) {
  return str
    .replace(getRegExp('[A-Z]', 'g'), function (ele) {
      return '-' + ele;
    })
    .toLowerCase();
}
 
function _style(styles) {
  if (isArray(styles)) {
    return styles
      .filter(function (item) {
        return item != null && item !== '';
      })
      .map(function (item) {
        return isArray(item) ? _style(item) : endsWith(item, ';');
      })
      .join(' ');
  }
 
  if (isObject(styles)) {
    return keys(styles)
      .filter(function (key) {
        return styles[key] != null && styles[key] !== '';
      })
      .map(function (key) {
        return [kebabCase(key), [styles[key]]].join(':');
      })
      .join(';');
  }
 
  return styles;
}
 
module.exports = {
  addUnit: addUnit,
  isString: isString,
  isArray: isArray,
  isObject: isObject,
  isNoEmptyObj: isNoEmptyObj,
  includes: includes,
  cls: cls,
  getBadgeAriaLabel: getBadgeAriaLabel,
  _style: _style,
};