wuzhen update

This commit is contained in:
wuzhen committed 2025-09-07 18:17:50 +08:00
1 parent edaf8dbacf
commit 48da578546
86 files changed
+2101 -1849

No files matched your search

+16 -6
View File
@@ -227,7 +227,9 @@
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button icon="Download" @click="handleExportApplications" v-hasPermi="['rs:application:export']" style="display: none">导出</el-button>
<el-button icon="Download" @click="handleExportApplications" v-hasPermi="['rs:application:export']" style="display: none"
>导出</el-button
>
</el-col>
<el-col :span="1.5">
<el-button icon="Printer" @click="handlePrintApplications" style="display: none">打印</el-button>
@@ -424,8 +426,16 @@
</div>
</div>
<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' }">
<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">
@@ -1996,7 +2006,7 @@ onMounted(() => {
/* 紧凑表格样式 */
.compact-table {
font-size: 13px;
:deep(.el-table__header) {
th {
padding: 4px 0;
@@ -2004,14 +2014,14 @@ onMounted(() => {
height: 32px;
}
}
:deep(.el-table__body) {
td {
padding: 4px 0;
font-size: 13px;
}
}
:deep(.cell) {
padding: 0 4px;
line-height: 1.3;
+6 -9
View File
@@ -69,9 +69,9 @@
</template>
<!-- 待审批申请表格 -->
<el-table v-loading="pendingLoading" border :data="pendingList" @row-dblclick="handleViewApplication" v-hasPermi="['rs:overseas:list']">
<el-table-column label="申请人" align="center" prop="applicantName" width="100" :show-overflow-tooltip="true" />
<el-table-column label="所属部门" align="center" prop="department" width="140" :show-overflow-tooltip="true" />
<el-table v-loading="pendingLoading" border :data="pendingList" @row-dblclick="handleViewApplication" v-hasPermi="['rs:overseas:list']">
<el-table-column label="申请人" align="center" prop="applicantName" width="100" :show-overflow-tooltip="true" />
<el-table-column label="所属部门" align="center" prop="department" width="140" :show-overflow-tooltip="true" />
<el-table-column label="出国目的" align="center" prop="purposeText" width="100" :show-overflow-tooltip="true" />
<el-table-column label="目的地" align="center" prop="destination" width="120" :show-overflow-tooltip="true" />
<el-table-column label="出国时间" align="center" min-width="220" :show-overflow-tooltip="true">
@@ -198,11 +198,11 @@
</template>
<!-- 审批记录表格 -->
<el-table v-loading="recordLoading" border :data="recordList" @row-dblclick="handleViewRecord" v-hasPermi="['rs:overseas:list']">
<el-table-column label="申请人" align="center" prop="applicantName" width="100" :show-overflow-tooltip="true" />
<el-table v-loading="recordLoading" border :data="recordList" @row-dblclick="handleViewRecord" v-hasPermi="['rs:overseas:list']">
<el-table-column label="申请人" align="center" prop="applicantName" width="100" :show-overflow-tooltip="true" />
<el-table-column label="出国目的" align="center" prop="purposeText" width="100" :show-overflow-tooltip="true" />
<el-table-column label="目的地" align="center" prop="destination" width="120" :show-overflow-tooltip="true" />
<el-table-column label="所属部门" align="center" prop="department" width="140" :show-overflow-tooltip="true" />
<el-table-column label="所属部门" align="center" prop="department" width="140" :show-overflow-tooltip="true" />
<el-table-column label="出国时间" align="center" min-width="220" :show-overflow-tooltip="true">
<template #default="scope"> {{ formatDate(scope.row.startDate) }} 至 {{ formatDate(scope.row.endDate) }} </template>
</el-table-column>
@@ -634,7 +634,6 @@ const resetRecordQuery = () => {
}
};
// 查看申请详情
const handleViewApplication = async (row: OverseasApplicationVO) => {
try {
@@ -821,8 +820,6 @@ const getApprovalStatusTagType = (status: string): 'success' | 'warning' | 'dang
};
return typeMap[status] || 'info';
};
</script>
<style scoped>
+8 -10
View File
@@ -31,7 +31,6 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
@@ -55,7 +54,9 @@
<el-button type="primary" plain icon="Plus" @click="handleAddApplication" v-hasPermi="['rs:overseas:add']">新增申请</el-button>
</el-col>
<el-col :span="1.5">
<el-button icon="Download" @click="handleExportApplication" v-hasPermi="['rs:overseas:export']" style="display: none">导出</el-button>
<el-button icon="Download" @click="handleExportApplication" v-hasPermi="['rs:overseas:export']" style="display: none"
>导出</el-button
>
</el-col>
<right-toolbar v-model:showSearch="showApplicationSearch" @queryTable="getApplicationList"></right-toolbar>
</el-row>
@@ -316,12 +317,13 @@
<template #footer>
<div class="dialog-footer">
<el-button
type="primary"
:loading="state.submitLoading"
<el-button
type="primary"
:loading="state.submitLoading"
@click="submitApplicationForm"
v-hasPermi="state.applicationForm.applicationId ? ['rs:overseas:edit'] : ['rs:overseas:add', 'rs:overseas:submit']"
>确 定</el-button>
>确 定</el-button
>
<el-button @click="cancelApplicationForm">取 消</el-button>
</div>
</template>
@@ -543,8 +545,6 @@ const state = reactive({
status: '0'
},
// 字典数据
statusOptions: [
{ label: '待审核', value: '0' },
@@ -723,8 +723,6 @@ const resetRecordQuery = () => {
getRecordList();
};
// 新增申请
const handleAddApplication = () => {
resetApplicationForm();
+7 -5
View File
@@ -64,7 +64,9 @@
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['rs:overseas:export']" style="display: none">导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['rs:overseas:export']" style="display: none"
>导出</el-button
>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@@ -534,7 +536,7 @@ function resetQuery() {
} catch (error) {
console.error('重置查询条件时发生错误:', error);
// 即使出错也要重新查询
handleQuery();
handleQuery();
}
}
@@ -565,7 +567,7 @@ function resetRecordQuery() {
} catch (error) {
console.error('重置查询条件时发生错误:', error);
// 即使出错也要重新查询
handleRecordQuery();
handleRecordQuery();
}
}
@@ -663,14 +665,14 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _approvalIds = row.approvalId || ids.value;
let confirmMessage = '';
if (row) {
confirmMessage = `是否确认删除申请人"${row.applicantName}"前往"${row.destination}"的审批记录?`;
} else {
confirmMessage = `是否确认删除选中的${ids.value.length}条审批记录?`;
}
proxy.$modal
.confirm(confirmMessage)
.then(function () {
+23 -23
View File
@@ -420,13 +420,13 @@ onMounted(() => {
.el-breadcrumb {
margin: 0 auto;
padding: 0 30px;
:deep(.el-breadcrumb__item) {
.el-breadcrumb__inner {
color: #666;
font-weight: 400;
}
&:last-child .el-breadcrumb__inner {
color: #2d5a3d;
font-weight: 500;
@@ -488,10 +488,10 @@ onMounted(() => {
font-size: 1rem;
position: relative;
border: none;
// 默认状态 - 普通导航项
background: #004e48;
&:hover {
background: #006157;
}
@@ -501,7 +501,7 @@ onMounted(() => {
background: #003a37;
position: relative;
z-index: 2;
// 创建右箭头效果
&::after {
content: '';
@@ -516,7 +516,7 @@ onMounted(() => {
border-bottom: 15px solid transparent;
z-index: 3;
}
// 箭头阴影效果
&::before {
content: '';
@@ -539,7 +539,7 @@ onMounted(() => {
color: #ffffff;
transition: color 0.2s ease;
}
span {
font-size: 1rem;
letter-spacing: 0.5px;
@@ -558,18 +558,18 @@ onMounted(() => {
border-radius: 8px;
border: 1px solid #e8e8e8;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
:deep(.el-card__header) {
background: #fafafa;
border-bottom: 1px solid #e8e8e8;
padding: 16px 20px;
}
:deep(.el-card__body) {
padding: 20px;
}
}
.list-header {
display: flex;
justify-content: space-between;
@@ -596,19 +596,19 @@ onMounted(() => {
font-weight: 500;
}
}
.view-options {
:deep(.el-radio-group) {
.el-radio-button__inner {
background: #fff;
border-color: #2d5a3d;
color: #2d5a3d;
&:hover {
color: #2d5a3d;
}
}
.el-radio-button__original-radio:checked + .el-radio-button__inner {
background: #2d5a3d;
border-color: #2d5a3d;
@@ -622,21 +622,21 @@ onMounted(() => {
:deep(.el-table) {
.el-table__header {
background: #fafafa;
th {
background: #fafafa !important;
color: #333;
font-weight: 500;
}
}
.el-table__row {
&:hover {
background: #f8f9fa;
}
}
}
.job-title-link {
font-weight: 500;
color: #2d5a3d;
@@ -672,12 +672,12 @@ onMounted(() => {
.el-button {
background: #2d5a3d;
border-color: #2d5a3d;
&:hover {
background: #4a7c59;
border-color: #4a7c59;
}
&:disabled {
background: #ccc;
border-color: #ccc;
@@ -692,11 +692,11 @@ onMounted(() => {
// 对话框样式优化
:deep(.el-dialog) {
border-radius: 8px;
.el-dialog__header {
background: #fafafa;
border-bottom: 1px solid #e8e8e8;
.el-dialog__title {
color: #2d5a3d;
font-weight: 600;
@@ -723,7 +723,7 @@ onMounted(() => {
color: #666;
font-size: 0.9rem;
}
.el-tag {
&.el-tag--success {
background: #e8f5e8;
@@ -771,11 +771,11 @@ onMounted(() => {
.el-button {
margin-left: 10px;
&.el-button--primary {
background: #2d5a3d;
border-color: #2d5a3d;
&:hover {
background: #4a7c59;
border-color: #4a7c59;
File diff suppressed because it is too large. Load diff
+15 -7
View File
@@ -57,7 +57,13 @@
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button icon="Download" @click="handleExportTrainingApplication" v-hasPermi="['rs:trainingapproval:export']" style="display: none">导出</el-button>
<el-button
icon="Download"
@click="handleExportTrainingApplication"
v-hasPermi="['rs:trainingapproval:export']"
style="display: none"
>导出</el-button
>
</el-col>
<right-toolbar v-model:showSearch="showApplicationSearch" @queryTable="getApplicationList"></right-toolbar>
</el-row>
@@ -120,7 +126,7 @@
</el-tab-pane>
<!-- 审批记录选项卡 -->
<el-tab-pane label="审批记录" name="approvalRecord" v-hasPermi="['rs:trainingapproval:query']">
<el-tab-pane label="审批记录" name="approvalRecord" v-hasPermi="['rs:trainingapproval:query']">
<!-- 搜索区域 -->
<transition :enter-active-class="animate.searchAnimate.enter" :leave-active-class="animate.searchAnimate.leave">
<div v-show="showApprovalRecordSearch" class="mb-[10px]">
@@ -167,7 +173,9 @@
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button icon="Download" @click="handleExportApprovalRecord" v-hasPermi="['rs:trainingapproval:export']" style="display: none">导出</el-button>
<el-button icon="Download" @click="handleExportApprovalRecord" v-hasPermi="['rs:trainingapproval:export']" style="display: none"
>导出</el-button
>
</el-col>
<right-toolbar v-model:showSearch="showApprovalRecordSearch" @queryTable="getApprovalRecordList"></right-toolbar>
</el-row>
@@ -704,12 +712,12 @@ const getApplicationList = async () => {
// 排除已通过状态的数据,只显示待审核、已拒绝、已取消等状态
excludeStatus: '1' // 1表示已通过状态
};
const response = await listTrainingApplication(queryParams);
// 前端二次过滤,确保不显示已通过的数据
const filteredApplications = response.rows.filter(app => app.status !== '1');
const filteredApplications = response.rows.filter((app) => app.status !== '1');
applicationList.value = filteredApplications;
applicationTotal.value = filteredApplications.length;
} catch (error) {