完成评查点分组列表和评查点列表的页面,封装部分组件,重新构造样式文件结构
This commit is contained in:
@@ -1,97 +0,0 @@
|
||||
/**
|
||||
* 基础样式文件
|
||||
* 包含全局变量与Tailwind基础配置
|
||||
*/
|
||||
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
/* 主题颜色变量 */
|
||||
--color-primary: #00684a;
|
||||
--color-primary-hover: #005a3f;
|
||||
--color-primary-light: rgba(0, 104, 74, 0.1);
|
||||
|
||||
/* 成功、警告、错误颜色 */
|
||||
--color-success: #52c41a;
|
||||
--color-warning: #faad14;
|
||||
--color-error: #f5222d;
|
||||
|
||||
/* 中性色 */
|
||||
--color-gray-50: #f8f9fa;
|
||||
--color-gray-100: #f1f3f5;
|
||||
--color-gray-200: #e9ecef;
|
||||
--color-gray-300: #dee2e6;
|
||||
--color-gray-400: #ced4da;
|
||||
--color-gray-500: #adb5bd;
|
||||
--color-gray-600: #868e96;
|
||||
--color-gray-700: #495057;
|
||||
--color-gray-800: #343a40;
|
||||
--color-gray-900: #212529;
|
||||
|
||||
/* 字体设置 */
|
||||
--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
|
||||
/* 间距倍数基准 */
|
||||
--spacing-base: 0.25rem;
|
||||
|
||||
/* 圆角 */
|
||||
--radius-sm: 0.125rem;
|
||||
--radius-md: 0.25rem;
|
||||
--radius-lg: 0.5rem;
|
||||
--radius-xl: 1rem;
|
||||
|
||||
/* 阴影 */
|
||||
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
||||
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||||
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
||||
|
||||
/* 过渡 */
|
||||
--transition-normal: 0.2s ease;
|
||||
}
|
||||
|
||||
/* 基本元素样式 */
|
||||
html, body {
|
||||
@apply font-sans text-gray-800 antialiased;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* 文字选择颜色 */
|
||||
::selection {
|
||||
@apply bg-[rgba(0,104,74,0.2)] text-[#00684a];
|
||||
}
|
||||
|
||||
/* 滚动条美化 */
|
||||
::-webkit-scrollbar {
|
||||
@apply w-2 h-2;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
@apply bg-gray-100;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
@apply bg-gray-300 rounded-full hover:bg-gray-400;
|
||||
}
|
||||
|
||||
/* 链接样式 */
|
||||
a {
|
||||
@apply text-[#00684a] hover:text-[#005a3f] transition-colors duration-200;
|
||||
}
|
||||
|
||||
/* 主要文本颜色 */
|
||||
.text-primary {
|
||||
@apply text-[#00684a];
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
@apply bg-[#00684a];
|
||||
}
|
||||
|
||||
/* 平滑过渡 */
|
||||
.transition-all-ease {
|
||||
@apply transition-all duration-200 ease-in-out;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* 组件样式索引文件
|
||||
* 集中导入所有组件样式
|
||||
*/
|
||||
|
||||
/* 布局相关组件 */
|
||||
@import "../layout.css";
|
||||
/* 已合并到layout.css中 */
|
||||
/* @import "./sidebar.css"; */
|
||||
|
||||
/* UI 基础组件 */
|
||||
@import "./button.css";
|
||||
@import "./card.css";
|
||||
@import "./form.css";
|
||||
@import "./table.css";
|
||||
@import "./badge.css";
|
||||
@import "./navigation.css";
|
||||
|
||||
/**
|
||||
* 注意:如果上述导入的文件不存在,将会在构建时报错
|
||||
* 请确保先创建这些文件,或者先注释掉不存在的文件
|
||||
*/
|
||||
@@ -1,19 +0,0 @@
|
||||
/**
|
||||
* 主样式入口文件
|
||||
* 本文件集中导入所有样式
|
||||
*/
|
||||
|
||||
/* Tailwind 基础指令 */
|
||||
@import "./base.css";
|
||||
|
||||
/* 组件样式 */
|
||||
@import "./components/index.css";
|
||||
|
||||
/* 页面特定样式 */
|
||||
@import "./pages/index.css";
|
||||
|
||||
/*
|
||||
* 注意: 页面特定样式已经移到各自页面的links函数中按需加载
|
||||
* 不再通过全局样式文件导入
|
||||
*/
|
||||
/* @import "./pages/index.css"; */
|
||||
@@ -1,201 +0,0 @@
|
||||
/**
|
||||
* 全局布局样式
|
||||
* 定义应用的主要布局结构
|
||||
*/
|
||||
|
||||
/**
|
||||
* 侧边栏基础样式
|
||||
*/
|
||||
.sidebar {
|
||||
@apply w-[280px] h-screen bg-white border-r border-gray-100 flex flex-col
|
||||
transition-all duration-300 fixed left-0 top-0 z-[100] overflow-y-auto
|
||||
shadow-[0_0_15px_rgba(0,0,0,0.05)];
|
||||
}
|
||||
|
||||
.sidebar.collapsed {
|
||||
@apply w-20;
|
||||
}
|
||||
|
||||
/* 侧边栏头部 */
|
||||
.sidebar-header {
|
||||
@apply h-16 border-b border-gray-100 flex items-center justify-between px-5;
|
||||
}
|
||||
|
||||
.sidebar-logo {
|
||||
@apply flex items-center space-x-2;
|
||||
}
|
||||
|
||||
.sidebar-logo-img {
|
||||
@apply h-8 w-auto;
|
||||
}
|
||||
|
||||
.sidebar-logo-text {
|
||||
@apply font-medium text-lg text-gray-900 transition-opacity duration-200;
|
||||
}
|
||||
|
||||
.sidebar.collapsed .sidebar-logo-text {
|
||||
@apply opacity-0 invisible;
|
||||
}
|
||||
|
||||
.sidebar-toggle {
|
||||
@apply bg-transparent border-none text-xl text-gray-500 cursor-pointer p-1
|
||||
rounded transition-all duration-200;
|
||||
}
|
||||
|
||||
.sidebar-toggle:hover {
|
||||
@apply bg-gray-100;
|
||||
}
|
||||
|
||||
/* 用户资料 */
|
||||
.sidebar-user {
|
||||
@apply flex items-center px-5 py-3 border-b border-gray-100;
|
||||
}
|
||||
|
||||
.sidebar-user-avatar {
|
||||
@apply w-10 h-10 rounded-full overflow-hidden flex-shrink-0;
|
||||
}
|
||||
|
||||
.sidebar-user-info {
|
||||
@apply ml-3 transition-opacity duration-200;
|
||||
}
|
||||
|
||||
.sidebar.collapsed .sidebar-user-info {
|
||||
@apply opacity-0 invisible;
|
||||
}
|
||||
|
||||
.sidebar-user-name {
|
||||
@apply text-sm font-medium text-gray-900;
|
||||
}
|
||||
|
||||
.sidebar-user-role {
|
||||
@apply text-xs text-gray-500;
|
||||
}
|
||||
|
||||
/* 导航菜单 */
|
||||
.sidebar-menu {
|
||||
@apply flex-1 overflow-y-auto py-4 px-3;
|
||||
}
|
||||
|
||||
.sidebar-menu-item {
|
||||
@apply flex items-center py-3 px-4 text-gray-800 no-underline rounded-md
|
||||
cursor-pointer transition-all duration-200 mb-1;
|
||||
}
|
||||
|
||||
.sidebar-menu-item i {
|
||||
@apply text-base w-6 text-center;
|
||||
}
|
||||
|
||||
.sidebar-menu-icon {
|
||||
@apply text-xl opacity-80 w-5 flex-shrink-0;
|
||||
}
|
||||
|
||||
.sidebar-menu-text {
|
||||
@apply ml-2.5 transition-opacity duration-200;
|
||||
}
|
||||
|
||||
.sidebar.collapsed .sidebar-menu-text {
|
||||
@apply opacity-0 invisible;
|
||||
}
|
||||
|
||||
.sidebar-menu-badge {
|
||||
@apply ml-auto bg-[#00684a] text-white text-xs font-semibold h-5 min-w-[20px] rounded-full
|
||||
flex items-center justify-center px-1 transition-opacity duration-200;
|
||||
}
|
||||
|
||||
.sidebar.collapsed .sidebar-menu-badge {
|
||||
@apply opacity-0 invisible;
|
||||
}
|
||||
|
||||
.sidebar-menu-item:hover {
|
||||
@apply bg-[rgba(0,104,74,0.05)];
|
||||
}
|
||||
|
||||
.sidebar-menu-item.active {
|
||||
@apply bg-[rgba(0,104,74,0.1)] text-[#00684A] font-medium;
|
||||
}
|
||||
|
||||
.sidebar-submenu {
|
||||
@apply pl-7 mt-1 space-y-1 transition-all duration-200 overflow-hidden;
|
||||
}
|
||||
|
||||
.sidebar-submenu-item {
|
||||
@apply flex items-center px-3 py-2 rounded-md text-sm text-gray-500
|
||||
hover:bg-gray-50 transition-colors duration-100;
|
||||
}
|
||||
|
||||
.sidebar-submenu-item.active {
|
||||
@apply text-[#00684a];
|
||||
}
|
||||
|
||||
/* 侧边栏底部 */
|
||||
.sidebar-footer {
|
||||
@apply border-t border-gray-100 px-5 py-4;
|
||||
}
|
||||
|
||||
/**
|
||||
* 主布局容器
|
||||
*/
|
||||
.layout-container {
|
||||
@apply flex min-h-screen bg-gray-50;
|
||||
}
|
||||
|
||||
/**
|
||||
* 主内容区域
|
||||
*/
|
||||
.main-content {
|
||||
@apply flex-1 ml-[280px] transition-all duration-300 min-h-screen flex flex-col;
|
||||
}
|
||||
|
||||
.main-content.sidebar-collapsed {
|
||||
@apply ml-20;
|
||||
}
|
||||
|
||||
.content-container {
|
||||
@apply flex-1 p-5 overflow-auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 面包屑导航
|
||||
*/
|
||||
.breadcrumb {
|
||||
@apply flex items-center text-sm text-gray-500 mb-4;
|
||||
}
|
||||
|
||||
.breadcrumb-item {
|
||||
@apply flex items-center;
|
||||
}
|
||||
|
||||
.breadcrumb-item:not(:last-child)::after {
|
||||
content: "/";
|
||||
@apply mx-2;
|
||||
}
|
||||
|
||||
.breadcrumb-item:last-child {
|
||||
@apply text-gray-700 font-medium;
|
||||
}
|
||||
|
||||
/**
|
||||
* 响应式调整
|
||||
*/
|
||||
@screen sm {
|
||||
.content-container {
|
||||
@apply p-6;
|
||||
}
|
||||
}
|
||||
|
||||
@screen md {
|
||||
.sidebar-toggle {
|
||||
@apply block;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 暗色模式
|
||||
*/
|
||||
.dark .layout-container {
|
||||
@apply bg-gray-900;
|
||||
}
|
||||
|
||||
.dark .content-container {
|
||||
@apply bg-gray-900 text-gray-200;
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
/**
|
||||
* 主样式文件
|
||||
* 包含应用所有样式
|
||||
*/
|
||||
|
||||
/* Tailwind 基础指令 */
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
/* 全局变量和基础样式 */
|
||||
@layer base {
|
||||
:root {
|
||||
/* 主题颜色变量 */
|
||||
--color-primary: #00684a;
|
||||
--color-primary-hover: #005a3f;
|
||||
--color-primary-light: rgba(0, 104, 74, 0.1);
|
||||
|
||||
/* 成功、警告、错误颜色 */
|
||||
--color-success: #52c41a;
|
||||
--color-warning: #faad14;
|
||||
--color-error: #f5222d;
|
||||
|
||||
/* 中性色 */
|
||||
--color-gray-50: #f8f9fa;
|
||||
--color-gray-100: #f1f3f5;
|
||||
--color-gray-200: #e9ecef;
|
||||
--color-gray-300: #dee2e6;
|
||||
--color-gray-400: #ced4da;
|
||||
--color-gray-500: #adb5bd;
|
||||
--color-gray-600: #868e96;
|
||||
--color-gray-700: #495057;
|
||||
--color-gray-800: #343a40;
|
||||
--color-gray-900: #212529;
|
||||
}
|
||||
|
||||
/* 基本元素样式 */
|
||||
html, body {
|
||||
@apply text-gray-800 antialiased;
|
||||
font-smooth: always;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-rendering: optimizeLegibility;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* 文字选择颜色 */
|
||||
::selection {
|
||||
@apply bg-[rgba(0,104,74,0.2)] text-[#00684a];
|
||||
}
|
||||
|
||||
/* 滚动条美化 */
|
||||
::-webkit-scrollbar {
|
||||
@apply w-2 h-2;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
@apply bg-gray-100;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
@apply bg-gray-300 rounded-full hover:bg-gray-400;
|
||||
}
|
||||
|
||||
/* 链接样式 */
|
||||
a {
|
||||
@apply text-[#00684a] hover:text-[#005a3f] transition-colors duration-200;
|
||||
}
|
||||
}
|
||||
|
||||
/* 组件相关样式 */
|
||||
@layer components {
|
||||
/* 文本颜色工具类 */
|
||||
.text-primary {
|
||||
@apply text-[#00684a];
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
@apply bg-[#00684a];
|
||||
}
|
||||
|
||||
.transition-all-ease {
|
||||
@apply transition-all duration-200 ease-in-out;
|
||||
}
|
||||
|
||||
/* === 布局组件 === */
|
||||
.layout-container {
|
||||
@apply flex min-h-screen bg-gray-50;
|
||||
}
|
||||
|
||||
/* 用户资料 */
|
||||
.user-profile {
|
||||
@apply p-4 border-b border-gray-100 flex items-center;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
@apply w-10 h-10 rounded-full bg-primary text-white flex items-center justify-center;
|
||||
}
|
||||
|
||||
/* === 侧边栏 === */
|
||||
.sidebar {
|
||||
@apply w-[280px] h-screen bg-white border-r border-gray-100 flex flex-col
|
||||
transition-all duration-300 fixed left-0 top-0 z-[100] overflow-y-auto
|
||||
shadow-[0_0_15px_rgba(0,0,0,0.05)];
|
||||
}
|
||||
|
||||
.sidebar.collapsed {
|
||||
@apply w-20;
|
||||
}
|
||||
|
||||
.sidebar-menu {
|
||||
@apply flex-1 overflow-y-auto py-4 px-3;
|
||||
}
|
||||
|
||||
.sidebar-menu-item {
|
||||
@apply flex items-center py-3 px-4 text-gray-800 no-underline rounded-md
|
||||
cursor-pointer transition-all duration-200 mb-1 relative
|
||||
hover:bg-[rgba(0,104,74,0.05)];
|
||||
/* 确保点击事件可以正常工作 */
|
||||
pointer-events: auto;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.sidebar-menu-item i {
|
||||
@apply text-base w-6 text-center;
|
||||
}
|
||||
|
||||
.sidebar-menu-text {
|
||||
@apply ml-2.5 transition-opacity duration-200;
|
||||
}
|
||||
|
||||
.sidebar.collapsed .sidebar-menu-text {
|
||||
@apply opacity-0 invisible;
|
||||
}
|
||||
|
||||
.sidebar-menu-item.active {
|
||||
@apply bg-[rgba(0,104,74,0.1)] text-[#00684A] font-medium;
|
||||
}
|
||||
|
||||
.submenu-container {
|
||||
@apply mt-1 mb-2 space-y-1 overflow-hidden border-l border-gray-100 ml-4 pl-3 relative;
|
||||
/* 确保子菜单在父菜单之上 */
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.sidebar.collapsed .submenu-container {
|
||||
@apply border-l-0 pl-0;
|
||||
}
|
||||
|
||||
.submenu-container .sidebar-menu-item {
|
||||
@apply py-2 pl-2 text-sm;
|
||||
}
|
||||
|
||||
.sidebar-menu-item:hover {
|
||||
@apply bg-[rgba(0,104,74,0.05)];
|
||||
}
|
||||
|
||||
.sidebar-toggle {
|
||||
@apply bg-transparent border-none text-xl text-gray-500 cursor-pointer p-1
|
||||
rounded transition-all duration-200;
|
||||
}
|
||||
|
||||
.sidebar-toggle:hover {
|
||||
@apply bg-gray-100;
|
||||
}
|
||||
|
||||
/* === 主内容区域 === */
|
||||
.main-content {
|
||||
@apply flex-1 ml-[280px] transition-all duration-300 min-h-screen flex flex-col;
|
||||
}
|
||||
|
||||
.main-content.sidebar-collapsed {
|
||||
@apply ml-20;
|
||||
}
|
||||
|
||||
.content-container {
|
||||
@apply flex-1 p-5 overflow-auto;
|
||||
}
|
||||
|
||||
/* === 面包屑导航 === */
|
||||
.breadcrumb {
|
||||
@apply flex items-center text-sm text-gray-500 mb-4;
|
||||
}
|
||||
|
||||
.breadcrumb-item {
|
||||
@apply flex items-center;
|
||||
}
|
||||
|
||||
.breadcrumb-item:not(:last-child)::after {
|
||||
content: "/";
|
||||
@apply mx-2;
|
||||
}
|
||||
|
||||
.breadcrumb-item:last-child {
|
||||
@apply text-gray-700 font-medium;
|
||||
}
|
||||
|
||||
/* === UI组件 === */
|
||||
|
||||
/* 按钮样式 */
|
||||
.ant-btn {
|
||||
@apply inline-flex items-center justify-center px-4 py-2
|
||||
border border-transparent rounded-md font-medium text-sm
|
||||
focus:outline-none focus:ring-2 focus:ring-offset-2 transition-all duration-200
|
||||
disabled:opacity-50 disabled:cursor-not-allowed;
|
||||
}
|
||||
|
||||
.ant-btn-primary {
|
||||
@apply bg-[#00684a] text-white hover:bg-[#005a3f] focus:ring-[#00684a];
|
||||
}
|
||||
|
||||
.ant-btn-default {
|
||||
@apply bg-gray-200 text-gray-800 hover:bg-gray-300 focus:ring-gray-300;
|
||||
}
|
||||
|
||||
.ant-btn-danger {
|
||||
@apply bg-[#f5222d] text-white hover:bg-[#cf1f29] focus:ring-[#f5222d];
|
||||
}
|
||||
|
||||
.ant-btn-sm {
|
||||
@apply px-3 py-1.5 text-sm;
|
||||
}
|
||||
|
||||
/* 卡片组件 */
|
||||
.card {
|
||||
@apply bg-white rounded-lg shadow-sm border border-gray-200 p-4;
|
||||
}
|
||||
|
||||
/* === 响应式调整 === */
|
||||
@screen sm {
|
||||
.content-container {
|
||||
@apply p-6;
|
||||
}
|
||||
}
|
||||
|
||||
@screen md {
|
||||
.sidebar-toggle {
|
||||
@apply block;
|
||||
}
|
||||
}
|
||||
|
||||
/* === 暗色模式 === */
|
||||
.dark .layout-container {
|
||||
@apply bg-gray-900;
|
||||
}
|
||||
|
||||
.dark .content-container {
|
||||
@apply bg-gray-900 text-gray-200;
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
*/
|
||||
|
||||
/**
|
||||
* 注意:如果上述导入的文件不存在,将会在构建时报错
|
||||
* 请确保先创建这些文件,或者先注释掉不存在的文件
|
||||
*/
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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%;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
} */
|
||||
@@ -1,342 +0,0 @@
|
||||
/**
|
||||
* Tailwind CSS 配置
|
||||
*
|
||||
* 这个文件曾经包含所有样式定义,但现在已重组为更模块化的结构。
|
||||
* 请使用 app/styles/index.css 作为主样式入口文件。
|
||||
* 以下样式已转移到其他组件特定的CSS文件中,保留在此仅作备份参考。
|
||||
*/
|
||||
|
||||
@import "./base.css";
|
||||
|
||||
:root {
|
||||
--primary-color: #00684a;
|
||||
--primary-hover: #005a40;
|
||||
--primary-light: rgba(0, 104, 74, 0.1);
|
||||
--success-color: #52c41a;
|
||||
--warning-color: #faad14;
|
||||
--error-color: #ff4d4f;
|
||||
--text-color: rgba(0, 0, 0, 0.85);
|
||||
--text-secondary: rgba(0, 0, 0, 0.45);
|
||||
--border-color: #f0f0f0;
|
||||
--bg-gray: #f5f5f5;
|
||||
}
|
||||
|
||||
/*
|
||||
@layer components {
|
||||
/* 布局容器 */
|
||||
/*
|
||||
.layout-container {
|
||||
@apply flex h-screen w-full overflow-hidden;
|
||||
}
|
||||
|
||||
/* 侧边栏 */
|
||||
/*
|
||||
.sidebar {
|
||||
@apply w-60 h-screen bg-blue-50 border-r border-gray-100 flex flex-col transition-all duration-300 fixed left-0 top-0 z-50 overflow-y-auto shadow-sm;
|
||||
}
|
||||
|
||||
.sidebar.collapsed {
|
||||
@apply w-16;
|
||||
}
|
||||
|
||||
/* 主内容区 */
|
||||
/*
|
||||
.main-content {
|
||||
@apply flex-1 p-5 overflow-y-auto ml-60 transition-all duration-300;
|
||||
}
|
||||
|
||||
.main-content.sidebar-collapsed {
|
||||
@apply ml-16;
|
||||
}
|
||||
|
||||
/* 面包屑导航 */
|
||||
/*
|
||||
.breadcrumb {
|
||||
@apply flex items-center text-sm text-gray-500 mb-4;
|
||||
}
|
||||
|
||||
.breadcrumb-item {
|
||||
@apply flex items-center;
|
||||
}
|
||||
|
||||
.breadcrumb-item:not(:last-child)::after {
|
||||
content: "/";
|
||||
@apply mx-2 text-gray-400;
|
||||
}
|
||||
|
||||
.breadcrumb-item:last-child {
|
||||
@apply text-gray-700 font-medium;
|
||||
}
|
||||
|
||||
/* 侧边栏菜单 */
|
||||
/*
|
||||
.sidebar-menu-item {
|
||||
@apply py-2 px-4 hover:bg-gray-50 rounded-md transition-all duration-200 mb-1;
|
||||
}
|
||||
|
||||
.sidebar-menu-item.active {
|
||||
@apply bg-primary bg-opacity-10;
|
||||
}
|
||||
|
||||
.sidebar-menu-item.active a {
|
||||
@apply text-primary font-medium;
|
||||
}
|
||||
|
||||
/* 卡片样式 */
|
||||
/*
|
||||
.dashboard-card {
|
||||
@apply bg-white rounded-lg shadow-sm p-5 mb-5;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
@apply text-base font-semibold mb-4 flex items-center text-gray-800;
|
||||
}
|
||||
|
||||
.card-title i {
|
||||
@apply text-xl mr-2 text-primary;
|
||||
}
|
||||
|
||||
/* 统计卡片网格 */
|
||||
/*
|
||||
.stat-grid {
|
||||
@apply grid grid-cols-1 md:grid-cols-4 gap-4;
|
||||
}
|
||||
|
||||
/* 状态标签 */
|
||||
/*
|
||||
.status-badge {
|
||||
@apply inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium;
|
||||
}
|
||||
|
||||
.status-badge.status-success {
|
||||
@apply bg-green-50 text-green-600;
|
||||
}
|
||||
|
||||
.status-badge.status-warning {
|
||||
@apply bg-yellow-50 text-yellow-600;
|
||||
}
|
||||
|
||||
.status-badge.status-error {
|
||||
@apply bg-red-50 text-red-600;
|
||||
}
|
||||
|
||||
/* 状态点 */
|
||||
/*
|
||||
.status-dot {
|
||||
@apply inline-block w-2 h-2 rounded-full mr-1.5;
|
||||
}
|
||||
|
||||
.status-dot-success {
|
||||
@apply bg-green-500;
|
||||
}
|
||||
|
||||
.status-dot-warning {
|
||||
@apply bg-yellow-500;
|
||||
}
|
||||
|
||||
.status-dot-error {
|
||||
@apply bg-red-500;
|
||||
}
|
||||
|
||||
.status-dot-default {
|
||||
@apply bg-gray-400;
|
||||
}
|
||||
|
||||
/* 表单组件 */
|
||||
/*
|
||||
.form-label {
|
||||
@apply block text-sm font-medium text-gray-700 mb-1;
|
||||
}
|
||||
|
||||
.form-input {
|
||||
@apply block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-primary focus:border-primary sm:text-sm;
|
||||
}
|
||||
|
||||
.form-select {
|
||||
@apply block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-primary focus:border-primary sm:text-sm;
|
||||
}
|
||||
|
||||
.search-box {
|
||||
@apply relative flex;
|
||||
}
|
||||
|
||||
.search-box input {
|
||||
@apply pr-10;
|
||||
}
|
||||
|
||||
.search-box button {
|
||||
@apply absolute inset-y-0 right-0 flex items-center px-2;
|
||||
}
|
||||
|
||||
/* 表格样式 */
|
||||
/*
|
||||
.ant-table {
|
||||
@apply w-full bg-white rounded-md overflow-hidden;
|
||||
}
|
||||
|
||||
.ant-table th {
|
||||
@apply py-3 px-4 text-left text-sm font-medium text-gray-600 bg-gray-50 border-b border-gray-200;
|
||||
}
|
||||
|
||||
.ant-table td {
|
||||
@apply py-3 px-4 text-sm text-gray-700 border-b border-gray-100;
|
||||
}
|
||||
|
||||
.ant-table tr:hover td {
|
||||
@apply bg-gray-50;
|
||||
}
|
||||
|
||||
/* 按钮样式 */
|
||||
/*
|
||||
.ant-btn {
|
||||
@apply inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium focus:outline-none transition-colors duration-200;
|
||||
}
|
||||
|
||||
.ant-btn-primary {
|
||||
@apply bg-primary text-white hover:bg-primary-dark;
|
||||
}
|
||||
|
||||
.ant-btn-default {
|
||||
@apply bg-white text-gray-700 border-gray-300 hover:bg-gray-50;
|
||||
}
|
||||
|
||||
.ant-btn-danger {
|
||||
@apply bg-white text-red-600 border-gray-300 hover:bg-red-50 hover:border-red-300;
|
||||
}
|
||||
|
||||
.ant-btn-sm {
|
||||
@apply px-2.5 py-1 text-xs;
|
||||
}
|
||||
|
||||
/* 标签样式 */
|
||||
/*
|
||||
.ant-tag {
|
||||
@apply inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium;
|
||||
}
|
||||
|
||||
.ant-tag-blue {
|
||||
@apply bg-blue-50 text-blue-600;
|
||||
}
|
||||
|
||||
.ant-tag-green {
|
||||
@apply bg-green-50 text-green-600;
|
||||
}
|
||||
|
||||
.ant-tag-cyan {
|
||||
@apply bg-cyan-50 text-cyan-600;
|
||||
}
|
||||
|
||||
.ant-tag-purple {
|
||||
@apply bg-purple-50 text-purple-600;
|
||||
}
|
||||
|
||||
.ant-tag-orange {
|
||||
@apply bg-orange-50 text-orange-600;
|
||||
}
|
||||
|
||||
.ant-tag-red {
|
||||
@apply bg-red-50 text-red-600;
|
||||
}
|
||||
|
||||
/* 卡片样式 */
|
||||
/*
|
||||
.ant-card {
|
||||
@apply bg-white rounded-md shadow-sm overflow-hidden mb-5;
|
||||
}
|
||||
|
||||
.ant-card-body {
|
||||
@apply p-5;
|
||||
}
|
||||
|
||||
/* 评查结果面板 */
|
||||
/*
|
||||
.review-points-panel {
|
||||
@apply bg-white rounded-md shadow-sm overflow-hidden h-full;
|
||||
}
|
||||
|
||||
.review-panel-header {
|
||||
@apply bg-primary bg-opacity-10 flex items-center;
|
||||
}
|
||||
|
||||
/* 评查点样式 */
|
||||
/*
|
||||
.review-point-item {
|
||||
@apply border-b border-gray-100 p-3 hover:bg-gray-50 cursor-pointer;
|
||||
}
|
||||
|
||||
.review-point-header {
|
||||
@apply flex items-center justify-between mb-1;
|
||||
}
|
||||
|
||||
.review-point-title {
|
||||
@apply text-sm font-medium text-gray-700;
|
||||
}
|
||||
|
||||
.review-point-location {
|
||||
@apply flex items-center text-xs text-gray-500;
|
||||
}
|
||||
|
||||
/* 选项卡 */
|
||||
/*
|
||||
.tab-container {
|
||||
@apply bg-white rounded-md shadow-sm overflow-hidden;
|
||||
}
|
||||
|
||||
.tab-nav {
|
||||
@apply flex border-b border-gray-200;
|
||||
}
|
||||
|
||||
.tab-nav-item {
|
||||
@apply flex items-center py-3 px-4 text-sm font-medium text-gray-600 cursor-pointer;
|
||||
}
|
||||
|
||||
.tab-nav-item i {
|
||||
@apply mr-1.5;
|
||||
}
|
||||
|
||||
.tab-nav-item.active {
|
||||
@apply text-primary border-b-2 border-primary;
|
||||
}
|
||||
|
||||
.tab-content {
|
||||
@apply p-4;
|
||||
}
|
||||
|
||||
.tab-pane {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
.tab-pane.active {
|
||||
@apply block;
|
||||
}
|
||||
|
||||
/* 辅助类 */
|
||||
/*
|
||||
.text-primary {
|
||||
@apply text-green-700;
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
@apply bg-green-700;
|
||||
}
|
||||
|
||||
.bg-primary-light {
|
||||
@apply bg-green-50;
|
||||
}
|
||||
|
||||
.text-success {
|
||||
@apply text-green-600;
|
||||
}
|
||||
|
||||
.text-warning {
|
||||
@apply text-yellow-600;
|
||||
}
|
||||
|
||||
.text-error {
|
||||
@apply text-red-600;
|
||||
}
|
||||
|
||||
.border-primary {
|
||||
@apply border-green-700;
|
||||
}
|
||||
} */
|
||||
Reference in New Issue
Block a user