Skip to content

Commit d5f8490

Browse files
committed
Merge branch 'master' of https://github.com/cq-panda/Vue.NetCore
2 parents a4426ee + 893c576 commit d5f8490

File tree

18 files changed

+2042
-1028
lines changed

18 files changed

+2042
-1028
lines changed

Vol.Vue/src/utilities/common.js

Lines changed: 179 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
let base = {
2-
isPhone (val) {
3-
return /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(val)
2+
isPhone(val) {
3+
return /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(val);
44
},
5-
isDecimal (val) {
6-
return /(^[\-0-9][0-9]*(.[0-9]+)?)$/.test(val)
5+
isDecimal(val) {
6+
return /(^[\-0-9][0-9]*(.[0-9]+)?)$/.test(val);
77
},
8-
isNumber (val) {
9-
return /(^[\-0-9][0-9]*([0-9]+)?)$/.test(val)
8+
isNumber(val) {
9+
return /(^[\-0-9][0-9]*([0-9]+)?)$/.test(val);
1010
},
11-
isMail (val) {
12-
return /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(val)
11+
isMail(val) {
12+
return /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(val);
1313
},
14-
isUrl (url) {
15-
return this.checkUrl(url)
14+
isUrl(url) {
15+
return this.checkUrl(url);
1616
},
17-
checkUrl (url) {
17+
checkUrl(url) {
1818
// url= 协议://(ftp的登录信息)[IP|域名](:端口号)(/或?请求参数)
1919
var strRegex =
2020
'^((https|http|ftp)://)?' + // (https或http或ftp):// 可有可无
@@ -27,84 +27,91 @@ let base = {
2727
'[a-zA-Z]{1,6})' + // 顶级域名- 1-6位英文
2828
'(:[0-9]{1,5})?' + // 端口- :80 ,1-5位数字
2929
'((/?)|' + // url无参数结尾 - 斜杆或这没有
30-
"(/[\\w_!~*'()\\.;?:@&=+$,%#-]+)+/?)$" // 请求参数结尾- 英文或数字和[]内的各种字符
31-
var re = new RegExp(strRegex, 'i') // i不区分大小写
30+
"(/[\\w_!~*'()\\.;?:@&=+$,%#-]+)+/?)$"; // 请求参数结尾- 英文或数字和[]内的各种字符
31+
var re = new RegExp(strRegex, 'i'); // i不区分大小写
3232
// 将url做uri转码后再匹配,解除请求参数中的中文和空字符影响
3333
if (re.test(encodeURI(url))) {
34-
return true
34+
return true;
3535
}
36-
return false
36+
return false;
3737
},
38-
matchUrlIp (url, ip) { // url使用是否使用的当前ip
38+
matchUrlIp(url, ip) {
39+
// url使用是否使用的当前ip
3940
if (!url || !ip) {
40-
return false
41+
return false;
4142
}
42-
return url.indexOf(ip.replace('https://', '').replace('http://', '')) >= 0
43+
return url.indexOf(ip.replace('https://', '').replace('http://', '')) >= 0;
4344
},
44-
getImgSrc (src, httpUrl) {
45+
getImgSrc(src, httpUrl) {
4546
if (this.isUrl(src)) {
46-
return src
47+
return src;
4748
}
4849
if (httpUrl) {
49-
return httpUrl + src
50+
return httpUrl + src;
5051
}
51-
return src
52+
return src;
5253
},
53-
previewImg (src, httpUrl) { // 图片预览,目前只支持单图片预览
54+
previewImg(src, httpUrl) {
55+
// 图片预览,目前只支持单图片预览
5456
if (src && !this.isUrl(src) && httpUrl) {
55-
if (src.substr(0, 1) == '/' && httpUrl.substr(httpUrl.length - 1, 1) == '/') {
56-
src = src.substr(1)
57+
if (
58+
src.substr(0, 1) == '/' &&
59+
httpUrl.substr(httpUrl.length - 1, 1) == '/'
60+
) {
61+
src = src.substr(1);
5762
}
58-
src = (httpUrl + src)
63+
src = httpUrl + src;
5964
}
60-
let id = 'vol-preview'
61-
let $div = document.getElementById(id)
65+
let id = 'vol-preview';
66+
let $div = document.getElementById(id);
6267
if (!$div) {
63-
$div = document.createElement('div')
64-
$div.setAttribute('id', 'vol-preview')
65-
let $mask = document.createElement('div')
66-
$mask.style.position = 'absolute'
67-
$mask.style.width = '100%'
68-
$mask.style.height = '100%'
69-
$mask.style.background = 'black'
70-
$mask.style.opacity = '0.6'
71-
$div.appendChild($mask)
72-
$div.style.position = 'fixed'
73-
$div.style.width = '100%'
74-
$div.style.height = '100%'
68+
$div = document.createElement('div');
69+
$div.setAttribute('id', 'vol-preview');
70+
let $mask = document.createElement('div');
71+
$mask.style.position = 'absolute';
72+
$mask.style.width = '100%';
73+
$mask.style.height = '100%';
74+
$mask.style.background = 'black';
75+
$mask.style.opacity = '0.6';
76+
$div.appendChild($mask);
77+
$div.style.position = 'fixed';
78+
$div.style.width = '100%';
79+
$div.style.height = '100%';
7580
// $div.style.overflow = "scroll";
76-
$div.style.top = 0
77-
$div.style['z-index'] = 9999999
78-
let $img = document.createElement('img')
79-
$img.setAttribute('class', 'vol-preview-img')
80-
$img.style.position = 'absolute'
81-
$img.style.top = '50%'
82-
$img.style.left = '50%'
83-
$img.style['max-width'] = '90%'
84-
$img.style['max-height'] = '90%'
85-
$img.style.transform = 'translate(-50%,-50%)'
81+
$div.style.top = 0;
82+
$div.style['z-index'] = 9999999;
83+
let $img = document.createElement('img');
84+
$img.setAttribute('class', 'vol-preview-img');
85+
$img.style.position = 'absolute';
86+
$img.style.top = '50%';
87+
$img.style.left = '50%';
88+
$img.style['max-width'] = '90%';
89+
$img.style['max-height'] = '90%';
90+
$img.style.transform = 'translate(-50%,-50%)';
8691
// $img.src = src;
87-
$img.setAttribute('src', src)
88-
$div.appendChild($img)
92+
$img.setAttribute('src', src);
93+
$div.appendChild($img);
8994
$div.addEventListener('click', function () {
90-
this.style.display = 'none'
91-
})
92-
document.body.appendChild($div)
93-
return
95+
this.style.display = 'none';
96+
});
97+
document.body.appendChild($div);
98+
return;
9499
}
95-
let $img1 = document.body.appendChild($div).querySelector('.vol-preview-img')
100+
let $img1 = document.body
101+
.appendChild($div)
102+
.querySelector('.vol-preview-img');
96103
// img.src = src;
97-
$img1.setAttribute('src', src)
98-
$div.style.display = 'block'
104+
$img1.setAttribute('src', src);
105+
$div.style.display = 'block';
99106
},
100107
// 下载文件 $element 标签, url完整url, fileName 文件名, header 以key/value传值
101108
// backGroundUrl 后台url,如果后台url直接从后台下载,其他全部通过点击a标签下载
102-
dowloadFile (url, fileName, header, backGroundUrl) {
103-
if (!url) return alert('此文件没有url不能下载')
109+
dowloadFile(url, fileName, header, backGroundUrl) {
110+
if (!url) return alert('此文件没有url不能下载');
104111
if (!this.isUrl(url)) {
105-
url = backGroundUrl + url
112+
url = backGroundUrl + url;
106113
}
107-
window.open(url)
114+
window.open(url);
108115

109116
// let $element = document.getElementById('dowonloadfile-a');
110117
// if (!$element) {
@@ -163,40 +170,40 @@ let base = {
163170
// };
164171
// xmlResquest.send();
165172
},
166-
downloadImg (data) {
173+
downloadImg(data) {
167174
if (!data.url || !data.callback || typeof data.callback !== 'function') {
168-
return
175+
return;
169176
}
170177
// url, backGroundUrl, header, callback
171-
if (this.isUrl(data.url) && !this.matchUrlIp(data.url, data.backGroundUrl)) {
172-
return data.url
178+
if (
179+
this.isUrl(data.url) &&
180+
!this.matchUrlIp(data.url, data.backGroundUrl)
181+
) {
182+
return data.url;
173183
}
174184
// 通过后台api服务器下载
175185
if (!this.isUrl(data.url)) {
176186
if (!this.isUrl(data.backGroundUrl + data.url)) {
177-
return
187+
return;
178188
}
179-
data.url = data.backGroundUrl + data.url
189+
data.url = data.backGroundUrl + data.url;
180190
}
181-
var xmlResquest = new XMLHttpRequest()
182-
xmlResquest.open('get', data.url, true)
183-
xmlResquest.responseType = 'blob'
184-
xmlResquest.setRequestHeader('Content-Type', 'application/json')
191+
var xmlResquest = new XMLHttpRequest();
192+
xmlResquest.open('get', data.url, true);
193+
xmlResquest.responseType = 'blob';
194+
xmlResquest.setRequestHeader('Content-Type', 'application/json');
185195
if (data.header && typeof data.header === 'object') {
186196
for (const key in data.header) {
187-
xmlResquest.setRequestHeader(
188-
key,
189-
data.header[key]
190-
)
197+
xmlResquest.setRequestHeader(key, data.header[key]);
191198
}
192199
}
193200
xmlResquest.onload = function () {
194201
if (this.status == 200) {
195-
var blob = this.response
196-
callback(window.URL.createObjectURL(blob))
202+
var blob = this.response;
203+
callback(window.URL.createObjectURL(blob));
197204
}
198-
}
199-
xmlResquest.send()
205+
};
206+
xmlResquest.send();
200207
},
201208
// 2020.06.01增加通用方法,将普通对象转换为tree结构
202209
// data数据格式[
@@ -207,66 +214,116 @@ let base = {
207214
// 2、树形tree需要注意Id与parentId循环依赖的问题
208215
// 3、callback每次生成一新的节点的时回调的方法
209216

210-
convertTree (data, callback) {
211-
var treeIds = []
212-
var root_data = []
213-
data.forEach(x => {
217+
convertTree(data, callback) {
218+
var treeIds = [];
219+
var root_data = [];
220+
data.forEach((x) => {
214221
if (!x.children) {
215-
x.children = []
222+
x.children = [];
216223
}
217-
if (!x.hidden && x.id !== undefined && x.id !== x.parentId && !data.some(s => {
218-
return x.parentId == s.id
219-
})) {
220-
x.isRoot = true
221-
callback && callback(x, data, true, treeIds)
222-
root_data.push(x)
223-
getTree(x.id, x, data, callback, treeIds)
224+
if (
225+
!x.hidden &&
226+
x.id !== undefined &&
227+
x.id !== x.parentId &&
228+
!data.some((s) => {
229+
return x.parentId == s.id;
230+
})
231+
) {
232+
x.isRoot = true;
233+
callback && callback(x, data, true, treeIds);
234+
root_data.push(x);
235+
getTree(x.id, x, data, callback, treeIds);
224236
}
225-
})
226-
var exceptionNodes = data.filter(f => {
227-
return treeIds.indexOf(f.id) == -1 && !f.hidden
228-
})
237+
});
238+
var exceptionNodes = data.filter((f) => {
239+
return treeIds.indexOf(f.id) == -1 && !f.hidden;
240+
});
229241

230-
root_data.push(...exceptionNodes)
231-
return root_data
242+
root_data.push(...exceptionNodes);
243+
return root_data;
232244
},
233-
getTreeAllParent (id, data) { // 获取某个节点的所有父节点信息2020.11.01
234-
var nodes = []
245+
getTreeAllParent(id, data) {
246+
// 获取某个节点的所有父节点信息2020.11.01
247+
var nodes = [];
235248
if (!(data instanceof Array)) {
236-
return nodes
249+
return nodes;
237250
}
238251

239-
var _child = data.find(x => { return x.id === id })
252+
var _child = data.find((x) => {
253+
return x.id === id;
254+
});
240255
if (!_child) {
241-
return []
256+
return [];
242257
}
243-
nodes.push(_child)
244-
var _parentIds = [_child.parentId]
258+
nodes.push(_child);
259+
var _parentIds = [_child.parentId];
245260
for (let index = 0; index < _parentIds.length; index++) {
246-
var _node = data.find(x => { return x.id === _parentIds[index] && x.id !== x.parentId })
261+
var _node = data.find((x) => {
262+
return x.id === _parentIds[index] && x.id !== x.parentId;
263+
});
247264
if (!_node) {
248-
return nodes
265+
return nodes;
249266
}
250-
_parentIds.push(_node.parentId)
251-
nodes.unshift(_node)
267+
_parentIds.push(_node.parentId);
268+
nodes.unshift(_node);
269+
}
270+
return nodes;
271+
},
272+
//获取所有节点的子节点
273+
// data数据格式[
274+
// { name: 'tree1', id: 1, parentId: 0 },
275+
// { name: 'tree2', id: 2, parentId: 0 }]
276+
getTreeAllChildren(id, data) {
277+
//递归获取某个节点的所有子节点信息
278+
var nodes = [];
279+
if (!(data instanceof Array)) {
280+
return nodes;
252281
}
253-
return nodes
254-
}
255282

256-
}
257-
export default base
283+
var _child = data.find((x) => {
284+
return x.id === id;
285+
});
286+
if (!_child) {
287+
return [];
288+
}
289+
nodes.push(_child);
290+
var _parentIds = [_child.id];
291+
for (let index = 0; index < _parentIds.length; index++) {
292+
data.forEach((_node) => {
293+
if (
294+
_node.parentId === _parentIds[index] &&
295+
_node.parentId !== _node.id
296+
) {
297+
_parentIds.push(_node.id);
298+
nodes.unshift(_node);
299+
}
300+
});
301+
}
302+
return nodes;
303+
},
304+
//获取所有子节点的id
305+
// data数据格式[
306+
// { name: 'tree1', id: 1, parentId: 0 },
307+
// { name: 'tree2', id: 2, parentId: 0 }]
308+
getTreeAllChildrenId(id, data) {
309+
return this.getTreeAllChildren(id, data).map((c) => {
310+
return c.id;
311+
});
312+
}
313+
};
314+
export default base;
258315

259316
// 2020.06.01增加通用方法,将普通对象转换为tree结构
260-
function getTree (id, node, data, callback, treeIds) {
317+
function getTree(id, node, data, callback, treeIds) {
261318
if (treeIds.indexOf(id) == -1) {
262-
treeIds.push(id)
319+
treeIds.push(id);
263320
}
264-
data.forEach(x => {
321+
data.forEach((x) => {
265322
if (!x.hidden && x.parentId == id) {
266-
if (!node.children) node.children = []
267-
callback && callback(x, node, false)
268-
node.children.push(x)
269-
getTree(x.id, x, data, callback, treeIds)
323+
if (!node.children) node.children = [];
324+
callback && callback(x, node, false);
325+
node.children.push(x);
326+
getTree(x.id, x, data, callback, treeIds);
270327
}
271-
})
328+
});
272329
}

0 commit comments

Comments
 (0)