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定时任务
This commit is contained in:
TradeMate Dev
2026-05-08 18:17:12 +08:00
commit c6206787da
121 changed files with 11743 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
<view class="container">
<view class="header">
<view class="user-info">
<view class="avatar">👤</view>
<view class="user-detail">
<view class="username">{{userInfo.username || '用户'}}</view>
<text class="tier-badge">{{userInfo.tier === 'pro' ? 'Pro' : userInfo.tier === 'enterprise' ? '企业版' : '免费版'}}</text>
</view>
</view>
</view>
<view class="stats-grid">
<view class="stat-item" bindtap="goToCustomers">
<text class="stat-value">{{stats.customers}}</text>
<text class="stat-label">客户数</text>
</view>
<view class="stat-item">
<text class="stat-value text-danger">{{stats.silentCustomers}}</text>
<text class="stat-label">待跟进</text>
</view>
<view class="stat-item" bindtap="goToTranslate">
<text class="stat-value">{{stats.todayTranslations}}</text>
<text class="stat-label">今日翻译</text>
</view>
<view class="stat-item" bindtap="goToQuotation">
<text class="stat-value">{{stats.quotations}}</text>
<text class="stat-label">报价单</text>
</view>
</view>
<view class="menu-grid">
<view class="menu-item" bindtap="goToTranslate">
<view class="menu-icon">📝</view>
<text class="menu-text">翻译</text>
</view>
<view class="menu-item" bindtap="goToCustomers">
<view class="menu-icon">👥</view>
<text class="menu-text">客户</text>
</view>
<view class="menu-item" bindtap="goToMarketing">
<view class="menu-icon">📢</view>
<text class="menu-text">营销</text>
</view>
<view class="menu-item" bindtap="goToQuotation">
<view class="menu-icon">📄</view>
<text class="menu-text">报价</text>
</view>
</view>
<view class="section" wx:if="{{silentCustomers.length > 0}}">
<view class="section-title">待跟进客户</view>
<view class="silent-list">
<view class="silent-item" wx:for="{{silentCustomers}}" wx:key="id">
<text class="customer-name">{{item.name}}</text>
<text class="silence-days">沉默 {{item.silence_days}} 天</text>
</view>
</view>
</view>
<button class="logout-btn" bindtap="onLogout">退出登录</button>
</view>