3d474e84
刘淇
快速工单 加上业务线
|
1
2
3
4
5
|
<template>
<view class="page-container">
<!-- 顶部固定区域 -->
<up-sticky>
<view class="header-wrap">
|
3d474e84
刘淇
快速工单 加上业务线
|
6
7
8
9
10
11
12
13
|
<up-tabs
v-model="activeTab"
:list="tabList"
active-color="#1989fa"
inactive-color="#666"
font-size="30rpx"
@click="handleTabChange"
/>
|
3d474e84
刘淇
快速工单 加上业务线
|
14
15
|
<!-- 第二行:下拉框 + 搜索框 -->
<view class="search-header">
|
3d474e84
刘淇
快速工单 加上业务线
|
16
17
18
19
20
21
22
23
24
25
|
<view class="select-wrap common-text-color">
<up-select
v-model:current="selectedSortValue"
:options="sortOptions"
:showOptionsLabel="true"
@select="handleSortChange"
border="surround"
:style="{ flex: 1 }"
/>
</view>
|
3d474e84
刘淇
快速工单 加上业务线
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<view class="search-input-wrap">
<up-search
v-model="searchValue"
placeholder="请输入关键字"
@search="handleSearch"
bg-color="#f5f5f5"
:clearabled="false"
:show-action="true"
actionText="搜索"
:animation="true"
@custom="handleSearch"
/>
</view>
</view>
</view>
</up-sticky>
<!-- 列表容器 -->
<z-paging
|
8ddc6f6e
刘淇
登录 修改样式
|
45
|
ref="pagingRef"
|
3d474e84
刘淇
快速工单 加上业务线
|
46
47
48
|
v-model="orderList"
@query="queryList"
:auto-show-system-loading="true"
|
3d474e84
刘淇
快速工单 加上业务线
|
49
50
|
>
<template #empty>
|
8ddc6f6e
刘淇
登录 修改样式
|
51
|
<empty-view />
|
3d474e84
刘淇
快速工单 加上业务线
|
52
53
|
</template>
|
12e66ec8
刘淇
新增树
|
54
|
<view class="common-card-list">
|
3d474e84
刘淇
快速工单 加上业务线
|
55
|
<up-card
|
3d474e84
刘淇
快速工单 加上业务线
|
56
57
58
|
:border="false"
:foot-border-top="false"
v-for="(item, index) in orderList"
|
12e66ec8
刘淇
新增树
|
59
|
:key="item.id || index"
|
3d474e84
刘淇
快速工单 加上业务线
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
:show-head="false"
class="order-card"
>
<template #body>
<view class="card-body">
<view class="u-body-item u-flex">
<view class="u-body-item-title">工单编号:</view>
<view class="u-line-1 u-body-value">{{ item.orderNo || '-' }}</view>
</view>
<view class="u-body-item u-flex">
<view class="u-body-item-title">工单位置:</view>
<view class="u-line-1 u-body-value">{{ item.lonLatAddress || '-' }}</view>
</view>
<view class="u-body-item u-flex">
<view class="u-body-item-title">工单名称:</view>
<view class="u-line-1 u-body-value">{{ item.orderName || '未填写' }}</view>
</view>
<view class="u-body-item u-flex">
<view class="u-body-item-title">情况描述:</view>
<view class="u-line-1 u-body-value">{{ item.remark || '无' }}</view>
</view>
|
12e66ec8
刘淇
新增树
|
81
82
83
84
85
86
87
88
89
|
<!-- 核心修改:紧急程度行 合并工单详情按钮 【我发起的/已办】放到该行最右侧 -->
<view class="u-body-item u-flex common-justify-between common-item-center">
<view class="u-body-item-title">紧急程度:{{ uni.$dict.getDictLabel('workorder_pressing_type', item.pressingType) || '-' }}</view>
<!-- <view class="u-line-1 u-body-value flex-1 text-right">-->
<!-- {{ uni.$dict.getDictLabel('workorder_pressing_type', item.pressingType) || '-' }}-->
<!-- </view>-->
<!-- 只有 我发起的(1)、已办(2) 显示该行的详情按钮 -->
<view v-if="activeTab !== 0" class="ml-10">
<up-button type="primary" size="mini" @click="handleDetail(item)">工单详情</up-button>
|
3d474e84
刘淇
快速工单 加上业务线
|
90
91
92
93
|
</view>
</view>
<view class="u-body-item u-flex">
<view class="u-body-item-title">工单状态:</view>
|
12e66ec8
刘淇
新增树
|
94
|
<view class="u-line-1 u-body-value">{{ buzStatusMap[item.buzStatus] || '-' }}</view>
|
3d474e84
刘淇
快速工单 加上业务线
|
95
96
97
|
</view>
<view class="u-body-item u-flex">
<view class="u-body-item-title">提交时间:</view>
|
12e66ec8
刘淇
新增树
|
98
|
<view class="u-line-1 u-body-value">{{ item.createTime ? timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss') : '-' }}</view>
|
3d474e84
刘淇
快速工单 加上业务线
|
99
|
</view>
|
12e66ec8
刘淇
新增树
|
100
101
102
|
<!-- 待办工单(0) 保留原来的操作按钮区 不变 -->
<view v-if="activeTab === 0" class="u-body-item u-flex common-justify-between common-item-center mt-20">
|
8ddc6f6e
刘淇
登录 修改样式
|
103
104
105
|
<up-button type="warning" size="mini" @click="handleReject(item)" v-show="nextStepMap[item.taskKey].backShow">回退</up-button>
<up-button type="success" size="mini" @click="handleRenew(item)" v-show="nextStepMap[item.taskKey].renewShow">重新提交</up-button>
<up-button type="primary" size="mini" @click="handleProcess(item)">{{ nextStepMap[item.taskKey].btnText }}</up-button>
|
3d474e84
刘淇
快速工单 加上业务线
|
106
107
|
<up-button type="info" size="mini" @click="handleDetail(item)">详情</up-button>
</view>
|
3d474e84
刘淇
快速工单 加上业务线
|
108
|
|
12e66ec8
刘淇
新增树
|
109
|
<!-- 已删除:原来单独的【我发起的/已办】按钮区,不需要了 -->
|
3d474e84
刘淇
快速工单 加上业务线
|
110
111
112
113
114
115
|
</view>
</template>
</up-card>
</view>
</z-paging>
|
8ddc6f6e
刘淇
登录 修改样式
|
116
|
<!-- 底部新增工单按钮 -->
|
6e9f0396
刘淇
全域督察员
|
117
|
<view class="fixed-bottom-btn-wrap" v-if="isAi">
|
8ddc6f6e
刘淇
登录 修改样式
|
118
|
<up-button type="primary" size="large" @click="handleAddOrder">新增工单</up-button>
|
3d474e84
刘淇
快速工单 加上业务线
|
119
120
|
</view>
|
8ddc6f6e
刘淇
登录 修改样式
|
121
|
<!-- 回退原因弹窗 -->
|
3d474e84
刘淇
快速工单 加上业务线
|
122
123
124
125
126
127
128
129
130
131
|
<up-modal
:show="rejectModalShow"
title="回退原因"
:closeOnClickOverlay="false"
:showConfirmButton="true"
:showCancelButton="true"
@cancel="handleRejectModalCancel"
@confirm="confirmReject"
>
<view class="reject-modal-content">
|
3d474e84
刘淇
快速工单 加上业务线
|
132
133
134
135
136
137
138
139
|
<up-textarea
v-model.trim="rejectReason"
placeholder="请输入回退原因(必填)"
rows="6"
:count="200"
maxlength="200"
class="reject-textarea"
/>
|
3d474e84
刘淇
快速工单 加上业务线
|
140
141
142
|
<view class="upload-wrap mt-20">
<view class="upload-title">上传图片(选填)</view>
<up-upload
|
8ddc6f6e
刘淇
登录 修改样式
|
143
|
:file-list="rejectImgs.rawImgList.value || []"
|
3d474e84
刘淇
快速工单 加上业务线
|
144
145
146
147
148
149
150
151
152
153
154
155
156
|
@after-read="rejectImgs.uploadImgs"
@delete="rejectImgs.deleteImg"
multiple
width="70"
height="70"
:max-count="rejectImgs.uploadConfig.maxCount"
:upload-text="rejectImgs.uploadConfig.uploadText"
:size-type="rejectImgs.uploadConfig.sizeType"
/>
</view>
</view>
</up-modal>
|
8ddc6f6e
刘淇
登录 修改样式
|
157
|
<!-- 验收弹窗 -->
|
3d474e84
刘淇
快速工单 加上业务线
|
158
159
160
161
162
163
164
165
166
167
|
<up-modal
:show="acceptModalShow"
title="验收"
:closeOnClickOverlay="false"
:showConfirmButton="true"
:showCancelButton="true"
@cancel="handleAcceptModalCancel"
@confirm="handleAcceptModalConfirm"
>
<view class="accept-modal-content">
|
3d474e84
刘淇
快速工单 加上业务线
|
168
169
170
171
172
173
|
<view class="radio-group-wrap">
<up-radio-group v-model="acceptRadioValue">
<up-radio name="0" label="通过"></up-radio>
<up-radio name="1" label="不通过"></up-radio>
</up-radio-group>
</view>
|
3d474e84
刘淇
快速工单 加上业务线
|
174
175
176
177
178
179
180
181
182
183
|
<view class="textarea-wrap mt-30">
<up-textarea
v-model.trim="acceptReason"
placeholder="请输入验收原因(必填,最多200字)"
:required="true"
maxlength="200"
rows="5"
count
/>
</view>
|
3d474e84
刘淇
快速工单 加上业务线
|
184
185
186
187
188
189
|
<view class="upload-wrap mt-20">
<view class="upload-title">上传验收图片(选填)</view>
<up-upload
:file-list="acceptImgs.rawImgList.value || []"
@after-read="acceptImgs.uploadImgs"
@delete="acceptImgs.deleteImg"
|
3d474e84
刘淇
快速工单 加上业务线
|
190
191
192
193
194
195
196
197
198
199
200
|
multiple
width="70"
height="70"
:max-count="acceptImgs.uploadConfig.maxCount"
:upload-text="acceptImgs.uploadConfig.uploadText"
:size-type="acceptImgs.uploadConfig.sizeType"
/>
</view>
</view>
</up-modal>
</view>
|
4c54ad5d
刘淇
转工单 选择是 传紧急程度和...
|
201
202
|
</template>
|
3d474e84
刘淇
快速工单 加上业务线
|
203
|
<script setup>
|
6e9f0396
刘淇
全域督察员
|
204
|
import { ref, computed } from 'vue';
|
3d474e84
刘淇
快速工单 加上业务线
|
205
206
207
208
209
210
|
import { onShow, onLoad } from '@dcloudio/uni-app';
import { timeFormat } from '@/uni_modules/uview-plus';
import {
myBuzSimplePage,
todoBuzSimplePage,
doneBuzSimplePage,
|
2e2b95d3
刘淇
修改接口路径 和命名
|
211
212
213
214
|
qyUniversalApproval,
daquUniversalApproval,
dcyUniversalApproval
} from '@/api/regional-order-manage/regional-order-manage'
|
3d474e84
刘淇
快速工单 加上业务线
|
215
216
|
import { useUserStore } from '@/pinia/user';
import { nextStepMap, buzStatusMap } from '@/common/utils/common'
|
3d474e84
刘淇
快速工单 加上业务线
|
217
|
import { useUploadImgs } from '@/common/utils/useUploadImgs'
|
8ddc6f6e
刘淇
登录 修改样式
|
218
219
|
// ========== 全局实例 & 常量 ==========
|
3d474e84
刘淇
快速工单 加上业务线
|
220
|
const userStore = useUserStore();
|
8ddc6f6e
刘淇
登录 修改样式
|
221
222
223
224
|
const USER_ROLES = userStore.userInfo?.roles || [];
// ========== 基础状态 (按模块分组,语义化更强) ==========
// tab切换
|
3d474e84
刘淇
快速工单 加上业务线
|
225
|
const activeTab = ref(0); // 0-待办 1-我发起的 2-已办
|
12e66ec8
刘淇
新增树
|
226
|
const tabList = [{name: '待办'}, {name: '我发起的任务'}, {name: '已办'}];
|
8ddc6f6e
刘淇
登录 修改样式
|
227
|
// 排序与搜索
|
3d474e84
刘淇
快速工单 加上业务线
|
228
229
|
const selectedSortValue = ref(1);
const sortOptions = ref([
|
8ddc6f6e
刘淇
登录 修改样式
|
230
|
{name: '位置', id: 1}, {name: '名称', id: 2}, {name: '描述', id: 3}, {name: '编号', id: 4},
|
3d474e84
刘淇
快速工单 加上业务线
|
231
|
]);
|
3d474e84
刘淇
快速工单 加上业务线
|
232
|
const searchValue = ref('');
|
8ddc6f6e
刘淇
登录 修改样式
|
233
234
|
// 分页相关
const pagingRef = ref(null);
|
3d474e84
刘淇
快速工单 加上业务线
|
235
|
const orderList = ref([]);
|
8ddc6f6e
刘淇
登录 修改样式
|
236
|
|
12e66ec8
刘淇
新增树
|
237
|
// ========== 角色权限计算属性 ==========
|
6e9f0396
刘淇
全域督察员
|
238
|
const isAi = computed(() => {
|
12e66ec8
刘淇
新增树
|
239
|
const roles = USER_ROLES || [];
|
8ddc6f6e
刘淇
登录 修改样式
|
240
|
// AI工单派发人员 不显示新增按钮,其他角色显示
|
12e66ec8
刘淇
新增树
|
241
|
return !roles.includes('AI_dispatcher');
|
3d474e84
刘淇
快速工单 加上业务线
|
242
|
});
|
8ddc6f6e
刘淇
登录 修改样式
|
243
244
245
246
247
|
// ========== 回退弹窗相关 ==========
const rejectModalShow = ref(false);
const rejectReason = ref('');
const currentRejectItem = ref(null);
|
3d474e84
刘淇
快速工单 加上业务线
|
248
|
const rejectImgs = useUploadImgs({
|
8ddc6f6e
刘淇
登录 修改样式
|
249
|
maxCount: 3, uploadText: '选择回退图片', sizeType: ['compressed'], formRef: null, fieldName: 'rejectImgs'
|
3d474e84
刘淇
快速工单 加上业务线
|
250
|
})
|
8ddc6f6e
刘淇
登录 修改样式
|
251
252
253
254
255
256
|
// ========== 验收弹窗相关 ==========
const acceptModalShow = ref(false);
const acceptRadioValue = ref('0'); // 默认通过
const acceptReason = ref('');
const currentAcceptItem = ref(null);
|
3d474e84
刘淇
快速工单 加上业务线
|
257
|
const acceptImgs = useUploadImgs({
|
8ddc6f6e
刘淇
登录 修改样式
|
258
|
maxCount: 3, uploadText: '选择验收图片', sizeType: ['compressed'], formRef: null, fieldName: 'acceptImgs'
|
3d474e84
刘淇
快速工单 加上业务线
|
259
|
})
|
8ddc6f6e
刘淇
登录 修改样式
|
260
261
262
|
// ========== 公共封装方法 (核心优化:消灭重复代码) ==========
/**
|
12e66ec8
刘淇
新增树
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
|
* 统一提示方法
*/
const showToast = (title, icon = 'none', duration = 2000) => {
uni.showToast({ title, icon, duration });
};
/**
* z-paging 统一操作,处理空指针
*/
const pagingHandle = (method, ...args) => {
const paging = pagingRef.value;
if (paging && typeof paging[method] === 'function') {
paging[method](...args);
}
};
/**
|
8ddc6f6e
刘淇
登录 修改样式
|
280
|
* 生成统一的临时存储key
|
8ddc6f6e
刘淇
登录 修改样式
|
281
282
283
284
285
286
287
|
*/
const generateTempKey = (prefix = 'order') => {
return `${prefix}_${Date.now()}_${Math.floor(Math.random() * 10000)}`;
};
/**
* 存储工单数据到本地缓存
|
8ddc6f6e
刘淇
登录 修改样式
|
288
289
290
291
292
293
294
295
296
|
*/
const setOrderStorage = (item, prefix) => {
if (!item?.id) return null;
const tempKey = generateTempKey(prefix);
try {
uni.setStorageSync(tempKey, item);
return tempKey;
} catch (error) {
console.error('存储工单数据失败:', error);
|
12e66ec8
刘淇
新增树
|
297
|
showToast('数据存储异常,请重试');
|
8ddc6f6e
刘淇
登录 修改样式
|
298
299
300
301
302
303
|
return null;
}
};
/**
* 获取分页请求公共参数
|
8ddc6f6e
刘淇
登录 修改样式
|
304
305
306
307
308
309
310
311
312
313
314
315
|
*/
const getQueryParams = (pageNo, pageSize) => {
return {
searchContent: searchValue.value.trim() || '',
pageNo,
pageSize,
type: selectedSortValue.value
};
};
/**
* 统一调用审批接口
|
8ddc6f6e
刘淇
登录 修改样式
|
316
317
318
319
|
*/
const callApprovalApi = async (params, taskKey) => {
if (taskKey === 'shRegionManager') return await dcyUniversalApproval(params);
if (taskKey === 'regionManager') return await qyUniversalApproval(params);
|
8ddc6f6e
刘淇
登录 修改样式
|
320
321
322
|
if (USER_ROLES.includes('regional_manager')) return await daquUniversalApproval(params);
if (USER_ROLES.includes('Inspector_global')) return await dcyUniversalApproval(params);
if (USER_ROLES.includes('patrol_global')) return await qyUniversalApproval(params);
|
12e66ec8
刘淇
新增树
|
323
|
throw new Error('未匹配到对应的审批接口,请检查角色或工单taskKey');
|
8ddc6f6e
刘淇
登录 修改样式
|
324
325
326
|
};
/**
|
12e66ec8
刘淇
新增树
|
327
|
* 统一跳转工单页面 (支持携带回调事件)
|
8ddc6f6e
刘淇
登录 修改样式
|
328
|
*/
|
12e66ec8
刘淇
新增树
|
329
330
331
332
333
334
335
336
|
const navToOrderPage = (path, query = {}, events = {}) => {
const queryStr = Object.keys(query).map(k => `${k}=${encodeURIComponent(query[k])}`).join('&');
const url = `${path}${queryStr ? '?' + queryStr : ''}`;
if(Object.keys(events).length) {
uni.navigateTo({ url, events });
} else {
uni.redirectTo({ url });
}
|
8ddc6f6e
刘淇
登录 修改样式
|
337
338
339
|
};
/**
|
12e66ec8
刘淇
新增树
|
340
|
* 刷新列表
|
8ddc6f6e
刘淇
登录 修改样式
|
341
|
*/
|
12e66ec8
刘淇
新增树
|
342
|
const refreshOrderList = () => pagingHandle('reload');
|
8ddc6f6e
刘淇
登录 修改样式
|
343
344
|
// ========== 业务核心方法 ==========
|
3d474e84
刘淇
快速工单 加上业务线
|
345
346
347
|
// 分页查询列表
const queryList = async (pageNo, pageSize) => {
try {
|
8ddc6f6e
刘淇
登录 修改样式
|
348
|
const params = getQueryParams(pageNo, pageSize);
|
3d474e84
刘淇
快速工单 加上业务线
|
349
|
let res;
|
8ddc6f6e
刘淇
登录 修改样式
|
350
351
352
|
if (activeTab.value === 0) res = await todoBuzSimplePage(params);
else if (activeTab.value === 1) res = await myBuzSimplePage(params);
else res = await doneBuzSimplePage(params);
|
12e66ec8
刘淇
新增树
|
353
|
pagingHandle('complete', res?.list || [], res?.total || 0);
|
3d474e84
刘淇
快速工单 加上业务线
|
354
355
|
} catch (error) {
console.error('加载工单失败:', error);
|
12e66ec8
刘淇
新增树
|
356
357
|
pagingHandle('complete', false);
showToast('加载失败,请重试');
|
3d474e84
刘淇
快速工单 加上业务线
|
358
359
|
}
};
|
8ddc6f6e
刘淇
登录 修改样式
|
360
|
|
3d474e84
刘淇
快速工单 加上业务线
|
361
362
|
// 标签页切换
const handleTabChange = (item) => {
|
3d474e84
刘淇
快速工单 加上业务线
|
363
|
activeTab.value = item.index;
|
8ddc6f6e
刘淇
登录 修改样式
|
364
365
|
orderList.value = [];
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
366
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
367
|
|
3d474e84
刘淇
快速工单 加上业务线
|
368
369
370
371
|
// 排序变更
const handleSortChange = (val) => {
selectedSortValue.value = val.id;
searchValue.value = '';
|
8ddc6f6e
刘淇
登录 修改样式
|
372
|
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
373
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
374
|
|
3d474e84
刘淇
快速工单 加上业务线
|
375
376
377
|
// 搜索
const handleSearch = (val) => {
searchValue.value = val;
|
8ddc6f6e
刘淇
登录 修改样式
|
378
|
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
379
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
380
|
|
3d474e84
刘淇
快速工单 加上业务线
|
381
382
|
// 工单详情
const handleDetail = (item) => {
|
12e66ec8
刘淇
新增树
|
383
384
385
386
387
388
389
390
391
|
if (!item?.taskId) return showToast('工单信息异常');
navToOrderPage('/pages-sub/problem/regional-order-manage/order-detail', {
taskId: item.taskId,
activeTab: activeTab.value,
processInstanceId: item.processInstanceId
}, {
needRefresh: () => {
console.log('详情页返回,触发工单列表刷新');
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
392
393
|
}
});
|
3d474e84
刘淇
快速工单 加上业务线
|
394
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
395
396
|
// 重新提交工单
|
3d474e84
刘淇
快速工单 加上业务线
|
397
|
const handleRenew = (item) => {
|
12e66ec8
刘淇
新增树
|
398
|
if (!item?.id) return showToast('工单信息异常,无法重新提交');
|
8ddc6f6e
刘淇
登录 修改样式
|
399
400
|
const tempKey = setOrderStorage(item, 'renew_order');
if (!tempKey) return;
|
3d474e84
刘淇
快速工单 加上业务线
|
401
|
|
8ddc6f6e
刘淇
登录 修改样式
|
402
403
404
|
const pageUrl = USER_ROLES.includes('patrol_global')
? '/pages-sub/problem/regional-order-manage/add-patrol-order'
: '/pages-sub/problem/regional-order-manage/add-order';
|
3d474e84
刘淇
快速工单 加上业务线
|
405
|
|
8ddc6f6e
刘淇
登录 修改样式
|
406
|
navToOrderPage(pageUrl, { isRenew: 1, tempKey });
|
3d474e84
刘淇
快速工单 加上业务线
|
407
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
408
409
|
// 处理工单核心逻辑
|
3d474e84
刘淇
快速工单 加上业务线
|
410
|
const handleProcess = async (item) => {
|
12e66ec8
刘淇
新增树
|
411
|
if (!item) return showToast('工单信息异常');
|
8ddc6f6e
刘淇
登录 修改样式
|
412
|
const stepName = nextStepMap[item.taskKey]?.name;
|
12e66ec8
刘淇
新增树
|
413
|
if (!stepName) return showToast('暂无处理权限或工单状态异常');
|
3d474e84
刘淇
快速工单 加上业务线
|
414
|
try {
|
8ddc6f6e
刘淇
登录 修改样式
|
415
416
417
418
|
// 大区经理分配
if (stepName === '大区经理分配') {
const tempKey = setOrderStorage(item, 'distribute_order');
tempKey && navToOrderPage('/pages-sub/problem/regional-order-manage/distribution-order', { tempKey });
|
3d474e84
刘淇
快速工单 加上业务线
|
419
|
}
|
8ddc6f6e
刘淇
登录 修改样式
|
420
421
422
|
// 督察员单子大区经理分配
else if (stepName === '督察员单子大区经理分配') {
const postData = { taskKey: item.taskKey, taskId: item.taskId, operateType:60, workerDataId:item.id, agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName, pressingType:item.pressingType, orderName:item.orderName, expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine };
|
12e66ec8
刘淇
新增树
|
423
424
|
await dcyUniversalApproval(postData);
showToast('分配成功', 'success');
|
8ddc6f6e
刘淇
登录 修改样式
|
425
|
refreshOrderList();
|
2e2b95d3
刘淇
修改接口路径 和命名
|
426
|
}
|
8ddc6f6e
刘淇
登录 修改样式
|
427
428
429
430
431
432
|
// 验收弹窗
else if (['巡查员验收', '养护组长验收'].includes(stepName)) {
currentAcceptItem.value = item;
acceptReason.value = '';
acceptRadioValue.value = '0';
acceptModalShow.value = true;
|
3d474e84
刘淇
快速工单 加上业务线
|
433
|
}
|
8ddc6f6e
刘淇
登录 修改样式
|
434
435
|
// 发起人确认-结束工单
else if (stepName === '发起人确认') {
|
3d474e84
刘淇
快速工单 加上业务线
|
436
437
438
|
uni.showModal({
title: "结束工单",
content: "请确定是否结束工单?",
|
8ddc6f6e
刘淇
登录 修改样式
|
439
|
success: async (res) => {
|
3d474e84
刘淇
快速工单 加上业务线
|
440
|
if (res.confirm) {
|
3d474e84
刘淇
快速工单 加上业务线
|
441
|
const requestData = {
|
8ddc6f6e
刘淇
登录 修改样式
|
442
443
|
workerDataId: item.id, taskKey: 'ylInspectorStart', taskId: item.taskId,
operateType: 200, agree: 1, reason: '结束工单'
|
3d474e84
刘淇
快速工单 加上业务线
|
444
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
445
|
await callApprovalApi(requestData, item.taskKey);
|
12e66ec8
刘淇
新增树
|
446
|
showToast('结束成功', 'success');
|
8ddc6f6e
刘淇
登录 修改样式
|
447
|
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
448
|
}
|
8ddc6f6e
刘淇
登录 修改样式
|
449
|
}
|
3d474e84
刘淇
快速工单 加上业务线
|
450
451
452
453
|
});
}
} catch (error) {
console.error('处理工单失败:', error);
|
12e66ec8
刘淇
新增树
|
454
|
showToast(error.msg || error.message || '处理失败,请重试');
|
3d474e84
刘淇
快速工单 加上业务线
|
455
456
|
}
};
|
8ddc6f6e
刘淇
登录 修改样式
|
457
458
|
// 回退工单-打开弹窗
|
3d474e84
刘淇
快速工单 加上业务线
|
459
|
const handleReject = (item) => {
|
12e66ec8
刘淇
新增树
|
460
|
if (!item?.id) return showToast('工单信息异常,无法回退');
|
3d474e84
刘淇
快速工单 加上业务线
|
461
|
currentRejectItem.value = item;
|
8ddc6f6e
刘淇
登录 修改样式
|
462
463
464
|
rejectReason.value = '';
rejectImgs.clearImgs();
rejectModalShow.value = true;
|
3d474e84
刘淇
快速工单 加上业务线
|
465
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
466
467
|
// 关闭回退弹窗-重置状态
|
3d474e84
刘淇
快速工单 加上业务线
|
468
469
470
|
const handleRejectModalCancel = () => {
rejectModalShow.value = false;
rejectReason.value = '';
|
8ddc6f6e
刘淇
登录 修改样式
|
471
|
rejectImgs.clearImgs();
|
3d474e84
刘淇
快速工单 加上业务线
|
472
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
473
|
|
3d474e84
刘淇
快速工单 加上业务线
|
474
475
|
// 确认回退工单
const confirmReject = async () => {
|
8ddc6f6e
刘淇
登录 修改样式
|
476
|
const reason = rejectReason.value.trim();
|
12e66ec8
刘淇
新增树
|
477
|
if (!reason) return showToast('请填写回退原因');
|
8ddc6f6e
刘淇
登录 修改样式
|
478
|
const item = currentRejectItem.value;
|
12e66ec8
刘淇
新增树
|
479
|
if (!item?.id) return showToast('工单信息异常');
|
8ddc6f6e
刘淇
登录 修改样式
|
480
481
|
uni.showLoading({title: '提交中...', mask: true});
|
3d474e84
刘淇
快速工单 加上业务线
|
482
|
try {
|
3d474e84
刘淇
快速工单 加上业务线
|
483
|
const requestData = {
|
8ddc6f6e
刘淇
登录 修改样式
|
484
485
|
returnImgs: rejectImgs.getSuccessImgUrls(), workerDataId: item.id, taskKey: item.taskKey,
taskId: item.taskId, operateType: nextStepMap[item.taskKey].operateTypeNoPass, agree:1, reason
|
3d474e84
刘淇
快速工单 加上业务线
|
486
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
487
|
await callApprovalApi(requestData, item.taskKey);
|
12e66ec8
刘淇
新增树
|
488
|
showToast('回退成功', 'success');
|
8ddc6f6e
刘淇
登录 修改样式
|
489
490
|
handleRejectModalCancel();
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
491
492
|
} catch (error) {
console.error('回退工单失败:', error);
|
12e66ec8
刘淇
新增树
|
493
|
showToast(error.msg || error.message || '回退失败,请重试');
|
3d474e84
刘淇
快速工单 加上业务线
|
494
|
} finally {
|
3d474e84
刘淇
快速工单 加上业务线
|
495
496
497
|
uni.hideLoading();
}
};
|
8ddc6f6e
刘淇
登录 修改样式
|
498
|
|
3d474e84
刘淇
快速工单 加上业务线
|
499
500
|
// 新增工单
const handleAddOrder = () => {
|
8ddc6f6e
刘淇
登录 修改样式
|
501
502
503
504
|
const pageUrl = USER_ROLES.includes('patrol_global')
? '/pages-sub/problem/regional-order-manage/add-patrol-order'
: '/pages-sub/problem/regional-order-manage/add-order';
navToOrderPage(pageUrl);
|
3d474e84
刘淇
快速工单 加上业务线
|
505
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
506
507
|
// 关闭验收弹窗-重置状态
|
3d474e84
刘淇
快速工单 加上业务线
|
508
509
|
const handleAcceptModalCancel = () => {
acceptModalShow.value = false;
|
8ddc6f6e
刘淇
登录 修改样式
|
510
511
512
|
acceptReason.value = '';
acceptRadioValue.value = '0';
acceptImgs.clearImgs();
|
3d474e84
刘淇
快速工单 加上业务线
|
513
|
};
|
8ddc6f6e
刘淇
登录 修改样式
|
514
515
|
// 验收提交
|
3d474e84
刘淇
快速工单 加上业务线
|
516
|
const handleAcceptModalConfirm = async () => {
|
8ddc6f6e
刘淇
登录 修改样式
|
517
|
const reason = acceptReason.value.trim();
|
12e66ec8
刘淇
新增树
|
518
519
|
if (!reason) return showToast('请填写验收原因');
if (reason.length > 200) return showToast('验收原因最多200字');
|
8ddc6f6e
刘淇
登录 修改样式
|
520
521
|
const item = currentAcceptItem.value;
|
12e66ec8
刘淇
新增树
|
522
|
if (!item?.id) return showToast('工单信息异常');
|
2e2b95d3
刘淇
修改接口路径 和命名
|
523
|
|
12e66ec8
刘淇
新增树
|
524
|
uni.showLoading({title: '提交中...', mask: true});
|
8ddc6f6e
刘淇
登录 修改样式
|
525
526
527
528
529
530
531
|
try {
const postData = {
returnImgs: acceptImgs.getSuccessImgUrls(), taskKey: item.taskKey, workerDataId: item.id,
taskId: item.taskId, agree: acceptRadioValue.value, reason,
operateType: acceptRadioValue.value === '0' ? nextStepMap[item.taskKey].operateTypePass : nextStepMap[item.taskKey].operateTypeNoPass
};
await callApprovalApi(postData, item.taskKey);
|
12e66ec8
刘淇
新增树
|
532
|
showToast('提交成功', 'success');
|
8ddc6f6e
刘淇
登录 修改样式
|
533
534
|
handleAcceptModalCancel();
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
535
|
} catch (error) {
|
3d474e84
刘淇
快速工单 加上业务线
|
536
|
console.error('验收失败:', error);
|
12e66ec8
刘淇
新增树
|
537
538
539
|
showToast(error.msg || error.message || '验收提交失败,请重试');
} finally {
uni.hideLoading();
|
3d474e84
刘淇
快速工单 加上业务线
|
540
541
|
}
};
|
8ddc6f6e
刘淇
登录 修改样式
|
542
543
|
// ========== 页面生命周期 ==========
|
3d474e84
刘淇
快速工单 加上业务线
|
544
|
onLoad(() => {
|
8ddc6f6e
刘淇
登录 修改样式
|
545
|
refreshOrderList();
|
3d474e84
刘淇
快速工单 加上业务线
|
546
547
548
|
});
</script>
|
4c54ad5d
刘淇
转工单 选择是 传紧急程度和...
|
549
|
<style scoped lang="scss">
|
3d474e84
刘淇
快速工单 加上业务线
|
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
|
.page-container {
min-height: 100vh;
background-color: #fafafa;
}
// 顶部固定区域
.header-wrap {
background-color: #fff;
}
// 搜索栏样式
.search-header {
display: flex;
align-items: center;
padding: 20rpx;
box-sizing: border-box;
.select-wrap {
width: 120rpx;
margin-right: 20rpx;
|
8ddc6f6e
刘淇
登录 修改样式
|
570
|
:deep(.u-select), :deep(.u-input__placeholder) {
|
3d474e84
刘淇
快速工单 加上业务线
|
571
572
573
|
width: 100%;
font-size: 28rpx;
}
|
3d474e84
刘淇
快速工单 加上业务线
|
574
575
576
577
578
579
580
|
}
.search-input-wrap {
flex: 1;
}
}
|
12e66ec8
刘淇
新增树
|
581
582
583
584
585
586
|
// 工单列表样式
.common-card-list {
padding: calc(var(--status-bar-height) + 140rpx) 0 30rpx;
box-sizing: border-box;
}
|
3d474e84
刘淇
快速工单 加上业务线
|
587
588
589
590
591
592
593
594
|
// 工单卡片样式
.order-card {
margin: 0 20rpx 20rpx;
background: #fff;
border-radius: 12rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
}
|
12e66ec8
刘淇
新增树
|
595
596
597
598
599
|
// 新增样式:解决按钮和文字间距、排版问题
.flex-1 { flex: 1; }
.text-right { text-align: right; }
.ml-10 { margin-left: 10rpx; }
|
8ddc6f6e
刘淇
登录 修改样式
|
600
601
|
// 弹窗公共样式
.reject-modal-content, .accept-modal-content {
|
3d474e84
刘淇
快速工单 加上业务线
|
602
603
604
605
606
|
width: 100%;
box-sizing: border-box;
padding: 10rpx 0;
}
|
3d474e84
刘淇
快速工单 加上业务线
|
607
|
.upload-wrap {
|
3d474e84
刘淇
快速工单 加上业务线
|
608
609
610
611
612
613
614
|
.upload-title {
font-size: 28rpx;
color: #333;
margin-bottom: 10rpx;
}
}
|
8ddc6f6e
刘淇
登录 修改样式
|
615
|
// 验收弹窗单选框样式
|
3d474e84
刘淇
快速工单 加上业务线
|
616
617
618
|
.radio-group-wrap {
display: flex;
align-items: center;
|
8ddc6f6e
刘淇
登录 修改样式
|
619
|
gap: 40rpx;
|
3d474e84
刘淇
快速工单 加上业务线
|
620
621
622
623
624
625
|
font-size: 28rpx;
margin-bottom: 20rpx;
}
.textarea-wrap {
width: 100%;
|
3d474e84
刘淇
快速工单 加上业务线
|
626
|
}
|
4c54ad5d
刘淇
转工单 选择是 传紧急程度和...
|
627
|
|
8ddc6f6e
刘淇
登录 修改样式
|
628
629
630
|
// 间距公共样式
.mt-20 { margin-top: 20rpx; }
.mt-30 { margin-top: 30rpx; }
|
4c54ad5d
刘淇
转工单 选择是 传紧急程度和...
|
631
|
</style>
|