访客记录接口更新

hmxc
章文轩 4 years ago
parent f041aa56f5
commit bdd007266c

@ -126,7 +126,10 @@ class _Manager {
String get shareInvite => '/user/visitorInvite/share'; String get shareInvite => '/user/visitorInvite/share';
///访访 ///访访
String get visitorAccessList => '/user/visitorAccess/list'; String get visitorAccessList => '/user/visitorInvite/list';
///访访
String get getInviteCode => '/user/doorQRCode/getVisitorsQrCode';
/// ///
String get articleOut => '/user/articleOut/list'; String get articleOut => '/user/articleOut/list';

@ -0,0 +1,21 @@
class visitorQRCodeModel {
String? data;
String? message;
bool? status;
visitorQRCodeModel({this.data, this.message, this.status});
visitorQRCodeModel.fromJson(Map<String, dynamic> json) {
data = json['data'];
message = json['message'];
status = json['status'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['data'] = this.data;
data['message'] = this.message;
data['status'] = this.status;
return data;
}
}

@ -2,44 +2,65 @@ import 'package:flustars/flustars.dart';
class VisitorListItemModel { class VisitorListItemModel {
int? id; int? id;
int? accessCode; int? estateId;
int? visitorStatus; String? roomName;
String? name; String? name;
int? isDrive; String? tel;
String? carNum; int? sex;
String? effectiveTime; String? carNumber;
String? visitDateStart;
String? visitDateEnd;
int? status;
int? createId;
String? createDate;
DateTime? get date => DateUtil.getDateTime(effectiveTime!); DateTime? get date => DateUtil.getDateTime(createDate ?? '');
bool get drive => isDrive == 1;
bool get drive => carNumber != null;
VisitorListItemModel( VisitorListItemModel(
{this.id, {this.id,
this.accessCode, this.estateId,
this.visitorStatus, this.roomName,
this.name, this.name,
this.isDrive, this.tel,
this.carNum, this.sex,
this.effectiveTime}); this.carNumber,
this.visitDateStart,
this.visitDateEnd,
this.status,
this.createId,
this.createDate});
VisitorListItemModel.fromJson(Map<String, dynamic> json) { VisitorListItemModel.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
accessCode = json['accessCode']; estateId = json['estateId'];
visitorStatus = json['visitorStatus']; roomName = json['roomName'];
name = json['name']; name = json['name'];
isDrive = json['isDrive']; tel = json['tel'];
carNum = json['carNum']; sex = json['sex'];
effectiveTime = json['effectiveTime']; carNumber = json['carNumber'];
visitDateStart = json['visitDateStart'];
visitDateEnd = json['visitDateEnd'];
status = json['status'];
createId = json['createId'];
createDate = json['createDate'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id; data['id'] = this.id;
data['accessCode'] = this.accessCode; data['estateId'] = this.estateId;
data['visitorStatus'] = this.visitorStatus; data['roomName'] = this.roomName;
data['name'] = this.name; data['name'] = this.name;
data['isDrive'] = this.isDrive; data['tel'] = this.tel;
data['carNum'] = this.carNum; data['sex'] = this.sex;
data['effectiveTime'] = this.effectiveTime; data['carNumber'] = this.carNumber;
data['visitDateStart'] = this.visitDateStart;
data['visitDateEnd'] = this.visitDateEnd;
data['status'] = this.status;
data['createId'] = this.createId;
data['createDate'] = this.createDate;
return data; return data;
} }
} }

@ -1,3 +1,7 @@
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:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -11,7 +15,9 @@ import 'package:aku_community/utils/headers.dart';
class VisitorListItem extends StatefulWidget { class VisitorListItem extends StatefulWidget {
final VisitorListItemModel model; final VisitorListItemModel model;
VisitorListItem({Key? key, required this.model}) : super(key: key); final int type;
VisitorListItem({Key? key, required this.model, required this.type})
: super(key: key);
@override @override
_VisitorListItemState createState() => _VisitorListItemState(); _VisitorListItemState createState() => _VisitorListItemState();
@ -22,17 +28,20 @@ class _VisitorListItemState extends State<VisitorListItem> {
StringBuffer buffer = StringBuffer(); StringBuffer buffer = StringBuffer();
var name = widget.model.name; var name = widget.model.name;
buffer.write(name); buffer.write(name);
var car = widget.model.carNum; var car = widget.model.carNumber;
if (TextUtil.isEmpty(car)) return buffer.toString(); if (TextUtil.isEmpty(car)) return buffer.toString();
buffer.write('($car)'); buffer.write('($car)');
return buffer.toString(); return buffer.toString();
} }
bool get outDate => DateTime.now().isAfter(widget.model.date!); // bool get outDate =>
// DateTime.now().isAfter(widget.model.date ?? DateTime.now());
_buildSuffix() { _buildSuffix() {
if (outDate) if (widget.type == 1 || widget.type == 3)
return MaterialButton( return MaterialButton(
onPressed: () {}, onPressed: () {
Get.back();
},
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 12.w), padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 12.w),
height: 56.w, height: 56.w,
@ -44,24 +53,51 @@ class _VisitorListItemState extends State<VisitorListItem> {
), ),
), ),
); );
return Row( else
mainAxisSize: MainAxisSize.min, //
children: [ return Row(
Icon(Icons.qr_code_rounded), mainAxisSize: MainAxisSize.min,
16.wb, children: [
Icon(CupertinoIcons.chevron_forward), Icon(Icons.qr_code_rounded),
], 16.wb,
); Icon(CupertinoIcons.chevron_forward),
],
);
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialButton( return MaterialButton(
onPressed: () { onPressed: () async {
if (!outDate) { if (widget.type == 2) {
Get.to(() => VisitorPassportPage(model: widget.model)); BaseModel baseModel = await NetUtil().get(API.manager.getInviteCode,
params: {
"startTime": DateUtil.formatDateStr(
widget.model.visitDateStart ?? '',
format: 'yyyy/MM/dd HH:mm:ss'),
"endTime": DateUtil.formatDateStr(
widget.model.visitDateEnd ?? '',
format: 'yyyy/MM/dd HH:mm:ss'),
"visitorsTel": widget.model.tel
},
showMessage: false);
if (baseModel.data != null) {
Get.to(VisitorPassportPage(
model: widget.model,
code: baseModel.data,
));
} else {
BotToast.showText(text: '访客码获取出错!');
}
} }
}, },
// onPressed: () {
// if (widget.model.status != 1) {
// Get.to(() => VisitorPassportPage(model: widget.model));
// }
// },
color: Colors.white, color: Colors.white,
elevation: 0, elevation: 0,
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,

@ -9,6 +9,7 @@ import 'package:bot_toast/bot_toast.dart';
import 'package:flustars/flustars.dart'; import 'package:flustars/flustars.dart';
import 'package:fluwx/fluwx.dart'; import 'package:fluwx/fluwx.dart';
import 'package:qr_flutter/qr_flutter.dart'; import 'package:qr_flutter/qr_flutter.dart';
// import 'package:qr_flutter/qr_flutter.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart'; import 'package:aku_community/base/base_style.dart';
@ -21,7 +22,9 @@ import 'package:aku_community/widget/buttons/bottom_button.dart';
class VisitorPassportPage extends StatefulWidget { class VisitorPassportPage extends StatefulWidget {
final VisitorListItemModel model; final VisitorListItemModel model;
VisitorPassportPage({Key? key, required this.model}) : super(key: key); final String? code;
VisitorPassportPage({Key? key, required this.model, this.code})
: super(key: key);
@override @override
_VisitorPassportPageState createState() => _VisitorPassportPageState(); _VisitorPassportPageState createState() => _VisitorPassportPageState();
@ -29,6 +32,7 @@ class VisitorPassportPage extends StatefulWidget {
class _VisitorPassportPageState extends State<VisitorPassportPage> { class _VisitorPassportPageState extends State<VisitorPassportPage> {
GlobalKey _repaintKey = GlobalKey(); GlobalKey _repaintKey = GlobalKey();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AnnotatedRegion<SystemUiOverlayStyle>( return AnnotatedRegion<SystemUiOverlayStyle>(
@ -85,7 +89,9 @@ class _VisitorPassportPageState extends State<VisitorPassportPage> {
width: 40.w, width: 40.w,
), ),
16.wb, 16.wb,
(widget.model.drive ? '无车辆信息' : widget.model.carNum)! (!widget.model.drive
? '无车辆信息'
: widget.model.carNumber!)
.text .text
.size(36.sp) .size(36.sp)
.bold .bold
@ -112,7 +118,7 @@ class _VisitorPassportPageState extends State<VisitorPassportPage> {
height: 260.w, height: 260.w,
width: 260.w, width: 260.w,
child: QrImage( child: QrImage(
data: widget.model.accessCode.toString(), data: widget.code!,
), ),
).centered(), ).centered(),
32.hb, 32.hb,

@ -17,7 +17,7 @@ class _VisitorRecordPageState extends State<VisitorRecordPage>
TabController? _controller; TabController? _controller;
// //
List<String> _tabs = ['未到访客', '已到访客']; List<String> _tabs = ['已分享', '已提交', '已过期'];
@override @override
void initState() { void initState() {
_controller = TabController(length: _tabs.length, vsync: this); _controller = TabController(length: _tabs.length, vsync: this);
@ -42,6 +42,7 @@ class _VisitorRecordPageState extends State<VisitorRecordPage>
children: [ children: [
VisitorRecordView(type: 1), VisitorRecordView(type: 1),
VisitorRecordView(type: 2), VisitorRecordView(type: 2),
VisitorRecordView(type: 3),
], ],
), ),
); );

@ -9,7 +9,7 @@ import 'package:aku_community/ui/manager/visitor/visitor_list_item.dart';
import 'package:aku_community/utils/headers.dart'; import 'package:aku_community/utils/headers.dart';
class VisitorRecordView extends StatefulWidget { class VisitorRecordView extends StatefulWidget {
///访1.2. ///访1.2.3.
final int type; final int type;
VisitorRecordView({Key? key, required this.type}) : super(key: key); VisitorRecordView({Key? key, required this.type}) : super(key: key);
@ -45,7 +45,7 @@ class _VisitorRecordViewState extends State<VisitorRecordView> {
height: 1.w, height: 1.w,
), ),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return VisitorListItem(model: items[index]); return VisitorListItem(model: items[index], type: widget.type);
}, },
itemCount: items.length, itemCount: items.length,
); );

@ -77,7 +77,7 @@ packages:
name: async name: async
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.5.0" version: "2.6.1"
auto_size_text: auto_size_text:
dependency: transitive dependency: transitive
description: description:
@ -1046,7 +1046,7 @@ packages:
name: source_span name: source_span
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.0" version: "1.8.1"
sp_util: sp_util:
dependency: transitive dependency: transitive
description: description:
@ -1123,7 +1123,7 @@ packages:
name: test_api name: test_api
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.2.19" version: "0.3.0"
timing: timing:
dependency: transitive dependency: transitive
description: description:

Loading…
Cancel
Save