Explorar o código

refactor(score/event): 优化编辑配分事项的异步加载逻辑

将原有的回调式异步调用改为await同步写法,同时新增根据记录自动加载关联区域、工作点、队室班组等数据的逻辑,简化代码可读性并修复可能的时序问题
huoyi hai 1 semana
pai
achega
887318ee16
Modificáronse 1 ficheiros con 40 adicións e 14 borrados
  1. 40 14
      src/views/score/event/index.vue

+ 40 - 14
src/views/score/event/index.vue

@@ -549,32 +549,58 @@ function resetForm() {
549
 }
549
 }
550
 
550
 
551
 function handleAdd() { resetForm(); dialogTitle.value = '新增配分事项'; dialogVisible.value = true }
551
 function handleAdd() { resetForm(); dialogTitle.value = '新增配分事项'; dialogVisible.value = true }
552
-function handleUpdate(row) {
552
+async function handleUpdate(row) {
553
   resetForm()
553
   resetForm()
554
   const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
554
   const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
555
   if (record) {
555
   if (record) {
556
     Object.assign(form, record)
556
     Object.assign(form, record)
557
     const org = String(record.org)
557
     const org = String(record.org)
558
     form.org = org
558
     form.org = org
559
+
560
+    // 加载区域和工作点
561
+    if (record.regionalId) {
562
+      await handleFormRegionalChange(record.regionalId)
563
+    }
564
+
565
+    // 加载队室/班组和通道/小组
566
+    if (record.deptId) {
567
+      // 先加载队室/班组
568
+      const r = await deptTreeSelect({ parentId: record.deptId })
569
+      teamOptions.value = r.data || []
570
+
571
+      if (record.teamId) {
572
+        // 再加载通道/小组
573
+        const r2 = await deptTreeSelect({ parentId: record.teamId })
574
+        groupOptions.value = r2.data || []
575
+
576
+        // 最后加载责任人
577
+        if (record.groupId) {
578
+          const r3 = await listUser({ deptId: record.groupId })
579
+          personOptions.value = r3.rows || []
580
+        }
581
+      }
582
+    } else if (org === '2') {
583
+      await loadAllTeams()
584
+    } else if (org === '3') {
585
+      await loadAllGroups()
586
+    } else if (org === '4') {
587
+      await loadAllPersons()
588
+    }
589
+
559
     if (org === '1') {
590
     if (org === '1') {
560
       form.deptId = record.deptId || null
591
       form.deptId = record.deptId || null
561
     } else if (org === '2') {
592
     } else if (org === '2') {
562
-      loadAllTeams().then(() => {
563
-        form.teamId = record.teamId || null
564
-        if (form.teamId) handleDepartmentChange(form.teamId)
565
-      })
593
+      form.teamId = record.teamId || null
594
+      if (form.teamId) await handleDepartmentChange(form.teamId)
566
     } else if (org === '3') {
595
     } else if (org === '3') {
567
-      loadAllGroups().then(() => {
568
-        form.groupId = record.groupId || null
569
-        if (form.groupId) handleGroupChange(form.groupId)
570
-      })
596
+      form.groupId = record.groupId || null
597
+      if (form.groupId) await handleGroupChange(form.groupId)
571
     } else if (org === '4') {
598
     } else if (org === '4') {
572
-      loadAllPersons().then(() => {
573
-        form.personId = record.personId || null
574
-        if (form.personId) handlePersonChange(form.personId)
575
-      })
599
+      form.personId = record.personId || null
600
+      if (form.personId) await handlePersonChange(form.personId)
576
     }
601
     }
577
-    if (record.dimensionId) onDimensionChange(record.dimensionId, true)
602
+
603
+    if (record.dimensionId) await onDimensionChange(record.dimensionId, true)
578
     if (record.level2Id) onLevel2Change(record.level2Id, true)
604
     if (record.level2Id) onLevel2Change(record.level2Id, true)
579
     if (record.level3Id) onLevel3Change(record.level3Id, true)
605
     if (record.level3Id) onLevel3Change(record.level3Id, true)
580
     if (record.level4Id) onLevel4Change(record.level4Id, true)
606
     if (record.level4Id) onLevel4Change(record.level4Id, true)