|
|
@@ -403,36 +403,47 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 简历记录对话框 -->
|
|
|
- <el-dialog title="简历记录" v-model="applicationOpen" width="900px" append-to-body>
|
|
|
+ <el-dialog title="简历记录" v-model="applicationOpen" width="1200px" append-to-body>
|
|
|
<div v-if="currentJob">
|
|
|
<div class="job-info-header">
|
|
|
- <el-descriptions :column="3" border size="small">
|
|
|
- <el-descriptions-item label="职位名称">{{ currentJob.title }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="部门">{{ getDepartmentLabel(currentJob.department) }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="申请人数">{{ currentJob.applicantCount }}</el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
+ <div class="job-info-compact">
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">职位名称:</span>
|
|
|
+ <span class="info-value">{{ currentJob.title }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info-divider">|</div>
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">部门:</span>
|
|
|
+ <span class="info-value">{{ getDepartmentLabel(currentJob.department) }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info-divider">|</div>
|
|
|
+ <div class="info-item">
|
|
|
+ <span class="info-label">申请人数:</span>
|
|
|
+ <span class="info-value highlight">{{ currentJob.applicantCount }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="application-table mt-4">
|
|
|
- <el-table v-loading="applicationLoading" :data="applicationList" border>
|
|
|
- <el-table-column label="应聘者" align="center" prop="applicantName" />
|
|
|
- <el-table-column label="申请状态" align="center" prop="status" width="120">
|
|
|
+ <div class="application-table mt-4">
|
|
|
+ <el-table v-loading="applicationLoading" :data="applicationList" border size="small" class="compact-table" :row-style="{ height: '32px' }" :cell-style="{ padding: '2px 0' }">
|
|
|
+ <el-table-column label="应聘者" align="center" prop="applicantName" width="110" />
|
|
|
+ <el-table-column label="申请状态" align="center" prop="status" width="110">
|
|
|
<template #default="scope">
|
|
|
- <el-tag :type="getStatusType(scope.row.status)">
|
|
|
+ <el-tag :type="getStatusType(scope.row.status)" size="small">
|
|
|
{{ getStatusLabel(scope.row.status) }}
|
|
|
</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="联系电话" align="center" prop="contactPhone" />
|
|
|
- <el-table-column label="联系邮箱" align="center" prop="contactEmail" />
|
|
|
- <el-table-column label="自我介绍" align="center" prop="selfDescription" :show-overflow-tooltip="true" />
|
|
|
- <el-table-column label="HR备注" align="center" prop="hrNotes" :show-overflow-tooltip="true" />
|
|
|
- <el-table-column label="申请时间" align="center" prop="applyTime" width="180">
|
|
|
+ <el-table-column label="联系电话" align="center" prop="contactPhone" width="130" />
|
|
|
+ <el-table-column label="联系邮箱" align="center" prop="contactEmail" width="200" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="自我介绍" align="center" prop="selfDescription" width="180" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="申请时间" align="center" prop="applyTime" width="170">
|
|
|
<template #default="scope">
|
|
|
<span>{{ parseTime(scope.row.applyTime) }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
|
|
|
+ <el-table-column label="HR备注" align="center" prop="hrNotes" width="150" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="130" fixed="right">
|
|
|
<template #default="scope">
|
|
|
<div class="action-buttons">
|
|
|
<el-tooltip content="查看详情" placement="top">
|
|
|
@@ -442,8 +453,8 @@
|
|
|
<el-button link type="primary" icon="Download" size="small" @click="downloadResume(scope.row.resumePath)"></el-button>
|
|
|
</el-tooltip>
|
|
|
|
|
|
- <!-- 状态选择器 -->
|
|
|
- <div class="status-selector" v-hasPermi="['rs:application:edit']">
|
|
|
+ <!-- 状态选择器已隐藏 -->
|
|
|
+ <!-- <div class="status-selector" v-hasPermi="['rs:application:edit']">
|
|
|
<el-select
|
|
|
:model-value="scope.row.status"
|
|
|
@change="(newStatus: string) => handleStatusChange(scope.row, newStatus)"
|
|
|
@@ -452,7 +463,7 @@
|
|
|
>
|
|
|
<el-option v-for="option in applicationStatusOptions" :key="option.value" :label="option.label" :value="option.value" />
|
|
|
</el-select>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -465,6 +476,9 @@
|
|
|
v-model:page="applicationQueryParams.pageNum"
|
|
|
v-model:limit="applicationQueryParams.pageSize"
|
|
|
@pagination="getApplicationList"
|
|
|
+ :page-sizes="[5, 10, 15, 20]"
|
|
|
+ layout="sizes, prev, pager, next, jumper"
|
|
|
+ :small="true"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -1839,11 +1853,24 @@ onMounted(() => {
|
|
|
.pagination-container {
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
- padding: 16px 20px 0 0 !important;
|
|
|
+ padding: 8px 20px 0 0 !important;
|
|
|
background-color: #fff;
|
|
|
margin-top: 0px !important;
|
|
|
}
|
|
|
|
|
|
+.pagination-container :deep(.el-pagination) {
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
+
|
|
|
+.pagination-container :deep(.el-pagination .btn-prev),
|
|
|
+.pagination-container :deep(.el-pagination .btn-next),
|
|
|
+.pagination-container :deep(.el-pagination .el-pager li) {
|
|
|
+ min-width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ line-height: 28px;
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
+
|
|
|
/* 搜索按钮容器样式 */
|
|
|
.search-btn-container {
|
|
|
display: flex;
|
|
|
@@ -1857,11 +1884,76 @@ onMounted(() => {
|
|
|
|
|
|
/* 申请记录样式 */
|
|
|
.job-info-header {
|
|
|
- margin-bottom: 16px;
|
|
|
+ margin-bottom: 8px;
|
|
|
+}
|
|
|
+
|
|
|
+/* 紧凑型职位信息样式 */
|
|
|
+.job-info-compact {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 6px 10px;
|
|
|
+ background: #f8f9fa;
|
|
|
+ border: 1px solid #e1e8ed;
|
|
|
+ border-radius: 4px;
|
|
|
+ gap: 8px;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ min-height: 36px;
|
|
|
+}
|
|
|
+
|
|
|
+.info-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 3px;
|
|
|
+ height: 24px;
|
|
|
+}
|
|
|
+
|
|
|
+.info-label {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #606266;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 1.3;
|
|
|
+}
|
|
|
+
|
|
|
+.info-value {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #303133;
|
|
|
+ font-weight: 600;
|
|
|
+ line-height: 1.3;
|
|
|
+}
|
|
|
+
|
|
|
+.info-value.highlight {
|
|
|
+ color: #409eff;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+ line-height: 1.3;
|
|
|
+}
|
|
|
+
|
|
|
+.info-divider {
|
|
|
+ color: #dcdfe6;
|
|
|
+ font-size: 13px;
|
|
|
+ margin: 0 4px;
|
|
|
+ line-height: 1.3;
|
|
|
}
|
|
|
|
|
|
.application-table {
|
|
|
- margin-top: 16px;
|
|
|
+ margin-top: 8px;
|
|
|
+}
|
|
|
+
|
|
|
+.application-table .el-table {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.application-table .el-table__body-wrapper {
|
|
|
+ overflow-x: hidden;
|
|
|
+}
|
|
|
+
|
|
|
+/* 弹窗内容区域优化 */
|
|
|
+.el-dialog__body {
|
|
|
+ padding: 15px 20px 0 20px !important;
|
|
|
+}
|
|
|
+
|
|
|
+.el-dialog__footer {
|
|
|
+ padding: 10px 20px 15px 20px !important;
|
|
|
}
|
|
|
|
|
|
.mt-4 {
|
|
|
@@ -1872,12 +1964,15 @@ onMounted(() => {
|
|
|
.action-buttons {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- gap: 8px;
|
|
|
+ gap: 2px;
|
|
|
flex-wrap: wrap;
|
|
|
justify-content: center;
|
|
|
|
|
|
.el-button {
|
|
|
margin: 0;
|
|
|
+ padding: 2px 6px;
|
|
|
+ font-size: 11px;
|
|
|
+ min-height: 20px;
|
|
|
}
|
|
|
|
|
|
.status-selector {
|
|
|
@@ -1897,4 +1992,45 @@ onMounted(() => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+/* 紧凑表格样式 */
|
|
|
+.compact-table {
|
|
|
+ font-size: 13px;
|
|
|
+
|
|
|
+ :deep(.el-table__header) {
|
|
|
+ th {
|
|
|
+ padding: 4px 0;
|
|
|
+ font-size: 13px;
|
|
|
+ height: 32px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.el-table__body) {
|
|
|
+ td {
|
|
|
+ padding: 4px 0;
|
|
|
+ font-size: 13px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.cell) {
|
|
|
+ padding: 0 4px;
|
|
|
+ line-height: 1.3;
|
|
|
+ word-break: keep-all;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 固定列样式优化 */
|
|
|
+ :deep(.el-table__fixed-right) {
|
|
|
+ box-shadow: -2px 0 6px rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.el-table__fixed-right-patch) {
|
|
|
+ background-color: #f5f7fa;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 确保固定列正常显示 */
|
|
|
+ :deep(.el-table__fixed-right .el-table__fixed-body-wrapper) {
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|