liuyu
21 小时以前 93c133349a5ccd7a328371fa113dce69d5611f21
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>