Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
D
desktop_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
林生雨
desktop_flutter
Commits
e2848217
Commit
e2848217
authored
Dec 09, 2019
by
林生雨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit
parent
14bfc57b
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
1129 additions
and
549 deletions
+1129
-549
HomeModel.dart
lib/HomeModel.dart
+1
-1
BaseTitle.dart
lib/HomeModel/base/BaseTitle.dart
+48
-26
DataCenter.dart
lib/HomeModel/page/data/DataCenter.dart
+1
-1
HomeModel.dart
lib/HomeModel/page/home/HomeModel.dart
+56
-30
HomePage.dart
lib/HomeModel/page/home/HomePage.dart
+16
-8
UploadBean.dart
lib/HomeModel/page/home/UploadBean.dart
+6
-5
UploadHideView.dart
lib/HomeModel/page/home/UploadHideView.dart
+15
-23
PicModel.dart
lib/HomeModel/page/picture/PicModel.dart
+1
-0
WorkModel.dart
lib/HomeModel/page/work/WorkModel.dart
+122
-1
WorkPage.dart
lib/HomeModel/page/work/WorkPage.dart
+311
-421
temp.dart
lib/HomeModel/page/work/temp.dart
+12
-0
HomeRepo.dart
lib/HomeModel/service/HomeRepo.dart
+48
-18
AllTabBean.dart
lib/HomeModel/service/remote/entity/AllTabBean.dart
+371
-1
DetectImgBean.dart
lib/HomeModel/service/remote/entity/DetectImgBean.dart
+23
-0
ImageAiBean.dart
lib/HomeModel/service/remote/entity/ImageAiBean.dart
+50
-1
UploadBean.dart
lib/HomeModel/service/remote/entity/UploadBean.dart
+23
-0
HomePage.dart
lib/HomePage.dart
+7
-1
Persionset.dart
lib/UserModel/page/usermanager/Persionset.dart
+1
-1
BaseState.dart
lib/commonModel/base/BaseState.dart
+6
-0
BaseCenterPicker.dart
lib/commonModel/picker/base/BaseCenterPicker.dart
+1
-1
BasePickerComponent.dart
lib/commonModel/picker/base/BasePickerComponent.dart
+9
-8
ALColors.dart
lib/res/value/ALColors.dart
+1
-2
No files found.
lib/HomeModel.dart
View file @
e2848217
...
@@ -33,7 +33,7 @@ class HomeModel extends BaseModel {
...
@@ -33,7 +33,7 @@ class HomeModel extends BaseModel {
void
init
()
{
void
init
()
{
var
mainWidget
=
RouterCenterImpl
().
findHomeRouter
()?.
getHomePage
();
var
mainWidget
=
RouterCenterImpl
().
findHomeRouter
()?.
getHomePage
();
var
persionPage
=
RouterCenterImpl
().
findUserRouter
()?.
get
Logi
nPage
();
var
persionPage
=
RouterCenterImpl
().
findUserRouter
()?.
get
Persio
nPage
();
var
findPage
=
RouterCenterImpl
().
findHomeRouter
()?.
getDataPage
();
var
findPage
=
RouterCenterImpl
().
findHomeRouter
()?.
getDataPage
();
int
index
=
0
;
int
index
=
0
;
if
(
mainWidget
!=
null
)
{
if
(
mainWidget
!=
null
)
{
...
...
lib/HomeModel/base/BaseTitle.dart
View file @
e2848217
...
@@ -281,8 +281,8 @@ class SurePicker implements ICenterPicker {
...
@@ -281,8 +281,8 @@ class SurePicker implements ICenterPicker {
decoration:
BoxDecoration
(
decoration:
BoxDecoration
(
color:
Colors
.
white
,
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
20
))),
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
20
))),
width:
3
5
0
,
width:
3
0
0
,
height:
26
0
,
height:
15
0
,
child:
Column
(
child:
Column
(
children:
<
Widget
>[
children:
<
Widget
>[
Expanded
(
Expanded
(
...
@@ -291,40 +291,53 @@ class SurePicker implements ICenterPicker {
...
@@ -291,40 +291,53 @@ class SurePicker implements ICenterPicker {
child:
baseText
(
showText
,
15
,
Colors
.
black
),
child:
baseText
(
showText
,
15
,
Colors
.
black
),
),
),
),
),
// Container(
// height: 1,
// width: double.maxFinite,
// color: Colors.black54,
// ),
Container
(
Container
(
height:
1
,
margin:
EdgeInsets
.
only
(
bottom:
10
),
width:
double
.
maxFinite
,
color:
Colors
.
black54
,
),
Container
(
width:
double
.
maxFinite
,
width:
double
.
maxFinite
,
height:
50
,
height:
50
,
child:
Row
(
child:
Row
(
children:
<
Widget
>[
children:
<
Widget
>[
Expanded
(
Expanded
(
child:
GestureDetector
(
child:
Container
(),
onTap:
cancel
,
child:
Container
(
color:
Colors
.
transparent
,
alignment:
Alignment
.
center
,
child:
baseText
(
"取消"
,
12
,
Colors
.
black38
),
)),
),
),
Container
(
FlatButton
(
width:
1
,
onPressed:
cancel
,
height:
double
.
maxFinite
,
child:
Container
(
color:
Colors
.
black54
,
alignment:
Alignment
.
center
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
all
(
//圆角
Radius
.
circular
(
20.0
),
),
color:
Colors
.
grey
),
width:
80
,
height:
20
,
child:
baseText
(
"取消"
,
13
,
Colors
.
white
),
),
),
),
Expanded
(
FlatButton
(
child:
GestureDetector
(
onPressed:
sure
,
onTap:
sure
,
child:
Container
(
child:
Container
(
alignment:
Alignment
.
center
,
color:
Colors
.
transparent
,
decoration:
BoxDecoration
(
alignment:
Alignment
.
center
,
borderRadius:
BorderRadius
.
all
(
//圆角
child:
baseText
(
"确定"
,
12
,
Colors
.
red
),
Radius
.
circular
(
20.0
),
),
color:
Colors
.
red
),
),
width:
80
,
height:
20
,
child:
baseText
(
"确定"
,
13
,
Colors
.
white
),
),
),
)
),
Expanded
(
child:
Container
(),
),
],
],
),
),
)
)
...
@@ -439,3 +452,12 @@ Widget refreshloadingItem(VoidCallback callback) {
...
@@ -439,3 +452,12 @@ Widget refreshloadingItem(VoidCallback callback) {
);
);
return
SliverFillViewport
(
delegate:
SliverChildListDelegate
([
loadCircle
]));
return
SliverFillViewport
(
delegate:
SliverChildListDelegate
([
loadCircle
]));
}
}
Widget
baseFlatButtonItem
(
VoidCallback
callback
,
String
text
){
return
FlatButton
(
padding:
EdgeInsets
.
only
(
top:
2
,
bottom:
2
),
color:
Color
.
fromARGB
(
255
,
236
,
236
,
236
),
onPressed:
callback
,
child:
baseText
(
text
,
13
,
Colors
.
black
),
);
}
lib/HomeModel/page/data/DataCenter.dart
View file @
e2848217
...
@@ -19,7 +19,7 @@ class DataCenter extends StatefulWidget {
...
@@ -19,7 +19,7 @@ class DataCenter extends StatefulWidget {
State
<
StatefulWidget
>
createState
()
=>
DataCenterState
();
State
<
StatefulWidget
>
createState
()
=>
DataCenterState
();
}
}
class
DataCenterState
extends
Base
State
<
DataCenter
>
{
class
DataCenterState
extends
State
<
DataCenter
>
{
DataCenterModel
_model
;
DataCenterModel
_model
;
RefreshController
_refreshController
=
RefreshController
_refreshController
=
RefreshController
(
initialRefresh:
false
);
RefreshController
(
initialRefresh:
false
);
...
...
lib/HomeModel/page/home/HomeModel.dart
View file @
e2848217
...
@@ -20,6 +20,7 @@ import 'package:flutter/cupertino.dart';
...
@@ -20,6 +20,7 @@ import 'package:flutter/cupertino.dart';
import
'package:flutter/foundation.dart'
;
import
'package:flutter/foundation.dart'
;
import
'package:flutter/src/widgets/framework.dart'
;
import
'package:flutter/src/widgets/framework.dart'
;
import
'package:file_chooser/file_chooser.dart'
;
import
'package:file_chooser/file_chooser.dart'
;
import
'package:rxdart/rxdart.dart'
;
import
'UploadBean.dart'
;
import
'UploadBean.dart'
;
...
@@ -30,6 +31,8 @@ class HomeModel extends BaseModel {
...
@@ -30,6 +31,8 @@ class HomeModel extends BaseModel {
int
nowSize
;
int
nowSize
;
List
<
String
>
uploadFile
=
new
List
();
List
<
String
>
uploadFile
=
new
List
();
LiveData
<
List
<
UploadItem
>>
uploadLive
=
new
LiveData
();
LiveData
<
List
<
UploadItem
>>
uploadLive
=
new
LiveData
();
bool
uploading
=
false
;
@override
@override
void
dispose
()
{
void
dispose
()
{
...
@@ -37,19 +40,24 @@ class HomeModel extends BaseModel {
...
@@ -37,19 +40,24 @@ class HomeModel extends BaseModel {
}
}
init
()
{
init
()
{
uploading
=
false
;
// allprojectLive.notifyView(AllProjectBean("w"));
// allprojectLive.notifyView(AllProjectBean("w"));
}
}
void
scanImages
(
BuildContext
context
)
async
{
void
scanImages
(
BuildContext
context
)
async
{
if
(
uploading
)
{
Toast
.
show
(
context
,
"客观稍等 这波图片还没传输完"
);
return
;
}
await
showOpenPanel
((
result
,
files
)
{
await
showOpenPanel
((
result
,
files
)
{
if
(
result
!=
FileChooserResult
.
ok
||
files
.
isEmpty
)
{
if
(
result
!=
FileChooserResult
.
ok
||
files
.
isEmpty
)
{
Toast
.
show
(
context
,
"没有选择文件 批量上传 可以按住shift 或者拖拽鼠标!"
);
Toast
.
show
(
context
,
"没有选择文件 批量上传 可以按住shift 或者拖拽鼠标!"
);
return
;
return
;
}
}
uploading
=
true
;
List
<
UploadItem
>
items
=
new
List
();
List
<
UploadItem
>
items
=
new
List
();
files
.
forEach
((
value
)
{
files
.
forEach
((
value
)
{
items
.
add
(
new
UploadItem
()
items
.
add
(
new
UploadItem
()..
path
=
value
);
..
path
=
value
);
});
});
uploadLive
.
notifyView
(
items
);
uploadLive
.
notifyView
(
items
);
allSize
=
files
.
length
;
allSize
=
files
.
length
;
...
@@ -61,46 +69,64 @@ class HomeModel extends BaseModel {
...
@@ -61,46 +69,64 @@ class HomeModel extends BaseModel {
},
allowsMultipleSelection:
true
);
},
allowsMultipleSelection:
true
);
}
}
void
uploadImage
(
BuildContext
context
,
void
uploadImage
(
String
path
,)
{
BuildContext
context
,
netUpload
(
path
).
then
((
value
)
{
String
path
,
if
(
value
!=
null
&&
)
{
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
HomeRepo
.
getInstance
().
uploadImg
(
path
).
listen
((
value
)
{
uploadLive
.
data
[
nowSize
].
state
=
1
;
if
(
value
!=
null
)
{
uploadLive
.
notifyView
(
uploadLive
.
data
);
print
(
value
.
id
);
nowSize
++;
HomeRepo
.
getInstance
().
detectImg
(
value
.
id
).
listen
((
value
)
{
if
(
allSize
==
nowSize
)
{
if
(
value
!=
null
)
{
Toast
.
show
(
context
,
"上传成功"
);
if
(
value
.
isEffective
)
{
// repo.updateScanList(scanList);
uploadItem
(
context
,
true
,
null
);
success
(
context
);
}
else
{
}
else
{
uploadItem
(
uploadImage
(
context
,
uploadFile
[
nowSize
]);
context
,
}
false
,
value
.
msg
==
null
&&
value
.
msg
.
isEmpty
?
"这个图片不符合标准哦~"
:
value
.
msg
);
}
}
else
{
uploadItem
(
context
,
false
,
"图片检测出错!"
);
}
}).
onError
((
error
)
{
Toast
.
show
(
context
,
error
.
toString
());
print
(
error
.
toString
());
uploadItem
(
context
,
false
,
"图片检测出错!"
);
});
}
else
{
}
else
{
Toast
.
show
(
context
,
"上传图片返回接口有空值 暂停上传"
);
uploadItem
(
context
,
false
,
"上传图片失败!"
);
print
(
"上传图片返回接口有空值 暂停上传"
);
}
}
}).
catch
Error
((
erro
)
{
}).
on
Error
((
erro
)
{
Toast
.
show
(
context
,
erro
.
toString
());
Toast
.
show
(
context
,
erro
.
toString
());
print
(
erro
.
toString
());
print
(
erro
.
toString
());
uploadLive
.
data
[
nowSize
].
state
=
2
;
uploadItem
(
context
,
false
,
"上传图片失败!"
);
uploadLive
.
notifyView
(
uploadLive
.
data
);
nowSize
++;
if
(
nowSize
<
allSize
)
{
uploadImage
(
context
,
uploadFile
[
nowSize
]);
}
});
});
}
}
uploadItem
(
BuildContext
context
,
bool
success
,
String
reason
)
{
uploadLive
.
data
[
nowSize
].
reason
=
reason
;
if
(
success
)
{
uploadLive
.
data
[
nowSize
].
state
=
1
;
}
else
{
uploadLive
.
data
[
nowSize
].
state
=
2
;
}
uploadLive
.
notifyView
(
uploadLive
.
data
);
nowSize
++;
if
(
nowSize
<
allSize
)
{
uploadImage
(
context
,
uploadFile
[
nowSize
]);
}
else
{
uploading
=
false
;
}
}
void
success
(
BuildContext
buildContext
)
{
void
success
(
BuildContext
buildContext
)
{
Navigator
.
push
(
buildContext
,
CustomRoute
(
PicPage
()));
Navigator
.
push
(
buildContext
,
CustomRoute
(
PicPage
()));
}
}
}
}
Future
<
Response
>
netUpload
(
String
path
)
async
{
return
DioUtil
.
getInstance
().
uploadFile
(
"image-upload/"
,
path
);
}
UploadResultBean
uploadImg
(
String
value
)
{
UploadResultBean
uploadImg
(
String
value
)
{
return
UploadResultBean
.
fromJson
(
json
.
decode
(
value
));
return
UploadResultBean
.
fromJson
(
json
.
decode
(
value
));
}
}
lib/HomeModel/page/home/HomePage.dart
View file @
e2848217
...
@@ -18,6 +18,7 @@ import 'package:example_flutter/commonModel/base/BaseComponent.dart';
...
@@ -18,6 +18,7 @@ import 'package:example_flutter/commonModel/base/BaseComponent.dart';
import
'package:example_flutter/commonModel/base/BaseState.dart'
;
import
'package:example_flutter/commonModel/base/BaseState.dart'
;
import
'package:example_flutter/commonModel/cache/CacheManager.dart'
;
import
'package:example_flutter/commonModel/cache/CacheManager.dart'
;
import
'package:example_flutter/commonModel/eventbus/event/LogoutEvent.dart'
;
import
'package:example_flutter/commonModel/eventbus/event/LogoutEvent.dart'
;
import
'package:example_flutter/commonModel/toast/toast.dart'
;
import
'package:example_flutter/main.dart'
;
import
'package:example_flutter/main.dart'
;
import
'package:example_flutter/res/GMRes.dart'
;
import
'package:example_flutter/res/GMRes.dart'
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/cupertino.dart'
;
...
@@ -33,8 +34,7 @@ class HomePage extends StatefulWidget {
...
@@ -33,8 +34,7 @@ class HomePage extends StatefulWidget {
@override
@override
State
<
StatefulWidget
>
createState
()
=>
HomeState
();
State
<
StatefulWidget
>
createState
()
=>
HomeState
();
}
}
class
HomeState
extends
State
<
HomePage
>
class
HomeState
extends
BaseState
<
HomePage
>
with
SingleTickerProviderStateMixin
{
with
SingleTickerProviderStateMixin
{
HomeModel
_model
;
HomeModel
_model
;
Size
screenSize
;
Size
screenSize
;
...
@@ -132,7 +132,8 @@ class HomeState extends BaseState<HomePage>
...
@@ -132,7 +132,8 @@ class HomeState extends BaseState<HomePage>
painter:
UploadHideView
(
painter:
UploadHideView
(
data
.
data
[
index
].
state
,
data
.
data
[
index
].
state
,
animValue
,
animValue
,
data
.
data
[
index
].
progress
)),
data
.
data
[
index
].
progress
,
data
.
data
[
index
].
reason
)),
),
),
],
],
));
));
...
@@ -201,13 +202,20 @@ class HomeState extends BaseState<HomePage>
...
@@ -201,13 +202,20 @@ class HomeState extends BaseState<HomePage>
Row
(
Row
(
children:
<
Widget
>[
children:
<
Widget
>[
baseButton
(()
{
baseButton
(()
{
_model
.
scanImages
(
context
);
if
(
_model
.
uploading
)
{
Toast
.
show
(
context
,
"客观稍等 这波图片还没传输完"
);
}
else
{
_model
.
scanImages
(
context
);
}
},
EdgeInsets
.
fromLTRB
(
10
,
20
,
10
,
20
),
"上传图片"
),
},
EdgeInsets
.
fromLTRB
(
10
,
20
,
10
,
20
),
"上传图片"
),
baseButton
(()
{
baseButton
(()
{
JumpUtil
.
jumpToPage
(
context
,
WorkPage
(
if
(
_model
.
uploading
)
{
"http://i1.sinaimg.cn/ent/d/2008-06-04/U105P28T3D2048907F326DT20080604225106.jpg"
Toast
.
show
(
context
,
"客观稍等 这波图片还没传输完"
);
,
1
,
0
}
else
{
));
JumpUtil
.
jumpToPage
(
context
,
PicPage
());
}
},
EdgeInsets
.
fromLTRB
(
10
,
20
,
10
,
20
),
"下一步"
),
},
EdgeInsets
.
fromLTRB
(
10
,
20
,
10
,
20
),
"下一步"
),
],
],
),
),
...
...
lib/HomeModel/page/home/UploadBean.dart
View file @
e2848217
...
@@ -3,9 +3,11 @@
...
@@ -3,9 +3,11 @@
* @date 2019-12-05
* @date 2019-12-05
**/
**/
class
UploadItem
{
class
UploadItem
{
String
path
;
String
path
;
//0 loading 1success 2fail
//0 loading 1success 2fail
int
state
=
0
;
int
state
=
0
;
double
progress
=
0.0
;
double
progress
=
0.0
;
}
String
reason
;
\ No newline at end of file
}
lib/HomeModel/page/home/UploadHideView.dart
View file @
e2848217
...
@@ -49,8 +49,9 @@ class UploadHideView extends CustomPainter {
...
@@ -49,8 +49,9 @@ class UploadHideView extends CustomPainter {
double
animValue
;
double
animValue
;
double
progressValue
;
double
progressValue
;
int
state
;
int
state
;
String
reason
;
UploadHideView
(
this
.
state
,
this
.
animValue
,
this
.
progressValue
);
UploadHideView
(
this
.
state
,
this
.
animValue
,
this
.
progressValue
,
this
.
reason
);
Paint
ImagePaint
=
new
Paint
()..
isAntiAlias
=
true
;
Paint
ImagePaint
=
new
Paint
()..
isAntiAlias
=
true
;
...
@@ -119,33 +120,24 @@ class UploadHideView extends CustomPainter {
...
@@ -119,33 +120,24 @@ class UploadHideView extends CustomPainter {
path
.
lineTo
(
0
,
0
);
path
.
lineTo
(
0
,
0
);
path
.
lineTo
(
22
,
-
22
);
path
.
lineTo
(
22
,
-
22
);
canvas
.
drawPath
(
path
,
rectPaint
);
canvas
.
drawPath
(
path
,
rectPaint
);
// TextPainter(
// text: TextSpan(
// text: "这个图片不符合标准哦~",
// style: TextStyle(
// fontSize: 13,
// color: Colors.yellow,
// fontWeight: FontWeight.w300)),
// textDirection: TextDirection.ltr,
// textAlign: TextAlign.center)
// ..layout(maxWidth: 150, minWidth: 30)
// ..paint(canvas, Offset(-60, - 30));
canvas
.
restore
();
canvas
.
restore
();
}
else
if
(
state
==
2
)
{
}
else
if
(
state
==
2
)
{
canvas
.
save
();
canvas
.
save
();
canvas
.
translate
(
size
.
width
/
2
,
size
.
height
/
2
);
canvas
.
translate
(
size
.
width
/
2
,
size
.
height
/
2
);
canvas
.
rotate
(
0.3
);
canvas
.
rotate
(
0.3
);
TextPainter
(
if
(
reason
!=
null
){
text:
TextSpan
(
TextPainter
(
text:
"这个图片不符合标准哦~"
,
text:
TextSpan
(
style:
TextStyle
(
text:
reason
,
fontSize:
13
,
style:
TextStyle
(
color:
Colors
.
yellow
,
fontSize:
13
,
fontWeight:
FontWeight
.
w300
)),
color:
Colors
.
yellow
,
textDirection:
TextDirection
.
ltr
,
fontWeight:
FontWeight
.
w300
)),
textAlign:
TextAlign
.
center
)
textDirection:
TextDirection
.
ltr
,
..
layout
(
maxWidth:
150
,
minWidth:
30
)
textAlign:
TextAlign
.
center
)
..
paint
(
canvas
,
Offset
(-
60
,
-
30
));
..
layout
(
maxWidth:
150
,
minWidth:
30
)
..
paint
(
canvas
,
Offset
(-
60
,
-
30
));
}
canvas
.
drawLine
(
Offset
(-
30
,
30
),
Offset
(
30
,
-
30
),
rectPaint
);
canvas
.
drawLine
(
Offset
(-
30
,
30
),
Offset
(
30
,
-
30
),
rectPaint
);
canvas
.
drawLine
(
Offset
(
30
,
30
),
Offset
(-
30
,
-
30
),
rectPaint
);
canvas
.
drawLine
(
Offset
(
30
,
30
),
Offset
(-
30
,
-
30
),
rectPaint
);
canvas
.
restore
();
canvas
.
restore
();
...
...
lib/HomeModel/page/picture/PicModel.dart
View file @
e2848217
...
@@ -100,6 +100,7 @@ class PicModel extends BaseModel {
...
@@ -100,6 +100,7 @@ class PicModel extends BaseModel {
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
}).
onError
((
error
)
{
}).
onError
((
error
)
{
Toast
.
show
(
context
,
error
.
toString
());
Toast
.
show
(
context
,
error
.
toString
());
Toast
.
show
(
context
,
"没有下一页了"
);
print
(
error
.
toString
());
print
(
error
.
toString
());
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
});
});
...
...
lib/HomeModel/page/work/WorkModel.dart
View file @
e2848217
...
@@ -28,6 +28,7 @@ class WorkModel extends BaseModel {
...
@@ -28,6 +28,7 @@ class WorkModel extends BaseModel {
LiveData
<
List
<
int
>>
nowIndexLive
=
new
LiveData
();
LiveData
<
List
<
int
>>
nowIndexLive
=
new
LiveData
();
LiveData
<
Map
<
String
,
List
<
List
<
String
>>>>
selectLive
=
new
LiveData
();
LiveData
<
Map
<
String
,
List
<
List
<
String
>>>>
selectLive
=
new
LiveData
();
LiveData
<
Map
<
String
,
List
<
List
<
String
>>>>
tabLive
=
new
LiveData
();
LiveData
<
Map
<
String
,
List
<
List
<
String
>>>>
tabLive
=
new
LiveData
();
LiveData
<
bool
>
needHelpLineLive
=
new
LiveData
();
Map
<
String
,
List
<
List
<
String
>>>
selectMap
=
new
Map
();
Map
<
String
,
List
<
List
<
String
>>>
selectMap
=
new
Map
();
Map
<
String
,
List
<
List
<
String
>>>
fixDataMap
=
new
Map
();
Map
<
String
,
List
<
List
<
String
>>>
fixDataMap
=
new
Map
();
...
@@ -37,6 +38,7 @@ class WorkModel extends BaseModel {
...
@@ -37,6 +38,7 @@ class WorkModel extends BaseModel {
AllTabBean
allTabBean
;
AllTabBean
allTabBean
;
int
imageId
;
int
imageId
;
int
currentIndex
;
int
currentIndex
;
bool
needHelpLine
=
true
;
WorkModel
(
this
.
imageId
,
this
.
currentIndex
);
WorkModel
(
this
.
imageId
,
this
.
currentIndex
);
...
@@ -105,6 +107,44 @@ class WorkModel extends BaseModel {
...
@@ -105,6 +107,44 @@ class WorkModel extends BaseModel {
if
(
value
.
anno
.
eyeDistance
!=
null
&&
value
.
anno
.
eyeDistance
!=
"无结果"
)
{
if
(
value
.
anno
.
eyeDistance
!=
null
&&
value
.
anno
.
eyeDistance
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"eye_distance"
],
value
.
anno
.
eyeDistance
]);
eyeList
.
add
([
EXPLAN
[
"eye_distance"
],
value
.
anno
.
eyeDistance
]);
}
}
if
(
value
.
anno
.
heiyanquanLeft
!=
null
&&
value
.
anno
.
heiyanquanLeft
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"heiyanquan_left"
],
value
.
anno
.
heiyanquanLeft
]);
}
if
(
value
.
anno
.
wocanLeft
!=
null
&&
value
.
anno
.
wocanLeft
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"wocan_left"
],
value
.
anno
.
wocanLeft
]);
}
if
(
value
.
anno
.
yanwenLeft
!=
null
&&
value
.
anno
.
yanwenLeft
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"yanwen_left"
],
value
.
anno
.
yanwenLeft
]);
}
if
(
value
.
anno
.
yuweiwenLeft
!=
null
&&
value
.
anno
.
yuweiwenLeft
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"yuweiwen_left"
],
value
.
anno
.
yuweiwenLeft
]);
}
if
(
value
.
anno
.
zhongyanpaoLeft
!=
null
&&
value
.
anno
.
zhongyanpaoLeft
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"zhongyanpao_left"
],
value
.
anno
.
zhongyanpaoLeft
]);
}
if
(
value
.
anno
.
leigouLeft
!=
null
&&
value
.
anno
.
leigouLeft
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"leigou_left"
],
value
.
anno
.
leigouLeft
]);
}
if
(
value
.
anno
.
heiyanquanRight
!=
null
&&
value
.
anno
.
heiyanquanRight
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"heiyanquan_right"
],
value
.
anno
.
heiyanquanRight
]);
}
if
(
value
.
anno
.
wocanRight
!=
null
&&
value
.
anno
.
wocanRight
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"wocan_right"
],
value
.
anno
.
wocanRight
]);
}
if
(
value
.
anno
.
yanwenRight
!=
null
&&
value
.
anno
.
yanwenRight
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"yanwen_right"
],
value
.
anno
.
yanwenRight
]);
}
if
(
value
.
anno
.
yuweiwenRight
!=
null
&&
value
.
anno
.
yuweiwenRight
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"yuweiwen_right"
],
value
.
anno
.
yuweiwenRight
]);
}
if
(
value
.
anno
.
zhongyanpaoRight
!=
null
&&
value
.
anno
.
zhongyanpaoRight
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"zhongyanpao_right"
],
value
.
anno
.
zhongyanpaoRight
]);
}
if
(
value
.
anno
.
leigouRight
!=
null
&&
value
.
anno
.
leigouRight
!=
"无结果"
)
{
eyeList
.
add
([
EXPLAN
[
"leigou_right"
],
value
.
anno
.
leigouRight
]);
}
if
(
eyeList
.
isNotEmpty
)
{
if
(
eyeList
.
isNotEmpty
)
{
selectMap
.
putIfAbsent
(
"眼睛部分"
,
()
=>
eyeList
);
selectMap
.
putIfAbsent
(
"眼睛部分"
,
()
=>
eyeList
);
}
}
...
@@ -295,12 +335,85 @@ class WorkModel extends BaseModel {
...
@@ -295,12 +335,85 @@ class WorkModel extends BaseModel {
eyeSpace
.
add
(
allTabBean
.
eyespacing
.
eyespacingData
.
narrow
);
eyeSpace
.
add
(
allTabBean
.
eyespacing
.
eyespacingData
.
narrow
);
eyeSpace
.
add
(
allTabBean
.
eyespacing
.
eyespacingData
.
appropriate
);
eyeSpace
.
add
(
allTabBean
.
eyespacing
.
eyespacingData
.
appropriate
);
List
<
String
>
heiyanquan
=
new
List
();
heiyanquan
.
add
(
allTabBean
.
heiyanquanLeft
.
name
);
heiyanquan
.
add
(
allTabBean
.
heiyanquanLeft
.
heiyanquanLeftData
.
yes
);
heiyanquan
.
add
(
allTabBean
.
heiyanquanLeft
.
heiyanquanLeftData
.
no
);
List
<
String
>
heiyanquanR
=
new
List
();
heiyanquanR
.
add
(
allTabBean
.
heiyanquanRight
.
name
);
heiyanquanR
.
add
(
allTabBean
.
heiyanquanRight
.
heiyanquanRightData
.
yes
);
heiyanquanR
.
add
(
allTabBean
.
heiyanquanRight
.
heiyanquanRightData
.
no
);
List
<
String
>
wocan
=
new
List
();
wocan
.
add
(
allTabBean
.
wocanLeft
.
name
);
wocan
.
add
(
allTabBean
.
wocanLeft
.
wocanLeftData
.
yes
);
wocan
.
add
(
allTabBean
.
wocanLeft
.
wocanLeftData
.
no
);
List
<
String
>
wocanR
=
new
List
();
wocanR
.
add
(
allTabBean
.
wocanRight
.
name
);
wocanR
.
add
(
allTabBean
.
wocanRight
.
wocanRightData
.
yes
);
wocanR
.
add
(
allTabBean
.
wocanRight
.
wocanRightData
.
no
);
List
<
String
>
yanwen
=
new
List
();
yanwen
.
add
(
allTabBean
.
yanwenLeft
.
name
);
yanwen
.
add
(
allTabBean
.
yanwenLeft
.
yanwenLeftData
.
yes
);
yanwen
.
add
(
allTabBean
.
yanwenLeft
.
yanwenLeftData
.
no
);
List
<
String
>
yanwenR
=
new
List
();
yanwenR
.
add
(
allTabBean
.
yanwenRight
.
name
);
yanwenR
.
add
(
allTabBean
.
yanwenRight
.
yanwenRightData
.
yes
);
yanwenR
.
add
(
allTabBean
.
yanwenRight
.
yanwenRightData
.
no
);
List
<
String
>
yuweiwen
=
new
List
();
yuweiwen
.
add
(
allTabBean
.
yuweiwenLeft
.
name
);
yuweiwen
.
add
(
allTabBean
.
yuweiwenLeft
.
yuweiwenLeftData
.
yes
);
yuweiwen
.
add
(
allTabBean
.
yuweiwenLeft
.
yuweiwenLeftData
.
no
);
List
<
String
>
yuweiwenR
=
new
List
();
yuweiwenR
.
add
(
allTabBean
.
yuweiwenRight
.
name
);
yuweiwenR
.
add
(
allTabBean
.
yuweiwenRight
.
yuweiwenRightData
.
yes
);
yuweiwenR
.
add
(
allTabBean
.
yuweiwenRight
.
yuweiwenRightData
.
no
);
List
<
String
>
yanpao
=
new
List
();
yanpao
.
add
(
allTabBean
.
zhongyanpaoLeft
.
name
);
yanpao
.
add
(
allTabBean
.
zhongyanpaoLeft
.
zhongyanpaoLeftData
.
yes
);
yanpao
.
add
(
allTabBean
.
zhongyanpaoLeft
.
zhongyanpaoLeftData
.
no
);
List
<
String
>
yanpaoR
=
new
List
();
yanpaoR
.
add
(
allTabBean
.
zhongyanpaoRight
.
name
);
yanpaoR
.
add
(
allTabBean
.
zhongyanpaoRight
.
zhongyanpaoRightData
.
yes
);
yanpaoR
.
add
(
allTabBean
.
zhongyanpaoRight
.
zhongyanpaoRightData
.
no
);
List
<
String
>
leigou
=
new
List
();
leigou
.
add
(
allTabBean
.
leigouLeft
.
name
);
leigou
.
add
(
allTabBean
.
leigouLeft
.
leigouLeftData
.
yes
);
leigou
.
add
(
allTabBean
.
leigouLeft
.
leigouLeftData
.
no
);
List
<
String
>
leigouR
=
new
List
();
leigouR
.
add
(
allTabBean
.
leigouRight
.
name
);
leigouR
.
add
(
allTabBean
.
leigouRight
.
leigouRightData
.
yes
);
leigouR
.
add
(
allTabBean
.
leigouRight
.
leigouRightData
.
no
);
eyeList
.
add
(
lefteye
);
eyeList
.
add
(
lefteye
);
eyeList
.
add
(
righteye
);
eyeList
.
add
(
righteye
);
eyeList
.
add
(
eyeStyleleft
);
eyeList
.
add
(
eyeStyleleft
);
eyeList
.
add
(
eyeStyleright
);
eyeList
.
add
(
eyeStyleright
);
eyeList
.
add
(
eyebag
);
eyeList
.
add
(
eyebag
);
eyeList
.
add
(
eyeSpace
);
eyeList
.
add
(
eyeSpace
);
eyeList
.
add
(
heiyanquan
);
eyeList
.
add
(
heiyanquanR
);
eyeList
.
add
(
wocan
);
eyeList
.
add
(
wocanR
);
eyeList
.
add
(
yanwen
);
eyeList
.
add
(
yanwenR
);
eyeList
.
add
(
yuweiwen
);
eyeList
.
add
(
yuweiwenR
);
eyeList
.
add
(
yanpao
);
eyeList
.
add
(
yanpaoR
);
eyeList
.
add
(
leigou
);
eyeList
.
add
(
leigouR
);
fixDataMap
.
putIfAbsent
(
"眼睛部分"
,
()
=>
eyeList
);
fixDataMap
.
putIfAbsent
(
"眼睛部分"
,
()
=>
eyeList
);
//======== 鼻子👃
//======== 鼻子👃
...
@@ -406,6 +519,7 @@ class WorkModel extends BaseModel {
...
@@ -406,6 +519,7 @@ class WorkModel extends BaseModel {
@override
@override
void
dispose
()
{
void
dispose
()
{
needHelpLineLive
.
dispost
();
rectMaskLive
.
dispost
();
rectMaskLive
.
dispost
();
maskTabLive
.
dispost
();
maskTabLive
.
dispost
();
pointLive
.
dispost
();
pointLive
.
dispost
();
...
@@ -560,7 +674,8 @@ class WorkModel extends BaseModel {
...
@@ -560,7 +674,8 @@ class WorkModel extends BaseModel {
_repo
.
saveImageResult
(
imageId
,
stringBuffer
.
toString
()).
listen
((
value
)
{
_repo
.
saveImageResult
(
imageId
,
stringBuffer
.
toString
()).
listen
((
value
)
{
if
(
value
!=
null
)
{
if
(
value
!=
null
)
{
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
,
-
1
);
imageNext
(
context
);
// Navigator.pop(context, -1);
Toast
.
show
(
context
,
"保存成功"
);
Toast
.
show
(
context
,
"保存成功"
);
}
}
}).
onError
((
error
)
{
}).
onError
((
error
)
{
...
@@ -757,4 +872,10 @@ class WorkModel extends BaseModel {
...
@@ -757,4 +872,10 @@ class WorkModel extends BaseModel {
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
});
});
}
}
void
needHelpLineNotify
(
bool
value
)
{
needHelpLine
=
value
;
needHelpLineLive
.
notifyView
(
needHelpLine
);
syncPos
(-
10
,
-
10
);
}
}
}
lib/HomeModel/page/work/WorkPage.dart
View file @
e2848217
...
@@ -72,124 +72,103 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -72,124 +72,103 @@ class WorkState extends BaseState<WorkPage> {
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
screenSize
=
MediaQuery
.
of
(
context
).
size
;
screenSize
=
MediaQuery
.
of
(
context
).
size
;
tabItemHeight
=
30
;
tabItemHeight
=
30
;
rightAllWidth
=
2
80
;
rightAllWidth
=
2
38
;
rightTitleHeight
=
15
;
rightTitleHeight
=
15
;
String
userName
=
String
userName
=
CacheManager
.
getInstance
().
get
(
MEMORY_CACHE
).
get
(
"userName"
);
CacheManager
.
getInstance
().
get
(
MEMORY_CACHE
).
get
(
"userName"
);
return
Scaffold
(
return
Scaffold
(
appBar:
MyAppBar
(),
appBar:
MyAppBar
(),
// baseAppBar(
// backgroundColor: ALColors.Color5276F4,
// backClick: () {
// BaseCenterPicker()
// ..setPicker(SurePicker("确定返回吗?", () {
// Navigator.pop(context);
// }, () {
// Navigator.pop(context);
// Navigator.pop(context);
// }))
// ..show(context);
// },
// action: <Widget>[
// Expanded(
// child: Container(),
// ),
// Container(
// margin: EdgeInsets.only(right: ScreenUtil.instance.setWidth(10)),
// alignment: Alignment.center,
// child: baseText(userName, 30, ALColors.ColorF8F8F8),
// ),
// Container(
// width: kToolbarHeight,
// height: kToolbarHeight,
// margin: EdgeInsets.only(
// left: ScreenUtil.instance.setWidth(5),
// right: ScreenUtil.instance.setWidth(50),
// top: 5,
// bottom: 5),
// child: SvgPicture.asset("image/Face.svg"),
// ),
// ]),
body:
Row
(
body:
Row
(
children:
<
Widget
>[
children:
<
Widget
>[
Expanded
(
mainView
(),
child:
Stack
(
divide
(),
alignment:
AlignmentDirectional
.
bottomCenter
,
leftItem
(),
children:
<
Widget
>[
divide
(),
centerItem
(),
divide
(),
rightItem
()
],
),
);
}
Container
(
Widget
mainView
()
{
width:
double
.
maxFinite
,
return
Expanded
(
height:
double
.
maxFinite
,
child:
Stack
(
color:
Colors
.
black54
,
alignment:
AlignmentDirectional
.
bottomCenter
,
child:
Listener
(
children:
<
Widget
>[
onPointerDown:
(
down
)
{
Container
(
print
(
"onPointerDownEvent"
);
width:
double
.
maxFinite
,
},
height:
double
.
maxFinite
,
onPointerMove:
(
move
)
{
color:
Colors
.
black54
,
print
(
"onPointerMove"
);
child:
Listener
(
},
onPointerDown:
(
down
)
{
onPointerUp:
(
up
)
{
print
(
"onPointerDownEvent"
);
print
(
"onPointerUp"
);
},
},
onPointerMove:
(
move
)
{
onPointerHover:
(
hover
)
{
print
(
"onPointerMove"
);
_model
.
syncPos
(
hover
.
position
.
dx
,
},
hover
.
position
.
dy
-
kToolbarHeight
);
onPointerUp:
(
up
)
{
// Toast.show(context,
print
(
"onPointerUp"
);
// "onPointerHover ${hover.position.dx} ${hover.position.dy}");
},
},
onPointerHover:
(
hover
)
{
onPointerExit:
(
exit
)
{
if
(
_model
.
needHelpLine
){
print
(
"onPointerExit"
);
_model
.
syncPos
(
},
hover
.
position
.
dx
,
hover
.
position
.
dy
-
kToolbarHeight
);
onPointerCancel:
(
cancle
)
{
}
print
(
"onPointerCancel"
);
},
},
onPointerExit:
(
exit
)
{
onPointerEnter:
(
enter
)
{
print
(
"onPointerExit"
);
print
(
"onPointerEnter"
);
},
},
onPointerCancel:
(
cancle
)
{
)),
print
(
"onPointerCancel"
);
StreamBuilder
<
PointItem
>(
},
stream:
_model
.
pointLive
.
stream
,
onPointerEnter:
(
enter
)
{
initialData:
_model
.
pointLive
.
data
,
print
(
"onPointerEnter"
);
builder:
(
con
,
data
)
{
},
if
(
data
.
data
==
null
)
{
)),
return
Container
();
StreamBuilder
<
PointItem
>(
}
stream:
_model
.
pointLive
.
stream
,
workItem
=
WorkView
(
_model
.
pointItem
,
(
scareSize
,
top
,
topA
)
{
initialData:
_model
.
pointLive
.
data
,
picScareSize
=
scareSize
;
builder:
(
con
,
data
)
{
topBuf
=
top
;
if
(
data
.
data
==
null
)
{
topAdd
=
topA
;
return
Container
();
});
}
return
GestureDetector
(
workItem
=
WorkView
(
_model
.
pointItem
,
(
scareSize
,
top
,
topA
)
{
onVerticalDragDown:
(
details
)
{
picScareSize
=
scareSize
;
topBuf
=
top
;
topAdd
=
topA
;
});
return
GestureDetector
(
onVerticalDragDown:
(
details
)
{
// print(
// print(
// "DOWN ${details.localPosition.dx} ${details.localPosition.dy}"
// "DOWN ${details.localPosition.dx} ${details.localPosition.dy}"
// " ${_model.pointItem.getX()} ${_model.pointItem.getY()}"
// " ${_model.pointItem.getX()} ${_model.pointItem.getY()}"
// " ${tapStartX} ${tapStartY}");
// " ${tapStartX} ${tapStartY}");
startTranX
=
_model
.
pointItem
.
tranX
;
startTranX
=
_model
.
pointItem
.
tranX
;
startTranY
=
_model
.
pointItem
.
tranY
;
startTranY
=
_model
.
pointItem
.
tranY
;
dragStartX
=
details
.
localPosition
.
dx
;
dragStartX
=
details
.
localPosition
.
dx
;
dragStartY
=
details
.
localPosition
.
dy
;
dragStartY
=
details
.
localPosition
.
dy
;
},
},
onVerticalDragEnd:
(
details
)
{
onVerticalDragEnd:
(
details
)
{
_model
.
pointItem
.
dragEnd
(
details
);
_model
.
pointItem
.
dragEnd
(
details
);
},
},
onVerticalDragUpdate:
(
details
)
{
onVerticalDragUpdate:
(
details
)
{
_model
.
pointItem
.
drag
(
details
,
startTranX
,
dragStartX
,
_model
.
pointItem
.
drag
(
details
,
startTranX
,
dragStartX
,
startTranY
,
dragStartY
,
dragMask
);
startTranY
,
dragStartY
,
dragMask
);
_model
.
syncPoint
();
_model
.
syncPoint
();
},
},
onTap:
()
{
onTap:
()
{
_model
.
pointItem
.
addPoint
(
tapStartX
,
tapStartY
);
_model
.
pointItem
.
addPoint
(
tapStartX
,
tapStartY
);
_model
.
syncPoint
();
_model
.
syncPoint
();
},
},
onTapDown:
(
details
)
{
onTapDown:
(
details
)
{
tapStartX
=
details
.
localPosition
.
dx
;
tapStartX
=
details
.
localPosition
.
dx
;
tapStartY
=
details
.
localPosition
.
dy
;
tapStartY
=
details
.
localPosition
.
dy
;
dragMask
=
dragMask
=
workItem
.
calutePath
(
Offset
(
tapStartX
,
tapStartY
));
workItem
.
calutePath
(
Offset
(
tapStartX
,
tapStartY
));
_model
.
pointItem
.
down
(
tapStartX
,
tapStartY
,
dragMask
);
_model
.
pointItem
.
down
(
tapStartX
,
tapStartY
,
dragMask
);
print
(
"gesture onTap down"
);
print
(
"gesture onTap down"
);
},
},
// onDoubleTap: () {
// onDoubleTap: () {
// if (_model.pointItem.scareSize == 1) {
// if (_model.pointItem.scareSize == 1) {
// _model.pointItem.setScareSize(3);
// _model.pointItem.setScareSize(3);
...
@@ -203,213 +182,95 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -203,213 +182,95 @@ class WorkState extends BaseState<WorkPage> {
// _model.syncPoint();
// _model.syncPoint();
// }
// }
// },
// },
child:
ClipRect
(
child:
ClipRect
(
child:
Container
(
child:
Container
(
width:
double
.
maxFinite
,
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
CustomPaint
(
painter:
workItem
),
child:
CustomPaint
(
painter:
workItem
),
)));
)));
},
},
),
),
// Container(
Container
(
// width: double.maxFinite,
width:
double
.
maxFinite
,
// height: double.maxFinite,
height:
double
.
maxFinite
,
// alignment: Alignment.topCenter,
alignment:
Alignment
.
topCenter
,
// child: Container(
child:
Container
(
// width: double.maxFinite,
width:
double
.
maxFinite
,
// height: 50,
height:
50
,
// color: Colors.black54,
color:
Colors
.
black54
,
// child: Row(
child:
Row
(
// children: <Widget>[],
children:
<
Widget
>[
// )),
Expanded
(
// ),
child:
FlatButton
(
Container
(
onPressed:
()
{
width:
double
.
maxFinite
,
_model
.
saveImage
(
context
);
height:
50
,
},
color:
Colors
.
black54
,
child:
Container
(
),
color:
Colors
.
pink
,
StreamBuilder
<
List
<
int
>>(
alignment:
Alignment
.
center
,
stream:
_model
.
nowIndexLive
.
stream
,
child:
baseText
(
"保存图片"
,
15
,
Colors
.
white
),
initialData:
_model
.
nowIndexLive
.
data
,
),
builder:
(
con
,
data
)
{
),
if
(
data
.
data
==
null
)
{
),
return
loadingItem
();
Expanded
(
}
child:
FlatButton
(
return
Container
(
onPressed:
()
{
height:
50
,
_model
.
pointItem
.
close
();
alignment:
Alignment
.
center
,
_model
.
syncPoint
();
child:
baseText
(
},
"第
${data.data[0]}
页 第
${data.data[1]}
张"
,
15
,
Colors
.
white
),
child:
Container
(
);
width:
double
.
maxFinite
,
},
height:
double
.
maxFinite
,
),
color:
Colors
.
lightBlueAccent
,
Positioned
(
alignment:
Alignment
.
center
,
left:
0
,
child:
baseText
(
"闭合标记"
,
15
,
Colors
.
white
),
bottom:
0
,
),
child:
FlatButton
(
),
onPressed:
()
{
),
BaseCenterPicker
()
Expanded
(
..
setPicker
(
SurePicker
(
"还没有保存哦 确定上一张吗?"
,
()
{
child:
FlatButton
(
Navigator
.
pop
(
context
);
onPressed:
()
{
},
()
{
_model
.
pointItem
.
reset
();
Navigator
.
pop
(
context
);
_model
.
syncPoint
();
_model
.
imageBefore
(
context
);
},
}))
child:
Container
(
..
show
(
context
);
color:
Colors
.
green
,
},
width:
double
.
maxFinite
,
child:
Container
(
height:
double
.
maxFinite
,
width:
50
,
alignment:
Alignment
.
center
,
height:
30
,
child:
baseText
(
"清除所有"
,
15
,
Colors
.
white
),
alignment:
Alignment
.
centerLeft
,
),
child:
baseText
(
"上一张"
,
15
,
Colors
.
white
),
),
),
),
),
Expanded
(
),
child:
FlatButton
(
Positioned
(
onPressed:
()
{
right:
0
,
_model
.
pointItem
.
removePoint
();
bottom:
0
,
_model
.
syncPoint
();
child:
FlatButton
(
},
onPressed:
()
{
child:
Container
(
BaseCenterPicker
()
color:
Colors
.
green
,
..
setPicker
(
SurePicker
(
"还没有保存哦 确定下一张吗?"
,
()
{
width:
double
.
maxFinite
,
Navigator
.
pop
(
context
);
height:
double
.
maxFinite
,
},
()
{
alignment:
Alignment
.
center
,
Navigator
.
pop
(
context
);
child:
baseText
(
"撤销一步"
,
15
,
Colors
.
white
),
_model
.
imageNext
(
context
);
),
}))
),
..
show
(
context
);
),
},
Expanded
(
child:
Container
(
child:
FlatButton
(
width:
50
,
onPressed:
()
{
height:
30
,
if
(
_model
.
pointItem
.
scareSize
==
1
)
{
alignment:
Alignment
.
center
,
_model
.
pointItem
.
setScareSize
(
3
);
child:
baseText
(
"下一张"
,
15
,
Colors
.
white
),
_model
.
pointItem
),
.
setTranX
(
_model
.
pointItem
.
getX
());
),
_model
.
pointItem
),
.
setTranY
(
_model
.
pointItem
.
getY
());
],
_model
.
syncPoint
();
));
}
else
{
_model
.
pointItem
.
setScareSize
(
1
);
_model
.
pointItem
.
setTranX
(
0
);
_model
.
pointItem
.
setTranY
(
0
);
_model
.
syncPoint
();
}
},
child:
Container
(
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
color:
Colors
.
yellow
,
alignment:
Alignment
.
center
,
child:
baseText
(
"放大&缩小"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
FlatButton
(
onPressed:
()
{
_model
.
getMaskedImage
(
context
);
},
child:
Container
(
color:
Colors
.
purple
,
alignment:
Alignment
.
center
,
child:
baseText
(
"获取历史标记结果"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
FlatButton
(
onPressed:
()
{
_model
.
saveDrawImage
(
context
,
picScareSize
,
topBuf
,
topAdd
);
},
child:
Container
(
color:
Colors
.
pink
,
alignment:
Alignment
.
center
,
child:
baseText
(
"保存标记结果"
,
15
,
Colors
.
white
),
),
),
),
],
)),
),
Container
(
width:
double
.
maxFinite
,
height:
50
,
color:
Colors
.
black54
,
),
StreamBuilder
<
List
<
int
>>(
stream:
_model
.
nowIndexLive
.
stream
,
initialData:
_model
.
nowIndexLive
.
data
,
builder:
(
con
,
data
)
{
if
(
data
.
data
==
null
)
{
return
loadingItem
();
}
return
Container
(
height:
50
,
alignment:
Alignment
.
center
,
child:
baseText
(
"第
${data.data[0]}
页 第
${data.data[1]}
张"
,
15
,
Colors
.
white
),
);
},
),
Positioned
(
left:
0
,
bottom:
0
,
child:
FlatButton
(
onPressed:
()
{
BaseCenterPicker
()
..
setPicker
(
SurePicker
(
"还没有保存哦 确定上一张吗?"
,
()
{
Navigator
.
pop
(
context
);
},
()
{
Navigator
.
pop
(
context
);
_model
.
imageBefore
(
context
);
}))
..
show
(
context
);
},
child:
Container
(
width:
50
,
height:
30
,
alignment:
Alignment
.
centerLeft
,
child:
baseText
(
"上一张"
,
15
,
Colors
.
white
),
),
),
),
Positioned
(
right:
0
,
bottom:
0
,
child:
FlatButton
(
onPressed:
()
{
BaseCenterPicker
()
..
setPicker
(
SurePicker
(
"还没有保存哦 确定下一张吗?"
,
()
{
Navigator
.
pop
(
context
);
},
()
{
Navigator
.
pop
(
context
);
_model
.
imageNext
(
context
);
}))
..
show
(
context
);
},
child:
Container
(
width:
50
,
height:
30
,
alignment:
Alignment
.
center
,
child:
baseText
(
"下一张"
,
15
,
Colors
.
white
),
),
),
),
],
)),
leftItem
(),
divide
(),
centerItem
(),
divide
(),
rightItem
()
],
),
);
}
}
Widget
divide
(){
Widget
divide
()
{
return
Container
(
return
Container
(
margin:
EdgeInsets
.
only
(
left:
2
,
right:
2
),
margin:
EdgeInsets
.
only
(
left:
2
,
right:
2
),
color:
Colors
.
black38
,
color:
Colors
.
black38
,
...
@@ -418,14 +279,45 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -418,14 +279,45 @@ class WorkState extends BaseState<WorkPage> {
);
);
}
}
leftItem
(){
leftItem
()
{
return
Container
(
return
Container
(
width:
100
,
width:
100
,
height:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
Column
(
child:
Column
(
children:
<
Widget
>[
children:
<
Widget
>[
Container
(
Container
(
height:
50
,
height:
30
,
),
Container
(
alignment:
Alignment
.
center
,
width:
double
.
maxFinite
,
child:
baseText
(
"辅助线"
,
13
,
Colors
.
black
),
),
StreamBuilder
<
bool
>(
stream:
_model
.
needHelpLineLive
.
stream
,
initialData:
_model
.
needHelpLineLive
.
data
,
builder:
(
con
,
data
){
bool
needHelpLine
;
if
(
data
.
data
==
null
||
data
.
data
){
needHelpLine
=
true
;
}
else
{
needHelpLine
=
false
;
}
return
Switch
(
value:
needHelpLine
,
activeColor:
Colors
.
blue
,
onChanged:
(
value
)
{
_model
.
needHelpLineNotify
(
value
);
},
);
},
),
Container
(
height:
20
,
),
Container
(
height:
80
,
child:
StreamBuilder
<
bool
>(
child:
StreamBuilder
<
bool
>(
stream:
_model
.
rectMaskLive
.
stream
,
stream:
_model
.
rectMaskLive
.
stream
,
initialData:
_model
.
rectMaskLive
.
data
,
initialData:
_model
.
rectMaskLive
.
data
,
...
@@ -435,9 +327,9 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -435,9 +327,9 @@ class WorkState extends BaseState<WorkPage> {
}
}
return
Column
(
return
Column
(
children:
<
Widget
>[
children:
<
Widget
>[
Container
(
Container
(
margin:
EdgeInsets
.
only
(
left:
16
),
child:
baseText
(
"点标记&框标记"
,
15
,
Colors
.
black
),
child:
baseText
(
"点标记"
,
15
,
Colors
.
white
),
),
),
Switch
(
Switch
(
value:
_model
.
pointItem
.
rectModel
,
value:
_model
.
pointItem
.
rectModel
,
...
@@ -448,57 +340,71 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -448,57 +340,71 @@ class WorkState extends BaseState<WorkPage> {
_model
.
rectMaskLive
.
notifyView
(
value
);
_model
.
rectMaskLive
.
notifyView
(
value
);
},
},
),
),
Container
(
child:
baseText
(
"拉框标记"
,
15
,
Colors
.
white
),
),
],
],
);
);
},
},
),
),
),
),
Container
(
Container
(
width:
double
.
maxFinite
,
child:
baseFlatButtonItem
(()
{
height:
30
,
_model
.
showMaskTabSelect
(
context
);
color:
Colors
.
blueGrey
,
},
"选取标签"
),
child:
Row
(
),
crossAxisAlignment:
CrossAxisAlignment
.
center
,
Container
(
children:
<
Widget
>[
margin:
EdgeInsets
.
only
(
top:
3
,
bottom:
20
),
alignment:
Alignment
.
centerLeft
,
Container
(
width:
double
.
maxFinite
,
margin:
EdgeInsets
.
only
(
left:
16
),
child:
StreamBuilder
(
child:
FlatButton
(
stream:
_model
.
maskTabLive
.
stream
,
onPressed:
()
{
initialData:
_model
.
maskTabLive
.
data
,
_model
.
showMaskTabSelect
(
context
);
builder:
(
con
,
data
)
{
},
if
(
data
.
data
==
null
)
{
child:
Container
(
return
baseText
(
"还没有选着标签哦"
,
12
,
Colors
.
black
);
height:
double
.
maxFinite
,
}
alignment:
Alignment
.
center
,
return
baseText
(
"选着的标签:
${data.data}
"
,
12
,
Colors
.
black
);
color:
Colors
.
amberAccent
,
},
child:
baseText
(
"选取标签"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
Container
(
alignment:
Alignment
.
centerLeft
,
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
StreamBuilder
(
stream:
_model
.
maskTabLive
.
stream
,
initialData:
_model
.
maskTabLive
.
data
,
builder:
(
con
,
data
)
{
if
(
data
.
data
==
null
)
{
return
baseText
(
"还没有选着标签哦"
,
15
,
Colors
.
white
);
}
return
baseText
(
"选着的标签:
${data.data}
"
,
15
,
Colors
.
white
);
},
),
),
),
],
),
),
),
),
baseFlatButtonItem
(()
{
_model
.
saveImage
(
context
);
},
"保存图片"
),
baseFlatButtonItem
(()
{
_model
.
pointItem
.
close
();
_model
.
syncPoint
();
},
"闭合标记"
),
baseFlatButtonItem
(()
{
_model
.
pointItem
.
removePoint
();
_model
.
syncPoint
();
},
"撤销一步"
),
baseFlatButtonItem
(()
{
_model
.
pointItem
.
reset
();
_model
.
syncPoint
();
},
"清除所有"
),
baseFlatButtonItem
(()
{
if
(
_model
.
pointItem
.
scareSize
==
1
)
{
_model
.
pointItem
.
setScareSize
(
3
);
_model
.
pointItem
.
setTranX
(
_model
.
pointItem
.
getX
());
_model
.
pointItem
.
setTranY
(
_model
.
pointItem
.
getY
());
_model
.
syncPoint
();
}
else
{
_model
.
pointItem
.
setScareSize
(
1
);
_model
.
pointItem
.
setTranX
(
0
);
_model
.
pointItem
.
setTranY
(
0
);
_model
.
syncPoint
();
}
},
"放大&缩小"
),
baseFlatButtonItem
(()
{
_model
.
getMaskedImage
(
context
);
},
"获取点标记结果"
),
baseFlatButtonItem
(()
{
_model
.
saveDrawImage
(
context
,
picScareSize
,
topBuf
,
topAdd
);
},
"保存点标记结果"
),
Expanded
(
child:
Container
(),
),
baseFlatButtonItem
(()
{
Navigator
.
pop
(
context
,-
1
);
},
"返回上一页"
),
],
],
),
),
);
);
...
@@ -513,15 +419,6 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -513,15 +419,6 @@ class WorkState extends BaseState<WorkPage> {
initialData:
_model
.
tabLive
.
data
,
initialData:
_model
.
tabLive
.
data
,
builder:
(
con
,
data
)
{
builder:
(
con
,
data
)
{
if
(
data
.
data
==
null
||
data
.
data
.
isEmpty
)
{
if
(
data
.
data
==
null
||
data
.
data
.
isEmpty
)
{
// return Container(
// alignment: Alignment.center,
// child: OutlineButton(
// onPressed: () {
// _model.allTab(context);
// },
// child: baseText("重试", 20, ALColors.Color323232),
// ),
// );
return
Center
(
child:
CircularProgressIndicator
());
return
Center
(
child:
CircularProgressIndicator
());
}
}
tabHeadHeight
=
30
+
kToolbarHeight
;
tabHeadHeight
=
30
+
kToolbarHeight
;
...
@@ -534,24 +431,13 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -534,24 +431,13 @@ class WorkState extends BaseState<WorkPage> {
startHeight
=
startHeight
+
(
rightTitleHeight
+
tabItemHeight
);
startHeight
=
startHeight
+
(
rightTitleHeight
+
tabItemHeight
);
allList
.
add
(
divideItem
(
k
));
allList
.
add
(
divideItem
(
k
));
List
<
Widget
>
grids
=
new
List
();
List
<
Widget
>
grids
=
new
List
();
for
(
int
i
=
0
;
i
<
value
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
value
.
length
;
i
+=
2
)
{
if
(
i
==
0
)
{
if
(
i
!=
0
)
{
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center1
));
}
else
if
(
i
==
1
)
{
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center2
));
}
else
if
(
i
==
2
)
{
startHeight
=
startHeight
+
(
tabItemHeight
);
startHeight
=
startHeight
+
(
tabItemHeight
);
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center1
));
}
}
else
if
(
i
==
3
)
{
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center1
));
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center2
));
if
(
i
+
1
<
value
.
length
)
{
}
else
if
(
i
==
4
)
{
grids
.
add
(
glidItem
(
k
,
value
[
i
+
1
],
startHeight
,
center2
));
startHeight
=
startHeight
+
(
tabItemHeight
);
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center1
));
}
else
if
(
i
==
5
)
{
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center2
));
}
else
if
(
i
==
6
)
{
startHeight
=
startHeight
+
(
tabItemHeight
);
grids
.
add
(
glidItem
(
k
,
value
[
i
],
startHeight
,
center1
));
}
}
}
}
int
count
=
(
value
.
length
/
2
).
ceil
();
int
count
=
(
value
.
length
/
2
).
ceil
();
...
@@ -593,7 +479,7 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -593,7 +479,7 @@ class WorkState extends BaseState<WorkPage> {
list
.
add
(
PopupMenuItem
(
list
.
add
(
PopupMenuItem
(
value:
dataList
[
i
],
value:
dataList
[
i
],
child:
Container
(
child:
Container
(
width:
rightAllWidth
/
2
,
width:
rightAllWidth
/
4
,
alignment:
Alignment
.
center
,
alignment:
Alignment
.
center
,
child:
baseText
(
dataList
[
i
],
12
,
ALColors
.
Color666666
),
child:
baseText
(
dataList
[
i
],
12
,
ALColors
.
Color666666
),
)));
)));
...
@@ -601,7 +487,7 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -601,7 +487,7 @@ class WorkState extends BaseState<WorkPage> {
return
Container
(
return
Container
(
padding:
EdgeInsets
.
all
(
5
),
padding:
EdgeInsets
.
all
(
5
),
child:
FlatButton
(
child:
FlatButton
(
color:
Color
s
.
lightBlueAccent
,
color:
Color
.
fromARGB
(
255
,
236
,
236
,
236
)
,
shape:
RoundedRectangleBorder
(
shape:
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
5
))),
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
5
))),
onPressed:
()
async
{
onPressed:
()
async
{
...
@@ -616,23 +502,26 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -616,23 +502,26 @@ class WorkState extends BaseState<WorkPage> {
}
}
},
},
child:
Container
(
child:
Container
(
//
width: double.maxFinite,
width:
double
.
maxFinite
,
child:
Row
(
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
<
Widget
>[
children:
<
Widget
>[
Expanded
(
Expanded
(
child:
Container
(),
child:
Container
(),
),
),
Container
(
Container
(
padding:
EdgeInsets
.
only
(
right:
5
),
padding:
EdgeInsets
.
only
(
right:
5
),
child:
baseText
(
title
,
15
,
ALColors
.
ColorFFFFFF
),
child:
baseText
(
title
,
13
,
Colors
.
black
),
),
),
SvgPicture
.
asset
(
"image/bottom_arrow.svg"
),
Container
(
Expanded
(
width:
5
,
child:
Container
(),
child:
SvgPicture
.
asset
(
"image/bottom_arrow.svg"
),
),
),
],
Expanded
(
))));
child:
Container
(),
),
],
))));
}
}
tabHead
()
{
tabHead
()
{
...
@@ -648,7 +537,7 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -648,7 +537,7 @@ class WorkState extends BaseState<WorkPage> {
centerItem
()
{
centerItem
()
{
return
Container
(
return
Container
(
width:
20
0
,
width:
16
0
,
height:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
StreamBuilder
<
Map
<
String
,
List
<
List
<
String
>>>>(
child:
StreamBuilder
<
Map
<
String
,
List
<
List
<
String
>>>>(
stream:
_model
.
selectLive
.
stream
,
stream:
_model
.
selectLive
.
stream
,
...
@@ -683,25 +572,26 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -683,25 +572,26 @@ class WorkState extends BaseState<WorkPage> {
centerListItem
(
String
key
,
String
showText
,
String
title
)
{
centerListItem
(
String
key
,
String
showText
,
String
title
)
{
return
Container
(
return
Container
(
margin:
EdgeInsets
.
all
(
5
),
margin:
EdgeInsets
.
all
(
5
),
color:
Color
s
.
lightBlue
,
color:
Color
.
fromARGB
(
255
,
236
,
236
,
236
)
,
width:
double
.
maxFinite
,
width:
double
.
maxFinite
,
height:
30
,
height:
30
,
child:
Stack
(
child:
Stack
(
alignment:
AlignmentDirectional
.
center
,
alignment:
AlignmentDirectional
.
center
,
children:
<
Widget
>[
children:
<
Widget
>[
Positioned
(
// Positioned(
right:
5
,
// right: 5,
top:
3
,
// top: 5,
child:
GestureDetector
(
// child: GestureDetector(
onTap:
()
{
// onTap: () {
_model
.
deleteSelectItem
(
context
,
key
,
title
);
// _model.deleteSelectItem(context, key, title);
},
// },
child:
Icon
(
// child: Icon(
Icons
.
delete
,
// Icons.delete,
color:
Colors
.
red
,
// color: Colors.red,
),
// size: 18,
)),
// ),
baseText
(
showText
,
16
,
Colors
.
white
)
// )),
baseText
(
showText
,
13
,
Colors
.
black
)
],
],
),
),
);
);
...
@@ -710,7 +600,7 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -710,7 +600,7 @@ class WorkState extends BaseState<WorkPage> {
Widget
centerTitle
(
BuildContext
context
)
{
Widget
centerTitle
(
BuildContext
context
)
{
return
Container
(
return
Container
(
width:
double
.
maxFinite
,
width:
double
.
maxFinite
,
height:
30
,
height:
26
,
padding:
EdgeInsets
.
only
(
top:
5
,
left:
5
),
padding:
EdgeInsets
.
only
(
top:
5
,
left:
5
),
alignment:
Alignment
.
centerLeft
,
alignment:
Alignment
.
centerLeft
,
child:
Row
(
child:
Row
(
...
@@ -749,7 +639,7 @@ class WorkState extends BaseState<WorkPage> {
...
@@ -749,7 +639,7 @@ class WorkState extends BaseState<WorkPage> {
height:
double
.
maxFinite
,
height:
double
.
maxFinite
,
width:
50
,
width:
50
,
margin:
EdgeInsets
.
only
(
right:
5
),
margin:
EdgeInsets
.
only
(
right:
5
),
child:
baseText
(
"保存"
,
1
5
,
Colors
.
white
),
child:
baseText
(
"保存"
,
1
3
,
Colors
.
white
),
),
),
)
)
],
],
...
...
lib/HomeModel/page/work/temp.dart
View file @
e2848217
...
@@ -266,6 +266,18 @@ const Map<String, String> EXPLAN = {
...
@@ -266,6 +266,18 @@ const Map<String, String> EXPLAN = {
"
Dense
": "
眉毛浓度
",
"
Dense
": "
眉毛浓度
",
"
brows_spacing
": "
两眉间距
",
"
brows_spacing
": "
两眉间距
",
"
face
": "
脸型
",
"
face
": "
脸型
",
"
heiyanquan_left
":"
左眼黑眼圈
",
"
wocan_left
":"
左眼卧蚕
",
"
yanwen_left
":"
左眼眼纹
",
"
yuweiwen_left
":"
左眼鱼尾纹
",
"
zhongyanpao_left
":"
左眼肿眼泡
",
"
leigou_left
":"
左眼泪沟
",
"
heiyanquan_right
":"
右眼黑眼圈
",
"
wocan_right
":"
右眼卧蚕
",
"
yanwen_right
":"
右眼眼纹
",
"
yuweiwen_right
":"
右眼鱼尾纹
",
"
zhongyanpao_right
":"
右眼肿眼泡
",
"
leigou_right
":"
右眼泪沟
",
};
};
const List<String> maskTabList = ["
左双眼皮
", "
右双眼皮
"];
const List<String> maskTabList = ["
左双眼皮
", "
右双眼皮
"];
...
...
lib/HomeModel/service/HomeRepo.dart
View file @
e2848217
...
@@ -11,11 +11,13 @@ import 'package:example_flutter/HomeModel/page/work/temp.dart';
...
@@ -11,11 +11,13 @@ import 'package:example_flutter/HomeModel/page/work/temp.dart';
import
'package:example_flutter/HomeModel/service/remote/api/HomeApi.serv.dart'
;
import
'package:example_flutter/HomeModel/service/remote/api/HomeApi.serv.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/AllTabBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/AllTabBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/DeleteResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/DeleteResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/DetectImgBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/ImageAiBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/ImageAiBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/ImageResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/ImageResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/MaskResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/MaskResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/PutImageDataBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/PutImageDataBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/TotalImageBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/TotalImageBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/UploadBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/UploadMyImageBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/UploadMyImageBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/UploadResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/UploadResultBean.dart'
;
import
'package:example_flutter/commonModel/GMBase.dart'
;
import
'package:example_flutter/commonModel/GMBase.dart'
;
...
@@ -28,13 +30,12 @@ ImageResultBean paseImageResult(String value) {
...
@@ -28,13 +30,12 @@ ImageResultBean paseImageResult(String value) {
}
}
class
HomeRepo
{
class
HomeRepo
{
Dio
mydio
;
Dio
mydio
;
static
HomeRepo
_repo
;
static
HomeRepo
_repo
;
HomeRepo
.
_
(){
HomeRepo
.
_
()
{
mydio
=
Dio
(
getw
());
mydio
=
Dio
(
getw
());
}
}
static
HomeRepo
getInstance
()
{
static
HomeRepo
getInstance
()
{
...
@@ -163,10 +164,13 @@ class HomeRepo {
...
@@ -163,10 +164,13 @@ class HomeRepo {
return
HomeApiImpl
().
getTotalImages
();
return
HomeApiImpl
().
getTotalImages
();
}
}
void
downloadMyImage
(
String
path
,
String
id
,
Function
()
ok
){
void
downloadMyImage
(
String
path
,
String
id
,
Function
()
ok
)
{
mydio
.
download
(
"api/downfile"
,
path
,
options:
Options
(
method:
"POST"
),
data:
FormData
.
from
(
{
"id"
:
id
})).
then
((
value
){
mydio
.
download
(
"api/downfile"
,
path
,
options:
Options
(
method:
"POST"
),
data:
FormData
.
from
({
"id"
:
id
}))
.
then
((
value
)
{
print
(
value
);
print
(
value
);
}).
whenComplete
((){
}).
whenComplete
(()
{
ok
();
ok
();
});
});
// Observable.fromFuture(dio
// Observable.fromFuture(dio
...
@@ -184,26 +188,23 @@ class HomeRepo {
...
@@ -184,26 +188,23 @@ class HomeRepo {
// });
// });
}
}
Observable
<
UploadMyImageBean
>
uploadMyImage
(
String
path
,
String
id
)
{
Observable
<
UploadMyImageBean
>
uploadMyImage
(
String
path
,
String
id
){
var
name
=
path
.
substring
(
path
.
lastIndexOf
(
"/"
)
+
1
,
path
.
length
);
var
name
=
path
.
substring
(
path
.
lastIndexOf
(
"/"
)
+
1
,
path
.
length
);
FormData
formData
=
new
FormData
.
from
({
FormData
formData
=
new
FormData
.
from
({
"file"
:
new
UploadFileInfo
(
new
File
(
path
),
name
),
"file"
:
new
UploadFileInfo
(
new
File
(
path
),
name
),
"id"
:
id
,
"id"
:
id
,
});
});
return
Observable
.
fromFuture
(
mydio
return
Observable
.
fromFuture
(
mydio
.
post
(
'api/fileUpload'
,
data:
formData
))
.
post
(
'api/fileUpload'
,
data:
formData
))
.
flatMap
((
value
)
{
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
return
Observable
.
fromFuture
(
compute
(
parseMyUpload
,
value
.
toString
()));
compute
(
parseMyUpload
,
value
.
toString
()));
}
else
{
}
else
{
return
Observable
.
fromFuture
(
null
);
return
Observable
.
fromFuture
(
null
);
}
}
});
});
}
}
BaseOptions
getw
()
{
BaseOptions
getw
()
{
BaseOptions
options
=
BaseOptions
();
BaseOptions
options
=
BaseOptions
();
options
.
connectTimeout
=
10
*
1000
;
options
.
connectTimeout
=
10
*
1000
;
...
@@ -219,7 +220,38 @@ class HomeRepo {
...
@@ -219,7 +220,38 @@ class HomeRepo {
return
options
;
return
options
;
}
}
// Observable<>
Observable
<
DetectImgBean
>
detectImg
(
int
id
)
{
return
Observable
.
fromFuture
(
DioUtil
().
getDio
().
put
(
"filtimage/
${id}
/"
))
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
compute
(
detectImgBean
,
value
.
toString
()));
}
else
{
return
Observable
.
fromFuture
(
null
);
}
});
}
Observable
<
UploadBean
>
uploadImg
(
String
path
)
{
return
Observable
.
fromFuture
(
DioUtil
.
getInstance
().
uploadFile
(
"image-upload/"
,
path
))
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
compute
(
parseUpload
,
value
.
toString
()));
}
else
{
return
Observable
.
fromFuture
(
null
);
}
});
}
}
UploadBean
parseUpload
(
String
value
)
{
return
UploadBean
.
fromJson
(
json
.
decode
(
value
));
}
DetectImgBean
detectImgBean
(
String
value
)
{
return
DetectImgBean
.
fromJson
(
json
.
decode
(
value
));
}
}
ImageAiBean
paseImageAi
(
String
value
)
{
ImageAiBean
paseImageAi
(
String
value
)
{
...
@@ -238,7 +270,6 @@ MaskResultBean parseMaskResult(String value) {
...
@@ -238,7 +270,6 @@ MaskResultBean parseMaskResult(String value) {
return
MaskResultBean
.
fromJson
(
json
.
decode
(
value
));
return
MaskResultBean
.
fromJson
(
json
.
decode
(
value
));
}
}
UploadMyImageBean
parseMyUpload
(
String
value
)
{
UploadMyImageBean
parseMyUpload
(
String
value
){
return
UploadMyImageBean
.
fromJson
(
json
.
decode
(
value
));
return
UploadMyImageBean
.
fromJson
(
json
.
decode
(
value
));
}
}
\ No newline at end of file
lib/HomeModel/service/remote/entity/AllTabBean.dart
View file @
e2848217
...
@@ -20,6 +20,18 @@ class AllTabBean {
...
@@ -20,6 +20,18 @@ class AllTabBean {
Lipscurved
lipscurved
;
Lipscurved
lipscurved
;
Speciallip
speciallip
;
Speciallip
speciallip
;
Face
face
;
Face
face
;
HeiyanquanLeft
heiyanquanLeft
;
WocanLeft
wocanLeft
;
YanwenLeft
yanwenLeft
;
YuweiwenLeft
yuweiwenLeft
;
ZhongyanpaoLeft
zhongyanpaoLeft
;
LeigouLeft
leigouLeft
;
HeiyanquanRight
heiyanquanRight
;
WocanRight
wocanRight
;
YanwenRight
yanwenRight
;
YuweiwenRight
yuweiwenRight
;
ZhongyanpaoRight
zhongyanpaoRight
;
LeigouRight
leigouRight
;
AllTabBean
(
AllTabBean
(
{
this
.
leftEye
,
{
this
.
leftEye
,
...
@@ -42,7 +54,19 @@ class AllTabBean {
...
@@ -42,7 +54,19 @@ class AllTabBean {
this
.
brow
,
this
.
brow
,
this
.
lipscurved
,
this
.
lipscurved
,
this
.
speciallip
,
this
.
speciallip
,
this
.
face
});
this
.
face
,
this
.
heiyanquanLeft
,
this
.
wocanLeft
,
this
.
yanwenLeft
,
this
.
yuweiwenLeft
,
this
.
zhongyanpaoLeft
,
this
.
leigouLeft
,
this
.
heiyanquanRight
,
this
.
wocanRight
,
this
.
yanwenRight
,
this
.
yuweiwenRight
,
this
.
zhongyanpaoRight
,
this
.
leigouRight
});
AllTabBean
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
AllTabBean
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
leftEye
=
json
[
'left_eye'
]
!=
null
leftEye
=
json
[
'left_eye'
]
!=
null
...
@@ -92,6 +116,42 @@ class AllTabBean {
...
@@ -92,6 +116,42 @@ class AllTabBean {
?
new
Speciallip
.
fromJson
(
json
[
'Speciallip'
])
?
new
Speciallip
.
fromJson
(
json
[
'Speciallip'
])
:
null
;
:
null
;
face
=
json
[
'face'
]
!=
null
?
new
Face
.
fromJson
(
json
[
'face'
])
:
null
;
face
=
json
[
'face'
]
!=
null
?
new
Face
.
fromJson
(
json
[
'face'
])
:
null
;
heiyanquanLeft
=
json
[
'heiyanquan_left'
]
!=
null
?
new
HeiyanquanLeft
.
fromJson
(
json
[
'heiyanquan_left'
])
:
null
;
wocanLeft
=
json
[
'wocan_left'
]
!=
null
?
new
WocanLeft
.
fromJson
(
json
[
'wocan_left'
])
:
null
;
yanwenLeft
=
json
[
'yanwen_left'
]
!=
null
?
new
YanwenLeft
.
fromJson
(
json
[
'yanwen_left'
])
:
null
;
yuweiwenLeft
=
json
[
'yuweiwen_left'
]
!=
null
?
new
YuweiwenLeft
.
fromJson
(
json
[
'yuweiwen_left'
])
:
null
;
zhongyanpaoLeft
=
json
[
'zhongyanpao_left'
]
!=
null
?
new
ZhongyanpaoLeft
.
fromJson
(
json
[
'zhongyanpao_left'
])
:
null
;
leigouLeft
=
json
[
'leigou_left'
]
!=
null
?
new
LeigouLeft
.
fromJson
(
json
[
'leigou_left'
])
:
null
;
heiyanquanRight
=
json
[
'heiyanquan_right'
]
!=
null
?
new
HeiyanquanRight
.
fromJson
(
json
[
'heiyanquan_right'
])
:
null
;
wocanRight
=
json
[
'wocan_right'
]
!=
null
?
new
WocanRight
.
fromJson
(
json
[
'wocan_right'
])
:
null
;
yanwenRight
=
json
[
'yanwen_right'
]
!=
null
?
new
YanwenRight
.
fromJson
(
json
[
'yanwen_right'
])
:
null
;
yuweiwenRight
=
json
[
'yuweiwen_right'
]
!=
null
?
new
YuweiwenRight
.
fromJson
(
json
[
'yuweiwen_right'
])
:
null
;
zhongyanpaoRight
=
json
[
'zhongyanpao_right'
]
!=
null
?
new
ZhongyanpaoRight
.
fromJson
(
json
[
'zhongyanpao_right'
])
:
null
;
leigouRight
=
json
[
'leigou_right'
]
!=
null
?
new
LeigouRight
.
fromJson
(
json
[
'leigou_right'
])
:
null
;
}
}
Map
<
String
,
dynamic
>
toJson
()
{
Map
<
String
,
dynamic
>
toJson
()
{
...
@@ -159,6 +219,42 @@ class AllTabBean {
...
@@ -159,6 +219,42 @@ class AllTabBean {
if
(
this
.
face
!=
null
)
{
if
(
this
.
face
!=
null
)
{
data
[
'face'
]
=
this
.
face
.
toJson
();
data
[
'face'
]
=
this
.
face
.
toJson
();
}
}
if
(
this
.
heiyanquanLeft
!=
null
)
{
data
[
'heiyanquan_left'
]
=
this
.
heiyanquanLeft
.
toJson
();
}
if
(
this
.
wocanLeft
!=
null
)
{
data
[
'wocan_left'
]
=
this
.
wocanLeft
.
toJson
();
}
if
(
this
.
yanwenLeft
!=
null
)
{
data
[
'yanwen_left'
]
=
this
.
yanwenLeft
.
toJson
();
}
if
(
this
.
yuweiwenLeft
!=
null
)
{
data
[
'yuweiwen_left'
]
=
this
.
yuweiwenLeft
.
toJson
();
}
if
(
this
.
zhongyanpaoLeft
!=
null
)
{
data
[
'zhongyanpao_left'
]
=
this
.
zhongyanpaoLeft
.
toJson
();
}
if
(
this
.
leigouLeft
!=
null
)
{
data
[
'leigou_left'
]
=
this
.
leigouLeft
.
toJson
();
}
if
(
this
.
heiyanquanRight
!=
null
)
{
data
[
'heiyanquan_right'
]
=
this
.
heiyanquanRight
.
toJson
();
}
if
(
this
.
wocanRight
!=
null
)
{
data
[
'wocan_right'
]
=
this
.
wocanRight
.
toJson
();
}
if
(
this
.
yanwenRight
!=
null
)
{
data
[
'yanwen_right'
]
=
this
.
yanwenRight
.
toJson
();
}
if
(
this
.
yuweiwenRight
!=
null
)
{
data
[
'yuweiwen_right'
]
=
this
.
yuweiwenRight
.
toJson
();
}
if
(
this
.
zhongyanpaoRight
!=
null
)
{
data
[
'zhongyanpao_right'
]
=
this
.
zhongyanpaoRight
.
toJson
();
}
if
(
this
.
leigouRight
!=
null
)
{
data
[
'leigou_right'
]
=
this
.
leigouRight
.
toJson
();
}
return
data
;
return
data
;
}
}
}
}
...
@@ -1146,4 +1242,278 @@ class FaceData {
...
@@ -1146,4 +1242,278 @@ class FaceData {
return
data
;
return
data
;
}
}
}
}
class
HeiyanquanLeft
{
String
name
;
EyebagData
heiyanquanLeftData
;
HeiyanquanLeft
({
this
.
name
,
this
.
heiyanquanLeftData
});
HeiyanquanLeft
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
heiyanquanLeftData
=
json
[
'heiyanquan_leftData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'heiyanquan_leftData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
heiyanquanLeftData
!=
null
)
{
data
[
'heiyanquan_leftData'
]
=
this
.
heiyanquanLeftData
.
toJson
();
}
return
data
;
}
}
class
WocanLeft
{
String
name
;
EyebagData
wocanLeftData
;
WocanLeft
({
this
.
name
,
this
.
wocanLeftData
});
WocanLeft
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
wocanLeftData
=
json
[
'wocan_leftData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'wocan_leftData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
wocanLeftData
!=
null
)
{
data
[
'wocan_leftData'
]
=
this
.
wocanLeftData
.
toJson
();
}
return
data
;
}
}
class
YanwenLeft
{
String
name
;
EyebagData
yanwenLeftData
;
YanwenLeft
({
this
.
name
,
this
.
yanwenLeftData
});
YanwenLeft
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
yanwenLeftData
=
json
[
'yanwen_leftData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'yanwen_leftData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
yanwenLeftData
!=
null
)
{
data
[
'yanwen_leftData'
]
=
this
.
yanwenLeftData
.
toJson
();
}
return
data
;
}
}
class
YuweiwenLeft
{
String
name
;
EyebagData
yuweiwenLeftData
;
YuweiwenLeft
({
this
.
name
,
this
.
yuweiwenLeftData
});
YuweiwenLeft
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
yuweiwenLeftData
=
json
[
'yuweiwen_leftData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'yuweiwen_leftData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
yuweiwenLeftData
!=
null
)
{
data
[
'yuweiwen_leftData'
]
=
this
.
yuweiwenLeftData
.
toJson
();
}
return
data
;
}
}
class
ZhongyanpaoLeft
{
String
name
;
EyebagData
zhongyanpaoLeftData
;
ZhongyanpaoLeft
({
this
.
name
,
this
.
zhongyanpaoLeftData
});
ZhongyanpaoLeft
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
zhongyanpaoLeftData
=
json
[
'zhongyanpao_leftData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'zhongyanpao_leftData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
zhongyanpaoLeftData
!=
null
)
{
data
[
'zhongyanpao_leftData'
]
=
this
.
zhongyanpaoLeftData
.
toJson
();
}
return
data
;
}
}
class
LeigouLeft
{
String
name
;
EyebagData
leigouLeftData
;
LeigouLeft
({
this
.
name
,
this
.
leigouLeftData
});
LeigouLeft
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
leigouLeftData
=
json
[
'leigou_leftData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'leigou_leftData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
leigouLeftData
!=
null
)
{
data
[
'leigou_leftData'
]
=
this
.
leigouLeftData
.
toJson
();
}
return
data
;
}
}
class
HeiyanquanRight
{
String
name
;
EyebagData
heiyanquanRightData
;
HeiyanquanRight
({
this
.
name
,
this
.
heiyanquanRightData
});
HeiyanquanRight
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
heiyanquanRightData
=
json
[
'heiyanquan_rightData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'heiyanquan_rightData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
heiyanquanRightData
!=
null
)
{
data
[
'heiyanquan_rightData'
]
=
this
.
heiyanquanRightData
.
toJson
();
}
return
data
;
}
}
class
WocanRight
{
String
name
;
EyebagData
wocanRightData
;
WocanRight
({
this
.
name
,
this
.
wocanRightData
});
WocanRight
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
wocanRightData
=
json
[
'wocan_rightData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'wocan_rightData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
wocanRightData
!=
null
)
{
data
[
'wocan_rightData'
]
=
this
.
wocanRightData
.
toJson
();
}
return
data
;
}
}
class
YanwenRight
{
String
name
;
EyebagData
yanwenRightData
;
YanwenRight
({
this
.
name
,
this
.
yanwenRightData
});
YanwenRight
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
yanwenRightData
=
json
[
'yanwen_rightData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'yanwen_rightData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
yanwenRightData
!=
null
)
{
data
[
'yanwen_rightData'
]
=
this
.
yanwenRightData
.
toJson
();
}
return
data
;
}
}
class
YuweiwenRight
{
String
name
;
EyebagData
yuweiwenRightData
;
YuweiwenRight
({
this
.
name
,
this
.
yuweiwenRightData
});
YuweiwenRight
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
yuweiwenRightData
=
json
[
'yuweiwen_rightData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'yuweiwen_rightData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
yuweiwenRightData
!=
null
)
{
data
[
'yuweiwen_rightData'
]
=
this
.
yuweiwenRightData
.
toJson
();
}
return
data
;
}
}
class
ZhongyanpaoRight
{
String
name
;
EyebagData
zhongyanpaoRightData
;
ZhongyanpaoRight
({
this
.
name
,
this
.
zhongyanpaoRightData
});
ZhongyanpaoRight
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
zhongyanpaoRightData
=
json
[
'zhongyanpao_rightData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'zhongyanpao_rightData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
zhongyanpaoRightData
!=
null
)
{
data
[
'zhongyanpao_rightData'
]
=
this
.
zhongyanpaoRightData
.
toJson
();
}
return
data
;
}
}
class
LeigouRight
{
String
name
;
EyebagData
leigouRightData
;
LeigouRight
({
this
.
name
,
this
.
leigouRightData
});
LeigouRight
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
name
=
json
[
'name'
];
leigouRightData
=
json
[
'leigou_rightData'
]
!=
null
?
new
EyebagData
.
fromJson
(
json
[
'leigou_rightData'
])
:
null
;
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'name'
]
=
this
.
name
;
if
(
this
.
leigouRightData
!=
null
)
{
data
[
'leigou_rightData'
]
=
this
.
leigouRightData
.
toJson
();
}
return
data
;
}
}
lib/HomeModel/service/remote/entity/DetectImgBean.dart
0 → 100644
View file @
e2848217
/*
* @author lsy
* @date 2019-12-06
**/
class
DetectImgBean
{
bool
isEffective
;
String
msg
;
DetectImgBean
({
this
.
isEffective
,
this
.
msg
});
DetectImgBean
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
isEffective
=
json
[
'is_effective'
];
msg
=
json
[
'msg'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'is_effective'
]
=
this
.
isEffective
;
data
[
'msg'
]
=
this
.
msg
;
return
data
;
}
}
lib/HomeModel/service/remote/entity/ImageAiBean.dart
View file @
e2848217
...
@@ -46,6 +46,19 @@ class Anno {
...
@@ -46,6 +46,19 @@ class Anno {
String
lipShape
;
String
lipShape
;
String
lipPeak
;
String
lipPeak
;
String
heiyanquanLeft
;
String
wocanLeft
;
String
yanwenLeft
;
String
yuweiwenLeft
;
String
zhongyanpaoLeft
;
String
leigouLeft
;
String
heiyanquanRight
;
String
wocanRight
;
String
yanwenRight
;
String
yuweiwenRight
;
String
zhongyanpaoRight
;
String
leigouRight
;
Anno
(
Anno
(
{
this
.
browShape
,
{
this
.
browShape
,
this
.
browsStyle
,
this
.
browsStyle
,
...
@@ -67,7 +80,19 @@ class Anno {
...
@@ -67,7 +80,19 @@ class Anno {
this
.
lipThickness
,
this
.
lipThickness
,
this
.
lipRadian
,
this
.
lipRadian
,
this
.
lipShape
,
this
.
lipShape
,
this
.
lipPeak
});
this
.
lipPeak
,
this
.
heiyanquanLeft
,
this
.
wocanLeft
,
this
.
yanwenLeft
,
this
.
yuweiwenLeft
,
this
.
zhongyanpaoLeft
,
this
.
leigouLeft
,
this
.
heiyanquanRight
,
this
.
wocanRight
,
this
.
yanwenRight
,
this
.
yuweiwenRight
,
this
.
zhongyanpaoRight
,
this
.
leigouRight
});
Anno
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
Anno
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
browShape
=
json
[
'brow_shape'
];
browShape
=
json
[
'brow_shape'
];
...
@@ -91,6 +116,18 @@ class Anno {
...
@@ -91,6 +116,18 @@ class Anno {
lipRadian
=
json
[
'lip_radian'
];
lipRadian
=
json
[
'lip_radian'
];
lipShape
=
json
[
'lip_shape'
];
lipShape
=
json
[
'lip_shape'
];
lipPeak
=
json
[
'lip_peak'
];
lipPeak
=
json
[
'lip_peak'
];
heiyanquanLeft
=
json
[
'heiyanquan_left'
];
wocanLeft
=
json
[
'wocan_left'
];
yanwenLeft
=
json
[
'yanwen_left'
];
yuweiwenLeft
=
json
[
'yuweiwen_left'
];
zhongyanpaoLeft
=
json
[
'zhongyanpao_left'
];
leigouLeft
=
json
[
'leigou_left'
];
heiyanquanRight
=
json
[
'heiyanquan_right'
];
wocanRight
=
json
[
'wocan_right'
];
yanwenRight
=
json
[
'yanwen_right'
];
yuweiwenRight
=
json
[
'yuweiwen_right'
];
zhongyanpaoRight
=
json
[
'zhongyanpao_right'
];
leigouRight
=
json
[
'leigou_right'
];
}
}
Map
<
String
,
dynamic
>
toJson
()
{
Map
<
String
,
dynamic
>
toJson
()
{
...
@@ -116,6 +153,18 @@ class Anno {
...
@@ -116,6 +153,18 @@ class Anno {
data
[
'lip_radian'
]
=
this
.
lipRadian
;
data
[
'lip_radian'
]
=
this
.
lipRadian
;
data
[
'lip_shape'
]
=
this
.
lipShape
;
data
[
'lip_shape'
]
=
this
.
lipShape
;
data
[
'lip_peak'
]
=
this
.
lipPeak
;
data
[
'lip_peak'
]
=
this
.
lipPeak
;
data
[
'heiyanquan_left'
]
=
this
.
heiyanquanLeft
;
data
[
'wocan_left'
]
=
this
.
wocanLeft
;
data
[
'yanwen_left'
]
=
this
.
yanwenLeft
;
data
[
'yuweiwen_left'
]
=
this
.
yuweiwenLeft
;
data
[
'zhongyanpao_left'
]
=
this
.
zhongyanpaoLeft
;
data
[
'leigou_left'
]
=
this
.
leigouLeft
;
data
[
'heiyanquan_right'
]
=
this
.
heiyanquanRight
;
data
[
'wocan_right'
]
=
this
.
wocanRight
;
data
[
'yanwen_right'
]
=
this
.
yanwenRight
;
data
[
'yuweiwen_right'
]
=
this
.
yuweiwenRight
;
data
[
'zhongyanpao_right'
]
=
this
.
zhongyanpaoRight
;
data
[
'leigou_right'
]
=
this
.
leigouRight
;
return
data
;
return
data
;
}
}
}
}
...
...
lib/HomeModel/service/remote/entity/UploadBean.dart
0 → 100644
View file @
e2848217
/*
* @author lsy
* @date 2019-12-06
**/
class
UploadBean
{
String
url
;
int
id
;
UploadBean
({
this
.
url
,
this
.
id
});
UploadBean
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
url
=
json
[
'url'
];
id
=
json
[
'id'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'url'
]
=
this
.
url
;
data
[
'id'
]
=
this
.
id
;
return
data
;
}
}
lib/HomePage.dart
View file @
e2848217
...
@@ -13,6 +13,7 @@ import 'package:flutter_svg/svg.dart';
...
@@ -13,6 +13,7 @@ import 'package:flutter_svg/svg.dart';
import
'HomeModel.dart'
;
import
'HomeModel.dart'
;
import
'commonModel/GMBase.dart'
;
import
'commonModel/GMBase.dart'
;
import
'commonModel/eventbus/event/ChangeTabBean.dart'
;
import
'commonModel/eventbus/event/ChangeTabBean.dart'
;
import
'commonModel/eventbus/event/LogoutEvent.dart'
;
import
'main.dart'
;
import
'main.dart'
;
class
HomePage
extends
StatefulWidget
{
class
HomePage
extends
StatefulWidget
{
...
@@ -26,7 +27,8 @@ class HomePage extends StatefulWidget {
...
@@ -26,7 +27,8 @@ class HomePage extends StatefulWidget {
State
<
StatefulWidget
>
createState
()
=>
HomeState
(
_model
);
State
<
StatefulWidget
>
createState
()
=>
HomeState
(
_model
);
}
}
class
HomeState
extends
BaseState
<
HomePage
>
{
class
HomeState
extends
State
<
HomePage
>
{
StreamSubscription
<
LogoutEvent
>
busEvent
;
StreamSubscription
<
ChangeTabBean
>
changeTabEvent
;
StreamSubscription
<
ChangeTabBean
>
changeTabEvent
;
HomeModel
_model
;
HomeModel
_model
;
...
@@ -39,6 +41,9 @@ class HomeState extends BaseState<HomePage> {
...
@@ -39,6 +41,9 @@ class HomeState extends BaseState<HomePage> {
_model
.
currentIndex
=
event
.
index
;
_model
.
currentIndex
=
event
.
index
;
_model
.
onTap
(
event
.
index
);
_model
.
onTap
(
event
.
index
);
});
});
busEvent
=
eventBus
.
on
<
LogoutEvent
>().
listen
((
event
)
{
Navigator
.
pop
(
context
);
});
super
.
initState
();
super
.
initState
();
_model
.
init
();
_model
.
init
();
}
}
...
@@ -138,6 +143,7 @@ class HomeState extends BaseState<HomePage> {
...
@@ -138,6 +143,7 @@ class HomeState extends BaseState<HomePage> {
@override
@override
void
dispose
()
{
void
dispose
()
{
busEvent
.
cancel
();
changeTabEvent
.
cancel
();
changeTabEvent
.
cancel
();
_model
.
dispose
();
_model
.
dispose
();
super
.
dispose
();
super
.
dispose
();
...
...
lib/UserModel/page/usermanager/Persionset.dart
View file @
e2848217
...
@@ -13,7 +13,7 @@ class Persionset extends StatefulWidget {
...
@@ -13,7 +13,7 @@ class Persionset extends StatefulWidget {
State
<
StatefulWidget
>
createState
()
=>
PersionsetState
();
State
<
StatefulWidget
>
createState
()
=>
PersionsetState
();
}
}
class
PersionsetState
extends
Base
State
<
Persionset
>
{
class
PersionsetState
extends
State
<
Persionset
>
{
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
return
Scaffold
(
...
...
lib/commonModel/base/BaseState.dart
View file @
e2848217
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
**/
**/
import
'dart:async'
;
import
'dart:async'
;
import
'package:example_flutter/commonModel/eventbus/event/ChangeTabBean.dart'
;
import
'package:example_flutter/commonModel/eventbus/event/LogoutEvent.dart'
;
import
'package:example_flutter/commonModel/eventbus/event/LogoutEvent.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
...
@@ -12,18 +13,23 @@ import '../../main.dart';
...
@@ -12,18 +13,23 @@ import '../../main.dart';
abstract
class
BaseState
<
T
extends
StatefulWidget
>
extends
State
<
T
>{
abstract
class
BaseState
<
T
extends
StatefulWidget
>
extends
State
<
T
>{
StreamSubscription
<
LogoutEvent
>
busEvent
;
StreamSubscription
<
LogoutEvent
>
busEvent
;
StreamSubscription
<
ChangeTabBean
>
changState
;
@override
@override
void
initState
()
{
void
initState
()
{
busEvent
=
eventBus
.
on
<
LogoutEvent
>().
listen
((
event
)
{
busEvent
=
eventBus
.
on
<
LogoutEvent
>().
listen
((
event
)
{
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
});
});
changState
=
eventBus
.
on
<
ChangeTabBean
>().
listen
((
event
){
Navigator
.
pop
(
context
);
});
super
.
initState
();
super
.
initState
();
}
}
@override
@override
void
dispose
()
{
void
dispose
()
{
busEvent
.
cancel
();
busEvent
.
cancel
();
changState
.
cancel
();
super
.
dispose
();
super
.
dispose
();
}
}
...
...
lib/commonModel/picker/base/BaseCenterPicker.dart
View file @
e2848217
...
@@ -44,7 +44,7 @@ class BaseCenterPickerState extends State<BaseCenterPicker> {
...
@@ -44,7 +44,7 @@ class BaseCenterPickerState extends State<BaseCenterPicker> {
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
// ScreenUtil.instance = ScreenUtil(width: 375, height: 667)..init(context);
// ScreenUtil.instance = ScreenUtil(width: 375, height: 667)..init(context);
return
Container
(
return
Container
(
color:
Colors
.
black
12
,
color:
Colors
.
black
38
,
width:
double
.
maxFinite
,
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
Stack
(
child:
Stack
(
...
...
lib/commonModel/picker/base/BasePickerComponent.dart
View file @
e2848217
...
@@ -20,19 +20,20 @@ class BaseLoadingItem implements ICenterPicker {
...
@@ -20,19 +20,20 @@ class BaseLoadingItem implements ICenterPicker {
height:
120.0
,
height:
120.0
,
child:
new
Container
(
child:
new
Container
(
///弹框背景和圆角
///弹框背景和圆角
decoration:
ShapeDecoration
(
decoration:
BoxDecoration
(
color:
Colors
.
greenAccent
,
// color: Colors.orange,
shape:
RoundedRectangleBorder
(
color:
Colors
.
purple
,
borderRadius:
BorderRadius
.
all
(
gradient:
LinearGradient
(
colors:
[
Radius
.
circular
(
8.0
),
Color
.
fromARGB
(
255
,
253
,
113
,
34
),
),
Color
.
fromARGB
(
255
,
253
,
166
,
41
)
),
],
begin:
Alignment
.
centerRight
,
end:
Alignment
.
centerLeft
),
borderRadius:
BorderRadius
.
circular
(
8
),
),
),
child:
new
Column
(
child:
new
Column
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
<
Widget
>[
children:
<
Widget
>[
new
YYWa
ve
(),
new
YYWa
nderingCubes
(),
new
Padding
(
new
Padding
(
padding:
const
EdgeInsets
.
only
(
padding:
const
EdgeInsets
.
only
(
top:
20.0
,
top:
20.0
,
...
...
lib/res/value/ALColors.dart
View file @
e2848217
...
@@ -27,6 +27,5 @@ class ALColors {
...
@@ -27,6 +27,5 @@ class ALColors {
static
const
Color
Color0093FF
=
Color
(
0xFF0093FF
);
static
const
Color
Color0093FF
=
Color
(
0xFF0093FF
);
static
const
Color
Color666666
=
Color
(
0xFF666666
);
static
const
Color
Color666666
=
Color
(
0xFF666666
);
static
const
Color
Color33000000
=
Color
(
0x33000000
);
static
const
Color
Color33000000
=
Color
(
0x33000000
);
static
const
Color
ColorTitle
=
Color
.
fromARGB
(
255
,
236
,
236
,
236
);
}
}
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