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,8 @@
const contact_vue_vue_type_style_index_0_scoped_f1d248a8_lang = ".contact-banner[data-v-f1d248a8]{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff}.banner-title[data-v-f1d248a8]{color:#fff;font-size:36px;font-weight:700;margin:0 0 12px}.banner-desc[data-v-f1d248a8]{color:#fffc;font-size:18px;margin:0}.contact-info[data-v-f1d248a8]{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;height:100%;padding:32px}.info-title[data-v-f1d248a8]{color:#1f2937;font-size:20px;font-weight:700;margin:0 0 28px}.info-item[data-v-f1d248a8]{align-items:flex-start;display:flex;gap:14px;margin-bottom:24px}.info-icon[data-v-f1d248a8]{flex-shrink:0;font-size:22px;margin-top:2px}.info-content[data-v-f1d248a8]{flex:1}.info-label[data-v-f1d248a8]{color:#9ca3af;font-size:13px;margin-bottom:4px}.info-value[data-v-f1d248a8]{color:#374151;font-size:15px;line-height:1.6}.info-divider[data-v-f1d248a8]{background:#f0f0f0;height:1px;margin:24px 0}.social-title[data-v-f1d248a8]{color:#6b7280;font-size:14px;margin-bottom:12px}.social-items[data-v-f1d248a8]{display:flex;gap:12px}.social-item[data-v-f1d248a8]{align-items:center;background:#f3f4f6;border-radius:10px;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;transition:background .2s;width:40px}.social-item[data-v-f1d248a8]:hover{background:#e5e7eb}.contact-form-panel[data-v-f1d248a8]{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;padding:32px}.form-title[data-v-f1d248a8]{color:#1f2937;font-size:20px;font-weight:700;margin:0 0 8px}.form-desc[data-v-f1d248a8]{color:#9ca3af;font-size:14px;margin:0 0 28px}.form-tip[data-v-f1d248a8]{background:#eff6ff;border-radius:10px;color:#3b82f6;font-size:13px;line-height:1.6;margin-top:16px;padding:14px 16px}";
const contactStyles_BEtyvpI = [
contact_vue_vue_type_style_index_0_scoped_f1d248a8_lang
];
export { contactStyles_BEtyvpI as default };
//# sourceMappingURL=contact-styles.B-EtyvpI.mjs.map