1
- import {
2
- defineComponent ,
3
- reactive ,
4
- toRefs ,
5
- watch ,
6
- } from 'vue' ;
7
-
1
+ import { defineComponent , reactive , toRefs , watch } from 'vue' ;
8
2
import './progress.scss' ;
9
3
10
4
interface data {
@@ -43,18 +37,10 @@ export default defineComponent({
43
37
showContent : {
44
38
type : Boolean ,
45
39
default : true ,
46
- }
40
+ } ,
47
41
} ,
48
42
setup ( props ) {
49
- const {
50
- height,
51
- percentage,
52
- percentageText,
53
- barBgColor,
54
- isCircle,
55
- strokeWidth,
56
- showContent,
57
- } = toRefs ( props ) ;
43
+ const { height, percentage, percentageText, barBgColor, isCircle, strokeWidth, showContent } = toRefs ( props ) ;
58
44
59
45
const data : data = reactive ( {
60
46
pathString : '' ,
@@ -78,17 +64,17 @@ export default defineComponent({
78
64
const len = Math . PI * 2 * radius ;
79
65
80
66
data . trailPath = {
81
- stroke : '#dfe1e6' ,
67
+ stroke : 'var(--devui-dividing-line, #dfe1e6) ' ,
82
68
strokeDasharray : `${ len } px ${ len } px` ,
83
69
strokeDashoffset : `0` ,
84
- transition : 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s'
70
+ transition : 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s' ,
85
71
} ;
86
72
87
73
data . strokePath = {
88
74
stroke : barBgColor || null ,
89
- strokeDasharray : `${ ( percentage . value / 100 ) * len } px ${ len } px` ,
75
+ strokeDasharray : `${ ( percentage . value / 100 ) * len } px ${ len } px` ,
90
76
strokeDashoffset : `0` ,
91
- transition : 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s'
77
+ transition : 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s' ,
92
78
} ;
93
79
} ;
94
80
@@ -103,26 +89,15 @@ export default defineComponent({
103
89
} ;
104
90
} ,
105
91
render ( ) {
106
- const {
107
- height,
108
- percentage,
109
- percentageText,
110
- barBgColor,
111
- isCircle,
112
- strokeWidth,
113
- showContent,
114
- data,
115
- $slots,
116
- } = this ;
92
+ const { height, percentage, percentageText, barBgColor, isCircle, strokeWidth, showContent, data, $slots } = this ;
117
93
118
94
const progressLine = (
119
95
< div
120
96
class = "devui-progress--line"
121
97
style = { {
122
98
height : height ,
123
99
borderRadius : height ,
124
- } }
125
- >
100
+ } } >
126
101
< div
127
102
class = "devui-progress-bar"
128
103
style = { {
@@ -135,16 +110,13 @@ export default defineComponent({
135
110
< span
136
111
style = { {
137
112
lineHeight : height ,
138
- } }
139
- >
113
+ } } >
140
114
{ percentageText }
141
115
</ span >
142
116
</ div >
143
117
) ;
144
118
145
- const textElement = (
146
- < span class = "devui-progress-circle-text" > { percentage } %</ span >
147
- ) ;
119
+ const textElement = < span class = "devui-progress-circle-text" > { percentage } %</ span > ;
148
120
149
121
const progressCircle = (
150
122
< div class = "devui-progress-circle" >
@@ -171,10 +143,6 @@ export default defineComponent({
171
143
</ div >
172
144
) ;
173
145
174
- return (
175
- < div class = "devui-progress" >
176
- { ! isCircle ? progressLine : progressCircle }
177
- </ div >
178
- ) ;
179
- }
146
+ return < div class = "devui-progress" > { ! isCircle ? progressLine : progressCircle } </ div > ;
147
+ } ,
180
148
} ) ;
0 commit comments