From 1813a4ae0819df482a900a04ec7779ed4fdc5566 Mon Sep 17 00:00:00 2001
From: zjf <1799650030@qq.com>
Date: Mon, 10 Nov 2025 13:41:39 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9C=8D=E5=8A=A1=E7=BB=B4?=
=?UTF-8?q?=E4=BF=AE=E5=B7=A5=E5=8D=95=E6=96=B0=E5=A2=9E=E5=A4=84=E7=90=86?=
=?UTF-8?q?=E7=BB=93=E6=9E=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/integrated/repair/detail.vue | 108 ++++++++++++++++++++++++-
src/pages/integrated/repair/index.vue | 90 ++++++++++-----------
2 files changed, 151 insertions(+), 47 deletions(-)
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 @@
+
+
+
+ 回复内容
+
+ {{ detail.handleRemark }}
+
+
+
+
+
+
@@ -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 @@
故障描述
-