a
This commit is contained in:
@@ -133,19 +133,74 @@
|
|||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="isDormApply" label="住宿申请" align="center" width="100">
|
<el-table-column prop="isRoom" label="是否住宿" align="center" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag v-if="scope.row.isDormApply == '1'" type="success">通过</el-tag>
|
<template v-if="scope.row.isRoom == '1'">
|
||||||
<el-tag v-else-if="scope.row.isDormApply == '0'" type="danger">未通过</el-tag>
|
<DetailPopover
|
||||||
|
title="住宿信息"
|
||||||
|
:title-icon="InfoFilled"
|
||||||
|
:width="320"
|
||||||
|
:items="[
|
||||||
|
{
|
||||||
|
label: '住宿申请',
|
||||||
|
layout: 'horizontal'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '宿舍号',
|
||||||
|
layout: 'horizontal'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '床位号',
|
||||||
|
layout: 'horizontal'
|
||||||
|
}
|
||||||
|
]">
|
||||||
|
<template #reference>
|
||||||
|
<el-tag type="success" class="dorm-tag">
|
||||||
|
{{ getStatusConfig(yes_no_type, scope.row.isRoom)?.label }}
|
||||||
|
<el-icon class="info-icon"><InfoFilled /></el-icon>
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
<!-- 住宿申请状态 -->
|
||||||
|
<template #content-0>
|
||||||
|
<div class="dorm-apply-content">
|
||||||
|
<ClickableTag
|
||||||
|
v-if="scope.row.isDormApply == '1'"
|
||||||
|
type="success"
|
||||||
|
size="small"
|
||||||
|
:left-icon="CircleCheck"
|
||||||
|
:right-icon="null">
|
||||||
|
申请通过
|
||||||
|
</ClickableTag>
|
||||||
|
<ClickableTag
|
||||||
|
v-else-if="scope.row.isDormApply == '0'"
|
||||||
|
type="danger"
|
||||||
|
size="small"
|
||||||
|
:left-icon="CircleClose"
|
||||||
|
:right-icon="null">
|
||||||
|
未通过
|
||||||
|
</ClickableTag>
|
||||||
|
<span v-else class="empty-text">-</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- 宿舍号 -->
|
||||||
|
<template #content-1>
|
||||||
|
<div class="dorm-room-content">
|
||||||
|
<span :class="scope.row.roomNo ? 'room-text' : 'empty-text'">
|
||||||
|
{{ scope.row.roomNo || '-' }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- 床位号 -->
|
||||||
|
<template #content-2>
|
||||||
|
<el-tag v-if="scope.row.bedNo" size="small" type="sucess" effect="dark">
|
||||||
|
{{ scope.row.bedNo }}号
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</DetailPopover>
|
||||||
|
</template>
|
||||||
|
<span v-else>{{ getStatusConfig(yes_no_type, scope.row.isRoom)?.label }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="isRoom" label="是否住宿" align="center" width="100">
|
|
||||||
<template #default="scope">
|
|
||||||
<span>{{ getStatusConfig(yes_no_type, scope.row.isRoom)?.label }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="roomNo" label="宿舍号" align="center" width="80" show-overflow-tooltip />
|
|
||||||
<el-table-column prop="bedNo" label="床位号" align="center" width="80" show-overflow-tooltip />
|
|
||||||
<el-table-column prop="degreeOfEducation" label="文化程度" align="center" show-overflow-tooltip >
|
<el-table-column prop="degreeOfEducation" label="文化程度" align="center" show-overflow-tooltip >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ getStatusConfig(eduList, scope.row.degreeOfEducation)?.label }}</span>
|
<span>{{ getStatusConfig(eduList, scope.row.degreeOfEducation)?.label }}</span>
|
||||||
@@ -153,8 +208,16 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="residenceDetail" label="居住地址" align="center" show-overflow-tooltip />
|
<el-table-column prop="residenceDetail" label="居住地址" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="parentName" label="家庭联系人" width="100" align="center" show-overflow-tooltip />
|
<el-table-column prop="parentName" label="家庭联系人" width="100" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="parentTelOne" label="家长电话1" align="center" show-overflow-tooltip />
|
<el-table-column label="家长电话" align="center" show-overflow-tooltip>
|
||||||
<el-table-column prop="parentTelTwo" label="家长电话2" align="center" show-overflow-tooltip />
|
<template #default="scope">
|
||||||
|
<div v-if="scope.row.parentTelOne || scope.row.parentTelTwo" class="parent-tel">
|
||||||
|
<span v-if="scope.row.parentTelOne" class="tel-item">{{ scope.row.parentTelOne }}</span>
|
||||||
|
<span v-if="scope.row.parentTelOne && scope.row.parentTelTwo" class="tel-separator">/</span>
|
||||||
|
<span v-if="scope.row.parentTelTwo" class="tel-item">{{ scope.row.parentTelTwo }}</span>
|
||||||
|
</div>
|
||||||
|
<span v-else class="empty-text">-</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="remarks" label="备注" align="center" show-overflow-tooltip />
|
<el-table-column prop="remarks" label="备注" align="center" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="100" align="center" fixed="right">
|
<el-table-column label="操作" width="100" align="center" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@@ -197,6 +260,9 @@ import request from '/@/utils/request'
|
|||||||
import { getStatusConfig } from '/@/config/global'
|
import { getStatusConfig } from '/@/config/global'
|
||||||
import { getDeptList, getClassListByRole } from '/@/api/basic/basicclass'
|
import { getDeptList, getClassListByRole } from '/@/api/basic/basicclass'
|
||||||
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
||||||
|
import DetailPopover from '/@/components/DetailPopover/index.vue'
|
||||||
|
import ClickableTag from '/@/components/ClickableTag/index.vue'
|
||||||
|
import { InfoFilled, CircleCheck, CircleClose, HomeFilled, Grid } from '@element-plus/icons-vue'
|
||||||
|
|
||||||
const StuCheckIn = defineAsyncComponent(() => import('./stu-check-in.vue'))
|
const StuCheckIn = defineAsyncComponent(() => import('./stu-check-in.vue'))
|
||||||
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
|
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
|
||||||
@@ -347,7 +413,7 @@ const handleExportOut = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询报到状态字典
|
// 查询报到状态字典
|
||||||
const getCheckInStatusData = async () => {
|
const getDictsData = async () => {
|
||||||
try {
|
try {
|
||||||
const data = await getDictsByTypes(['check_in_status','finance_student_source'])
|
const data = await getDictsByTypes(['check_in_status','finance_student_source'])
|
||||||
checkInStatusData.value = data.data.check_in_status || []
|
checkInStatusData.value = data.data.check_in_status || []
|
||||||
@@ -373,7 +439,7 @@ const init = async () => {
|
|||||||
classList.value = classData.data || []
|
classList.value = classData.data || []
|
||||||
|
|
||||||
// 获取字典数据
|
// 获取字典数据
|
||||||
await getCheckInStatusData()
|
await getDictsData()
|
||||||
|
|
||||||
getDataList()
|
getDataList()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -387,4 +453,83 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.parent-tel {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 4px;
|
||||||
|
|
||||||
|
.tel-item {
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tel-separator {
|
||||||
|
color: #909399;
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-text {
|
||||||
|
color: #909399;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dorm-tag {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
transform: translateY(-1px);
|
||||||
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-icon {
|
||||||
|
font-size: 12px;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 住宿申请状态内容
|
||||||
|
.dorm-apply-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 宿舍号内容
|
||||||
|
.dorm-room-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
|
||||||
|
.room-icon {
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.room-text {
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 床位号内容
|
||||||
|
.dorm-bed-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
|
||||||
|
.bed-icon {
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bed-text {
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user