11let 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