Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
manager-app-sz
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
ReactNative
manager-app-sz
Commits
30baacf1
提交
30baacf1
authored
11月 27, 2017
作者:
吴强
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merge branch 'master' of
ssh://192.168.1.116:29418/bolan-root/frontend/manager-app-sz
into wq
# Conflicts: # android/app/src/main/java/com/bolanmanagerapp/MainApplication.java # src/utils/config.js
上级
06aa4d7b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
172 行增加
和
0 行删除
+172
-0
roundProgressBarComponent.js
src/components/roundProgressBarComponent.js
+172
-0
没有找到文件。
src/components/roundProgressBarComponent.js
0 → 100644
浏览文件 @
30baacf1
import
React
,
{
Component
}
from
'react'
;
import
{
StyleSheet
,
View
,
Text
,
}
from
'react-native'
;
const
styles
=
StyleSheet
.
create
({
circle
:
{
overflow
:
'hidden'
,
position
:
'relative'
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
backgroundColor
:
'#e3e3e3'
,
},
leftWrap
:
{
overflow
:
'hidden'
,
position
:
'absolute'
,
top
:
0
,
},
rightWrap
:
{
position
:
'absolute'
,
},
loader
:
{
position
:
'absolute'
,
left
:
0
,
top
:
0
,
borderRadius
:
1000
,
},
innerCircle
:
{
overflow
:
'hidden'
,
position
:
'relative'
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
},
text
:
{
fontSize
:
11
,
color
:
'#888'
,
},
});
class
PercentageCircle
extends
Component
{
// propTypes: {
// color: string,
// bgcolor: PropTypes.string,
// innerColor: React.PropTypes.string,
// radius: React.PropTypes.number,
// percent: React.PropTypes.number,
// borderWidth: React.Proptypes.number,
// textStyle: React.Proptypes.array,
// disabled: React.PropTypes.bool,
// }
constructor
(
props
)
{
super
(
props
);
const
{
percent
}
=
this
.
props
;
let
leftTransformerDegree
=
'0deg'
;
let
rightTransformerDegree
=
'0deg'
;
if
(
percent
>=
50
)
{
rightTransformerDegree
=
'180deg'
;
leftTransformerDegree
=
`
${(
percent
-
50
)
*
3.6
}
deg`
;
}
else
{
rightTransformerDegree
=
`
${
percent
*
3.6
}
deg`
;
leftTransformerDegree
=
'0deg'
;
}
this
.
state
=
{
percent
:
this
.
props
.
percent
,
borderWidth
:
this
.
props
.
borderWidth
<
2
||
!
this
.
props
.
borderWidth
?
2
:
this
.
props
.
borderWidth
,
leftTransformerDegree
,
rightTransformerDegree
,
textStyle
:
this
.
props
.
textStyle
?
this
.
props
.
textStyle
:
null
,
};
}
componentWillReceiveProps
(
nextProps
)
{
const
{
percent
}
=
nextProps
;
let
leftTransformerDegree
=
'0deg'
;
let
rightTransformerDegree
=
'0deg'
;
if
(
percent
>=
50
)
{
rightTransformerDegree
=
'180deg'
;
leftTransformerDegree
=
`
${(
percent
-
50
)
*
3.6
}
deg`
;
}
else
{
rightTransformerDegree
=
`
${
percent
*
3.6
}
deg`
;
}
this
.
setState
({
percent
:
this
.
props
.
percent
,
borderWidth
:
this
.
props
.
borderWidth
<
2
||
!
this
.
props
.
borderWidth
?
2
:
this
.
props
.
borderWidth
,
leftTransformerDegree
,
rightTransformerDegree
,
});
}
render
()
{
if
(
this
.
props
.
disabled
)
{
return
(
<
View
style
=
{[
styles
.
circle
,
{
width
:
this
.
props
.
radius
*
2
,
height
:
this
.
props
.
radius
*
2
,
borderRadius
:
this
.
props
.
radius
,
}]}
>
<
Text
style
=
{
styles
.
text
}
>
{
this
.
props
.
disabledText
}
<
/Text
>
<
/View
>
);
}
return
(
<
View
style
=
{[
styles
.
circle
,
{
width
:
this
.
props
.
radius
*
2
,
height
:
this
.
props
.
radius
*
2
,
borderRadius
:
this
.
props
.
radius
,
backgroundColor
:
this
.
props
.
bgcolor
,
}]}
>
<
View
style
=
{[
styles
.
leftWrap
,
{
width
:
this
.
props
.
radius
,
height
:
this
.
props
.
radius
*
2
,
left
:
0
,
}]}
>
<
View
style
=
{[
styles
.
loader
,
{
left
:
this
.
props
.
radius
,
width
:
this
.
props
.
radius
,
height
:
this
.
props
.
radius
*
2
,
borderTopLeftRadius
:
0
,
borderBottomLeftRadius
:
0
,
backgroundColor
:
this
.
props
.
color
,
transform
:
[{
translateX
:
-
this
.
props
.
radius
/
2
},
{
rotate
:
this
.
state
.
leftTransformerDegree
},
{
translateX
:
this
.
props
.
radius
/
2
}],
}]}
/
>
<
/View
>
<
View
style
=
{[
styles
.
leftWrap
,
{
left
:
this
.
props
.
radius
,
width
:
this
.
props
.
radius
,
height
:
this
.
props
.
radius
*
2
,
}]}
>
<
View
style
=
{[
styles
.
loader
,
{
left
:
-
this
.
props
.
radius
,
width
:
this
.
props
.
radius
,
height
:
this
.
props
.
radius
*
2
,
borderTopRightRadius
:
0
,
borderBottomRightRadius
:
0
,
backgroundColor
:
this
.
props
.
color
,
transform
:
[{
translateX
:
this
.
props
.
radius
/
2
},
{
rotate
:
this
.
state
.
rightTransformerDegree
},
{
translateX
:
-
this
.
props
.
radius
/
2
}],
}]}
/
>
<
/View
>
<
View
style
=
{[
styles
.
innerCircle
,
{
width
:
(
this
.
props
.
radius
-
this
.
state
.
borderWidth
)
*
2
,
height
:
(
this
.
props
.
radius
-
this
.
state
.
borderWidth
)
*
2
,
borderRadius
:
this
.
props
.
radius
-
this
.
state
.
borderWidth
,
backgroundColor
:
this
.
props
.
innerColor
,
}]}
>
{
this
.
props
.
children
?
this
.
props
.
children
:
<
Text
style
=
{[
styles
.
text
,
this
.
state
.
textStyle
]}
>
{
this
.
props
.
percent
}
%<
/Text>
}
<
/View
>
<
/View
>
);
}
}
// set some attributes default value
PercentageCircle
.
defaultProps
=
{
bgcolor
:
'#e3e3e3'
,
innerColor
:
'#fff'
,
};
export
default
PercentageCircle
;
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论