Ferat
This commit is contained in:
@@ -361,8 +361,8 @@
|
||||
<script setup lang="ts" name="BasicStudent">
|
||||
import { ref, reactive, defineAsyncComponent, computed, onMounted } from 'vue'
|
||||
import { BasicTableProps, useTable } from "/@/hooks/table";
|
||||
import { fetchList } from "/@/api/basic/basicstudentinfo";
|
||||
import {
|
||||
fetchList,
|
||||
delObj,
|
||||
exportStudentData,
|
||||
applyInternship,
|
||||
@@ -477,63 +477,27 @@ const handleSelectionChange = (selection: any[]) => {
|
||||
|
||||
// 学生信息导出
|
||||
const handleExportStudent = async () => {
|
||||
try {
|
||||
await exportStudentData(searchForm)
|
||||
useMessage().success('导出成功')
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '导出失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 申请顶岗
|
||||
const handleApplyInternship = async () => {
|
||||
if (selectedRows.value.length === 0) {
|
||||
useMessage().warning('请先选择学生')
|
||||
return
|
||||
}
|
||||
try {
|
||||
const stuNos = selectedRows.value.map((row: any) => row.stuNo)
|
||||
await applyInternship({ stuNos })
|
||||
useMessage().success('申请成功')
|
||||
getDataList()
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '申请失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 导出头像
|
||||
const handleExportAvatar = async () => {
|
||||
try {
|
||||
const params: any = { ...searchForm }
|
||||
if (selectedRows.value.length > 0) {
|
||||
params.stuNos = selectedRows.value.map((row: any) => row.stuNo)
|
||||
}
|
||||
await getDownPic(params)
|
||||
useMessage().success('导出成功')
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '导出失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 批量打印
|
||||
const handleBatchPrint = async () => {
|
||||
if (selectedRows.value.length === 0) {
|
||||
useMessage().warning('请先选择学生')
|
||||
return
|
||||
}
|
||||
try {
|
||||
const stuNos = selectedRows.value.map((row: any) => row.stuNo)
|
||||
await preBatchPrint({ stuNos })
|
||||
useMessage().success('打印准备成功')
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '打印准备失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 段段清证书导入
|
||||
const handleImportCertificate = () => {
|
||||
importCertificateDialogVisible.value = true
|
||||
fileList.value = []
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 上传相关
|
||||
@@ -579,111 +543,47 @@ const handleUploadError = (err: any) => {
|
||||
|
||||
// 学籍卡导出
|
||||
const handleExportStudentCard = async () => {
|
||||
try {
|
||||
const params: any = { ...searchForm }
|
||||
if (selectedRows.value.length > 0) {
|
||||
params.stuNos = selectedRows.value.map((row: any) => row.stuNo)
|
||||
}
|
||||
await exportStuInfoCard(params)
|
||||
useMessage().success('导出成功')
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '导出失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 证书导出
|
||||
const handleExportCertificate = async () => {
|
||||
try {
|
||||
const params: any = { ...searchForm }
|
||||
if (selectedRows.value.length > 0) {
|
||||
params.stuNos = selectedRows.value.map((row: any) => row.stuNo)
|
||||
}
|
||||
await exportCertificate(params)
|
||||
useMessage().success('导出成功')
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '导出失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 简单信息维护
|
||||
const handleSimpleEdit = (row: any) => {
|
||||
if (simpleEditDialogRef.value) {
|
||||
simpleEditDialogRef.value.openDialog(row)
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 查看详情
|
||||
const handleViewDetail = (row: any) => {
|
||||
if (detailDialogRef.value) {
|
||||
detailDialogRef.value.openDialog(row.id)
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 打印证件照
|
||||
const handlePrintPhoto = async (row: any) => {
|
||||
try {
|
||||
await prePrint(row.stuNo)
|
||||
useMessage().success('打印准备成功')
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '打印准备失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 重置密码
|
||||
const handleResetPassword = async (row: any) => {
|
||||
try {
|
||||
await useMessageBox().confirm('确定要重置该学生的密码吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
await resetPassWord({ stuNo: row.stuNo })
|
||||
useMessage().success('重置成功')
|
||||
} catch (err: any) {
|
||||
if (err !== 'cancel') {
|
||||
useMessage().error(err.msg || '重置失败')
|
||||
}
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 设为班干部
|
||||
const handleSetLeader = async (row: any) => {
|
||||
try {
|
||||
await editIsleader({ id: row.id, isClassLeader: 1 })
|
||||
useMessage().success('设置成功')
|
||||
getDataList()
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '设置失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 取消班干部
|
||||
const handleCancelLeader = async (row: any) => {
|
||||
try {
|
||||
await editIsleader({ id: row.id, isClassLeader: 0 })
|
||||
useMessage().success('取消成功')
|
||||
getDataList()
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg || '取消失败')
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 禁止进出
|
||||
const handleForbidInout = async (row: any) => {
|
||||
try {
|
||||
await useMessageBox().confirm('确定要禁止该学生进出吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
await updateInout({ id: row.id, isAllowInout: 0 })
|
||||
useMessage().success('操作成功')
|
||||
getDataList()
|
||||
} catch (err: any) {
|
||||
if (err !== 'cancel') {
|
||||
useMessage().error(err.msg || '操作失败')
|
||||
}
|
||||
}
|
||||
useMessage().warning('功能开发中')
|
||||
}
|
||||
|
||||
// 获取学院列表
|
||||
|
||||
@@ -53,9 +53,9 @@
|
||||
<el-table-column prop="headImg" label="头像" width="120" align="center">
|
||||
<template #default="scope">
|
||||
<el-image
|
||||
v-if="scope.row.headImg"
|
||||
:src="scope.row.headImg"
|
||||
:preview-src-list="[scope.row.headImg]"
|
||||
v-if="scope.row.headImg || scope.row.imageUrl || scope.row.qrCode"
|
||||
:src="scope.row.headImg || scope.row.imageUrl || scope.row.qrCode"
|
||||
:preview-src-list="[scope.row.headImg || scope.row.imageUrl || scope.row.qrCode]"
|
||||
fit="cover"
|
||||
style="width: 80px; height: 100px; cursor: pointer;"
|
||||
lazy>
|
||||
@@ -96,10 +96,44 @@ const searchForm = reactive({
|
||||
classCode: ''
|
||||
})
|
||||
|
||||
// 配置 useTable
|
||||
// 配置 useTable - 接口返回的数据结构是 { classes: [], students: [] }
|
||||
const state: BasicTableProps = reactive<BasicTableProps>({
|
||||
queryForm: searchForm,
|
||||
pageList: fetchList,
|
||||
pageList: async (queryParams: any) => {
|
||||
const res = await fetchList(queryParams)
|
||||
// 接口返回的数据结构是 { classes: [], students: [] }
|
||||
// 需要将 students 数组转换为表格数据,并关联班级信息
|
||||
if (res.data && res.data.students) {
|
||||
const students = res.data.students || []
|
||||
const classes = res.data.classes || []
|
||||
const classMap = new Map()
|
||||
classes.forEach((cls: any) => {
|
||||
classMap.set(cls.classCode, cls)
|
||||
})
|
||||
|
||||
// 将学生数据与班级信息合并
|
||||
const dataList = students.map((stu: any) => {
|
||||
const classInfo = classMap.get(stu.classCode)
|
||||
return {
|
||||
...stu,
|
||||
className: classInfo ? classInfo.classNo : stu.className || '',
|
||||
classNo: classInfo ? classInfo.classNo : ''
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
...res,
|
||||
data: {
|
||||
records: dataList,
|
||||
total: dataList.length,
|
||||
current: 1,
|
||||
size: dataList.length,
|
||||
pages: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return res
|
||||
},
|
||||
props: {
|
||||
item: 'records',
|
||||
totalCount: 'total'
|
||||
|
||||
Reference in New Issue
Block a user