9b30ab8c
刘淇
新增快速工单,原版
|
1
2
|
<template>
<view class="u-page">
|
420cb443
刘淇
快速工单列表
|
3
|
<!-- 页面级加载组件 -->
|
9b30ab8c
刘淇
新增快速工单,原版
|
4
5
6
7
8
9
10
|
<up-loading-page
v-if="loading"
:loading="true"
title="加载中..."
color="#3c9cff"
></up-loading-page>
|
420cb443
刘淇
快速工单列表
|
11
|
<!-- 内容容器 -->
|
9b30ab8c
刘淇
新增快速工单,原版
|
12
|
<view v-else class="content-wrap">
|
420cb443
刘淇
快速工单列表
|
13
14
15
16
17
18
19
20
21
|
<!-- 空状态 -->
<view v-if="!Object.keys(orderDetail).length" class="empty-wrap">
<text class="empty-icon">📄</text>
<text class="empty-text">暂无工单详情</text>
<text class="empty-subtext">请检查工单ID是否正确</text>
</view>
<!-- 工单详情内容 -->
<up-cell-group :border="false" inset style="margin: 20rpx;" v-else>
|
9b30ab8c
刘淇
新增快速工单,原版
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<!-- 1. 工单编号 -->
<up-cell
title="工单编号"
:value="orderDetail.orderNo || '--'"
class="up-line-1"
align="middle"
></up-cell>
<!-- 2. 工单位置 -->
<up-cell
title="工单位置"
:value="orderDetail.roadName || '--'"
class="up-line-1"
align="middle"
></up-cell>
<!-- 3. 工单名称 -->
<up-cell
title="工单名称"
:value="orderDetail.orderName || '--'"
class="up-line-1"
align="middle"
></up-cell>
<!-- 4. 情况描述 -->
<up-cell
title="情况描述"
:value="orderDetail.remark || '--'"
class="up-line-1"
align="middle"
></up-cell>
|
420cb443
刘淇
快速工单列表
|
54
55
56
|
<!-- 5. 问题照片(核心修复:判断条件+空值处理) -->
<up-cell title="问题照片" >
<template #value>
|
9b30ab8c
刘淇
新增快速工单,原版
|
57
|
<view class="cell-content-wrap">
|
420cb443
刘淇
快速工单列表
|
58
59
|
<!-- 修复1:正确判断problemImgsList,补充空数组默认值 -->
|
9b30ab8c
刘淇
新增快速工单,原版
|
60
|
<up-album
|
420cb443
刘淇
快速工单列表
|
61
62
63
|
v-if="!!orderDetail.problemImgsList?.length"
:urls="orderDetail.problemImgsList || []"
singleSize="70"
|
9b30ab8c
刘淇
新增快速工单,原版
|
64
|
:preview-full-image="true"
|
420cb443
刘淇
快速工单列表
|
65
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
66
67
68
|
></up-album>
<text v-else class="empty-text">暂无问题照片</text>
</view>
|
420cb443
刘淇
快速工单列表
|
69
|
</template>
|
9b30ab8c
刘淇
新增快速工单,原版
|
70
71
|
</up-cell>
|
420cb443
刘淇
快速工单列表
|
72
|
<!-- 6. 完成照片(优化:空值处理+容错) -->
|
9b30ab8c
刘淇
新增快速工单,原版
|
73
|
<up-cell title="完成照片" align="top">
|
420cb443
刘淇
快速工单列表
|
74
|
<template #value>
|
9b30ab8c
刘淇
新增快速工单,原版
|
75
76
|
<view class="cell-content-wrap">
<up-album
|
420cb443
刘淇
快速工单列表
|
77
78
79
|
v-if="!!orderDetail.completeImgsList?.length"
:urls="orderDetail.completeImgsList || []"
singleSize="70"
|
9b30ab8c
刘淇
新增快速工单,原版
|
80
|
:preview-full-image="true"
|
420cb443
刘淇
快速工单列表
|
81
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
82
83
84
|
></up-album>
<text v-else class="empty-text">暂无完成照片</text>
</view>
|
420cb443
刘淇
快速工单列表
|
85
|
</template>
|
9b30ab8c
刘淇
新增快速工单,原版
|
86
87
88
89
90
|
</up-cell>
<!-- 7. 处理结果 -->
<up-cell
title="处理结果"
|
5cb33b90
刘淇
完成巡查计划 详情
|
91
|
:value="orderDetail.handleResult || '--'"
|
9b30ab8c
刘淇
新增快速工单,原版
|
92
93
94
95
96
|
class="up-line-1"
align="middle"
:border="false"
></up-cell>
</up-cell-group>
|
9b30ab8c
刘淇
新增快速工单,原版
|
97
98
99
100
101
102
103
|
</view>
</view>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { inspectionPlanDetail } from "@/api/quick-order/quick-order";
|
9b30ab8c
刘淇
新增快速工单,原版
|
104
|
import { onLoad, onShow } from '@dcloudio/uni-app';
|
420cb443
刘淇
快速工单列表
|
105
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
106
107
108
109
|
// 状态管理
const loading = ref(true);
const orderDetail = ref({});
|
9b30ab8c
刘淇
新增快速工单,原版
|
110
111
112
113
114
115
116
117
|
/**
* 获取工单详情
*/
const getOrderDetail = async (id: string) => {
try {
loading.value = true;
const res = await inspectionPlanDetail({ id });
|
420cb443
刘淇
快速工单列表
|
118
119
120
121
122
123
124
|
console.log('接口返回:', res);
// 优化:确保图片数组为数组类型,避免非数组导致渲染错误
orderDetail.value = {
...res,
problemImgsList: Array.isArray(res.problemImgsList) ? res.problemImgsList : [],
completeImgsList: Array.isArray(res.completeImgsList) ? res.completeImgsList : []
};
|
9b30ab8c
刘淇
新增快速工单,原版
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
} catch (error) {
console.error('获取工单详情失败:', error);
uni.showToast({ title: '加载失败,请重试', icon: 'none' });
} finally {
loading.value = false;
}
};
// 页面加载
onLoad((options) => {
const { id } = options;
if (id) {
getOrderDetail(id);
} else {
loading.value = false;
uni.showToast({ title: '缺少工单ID', icon: 'none' });
}
});
</script>
<style scoped lang="scss">
|
420cb443
刘淇
快速工单列表
|
146
147
148
149
150
151
|
// 页面基础样式
.u-page {
min-height: 100vh;
background-color: #f5f5f5;
box-sizing: border-box;
}
|
9b30ab8c
刘淇
新增快速工单,原版
|
152
|
|
420cb443
刘淇
快速工单列表
|
153
|
// 内容容器
|
9b30ab8c
刘淇
新增快速工单,原版
|
154
155
156
157
158
|
.content-wrap {
background: #fff;
width: 100%;
box-sizing: border-box;
overflow-y: auto;
|
420cb443
刘淇
快速工单列表
|
159
|
min-height: calc(100vh - 40rpx);
|
9b30ab8c
刘淇
新增快速工单,原版
|
160
161
|
}
|
420cb443
刘淇
快速工单列表
|
162
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
// 空文本样式
.empty-text {
color: #999;
font-size: 28rpx;
line-height: 80rpx;
display: block;
text-align: left;
}
// 优化uview组件样式
:deep(.up-cell-group) {
--u-cell-group-background-color: #fff;
--u-cell-group-border-radius: 12rpx;
--u-cell-group-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
}
|
420cb443
刘淇
快速工单列表
|
179
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
180
181
182
183
184
185
186
187
|
:deep(.up-cell) {
--u-cell-title-font-size: 28rpx;
--u-cell-value-font-size: 28rpx;
--u-cell-title-color: #666;
--u-cell-value-color: #333;
--u-cell-padding: 20rpx 15rpx;
--u-cell-border-color: #f5f5f5;
}
|
420cb443
刘淇
快速工单列表
|
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
// 相册样式优化(关键:适配图片展示)
:deep(.up-album) {
width: 100%;
box-sizing: border-box;
}
:deep(.up-album__list) {
display: flex;
flex-wrap: wrap;
padding: 0;
margin: 0;
}
|
9b30ab8c
刘淇
新增快速工单,原版
|
202
|
:deep(.up-album__item) {
|
420cb443
刘淇
快速工单列表
|
203
204
205
|
width: calc(33.333% - 10rpx);
height: 200rpx; // 固定图片高度,避免变形
margin: 5rpx;
|
9b30ab8c
刘淇
新增快速工单,原版
|
206
|
border-radius: 8rpx;
|
420cb443
刘淇
快速工单列表
|
207
208
209
210
211
212
213
214
|
overflow: hidden;
background-color: #f8f8f8;
}
:deep(.up-album__image) {
width: 100%;
height: 100%;
object-fit: cover; // 图片裁剪填充,避免拉伸
|
9b30ab8c
刘淇
新增快速工单,原版
|
215
216
217
218
219
220
221
|
}
// 原生空状态样式
.empty-wrap {
margin-top: 200rpx;
text-align: center;
}
|
420cb443
刘淇
快速工单列表
|
222
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
223
224
225
226
227
228
|
.empty-icon {
font-size: 80rpx;
display: block;
margin-bottom: 20rpx;
color: #ddd;
}
|
420cb443
刘淇
快速工单列表
|
229
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
230
231
232
233
234
|
.empty-text {
font-size: 28rpx;
color: #999;
display: block;
}
|
420cb443
刘淇
快速工单列表
|
235
|
|
9b30ab8c
刘淇
新增快速工单,原版
|
236
237
238
239
240
241
242
|
.empty-subtext {
font-size: 24rpx;
color: #ccc;
margin-top: 10rpx;
display: block;
}
|
420cb443
刘淇
快速工单列表
|
243
|
// 加载组件样式
|
9b30ab8c
刘淇
新增快速工单,原版
|
244
245
246
247
|
:deep(.up-loading-page) {
margin-top: 100rpx;
}
</style>
|