更新日历样式

This commit is contained in:
czz
2025-07-11 16:48:25 +08:00
parent 092267ae3a
commit de5bacb553
11 changed files with 271 additions and 89 deletions

View File

@@ -53,11 +53,12 @@ class _DataShowWidgetState extends State<DataShowWidget> {
width: MediaQuery.sizeOf(context).width * 0.35, // 固定宽度
decoration: BoxDecoration(),
child: Align(
alignment: widget.alignment == MainAxisAlignment.start
? Alignment.centerLeft
: widget.alignment == MainAxisAlignment.center
? Alignment.center
: Alignment.centerRight, // 根据传入的 alignment 设置对齐
alignment: Alignment.centerLeft,
// widget.alignment == MainAxisAlignment.start
// ? Alignment.centerLeft
// : widget.alignment == MainAxisAlignment.center
// ? Alignment.center
// : Alignment.centerRight, // 根据传入的 alignment 设置对齐
child: widget.widget1, // 显示传入的 widget1
),
),

View File

@@ -89,7 +89,7 @@ class SegmentedCircleWithCenterWidget extends StatelessWidget {
centerWidget, // 放置自定义的中心 Widget
Positioned(
bottom: 140.rpx,
right: 60.rpx, // 放置在右侧
right: 50.rpx, // 放置在右侧
child: SvgPicture.asset(
_getTrendIcon(trend),
width: trend != 0 ? 14.rpx : 18.rpx,

View File

@@ -123,7 +123,7 @@ class _SleepScoreWidgetState extends State<SleepScoreWidget> {
// SegmentData(color: Colors.orange, value: 10),
// ],
segments: segments,
strokeWidth: 6.rpx,
strokeWidth: 12.rpx,
gapAngle: 8,
centerWidget: Container(
child: Column(

View File

@@ -96,7 +96,7 @@ Widget WeekDataWidget(
buildWeekDatesAndPoints(sleepReport['scoreList'])['colors'],
tips: buildValueTexts(sleepReport['scoreList']['data'], '', 1),
xUnit: sleepReport['scoreList']['yUnit'],
barWidth: 0.1,
barWidth: 0.2,
),
showLabel: sleepReport['scoreList']['type'],
),
@@ -193,7 +193,7 @@ Widget WeekDataWidget(
offset,
textAlign: TextAlign.center,
style: TextStyle(
color: Color(0xFFFFFFFF).withOpacity(0.06),
color: Color(0xFFFFFFFF).withOpacity(0.6),
fontSize: 18.rpx),
);
},
@@ -206,7 +206,7 @@ Widget WeekDataWidget(
displayMode: ChartDisplayMode.dualBar,
xUnit: sleepReport['csd']['yUnit'],
tips: buildSleepValueTexts(sleepReport['csd']['data'], '小时', 1),
barWidth: 0.1,
barWidth: 0.2,
),
showLabel: sleepReport['csd']['type'],
),

View File

@@ -103,7 +103,7 @@ class AvgSleepScoreWidget extends StatelessWidget {
height: 256.rpx,
child: SegmentedCircleWithCenterWidget(
segments: segments,
strokeWidth: 6.rpx,
strokeWidth: 12.rpx,
gapAngle: 0,
centerWidget: Column(
mainAxisAlignment: MainAxisAlignment.center,
@@ -136,7 +136,7 @@ class AvgSleepScoreWidget extends StatelessWidget {
runSpacing: 20.rpx,
children: showLabel.map<Widget>((item) {
return Container(
padding: EdgeInsets.all(5),
padding: EdgeInsets.all(5.rpx),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [

View File

@@ -1032,7 +1032,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 26.rpx),
padding: EdgeInsets.symmetric(horizontal: 20.rpx),
child: Text(
displayText,
style: TextStyle(
@@ -1079,46 +1079,91 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
padding: EdgeInsets.zero,
borderRadius: 8,
onTap: () {
showSleepCalendarBottomSheet(
type: sleepReportController.model.type,
timestamp: selectedDate.millisecondsSinceEpoch,
context: context,
mac: widget.data['mac'],
onDateSelected: (newDate) {
sleepReportController.selectedDate.value = newDate;
calendarController.selectedDate.value = newDate;
String data = MyUtils.formatDate(
calendarController.selectedDate.value!);
requestWithLog(
logTitle: "查询睡眠报告",
method: MyHttpMethod.get,
queryUrl:
"https://sleepdata.he-info.com/api/analysis/sleep/analysis?mac=${widget.data['mac']}&time=${data}&type=${sleepReportController.model.type}",
onSuccess: (res) {
print(res);
sleepReportController.sleepReport.value = res.data;
sleepReportController.model.type == 3
? showMonthSelectionDialog(context, checkDate: selectedDate,
checkChange: (DateTime d) {
sleepReportController.selectedDate.value = d;
calendarController.selectedDate.value = d;
String data = MyUtils.formatDate(
calendarController.selectedDate.value!);
requestWithLog(
logTitle: "查询睡眠报告",
method: MyHttpMethod.get,
queryUrl:
"https://sleepdata.he-info.com/api/analysis/sleep/analysis?mac=${widget.data['mac']}&time=${data}&type=${sleepReportController.model.type}",
onSuccess: (res) {
print(res);
sleepReportController.sleepReport.value = res.data;
sleepReportController.updateAll();
},
onFailure: (res) {
if (MainPageBBottomChange.getCurrentIndex() !=
null) {
if (MainPageBBottomChange.getCurrentIndex() ==
1) {
TopSlideNotification.show(context,
text: res.msg!,
textColor:
themeController.currentColor.sc9);
}
} else {
TopSlideNotification.show(context,
text: res.msg!,
textColor: themeController.currentColor.sc9);
}
sleepReportController.sleepReport.value = {};
sleepReportController.updateAll();
print(res);
});
sleepReportController.updateAll();
calendarController.updateAll();
})
: showSleepCalendarBottomSheet(
type: sleepReportController.model.type,
timestamp: selectedDate.millisecondsSinceEpoch,
context: context,
mac: widget.data['mac'],
onDateSelected: (newDate) {
sleepReportController.selectedDate.value = newDate;
calendarController.selectedDate.value = newDate;
String data = MyUtils.formatDate(
calendarController.selectedDate.value!);
requestWithLog(
logTitle: "查询睡眠报告",
method: MyHttpMethod.get,
queryUrl:
"https://sleepdata.he-info.com/api/analysis/sleep/analysis?mac=${widget.data['mac']}&time=${data}&type=${sleepReportController.model.type}",
onSuccess: (res) {
print(res);
sleepReportController.sleepReport.value =
res.data;
sleepReportController.updateAll();
},
onFailure: (res) {
if (MainPageBBottomChange.getCurrentIndex() !=
null) {
if (MainPageBBottomChange.getCurrentIndex() ==
1) {
TopSlideNotification.show(context,
text: res.msg!,
textColor:
themeController.currentColor.sc9);
}
} else {
TopSlideNotification.show(context,
text: res.msg!,
textColor:
themeController.currentColor.sc9);
}
sleepReportController.sleepReport.value = {};
sleepReportController.updateAll();
print(res);
});
sleepReportController.updateAll();
calendarController.updateAll();
},
onFailure: (res) {
if (MainPageBBottomChange.getCurrentIndex() != null) {
if (MainPageBBottomChange.getCurrentIndex() == 1) {
TopSlideNotification.show(context,
text: res.msg!,
textColor: themeController.currentColor.sc9);
}
} else {
TopSlideNotification.show(context,
text: res.msg!,
textColor: themeController.currentColor.sc9);
}
sleepReportController.sleepReport.value = {};
sleepReportController.updateAll();
print(res);
});
sleepReportController.updateAll();
calendarController.updateAll();
},
);
);
},
child: Padding(
padding: EdgeInsets.all(10.rpx),