| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <script setup lang="ts">
- import { ref, onMounted } from 'vue'
- import { onLoad } from '@dcloudio/uni-app'
- // 模拟反馈详情数据
- interface FeedbackDetail {
- id: number
- content: string
- imageUrl?: string
- date: string
- status: '已回复' | '处理中' | '已解决'
- replyContent?: string
- replyDate?: string
- }
- const feedbackDetail = ref<FeedbackDetail>({
- id: 0,
- content: '',
- imageUrl: '',
- date: '',
- status: '处理中'
- })
- // 使用UniApp的onLoad钩子获取页面参数
- onLoad((options) => {
- if (options && options.id) {
- // 模拟根据ID获取详情数据
- // 实际项目中这里应该调用API获取数据
- setTimeout(() => {
- feedbackDetail.value = {
- id: parseInt(options.id),
- content: '这是一个详细的反馈内容,用户在这里描述了具体的问题和情况。希望团队能够尽快处理这个问题。',
- imageUrl: '/static/plus.png',
- date: '2025-10-28 14:30',
- status: '已回复',
- replyContent: '感谢您的反馈,我们已经收到并开始处理您的问题。预计会在3个工作日内解决,请耐心等待。',
- replyDate: '2025-10-29 09:15'
- }
- }, 500)
- }
- })
- </script>
- <template>
- <view class="bg-gray-50 min-h-screen">
- <!-- 详情内容 -->
- <view class="p-4">
- <view class="bg-white rounded-lg shadow-sm p-4 mb-4">
- <view class="flex justify-between items-start mb-3">
- <text class="text-gray-900 font-medium">反馈 #{{ feedbackDetail.id }}</text>
- <text class="text-xs px-2 py-1 rounded" :class="{
- 'bg-green-100 text-green-800': feedbackDetail.status === '已解决',
- 'bg-yellow-100 text-yellow-800': feedbackDetail.status === '处理中',
- 'bg-blue-100 text-blue-800': feedbackDetail.status === '已回复'
- }">{{ feedbackDetail.status }}</text>
- </view>
- <view class="text-gray-700 text-sm mb-4">
- {{ feedbackDetail.content }}
- </view>
- <view v-if="feedbackDetail.imageUrl" class="mb-4">
- <image
- :src="feedbackDetail.imageUrl"
- class="w-32 h-32 rounded object-cover"
- mode="aspectFill"
- />
- </view>
- <view class="text-xs text-gray-500 border-t border-gray-100 pt-3">
- {{ feedbackDetail.date }}
- </view>
- </view>
- <!-- 回复内容 -->
- <view
- v-if="feedbackDetail.replyContent"
- class="bg-white rounded-lg shadow-sm p-4"
- >
- <view class="font-medium text-gray-900 mb-3">官方回复</view>
- <view class="text-gray-700 text-sm mb-3">
- {{ feedbackDetail.replyContent }}
- </view>
- <view class="text-xs text-gray-500 border-t border-gray-100 pt-3">
- {{ feedbackDetail.replyDate }}
- </view>
- </view>
- <view
- v-else
- class="bg-white rounded-lg shadow-sm p-4"
- >
- <view class="text-gray-500 text-center py-6">
- 暂无回复
- </view>
- </view>
- </view>
- </view>
- </template>
- <style scoped>
- </style>
|