becomer 651739af1b
ci/woodpecker/tag/build Pipeline was successful
次数不足弹窗统一为专用组件,底部改为「邀请好友 / 购买 CDK」
原先只有打卡页有专用的「签到次数不足」弹窗,请销假页只有一条
一闪而过的红色 Toast;而且提示让用户「购买 CDK」,但请销假页内
没有任何购买或兑换入口,用户看不懂也无处可去。

新增 components/NoRunsDialog.vue(打卡/请假/续假/销假共用):
- 标题按场景传入(签到/请假/续假/销假次数不足)
- 说明两条获取途径:邀请新用户、购买 CDK
- 底部两个动作按钮:
  · 立即邀请好友 → 跳 /profile?intent=invite,进页后自动复制邀请码并提示
  · 立即购买 CDK → 跳 /profile?intent=buy,进页后自动触发 CDK 购买入口
    (弹出流程说明弹窗,确认后跳购买平台)

ProfileView 新增 intent 处理(onMounted 末尾):
- intent=invite:调用已有 copyInviteCode()
- intent=buy:CDK 入口可见时调用 onCdkBuyClick() 弹说明;
  不可见时提示「购买入口暂未开放」
- 处理完用 router.replace 清掉 query,避免刷新/返回时重复触发

LeaveView 两处 onError 接入 handleNoRunsError():命中次数不足时
不再弹红色 Toast(避免误导为系统错误),改弹专用窗;请假/续假
按 submittingExtend 区分标题。

HomeView 移除内联弹窗,改用共用组件。

npm run build 与 vue-tsc 均通过(仅剩改动前已有的 Gift 未使用告警)。
2026-10-21 16:10:05 +08:00
S
Description
No description provided
6.6 MiB
Languages
Go 58.2%
Vue 35.3%
TypeScript 4.1%
CSS 1.5%
JavaScript 0.6%
Other 0.2%