28 Commits

Author SHA1 Message Date
TradeMate Dev 15d172e825 feat: 更新支付模块 (Stripe/PayPal/PingPong) 和 uni-app 配置 2026-06-16 13:32:50 +08:00
TradeMate Dev d2736d1ef6 feat: AI routing DB-driven, payment gateway full integration, WeChat mini-program CI/CD
- AI routing rules now stored in system_configs DB table instead of hardcoded config
- Multi-model support via name|model composite key for same-provider routing
- UnifiedPayService with HMAC-SHA256 gateway integration (alipay/wechat)
- Admin payment panel: list, stats, search, filter, refund
- WeChat mini-program CI/CD via miniprogram-ci (v1.0.9)
- Translation quota extended to LLM provider tier
- SearchService with DB-driven provider config (bing/google_cse/searxng)
- Footer cleanup across admin/workspace/uni-app
- Private key excluded from git tracking
2026-06-09 17:19:45 +08:00
TradeMate Dev 4122571f86 fix: friendly Chinese error messages on login/register pages
Map backend English error details to user-facing Chinese text on all
3 frontends (uni-app, user-frontend, admin-frontend). Previously raw
English like 'Invalid credentials' was shown directly to users.
2026-05-30 09:06:01 +08:00
TradeMate Dev 3e39cf0170 refactor: replace direct WeChat/Alipay with unified pay-api gateway
Switch from direct WeChat Pay / Alipay integrations to the unified
宇之然 pay-api gateway (HMAC-SHA256 auth). Removes wechat_pay.py,
keeps PaymentGateway abstraction, adds UnifiedPayService. Simplifies
payment.py create_order to {plan, pay_type} params. Single webhook
endpoint replaces separate WeChat/Alipay notify handlers.
2026-05-29 18:36:50 +08:00
TradeMate Dev bed5c7abef Add landing page, referral system, usage quotas, search API management, and yearly pricing
- Separate workspace landing from login for better UX
- Referral system rewards both parties with Pro days
- Quota enforcement prevents abuse without breaking endpoints
- 7-day free trial with auto-downgrade on expiry
- Admin-managed search provider config (SearXNG, Bing)
- 15% discount on annual subscriptions
- MCP search server wrapping opencode search
- Fix discovery module field name mismatch causing 422
2026-05-26 11:40:13 +08:00
TradeMate Dev 52dba37f22 Add admin-frontend and user-frontend standalone projects, certification/invoice/discovery features, fix auth header and theme consistency 2026-05-22 18:35:30 +08:00
TradeMate Dev 18c6cf5406 Move sidebar nav entirely into App.vue (eliminate component boundary)
Previous attempts used a separate NavBar component (nav-bar.vue).
Even with styles in App.vue's global scope, the component wrapper
created an abstraction layer that prevented the nav from rendering.

Now the nav markup, logic, and styles are all in App.vue directly:
- <div class="app-nav"> renders inline in App.vue template
- .app-nav{display:none} on mobile, display:flex on desktop (>=1024px)
- No component boundary, no data-v-xxxxx scoping issues
- Deleted components/nav-bar.vue
2026-05-21 10:21:49 +08:00
TradeMate Dev d14c98e93c Fix NavBar sidebar not showing: move all nav CSS to App.vue global styles
Root cause: nav-bar.vue styles compiled with [data-v-xxxxx] attribute
selectors by uni-app Vite plugin, but Vue didn't add the attribute to
DOM elements (styles were not scoped). The CSS selector mismatch meant
no sidebar styles ever applied.

Fix:
- Remove all CSS from nav-bar.vue (<style> block deleted entirely)
- Move ALL nav-bar styles to App.vue's global <style>
- Use .app-wrapper > .nav-bar selector (no data-v issues)
- Mobile: display:none; Desktop (>=1024px): display:flex sidebar
- Also fixed: nav-bar was accidentally visible as block on mobile
2026-05-21 10:16:40 +08:00
TradeMate Dev b71b7e6cdf Fix desktop responsive layout: sidebar, content sizing, remove duplicate tab bar
- Replace uni-app custom-tab-bar with manual NavBar component in App.vue
  (uni-app auto-detection was not including component in build)
- Mobile: NavBar hidden via CSS display:none, uni-app default tab bar handles nav
- Desktop: NavBar visible as 220px left sidebar, uni-app tab bar hidden
- Content area: max-width 1200px with margin-left:220px, centered
- Buttons/inputs/cards: global desktop CSS overrides for reasonable sizing
- Clean approach: NavBar always in DOM, CSS media queries control visibility
  (no v-if, no conflicting !important)
2026-05-21 10:10:11 +08:00
TradeMate Dev a2a7cb893b Add responsive desktop layout with left sidebar navigation
Desktop (≥1024px):
- Tab bar becomes a 220px left sidebar with brand name and nav items
- Page content shifts right and max-width constrained to 1200px
- Base font-size reset to 16px for readable text
- AI assistant floating button stays in bottom-right corner
- No change to mobile layout (bottom tab bar preserved)
2026-05-21 09:53:30 +08:00
TradeMate Dev 18112d5d0c Set vite base to /app/ to support landing-page + app subdirectory site structure
The marketing landing page is served at root (/), and the uni-app SPA
is served at /app/. Setting base: '/app/' ensures all static asset
references (CSS, JS, favicon) are correctly prefixed for the new
subdirectory deployment.
2026-05-21 09:38:39 +08:00
TradeMate Dev c397740748 feat: WeChat Pay integration, translation quota management, login UX fixes
- WeChat Pay APIv3 integration (JSAPI + Native) with cert-based auth
- TranslationQuota model + admin management UI (配额 tab)
- Alibaba MT provider now checks quota before translation
- Fix: admin tabs scrollable on mobile, remove header-card
- Fix: profile/login navigation - logout stays on profile, login returns to profile
- Fix: login form now visible by default (no extra click to show)
- Fix: home page translate link uses navigateTo (was switchTab to non-tabBar page)
- Add .coverage and apiclient_key.pem to gitignore
2026-05-20 18:30:12 +08:00
TradeMate Dev a60aac4638 Unify frontend config, fix marketing tracking field mismatch, expose customer notes in API
Centralizes all hardcoded page paths, storage keys, external URLs, and branding into a single uni-app/src/config.js. Fixes trackMarketingEffect sending wrong field names (action/content_preview -> event_type/content) that silently dropped tracking data. Adds notes, estimated_value, next_followup_at to Customer response. Removes '翻译' from bottom tab nav (5 tabs now), adds quick translate card on home page. Makes profile page header color consistent with app theme (#1890ff).
2026-05-20 14:30:50 +08:00
TradeMate Dev f8a23855d2 feat: AI assistant phase 2 - configurable prompt, action operations, FAQ matching, NVIDIA provider
- Admin-configurable AI prompt/quick questions from system_configs DB
- GET /api/v1/ai/quick-questions endpoint for fetching quick questions
- Local FAQ matching for instant responses (avoid AI calls for common Qs)
- AI action extraction: "add customer" intent detected, structured data returned
- Frontend action confirmation card with editable fields, calls customer API on confirm
- NVIDIA provider (stepfun-ai/step-3.5-flash) for faster chat vs deepseek-v4-flash
- Fixed httpx client timeout preventing backend hangs
- Added log_usage calls for auth events (register/login/guest/wechat)
- Admin tabs (users/stats/logs/config) fully functional with real backend
- AiAssistant component added to all tabbar pages
2026-05-20 09:39:22 +08:00
TradeMate Dev 4755cc75ba feat: 管理后台完整可用 + 注册登录记日志 + 提取信息结构化展示 + 微信配置就绪
- 管理后台用户/统计/日志/配置四页签全部对接真实后端API
- auth注册/登录/游客/微信登录事件写入usage_logs表
- 提取信息结果从原始JSON改为卡片式字段列表(中文标签)
- 管理后台搜索按钮增加加载态和结果数提示
- 配置WECHAT_APP_ID/WECHAT_APP_SECRET
- 客户/产品/报价单CRUD页面完整(导出导入批量操作)
2026-05-18 23:50:48 +08:00
TradeMate Dev 32d2b57df7 feat: 营销页面结果旁显示中文翻译 + 朗读按钮 2026-05-17 16:52:27 +08:00
TradeMate Dev 1fabad0fe9 fix: 首页TTS同样改用blob播放,解决downloadFile导致页面刷新的问题 2026-05-17 14:18:29 +08:00
TradeMate Dev 7b7f90d57a fix: TTS朗读失败且刷新内容 — 安装edge-tts,前端改用blob播放代替downloadFile 2026-05-17 14:10:45 +08:00
TradeMate Dev f33d33f980 feat: integrate WhatsApp send into customer detail with AI reply generation 2026-05-17 09:52:26 +08:00
TradeMate Dev 8a3acbd4ee fix: dynamic loading status during AI gen; navigator.clipboard copy; competitor analysis fallback 2026-05-15 22:38:49 +08:00
TradeMate Dev 566f59f0e4 fix: onboarding passes product_info dict; marketing service template fallback when no AI; frontend style-switching tabs 2026-05-14 19:23:45 +08:00
TradeMate Dev 3b181eeae3 fix: skip API calls on customers page when user is guest/unauthenticated 2026-05-14 10:40:16 +08:00
TradeMate Dev 5a1af9f82f feat: production branch with deploy config for baota panel
- Add deploy/ directory with production env, supervisor, nginx, migration configs
- Include all latest features: admin management, feedback, footer with ICP/beian
- Database: foreign_trade (PostgreSQL), user: foreign_trade
- Frontend: trade.yuzhiran.com, backend proxy via Nginx
2026-05-14 09:19:30 +08:00
TradeMate Dev 23a31f7c00 feat: silent wechat login, marketing tab optimization, admin page foundation
- Add silent WeChat login for MP/browser environments
- Fix Python 3.6 compatibility (remove typing.Annotated usage)
- Marketing page: tab-based content generation with category support
- Translate page: add auto-detect language default
- Homepage: add TTS playback, announcement ticker, remove redundant quick-actions
- Fix FAB button overlap with custom tabbar on customers/quotation pages
- Make openai/anthropic imports lazy for Python 3.6 compat
2026-05-14 00:30:48 +08:00
TradeMate Dev f70dd24c7d feat: upgrade custom tabbar with emoji support, redesign quick-actions
- Switch back to custom tabbar (custom: true) with emoji fix (line-height, font-family)
- Redesign home quick-actions: product/followup/analytics/notifications replace redundant nav items
- Refactor goToPage to auto-detect tabbar vs non-tabbar pages
- Update PROGRESS.md
2026-05-13 18:23:58 +08:00
TradeMate Dev 04f7ff0317 fix: CORS/API 500 issues, switch to native tabbar, restore quick-actions
- Backend: guest UUID format fix, /auth/me guest branch, UUID validation in deps.py, CORS config fix
- Frontend: switch to native tabbar (custom: false), cleanup App.vue, redesign quick-actions with colored icons, conditional wechat login, proxy API requests via Vite
2026-05-13 17:54:13 +08:00
TradeMate Dev 7b62c2f8b4 feat: 修复 H5 底部导航覆盖 + 更新项目进度文档
## H5 底部导航修复 (Bug #10)
- 精简 App.vue,移除重复 tabbar,仅保留全局样式
- uni-page 设置 height: calc(100% - 50px) + overflow-y: auto
- 内容区域精确停在底部导航上方,独立滚动不再叠加
- 恢复 custom-tab-bar 组件

## 项目进度文档
- PROGRESS.md 更新至 10 个 Bug 修复
- 新增 H5 底部导航修复记录
- 新增历史变更条目
2026-05-12 20:24:42 +08:00
TradeMate Dev c6206787da Initial commit: TradeMate 外贸小助手 MVP
项目结构:
- backend/     Python FastAPI 后端
- uni-app/     uni-app跨端前端
- docs/        设计文档
- docker-compose.yml  Docker编排
- nginx/scripts/systemd 运维配置

已完成功能:
- 用户认证 (JWT)
- 智能翻译 + 回复建议
- 营销素材生成
- 客户管理 + 沉默检测
- 报价单管理
- 产品库管理
- 汇率换算
- 推送通知 (uni-push)
- WhatsApp Webhook框架
- Celery定时任务
2026-05-08 18:17:12 +08:00