- 在 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]);
|
|
}
|
|
}
|