瀏覽代碼

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

将原有的回调式异步调用改为await同步写法,同时新增根据记录自动加载关联区域、工作点、队室班组等数据的逻辑,简化代码可读性并修复可能的时序问题
huoyi 1 周之前
父節點
當前提交
887318ee16
共有 1 個文件被更改,包括 40 次插入14 次删除
  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 551
 function handleAdd() { resetForm(); dialogTitle.value = '新增配分事项'; dialogVisible.value = true }
552
-function handleUpdate(row) {
552
+async function handleUpdate(row) {
553 553
   resetForm()
554 554
   const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
555 555
   if (record) {
556 556
     Object.assign(form, record)
557 557
     const org = String(record.org)
558 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 590
     if (org === '1') {
560 591
       form.deptId = record.deptId || null
561 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 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 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 604
     if (record.level2Id) onLevel2Change(record.level2Id, true)
579 605
     if (record.level3Id) onLevel3Change(record.level3Id, true)
580 606
     if (record.level4Id) onLevel4Change(record.level4Id, true)