|
|
@@ -92,6 +92,7 @@
|
|
92
|
92
|
<van-field
|
|
93
|
93
|
readonly
|
|
94
|
94
|
:model-value="xfRepairDisplaySummary"
|
|
|
95
|
+ :title="xfRepairDisplaySummary"
|
|
95
|
96
|
label="整改责任人"
|
|
96
|
97
|
placeholder=""
|
|
97
|
98
|
is-link
|
|
|
@@ -404,6 +405,53 @@ const xfRepairUseCustom = ref(false);
|
|
404
|
405
|
const xfRepairUserCodes = ref('');
|
|
405
|
406
|
const xfRepairUserNames = ref('');
|
|
406
|
407
|
const defaultRepairL = ref('');
|
|
|
408
|
+/** 岗位默认匹配到的用户姓名(由 U_id 列表解析),与 web 端 inspectionTask 一致 */
|
|
|
409
|
+const defaultRepairUserNamesDisplay = ref('');
|
|
|
410
|
+const defaultRepairNamesLoading = ref(false);
|
|
|
411
|
+
|
|
|
412
|
+function parseRepairLUserIds(repairLStr) {
|
|
|
413
|
+ if (!repairLStr || !String(repairLStr).trim()) {
|
|
|
414
|
+ return [];
|
|
|
415
|
+ }
|
|
|
416
|
+ return String(repairLStr)
|
|
|
417
|
+ .split(';')
|
|
|
418
|
+ .map((x) => x.trim())
|
|
|
419
|
+ .filter(Boolean)
|
|
|
420
|
+ .map((x) => (x.startsWith('U_') ? x.slice(2) : x))
|
|
|
421
|
+ .filter(Boolean);
|
|
|
422
|
+}
|
|
|
423
|
+
|
|
|
424
|
+/** 根据 queryUserIdByPostWithDeptCode 返回的 U_id 串,拉取人员姓名用于展示 */
|
|
|
425
|
+async function loadDefaultRepairUserDisplayNames(repairLStr) {
|
|
|
426
|
+ defaultRepairUserNamesDisplay.value = '';
|
|
|
427
|
+ const ids = parseRepairLUserIds(repairLStr);
|
|
|
428
|
+ if (!ids.length) {
|
|
|
429
|
+ return;
|
|
|
430
|
+ }
|
|
|
431
|
+ defaultRepairNamesLoading.value = true;
|
|
|
432
|
+ try {
|
|
|
433
|
+ const results = await Promise.all(
|
|
|
434
|
+ ids.map((id) => proxy.$axios.get('framework/SysUser/queryByPK', { id }))
|
|
|
435
|
+ );
|
|
|
436
|
+ const names = [];
|
|
|
437
|
+ for (const res of results) {
|
|
|
438
|
+ const d = res?.data;
|
|
|
439
|
+ const ok = d && (String(d.code) === '0' || d.code === 0);
|
|
|
440
|
+ if (ok && d.data) {
|
|
|
441
|
+ const label = d.data.userDesc || d.data.userName || '';
|
|
|
442
|
+ if (label) {
|
|
|
443
|
+ names.push(label);
|
|
|
444
|
+ }
|
|
|
445
|
+ }
|
|
|
446
|
+ }
|
|
|
447
|
+ defaultRepairUserNamesDisplay.value = names.join('、');
|
|
|
448
|
+ } catch (e) {
|
|
|
449
|
+ console.error('加载默认整改人姓名失败', e);
|
|
|
450
|
+ defaultRepairUserNamesDisplay.value = '';
|
|
|
451
|
+ } finally {
|
|
|
452
|
+ defaultRepairNamesLoading.value = false;
|
|
|
453
|
+ }
|
|
|
454
|
+}
|
|
407
|
455
|
|
|
408
|
456
|
const xfRepairDisplaySummary = computed(() => {
|
|
409
|
457
|
if (xfRepairUseCustom.value && xfRepairUserNames.value) {
|
|
|
@@ -411,10 +459,16 @@ const xfRepairDisplaySummary = computed(() => {
|
|
411
|
459
|
}
|
|
412
|
460
|
const s = defaultRepairL.value || '';
|
|
413
|
461
|
const n = s ? s.split(';').filter(Boolean).length : 0;
|
|
|
462
|
+ if (defaultRepairNamesLoading.value) {
|
|
|
463
|
+ return '系统默认:正在加载人员姓名…';
|
|
|
464
|
+ }
|
|
|
465
|
+ if (defaultRepairUserNamesDisplay.value) {
|
|
|
466
|
+ return `系统默认:${defaultRepairUserNamesDisplay.value}`;
|
|
|
467
|
+ }
|
|
414
|
468
|
if (n > 0) {
|
|
415
|
|
- return `系统默认(已匹配 ${n} 人)`;
|
|
|
469
|
+ return '系统默认(已匹配岗位人员,姓名加载失败请关闭重试或点本行「选择」指定责任人)';
|
|
416
|
470
|
}
|
|
417
|
|
- return '系统默认(未匹配到岗位人员时可点本行选择)';
|
|
|
471
|
+ return '系统默认(尚未匹配到岗位人员,可点本行「选择」指定整改人)';
|
|
418
|
472
|
});
|
|
419
|
473
|
|
|
420
|
474
|
const buildXfRepairSessionUsers = () => {
|
|
|
@@ -460,14 +514,21 @@ const resetXfRepairToDefault = () => {
|
|
460
|
514
|
xfRepairUseCustom.value = false;
|
|
461
|
515
|
xfRepairUserCodes.value = '';
|
|
462
|
516
|
xfRepairUserNames.value = '';
|
|
|
517
|
+ defaultRepairUserNamesDisplay.value = '';
|
|
|
518
|
+ defaultRepairNamesLoading.value = false;
|
|
|
519
|
+ if (defaultRepairL.value) {
|
|
|
520
|
+ void loadDefaultRepairUserDisplayNames(defaultRepairL.value);
|
|
|
521
|
+ }
|
|
463
|
522
|
};
|
|
464
|
523
|
|
|
465
|
524
|
// 打开下发弹窗
|
|
466
|
525
|
const handleSubmitXF = (row) => {
|
|
467
|
526
|
currentSubmitRow.value = row;
|
|
468
|
527
|
xfRepairSessionKey.value = guid();
|
|
469
|
|
- resetXfRepairToDefault();
|
|
470
|
528
|
defaultRepairL.value = '';
|
|
|
529
|
+ defaultRepairUserNamesDisplay.value = '';
|
|
|
530
|
+ defaultRepairNamesLoading.value = false;
|
|
|
531
|
+ resetXfRepairToDefault();
|
|
471
|
532
|
const repairDeptCode =
|
|
472
|
533
|
row.checkedDeptCode || query2.value?.checkedDeptCode || '';
|
|
473
|
534
|
if (repairDeptCode) {
|
|
|
@@ -476,6 +537,7 @@ const handleSubmitXF = (row) => {
|
|
476
|
537
|
.then((r) => {
|
|
477
|
538
|
if (r.data.code === 0 && r.data.data) {
|
|
478
|
539
|
defaultRepairL.value = r.data.data;
|
|
|
540
|
+ void loadDefaultRepairUserDisplayNames(r.data.data);
|
|
479
|
541
|
}
|
|
480
|
542
|
})
|
|
481
|
543
|
.catch(() => {});
|