Pārlūkot izejas kodu

Merge branch 'employeeScreen'

huoyi 1 nedēļu atpakaļ
vecāks
revīzija
7d32dcb585
1 mainītis faili ar 60 papildinājumiem un 19 dzēšanām
  1. 60 19
      src/views/score/event/index.vue

+ 60 - 19
src/views/score/event/index.vue

@@ -157,8 +157,8 @@
157
       v-model:limit="queryParams.pageSize" @pagination="getList" />
157
       v-model:limit="queryParams.pageSize" @pagination="getList" />
158
 
158
 
159
     <!-- 新增/修改对话框 -->
159
     <!-- 新增/修改对话框 -->
160
-    <el-dialog :title="dialogTitle" v-model="dialogVisible" width="680px" append-to-body>
161
-      <el-form ref="formRef" :model="form" label-width="100px">
160
+    <el-dialog :title="dialogTitle" v-model="dialogVisible" width="680px" append-to-body  element-loading-text="加载中...">
161
+      <el-form ref="formRef" :model="form" label-width="100px" v-loading="dialogLoading">
162
         <el-row :gutter="16">
162
         <el-row :gutter="16">
163
           <el-col :span="12">
163
           <el-col :span="12">
164
             <el-form-item label="配分层级" prop="org" :rules="rules.org">
164
             <el-form-item label="配分层级" prop="org" :rules="rules.org">
@@ -311,7 +311,7 @@ const { score_level, score_type } = proxy.useDict('score_level', 'score_type')
311
 
311
 
312
 const loading = ref(false), list = ref([]), total = ref(0), showSearch = ref(true)
312
 const loading = ref(false), list = ref([]), total = ref(0), showSearch = ref(true)
313
 const dateRange = ref([]), queryRef = ref(null), formRef = ref(null)
313
 const dateRange = ref([]), queryRef = ref(null), formRef = ref(null)
314
-const dialogVisible = ref(false), dialogTitle = ref('')
314
+const dialogVisible = ref(false), dialogTitle = ref(''), dialogLoading = ref(false)
315
 const single = ref(true), multiple = ref(true), ids = ref([])
315
 const single = ref(true), multiple = ref(true), ids = ref([])
316
 const dimensionOptions = ref([])
316
 const dimensionOptions = ref([])
317
 const indicatorTree = ref([])  // 当前维度的指标树(扁平+嵌套)
317
 const indicatorTree = ref([])  // 当前维度的指标树(扁平+嵌套)
@@ -322,6 +322,7 @@ const deptOptions = ref([])
322
 const teamOptions = ref([])
322
 const teamOptions = ref([])
323
 const groupOptions = ref([])
323
 const groupOptions = ref([])
324
 const personOptions = ref([])
324
 const personOptions = ref([])
325
+const allPersonOptions = ref([]) // 缓存全部人员,避免重复请求
325
 const queryDeptOptions = ref([])
326
 const queryDeptOptions = ref([])
326
 const queryTeamOptions = ref([])
327
 const queryTeamOptions = ref([])
327
 const queryGroupOptions = ref([])
328
 const queryGroupOptions = ref([])
@@ -369,6 +370,7 @@ async function handleLevelChange() {
369
 }
370
 }
370
 
371
 
371
 async function handleFormLevelChange() {
372
 async function handleFormLevelChange() {
373
+
372
   form.dimensionId = null
374
   form.dimensionId = null
373
   form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''
375
   form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''
374
   form.deptId = null; form.teamId = null; form.groupId = null; form.personId = null
376
   form.deptId = null; form.teamId = null; form.groupId = null; form.personId = null
@@ -388,6 +390,7 @@ async function handleFormLevelChange() {
388
   // } else if (org === '4') {
390
   // } else if (org === '4') {
389
   await loadAllPersons()
391
   await loadAllPersons()
390
   // }
392
   // }
393
+ 
391
 }
394
 }
392
 
395
 
393
 async function loadAllTeams() {
396
 async function loadAllTeams() {
@@ -407,8 +410,9 @@ async function loadAllGroups() {
407
 
410
 
408
 async function loadAllPersons() {
411
 async function loadAllPersons() {
409
   const r = await listUser({ pageSize: 9999 })
412
   const r = await listUser({ pageSize: 9999 })
410
-
411
-  personOptions.value = r.rows || []
413
+  const rows = r.rows || []
414
+  allPersonOptions.value = rows
415
+  personOptions.value = rows
412
 }
416
 }
413
 
417
 
414
 async function loadRegions() {
418
 async function loadRegions() {
@@ -434,40 +438,65 @@ async function handleFormRegionalChange(val) {
434
   }
438
   }
435
 }
439
 }
436
 
440
 
437
-function handleBrigadeChange() {
441
+async function handleBrigadeChange(val) {
442
+  
443
+  form.teamId = null; form.groupId = null; form.personId = null
444
+  teamOptions.value = []; groupOptions.value = []; personOptions.value = []
445
+  if (val) {
446
+    const r = await deptTreeSelect({ parentId: val })
447
+    teamOptions.value = r.data || []
448
+  }
449
+ 
438
 }
450
 }
439
 
451
 
440
 async function handleDepartmentChange(val) {
452
 async function handleDepartmentChange(val) {
441
-  form.deptId = null
453
+
454
+  form.groupId = null; form.personId = null
455
+  groupOptions.value = []; personOptions.value = []
442
   if (val) {
456
   if (val) {
443
-    const r = await getDeptOrgInfo({ deptId: val })
444
-    if (r.data) {
445
-      form.deptId = r.data.brigadeId
446
-    }
457
+    const r = await deptTreeSelect({ parentId: val })
458
+    groupOptions.value = r.data || []
447
   }
459
   }
460
+  
448
 }
461
 }
449
 
462
 
450
 async function handleGroupChange(val) {
463
 async function handleGroupChange(val) {
451
-  form.deptId = null; form.teamId = null
464
+
465
+  form.personId = null
466
+  personOptions.value = []
452
   if (val) {
467
   if (val) {
453
-    const r = await getDeptOrgInfo({ deptId: val })
454
-    if (r.data) {
455
-      form.deptId = r.data.brigadeId
456
-      form.teamId = r.data.departmentId
457
-    }
468
+    const r = await listUser({ deptId: val, pageSize: 9999 })
469
+    personOptions.value = r.rows || []
470
+  } else {
471
+    personOptions.value = [...allPersonOptions.value]
458
   }
472
   }
473
+ 
459
 }
474
 }
460
 
475
 
461
 async function handlePersonChange(val) {
476
 async function handlePersonChange(val) {
477
+  dialogLoading.value = true
462
   form.deptId = null; form.teamId = null; form.groupId = null
478
   form.deptId = null; form.teamId = null; form.groupId = null
479
+  teamOptions.value = []; groupOptions.value = []; 
463
   if (val) {
480
   if (val) {
464
     const r = await getUserOrgInfo({ userId: val })
481
     const r = await getUserOrgInfo({ userId: val })
465
     if (r.data) {
482
     if (r.data) {
466
       form.deptId = r.data.deptInfo.brigadeId
483
       form.deptId = r.data.deptInfo.brigadeId
467
       form.teamId = r.data.deptInfo.departmentId
484
       form.teamId = r.data.deptInfo.departmentId
468
       form.groupId = r.data.deptInfo.teamId
485
       form.groupId = r.data.deptInfo.teamId
486
+
487
+      // 根据部门加载队室/班组选项
488
+      if (form.deptId) {
489
+        const r1 = await deptTreeSelect({ parentId: form.deptId })
490
+        teamOptions.value = r1.data || []
491
+      }
492
+      // 根据队室/班组加载通道/小组选项
493
+      if (form.teamId) {
494
+        const r2 = await deptTreeSelect({ parentId: form.teamId })
495
+        groupOptions.value = r2.data || []
496
+      }
469
     }
497
     }
470
   }
498
   }
499
+  dialogLoading.value = false
471
 }
500
 }
472
 
501
 
473
 async function loadQueryDepts() {
502
 async function loadQueryDepts() {
@@ -500,7 +529,7 @@ async function handleQueryGroupChange(val) {
500
   queryParams.personId = null
529
   queryParams.personId = null
501
   const group = queryGroupOptions.value.find(g => g.id === val)
530
   const group = queryGroupOptions.value.find(g => g.id === val)
502
   if (group) {
531
   if (group) {
503
-    const r = await listUser({ deptId: group.id })
532
+    const r = await listUser({ deptId: group.id, pageSize: 9999 })
504
     queryPersonOptions.value = r.rows || []
533
     queryPersonOptions.value = r.rows || []
505
   } else {
534
   } else {
506
     queryPersonOptions.value = []
535
     queryPersonOptions.value = []
@@ -550,6 +579,8 @@ function resetForm() {
550
 
579
 
551
 function handleAdd() { resetForm(); dialogTitle.value = '新增配分事项'; dialogVisible.value = true }
580
 function handleAdd() { resetForm(); dialogTitle.value = '新增配分事项'; dialogVisible.value = true }
552
 async function handleUpdate(row) {
581
 async function handleUpdate(row) {
582
+ 
583
+  dialogVisible.value = true
553
   resetForm()
584
   resetForm()
554
   const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
585
   const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
555
   if (record) {
586
   if (record) {
@@ -605,10 +636,12 @@ async function handleUpdate(row) {
605
     if (record.level3Id) onLevel3Change(record.level3Id, true)
636
     if (record.level3Id) onLevel3Change(record.level3Id, true)
606
     if (record.level4Id) onLevel4Change(record.level4Id, true)
637
     if (record.level4Id) onLevel4Change(record.level4Id, true)
607
   }
638
   }
608
-  dialogTitle.value = '修改配分事项'; dialogVisible.value = true
639
+ 
640
+  dialogTitle.value = '修改配分事项'
609
 }
641
 }
610
 
642
 
611
 async function onDimensionChange(dimId, preserveSelection) {
643
 async function onDimensionChange(dimId, preserveSelection) {
644
+  dialogLoading.value = true
612
   const dim = dimensionOptions.value.find(d => d.id === dimId)
645
   const dim = dimensionOptions.value.find(d => d.id === dimId)
613
   if (dim) form.dimensionName = dim.name
646
   if (dim) form.dimensionName = dim.name
614
   const r = await treeIndicator({ dimensionId: dimId, org: form.org })
647
   const r = await treeIndicator({ dimensionId: dimId, org: form.org })
@@ -617,6 +650,7 @@ async function onDimensionChange(dimId, preserveSelection) {
617
   if (!preserveSelection) { form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''; form.scoreValue = 0 }
650
   if (!preserveSelection) { form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''; form.scoreValue = 0 }
618
   level3Options.value = []; level4Options.value = []
651
   level3Options.value = []; level4Options.value = []
619
   if (preserveSelection && form.level2Id) onLevel2Change(form.level2Id, true)
652
   if (preserveSelection && form.level2Id) onLevel2Change(form.level2Id, true)
653
+  dialogLoading.value = false
620
 }
654
 }
621
 
655
 
622
 function onLevel2Change(val, preserveSelection) {
656
 function onLevel2Change(val, preserveSelection) {
@@ -760,6 +794,13 @@ const processPostTree = (nodes, isFirstLevel = true) => {
760
   })
794
   })
761
 }
795
 }
762
 
796
 
797
+// 监听通道/小组变化:无值时责任人显示全部人员
798
+watch(() => form.groupId, (newVal) => {
799
+  if (!newVal) {
800
+    personOptions.value = [...allPersonOptions.value]
801
+  }
802
+})
803
+
763
 onMounted(() => {
804
 onMounted(() => {
764
   loadDimensions();
805
   loadDimensions();
765
   loadDepts();
806
   loadDepts();