Add return buttons to amount and category modification flows

This commit is contained in:
leo 2026-01-22 15:42:32 +08:00
parent 5039612504
commit 50a90b2e93

View File

@ -188,7 +188,11 @@ async def cb_save_new(callback: types.CallbackQuery, state: FSMContext):
@dp.callback_query(F.data == "edit_new_amt", RecordState.waiting_confirm)
async def cb_edit_amt_before_save(callback: types.CallbackQuery, state: FSMContext):
await callback.message.answer("✍️ 请输入新金额(数字):")
# 构建带返回按钮的键盘
builder = InlineKeyboardBuilder()
builder.button(text="🔙 返回", callback_data="return_to_confirm")
await callback.message.answer("✍️ 请输入新金额(数字):", reply_markup=builder.as_markup())
await state.set_state(RecordState.editing_new_amt)
@dp.message(RecordState.editing_new_amt)
@ -206,6 +210,8 @@ async def cb_choose_cat_before_save(callback: types.CallbackQuery):
for cat in DEFAULT_CATEGORIES:
builder.button(text=cat, callback_data=f"set_new_cat_{cat}")
builder.adjust(3)
# 添加返回按钮
builder.row(types.InlineKeyboardButton(text="🔙 返回", callback_data="return_to_confirm"))
await callback.message.edit_text("📂 请选择新类别:", reply_markup=builder.as_markup())
@dp.callback_query(F.data.startswith("set_new_cat_"), RecordState.waiting_confirm)
@ -215,6 +221,21 @@ async def cb_set_cat_before_save(callback: types.CallbackQuery, state: FSMContex
data = await state.get_data()
await callback.message.edit_text(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
# 处理从修改类别界面返回确认界面的回调
@dp.callback_query(F.data == "return_to_confirm", RecordState.waiting_confirm)
async def cb_return_to_confirm_from_cat(callback: types.CallbackQuery, state: FSMContext):
"""从修改类别界面返回到确认界面"""
data = await state.get_data()
await callback.message.edit_text(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
# 处理从修改金额输入状态返回确认界面的回调
@dp.callback_query(F.data == "return_to_confirm", RecordState.editing_new_amt)
async def cb_return_to_confirm_from_amt(callback: types.CallbackQuery, state: FSMContext):
"""从修改金额输入状态返回到确认界面"""
data = await state.get_data()
await state.set_state(RecordState.waiting_confirm)
await callback.message.answer(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
# ================= 4. 账单列表展示 =================
async def show_record_list(message_or_call, user_id, page=0):