Merge branch 'master' into newHost

pull/1/head
张萌 3 years ago
commit ed064fc688

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

@ -25,6 +25,8 @@ class API {
static _Pay pay = _Pay();
static _House house = _House();
static _Bracelet bracelet = _Bracelet();
static _Intergral intergral = _Intergral();
}
class _Bracelet {
@ -32,6 +34,14 @@ class _Bracelet {
String get data => '/user/aqg/getData';
}
class _Intergral {
///
String get sign => '/user/points/sign';
///
String get info => '/user/points/getPointsInfo';
}
class _Login {
//
String get allCommunity => '/app/login/findAllCommunity';

@ -1056,6 +1056,10 @@ class $AssetsImagesGen {
AssetGenImage get drawings =>
const AssetGenImage('assets/images/drawings.png');
/// File path: assets/images/equipment_empty.png
AssetGenImage get equipmentEmpty =>
const AssetGenImage('assets/images/equipment_empty.png');
/// File path: assets/images/house_attestation.png
AssetGenImage get houseAttestation =>
const AssetGenImage('assets/images/house_attestation.png');

@ -4,15 +4,17 @@ part 'clocked_record_list_model.g.dart';
@JsonSerializable()
class ClockedRecordListModel {
final int day;
final String date;
final int addIntegral;
final int id;
final int addNums;
final int serialNumber;
final String signDate;
factory ClockedRecordListModel.fromJson(Map<String, dynamic> json) =>
_$ClockedRecordListModelFromJson(json);
const ClockedRecordListModel({
required this.day,
required this.date,
required this.addIntegral,
required this.id,
required this.addNums,
required this.serialNumber,
required this.signDate,
});
}

@ -9,7 +9,8 @@ part of 'clocked_record_list_model.dart';
ClockedRecordListModel _$ClockedRecordListModelFromJson(
Map<String, dynamic> json) =>
ClockedRecordListModel(
day: json['day'] as int,
date: json['date'] as String,
addIntegral: json['addIntegral'] as int,
id: json['id'] as int,
addNums: json['addNums'] as int,
serialNumber: json['serialNumber'] as int,
signDate: json['signDate'] as String,
);

@ -0,0 +1,23 @@
import 'package:aku_new_community/models/integral/clocked_record_list_model.dart';
import 'package:json_annotation/json_annotation.dart';
part 'integral_info_model.g.dart';
@JsonSerializable()
class IntegralInfoModel {
final int points;
final String rewardSetting;
final int serialNumber;
final bool isSign;
final List<ClockedRecordListModel> signRecordList;
factory IntegralInfoModel.fromJson(Map<String, dynamic> json) =>
_$IntegralInfoModelFromJson(json);
const IntegralInfoModel({
required this.points,
required this.rewardSetting,
required this.serialNumber,
required this.isSign,
required this.signRecordList,
});
}

@ -0,0 +1,19 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'integral_info_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
IntegralInfoModel _$IntegralInfoModelFromJson(Map<String, dynamic> json) =>
IntegralInfoModel(
points: json['points'] as int,
rewardSetting: json['rewardSetting'] as String,
serialNumber: json['serialNumber'] as int,
isSign: json['isSign'] as bool,
signRecordList: (json['signRecordList'] as List<dynamic>)
.map(
(e) => ClockedRecordListModel.fromJson(e as Map<String, dynamic>))
.toList(),
);

@ -4,9 +4,12 @@ import 'package:aku_new_community/extensions/widget_list_ext.dart';
import 'package:aku_new_community/gen/assets.gen.dart';
import 'package:aku_new_community/models/integral/add_integral_config_model.dart';
import 'package:aku_new_community/models/integral/clocked_record_list_model.dart';
import 'package:aku_new_community/models/integral/integral_info_model.dart';
import 'package:aku_new_community/pages/personal/clock_in/clock_success_dialog.dart';
import 'package:aku_new_community/utils/network/net_util.dart';
import 'package:aku_new_community/widget/bee_back_button.dart';
import 'package:aku_new_community/widget/others/user_tool.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -21,31 +24,39 @@ class ClockInPage extends StatefulWidget {
}
class _ClockInPageState extends State<ClockInPage> {
List<AddIntegralConfigModel> _configs = [
AddIntegralConfigModel(addIntegral: 1, hasClocked: false),
AddIntegralConfigModel(addIntegral: 2, hasClocked: false),
AddIntegralConfigModel(addIntegral: 3, hasClocked: false),
AddIntegralConfigModel(addIntegral: 5, hasClocked: false),
AddIntegralConfigModel(addIntegral: 8, hasClocked: false),
AddIntegralConfigModel(addIntegral: 15, hasClocked: false),
AddIntegralConfigModel(addIntegral: 50, hasClocked: false),
];
IntegralInfoModel? _integralModel;
List<AddIntegralConfigModel> _configs = [];
List<ClockedRecordListModel> _records = [
ClockedRecordListModel(day: 1, date: '2021-12-29 13:29:24', addIntegral: 1),
ClockedRecordListModel(day: 2, date: '2021-12-28 13:29:24', addIntegral: 2),
ClockedRecordListModel(day: 3, date: '2021-12-27 13:29:24', addIntegral: 3),
ClockedRecordListModel(day: 4, date: '2021-12-26 13:29:24', addIntegral: 5),
ClockedRecordListModel(day: 5, date: '2021-12-25 13:29:24', addIntegral: 8),
ClockedRecordListModel(
day: 6, date: '2021-12-24 13:29:24', addIntegral: 15),
ClockedRecordListModel(
day: 7, date: '2021-12-23 13:29:24', addIntegral: 50),
ClockedRecordListModel(day: 1, date: '2021-12-22 13:29:24', addIntegral: 1),
];
List<ClockedRecordListModel> _records = [];
bool _openRemind = false; //
bool get hasClocked => _configs[0].hasClocked;
bool get hasClocked => _integralModel?.isSign ?? false;
Future getData() async {
var base = await NetUtil().get(API.intergral.info);
if (base.status ?? false) {
_integralModel = IntegralInfoModel.fromJson(base.data);
} else {
BotToast.showText(text: base.message!);
}
}
@override
void initState() {
getData().then((value) {
if (_integralModel != null) {
_records = _integralModel!.signRecordList;
_configs = _integralModel!.rewardSetting
.split(',')
.mapIndexed((currentValue, index) => AddIntegralConfigModel(
addIntegral: int.parse(currentValue),
hasClocked: index < _integralModel!.serialNumber))
.toList();
setState(() {});
}
});
super.initState();
}
@override
Widget build(BuildContext context) {
@ -94,7 +105,10 @@ class _ClockInPageState extends State<ClockInPage> {
Text.rich(
TextSpan(children: [
'已连续签到 '.textSpan.make(),
'1'.textSpan.size(40.sp).make(),
'${_integralModel?.serialNumber ?? 0}'
.textSpan
.size(40.sp)
.make(),
''.textSpan.make(),
]),
style: TextStyle(
@ -104,7 +118,9 @@ class _ClockInPageState extends State<ClockInPage> {
),
4.hb,
Text(
'明日签到即可获得2积分',
'明日签到即可获得'
'${_configs.isNotEmpty ? _configs[_integralModel!.serialNumber != 7 ? _integralModel!.serialNumber : 0].addIntegral : 0}'
'积分',
style: TextStyle(
fontSize: 24.sp,
color: Colors.black.withOpacity(0.45),
@ -132,7 +148,11 @@ class _ClockInPageState extends State<ClockInPage> {
children: [
Assets.icons.intergral.image(width: 36.w, height: 36.w),
12.wb,
'123'.text.size(32.sp).white.make(),
'${_integralModel?.points ?? 0}'
.text
.size(32.sp)
.white
.make(),
],
),
),
@ -175,9 +195,9 @@ class _ClockInPageState extends State<ClockInPage> {
width: 72.w,
height: 40.w,
child: Switch(
value: _openRemind,
value: UserTool.userProvider.userConfig.clockRemind,
onChanged: (value) {
_openRemind = value;
UserTool.userProvider.changeClockRemind();
setState(() {});
},
)),
@ -201,12 +221,15 @@ class _ClockInPageState extends State<ClockInPage> {
onPressed: hasClocked
? null
: () async {
var base = await NetUtil().get(API.intergral.sign);
if (base.status ?? false) {
await Get.dialog(ClockSuccessDialog(
todayIntegral: _configs[0].addIntegral,
tomorrowIntegral: _configs[1].addIntegral));
_configs[0] = AddIntegralConfigModel(
addIntegral: _configs[0].addIntegral, hasClocked: true);
setState(() {});
todayIntegral: 1, tomorrowIntegral: 2));
await UserTool.userProvider.changeTodayClocked();
await getData();
} else {
BotToast.showText(text: base.message!);
}
},
elevation: 0,
color: kPrimaryColor,
@ -246,9 +269,9 @@ class _ClockInPageState extends State<ClockInPage> {
children: [
..._records
.mapIndexed((currentValue, index) => recordListTile(
currentValue.day,
currentValue.date,
currentValue.addIntegral))
currentValue.serialNumber,
currentValue.signDate,
currentValue.addNums))
.toList(),
Container(
width: double.infinity,

@ -12,7 +12,9 @@ import 'package:aku_new_community/ui/profile/car_parking/car_parking_page.dart';
import 'package:aku_new_community/ui/profile/new_house/my_family_page.dart';
import 'package:aku_new_community/ui/profile/new_house/my_house_page.dart';
import 'package:aku_new_community/utils/headers.dart';
import 'package:aku_new_community/utils/network/net_util.dart';
import 'package:aku_new_community/widget/others/user_tool.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
@ -336,10 +338,16 @@ class _PersonalIndexState extends State<PersonalIndex>
Spacer(),
MaterialButton(
onPressed: () async {
var base =
await NetUtil().get(API.intergral.sign);
if (base.status ?? false) {
await Get.dialog(ClockSuccessDialog(
todayIntegral: 1, tomorrowIntegral: 2));
await UserTool.userProvider
.changeTodayClocked();
} else {
BotToast.showText(text: base.message!);
}
},
elevation: 0,
color: Colors.white,

@ -1,6 +1,7 @@
import 'package:aku_new_community/constants/api.dart';
import 'package:aku_new_community/gen/assets.gen.dart';
import 'package:aku_new_community/models/bracelet/bracelet_model.dart';
import 'package:aku_new_community/pages/services/old_age/add_equipment_page.dart';
import 'package:aku_new_community/pages/services/old_age/equipment_list_page.dart';
import 'package:aku_new_community/utils/network/net_util.dart';
import 'package:aku_new_community/widget/bee_divider.dart';
@ -60,7 +61,9 @@ class _OldAgeSupportPageSimpleState extends State<OldAgeSupportPageSimple> {
.make(),
],
);
return BeeScaffold(
return _model == null
? _emptyScaffold()
: BeeScaffold(
title: 'X5手环',
extendBody: true,
actions: [
@ -83,7 +86,10 @@ class _OldAgeSupportPageSimpleState extends State<OldAgeSupportPageSimple> {
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Colors.white, Color(0xFFC0E5DC).withOpacity(0.355)]),
colors: [
Colors.white,
Color(0xFFC0E5DC).withOpacity(0.355)
]),
),
child: _model == null
? Container()
@ -517,4 +523,39 @@ class _OldAgeSupportPageSimpleState extends State<OldAgeSupportPageSimple> {
),
);
}
Widget _emptyScaffold() {
return BeeScaffold(
title: '智慧养老',
body: SafeArea(
child: Center(
child: Column(
children: [
Assets.images.equipmentEmpty.image(width: 480.w, height: 480.w),
'当前没有绑定任何设备'
.text
.size(28.sp)
.color(Colors.black.withOpacity(0.25))
.make(),
],
),
),
),
bottomNavi: Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
child: MaterialButton(
onPressed: () {
Get.to(() => AddEquipmentPage());
},
color: Color(0xFF5096F1),
padding: EdgeInsets.symmetric(vertical: 24.w),
minWidth: 686.w,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.w),
),
child: '添加设备'.text.size(28.sp).white.make(),
),
),
);
}
}

Loading…
Cancel
Save