(taskId)
| 2681 | } |
| 2682 | |
| 2683 | async function openBindCardTask(taskId) { |
| 2684 | try { |
| 2685 | const data = await api.post(`/payment/bind-card/tasks/${taskId}/open`, {}); |
| 2686 | if (data?.success) { |
| 2687 | toast.success(`任务 #${taskId} 已尝试打开`); |
| 2688 | await loadBindCardTasks(); |
| 2689 | return; |
| 2690 | } |
| 2691 | throw new Error(data?.detail || "打开失败"); |
| 2692 | } catch (e) { |
| 2693 | toast.error(`打开任务失败: ${formatErrorMessage(e)}`); |
| 2694 | } |
| 2695 | } |
| 2696 | |
| 2697 | async function markBindCardTaskUserAction(taskId) { |
| 2698 | const lockKey = `mark:${taskId}`; |
nothing calls this directly
no test coverage detected