feat: deliver Riverside Schedule seven-day grid and school HTML import

This commit is contained in:
Codex
2026-10-13 11:18:50 +08:00
parent 91a2522043
commit 8403be05da
29 changed files with 1246 additions and 446 deletions
@@ -33,57 +33,23 @@ class _TimetablePageState extends State<TimetablePage> {
final sunday = monday.add(const Duration(days: 6));
return ListView(
padding: EdgeInsets.fromLTRB(
18,
20,
18,
8,
10,
8,
140 + MediaQuery.paddingOf(context).bottom,
),
children: [
Text(
'HEPAN / EVERYDAY',
const Text(
'Riverside Schedule',
style: TextStyle(
fontSize: 10,
letterSpacing: 2.2,
color: river.withValues(alpha: 0.8),
fontSize: 22,
fontWeight: FontWeight.w700,
letterSpacing: -0.5,
),
),
const SizedBox(height: 9),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Expanded(
child: Text(
'每一天,\n从容一点。',
style: TextStyle(
fontSize: 27,
fontWeight: FontWeight.w700,
height: 1.3,
letterSpacing: -0.6,
),
),
),
Container(
margin: const EdgeInsets.only(top: 5),
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 9),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Text(
'${today.month} 月 ${today.day} 日',
style: const TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: river,
),
),
),
],
),
const SizedBox(height: 22),
const SizedBox(height: 10),
SurfaceCard(
padding: const EdgeInsets.symmetric(horizontal: 9, vertical: 12),
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 0),
child: Row(
children: [
IconButton(
@@ -126,7 +92,7 @@ class _TimetablePageState extends State<TimetablePage> {
],
),
),
const SizedBox(height: 14),
const SizedBox(height: 4),
if (c.isDemo)
Padding(
padding: const EdgeInsets.only(bottom: 12),
@@ -172,7 +138,7 @@ class _TimetablePageState extends State<TimetablePage> {
),
const SizedBox(height: 12),
Text(
'左右滑动查看整周 · 点击课程查看详情',
'点击课程查看完整信息',
textAlign: TextAlign.center,
style: TextStyle(fontSize: 11, color: ink.withValues(alpha: 0.35)),
),
@@ -191,7 +157,7 @@ class _TimetablePageState extends State<TimetablePage> {
),
const SizedBox(height: 12),
Text(
'在「我的」设置学期并导入课程,\n或先看看河畔的示例课表。',
'在「我的」设置学期并导入课程,\n或先看看示例课表。',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 13,