协调L3页面,新增合同证书的文件上传逻辑

This commit is contained in:
2025-12-23 15:56:15 +08:00
parent 9f423b26f9
commit 04eace18c4
11 changed files with 577 additions and 67 deletions

View File

@@ -1,12 +1,11 @@
<template>
<div class="hrm-page">
<section class="panel-grid triple">
<el-card class="metal-panel" shadow="hover">
<div slot="header" class="panel-header">
<span>班次</span>
<div class="hrm-page attendance-page">
<section class="panel-grid">
<el-card class="metal-panel flat" shadow="never">
<div class="card-toolbar">
<div class="actions-inline">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="openShiftDialog()">新增</el-button>
<el-button size="mini" icon="el-icon-refresh" @click="loadShift">刷新</el-button>
<el-button size="mini" type="primary" plain icon="el-icon-plus" @click="openShiftDialog()">新增</el-button>
<el-button size="mini" plain icon="el-icon-refresh" @click="loadShift">刷新</el-button>
</div>
</div>
<el-table :data="shiftList" v-loading="shiftLoading" height="320" stripe>
@@ -31,9 +30,8 @@
</el-table>
</el-card>
<el-card class="metal-panel" shadow="hover">
<div slot="header" class="panel-header">
<span>排班</span>
<el-card class="metal-panel flat" shadow="never">
<div class="card-toolbar">
<div class="actions-inline">
<el-date-picker
v-model="scheduleQuery.date"
@@ -43,8 +41,8 @@
style="width: 140px"
@change="loadSchedule"
/>
<el-button size="mini" type="primary" @click="loadSchedule">查询</el-button>
<el-button size="mini" icon="el-icon-plus" @click="openScheduleDialog()">新增</el-button>
<el-button size="mini" type="primary" plain @click="loadSchedule">查询</el-button>
<el-button size="mini" plain icon="el-icon-plus" @click="openScheduleDialog()">新增</el-button>
</div>
</div>
<el-table :data="scheduleList" v-loading="scheduleLoading" height="320" stripe>
@@ -69,9 +67,8 @@
</el-table>
</el-card>
<el-card class="metal-panel" shadow="hover">
<div slot="header" class="panel-header">
<span>打卡与考勤结果</span>
<el-card class="metal-panel flat wide" shadow="never">
<div class="card-toolbar">
<div class="actions-inline">
<el-date-picker
v-model="punchQuery.range"
@@ -448,45 +445,66 @@ export default {
</script>
<style lang="scss" scoped>
.hrm-page {
padding: 16px 20px 32px;
background: #f8f9fb;
.attendance-page {
padding: 0;
background: transparent;
}
.panel-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
grid-template-columns: 1fr 1fr;
gap: 12px;
align-items: start;
}
.metal-panel {
border: 1px solid #d7d9df;
border-radius: 10px;
background: #fff;
border: none;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.panel-header {
.metal-panel :deep(.el-card__body) {
padding: 0;
background: transparent;
}
.card-toolbar {
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 600;
color: #303133;
justify-content: flex-end;
padding: 4px 0 8px;
}
.actions-inline {
display: flex;
gap: 8px;
align-items: center;
}
.flat :deep(.el-card__body) {
padding: 0;
}
.flat {
padding: 0;
}
.wide {
grid-column: span 2;
}
.flat :deep(.el-table),
.flat :deep(.el-table__body-wrapper),
.flat :deep(.el-table__header-wrapper),
.flat :deep(.el-table__empty-block) {
background: transparent;
}
.dual-tables {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.table-half {
border: 1px dashed #e6e8ed;
border-radius: 8px;
padding: 8px;
border: none;
border-radius: 0;
padding: 0;
background: transparent;
}
.table-title {
font-weight: 600;
margin-bottom: 6px;
color: #1f2937;
}
.exception-tag {
color: #409eff;
@@ -499,6 +517,9 @@ export default {
.panel-grid {
grid-template-columns: 1fr;
}
.wide {
grid-column: span 1;
}
.dual-tables {
grid-template-columns: 1fr;
}