Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
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
罗超
SuperMan
Commits
b1c8aab2
Commit
b1c8aab2
authored
Mar 28, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改金额转换汉子bug 已替换方法
parent
08b8ba07
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
168 additions
and
30 deletions
+168
-30
commonUtils.js
src/assets/utils/commonUtils.js
+168
-30
No files found.
src/assets/utils/commonUtils.js
View file @
b1c8aab2
...
...
@@ -113,35 +113,173 @@ var commonUtils = {
result
=
"刚刚"
;
return
result
;
},
changeMoneyToChinese
(
n
)
{
// 数字转中文大写
var
fraction
=
[
'角'
,
'分'
];
var
digit
=
[
'零'
,
'壹'
,
'贰'
,
'叁'
,
'肆'
,
'伍'
,
'陆'
,
'柒'
,
'捌'
,
'玖'
];
var
unit
=
[
[
'元'
,
'万'
,
'亿'
],
[
''
,
'拾'
,
'佰'
,
'仟'
]
];
var
head
=
n
<
0
?
'负'
:
''
;
n
=
Math
.
abs
(
n
);
var
s
=
''
;
for
(
var
i
=
0
;
i
<
fraction
.
length
;
i
++
)
{
s
+=
(
digit
[
Math
.
floor
(
n
*
10
*
Math
.
pow
(
10
,
i
))
%
10
]
+
fraction
[
i
]).
replace
(
/零./
,
''
);
changeMoneyToChinese
(
Num
)
{
// 数字转中文大写
var
isNegative
=
false
;
// 是否负数
if
(
Num
<
0
)
{
Num
=
-
Num
;
isNegative
=
true
;
}
s
=
s
||
'整'
;
n
=
Math
.
floor
(
n
);
for
(
var
i
=
0
;
i
<
unit
[
0
].
length
&&
n
>
0
;
i
++
)
{
var
p
=
''
;
for
(
var
j
=
0
;
j
<
unit
[
1
].
length
&&
n
>
0
;
j
++
)
{
p
=
digit
[
n
%
10
]
+
unit
[
1
][
j
]
+
p
;
n
=
Math
.
floor
(
n
/
10
);
if
(
typeof
Num
==
'number'
)
{
Num
=
Num
.
toString
();
}
for
(
var
i
=
Num
.
length
-
1
;
i
>=
0
;
i
--
)
{
Num
=
Num
.
replace
(
","
,
""
);
// 替换money中的“,”
Num
=
Num
.
replace
(
" "
,
""
);
// 替换money中的空格
}
Num
=
Num
.
replace
(
"¥"
,
""
);
// 替换掉可能出现的¥字符
if
(
isNaN
(
Num
))
{
// 验证输入的字符是否为数字
return
;
}
// ---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
let
part
=
String
(
Num
).
split
(
"."
);
let
newchar
=
""
;
// 小数点前进行转化
for
(
var
i
=
part
[
0
].
length
-
1
;
i
>=
0
;
i
--
)
{
if
(
part
[
0
].
length
>
10
)
{
alertWarning
(
"位数过大,无法计算"
);
return
""
;
}
// 若数量超过拾亿单位,提示
let
tmpnewchar
=
""
;
let
perchar
=
part
[
0
].
charAt
(
i
);
switch
(
perchar
)
{
case
"0"
:
tmpnewchar
=
"零"
+
tmpnewchar
;
break
;
case
"1"
:
tmpnewchar
=
"壹"
+
tmpnewchar
;
break
;
case
"2"
:
tmpnewchar
=
"贰"
+
tmpnewchar
;
break
;
case
"3"
:
tmpnewchar
=
"叁"
+
tmpnewchar
;
break
;
case
"4"
:
tmpnewchar
=
"肆"
+
tmpnewchar
;
break
;
case
"5"
:
tmpnewchar
=
"伍"
+
tmpnewchar
;
break
;
case
"6"
:
tmpnewchar
=
"陆"
+
tmpnewchar
;
break
;
case
"7"
:
tmpnewchar
=
"柒"
+
tmpnewchar
;
break
;
case
"8"
:
tmpnewchar
=
"捌"
+
tmpnewchar
;
break
;
case
"9"
:
tmpnewchar
=
"玖"
+
tmpnewchar
;
break
;
}
s
=
p
.
replace
(
/
(
零.
)
*零$/
,
''
).
replace
(
/^$/
,
'零'
)
+
unit
[
0
][
i
]
+
s
;
switch
(
part
[
0
].
length
-
i
-
1
)
{
case
0
:
tmpnewchar
=
tmpnewchar
+
"元"
;
break
;
case
1
:
if
(
perchar
!=
0
)
tmpnewchar
=
tmpnewchar
+
"拾"
;
break
;
case
2
:
if
(
perchar
!=
0
)
tmpnewchar
=
tmpnewchar
+
"佰"
;
break
;
case
3
:
if
(
perchar
!=
0
)
tmpnewchar
=
tmpnewchar
+
"仟"
;
break
;
case
4
:
tmpnewchar
=
tmpnewchar
+
"万"
;
break
;
case
5
:
if
(
perchar
!=
0
)
tmpnewchar
=
tmpnewchar
+
"拾"
;
break
;
case
6
:
if
(
perchar
!=
0
)
tmpnewchar
=
tmpnewchar
+
"佰"
;
break
;
case
7
:
if
(
perchar
!=
0
)
tmpnewchar
=
tmpnewchar
+
"仟"
;
break
;
case
8
:
tmpnewchar
=
tmpnewchar
+
"亿"
;
break
;
case
9
:
tmpnewchar
=
tmpnewchar
+
"拾"
;
break
;
}
newchar
=
tmpnewchar
+
newchar
;
}
return
head
+
s
.
replace
(
/
(
零.
)
*零元/
,
'元'
)
.
replace
(
/
(
零.
)
+/g
,
'零'
)
.
replace
(
/^整$/
,
'零元整'
);
// 小数点之后进行转化
if
(
Num
.
indexOf
(
"."
)
!=
-
1
)
{
if
(
part
[
1
].
length
>
2
)
{
alertWarning
(
"小数点之后只能保留两位,系统将自动截段"
);
part
[
1
]
=
part
[
1
].
substr
(
0
,
2
);
}
for
(
var
i
=
0
;
i
<
part
[
1
].
length
;
i
++
)
{
let
tmpnewchar
=
""
;
let
perchar
=
part
[
1
].
charAt
(
i
);
switch
(
perchar
)
{
case
"0"
:
tmpnewchar
=
"零"
+
tmpnewchar
;
break
;
case
"1"
:
tmpnewchar
=
"壹"
+
tmpnewchar
;
break
;
case
"2"
:
tmpnewchar
=
"贰"
+
tmpnewchar
;
break
;
case
"3"
:
tmpnewchar
=
"叁"
+
tmpnewchar
;
break
;
case
"4"
:
tmpnewchar
=
"肆"
+
tmpnewchar
;
break
;
case
"5"
:
tmpnewchar
=
"伍"
+
tmpnewchar
;
break
;
case
"6"
:
tmpnewchar
=
"陆"
+
tmpnewchar
;
break
;
case
"7"
:
tmpnewchar
=
"柒"
+
tmpnewchar
;
break
;
case
"8"
:
tmpnewchar
=
"捌"
+
tmpnewchar
;
break
;
case
"9"
:
tmpnewchar
=
"玖"
+
tmpnewchar
;
break
;
}
if
(
i
==
0
)
tmpnewchar
=
tmpnewchar
+
"角"
;
if
(
i
==
1
)
tmpnewchar
=
tmpnewchar
+
"分"
;
newchar
=
newchar
+
tmpnewchar
;
}
}
// 替换所有无用汉字
while
(
newchar
.
search
(
"零零"
)
!=
-
1
)
newchar
=
newchar
.
replace
(
"零零"
,
"零"
);
newchar
=
newchar
.
replace
(
"零亿"
,
"亿"
);
newchar
=
newchar
.
replace
(
"亿万"
,
"亿"
);
newchar
=
newchar
.
replace
(
"零万"
,
"万"
);
newchar
=
newchar
.
replace
(
"零元"
,
"元"
);
newchar
=
newchar
.
replace
(
"零角"
,
""
);
newchar
=
newchar
.
replace
(
"零分"
,
""
);
if
(
newchar
.
charAt
(
newchar
.
length
-
1
)
==
"元"
||
newchar
.
charAt
(
newchar
.
length
-
1
)
==
"角"
)
{
newchar
=
newchar
+
"整"
;
}
if
(
isNegative
)
{
newchar
=
'负'
+
newchar
;
}
return
newchar
;
},
createComprisonFunction
(
propertyName
)
{
return
function
(
object1
,
object2
)
{
...
...
@@ -223,19 +361,19 @@ var commonUtils = {
},
//计算两日期时间间隔
getDateTimeInterval
:
function
(
startDate
,
endDate
)
{
var
diff
=
endDate
.
getTime
()
-
startDate
.
getTime
();
//时间差的毫秒数
var
diff
=
endDate
.
getTime
()
-
startDate
.
getTime
();
//时间差的毫秒数
//计算出相差天数
var
days
=
Math
.
floor
(
diff
/
(
24
*
3600
*
1000
));
//计算出小时数
var
leave1
=
diff
%
(
24
*
3600
*
1000
);
//计算天数后剩余的毫秒数
var
leave1
=
diff
%
(
24
*
3600
*
1000
);
//计算天数后剩余的毫秒数
var
hours
=
Math
.
floor
(
leave1
/
(
3600
*
1000
));
//计算相差分钟数
var
leave2
=
leave1
%
(
3600
*
1000
);
//计算小时数后剩余的毫秒数
var
leave2
=
leave1
%
(
3600
*
1000
);
//计算小时数后剩余的毫秒数
var
minutes
=
Math
.
floor
(
leave2
/
(
60
*
1000
));
//计算相差秒数
var
leave3
=
leave2
%
(
60
*
1000
);
//计算分钟数后剩余的毫秒数
var
leave3
=
leave2
%
(
60
*
1000
);
//计算分钟数后剩余的毫秒数
var
seconds
=
Math
.
round
(
leave3
/
1000
);
var
returnStr
=
seconds
+
"秒"
;
if
(
minutes
>
0
)
{
...
...
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