Эх сурвалжийг харах

feat: 人员数据统计按人员展开补充全部数据

chenhao 2 жил өмнө
parent
commit
ecc6088407

+ 10 - 6
src/components/shared/message/MessageList.vue

@@ -4,7 +4,7 @@
       <div
         v-for="message in messageList"
         :key="message.id"
-        class="radius-base fill-blank p-base m-b-mini message-item"
+        class="radius-base fill-blank p-base m-b-mini relative message-item"
         :class="{ active: currentMessage?.sendUserId === message.sendUserId, 'un-read': message.unReadCount > 0 }"
         @click="checkMessage(message)"
       >
@@ -121,11 +121,15 @@ getMessageList().then((result) => (currentMessage.value = result?.[0]))
     background: #fafafa;
     box-shadow: 0px 6px 6px 0px rgba(0, 0, 0, 0.1);
     .message-item {
-      &.un-read {
-        .message-title {
-          font-size: $MediumFont;
-          font-weight: 900;
-        }
+      &.un-read:after {
+        content: '';
+        position: absolute;
+        right: 0;
+        top: 0;
+        border-radius: 50%;
+        width: 8px;
+        height: 8px;
+        background-color: $DangerColor;
       }
       &.active {
         background-color: $color--primary;

+ 3 - 1
src/modules/analysis/personnel-statistics/components/StatisticsPersonnel.vue

@@ -11,6 +11,7 @@
     >
       <template #column-marker="{ row }">
         <el-popover
+          v-if="row.markerId"
           :ref="(popover: any) => setPopoverRefs(row.markerId,popover)"
           trigger="contextmenu"
           placement="right"
@@ -30,6 +31,7 @@
             </el-menu-item>
           </el-menu>
         </el-popover>
+        <span v-else>题组</span>
       </template>
     </base-table>
   </div>
@@ -74,7 +76,7 @@ const columns: EpTableColumn<ExtractArrayValue<ExtractApiResponse<'getStatistics
     prop: 'markingGroupNumber',
     width: usePX(52),
     formatter(row) {
-      return `第${row.markingGroupNumber}组`
+      return row.markingGroupNumber === 0 ? '全部' : `第${row.markingGroupNumber}组`
     },
   },
   { label: '评卷员', prop: 'markerName', minWidth: usePX(84), slotName: 'marker' },

+ 3 - 0
src/modules/analysis/personnel-statistics/index.vue

@@ -39,13 +39,16 @@ const { fetch, result, loading } = useFetch('getStatisticsByGroup')
 
 const data = computed<ExtractApiResponse<'getStatisticsByGroup'>>(() => {
   const groupList = result?.value?.slice(0) || []
+  const totalIndex = groupList.findIndex((v) => v.markingGroupNumber === 0)
   return fetchModel.value.expand
     ? groupList
+        .filter((v) => v.markingGroupNumber !== 0)
         .reduce((total, cur) => {
           total.push(...(cur.markerDetails || []))
           return total
         }, [] as ExtractApiResponse<'getStatisticsByGroup'>)
         .sort((a, b) => a.markerId - b.markerId)
+        .concat(totalIndex >= 0 ? groupList[totalIndex] : [])
     : groupList.sort((a, b) => a.markingGroupNumber - b.markingGroupNumber)
 })