feat(item): 添加物品详情页面并优化物品列表
- 新增 DetailItemScreen 组件,用于展示物品详细信息 - 在 ItemListScreen 中添加物品列表项的点击事件,跳转到物品详情页面- 修改 Item 模型,将 isInUse 字段类型从 String改为 String? - 更新数据库表结构,将 is_in_use 列类型从 INTEGER 改为 TEXT
This commit is contained in:
parent
ba0a8eb654
commit
4903d7d5a8
@ -6,7 +6,7 @@ CREATE TABLE items (
|
||||
location_id INTEGER,
|
||||
description TEXT,
|
||||
purchase_date TEXT,
|
||||
is_in_use INTEGER DEFAULT 0,
|
||||
is_in_use TEXT DEFAULT 'no',
|
||||
created_at TEXT DEFAULT (datetime('now')),
|
||||
updated_at TEXT DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
@ -11,7 +11,7 @@ class Item {
|
||||
// 购买日期
|
||||
final DateTime? purchaseDate;
|
||||
// 是否使用
|
||||
final String isInUse;
|
||||
final String? isInUse;
|
||||
final DateTime? createdAt;
|
||||
final DateTime? updatedAt;
|
||||
|
||||
@ -29,7 +29,6 @@ class Item {
|
||||
|
||||
Map<String, dynamic> toMap() {
|
||||
return {
|
||||
'id': id,
|
||||
'name': name,
|
||||
'category_id': categoryId,
|
||||
'location_id': locationId,
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:item_tracker/provider/item_provider.dart';
|
||||
import 'package:item_tracker/screens/addItem/add_item_screen.dart';
|
||||
import 'package:item_tracker/screens/item_screens/add_item_screen.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'item_screens/detail_item_screen.dart';
|
||||
|
||||
class ItemListScreen extends StatefulWidget {
|
||||
@override
|
||||
_ItemListScreenState createState() => _ItemListScreenState();
|
||||
@ -46,6 +48,14 @@ class _ItemListScreenState extends State<ItemListScreen> {
|
||||
return ListTile(
|
||||
title: Text(item.name),
|
||||
subtitle: Text(item.description ?? ""),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => DetailItemScreen(item: item),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}));
|
||||
}),
|
||||
|
||||
27
lib/screens/item_screens/detail_item_screen.dart
Normal file
27
lib/screens/item_screens/detail_item_screen.dart
Normal file
@ -0,0 +1,27 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:item_tracker/models/item_model.dart';
|
||||
|
||||
class DetailItemScreen extends StatelessWidget {
|
||||
final Item item;
|
||||
|
||||
DetailItemScreen({required this.item});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('${item.name}'),
|
||||
),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text('名称: ${item.toMap().toString()}'),
|
||||
Text('描述: ${item.description}')
|
||||
]
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user