学生信息详情保存

This commit is contained in:
yaojian
2026-03-12 17:15:29 +08:00
parent c54a8d05bb
commit bf1c61dae1
3 changed files with 1101 additions and 183 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -299,6 +299,35 @@
</span>
</template>
</el-dialog>
<!-- 证书导出弹窗 -->
<el-dialog title="证书导出" v-model="exportCertificateDialogVisible" :close-on-click-modal="false" draggable width="450px">
<el-form :model="exportCertificateForm" label-width="80px">
<el-form-item label="班级" required>
<el-select v-model="exportCertificateForm.classCode" placeholder="请选择班级" filterable style="width: 100%">
<el-option v-for="item in classList" :key="item.classCode" :label="item.classNo" :value="item.classCode" />
</el-select>
</el-form-item>
<el-form-item label="导出类型">
<el-select v-model="exportCertificateForm.exportType" placeholder="请选择导出类型" clearable style="width: 100%">
<el-option label="全部" :value="null" />
<el-option v-for="item in majorLevelList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="exportCertificateDialogVisible = false"> </el-button>
<el-button
type="primary"
@click="handleExportCertificateConfirm"
:loading="exportCertificateLoading"
:disabled="!exportCertificateForm.classCode">
确认导出
</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
@@ -392,6 +421,14 @@ const workYearList = ref<any[]>([]);
const applyInternshipForm = reactive({
year: '',
});
// 证书导出相关
const exportCertificateDialogVisible = ref(false);
const exportCertificateLoading = ref(false);
const majorLevelList = ref<any[]>([]);
const exportCertificateForm = reactive({
classCode: '',
exportType: '' as string | null,
});
// 表格列配置
const tableColumns = [
@@ -817,14 +854,45 @@ const handleExportStudentCard = async () => {
// 证书导出
const handleExportCertificate = async () => {
// 获取导出类型字典
if (majorLevelList.value.length === 0) {
try {
const res = await getDicts('major_level');
if (res.data && Array.isArray(res.data)) {
majorLevelList.value = res.data.map((item: any) => ({
label: item.label || item.dictLabel || item.name,
value: item.value || item.dictValue || item.code,
}));
}
} catch (err) {
majorLevelList.value = [];
}
}
// 重置表单
exportCertificateForm.classCode = searchForm.classCode || '';
exportCertificateForm.exportType = null;
exportCertificateDialogVisible.value = true;
};
// 确认证书导出
const handleExportCertificateConfirm = async () => {
if (!exportCertificateForm.classCode) {
useMessage().warning('请选择班级');
return;
}
exportCertificateLoading.value = true;
try {
await makeExportSkillLevelTask({
deptCode: searchForm.deptCode,
classCode: searchForm.classCode,
classCode: exportCertificateForm.classCode,
exportType: exportCertificateForm.exportType || null,
});
useMessage().success('导出任务已创建,请在文件管理中下载');
exportCertificateDialogVisible.value = false;
} catch (err: any) {
useMessage().error(err.msg || '创建导出任务失败');
} finally {
exportCertificateLoading.value = false;
}
};