diff --git a/src/api/index.js b/src/api/index.js index 43da387..6bce0cd 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -92,6 +92,21 @@ export const getReportByToken = (token) => get('/report/get', { token }) // 报告列表 export const getReportList = (params) => get('/report/list', params) +// 报告页:下次服务建议日期 +export const getReportSuggestion = (token) => get(`/report/${encodeURIComponent(token)}/suggestion`) + +// 报告页:宠主留资(下次提醒) +export const submitReportReminder = (token, phone) => + post(`/report/${encodeURIComponent(token)}/reminder`, { phone, consent: true }) + +// 报告页:一键退订 +export const unsubscribeReportReminder = (unsubscribeToken) => + post('/report/unsubscribe', { unsubscribeToken }) + +// 老板后台:回访池列表 +export const getReportLeads = (storeId, status = 'pending') => + get('/report/leads', { storeId, status }) + // 服务类型列表(不传 storeId 时仅返回系统默认,供未写入门店会话的 C 端展示) export const getServiceTypeList = (storeId) => { const params = {} diff --git a/src/components/report/ReminderCard.vue b/src/components/report/ReminderCard.vue new file mode 100644 index 0000000..a0d60d0 --- /dev/null +++ b/src/components/report/ReminderCard.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/src/pages.json b/src/pages.json index 129ea9a..b462684 100644 --- a/src/pages.json +++ b/src/pages.json @@ -15,7 +15,9 @@ {"path": "pages/mine/MyPets"}, {"path": "pages/mine/Profile"}, {"path": "pages/video-player/videoPlayer"}, - {"path": "pages/report-view/reportView"} + {"path": "pages/report-view/reportView"}, + {"path": "pages/unsubscribe/Unsubscribe"}, + {"path": "pages/mine/Leads"} ], "globalStyle": { "navigationStyle": "custom", diff --git a/src/pages/mine/Leads.vue b/src/pages/mine/Leads.vue new file mode 100644 index 0000000..1347fd4 --- /dev/null +++ b/src/pages/mine/Leads.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/src/pages/mine/Mine.vue b/src/pages/mine/Mine.vue index 46c8cc7..fe6c268 100644 --- a/src/pages/mine/Mine.vue +++ b/src/pages/mine/Mine.vue @@ -39,6 +39,11 @@ 门店日程 + + + 回访池 + + @@ -102,6 +107,7 @@ const goStaffPage = () => uni.navigateTo({ url: '/pages/mine/Staff' }) const goServiceTypePage = () => uni.navigateTo({ url: '/pages/mine/ServiceType' }) const goStorePage = () => uni.navigateTo({ url: '/pages/mine/Store' }) const goSchedulePage = () => uni.navigateTo({ url: '/pages/mine/Schedule' }) +const goLeadsPage = () => uni.navigateTo({ url: '/pages/mine/Leads' }) const openProfile = () => uni.navigateTo({ url: '/pages/mine/Profile' }) const goMyPetsPage = () => uni.navigateTo({ url: '/pages/mine/MyPets' }) const goMyOrdersPage = () => uni.navigateTo({ url: '/pages/mine/MyOrders' }) diff --git a/src/pages/unsubscribe/Unsubscribe.vue b/src/pages/unsubscribe/Unsubscribe.vue new file mode 100644 index 0000000..06687c3 --- /dev/null +++ b/src/pages/unsubscribe/Unsubscribe.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/src/views/ReportView.vue b/src/views/ReportView.vue index f52373b..999261e 100644 --- a/src/views/ReportView.vue +++ b/src/views/ReportView.vue @@ -84,6 +84,12 @@ + + +
@@ -103,6 +109,7 @@ import { onLoad } from '@dcloudio/uni-app' import { getReportByToken, imgUrl } from '../api/index.js' import { formatDateTimeYMDHM } from '../utils/datetime.js' import AppIcon from '../components/AppIcon.vue' +import ReminderCard from '../components/report/ReminderCard.vue' import { navigateTo } from '../utils/globalState.js' const loading = ref(true)