完成评查点分组列表和评查点列表的页面,封装部分组件,重新构造样式文件结构

This commit is contained in:
2025-03-26 18:39:42 +08:00
parent 97ccf5a077
commit d9b9ce4676
34 changed files with 3281 additions and 3777 deletions
-26
View File
@@ -1,26 +0,0 @@
/**
* 页面样式索引文件
* 集中导入所有页面特定样式
*/
/* 首页 */
@import "./home.css";
/* 评查点列表 */
@import "./rules_index.css";
/* 评查点分组 */
@import "./rule-groups.css";
/* 其他页面 - 待创建 */
/*
@import "./files.css";
@import "./rules.css";
@import "./reviews.css";
@import "./settings.css";
*/
/**
* 注意:如果上述导入的文件不存在,将会在构建时报错
* 请确保先创建这些文件,或者先注释掉不存在的文件
*/
-76
View File
@@ -1,76 +0,0 @@
/* 评查点分组管理页面样式 */
/* 树形结构样式 */
.tree-table .group-row {
transition: all 0.2s;
}
.tree-table .group-row:hover {
background-color: rgba(0, 104, 74, 0.05);
}
.tree-table .parent-row {
background-color: #f9f9f9;
font-weight: 500;
}
.tree-table .child-row {
border-left: 3px solid #f0f0f0;
}
.expand-icon {
width: 22px;
height: 22px;
border-radius: 4px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s;
}
.expand-icon:hover {
background-color: rgba(0, 104, 74, 0.1);
}
.group-badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: 12px;
font-size: 12px;
margin-left: 8px;
}
.parent-badge {
background-color: rgba(0, 104, 74, 0.1);
color: var(--color-primary);
}
.child-badge {
background-color: rgba(0, 104, 74, 0.05);
color: var(--color-primary);
}
.badge {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 2px 8px;
border-radius: 12px;
font-size: 12px;
}
/* 按钮文本样式,不与其他冲突 */
.btn-text {
background-color: transparent;
border: none;
color: var(--color-gray-800);
padding: 4px 8px;
}
/* 小尺寸按钮 */
.btn-sm {
padding: 4px 8px;
font-size: 12px;
}
+319
View File
@@ -0,0 +1,319 @@
/* app/styles/pages/rule-groups_index.css */
/* 使用命名空间限制样式作用范围,避免覆盖全局样式 */
.rule-groups-page a.badge.bg-primary.text-white {
color: white;
text-decoration: none;
transition: color 0.2s;
}
.rule-groups-page a.badge.bg-primary.text-white:hover {
color: white;
opacity: 0.9;
text-decoration: underline;
}
/* 修改分组名称链接颜色为绿色 */
.rule-groups-page .tree-table a.text-primary {
color: #00684a;
text-decoration: none;
}
.rule-groups-page .tree-table a.text-primary:hover {
text-decoration: underline;
color: #005a3f;
}
/* 分组名称链接样式 */
.rule-groups-page .group-name-link {
color: #00684a;
text-decoration: none;
transition: all 0.2s;
}
.rule-groups-page .group-name-link:hover {
text-decoration: underline;
color: #005a3f;
}
/* 展开/收起图标颜色 */
.rule-groups-page .expand-icon i {
color: #00684a;
}
/* 树形结构样式 */
.rule-groups-page .tree-table .group-row {
transition: all 0.2s;
font-weight: 400; /* 减少文字粗细度 */
}
.rule-groups-page .tree-table .group-row:hover {
background-color: rgba(0, 104, 74, 0.05);
}
.rule-groups-page .tree-table .parent-row {
background-color: #f9f9f9;
font-weight: 400; /* 减少文字粗细度 */
}
.rule-groups-page .tree-table .child-row {
border-left: 3px solid #f0f0f0;
}
.rule-groups-page .expand-icon {
width: 22px;
height: 22px;
border-radius: 4px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s;
}
.rule-groups-page .expand-icon:hover {
background-color: rgba(0, 104, 74, 0.1);
}
.rule-groups-page .group-badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: 12px;
font-size: 12px;
margin-left: 8px;
}
.rule-groups-page .parent-badge {
background-color: rgba(0, 104, 74, 0.1);
color: var(--color-primary);
}
.rule-groups-page .child-badge {
background-color: rgba(0, 104, 74, 0.05);
color: var(--color-primary);
}
/* 状态点样式 */
.rule-groups-page .status-dot {
display: inline-block;
width: 8px;
height: 8px;
border-radius: 50%;
margin-right: 6px;
}
.rule-groups-page .status-success {
background-color: #52c41a;
}
.rule-groups-page .status-error {
background-color: #f5222d;
}
/* 表单样式 */
.rule-groups-page .form-label {
display: block;
margin-bottom: 8px;
color: #495057;
font-size: 14px;
}
.rule-groups-page .form-input,
.rule-groups-page .form-select {
width: 100%;
height: 38px;
padding: 8px 12px;
border: 1px solid #dee2e6;
border-radius: 4px;
font-size: 14px;
transition: all 0.2s;
}
.rule-groups-page .form-input:focus,
.rule-groups-page .form-select:focus {
border-color: #00684a;
box-shadow: 0 0 0 2px rgba(0, 104, 74, 0.2);
outline: none;
}
/* 卡片样式 */
.rule-groups-page .ant-card {
background-color: white;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
border: 1px solid #e9ecef;
}
.rule-groups-page .ant-card-body {
padding: 16px;
}
/* 表格样式 */
.rule-groups-page .ant-table {
width: 100%;
border-collapse: collapse;
}
.rule-groups-page .ant-table th,
.rule-groups-page .ant-table td {
padding: 12px 16px;
text-align: left;
border-bottom: 1px solid #e9ecef;
}
.rule-groups-page .ant-table th {
background-color: #f8f9fa;
font-weight: 400; /* 减少文字粗细度 */
color: #495057;
font-size: 14px;
}
/* 分页样式 */
.rule-groups-page .ant-pagination {
display: flex;
align-items: center;
gap: 8px;
}
.rule-groups-page .ant-pagination-item {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #dee2e6;
border-radius: 4px;
background-color: white;
cursor: pointer;
transition: all 0.2s;
}
.rule-groups-page .ant-pagination-item:hover {
border-color: #00684a;
color: #00684a;
}
.rule-groups-page .ant-pagination-item-active {
background-color: #00684a;
border-color: #00684a;
color: white;
}
.rule-groups-page .ant-pagination-prev,
.rule-groups-page .ant-pagination-next {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #dee2e6;
border-radius: 4px;
background-color: white;
cursor: pointer;
transition: all 0.2s;
}
.rule-groups-page .ant-pagination-prev:disabled,
.rule-groups-page .ant-pagination-next:disabled {
opacity: 0.5;
cursor: not-allowed;
}
/* 特定链接样式 */
.rule-groups-page .badge {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.25rem 0.5rem;
border-radius: 0.75rem;
font-size: 0.75rem;
font-weight: 400; /* 减少文字粗细度 */
}
/* 添加badge链接的特殊悬停样式 */
.rule-groups-page a.badge.bg-primary.text-white:hover {
color: white;
opacity: 0.9;
}
/* 仅在rule-groups页面内生效的样式 */
.rule-groups-page .bg-primary {
background-color: #00684a;
}
.rule-groups-page .text-white {
color: white;
}
.rule-groups-page .text-secondary {
color: #6c757d;
}
.rule-groups-page .text-error {
color: #f5222d;
}
/* 行操作按钮 */
.rule-groups-page .ant-btn-text {
background: transparent;
margin: 10px;
border: none;
padding: 4px 0;
cursor: pointer;
transition: color 0.2s;
}
.rule-groups-page .ant-btn-text.text-primary {
color: #00684a;
}
.rule-groups-page .ant-btn-text.text-primary:hover {
color: #005a3f;
}
.rule-groups-page .ant-btn-text.text-error {
color: #f5222d;
}
.rule-groups-page .ant-btn-text.text-error:hover {
color: #cf1f29;
}
/* 响应式调整 */
@media (max-width: 768px) {
.rule-groups-page .flex-wrap {
flex-direction: column;
}
.rule-groups-page .flex-1 {
width: 100%;
}
.rule-groups-page .ant-table {
font-size: 14px;
}
}
/* 搜索框样式 */
.rule-groups-page .search-box {
display: flex;
align-items: center;
}
.rule-groups-page .search-box .form-input {
flex: 1;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.rule-groups-page .search-box .ant-btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* 无按钮搜索框样式 */
.rule-groups-page .search-box.form-input-only .form-input {
border-radius: 0.25rem;
width: 100%;
}
+240
View File
@@ -0,0 +1,240 @@
/* 评查文件列表页面样式 */
.review-files-page {
/* 所有样式都包含在此命名空间内 */
}
/* 筛选区域 */
.review-files-page .card-container {
margin-bottom: 16px;
}
/* 搜索框样式 */
.review-files-page .search-box {
display: flex;
align-items: center;
width: 100%;
}
.review-files-page .search-box .form-input {
flex: 1;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
padding: 8px 12px;
border: none;
outline: none;
}
.review-files-page .search-box .ant-btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* 表格样式 */
.review-files-page .ant-table {
width: 100%;
border-collapse: collapse;
}
.review-files-page .ant-table th {
background-color: #fafafa;
font-weight: 500;
padding: 16px;
text-align: left;
border-bottom: 1px solid #f0f0f0;
}
.review-files-page .ant-table td {
padding: 16px;
border-bottom: 1px solid #f0f0f0;
}
.review-files-page .ant-table tr:hover {
background-color: rgba(0, 0, 0, 0.02);
}
/* 文件类型徽章 */
.review-files-page .file-type-badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 500;
}
.review-files-page .file-type-badge i {
margin-right: 4px;
font-size: 14px;
}
.review-files-page .file-type-contract {
background-color: #e6f7ff;
color: #1890ff;
}
.review-files-page .file-type-license {
background-color: #f6ffed;
color: #52c41a;
}
.review-files-page .file-type-punishment {
background-color: #fff7e6;
color: #fa8c16;
}
.review-files-page .file-type-report {
background-color: #e6fffb;
color: #13c2c2;
}
.review-files-page .file-type-other {
background-color: #f9f0ff;
color: #722ed1;
}
/* 状态徽章 */
.review-files-page .status-badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 500;
}
.review-files-page .status-pass {
background-color: #f6ffed;
color: #52c41a;
}
.review-files-page .status-warning {
background-color: #fffbe6;
color: #faad14;
}
.review-files-page .status-fail {
background-color: #fff1f0;
color: #f5222d;
}
.review-files-page .status-pending {
background-color: #f9f0ff;
color: #722ed1;
}
/* 严重程度指示器 */
.review-files-page .severity-indicator {
display: inline-block;
width: 16px;
height: 16px;
border-radius: 50%;
margin-right: 8px;
vertical-align: middle;
}
.review-files-page .severity-info {
background-color: #1890ff;
}
.review-files-page .severity-warning {
background-color: #faad14;
}
.review-files-page .severity-error {
background-color: #f5222d;
}
.review-files-page .severity-critical {
background-color: #722ed1;
}
/* 分页样式 */
.review-files-page .pagination {
display: flex;
justify-content: flex-end;
margin-top: 16px;
padding: 16px;
}
.review-files-page .pagination-item {
min-width: 32px;
height: 32px;
margin-right: 8px;
display: inline-flex;
justify-content: center;
align-items: center;
border: 1px solid #d9d9d9;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
transition: all 0.3s;
background-color: transparent;
}
.review-files-page .pagination-item:hover {
border-color: var(--color-primary, #1677ff);
color: var(--color-primary, #1677ff);
}
.review-files-page .pagination-item.active {
border-color: var(--color-primary, #1677ff);
background-color: var(--color-primary, #1677ff);
color: white;
}
.review-files-page .pagination-item.disabled {
color: rgba(0, 0, 0, 0.25);
border-color: #d9d9d9;
cursor: not-allowed;
}
/* 表单组件样式 */
.review-files-page .form-select {
width: 100%;
height: 38px;
padding: 8px 12px;
border: 1px solid #d9d9d9;
border-radius: 4px;
font-size: 14px;
transition: all 0.2s;
background-color: white;
}
.review-files-page .form-select:focus {
border-color: var(--color-primary, #1677ff);
box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.2);
outline: none;
}
/* 内容卡片样式 */
.review-files-page .content-card .ant-card-body {
padding: 0 !important;
}
/* 文本颜色辅助类 */
.review-files-page .text-success {
color: #52c41a;
}
.review-files-page .text-warning {
color: #faad14;
}
.review-files-page .text-error {
color: #f5222d;
}
.review-files-page .text-secondary {
color: rgba(0, 0, 0, 0.45);
}
/* 错误容器样式 */
.review-files-page .error-container {
text-align: center;
padding: 48px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
max-width: 500px;
margin: 48px auto;
}
+284 -21
View File
@@ -1,40 +1,120 @@
/* 评查点列表页面样式 */
.rules-page {
/* 所有样式都包含在此命名空间内 */
}
/* 筛选区域 */
.filter-card {
.rules-page .filter-card {
margin-bottom: 1rem;
}
/* 搜索框样式 */
.search-box {
.rules-page .search-box {
display: flex;
align-items: center;
}
.search-box .form-input {
.rules-page .search-box .form-input {
flex: 1;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.search-box .ant-btn {
.rules-page .search-box .ant-btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* 表格样式 */
.rules-table {
/* 无按钮搜索框样式 */
.rules-page .search-box.form-input-only .form-input {
border-radius: 0.25rem;
width: 100%;
margin-top: 1rem;
}
/* 表格样式 */
.rules-page .ant-table {
width: 100%;
border-collapse: collapse;
}
.rules-page .ant-table th {
background-color: #f9f9f9;
font-weight: 400; /* 减少文字粗细度 */
padding: 12px 16px;
text-align: left;
border-bottom: 1px solid #e9ecef;
}
.rules-page .ant-table td {
padding: 12px 16px;
border-bottom: 1px solid #e9ecef;
font-weight: 400; /* 减少文字粗细度 */
}
.rules-page .ant-table tr:hover {
background-color: rgba(0, 0, 0, 0.02);
}
/* 表格操作列样式 */
.operations-cell {
.rules-page .operations-cell {
white-space: nowrap;
}
/* 操作按钮样式 - 改为文本按钮样式 */
.rules-page .operations-cell .ant-btn {
background: transparent;
border: 1px solid #e9ecef;
padding: 4px 8px;
margin-right: 4px;
border-radius: 4px;
font-size: 14px;
color: #495057;
height: auto;
min-width: auto;
box-shadow: none;
}
.rules-page .operation-btn {
margin-right: 8px;
font-weight: normal;
display: inline-flex;
align-items: center;
justify-content: center;
border: 1px solid #e4e4e4;
background-color: #ffffff;
color: #333;
border-radius: 4px;
line-height: 1;
padding: 4px 8px;
font-size: 13px;
text-decoration: none;
cursor: pointer;
}
.rules-page .operation-btn i {
font-size: 14px;
margin-right: 2px;
}
.rules-page .operation-btn:hover {
border-color: #00684a;
color: #00684a;
}
.rules-page .operation-btn-danger {
background-color: #f5222d;
border-color: #f5222d;
color: white;
}
.rules-page .operation-btn-danger:hover {
background-color: #cf1f29;
border-color: #cf1f29;
color: white !important;
}
/* 状态点样式 */
.status-dot {
.rules-page .status-dot {
display: inline-block;
width: 8px;
height: 8px;
@@ -42,28 +122,177 @@
margin-right: 5px;
}
.status-dot-success {
.rules-page .status-dot-success {
background-color: #52c41a;
}
.status-dot-default {
.rules-page .status-dot-default {
background-color: #d9d9d9;
}
/* 标签自定义样式 */
.rule-tag {
.rules-page .ant-tag {
display: inline-flex;
align-items: center;
padding: 2px 8px;
font-size: 12px;
border-radius: 4px;
margin-right: 8px;
font-weight: 400; /* 减少文字粗细度 */
}
/* 表格行悬停效果 */
.ant-table tbody tr:hover {
background-color: rgba(0, 0, 0, 0.02);
.rules-page .ant-tag-blue {
background-color: rgba(24, 144, 255, 0.1);
color: #1890ff;
}
.rules-page .ant-tag-green {
background-color: rgba(82, 196, 26, 0.1);
color: #52c41a;
}
.rules-page .ant-tag-cyan {
background-color: rgba(19, 194, 194, 0.1);
color: #13c2c2;
}
.rules-page .ant-tag-purple {
background-color: rgba(114, 46, 209, 0.1);
color: #722ed1;
}
.rules-page .ant-tag-orange {
background-color: rgba(250, 173, 20, 0.1);
color: #faad14;
}
.rules-page .ant-tag-red {
background-color: rgba(245, 34, 45, 0.1);
color: #f5222d;
}
/* 分页样式 */
.rules-page .ant-pagination {
display: flex;
align-items: center;
margin-top: 16px;
padding: 16px;
justify-content: space-between;
}
.rules-page .ant-pagination-right {
display: flex;
align-items: center;
gap: 4px;
}
.rules-page .ant-pagination-item {
min-width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #dee2e6;
border-radius: 4px;
background-color: white;
cursor: pointer;
transition: all 0.2s;
padding: 0 8px;
}
.rules-page .ant-pagination-item-active {
background-color: #00684a;
border-color: #00684a;
color: white;
}
.rules-page .ant-pagination-disabled {
opacity: 0.5;
cursor: not-allowed;
}
.rules-page .ant-pagination-prev,
.rules-page .ant-pagination-next {
min-width: 32px;
height: 32px;
}
.rules-page .ant-pagination-options {
display: flex;
align-items: center;
}
.rules-page .ant-pagination-options-size-changer {
margin-left: 8px;
border: 1px solid #dee2e6;
border-radius: 4px;
height: 32px;
padding: 0 8px;
}
/* 卡片内容调整 */
.rules-page .content-card .ant-card-body {
padding: 0 !important;
}
/* 表单标签 */
.rules-page .form-label {
display: block;
margin-bottom: 8px;
font-size: 14px;
color: #495057;
}
.rules-page .form-select,
.rules-page .form-input {
width: 100%;
height: 38px;
padding: 8px 12px;
border: 1px solid #dee2e6;
border-radius: 4px;
font-size: 14px;
transition: all 0.2s;
}
.rules-page .form-select:focus,
.rules-page .form-input:focus {
border-color: #00684a;
box-shadow: 0 0 0 2px rgba(0, 104, 74, 0.2);
outline: none;
}
/* 确认对话框 */
.rules-page .modal-backdrop {
position: fixed;
inset: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
}
.rules-page .modal-content {
background-color: white;
border-radius: 8px;
padding: 24px;
max-width: 400px;
width: 100%;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.rules-page .error-container {
text-align: center;
padding: 48px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
max-width: 500px;
margin: 48px auto;
}
/* 页面标题区域 */
.page-header {
.rules-page .page-header {
display: flex;
justify-content: space-between;
align-items: center;
@@ -71,10 +300,44 @@
}
/* 卡片内容间距 */
.content-card {
padding: 0;
.rules-page .card-container {
margin-bottom: 16px;
}
.content-card .ant-card-body {
padding: 0;
}
.rules-page .ant-card {
background-color: white;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
border: 1px solid #e9ecef;
margin-bottom: 16px;
}
.rules-page .ant-card-body {
padding: 16px;
}
/* 按钮样式修正 */
.rules-page .ant-btn-sm {
height: 32px;
padding: 0 8px;
font-size: 14px;
}
/* 按钮悬停覆盖样式 */
.rules-page .ant-btn-primary {
color: white !important;
}
.rules-page .ant-btn-primary:hover {
color: white !important;
background-color: #005a3f;
}
/* 针对操作列中的按钮
.rules-page .operations-cell .ant-btn-default:hover {
color: #495057;
}
.rules-page .operations-cell .ant-btn-danger:hover {
color: white;
} */