www:新增问题反馈功能;dashboard:适配问题反馈功能,可以在后台系统和用户沟通
This commit is contained in:
@@ -50,5 +50,10 @@ export function useRequest() {
|
||||
return request<T>(url, { method: 'POST', body });
|
||||
}
|
||||
|
||||
return { request, get, post };
|
||||
/** POST multipart/form-data(文件上传;ofetch 自动设置 boundary) */
|
||||
function postForm<T = unknown>(url: string, body: FormData) {
|
||||
return request<T>(url, { method: 'POST', body });
|
||||
}
|
||||
|
||||
return { request, get, post, postForm };
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ import type {
|
||||
AboutConfig,
|
||||
SupportConfig,
|
||||
ContactConfig,
|
||||
SupportFeedbackItem,
|
||||
SupportFeedbackMessage,
|
||||
PageSeo
|
||||
} from '~/types/site';
|
||||
|
||||
@@ -81,5 +83,33 @@ export function useSiteApi() {
|
||||
return useRequest().post<null>('/site/contact/submit', { form_data: formData });
|
||||
}
|
||||
|
||||
return { getGlobal, getNav, getSections, getI18n, getProducts, getNews, getNewsDetail, getPageConfig, getPageSeo, getContact, submitContact };
|
||||
/** 提交问题反馈(multipart/form-data:product_id / description / email / log_file[可选]) */
|
||||
function submitSupportFeedback(formData: FormData) {
|
||||
return useRequest().postForm<{ feedback_no: string }>('/site/support/feedback', formData);
|
||||
}
|
||||
|
||||
/** 按邮箱或反馈编号查询问题反馈 */
|
||||
function getSupportFeedbacks(params: { email?: string; feedback_no?: string }) {
|
||||
return get<{ items: SupportFeedbackItem[]; total: number }>('/site/support/feedbacks', params);
|
||||
}
|
||||
|
||||
/** 拉取反馈对话消息(含当前反馈状态,便于轮询时同步状态) */
|
||||
function getFeedbackMessages(feedbackNo: string, email: string, sinceId?: number) {
|
||||
const params: Record<string, unknown> = { email };
|
||||
if (sinceId && sinceId > 0) params.since_id = sinceId;
|
||||
return get<{ items: SupportFeedbackMessage[]; total: number; status: string }>(
|
||||
`/site/support/feedbacks/${encodeURIComponent(feedbackNo)}/messages`,
|
||||
params,
|
||||
);
|
||||
}
|
||||
|
||||
/** 用户发送反馈对话消息 */
|
||||
function sendFeedbackMessage(feedbackNo: string, email: string, content: string) {
|
||||
return useRequest().post<{ items: SupportFeedbackMessage[]; total: number }>(
|
||||
`/site/support/feedbacks/${encodeURIComponent(feedbackNo)}/messages`,
|
||||
{ email, content },
|
||||
);
|
||||
}
|
||||
|
||||
return { getGlobal, getNav, getSections, getI18n, getProducts, getNews, getNewsDetail, getPageConfig, getPageSeo, getContact, submitContact, submitSupportFeedback, getSupportFeedbacks, getFeedbackMessages, sendFeedbackMessage };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user