Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bims
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
孙海亮
bims
Commits
6bc39ad5
Commit
6bc39ad5
authored
Mar 06, 2024
by
朱彩云
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'func_eccs_2801' into test
parents
719b4410
966202ad
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
144 additions
and
136 deletions
+144
-136
index.js
src/utils/index.js
+144
-136
No files found.
src/utils/index.js
View file @
6bc39ad5
...
@@ -4,62 +4,67 @@
...
@@ -4,62 +4,67 @@
export
function
arrToObj
(
arr
)
{
export
function
arrToObj
(
arr
)
{
// 参数必须是一个数组
// 参数必须是一个数组
if
(
!
Array
.
isArray
(
arr
))
{
if
(
!
Array
.
isArray
(
arr
))
{
throw
new
Error
(
"
type err: arr 必须是一个数组
"
);
throw
new
Error
(
'
type err: arr 必须是一个数组
'
)
}
}
// 存放返回结果
// 存放返回结果
const
obj
=
{}
;
const
obj
=
{}
arr
.
map
((
item
)
=>
{
arr
.
map
((
item
)
=>
{
obj
[
Object
.
keys
(
item
)[
0
]]
=
item
[
Object
.
keys
(
item
)[
0
]]
;
obj
[
Object
.
keys
(
item
)[
0
]]
=
item
[
Object
.
keys
(
item
)[
0
]]
})
;
})
return
obj
;
return
obj
}
}
/*
/*
* 文件流转换为url
* 文件流转换为url
* @params file 文件流
* @params file 文件流
* @return url
* @return url
*/
*/
export
function
getObjectURL
(
file
)
{
export
function
getObjectURL
(
file
)
{
console
.
log
(
file
)
console
.
log
(
file
)
let
url
=
null
;
let
url
=
null
if
(
window
.
createObjectURL
!=
undefined
)
{
// basic
if
(
window
.
createObjectURL
!=
undefined
)
{
url
=
window
.
createObjectURL
(
file
);
// basic
}
else
if
(
window
.
webkitURL
!=
undefined
)
{
// webkit or chrome
url
=
window
.
createObjectURL
(
file
)
url
=
window
.
webkitURL
.
createObjectURL
(
file
);
}
else
if
(
window
.
webkitURL
!=
undefined
)
{
}
else
if
(
window
.
URL
!=
undefined
)
{
// mozilla(firefox)
// webkit or chrome
url
=
window
.
URL
.
createObjectURL
(
file
);
url
=
window
.
webkitURL
.
createObjectURL
(
file
)
}
}
else
if
(
window
.
URL
!=
undefined
)
{
return
url
;
// mozilla(firefox)
url
=
window
.
URL
.
createObjectURL
(
file
)
}
return
url
}
}
/**
/**
* @description 文件下载(兼容IE)
* @description 文件下载(兼容IE)
* @param {Object} response options 接口响应的数据 包括文件流及保文信息
* @param {Object} response options 接口响应的数据 包括文件流及保文信息
* @param {String} file_name 文件名称
* @param {String} file_name 文件名称
* @returns {undefined} undefined
* @returns {undefined} undefined
*/
*/
export
function
downloadFile
(
response
,
file_name
=
"
ExportFile
"
)
{
export
function
downloadFile
(
response
,
file_name
=
'
ExportFile
'
)
{
const
fileType
=
response
.
headers
[
"
content-type
"
]
||
"
application/pdf
"
;
const
fileType
=
response
.
headers
[
'
content-type
'
]
||
'
application/pdf
'
const
disposition
=
response
.
headers
[
"
content-disposition
"
]
const
disposition
=
response
.
headers
[
'
content-disposition
'
]
if
(
disposition
)
{
if
(
disposition
)
{
file_name
=
disposition
.
split
(
"
filename=
"
)[
1
]
file_name
=
disposition
.
split
(
'
filename=
'
)[
1
]
}
}
const
blob
=
new
Blob
([
response
.
data
],
{
type
:
`
${
fileType
}
;charset=utf-8`
})
;
const
blob
=
new
Blob
([
response
.
data
],
{
type
:
`
${
fileType
}
;charset=utf-8`
})
const
ie
=
navigator
.
userAgent
.
match
(
/MSIE
\s([\d
.
]
+
)
/
),
const
ie
=
navigator
.
userAgent
.
match
(
/MSIE
\s([\d
.
]
+
)
/
),
ie11
=
navigator
.
userAgent
.
match
(
/Trident
\/
7.0/
)
&&
navigator
.
userAgent
.
match
(
/rv:11/
),
ie11
=
navigator
.
userAgent
.
match
(
/Trident
\/
7.0/
)
&&
navigator
.
userAgent
.
match
(
/rv:11/
),
ieEDGE
=
navigator
.
userAgent
.
match
(
/Edge/g
),
ieEDGE
=
navigator
.
userAgent
.
match
(
/Edge/g
),
ieVer
=
ie
?
ie
[
1
]
:
ie11
?
11
:
ieEDGE
?
12
:
-
1
;
ieVer
=
ie
?
ie
[
1
]
:
ie11
?
11
:
ieEDGE
?
12
:
-
1
if
(
ie
&&
ieVer
<
10
)
{
if
(
ie
&&
ieVer
<
10
)
{
this
.
message
.
error
(
'
No blobs on IE<10
'
)
;
this
.
message
.
error
(
'
No blobs on IE<10
'
)
return
;
return
}
}
if
(
ieVer
>
-
1
)
{
if
(
ieVer
>
-
1
)
{
window
.
navigator
.
msSaveBlob
(
blob
,
file_name
)
;
window
.
navigator
.
msSaveBlob
(
blob
,
file_name
)
return
{}
return
{}
}
else
{
}
else
{
const
url
=
window
.
URL
.
createObjectURL
(
blob
)
;
const
url
=
window
.
URL
.
createObjectURL
(
blob
)
return
{
return
{
url
,
url
,
file_name
file_name
...
@@ -70,17 +75,17 @@ export function downloadFile(response, file_name = "ExportFile") {
...
@@ -70,17 +75,17 @@ export function downloadFile(response, file_name = "ExportFile") {
//导出excel
//导出excel
export
function
exportFile
(
res
,
file_name
)
{
export
function
exportFile
(
res
,
file_name
)
{
let
blob
=
new
Blob
([
res
.
data
],
{
let
blob
=
new
Blob
([
res
.
data
],
{
type
:
"
application/vnd.ms-excel;charset=utf-8
"
type
:
'
application/vnd.ms-excel;charset=utf-8
'
})
;
})
let
url
=
window
.
URL
.
createObjectURL
(
blob
);
let
url
=
window
.
URL
.
createObjectURL
(
blob
)
let
aLink
=
document
.
createElement
(
"
a
"
);
let
aLink
=
document
.
createElement
(
'
a
'
)
aLink
.
style
.
display
=
"
none
"
;
aLink
.
style
.
display
=
'
none
'
aLink
.
href
=
url
;
aLink
.
href
=
url
aLink
.
setAttribute
(
"
download
"
,
file_name
);
aLink
.
setAttribute
(
'
download
'
,
file_name
)
document
.
body
.
appendChild
(
aLink
)
;
document
.
body
.
appendChild
(
aLink
)
aLink
.
click
()
;
aLink
.
click
()
document
.
body
.
removeChild
(
aLink
)
;
document
.
body
.
removeChild
(
aLink
)
window
.
URL
.
revokeObjectURL
(
url
)
;
window
.
URL
.
revokeObjectURL
(
url
)
}
}
export
const
numValid
=
/^
([
1-9
][
0-9
]
*|0
)([
.
][
0-9
]
+
)?
$/
export
const
numValid
=
/^
([
1-9
][
0-9
]
*|0
)([
.
][
0-9
]
+
)?
$/
...
@@ -88,13 +93,13 @@ export const numValid = /^([1-9][0-9]*|0)([.][0-9]+)?$/
...
@@ -88,13 +93,13 @@ export const numValid = /^([1-9][0-9]*|0)([.][0-9]+)?$/
// 对象转换成query字符串
// 对象转换成query字符串
export
const
toQuery
=
(
params
)
=>
{
export
const
toQuery
=
(
params
)
=>
{
if
(
!
params
)
{
if
(
!
params
)
{
return
""
;
return
''
}
}
let
query
=
[]
;
let
query
=
[]
for
(
let
i
in
params
)
{
for
(
let
i
in
params
)
{
query
.
push
(
`
${
i
}
=
${
params
[
i
]}
`
);
query
.
push
(
`
${
i
}
=
${
encodeURIComponent
(
params
[
i
])}
`
)
}
}
return
query
.
join
(
"
&
"
);
return
query
.
join
(
'
&
'
)
}
}
// 数值计算
// 数值计算
export
const
accuracy
=
{
export
const
accuracy
=
{
...
@@ -103,104 +108,107 @@ export const accuracy = {
...
@@ -103,104 +108,107 @@ export const accuracy = {
var
t1
=
0
,
var
t1
=
0
,
t2
=
0
,
t2
=
0
,
r1
,
r1
,
r2
;
r2
try
{
try
{
t1
=
arg1
.
toString
().
split
(
'
.
'
)[
1
].
length
;
t1
=
arg1
.
toString
().
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
);
console
.
log
(
e
)
}
}
try
{
try
{
t2
=
arg2
.
toString
().
split
(
'
.
'
)[
1
].
length
;
t2
=
arg2
.
toString
().
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
);
console
.
log
(
e
)
}
}
if
(
Math
)
{
if
(
Math
)
{
r1
=
Number
(
arg1
.
toString
().
replace
(
'
.
'
,
''
));
r1
=
Number
(
arg1
.
toString
().
replace
(
'
.
'
,
''
))
r2
=
Number
(
arg2
.
toString
().
replace
(
'
.
'
,
''
));
r2
=
Number
(
arg2
.
toString
().
replace
(
'
.
'
,
''
))
return
this
.
multiply
(
r1
/
r2
,
Math
.
pow
(
10
,
t2
-
t1
));
return
this
.
multiply
(
r1
/
r2
,
Math
.
pow
(
10
,
t2
-
t1
))
}
}
},
},
multiply
(
arg1
,
arg2
)
{
multiply
(
arg1
,
arg2
)
{
//乘法
//乘法
var
m
=
0
,
var
m
=
0
,
s1
=
arg1
.
toString
(),
s1
=
arg1
.
toString
(),
s2
=
arg2
.
toString
();
s2
=
arg2
.
toString
()
try
{
try
{
m
+=
s1
.
split
(
'
.
'
)[
1
].
length
;
m
+=
s1
.
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
)
console
.
log
(
e
)
}
}
try
{
try
{
m
+=
s2
.
split
(
'
.
'
)[
1
].
length
;
m
+=
s2
.
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
)
console
.
log
(
e
)
}
}
return
Number
(
s1
.
replace
(
'
.
'
,
''
))
*
Number
(
s2
.
replace
(
'
.
'
,
''
))
/
Math
.
pow
(
10
,
m
);
return
(
(
Number
(
s1
.
replace
(
'
.
'
,
''
))
*
Number
(
s2
.
replace
(
'
.
'
,
''
)))
/
Math
.
pow
(
10
,
m
)
)
},
},
add
(
arg1
,
arg2
)
{
add
(
arg1
,
arg2
)
{
//加法
//加法
var
r1
,
r2
,
m
;
var
r1
,
r2
,
m
try
{
try
{
r1
=
arg1
.
toString
().
split
(
'
.
'
)[
1
].
length
;
r1
=
arg1
.
toString
().
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
r1
=
0
;
r1
=
0
}
}
try
{
try
{
r2
=
arg2
.
toString
().
split
(
'
.
'
)[
1
].
length
;
r2
=
arg2
.
toString
().
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
r2
=
0
;
r2
=
0
}
}
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
));
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
))
console
.
log
(
this
.
multiply
(
arg1
,
m
),
this
.
multiply
(
arg2
,
m
))
console
.
log
(
this
.
multiply
(
arg1
,
m
),
this
.
multiply
(
arg2
,
m
))
return
(
this
.
multiply
(
arg1
,
m
)
+
this
.
multiply
(
arg2
,
m
))
/
m
;
return
(
this
.
multiply
(
arg1
,
m
)
+
this
.
multiply
(
arg2
,
m
))
/
m
},
},
subtract
(
arg1
,
arg2
)
{
subtract
(
arg1
,
arg2
)
{
//减法
//减法
var
r1
,
r2
,
m
,
n
;
var
r1
,
r2
,
m
,
n
try
{
try
{
r1
=
arg1
.
toString
().
split
(
'
.
'
)[
1
].
length
;
r1
=
arg1
.
toString
().
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
r1
=
0
;
r1
=
0
}
}
try
{
try
{
r2
=
arg2
.
toString
().
split
(
'
.
'
)[
1
].
length
;
r2
=
arg2
.
toString
().
split
(
'
.
'
)[
1
].
length
}
catch
(
e
)
{
}
catch
(
e
)
{
r2
=
0
;
r2
=
0
}
}
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
));
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
))
n
=
r1
>=
r2
?
r1
:
r2
;
n
=
r1
>=
r2
?
r1
:
r2
return
((
arg1
*
m
-
arg2
*
m
)
/
m
).
toFixed
(
n
);
return
((
arg1
*
m
-
arg2
*
m
)
/
m
).
toFixed
(
n
)
},
},
// 计算一个数组的总和
// 计算一个数组的总和
sum
(
arr
)
{
sum
(
arr
)
{
let
result
=
0
;
let
result
=
0
arr
.
forEach
(
item
=>
{
arr
.
forEach
((
item
)
=>
{
result
=
this
.
add
(
result
,
item
);
result
=
this
.
add
(
result
,
item
)
})
})
return
result
;
return
result
},
},
// 计算一个数组的总和 fn是对每项数据的处理方式
// 计算一个数组的总和 fn是对每项数据的处理方式
sumBy
(
arr
,
fn
)
{
sumBy
(
arr
,
fn
)
{
let
result
=
0
;
let
result
=
0
arr
.
forEach
(
item
=>
{
arr
.
forEach
((
item
)
=>
{
let
val
=
item
;
let
val
=
item
if
(
fn
)
{
if
(
fn
)
{
val
=
fn
(
item
)
val
=
fn
(
item
)
}
}
result
=
this
.
add
(
result
,
val
);
result
=
this
.
add
(
result
,
val
)
})
})
return
result
;
return
result
},
},
toCeil
(
num
,
p
=
4
)
{
toCeil
(
num
,
p
=
4
)
{
num
=
isNaN
(
num
)
?
0
:
num
;
num
=
isNaN
(
num
)
?
0
:
num
p
=
isNaN
(
p
)
?
0
:
p
;
p
=
isNaN
(
p
)
?
0
:
p
let
precision
=
Math
.
pow
(
10
,
p
);
let
precision
=
Math
.
pow
(
10
,
p
)
return
Math
.
ceil
((
num
*
precision
).
toFixed
(
1
))
/
precision
;
return
Math
.
ceil
((
num
*
precision
).
toFixed
(
1
))
/
precision
},
},
toFloor
(
num
,
p
=
4
)
{
toFloor
(
num
,
p
=
4
)
{
num
=
isNaN
(
num
)
?
0
:
num
;
num
=
isNaN
(
num
)
?
0
:
num
p
=
isNaN
(
p
)
?
0
:
p
;
p
=
isNaN
(
p
)
?
0
:
p
let
precision
=
Math
.
pow
(
10
,
p
);
let
precision
=
Math
.
pow
(
10
,
p
)
return
Math
.
floor
((
num
*
precision
).
toFixed
(
1
))
/
precision
;
return
Math
.
floor
((
num
*
precision
).
toFixed
(
1
))
/
precision
}
}
};
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment