Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
G
gm_flutter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
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
林生雨
gm_flutter
Commits
99e2f6f0
Commit
99e2f6f0
authored
Jul 01, 2020
by
林生雨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit
parent
095cf284
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
211 additions
and
18 deletions
+211
-18
progress_inner.png
assets/progress_inner.png
+0
-0
FilterView.dart
lib/ClueModel/page/plan/FilterView.dart
+9
-0
PlanProgressBar.dart
lib/ClueModel/page/plan/PlanProgressBar.dart
+176
-0
PlanBean.dart
lib/ClueModel/server/entity/PlanBean.dart
+6
-7
BaseComponent.dart
lib/commonModel/base/BaseComponent.dart
+20
-11
No files found.
assets/progress_inner.png
0 → 100644
View file @
99e2f6f0
3.58 KB
lib/ClueModel/page/plan/FilterView.dart
View file @
99e2f6f0
...
...
@@ -4,6 +4,7 @@
**/
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/material.dart'
;
import
'package:gm_flutter/ClueModel/page/plan/PlanProgressBar.dart'
;
import
'package:gm_flutter/commonModel/base/BaseComponent.dart'
;
import
'package:gm_flutter/commonModel/util/DartUtil.dart'
;
...
...
@@ -22,6 +23,14 @@ class FilterView extends StatelessWidget {
height:
186
,
child:
Stack
(
children:
<
Widget
>[
Positioned
(
bottom:
74.5
,
left:
15
,
child:
Container
(
width:
MediaQuery
.
of
(
context
).
size
.
width
-
30
,
child:
PlanProgressBar
(
0
,
5
,
0
,
10
,
padding:
15
,),
),
),
Positioned
(
top:
54.5
,
right:
15
,
...
...
lib/ClueModel/page/plan/PlanProgressBar.dart
0 → 100644
View file @
99e2f6f0
/*
* @author lsy
* @date 2020/7/1
**/
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/material.dart'
;
import
'package:gm_flutter/commonModel/base/BaseComponent.dart'
;
class
PlanProgressBar
extends
StatefulWidget
{
int
low
;
int
high
;
int
maxlow
;
int
maxHigh
;
int
padding
;
PlanProgressBar
(
this
.
low
,
this
.
high
,
this
.
maxlow
,
this
.
maxHigh
,
{
this
.
padding
});
@override
State
<
StatefulWidget
>
createState
()
=>
PlanProgressBarState
();
}
class
PlanProgressBarState
extends
State
<
PlanProgressBar
>
{
double
distance
;
double
leftStarPosPercent
;
double
leftPosTempPercent
;
double
rightStarPosPercent
;
double
rightPosTempPercent
;
double
leftDowPos
;
double
rightDowPos
;
double
scrollDistance
;
double
leftPos
;
double
textLeft
=
-
1
;
bool
isLeftMove
=
true
;
@override
void
initState
()
{
super
.
initState
();
distance
=
widget
.
maxHigh
-
widget
.
maxlow
-
0.0
;
leftStarPosPercent
=
(
widget
.
low
/
distance
);
leftPosTempPercent
=
leftStarPosPercent
;
rightStarPosPercent
=
(
widget
.
high
/
distance
);
rightPosTempPercent
=
rightStarPosPercent
;
}
@override
Widget
build
(
BuildContext
context
)
{
double
totle
=
MediaQuery
.
of
(
context
).
size
.
width
-
widget
.
padding
*
2
-
8
;
scrollDistance
=
0.05
;
double
textL
=
textLeft
*
totle
-
67.5
/
2
+
9
;
if
(
textL
<
0
)
{
textL
=
0
;
}
else
if
(
textL
+
67.5
>
totle
)
{
textL
=
totle
-
67.5
;
}
return
Container
(
width:
double
.
maxFinite
,
height:
65
,
child:
Stack
(
children:
<
Widget
>[
Positioned
(
bottom:
7.5
,
left:
4
,
child:
Container
(
width:
totle
,
height:
4
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
50
),
color:
Color
(
0xffD5D5D5
)),
),
),
Positioned
(
left:
leftPosTempPercent
*
totle
+
5
,
bottom:
7.5
,
child:
Container
(
height:
4
,
width:
(
rightPosTempPercent
-
leftPosTempPercent
)
*
totle
,
color:
Color
(
0xff51CDC7
),
),
),
Positioned
(
left:
textL
,
bottom:
23
,
child:
Visibility
(
visible:
textLeft
>=
0
,
child:
Container
(
width:
67.5
,
height:
42
,
color:
Color
(
0x66000000
),
alignment:
Alignment
.
center
,
child:
baseText
(
"
${(widget.maxlow + (isLeftMove?leftPosTempPercent:rightPosTempPercent+0.03) * distance).toInt()}
"
,
13
,
Colors
.
white
),
),
),
),
Positioned
(
bottom:
0
,
left:
leftPosTempPercent
*
totle
,
child:
Listener
(
onPointerDown:
(
p
)
{
leftDowPos
=
p
.
localPosition
.
dx
;
isLeftMove
=
true
;
},
onPointerMove:
(
p
)
{
var
d
=
p
.
localPosition
.
dx
-
leftDowPos
;
leftPosTempPercent
=
leftStarPosPercent
+
(
d
/
totle
);
if
(
leftPosTempPercent
<
0.0
)
{
leftPosTempPercent
=
0
;
}
else
if
(
leftPosTempPercent
>
rightPosTempPercent
-
scrollDistance
)
{
leftPosTempPercent
=
rightPosTempPercent
-
scrollDistance
;
}
textLeft
=
leftPosTempPercent
;
setState
(()
{});
},
onPointerUp:
(
p
)
{
textLeft
=
-
1
;
leftStarPosPercent
=
leftPosTempPercent
;
setState
(()
{});
},
child:
Container
(
width:
19
,
height:
19
,
alignment:
Alignment
.
centerLeft
,
child:
Image
.
asset
(
"assets/progress_inner.png"
,
),
),
)),
Positioned
(
bottom:
0
,
left:
rightPosTempPercent
*
totle
,
child:
Listener
(
onPointerDown:
(
p
)
{
rightDowPos
=
p
.
localPosition
.
dx
;
isLeftMove
=
false
;
},
onPointerMove:
(
p
)
{
var
d
=
p
.
localPosition
.
dx
-
rightDowPos
;
print
(
"D
${d}
"
);
rightPosTempPercent
=
rightStarPosPercent
+
(
d
/
totle
);
if
(
rightPosTempPercent
<
leftPosTempPercent
+
scrollDistance
)
{
rightPosTempPercent
=
leftPosTempPercent
+
scrollDistance
;
}
else
if
(
rightPosTempPercent
>
1.0
-
0.03
)
{
rightPosTempPercent
=
1.0
-
0.03
;
}
textLeft
=
rightPosTempPercent
;
setState
(()
{});
},
onPointerUp:
(
p
)
{
textLeft
=
-
1
;
rightStarPosPercent
=
rightPosTempPercent
;
setState
(()
{});
},
child:
Container
(
width:
19
,
height:
19
,
alignment:
Alignment
.
centerLeft
,
child:
Image
.
asset
(
"assets/progress_inner.png"
,
),
),
)),
],
),
);
}
}
lib/ClueModel/server/entity/PlanBean.dart
View file @
99e2f6f0
...
...
@@ -5,8 +5,8 @@
class
PlanBean
{
int
error
;
String
message
;
Null
extra
;
Null
errorExtra
;
String
extra
;
String
errorExtra
;
UserType
userType
;
Data
data
;
...
...
@@ -39,7 +39,6 @@ class PlanBean {
class
UserType
{
UserType
();
UserType
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
...
...
@@ -177,14 +176,14 @@ class Groups {
class
Cities
{
String
cityName
;
int
id
;
String
id
;
String
name
;
Cities
({
this
.
cityName
,
this
.
id
,
this
.
name
});
Cities
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
cityName
=
json
[
'city_name'
];
id
=
json
[
'id'
];
id
=
json
[
'id'
]
.
toString
()
;
name
=
json
[
'name'
];
}
...
...
@@ -205,7 +204,7 @@ class Tags {
Tags
({
this
.
id
,
this
.
subTags
,
this
.
name
});
Tags
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
id
=
json
[
'id'
];
id
=
json
[
'id'
]
.
toString
()
;
if
(
json
[
'sub_tags'
]
!=
null
)
{
subTags
=
new
List
<
SubTags
>();
json
[
'sub_tags'
].
forEach
((
v
)
{
subTags
.
add
(
new
SubTags
.
fromJson
(
v
));
});
...
...
@@ -231,7 +230,7 @@ class SubTags {
SubTags
({
this
.
id
,
this
.
name
});
SubTags
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
id
=
json
[
'id'
];
id
=
json
[
'id'
]
.
toString
()
;
name
=
json
[
'name'
];
}
...
...
lib/commonModel/base/BaseComponent.dart
View file @
99e2f6f0
...
...
@@ -113,18 +113,27 @@ Widget baseDivideWidth(double width, double padding) {
}
Widget
loadingItem
(
{
bool
needBackground
=
false
})
{
// return
// Center(
// child: Container(
// width: 77,
// height: 77,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(8),
// color: needBackground ? Colors.black : Colors.transparent),
// alignment: Alignment.center,
// child: MyCupertinoActivityIndicator(
// backColor: needBackground ? Colors.white : Colors.black,
// ),
// ));
return
Center
(
child:
Container
(
width:
77
,
height:
77
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
8
),
color:
needBackground
?
Colors
.
black
:
Colors
.
transparent
),
alignment:
Alignment
.
center
,
child:
MyCupertinoActivityIndicator
(
backColor:
needBackground
?
Colors
.
white
:
Colors
.
black
,
child:
Container
(
width:
80
,
height:
80
,
child:
Lottie
.
asset
(
"assets/smart_refresh_header.json"
,
repeat:
true
,
reverse:
false
),
),
)
)
;
);
}
Widget
netErrorItem
(
)
{}
...
...
@@ -311,7 +320,7 @@ Widget baseRefreshView(RefreshController refreshController,
Widget
normalRefreshHeader
(
)
{
return
CustomHeader
(
builder:
(
BuildContext
context
,
RefreshStatus
mode
)
{
Widget
body
=
Container
();
Widget
body
=
Container
();
// if (mode == RefreshStatus.idle) {
//
// } else
...
...
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