After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 785 B |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 638 B |
After Width: | Height: | Size: 575 B |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 818 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 848 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 754 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 968 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 7.0 KiB |
@ -0,0 +1,32 @@
|
|||||||
|
import 'package:aku_community/model/common/img_model.dart';
|
||||||
|
|
||||||
|
class SwiperModel {
|
||||||
|
int? newsId;
|
||||||
|
String? title;
|
||||||
|
List<ImgModel>? voResourcesImgList;
|
||||||
|
|
||||||
|
SwiperModel({this.newsId, this.title, this.voResourcesImgList});
|
||||||
|
|
||||||
|
SwiperModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
newsId = json['newsId'];
|
||||||
|
title = json['title'];
|
||||||
|
if (json['voResourcesImgList'] != null) {
|
||||||
|
voResourcesImgList = [];
|
||||||
|
json['voResourcesImgList'].forEach((v) {
|
||||||
|
voResourcesImgList!.add(new ImgModel.fromJson(v));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
voResourcesImgList = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['newsId'] = this.newsId;
|
||||||
|
data['title'] = this.title;
|
||||||
|
if (this.voResourcesImgList != null) {
|
||||||
|
data['voResourcesImgList'] = this.voResourcesImgList!.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,75 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:velocity_x/velocity_x.dart';
|
||||||
|
|
||||||
|
import 'package:aku_community/base/base_style.dart';
|
||||||
|
import 'package:aku_community/const/resource.dart';
|
||||||
|
import 'package:aku_community/pages/tab_navigator.dart';
|
||||||
|
import 'package:aku_community/widget/bee_scaffold.dart';
|
||||||
|
|
||||||
|
class BorrowExaminePage extends StatefulWidget {
|
||||||
|
|
||||||
|
BorrowExaminePage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_BorrowExaminePageState createState() => _BorrowExaminePageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _BorrowExaminePageState extends State<BorrowExaminePage> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return BeeScaffold(
|
||||||
|
title: '出借结果',
|
||||||
|
body: Center(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
75.w.heightBox,
|
||||||
|
SizedBox(
|
||||||
|
width: 110.w,
|
||||||
|
height: 110.w,
|
||||||
|
child: Image.asset(R.ASSETS_ICONS_EXAMINE_PNG
|
||||||
|
),
|
||||||
|
),
|
||||||
|
48.w.heightBox,
|
||||||
|
'正在审核中'
|
||||||
|
.text
|
||||||
|
.color(ktextPrimary)
|
||||||
|
.size(36.sp)
|
||||||
|
.bold
|
||||||
|
.make(),
|
||||||
|
16.w.heightBox,
|
||||||
|
'使用后请记得归还'
|
||||||
|
.text
|
||||||
|
.color(ktextSubColor)
|
||||||
|
.size(26.sp)
|
||||||
|
.make(),
|
||||||
|
95.w.heightBox,
|
||||||
|
MaterialButton(
|
||||||
|
color: kPrimaryColor,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(8.w)),
|
||||||
|
elevation: 0,
|
||||||
|
hoverElevation: 0,
|
||||||
|
highlightElevation: 0,
|
||||||
|
focusElevation: 0,
|
||||||
|
disabledElevation: 0,
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 24.w),
|
||||||
|
minWidth: double.infinity,
|
||||||
|
onPressed: () {
|
||||||
|
Get.back();},
|
||||||
|
child: '返回物品借还列表'
|
||||||
|
.text
|
||||||
|
.color( ktextPrimary )
|
||||||
|
.size(36.sp)
|
||||||
|
.make(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
).pSymmetric(
|
||||||
|
h: 24.w,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
import 'package:aku_community/extensions/num_ext.dart';
|
||||||
|
import 'package:aku_community/pages/tab_navigator.dart';
|
||||||
|
import 'package:aku_community/utils/developer_util.dart';
|
||||||
|
|
||||||
|
class TipsDialog {
|
||||||
|
static tipsDialog() async {
|
||||||
|
await Get.dialog(
|
||||||
|
CupertinoAlertDialog(
|
||||||
|
title: Text('功能提醒'),
|
||||||
|
content: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
20.hb,
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Text('请各位住户注意:'
|
||||||
|
,style: TextStyle(color: Color(0xA6000000),fontSize: 26.sp),),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
20.hb,
|
||||||
|
|
||||||
|
Text('本功能已实现,但当前小区不具备能够使用该功能使用的条件,页面内容仅供参考。'
|
||||||
|
,style: TextStyle(color: Color(0xA6000000),fontSize: 26.sp),textAlign: TextAlign.start,),
|
||||||
|
|
||||||
|
20.hb,
|
||||||
|
|
||||||
|
],
|
||||||
|
),
|
||||||
|
actions: [
|
||||||
|
CupertinoDialogAction(
|
||||||
|
child: Text('确定'),
|
||||||
|
textStyle: TextStyle(color: Color(0xFF007AFF),fontSize: 28.sp),
|
||||||
|
onPressed: () => Get.back(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
barrierDismissible: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,139 @@
|
|||||||
|
|
||||||
|
import 'package:aku_community/pages/opening_code_page/opening_code_page.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
|
||||||
|
|
||||||
|
import 'package:aku_community/const/resource.dart';
|
||||||
|
|
||||||
|
import 'package:aku_community/utils/headers.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class OverlayLivingBtnWidget extends StatefulWidget {
|
||||||
|
|
||||||
|
|
||||||
|
OverlayLivingBtnWidget({Key? key, }) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_OverlayLivingBtnWidgetState createState() => _OverlayLivingBtnWidgetState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _OverlayLivingBtnWidgetState extends State<OverlayLivingBtnWidget> with TickerProviderStateMixin{
|
||||||
|
double _topPos = 0;
|
||||||
|
double _leftPos = 0;
|
||||||
|
bool _isMoving = false;
|
||||||
|
double _width = 65;
|
||||||
|
double get _subWidth => _width / 2;
|
||||||
|
double _height = 65;
|
||||||
|
double get _subHeight => _height / 2;
|
||||||
|
bool _isHide = false;
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
_topPos = ScreenUtil().screenHeight - 20 - _height -50;
|
||||||
|
_leftPos = _leftPos = ScreenUtil().screenWidth-20 - _width;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AnimatedPositioned(
|
||||||
|
left: _isHide ? -_width : _leftPos,
|
||||||
|
top: _topPos,
|
||||||
|
child: Container(
|
||||||
|
|
||||||
|
child: Stack(
|
||||||
|
children: [
|
||||||
|
Positioned(
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
top: 0,
|
||||||
|
bottom: 0,
|
||||||
|
child: Container(
|
||||||
|
width: 65.w,
|
||||||
|
height: 65.w,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
image: DecorationImage(
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
image:
|
||||||
|
AssetImage(R.ASSETS_ICONS_ICON_MAIN_OPEN_PNG),)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
),
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
Get.to(OpeningCodePage());
|
||||||
|
|
||||||
|
},
|
||||||
|
onPanUpdate: (detail) {
|
||||||
|
setState(() {
|
||||||
|
_topPos = detail.globalPosition.dy - _subHeight;
|
||||||
|
_leftPos = detail.globalPosition.dx - _subWidth;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onPanStart: (detail) {
|
||||||
|
setState(() {
|
||||||
|
_isMoving = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onPanEnd: (detail) {
|
||||||
|
_isMoving = false;
|
||||||
|
if (_leftPos < 20) _leftPos = 20;
|
||||||
|
if (_topPos < ScreenUtil().statusBarHeight + 20)
|
||||||
|
_topPos = (20 + ScreenUtil().statusBarHeight);
|
||||||
|
if ((_leftPos + _width + 20) > ScreenUtil().screenWidth)
|
||||||
|
_leftPos = ScreenUtil().screenWidth - 20 - _width;
|
||||||
|
if ((_topPos + _height + 55 + 20) > ScreenUtil().screenHeight)
|
||||||
|
_topPos = ScreenUtil().screenHeight- 20 - _height - 55;
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
height: _height,
|
||||||
|
width: _width,
|
||||||
|
color: Colors.transparent,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Positioned(
|
||||||
|
// right: 5,
|
||||||
|
// top: 5,
|
||||||
|
// child: GestureDetector(
|
||||||
|
// onTap: () {
|
||||||
|
// setState(() {
|
||||||
|
// _isHide = true;
|
||||||
|
// });
|
||||||
|
// },
|
||||||
|
// child: Container(
|
||||||
|
// height: 20,
|
||||||
|
// width: 20,
|
||||||
|
// child: Icon(
|
||||||
|
// Icons.clear,
|
||||||
|
// size: 16,
|
||||||
|
// color: Colors.black,
|
||||||
|
// ),
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// color: Colors.white.withOpacity(0.3),
|
||||||
|
// borderRadius: BorderRadius.circular(10),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
curve: Curves.easeInOutCubic,
|
||||||
|
duration: _isMoving ? Duration.zero : Duration(milliseconds: 300),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class RectIndicator extends StatelessWidget {
|
||||||
|
final int position;
|
||||||
|
final int count;
|
||||||
|
final Color color;
|
||||||
|
final Color activeColor;
|
||||||
|
final double width;
|
||||||
|
final double activeWidth;
|
||||||
|
final double height;
|
||||||
|
final double radius;
|
||||||
|
|
||||||
|
RectIndicator({
|
||||||
|
Key? key,
|
||||||
|
this.width: 50.0,
|
||||||
|
this.activeWidth: 50.0,
|
||||||
|
this.height: 4,
|
||||||
|
required this.position,
|
||||||
|
required this.count,
|
||||||
|
this.color: Colors.white,
|
||||||
|
required this.radius,
|
||||||
|
this.activeColor: const Color(0xFF3E4750),
|
||||||
|
}) : assert(count != null && position != null),
|
||||||
|
super(key: key);
|
||||||
|
|
||||||
|
_indicator(bool isActive) {
|
||||||
|
return AnimatedContainer(
|
||||||
|
margin: EdgeInsets.symmetric(horizontal: 3.0), //指示器间距
|
||||||
|
height: height,
|
||||||
|
width: isActive ? activeWidth : width,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: isActive ? color : activeColor,
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: Colors.black12,
|
||||||
|
offset: Offset(0.0, 2.0),
|
||||||
|
blurRadius: 0.0)
|
||||||
|
],
|
||||||
|
borderRadius: BorderRadius.circular(radius )),
|
||||||
|
duration: Duration(milliseconds: 150),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildPageIndicators() {
|
||||||
|
List<Widget> indicatorList = [];
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
indicatorList.add(i == position ? _indicator(true) : _indicator(false));
|
||||||
|
}
|
||||||
|
return indicatorList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: _buildPageIndicators(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|