diff --git a/config/api/feedback.js b/config/api/feedback.js
index 0b89f8e..950674d 100644
--- a/config/api/feedback.js
+++ b/config/api/feedback.js
@@ -1,18 +1,18 @@
import request from '../http'
-// 投诉反馈
+// 新增反馈
+// data 参数包含: type, content, phone, files (数组)
export const addUserFeedback = (data) => {
- console.log(data);
return request({
url: '/app/feedback/add',
method: 'post',
data,
+ hideLoading: true, // 手动控制loading,避免重复显示
})
}
-// 获取投诉记录列表
+// 获取反馈列表
export const getFeedbackList = (params) => {
- // GET请求需要将参数拼接到URL上
let url = '/app/feedback/list';
if (params) {
const queryString = Object.keys(params)
@@ -23,12 +23,12 @@ export const getFeedbackList = (params) => {
}
}
return request({
- url: url,
+ url,
method: 'get',
})
}
-// 获取投诉详情
+// 获取反馈详情(含基础信息)
export const getFeedbackDetail = (id) => {
return request({
url: `/app/feedback/${id}`,
@@ -36,10 +36,18 @@ export const getFeedbackDetail = (id) => {
})
}
-// 提交投诉回复
-export const submitFeedbackReply = (data) => {
+// 获取反馈对话消息
+export const getFeedbackMessages = (id) => {
return request({
- url: '/app/feedback/reply',
+ url: `/app/feedback/${id}/messages`,
+ method: 'get',
+ })
+}
+
+// 用户追加消息
+export const sendFeedbackMessage = (id, data) => {
+ return request({
+ url: `/app/feedback/${id}/message`,
method: 'post',
data,
})
diff --git a/config/url.js b/config/url.js
index 38433ce..be24145 100644
--- a/config/url.js
+++ b/config/url.js
@@ -1,7 +1,7 @@
// export const URL = "https://my.gxfs123.com/api" //正式服务器-弃用
-// export const URL = "https://manager.fdzpower.com/api" //正式服务器
-export const URL = "https://fansdev.gxfs123.com/api" //测试服务器
-// export const URL = "http://192.168.5.149:8080" //本地调试
+export const URL = "https://manager.fdzpower.com/api" //正式服务器
+// export const URL = "https://fansdev.gxfs123.com/api" //测试服务器
+// export const URL = "http://192.168.5.30:8080" //本地调试
// export const URL = "http://127.0.0.1:8080" //本地调试
export const appid = "wx2165f0be356ae7a9" //小程序appid
\ No newline at end of file
diff --git a/locale/en-US.js b/locale/en-US.js
index 7f9ae93..5304925 100644
--- a/locale/en-US.js
+++ b/locale/en-US.js
@@ -335,6 +335,7 @@ export default {
},
feedback: {
+ uploading: 'Uploading...',
title: 'Feedback',
placeholder: 'Describe the issue',
submit: 'Submit',
@@ -350,7 +351,7 @@ export default {
pleaseSelectType: 'Select type',
pleaseDescribe: 'Describe issue',
pleaseContact: 'Leave contact',
- imageUploadFailed: 'Upload failed',
+ imageUploadFailed: 'Image upload failed, please try again',
deviceFault: 'Device Fault',
chargingIssue: 'Charging',
usageSuggestion: 'Suggestion',
diff --git a/locale/zh-CN.js b/locale/zh-CN.js
index 0838d20..af2f276 100644
--- a/locale/zh-CN.js
+++ b/locale/zh-CN.js
@@ -335,6 +335,7 @@ export default {
},
feedback: {
+ uploading: '上传中...',
title: '投诉与建议',
placeholder: '请详细描述您遇到的问题,以便我们更好地为您解决',
submit: '提交反馈',
@@ -350,7 +351,7 @@ export default {
pleaseSelectType: '请选择问题类型',
pleaseDescribe: '请描述您的问题',
pleaseContact: '请留下联系方式',
- imageUploadFailed: '图片上传失败',
+ imageUploadFailed: '图片上传失败,请重试',
deviceFault: '设备故障',
chargingIssue: '收费问题',
usageSuggestion: '使用建议',
diff --git a/pages/feedback/detail.vue b/pages/feedback/detail.vue
index 6248f88..0dfa2f9 100644
--- a/pages/feedback/detail.vue
+++ b/pages/feedback/detail.vue
@@ -12,11 +12,22 @@
+
+
+ {{ detail.title || '-' }}
+
+
{{ detail.content || '-' }}
+
+
+ {{ $t('feedback.contactPhone') }}
+ {{ detail.phone }}
+
+
@@ -39,14 +50,14 @@
-
{{ reply.isPlatform ? '平台' : '我' }}
- {{ reply.isPlatform ? $t('feedback.platform') : $t('feedback.me') }}
+ {{ reply.senderName || (reply.isPlatform ? $t('feedback.platform') : $t('feedback.me')) }}
{{ formatTime(reply.createTime) }}
{{ reply.content || '-' }}
@@ -56,7 +67,7 @@
-
+
@@ -71,14 +82,16 @@
@@ -365,8 +357,8 @@
flex-wrap: wrap;
.upload-item {
- width: 200rpx;
- height: 200rpx;
+ width: 180rpx;
+ height: 180rpx;
margin-right: 20rpx;
margin-bottom: 20rpx;
position: relative;
@@ -394,8 +386,8 @@
}
.upload-btn {
- width: 200rpx;
- height: 200rpx;
+ width: 180rpx;
+ height: 180rpx;
background: #f5f5f5;
border-radius: 10rpx;
display: flex;
diff --git a/pages/feedback/list.vue b/pages/feedback/list.vue
index 3da63e4..0a10154 100644
--- a/pages/feedback/list.vue
+++ b/pages/feedback/list.vue
@@ -104,17 +104,23 @@
},
status: ''
},
+ {
+ get text() {
+ return $t('feedback.pending')
+ },
+ status: 'pending'
+ },
{
get text() {
return $t('feedback.processing')
},
- status: 'processing'
+ status: 'in_progress'
},
{
get text() {
return $t('feedback.completed')
},
- status: 'completed'
+ status: 'resolved'
}
]);
@@ -145,8 +151,8 @@
loading.value = true;
const status = statusTabs[currentTab.value].status;
const params = {
- page: currentPage.value,
- size: pageSize.value
+ pageNum: currentPage.value,
+ pageSize: pageSize.value
};
if (status) {
params.status = status;
@@ -205,9 +211,9 @@
// 获取状态文本
const getStatusText = (status) => {
const statusMap = {
- 'processing': $t('feedback.processing'),
- 'completed': $t('feedback.completed'),
- 'pending': $t('feedback.pending')
+ 'pending': $t('feedback.pending'),
+ 'in_progress': $t('feedback.processing'),
+ 'resolved': $t('feedback.completed')
};
return statusMap[status] || $t('feedback.pending');
};
@@ -215,9 +221,9 @@
// 获取状态样式类
const getStatusClass = (status) => {
const classMap = {
- 'processing': 'chip-processing',
- 'completed': 'chip-completed',
- 'pending': 'chip-pending'
+ 'pending': 'chip-pending',
+ 'in_progress': 'chip-processing',
+ 'resolved': 'chip-completed'
};
return classMap[status] || 'chip-pending';
};