对接开门码

hmxc
张萌 3 years ago
parent 778aa6da81
commit 34e51ee797

@ -272,6 +272,10 @@ class _Manager {
///app
String get applyCompleteRenovation =>
'/user/userDecorationNew/applicationCompletion';
///app
String get getDoorQrCode => '/user/doorQRCode/getQrCode';
}
class _Community {

@ -1,5 +1,6 @@
// import 'package:aku_community/widget/bee_scaffold.dart';
import 'package:aku_community/pages/opening_code_page/opening_code_page.dart';
import 'package:aku_community/pages/renovation_manage/new_renovation/new_renovation_page.dart';
import 'package:flutter/material.dart';
@ -65,7 +66,7 @@ class AO {
List<AO> appObjects = [
// if (false) AO('一键开门', R.ASSETS_APPLICATIONS_OEPN_DOOR_PNG, () => Scaffold()),
// AO('开门码', R.ASSETS_APPLICATIONS_DOOR_CODE_PNG, () => OpeningCodePage()),
AO('开门码', R.ASSETS_APPLICATIONS_DOOR_CODE_PNG, () => OpeningCodePage()),
AO('访客邀请', R.ASSETS_APPLICATIONS_VISITOR_INVITE_PNG,
() => VisitorAccessPage()),
AO('报事报修', R.ASSETS_APPLICATIONS_FIX_PNG, () => FixedSubmitPage()),
@ -148,7 +149,7 @@ List<AO> get recommendApp => _recommendApp.map((e) => AO.fromRaw(e)).toList();
/// original value
List<String> _smartManagerApp = [
// if (false) '一键开门',
// '开门码',
'开门码',
'访客邀请',
'报事报修',
'生活缴费',

@ -1,5 +1,13 @@
import 'dart:async';
import 'package:aku_community/constants/api.dart';
import 'package:aku_community/utils/network/base_model.dart';
import 'package:aku_community/utils/network/net_util.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flustars/flustars.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:qr_flutter/qr_flutter.dart';
@ -15,92 +23,153 @@ class OpeningCodePage extends StatefulWidget {
}
class _OpeningCodePageState extends State<OpeningCodePage> {
bool _onload = true;
late String _qrCode;
late bool _overDate;
late EasyRefreshController _refreshController;
Timer? _overDateTimer;
@override
void initState() {
super.initState();
_refreshController = EasyRefreshController();
}
@override
void dispose() {
_refreshController.dispose();
super.dispose();
}
Future getQrcode() async {
DateTime _currentTime = DateTime.now();
BaseModel baseModel =
await NetUtil().get(API.manager.getDoorQrCode, params: {
"startTime":
DateUtil.formatDate(_currentTime, format: 'yyyy/MM/dd HH:mm:ss'),
"endTime": DateUtil.formatDate(_currentTime.add(Duration(minutes: 30)),
format: 'yyyy/MM/dd HH:mm:ss'),
});
if ((baseModel.status ?? false) && baseModel.data != null) {
_qrCode = baseModel.data;
_onload = false;
_overDate = false;
endTimer();
startTimer();
setState(() {});
} else {
BotToast.showText(text: '网络请求错误');
}
}
startTimer() {
_overDateTimer = Timer.periodic(Duration(minutes: 1), (timer) {
if (timer.tick >= 5) {
_overDate = true;
endTimer();
setState(() {});
}
});
}
endTimer() {
_overDateTimer?.cancel();
_overDateTimer = null;
}
@override
Widget build(BuildContext context) {
return BeeScaffold(
bgColor: Colors.white,
title: '开门码',
body: Container(
color: Color(0xfff9f9f9),
child: ListView(
children: [
Container(
margin: EdgeInsets.only(
top: 70.w,
left: 32.w,
right: 32.w,
bottom: 76.w,
),
padding: EdgeInsets.symmetric(
horizontal: 20.w,
vertical: 32.w,
),
decoration: BoxDecoration(
color: Color(0xffffffff),
borderRadius: BorderRadius.all(Radius.circular(8.w)),
),
height: 746.w,
width: 686.w,
child: Column(
body: EasyRefresh(
firstRefresh: true,
header: MaterialHeader(),
onRefresh: () async {
await getQrcode();
},
child: _onload
? Container()
: ListView(
children: [
Container(
margin: EdgeInsets.only(
top: 44.w,
bottom: 32.w,
),
height: 460.w,
width: 460.w,
child: QrImage(
padding: EdgeInsets.zero,
data: '智慧社区开门码',
size: 460.w,
top: 70.w,
left: 32.w,
right: 32.w,
bottom: 76.w,
),
),
Container(
padding: EdgeInsets.symmetric(
horizontal: 29.w,
vertical: 33.w,
horizontal: 20.w,
vertical: 32.w,
),
decoration: BoxDecoration(
color: Color(0xfffffbf6),
color: Color(0xffffffff),
borderRadius: BorderRadius.all(Radius.circular(8.w)),
),
width: 646.w,
height: 146.w,
child: Text(
'扫一扫,你的专属二维码,人人文明出行,路路畅通安宁,智慧社区祝您一路顺风',
maxLines: 2,
style: TextStyle(
fontSize: 28.sp,
color: Color(0xff666666),
),
height: 746.w,
width: 686.w,
child: Column(
children: [
Container(
margin: EdgeInsets.only(
top: 44.w,
bottom: 32.w,
),
height: 460.w,
width: 460.w,
child: QrImage(
padding: EdgeInsets.zero,
data: _qrCode,
size: 460.w,
),
),
Container(
padding: EdgeInsets.symmetric(
horizontal: 29.w,
vertical: 33.w,
),
decoration: BoxDecoration(
color: Color(0xfffffbf6),
borderRadius:
BorderRadius.all(Radius.circular(8.w)),
),
width: 646.w,
height: 146.w,
child: Text(
'扫一扫,你的专属二维码,人人文明出行,路路畅通安宁,智慧社区祝您一路顺风',
maxLines: 2,
style: TextStyle(
fontSize: 28.sp,
color: Color(0xff666666),
),
),
),
],
),
),
],
),
),
Container(
alignment: Alignment.center,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
AntDesign.checkcircleo,
color: Color(0xffffc40c),
size: 32.sp,
),
SizedBox(width: 19.w),
Text(
'已刷新',
style: TextStyle(
fontSize: 32.sp,
color: Color(0xff999999),
Container(
alignment: Alignment.center,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
AntDesign.checkcircleo,
color: Color(0xffffc40c),
size: 32.sp,
),
SizedBox(width: 19.w),
Text(
_overDate ? '已过期' : '已刷新',
style: TextStyle(
fontSize: 32.sp,
color: Color(0xff999999),
),
),
],
),
),
],
),
),
],
),
),
);
}

Loading…
Cancel
Save