fix: 修复分享链接的多个问题

- reset() 清空时一并剥离 share 参数,否则重载后分享代码会被写回
- share() 以去掉 query/share 的地址为基址,避免预设代码在 init 里覆盖分享内容
- 打开分享链接前比对本地已存代码,会覆盖用户改动时先弹窗确认
- SQL 分享带上选中的数据表 id,接收方运行结果与分享者一致
- 分享负载的 code/table 字段补类型校验
- 链接损坏或预设加载失败时给出提示,不再静默吞掉
- 剪贴板写入失败时不再提示"已复制"

组件外的 init 阶段拿不到 useMessage(),新增 composables/notice.ts
用 createDiscreteApi 提供提示与确认框,主题跟随 useDark()。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CWT2cy7mkZevZR4WVVfAVu
This commit is contained in:
2026-09-07 04:08:54 -06:00
parent 4031bbe82e
commit fb071e71a1
5 changed files with 112 additions and 29 deletions

View File

@@ -9,8 +9,11 @@ import { code, loading, run, share, size } from "../composables/code"
const message = useMessage()
function handleShare() {
share()
message.success("分享链接已复制")
if (share()) {
message.success("分享链接已复制")
} else {
message.error("复制失败,请检查浏览器剪贴板权限")
}
}
</script>