wuzhen update
This commit is contained in:
1 parent
edaf8dbacf
commit
48da578546
86 files changed
+2101
-1849
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 () {
|
||||
|
||||
@@ -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;
|
||||
|
||||
+269
-262
File diff suppressed because it is too large.
Load diff
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user