From 8534025c45b4736975730678b9ccf23570a75f95 Mon Sep 17 00:00:00 2001
From: liuyu <yu.liu@cqgbkj.com>
Date: 星期二, 22 九月 2026 09:25:48 +0800
Subject: [PATCH] feat(tms): 新增试卷、培训任务、个人任务页面

---
 apps/jnpf-web-apps-main/src/views/x/tms/examGrade/Session.vue |   42 +++++++++++++++++++++++++++---------------
 1 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/apps/jnpf-web-apps-main/src/views/x/tms/examGrade/Session.vue b/apps/jnpf-web-apps-main/src/views/x/tms/examGrade/Session.vue
index 09c3022..8875fa3 100644
--- a/apps/jnpf-web-apps-main/src/views/x/tms/examGrade/Session.vue
+++ b/apps/jnpf-web-apps-main/src/views/x/tms/examGrade/Session.vue
@@ -3,15 +3,18 @@
 
 import type { GradeExamListItem, GradeSessionListItem } from './types';
 
-import { onMounted, ref } from 'vue';
+import { onActivated, onMounted, ref } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 
 import { useMessage } from '@jnpf/hooks';
 import { BasicVxeTable, TableAction, useVxeTable } from '@jnpf/ui/vxeTable';
 
 import { getGradeExamList, getGradeSessionInfo } from '#/api/x/tms/examGrade';
+import { TMS_BTN } from '#/views/x/tms/shared/ui';
 
-import { colorOfGradeStatus, labelOfGradeStatus } from './constants';
+import { colorOfGradeStatus, labelOfGradeStatus, loadExamGradeDics } from './constants';
+
+import '#/views/x/tms/shared/page.css';
 
 defineOptions({ name: 'TmsExamGradeSession' });
 
@@ -77,16 +80,27 @@
     return;
   }
   try {
-    session.value = await getGradeSessionInfo(sessionId);
-    reload();
+    await loadExamGradeDics();
+    await refreshSession();
   } catch (e: any) {
     createMessage.error(e?.message || '鍔犺浇澶辫触');
     router.replace('/tms/examGrade');
   }
 });
 
+onActivated(() => {
+  if (!sessionId) return;
+  void refreshSession();
+});
+
+async function refreshSession() {
+  session.value = await getGradeSessionInfo(sessionId);
+  reload();
+}
+
 async function fetchList() {
-  return { data: await getGradeExamList(sessionId) };
+  const list = await getGradeExamList(sessionId);
+  return { data: Array.isArray(list) ? list : [] };
 }
 
 function goBack() {
@@ -99,9 +113,9 @@
 
 function getTableActions(record: GradeExamListItem): ActionItem[] {
   if (record.gradeStatus === 'pending') {
-    return [{ label: '闃呭嵎', onClick: handleMark.bind(null, record) }];
+    return [{ label: TMS_BTN.grade, onClick: handleMark.bind(null, record) }];
   }
-  return [{ label: '鏌ョ湅', onClick: handleMark.bind(null, record) }];
+  return [{ label: TMS_BTN.detail, onClick: handleMark.bind(null, record) }];
 }
 </script>
 
@@ -111,15 +125,13 @@
       <div class="jnpf-content-wrapper-content">
         <BasicVxeTable @register="registerTable">
           <template #tableTitle>
-            <div class="flex items-center gap-3">
-              <a-button @click="goBack">杩斿洖</a-button>
+            <div class="tms-page-header" style="margin-bottom: 0">
               <div>
-                <div class="text-base font-medium">
-                  {{ session?.paperName || '绛斿嵎鍒楄〃' }}
-                </div>
-                <div class="mt-1 text-gray-400 text-sm">
-                  {{ session?.taskNo }} 路 {{ session?.taskSubject }}
-                </div>
+                <div class="tms-page-header__title">{{ session?.paperName || '绛斿嵎鍒楄〃' }}</div>
+                <div class="tms-page-header__sub">{{ session?.taskNo }} 路 {{ session?.taskSubject }}</div>
+              </div>
+              <div class="tms-page-header__actions">
+                <a-button @click="goBack">{{ TMS_BTN.back }}</a-button>
               </div>
             </div>
           </template>

--
Gitblit v1.8.0