diff --git a/src/api/index.js b/src/api/index.js
index 5a64af1..253d5dd 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -100,6 +100,10 @@ export const cancelAppointment = (id) => put(`/appointment/status?id=${id}&statu
// 提交报告
export const createReport = (data) => post('/report/create', data)
+/** 员工在真实发送完成后显式确认;复制链接、二维码和预览均不得自动调用。 */
+export const confirmReportSent = (reportId, channel) =>
+ post('/report/confirm-sent', { reportId, channel })
+
/** 触发服务回顾短片生成(异步)。composeMode: preset | interleave;身份由后端从上下文派生 */
export const postReportHighlightStart = (data) => post('/report/highlight/start', data)
diff --git a/src/components/report/ReportShareModal.vue b/src/components/report/ReportShareModal.vue
index 2ae2b40..1d28014 100644
--- a/src/components/report/ReportShareModal.vue
+++ b/src/components/report/ReportShareModal.vue
@@ -6,6 +6,10 @@
✕
复制下方链接或扫码打开;也可点选话术后一键复制整段发给微信好友。
+
+ 已确认发送,门店工作台不会再提醒。
+ 复制、扫码或预览都不代表已经发送。请在宠主实际收到后再确认。
+
报告链接
@@ -50,6 +54,14 @@
+
@@ -62,6 +74,9 @@ import { buildReportH5FullUrl } from '../../utils/reportPublicUrl.js'
const props = defineProps({
show: { type: Boolean, default: false },
reportToken: { type: String, default: '' },
+ reportId: { type: [Number, String], default: '' },
+ sent: { type: Boolean, default: false },
+ confirming: { type: Boolean, default: false },
petName: { type: String, default: '' },
/** 门店名(话术变量) */
storeName: { type: String, default: '' },
@@ -69,7 +84,7 @@ const props = defineProps({
serviceType: { type: String, default: '' }
})
-const emit = defineEmits(['close', 'preview'])
+const emit = defineEmits(['close', 'preview', 'confirm-sent'])
const copiedUrl = ref(false)
const copiedTplIdx = ref(-1)
@@ -185,6 +200,19 @@ function onMask() {
function previewReport() {
emit('preview')
}
+
+function confirmAlreadySent() {
+ if (props.sent || props.confirming || !props.reportId) return
+ const channels = ['wechat', 'qr', 'other']
+ uni.showActionSheet({
+ title: '选择实际发送方式',
+ itemList: ['微信消息', '当面扫码', '其他方式'],
+ success: ({ tapIndex }) => {
+ const channel = channels[Number(tapIndex)]
+ if (channel) emit('confirm-sent', channel)
+ }
+ })
+}