export function createAdmissionViews(context) {
const { state, app, h, formatDate, badge, icons, api, renderError, requireLogin, brand } = context;
const nav = [['dashboard','工作台','home'],['plans','招生计划','exam'],['placements','投档审核','check']];
function shell(page, content, title, description) {
return `
SCHOOL ADMISSION
${h(title)}
${h(description)}
${content} `;
}
async function renderAdmission(page) {
if (state.user?.role !== 'admission_school') return requireLogin();
if (!nav.some(item => item[0] === page)) page = 'dashboard';
const meta = { dashboard:['招生工作台','查看本校计划与待审核投档概况。'], plans:['本校招生计划','上传本年度普通生、特长生计划及指标分配,提交后由超级管理员审核。'], placements:['投档考生审核','查看投档考生资料和本场成绩;无特殊理由不得申请退档。'] };
app.innerHTML = shell(page, '正在读取数据
', ...meta[page]);
try {
const endpoint = page === 'dashboard' ? 'context' : page;
const data = await api(`/api/admission/${endpoint}`); state.pageData = data;
const content = page === 'dashboard' ? dashboard(data) : page === 'plans' ? plans(data) : placements(data);
app.innerHTML = shell(page, content, ...meta[page]);
} catch (error) { renderError(error); }
}
function dashboard(data) {
return `ADMISSION OFFICE${h(data.school.name)}
学校只接收超级管理员正式投档的数据,不可查看考生完整志愿表。
本校工作入口
${data.exams.length} 场启用志愿 `;
}
function plans(data) {
return `提交本校招生计划
按招生类别设置计划人数、特长资格和各生源校指标,提交后由超级管理员审核。
`;
}
function placements(data) {
const exportBar = data.completedExams?.length ? `FINAL ROSTER正式录取考生信息 Excel仅录取工作结束后开放,包含本校全部正式录取考生资料与当次成绩。
` : '';
const exams = [...new Map(data.placements.map(item => [item.examId, item.examName])).entries()];
const categories = [...new Set(data.placements.map(item => item.payload.categoryName).filter(Boolean))];
const pendingCount = data.placements.filter(item => item.status === 'school_review').length;
const rows = data.placements.map(item => ` | ${h(item.candidate.name)}${h(item.candidate.registrationNumber)} · ${h(item.candidate.idNumberMasked)}${h(item.examName)} | ${h(item.candidate.specialtyLabel || '普通生')}${h(item.candidate.specialtyCertificate || '')}${h(item.candidate.policyEligibility || '')} | ${item.results.map(result => `${h(result.subjectName)} ${h(result.score)}`).join(' ')}投档分 ${h(item.payload.totalScore)} · 特征分 ${h(item.featureScore || 0)} | ${h(item.payload.categoryName)}第 ${h(item.payload.preferenceOrder)} 志愿 | ${badge(item.status)} | ${item.status === 'school_review' ? `` : `${h(item.payload.schoolDecisionNote || '已处理')}`} |
`).join('');
return `${exportBar}本校投档审核台账
可搜索、筛选和多选批量处理;仅待审核记录可被选中。
${pendingCount} 人待审 / 共 ${data.placements.length} 人 `;
}
return { renderAdmission };
}
import { admissionCategoriesEditor } from './admission-plan-editor.mjs';
import { specialtyLabel } from '../data/specialty-types.mjs';