From 9647e7614b492133e40882da2d623696eb340d8f Mon Sep 17 00:00:00 2001 From: chc <1501738723@qq.com> Date: Mon, 13 Jul 2026 15:26:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E6=92=AD=E5=8A=9F=E8=83=BD=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/src/views/live/control-panel.vue | 4 +-- manager/src/views/live/list.vue | 38 ++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/manager/src/views/live/control-panel.vue b/manager/src/views/live/control-panel.vue index 21081355..3be1dedd 100644 --- a/manager/src/views/live/control-panel.vue +++ b/manager/src/views/live/control-panel.vue @@ -27,7 +27,7 @@
直播预览
- +
@@ -644,7 +644,7 @@ export default { }, buildShareUrl() { const base = (this.wapUrl || BASE?.WAP_URL || config.website || "").replace(/\/?$/, "/"); - return `${base}pages/promotions/live/detail?id=${this.liveId}`; + return `${base}pages/promotion/live/room?id=${this.liveId}`; }, handleShare() { const url = this.buildShareUrl(); diff --git a/manager/src/views/live/list.vue b/manager/src/views/live/list.vue index 96d4f6b0..e84f105e 100644 --- a/manager/src/views/live/list.vue +++ b/manager/src/views/live/list.vue @@ -237,7 +237,7 @@ export default { }, buildH5ShareUrl(liveId) { const base = (this.wapUrl || BASE?.WAP_URL || config.website || "").replace(/\/?$/, "/"); - return `${base}pages/promotions/live/detail?id=${liveId}`; + return `${base}pages/promotion/live/room?id=${liveId}`; }, handleShare(row) { this.shareTitle = row.title || ""; @@ -246,8 +246,40 @@ export default { }, copyShareUrl() { if (!this.shareH5Url) return; - navigator.clipboard.writeText(this.shareH5Url); - this.$Message.success("链接已复制"); + this.copyText(this.shareH5Url); + }, + copyText(text) { + const onSuccess = () => this.$Message.success("链接已复制"); + const onFail = () => this.$Message.error("复制失败,请手动复制"); + + if (navigator.clipboard?.writeText) { + navigator.clipboard + .writeText(text) + .then(onSuccess) + .catch(() => { + this.copyTextFallback(text) ? onSuccess() : onFail(); + }); + return; + } + + this.copyTextFallback(text) ? onSuccess() : onFail(); + }, + copyTextFallback(text) { + const textArea = document.createElement("textarea"); + textArea.value = text; + textArea.style.position = "fixed"; + textArea.style.left = "-9999px"; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + let ok = false; + try { + ok = document.execCommand("copy"); + } catch (e) { + ok = false; + } + document.body.removeChild(textArea); + return ok; }, handleStart(row) { if (row.liveStatus === "LIVING") {