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) + } + }) +}