feat(api): 添加多路由代理处理实现

- 新增api目录下多个接口路径代理处理文件,支持动态拼接目标URL
- 根据环境变量选择不同的后端服务地址(如dev和生产环境)
- 统一添加TenantId和Authorization请求头传递租户及身份信息
- 实现请求参数及搜索参数的完整转发
- 引入better-sqlite3及node内建模块支持服务端功能
- 新增专家详情页面,实现文章、成果及预约咨询功能展示
- 页面实现加载骨架屏、标签页切换及空状态提示优化体验
This commit is contained in:
2026-04-28 13:50:27 +08:00
parent 3edf4f0124
commit 528fe28ffc
399 changed files with 53320 additions and 0 deletions

View File

@@ -0,0 +1 @@
.settings-page[data-v-7836e485]{min-height:100%}.page-header[data-v-7836e485]{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.page-title[data-v-7836e485]{color:#1f2937;font-size:18px;font-weight:700;margin:0}.page-desc[data-v-7836e485]{color:#9ca3af;font-size:13px;margin:2px 0 0}.settings-nav[data-v-7836e485]{background:#fff;border:1px solid #f0f0f0;border-radius:12px;overflow:hidden;padding:8px}.settings-nav-item[data-v-7836e485]{align-items:center;border-radius:8px;color:#000000a6;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 14px;transition:all .15s}.settings-nav-item[data-v-7836e485]:hover{background:#f9fafb;color:#000000d9}.settings-nav-item.active[data-v-7836e485]{background:#fff7ed;color:#c2410c;font-weight:600}.nav-icon[data-v-7836e485]{font-size:16px}.settings-panel[data-v-7836e485]{background:#fff;border:1px solid #f0f0f0;border-radius:12px;min-height:500px;padding:24px}.settings-section-title[data-v-7836e485]{border-bottom:1px solid #f0f0f0;color:#1f2937;font-size:16px;font-weight:700;margin-bottom:20px;padding-bottom:12px}.settings-form[data-v-7836e485]{max-width:680px}.form-hint[data-v-7836e485]{margin-left:10px}.form-hint[data-v-7836e485],.form-tip[data-v-7836e485]{color:#00000073;font-size:12px}.form-tip[data-v-7836e485]{margin-top:4px}.form-footer[data-v-7836e485]{border-top:1px solid #f0f0f0;margin-top:8px;padding-top:16px}.review-section-card[data-v-7836e485]{background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;margin-bottom:20px;padding:18px}.review-section-title[data-v-7836e485]{border-bottom:1px dashed #e5e7eb;color:#1f2937;font-size:14px;font-weight:600;margin-bottom:14px;padding-bottom:10px}.upload-row[data-v-7836e485]{align-items:center;display:flex;gap:16px}.qrcode-preview[data-v-7836e485]{border:1px solid #f0f0f0;border-radius:10px;height:100px;-o-object-fit:cover;object-fit:cover;width:100px}.maintenance-grid[data-v-7836e485]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.maintenance-card[data-v-7836e485]{background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;padding:18px;transition:all .15s}.maintenance-card[data-v-7836e485]:hover{background:#fff;border-color:#d0d0d0}.maintenance-card-title[data-v-7836e485]{color:#000000d9;font-size:14px;font-weight:600;margin-bottom:6px}.maintenance-card-desc[data-v-7836e485]{color:#00000073;font-size:12px;line-height:1.6;margin-bottom:14px}.maintenance-card-action[data-v-7836e485]{align-items:center;display:flex;gap:10px}.status-on[data-v-7836e485]{color:#f97316}.status-off[data-v-7836e485],.status-on[data-v-7836e485]{font-size:13px;font-weight:600}.status-off[data-v-7836e485]{color:#22c55e}.version-info[data-v-7836e485]{display:flex;flex-direction:column;gap:6px}.version-item[data-v-7836e485]{color:#000000a6;display:flex;font-size:13px;justify-content:space-between}.version-item strong[data-v-7836e485]{color:#000000d9}