index.js
4.74 KB
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
// import parseTime, formatTime and set to filter
export {
parseTime,
formatTime
}
from '@/utils'
import ncc from '@/utils/ncc'
/**
* Show plural label if time is plural number
* @param {number} time
* @param {string} label
* @return {string}
*/
function pluralize(time, label) {
if (time === 1) {
return time + label
}
return time + label + 's'
}
/**
* @param {number} time
*/
export function timeAgo(time) {
const between = Date.now() / 1000 - Number(time)
if (between < 3600) {
return pluralize(~~(between / 60), ' minute')
} else if (between < 86400) {
return pluralize(~~(between / 3600), ' hour')
} else {
return pluralize(~~(between / 86400), ' day')
}
}
/**
* Number formatting
* like 10000 => 10k
* @param {number} num
* @param {number} digits
*/
export function numberFormatter(num, digits) {
const si = [{
value: 1E18,
symbol: 'E'
},
{
value: 1E15,
symbol: 'P'
},
{
value: 1E12,
symbol: 'T'
},
{
value: 1E9,
symbol: 'G'
},
{
value: 1E6,
symbol: 'M'
},
{
value: 1E3,
symbol: 'k'
}
]
for (let i = 0; i < si.length; i++) {
if (num >= si[i].value) {
return (num / si[i].value).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
}
}
return num.toString()
}
/**
* 10000 => "10,000"
* @param {number} num
*/
export function toThousandFilter(num) {
return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}
/**
* Upper case first char
* @param {String} string
*/
// 工作流审批状态
export function flowStatus(status) {
let text = ''
switch (status) {
case 1:
text = "wait"
break;
case 2:
text = "adopt"
break;
case 3:
text = "reject"
break;
case 4:
text = "revoke"
break;
case 5:
text = "cancel"
break;
}
return text
}
// 工作流紧急程度
export function urgentText(value) {
let text = ''
switch (value) {
case 1:
text = "普通";
break;
case 2:
text = "重要";
break;
case 3:
text = "紧急";
break;
default:
text = "普通";
break;
}
return text
}
export function uppercaseFirst(string) {
return string.charAt(0).toUpperCase() + string.slice(1)
}
export function toDate(v, format) {
return ncc.toDate(v, format)
}
export function toDateText(dateTime) {
return ncc.toDateText(dateTime)
}
export function toFileSize(size) {
return ncc.toFileSize(size)
}
// 代码生成器数据匹配
export function dynamicText(value, options) {
if (!value) return ''
if (Array.isArray(value)) {
if (!options || !Array.isArray(options)) return value.join()
let textList = []
for (let i = 0; i < value.length; i++) {
let item = options.filter(o => o.id == value[i])[0]
if (!item || !item.fullName) {
textList.push(value[i])
} else {
textList.push(item.fullName)
}
}
return textList.join()
}
if (!options || !Array.isArray(options)) return value
let item = options.filter(o => o.id == value)[0]
if (!item || !item.fullName) return value
return item.fullName
}
// 代码生成器数据匹配 Code
export function dynamicTextCode(value, options) {
if (!value) return ''
try{
if(value.indexOf('[') !=-1 && Array.isArray(JSON.parse(value)))
{
value = JSON.parse(value);
}
}catch(e){}
if (Array.isArray(value)) {
if (!options || !Array.isArray(options)) return value.join()
let textList = []
for (let i = 0; i < value.length; i++) {
let item = options.filter(o => o.enCode == value[i])[0]
if (!item || !item.fullName) {
textList.push(value[i])
} else {
textList.push(item.fullName)
}
}
return textList.join()
}
if (!options || !Array.isArray(options)) return value
let item = options.filter(o => o.enCode == value)[0]
if (!item || !item.fullName) return value
return item.fullName
}
export function dynamicTreeText(value, options) {
if (!value) return ''
function transfer(data) {
let textList = []
function loop(data, id) {
for (let i = 0; i < data.length; i++) {
if (data[i].id === id) {
textList.push(data[i].fullName)
break
}
if (data[i].children) loop(data[i].children, id)
}
}
for (let i = 0; i < data.length; i++) {
loop(options, data[i])
}
return textList.join()
}
if (!options || !Array.isArray(options)) return value.join()
if (Array.isArray(value)) {
let text = transfer(value)
return text
} else {
if (!options || !Array.isArray(options)) return value
let list = value.split()
let text = transfer(list)
return text
}
}