跌倒紀錄編號更新

This commit is contained in:
kuei 2024-10-31 01:19:51 +08:00
parent c7cce038aa
commit fbe67b7dd9

View File

@ -3,7 +3,6 @@ import 'package:mysql_client/mysql_client.dart';
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';
import 'package:better_player_plus/better_player_plus.dart'; import 'package:better_player_plus/better_player_plus.dart';
class HistoricalRecord extends StatefulWidget { class HistoricalRecord extends StatefulWidget {
final String email; // email final String email; // email
HistoricalRecord({required this.email}); HistoricalRecord({required this.email});
@ -14,6 +13,7 @@ class HistoricalRecord extends StatefulWidget {
class _HistoricalRecordState extends State<HistoricalRecord> { class _HistoricalRecordState extends State<HistoricalRecord> {
List<Map<String, dynamic>> _results = []; List<Map<String, dynamic>> _results = [];
int _totalRecords = 0; //
@override @override
void initState() { void initState() {
@ -34,21 +34,30 @@ class _HistoricalRecordState extends State<HistoricalRecord> {
await conn.connect(); await conn.connect();
try { try {
var userNameResult = await conn.execute(// 使 email來找homeusername var userNameResult = await conn.execute(
'SELECT homeUserName FROM HomeLogin WHERE homeEmail = :email', 'SELECT homeUserName FROM HomeLogin WHERE homeEmail = :email',
{'email': widget.email}, {'email': widget.email},
); );
if (userNameResult.rows.isNotEmpty) { if (userNameResult.rows.isNotEmpty) {
String homeUserName = userNameResult.rows.first.colByName( String homeUserName = userNameResult.rows.first.colByName("homeUserName").toString();
"homeUserName").toString();
print('homeUserName: $homeUserName'); print('homeUserName: $homeUserName');
// homeUserName
//
var countResult = await conn.execute(
'SELECT COUNT(*) AS total FROM HomeElderFall WHERE homeUserName = :homeUserName',
{'homeUserName': homeUserName},
);
if (countResult.rows.isNotEmpty) {
_totalRecords = int.parse(countResult.rows.first.colByName("total").toString());
}
// homeUserName
var fallResult = await conn.execute( var fallResult = await conn.execute(
'SELECT HomeElderFall.* FROM HomeElderFall WHERE homeUserName = :homeUserName ORDER BY hfTime DESC', 'SELECT HomeElderFall.* FROM HomeElderFall WHERE homeUserName = :homeUserName ORDER BY hfTime DESC',
{'homeUserName': homeUserName}, {'homeUserName': homeUserName},
); );
if (fallResult.rows.isEmpty) { if (fallResult.rows.isEmpty) {
print('No data found in users table.'); print('No data found in users table.');
} else { } else {
@ -56,9 +65,6 @@ class _HistoricalRecordState extends State<HistoricalRecord> {
_results = fallResult.rows _results = fallResult.rows
.map((row) => .map((row) =>
{ {
//'長者ID': row.colAt(4), //
'跌倒編號': row.colAt(0), // hfId
//'姓名': row.colAt(8),
'跌倒時間': row.colAt(1), '跌倒時間': row.colAt(1),
'跌倒原因': row.colAt(2), '跌倒原因': row.colAt(2),
'跌倒地點': row.colAt(6), '跌倒地點': row.colAt(6),
@ -66,7 +72,7 @@ class _HistoricalRecordState extends State<HistoricalRecord> {
.toList(); .toList();
}); });
} }
}else { } else {
setState(() { setState(() {
_results = []; _results = [];
}); });
@ -105,9 +111,10 @@ class _HistoricalRecordState extends State<HistoricalRecord> {
), ),
) )
: ListView.builder( : ListView.builder(
padding: EdgeInsets.symmetric(vertical: 5), // padding padding: EdgeInsets.symmetric(vertical: 5), // 調 padding
itemCount: _results.length, itemCount: _results.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
int displayIndex = _totalRecords - index; //
return Padding( return Padding(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
vertical: 4.0, horizontal: 16.0), vertical: 4.0, horizontal: 16.0),
@ -126,8 +133,7 @@ class _HistoricalRecordState extends State<HistoricalRecord> {
), ),
child: ListTile( child: ListTile(
title: Text( title: Text(
'紀錄編號: ${_results[index]['跌倒編號']}', // hfId '紀錄編號: 第${displayIndex}', // 使
//_results[index]['姓名'],
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: 18, fontSize: 18,
@ -136,7 +142,7 @@ class _HistoricalRecordState extends State<HistoricalRecord> {
subtitle: Column( subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text(//'長者ID: ${_results[index]['長者ID']}\n' Text(
'跌倒時間: ${_results[index]['跌倒時間']}\n' '跌倒時間: ${_results[index]['跌倒時間']}\n'
'跌倒原因: ${_results[index]['跌倒原因']}\n' '跌倒原因: ${_results[index]['跌倒原因']}\n'
'跌倒地點: ${_results[index]['跌倒地點']}\n', '跌倒地點: ${_results[index]['跌倒地點']}\n',
@ -239,21 +245,18 @@ class _FallDetailPageState extends State<FallDetailPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('詳細資料'),//'${fallDetail['姓名']} 的詳細資料' title: Text('詳細資料'),
), ),
body: Padding( body: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
//Text('長者ID: ${fallDetail['長者ID']}', style: TextStyle(fontSize: 18)),
//SizedBox(height: 10),
Text('跌倒時間: ${widget.fallDetail['跌倒時間']}', style: TextStyle(fontSize: 18)), Text('跌倒時間: ${widget.fallDetail['跌倒時間']}', style: TextStyle(fontSize: 18)),
SizedBox(height: 10), SizedBox(height: 10),
Text('跌倒原因: ${widget.fallDetail['跌倒原因']}', style: TextStyle(fontSize: 18)), Text('跌倒原因: ${widget.fallDetail['跌倒原因']}', style: TextStyle(fontSize: 18)),
SizedBox(height: 10), SizedBox(height: 10),
Text('跌倒地點: ${widget.fallDetail['跌倒地點']}', style: TextStyle(fontSize: 18)), Text('跌倒地點: ${widget.fallDetail['跌倒地點']}', style: TextStyle(fontSize: 18)),
//
if (fhvideoId != '') AspectRatio( if (fhvideoId != '') AspectRatio(
aspectRatio: 16 / 9, aspectRatio: 16 / 9,
child: BetterPlayer(controller: _betterPlayerController), child: BetterPlayer(controller: _betterPlayerController),