- 在 DetailItemScreen 中添加删除物品的按钮和确认对话框 - 在 ItemProvider 中实现删除物品的方法 - 在 ItemRepository 中实现删除物品的数据库操作 - 在 ItemModel 中添加 status 字段,用于标记物品状态
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:item_tracker/database/sqlite_helper.dart';
 | |
| 
 | |
| import '../models/item_model.dart';
 | |
| 
 | |
| class ItemRepository {
 | |
|   late final DatabaseHelper dbHelper;
 | |
| 
 | |
|   ItemRepository({required this.dbHelper});
 | |
| 
 | |
|   /**
 | |
|    * 插入一条数据
 | |
|    */
 | |
|   Future<int> insertItem(Item item) async {
 | |
|     final db = await dbHelper.database;
 | |
|     return await db.insert('items', item.toMap());
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * 查询所有数据
 | |
|    */
 | |
|   Future<List<Map<String, dynamic>>> getAllItems() async {
 | |
|     final db = await dbHelper.database;
 | |
|     return await db.query('items', where: 'status = ?', whereArgs: ['normal']);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * 更新数据
 | |
|    */
 | |
|   Future<int> updateItem(Item item) async {
 | |
|     final db = await dbHelper.database;
 | |
|     return await db.update(
 | |
|       'items',
 | |
|       item.toMap(),
 | |
|       where: 'id = ?',
 | |
|       whereArgs: [item.id],
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * 删除数据
 | |
|    */
 | |
|   Future<int> deleteItem(Item item) async {
 | |
|     final db = await dbHelper.database;
 | |
|     return await db.update('items', {'status': 'delete'},
 | |
|         where: 'id = ?', whereArgs: [item.id]);
 | |
|   }
 | |
| }
 |