- 新增api目录下多个接口路径代理处理文件,支持动态拼接目标URL - 根据环境变量选择不同的后端服务地址(如dev和生产环境) - 统一添加TenantId和Authorization请求头传递租户及身份信息 - 实现请求参数及搜索参数的完整转发 - 引入better-sqlite3及node内建模块支持服务端功能 - 新增专家详情页面,实现文章、成果及预约咨询功能展示 - 页面实现加载骨架屏、标签页切换及空状态提示优化体验
2 lines
3.5 KiB
CSS
2 lines
3.5 KiB
CSS
.announcements-page[data-v-6454b5e2]{min-height:100%}.page-header[data-v-6454b5e2]{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.page-title[data-v-6454b5e2]{color:#1f2937;font-size:18px;font-weight:700;margin:0}.page-desc[data-v-6454b5e2]{color:#9ca3af;font-size:13px;margin:2px 0 0}.stat-card[data-v-6454b5e2]{align-items:center;border:2px solid transparent;border-radius:12px;display:flex;gap:12px;padding:16px;transition:all .2s}.stat-card[data-v-6454b5e2]:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card.blue[data-v-6454b5e2]{background:#eff6ff;border-color:#dbeafe}.stat-card.green[data-v-6454b5e2]{background:#f0fdf4;border-color:#bbf7d0}.stat-card.orange[data-v-6454b5e2]{background:#fff7ed;border-color:#fed7aa}.stat-icon[data-v-6454b5e2]{flex-shrink:0;font-size:28px}.stat-value[data-v-6454b5e2]{color:#000000d9;font-size:22px;font-weight:700;line-height:1.2}.stat-label[data-v-6454b5e2]{color:#00000073;font-size:12px;margin-top:2px}.panel[data-v-6454b5e2]{background:#fff;border:1px solid #f0f0f0;border-radius:12px;overflow:hidden}.panel-header[data-v-6454b5e2]{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:14px 18px}.panel-title[data-v-6454b5e2]{color:#000000d9;font-size:14px;font-weight:600}.ann-info-cell[data-v-6454b5e2]{align-items:flex-start;display:flex;gap:12px}.ann-thumb[data-v-6454b5e2]{border:1px solid #f0f0f0;border-radius:8px;-o-object-fit:cover;object-fit:cover}.ann-thumb[data-v-6454b5e2],.ann-thumb-empty[data-v-6454b5e2]{flex-shrink:0;height:48px;width:72px}.ann-thumb-empty[data-v-6454b5e2]{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;font-size:20px;justify-content:center}.ann-info-text[data-v-6454b5e2]{flex:1;min-width:0}.ann-title[data-v-6454b5e2]{color:#000000d9;font-size:14px;font-weight:500;line-height:1.6;margin-bottom:4px}.ann-overview[data-v-6454b5e2]{color:#00000073;font-size:12px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-badge[data-v-6454b5e2]{background:#fff7ed;border:1px solid #fed7aa;border-radius:4px;color:#f97316;font-size:11px;margin-right:6px;padding:1px 6px}.cover-upload-wrap[data-v-6454b5e2]{display:flex;flex-direction:column;gap:10px}.cover-preview-card[data-v-6454b5e2]{background:#fafafa;border:1px dashed #d9d9d9;border-radius:10px;padding:8px;width:240px}.cover-preview-image[data-v-6454b5e2]{border-radius:8px;display:block;height:132px;-o-object-fit:cover;object-fit:cover;width:100%}.cover-preview-actions[data-v-6454b5e2]{display:flex;gap:8px;margin-top:8px}.field-hint[data-v-6454b5e2],.switch-tip[data-v-6454b5e2]{color:#00000073;font-size:12px}.switch-tip[data-v-6454b5e2]{margin-left:8px}.preview-meta[data-v-6454b5e2]{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.preview-cover-wrap[data-v-6454b5e2]{margin:16px 0 12px}.preview-cover[data-v-6454b5e2]{border:1px solid #f0f0f0;border-radius:12px;max-height:320px;-o-object-fit:cover;object-fit:cover;width:100%}.preview-summary[data-v-6454b5e2]{background:#fafafa;border-radius:10px;color:#000000a6;line-height:1.7;margin-top:12px;padding:12px 14px}.preview-content[data-v-6454b5e2]{color:#000000d9;font-size:15px;line-height:1.8;white-space:pre-wrap;word-break:break-word}.image-preview-modal[data-v-6454b5e2]{border-radius:8px;max-height:70vh;-o-object-fit:contain;object-fit:contain;width:100%}.text-sm[data-v-6454b5e2]{font-size:12px}.text-gray[data-v-6454b5e2]{color:#00000073}.mb-6[data-v-6454b5e2]{margin-bottom:24px}
|