Files

794 lines
16 KiB
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;
--gradient-bg: linear-gradient(135deg, #f8fffe 0%, #f0f9ff 100%);
}
.contract-template-search {
/* padding: 24px; */
background: var(--gradient-bg);
min-height: calc(100vh - 90px);
}
.contract-search-results {
padding: 24px;
background: var(--gradient-bg);
min-height: calc(100vh - 90px);
}
/* 搜索英雄区域 */
.search-hero {
text-align: center;
padding: 60px 0;
background: linear-gradient(135deg, rgba(0, 104, 74, 0.05) 0%, rgba(0, 104, 74, 0.02) 100%);
border-radius: 16px;
margin-bottom: 32px;
}
.search-title {
font-size: 32px;
font-weight: 600;
color: var(--text-color);
margin-bottom: 12px;
}
.search-subtitle {
font-size: 16px;
color: var(--text-secondary);
margin-bottom: 40px;
}
.search-container {
max-width: 600px;
margin: 0 auto;
position: relative;
}
/* 搜索框样式 */
.search-hero .search-box,
.compact-search-box .search-box {
background: white;
border: 2px solid #e5e7eb;
border-radius: 12px;
padding: 16px 20px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
transition: all 0.3s ease;
position: relative;
}
.search-hero .search-box:focus-within,
.compact-search-box .search-box:focus-within {
border-color: var(--primary-color);
box-shadow: 0 4px 20px rgba(0, 104, 74, 0.15);
}
.search-hero .search-textarea,
.compact-search-box .search-textarea {
width: 100%;
min-height: 80px;
border: none;
outline: none;
resize: vertical;
font-size: 16px;
line-height: 1.5;
background: transparent;
margin: 0;
padding: 0;
}
.search-hero .search-textarea::placeholder,
.compact-search-box .search-textarea::placeholder {
color: var(--text-secondary);
}
.search-hero .search-actions,
.compact-search-box .search-actions {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
margin-top: 12px;
padding-top: 12px;
border-top: 1px solid #f0f0f0;
}
.search-hero .search-tips,
.compact-search-box .search-tips {
font-size: 12px;
color: var(--text-secondary);
display: flex;
align-items: center;
flex: 1;
}
.search-hero .search-tips i,
.compact-search-box .search-tips i {
margin-right: 4px;
font-size: 12px;
}
.search-hero .search-btn,
.compact-search-box .search-btn {
background: var(--primary-color);
color: white;
border: none;
border-radius: 8px;
padding: 10px 24px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
flex-shrink: 0;
}
.search-hero .search-btn:hover:not(:disabled),
.compact-search-box .search-btn:hover:not(:disabled) {
background: var(--primary-hover);
transform: translateY(-1px);
}
.search-hero .search-btn:disabled,
.compact-search-box .search-btn:disabled {
background: #d1d5db;
cursor: not-allowed;
transform: none;
opacity: 0.6;
}
.search-hero .search-btn i,
.compact-search-box .search-btn i {
font-size: 14px;
}
/* 快速分类 */
.quick-categories {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
padding:8px;
margin-top: 40px;
}
.category-card {
background: white;
border-radius: 12px;
padding: 20px;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
border: 1px solid var(--border-color);
}
.category-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
border-color: var(--primary-color);
}
.category-icon {
width: 48px;
height: 48px;
background: var(--primary-light);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 12px;
color: var(--primary-color);
font-size: 24px;
}
.category-title {
font-size: 16px;
font-weight: 500;
margin-bottom: 4px;
color: var(--text-color);
}
.category-count {
font-size: 12px;
color: var(--text-secondary);
}
/* 紧凑搜索框 */
.compact-search-box {
margin-bottom: 24px;
}
.compact-search-box .search-hero {
padding: 20px 0;
margin-bottom: 0;
background: none;
}
.compact-search-box .search-title {
display: none; /* 在紧凑模式下隐藏大标题 */
}
.compact-search-box .search-subtitle {
display: none; /* 在紧凑模式下隐藏副标题 */
}
.compact-search-box .search-container {
max-width: 100%;
}
/* 紧凑搜索框特定样式 */
.compact-search-box .search-box {
padding: 12px 16px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.compact-search-box .search-textarea {
min-height: 60px;
font-size: 14px;
}
.compact-search-box .search-actions {
margin-top: 8px;
padding-top: 8px;
gap: 8px;
}
.compact-search-box .search-btn {
padding: 6px 16px;
font-size: 13px;
border-radius: 6px;
}
.compact-search-box .search-tips {
font-size: 11px;
}
.compact-search-box .search-tips i {
font-size: 11px;
}
/* 搜索结果头部 */
.result-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24px;
}
.result-info {
font-size: 14px;
color: var(--text-secondary);
}
.result-count {
color: var(--primary-color);
font-weight: 600;
}
/* 筛选标签 */
.filter-tabs {
display: flex;
gap: 8px;
margin-bottom: 24px;
flex-wrap: wrap;
}
.filter-tab {
padding: 8px 16px;
border-radius: 20px;
border: 1px solid #e5e7eb;
background: white;
color: var(--text-color);
font-size: 14px;
cursor: pointer;
transition: all 0.3s ease;
}
.filter-tab.active,
.filter-tab:hover {
background: var(--primary-color);
color: white;
border-color: var(--primary-color);
}
/* 模板网格 */
.template-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 20px;
}
.template-grid.list-view {
display: block;
}
.template-card {
background: white;
border-radius: 12px;
padding: 20px;
border: 1px solid var(--border-color);
transition: all 0.3s ease;
cursor: pointer;
}
.template-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
border-color: var(--primary-color);
}
.list-view .template-card {
display: flex;
align-items: center;
padding: 16px 20px;
margin-bottom: 12px;
}
.template-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 12px;
}
.list-view .template-header {
flex: 0 0 auto;
margin-bottom: 0;
margin-right: 16px;
}
.template-type {
background: var(--primary-light);
color: var(--primary-color);
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 500;
}
.template-title {
font-size: 16px;
font-weight: 600;
margin-bottom: 8px;
line-height: 1.4;
color: var(--text-color);
}
.template-desc {
font-size: 14px;
color: var(--text-secondary);
line-height: 1.5;
margin-bottom: 16px;
}
.list-view .template-desc {
margin-bottom: 0;
margin-left: 16px;
flex: 1;
}
.template-meta {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 12px;
color: var(--text-secondary);
margin-bottom: 16px;
}
.list-view .template-meta {
margin-bottom: 0;
margin-left: 16px;
flex: 0 0 auto;
}
.template-actions {
display: flex;
gap: 8px;
}
.list-view .template-actions {
margin-left: 16px;
flex: 0 0 auto;
}
.action-btn {
padding: 6px 12px;
border-radius: 6px;
border: 1px solid #e5e7eb;
background: white;
color: var(--text-color);
font-size: 12px;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 4px;
}
.action-btn:hover {
border-color: var(--primary-color);
color: var(--primary-color);
}
.action-btn.primary {
background: var(--primary-color);
color: white;
border-color: var(--primary-color);
}
.action-btn.primary:hover {
background: var(--primary-hover);
}
/* 视图切换 */
.view-toggle {
display: flex;
gap: 4px;
background: white;
border-radius: 6px;
padding: 4px;
border: 1px solid #e5e7eb;
}
.view-btn {
padding: 6px 12px;
border-radius: 4px;
border: none;
background: transparent;
color: var(--text-secondary);
cursor: pointer;
transition: all 0.3s ease;
}
.view-btn.active {
background: var(--primary-color);
color: white;
}
/* 分页 */
.pagination {
display: flex;
justify-content: center;
margin-top: 32px;
gap: 8px;
}
.page-btn {
width: 36px;
height: 36px;
border-radius: 6px;
border: 1px solid #e5e7eb;
background: white;
color: var(--text-color);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
}
.page-btn:hover,
.page-btn.active {
background: var(--primary-color);
color: white;
border-color: var(--primary-color);
}
.page-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.page-btn:disabled:hover {
background: white;
color: var(--text-color);
border-color: #e5e7eb;
}
/* 模板详情页面 */
.template-detail {
max-width: 800px;
margin: 0 auto;
}
.detail-header {
background: white;
border-radius: 12px;
padding: 32px;
margin-bottom: 24px;
border: 1px solid var(--border-color);
}
.detail-title {
font-size: 24px;
font-weight: 600;
margin-bottom: 16px;
color: var(--text-color);
}
.detail-meta {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
margin-bottom: 24px;
}
.meta-item {
display: flex;
align-items: center;
font-size: 14px;
}
.meta-label {
color: var(--text-secondary);
margin-right: 8px;
}
.detail-actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
.detail-btn {
padding: 12px 24px;
border-radius: 8px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 8px;
border: none;
}
.detail-btn.primary {
background: var(--primary-color);
color: white;
}
.detail-btn.primary:hover {
background: var(--primary-hover);
}
.detail-btn.secondary {
background: white;
color: var(--text-color);
border: 1px solid #e5e7eb;
}
.detail-btn.secondary:hover {
border-color: var(--primary-color);
color: var(--primary-color);
}
.detail-content {
background: white;
border-radius: 12px;
padding: 32px;
border: 1px solid var(--border-color);
}
.content-section {
margin-bottom: 32px;
}
.content-section:last-child {
margin-bottom: 0;
}
.section-title {
font-size: 18px;
font-weight: 600;
margin-bottom: 16px;
color: var(--text-color);
}
.content-preview {
background: #f8f9fa;
border-radius: 8px;
padding: 20px;
font-family: 'Courier New', monospace;
font-size: 14px;
line-height: 1.6;
border-left: 4px solid var(--primary-color);
white-space: pre-wrap;
}
/* 响应式设计 */
@media (max-width: 768px) {
.search-hero {
padding: 40px 20px;
}
.search-title {
font-size: 24px;
}
.quick-categories {
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.template-grid {
grid-template-columns: 1fr;
}
.result-header {
flex-direction: column;
gap: 16px;
align-items: flex-start;
}
.filter-tabs {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.detail-actions {
flex-direction: column;
}
.detail-btn {
padding: 8px 16px;
font-size: 12px;
}
}
/* FilePreview 样式隔离容器 - 使用更强的样式重置 */
.file-preview-container {
/* 强制重置基础样式 */
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
font-size: 14px !important;
line-height: 1.5 !important;
color: #333333 !important;
background-color: #ffffff !important;
/* 布局重置 */
display: block !important;
width: 100% !important;
min-height: 600px !important;
position: relative !important;
overflow: hidden !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
box-sizing: border-box !important;
/* 文本样式重置 */
text-align: left !important;
text-decoration: none !important;
text-transform: none !important;
letter-spacing: normal !important;
word-spacing: normal !important;
white-space: normal !important;
}
/* 强制重置FilePreview内部的所有元素 */
.file-preview-container *,
.file-preview-container *::before,
.file-preview-container *::after {
box-sizing: border-box !important;
}
/* 重置FilePreview主容器 */
.file-preview-container .file-preview {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
font-size: 14px !important;
line-height: 1.5 !important;
color: #333333 !important;
background-color: transparent !important;
width: 100% !important;
display: block !important;
position: relative !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
text-align: left !important;
}
/* 强制重置FilePreview的header样式 */
.file-preview-container .file-preview-header {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
font-size: 14px !important;
line-height: 1.5 !important;
color: #333333 !important;
background-color: #f8f9fa !important;
display: flex !important;
justify-content: space-between !important;
align-items: center !important;
padding: 8px 16px !important;
margin: 0 !important;
border: none !important;
border-bottom: 1px solid #e9ecef !important;
max-width: none !important;
width: 100% !important;
text-overflow: initial !important;
white-space: nowrap !important;
overflow: visible !important;
text-align: left !important;
box-sizing: border-box !important;
}
/* 重置按钮样式 */
.file-preview-container .ant-btn,
.file-preview-container button {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
font-size: 12px !important;
line-height: 1.4 !important;
color: #333333 !important;
background-color: #ffffff !important;
border: 1px solid #d9d9d9 !important;
border-radius: 6px !important;
padding: 4px 8px !important;
margin: 0 2px !important;
cursor: pointer !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
text-align: center !important;
text-decoration: none !important;
white-space: nowrap !important;
box-sizing: border-box !important;
min-height: 24px !important;
vertical-align: middle !important;
}
.file-preview-container .ant-btn:hover,
.file-preview-container button:hover {
background-color: #f5f5f5 !important;
border-color: #40a9ff !important;
color: #40a9ff !important;
}
/* 重置输入框样式 */
.file-preview-container .ant-input,
.file-preview-container input {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
font-size: 12px !important;
line-height: 1.4 !important;
color: #333333 !important;
background-color: #ffffff !important;
border: 1px solid #d9d9d9 !important;
border-radius: 6px !important;
padding: 4px 8px !important;
margin: 0 !important;
outline: none !important;
box-sizing: border-box !important;
min-height: 24px !important;
width: auto !important;
max-width: 40px !important;
text-align: center !important;
}
/* 重置PDF内容区域样式 */
.file-preview-container .file-preview-content {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
font-size: 14px !important;
line-height: 1.5 !important;
color: #333333 !important;
background-color: #f8f9fa !important;
width: 100% !important;
max-height: calc(100vh - 150px) !important;
overflow-x: auto !important;
overflow-y: auto !important;
padding: 0 !important;
margin: 0 !important;
border: none !important;
display: block !important;
position: relative !important;
box-sizing: border-box !important;
text-align: center !important;
}