diff --git a/src/pages/integrated/repair/detail.vue b/src/pages/integrated/repair/detail.vue index 23bd863..306247e 100644 --- a/src/pages/integrated/repair/detail.vue +++ b/src/pages/integrated/repair/detail.vue @@ -47,6 +47,28 @@ 申请时间:{{ formatTime(detail.createTime) }} + + + + 回复内容 + + {{ detail.handleRemark }} + + + + + + 处理人:{{ detail.handleBy }} + {{ formatTime(detail.handleTime) }} + + @@ -122,7 +144,7 @@ function getUrgencyLabel(urgency: string) { function getStatusText(status: string) { const statusMap: Record = { - '1': '待处理', + '1': '已处理', '2': '处理中', '3': '已完成', '4': '已取消' @@ -132,7 +154,7 @@ function getStatusText(status: string) { function getStatusClass(status: string) { const classMap: Record = { - '1': 'status-pending', + '1': 'status-completed', '2': 'status-processing', '3': 'status-completed', '4': 'status-cancelled' @@ -151,6 +173,29 @@ const imageList = computed(() => { return detail.value.picUrl.split(',').filter(Boolean) }) +// 计算处理图片数组 +const handleImageList = computed(() => { + if (!detail.value.handlePicUrl) return [] + const picUrl = String(detail.value.handlePicUrl).trim() + if (!picUrl) return [] + return picUrl.split(',').map(item => item.trim()).filter(Boolean) +}) + +// 判断是否有回复内容 +const hasHandleInfo = computed(() => { + return detail.value.handleRemark || detail.value.handlePicUrl || detail.value.handleTime || detail.value.handleBy +}) + +// 预览处理图片 +function previewHandleImage(index: number) { + if (handleImageList.value.length === 0) return + const urls = handleImageList.value.map(img => filePath(img)) + uni.previewImage({ + current: index, + urls: urls + }) +} + onLoad(async (options: any) => { const id = options.id if (!id) { @@ -309,6 +354,65 @@ onLoad(async (options: any) => { } } +.reply-section { + background: #fff; + border-radius: 16rpx; + padding: 32rpx; + margin-bottom: 24rpx; + + .reply-title { + font-size: 30rpx; + font-weight: bold; + color: #333; + margin-bottom: 16rpx; + padding-bottom: 16rpx; + border-bottom: 1rpx solid #f0f0f0; + } + + .reply-content { + margin-bottom: 16rpx; + + .reply-text { + font-size: 28rpx; + color: #333; + line-height: 1.6; + } + } + + .handle-image-list { + display: flex; + flex-wrap: wrap; + gap: 16rpx; + margin-bottom: 16rpx; + } + + .handle-img { + width: 180rpx; + height: 180rpx; + border-radius: 8rpx; + background: #f7f8fa; + object-fit: cover; + } + + .reply-footer { + display: flex; + justify-content: space-between; + align-items: center; + padding-top: 16rpx; + border-top: 1rpx solid #f0f0f0; + + .handle-by { + font-size: 24rpx; + color: #666; + } + + .handle-time { + font-size: 24rpx; + color: #999; + } + } +} + .detail-footer { background: #fff; border-radius: 16rpx; diff --git a/src/pages/integrated/repair/index.vue b/src/pages/integrated/repair/index.vue index a6df490..07ce3fd 100644 --- a/src/pages/integrated/repair/index.vue +++ b/src/pages/integrated/repair/index.vue @@ -43,8 +43,8 @@ 故障描述 -