v6ole
|
10835ef15c
|
feat: 消除同访草案机制,改为查询时通过 companions 数组覆盖
- 删除 POST /visits 中的草案创建逻辑(不再创建空拜访记录)
- 周报查询:manager 角色也显示同访的拜访记录
- 亮灯表覆盖:同访人也算客户拜访覆盖(UNION companions)
- 填报进度:同访人也算今日已填报
- 清理已有 2 条空草案记录
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 19:40:49 +08:00 |
|
v6ole
|
3ce77ed606
|
feat: 拜访记录创建时自动联动商机跟进
- POST /visits 创建拜访后,自动查询同客户下「跟进中」的商机
- 为每个匹配商机追加一条跟进记录(mini_business_log)
- 内容: 沟通内容 + 客户需求拼接
- 方式: 拜访方式自动映射(上门→上门/电话→电话/微信→微信/出差→其他)
- 仅创建时触发,更新/导入不联动
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 19:22:40 +08:00 |
|
v6ole
|
17a0218b32
|
feat: 商机跟单新增跟进记录子表(后端+API模块)
- 新增 mini_business_logs 表(business_id/log_date/method/content/created_by)
- MiniBusiness 模型添加 logs relationship(cascade delete)
- 5个端点: GET列表/POST新增/PUT编辑/DELETE删除
- 跟进方式: 电话/微信/上门/邮件/其他
- lifespan 自动建表+索引
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 18:51:04 +08:00 |
|
v6ole
|
4453ee2ca0
|
feat: 支局长/分管领导可为任意客户经理代填记录
后端:
- 5个模块的 Create/Update schema 新增可选 manager_id 字段
- POST 端点: director/leader 可指定 manager_id,manager 角色自动用自身
- PUT 端点: director/leader 可修改 manager_id,manager 角色禁止修改
前端(移动端+桌面端共10个页面):
- 支局长/领导可见「客户经理」下拉选择框
- 创建和编辑时均可指定记录归属的客户经理
- 涵盖今日拜访、今日纪要、工作计划、商机跟单、要客拜访五个模块
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 18:19:05 +08:00 |
|
v6ole
|
efc200b6de
|
feat: 工作计划状态自动流转
- 抽取 auto_complete_work_plans() 可复用函数到 visits service
- POST/PUT 拜访均触发自动完成(更新场景解决补录问题)
- Excel 导入旧周报时也触发自动完成
- 逾期计划自动取消:plan_date < today 且无匹配拜访→已取消
- edit_log 记录区分三种来源:拜访自动完成/拜访更新自动完成/旧周报导入自动完成/逾期自动取消
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 16:21:38 +08:00 |
|
v6ole
|
e7c3081070
|
feat: AI 周报摘要提示词自定义设置
- system_config 新增 ai_summary_prompt 配置键
- generate_summary 从数据库加载自定义提示词,为空则使用默认 SUMMARY_SYSTEM_PROMPT
- 系统设置新增「AI 周报提示词」卡片,支持编辑和清空恢复默认
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 14:20:20 +08:00 |
|
v6ole
|
7dcb22f573
|
feat: 集成 apisbo.com 中国节假日 API 自动获取+缓存
- 新增 holidays.py 服务:按年获取节假日数据,缓存到 system_config
- 区分 holiday(工作日假日)和 workday(调休上班日)两种类型
- is_working_day() 支持调休判断:周末在 workdays 集合中视为工作日
- 启动时自动从 API 刷新当年+明年数据,失败则使用缓存
- 系统设置新增「从 API 刷新」按钮,支局长可手动触发
- 支持 2010-2026 年数据,API 免费免鉴权
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 14:17:31 +08:00 |
|
v6ole
|
a63bd6874c
|
feat: 仪表盘+催办在休息日跳过填报检查
- 新增 is_working_day() 工具函数,自动跳过周末 + 可配置法定假日
- 仪表盘填报进度新增 is_rest_day 字段,休息日显示灰「休」印章
- 催办调度改用 is_working_day() 替代原始 weekday 检查
- 系统设置新增「法定节假日」配置卡片,支局长可管理假日日期
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 14:13:32 +08:00 |
|
v6ole
|
faeaf7606b
|
fix: remove dead code in ai_summary + unused import in leaves API
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 13:21:58 +08:00 |
|
v6ole
|
eb05a0420e
|
feat: scheduler skips on-leave managers; AI summary includes leave data
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 13:10:36 +08:00 |
|
v6ole
|
56adc625c0
|
feat: add on_leave status to reporting progress + week_leaves stat
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 13:09:05 +08:00 |
|
v6ole
|
b6105295bb
|
feat: add Leave API endpoints + frontend API module
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 13:05:49 +08:00 |
|
v6ole
|
2633513ce3
|
feat: add Leave service layer
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 13:01:55 +08:00 |
|
v6ole
|
d74af74534
|
feat: add Leave Pydantic schemas
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 13:00:19 +08:00 |
|
v6ole
|
3786d82a27
|
feat: add Leave model with auto-migration
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-12 12:58:53 +08:00 |
|
v6ole
|
deeafe239f
|
feat: 双主题系统 — 编辑风 + 极简亮色
前端:
- 新增 Pinia theme store,localStorage 持久化,data-theme 切换
- App.vue: :root 新增 --font-*/--sidebar-* CSS 变量;新增 :root[data-theme=light] 完整配色(极简黑白金 + Noto Sans SC)
- DesktopLayout: 侧边栏 15 个变量化 + 顶栏主题切换按钮
- MobileLayout: 装饰色变量化
- Settings: 新增「界面主题」卡片
- 21 个组件 font-family 统一替换为 var(--font-*)
- 新增 utils/managerColor.ts — 12 色调色板 + 自适应文字色 + 后端自定义色优先
- WorkPlans/MiniBusiness/KeyVisits/CustomerManage: 客户经理标签色统一走共享工具
- UserManage: 编辑弹窗新增颜色选择器(仅 manager)
- LightBoard: 去标题星标图标
- ManagerWorkspace/WorkPlans/MiniBusiness/KeyVisits: 删除按钮改为实心红底白字
后端:
- User 模型新增 color 列 + lifespan 自动迁移
- users API 支持 color 字段读写
- UserOut schema 新增 color
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-06 16:03:13 +08:00 |
|
v6ole
|
336b60b3af
|
feat: 系统设置新增通报时间配置 + 亮灯表30天滚动窗口 + 相关人员文案统一 + 周报数据补全
- 亮灯表从自然月改为30天滚动窗口(30/60天阈值),解决月底覆盖断崖
- 系统设置新增「定时通报时间」选择器,支局长可配置每日企微通报时刻
- 新增 SystemConfig 键值表 + scheduler_manager APScheduler 运行时重调度
- 拜访记录/导入模板/弹窗表单统一「同访人员」→「相关人员」
- 仪表盘周报数据补全:companion_names_resolved、visitor_name/phone 等字段
- 新增 weekly_report_template.xlsx 模板文件
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-06 11:51:07 +08:00 |
|
v6ole
|
cd47d1aed5
|
feat: 亮灯表30天滚动窗口 + 相关人员文案统一 + 周报数据补全
- light_board.classify: 自然月 → 30/60天滚动窗口 (≤30天🟢, 31-60天🟡, 61+天🔴)
- LightBoard.vue: 4处文案同步 (近30天已拜访 / 上次 / 个周期)
- dashboard.get_weekly_report: 补全 companion_names_resolved + visitor_name + visitor_phone + edit_log
- 导入/导出模板 + VisitForm + ManagerWorkspace: 同访人员 → 相关人员
|
2026-07-02 16:58:29 +08:00 |
|
v6ole
|
3285e22142
|
feat: 导入增强 + 客户合并 + 同伴自定义 + 性能优化
=== 导入系统全面增强 ===
- 5 Sheet 完整导入:拜访/计划/商机/要客/纪要
- 同访人智能解析:中英文逗号/顿号/分号 → 系统用户UUID + 外部人员TEXT
- 客户自动创建:Excel中不存在的客户自动入库
- 模糊名称匹配:去空格 + 包含关系纠错
- manager_id 修正:导入时用客户分配的经理(非Excel列/非导入人)
- 模板更新:Sheet5「客户经理」→「填报人」,同访人示例含逗号分隔
=== 客户合并功能 ===
- PUT 改名碰撞检测 → 409 + 合并预览
- GET merge-preview / POST merge 端点
- 事务级迁移:Visit/WorkPlan/MiniBusiness/KeyVisit/联系人/分配
- 去重逻辑:联系人(name+phone)、分配(manager+role)
- last_visit_date 取最大值
=== 拜访记录完善 ===
- visits 新增 companion_names TEXT[] 列
- 同访人支持自定义输入(外部人员),el-select allow-create
- 移动端 VisitForm + PC端 ManagerWorkspace 统一
- 周报「客户经理」→「相关人员」(创建人+同访人)
- 纪要「客户经理」→「填报人」
- 删除拜访后重新计算 customer.last_visit_date
=== 客户选择放开 ===
- 客户经理可看到全部客户(不再限自己分配的)
- 拜访时客户下拉返回全量
=== 前端性能优化 ===
- Element Plus 按需加载 (unplugin-vue-components + unplugin-element-plus)
- 周报照片URL并行请求 (Promise.all)
- onMounted 三路并行 (loadReport + dropdowns + AI)
- nginx Cache-Control: immutable for /assets/
- Google Fonts preconnect hints
- 图片上传前 Canvas 压缩 (max 1920px, quality 0.8)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-29 22:25:04 +08:00 |
|
v6ole
|
b343970ecc
|
feat: 三项联动 — 计划过期提醒 + 拜访自动关闭 + 批量制定
1. 计划过期自动提醒:
- scheduler.py 新增 check_overdue_plans()
- 每日 9:00 检查过期计划(plan_date < today, status=计划中)
- 按经理汇总 → 企微推送提醒消息
2. 拜访后自动关闭计划:
- create_visit 后自动将匹配的计划标记为「已完成」
- 条件: customer_id 匹配 + status=计划中 + plan_date <= visit_date
3. 亮灯表批量制定:
- 红灯/黄灯卡片右上角 ☐ 复选框
- 勾选后出现「批量制定计划」按钮
- 弹窗统一设置日期+内容 → 批量 POST
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-27 12:28:36 +08:00 |
|
v6ole
|
0e25201ede
|
feat: 亮灯表重构 — 点击卡片弹窗替代跳转周报
后端 light_board.py:
- 每张客户卡片返回 plans[] (活跃工作计划) + recent_visits[] (最近2条)
- 计划过期检测 (plan_overdue)
前端 LightBoard.vue:
- 点击卡片 → el-dialog 弹窗 (不再跳转周报)
- 绿灯: 显示最近拜访记录
- 黄/红灯: 客户信息 + 快速制定拜访计划表单
- 卡片显示计划标签 (📅正常 / ⚠过期闪烁)
- 弹窗底部保留「查看周报记录」链接
计划过期逻辑: plan_date < 当月首日 且 status=计划中
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-27 12:23:58 +08:00 |
|
v6ole
|
04aaff8851
|
feat: 支局长可删除用户 + 清理重复蓝浩博
- 新增 DELETE /api/users/{id} (require_director, 不能删自己)
- 用户管理页新增「删除」按钮(仅支局长可见)
- 删除重复的分管领导蓝浩博
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-27 11:53:11 +08:00 |
|
v6ole
|
447932a8e6
|
fix: 新建表单客户选择器 — 提高 page_size 上限
- 前端三个页面: page_size 100 → 500(覆盖所有客户)
- 后端 customers API: page_size 上限 100 → 1000,默认 25 → 100
支局长/分管领导新建时下拉框可加载全量客户。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-27 11:47:00 +08:00 |
|
v6ole
|
e99d0aec8a
|
Revert "feat: 支局长/领导可指定客户经理创建记录"
This reverts commit a4904973bf.
|
2026-06-27 11:41:17 +08:00 |
|
v6ole
|
a4904973bf
|
feat: 支局长/领导可指定客户经理创建记录
后端 schema: WorkPlanCreate/MiniBusinessCreate/KeyVisitCreate 新增可选 manager_id
后端 API: create 端点支持 manager_id 参数(留空则默认本人)
前端: 三个页面新建弹窗新增「客户经理」下拉(仅支局长/领导可见)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-27 11:17:54 +08:00 |
|
v6ole
|
df5b661d5f
|
fix: 填报统计不再限定 role=manager,只看 require_report=True
之前: role='manager' AND require_report=True → 只统计客户经理
现在: require_report=True → 统计所有需填报的用户
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 16:44:59 +08:00 |
|
v6ole
|
a580eefd14
|
feat: 三项改进 — require_report + 拜访联动 + 解绑移到弹窗
1. 用户管理页 UX 优化:
- 表格内「解绑」按钮移入编辑弹窗(clearable 输入框)
- 新增「需要填写周报」el-switch 开关
- 新增「填报」列显示是否计入统计
2. require_report 字段 (DB + API + 联动):
- users 表新增 require_report BOOLEAN DEFAULT TRUE
- 调度器/仪表盘进度/立即检查 均排除 require_report=false
- UserOut schema + UpdateUserRoleRequest 同步更新
3. 拜访联动客户 last_visit:
- customers 表新增 last_visit_date / last_visit_manager_id
- 创建拜访记录时自动更新对应客户的最后拜访信息
- 亮灯表可据此精确判断客户拜访状态
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 16:36:27 +08:00 |
|
v6ole
|
989c41da8c
|
fix: 填报检查统计所有经理 (不限于已绑定企微)
之前只统计 wecom_userid IS NOT NULL 的经理导致始终 0/0,
现在统计全员,仅推送消息时跳过未绑定用户。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 16:10:17 +08:00 |
|
v6ole
|
c4e8a3b790
|
feat: 富消息升级 — 催办用模板卡片 + 公告用 Markdown
scheduler.py:
- 未填报经理 → 模板卡片消息(标题+描述+「去填报」按钮)
- 支局长/领导 → Markdown 每日填报汇总(markdown)
- 文本消息作为降级方案
wecom.py API:
- remind: 模板卡片优先 → 降级文本
- announcement: Markdown 优先 → 降级文本
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 15:34:21 +08:00 |
|
v6ole
|
ab3384d6a5
|
chore: 企微绑定流程收尾 — 回调日志 + 调试完成
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 15:24:33 +08:00 |
|
v6ole
|
7264184315
|
feat: 企微绑定重构 — 回调事件 + 支局长手动绑定/解绑
绑定流程改为 rural-optical-rectify 方案:
- 企微菜单「绑定账号」发送 click 事件(而非 OAuth 跳转)
- 回调 POST 接收事件 → 生成绑定 token → 推送绑定链接
- 前端 WecomBind.vue (/wecom-bind) 确认绑定
- 新增 POST /api/wecom/bind-confirm (JWT 保护)
支局长手动管理:
- 新增 PUT /api/users/{id}/wecom 绑定/解绑端点
- UserManage.vue 编辑对话框新增企微 UserID 字段
- 表格操作列新增「解绑」按钮
- 重复绑定检测
wecom.py 新增:
- in-memory bind token store (TTL 600s)
- send_text_card() 卡片消息方法
- access_token 属性暴露
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 12:10:38 +08:00 |
|
v6ole
|
1d2dacc3ab
|
feat: 企微 API 代理 + 菜单部署修复
config.py:
- 新增 WECOM_API_BASE 环境变量 (默认 https://qyapi.weixin.qq.com)
wecom.py:
- 所有 API 调用改用 settings.WECOM_API_BASE (支持代理)
- 修复 _post_with_retry URL 拼接 bug (? vs &)
- 菜单名去掉 emoji (企微限制 16 字符)
api/wecom.py:
- setup-menu 端点菜单名修正
.env.example:
- 新增 WECOM_API_BASE 说明
当前 .env 配置: WECOM_API_BASE=https://api.v6ole.top
已验证: 通过代理获取 token ✅, 菜单创建 ✅
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 11:58:12 +08:00 |
|
v6ole
|
da1f24c710
|
feat: 企微菜单管理 — create_menu / get_menu / delete_menu
wecom.py 新增:
- create_menu(buttons) — 创建/替换应用自定义菜单
- get_menu() — 获取当前菜单配置
- delete_menu() — 删除菜单
API 新增:
- POST /api/wecom/setup-menu — 一键部署标准菜单(开始填报 + 绑定账号)
- GET /api/wecom/menu — 查看当前菜单
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 11:36:16 +08:00 |
|
v6ole
|
ad0c894f93
|
feat: 企微测试消息端点 + 调度器 msgfmt 优化
- 新增 POST /api/wecom/test-message 测试端点(需 director)
- 调度器仅推已绑定 wecom_userid 的经理
- wecom.py 已支持 markdown/模板卡片消息
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 09:49:33 +08:00 |
|
v6ole
|
eae7fdafb8
|
fix: 企微回调验证 — 返回纯文本而非 JSON
企微后台保存时要求响应为原始解密明文(Content-Type: text/plain),
FastAPI 默认 JSON 序列化会加引号导致验证失败。
改用 PlainTextResponse 返回纯文本。
验证: 本地 + 生产域名均返回 text/plain, 解密内容正确
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 09:46:19 +08:00 |
|
v6ole
|
36ba9338f1
|
feat: 企业微信 Phase 1 — token 续期 + 回调验证 + 调度器注册
wecom.py:
- Token 自动续期 (7200s 过期 + 60s 提前量 + 42001 重试)
- POST 请求自动重试 (最多 3 次,含速率限制退避)
- 新增 send_markdown_message() / send_template_card() 富消息方法
wecom.py API:
- GET /api/wecom/callback: 企微回调 URL 验证 (SHA1 签名 + AES 解密)
- POST /api/wecom/callback: 事件接收占位
scheduler.py:
- 仅推送给已绑定 wecom_userid 的经理
- 消息内容优化 (已填报/未填报人数统计)
main.py:
- APScheduler 注册每日 17:30 自动检查填报
已验证: WECOM_TOKEN 获取成功
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-26 09:37:13 +08:00 |
|
v6ole
|
5b38246801
|
feat: AI 摘要持久化 — DB 缓存 + 自动加载
后端:
- 新增 ai_summaries 表 (week_start/week_end/generated_by/summary)
- get_cached_summary(): 按周+用户查缓存
- delete_cached_summary(): 生成前清理旧缓存
- generate_summary(): 自动保存到 DB
- API: GET /ai/summary(加载) POST(生成) DELETE(清除)
前端:
- onMounted 自动 GET 缓存摘要, 有则直接展示
- 按钮: 无缓存→'AI 生成摘要', 有缓存→'重新生成'
- 标题栏显示生成时间戳
|
2026-06-25 11:45:04 +08:00 |
|
v6ole
|
24c7aff093
|
fix: 恢复 AI_MODEL 为 deepseek-v4-flash
DeepSeek API 当前模型:
- deepseek-v4-flash / deepseek-v4-pro (2026-04-24 发布)
- deepseek-chat / deepseek-reasoner 是旧别名, 2026-07-24 废弃
.env.example 同步添加 DeepSeek 配置注释
|
2026-06-24 19:33:06 +08:00 |
|
v6ole
|
d07311d5a5
|
fix: AI 摘要 DeepSeek 配置修复
1. generate_summary 调用 get_light_board 补传 user_id/role
(否则亮灯表数据为空, 摘要缺少覆盖分析)
2. AI_API_URL: /anthropic → /v1/chat/completions
(原先 URL 不是 DeepSeek 标准 OpenAI 兼容端点)
3. AI_MODEL: deepseek-v4-flash → deepseek-chat
(原模型名不是已知的 DeepSeek 模型)
|
2026-06-24 19:19:57 +08:00 |
|
v6ole
|
1d0f412e4a
|
fix: 亮灯表权限控制 — 客户经理只看自己
get_light_board 新增 user_id/role 参数:
- director/leader: 看全部经理 + 未分配客户
- manager: 只看自己, 不显示未分配客户
- API 层从 current_user 提取身份信息透传
|
2026-06-24 17:22:05 +08:00 |
|
v6ole
|
305ee5df09
|
feat: 客户亮灯表 + AI 周报摘要 — v0.2
亮灯表:
- 四色覆盖矩阵: 绿亮灯/黄临期/红灭灯/灰未分配
- 按客户经理折叠卡片流, 覆盖率进度条, 团队总览统计
- 红灯客户显示连续未拜访月份, 未分配客户专区
- 后端: light_board.py service + GET /api/dashboard/light-board
- 前端: LightBoard.vue + 路由 /light-board + 汇总侧边栏
AI 周报摘要:
- 接入 OpenAI 兼容大模型, 注入拜访数据+亮灯表覆盖数据
- 四段式结构化输出: 概况/需求/覆盖分析/建议
- 一键生成+Markdown渲染+复制纯文本
- 支局长/分管领导专用, 支持配置内部模型
- 后端: ai_summary.py service + POST /api/ai/summary
- 前端: WeeklyReport 集成按钮+结果面板
- 新增配置: AI_API_URL / AI_API_KEY / AI_MODEL
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 12:03:00 +08:00 |
|
v6ole
|
bf67e0575f
|
feat: 信息架构重组 + 变更追踪 + 图片预览增强
- 信息架构重组: 周报精简为拜访+纪要两个Tab,工作计划/商机/要客独立为侧边栏「工作」分组下的独立页面
- 侧边栏分组: 汇总/工作/管理三层分组,仪表盘四卡可点击跳转
- 变更追踪(edit_log): 5张表新增JSONB edit_log列,POST创建/PUT diff自动记录,编辑弹窗变更时间轴,表格🕐编辑标记
- 图片预览增强: ImagePreview统一组件,支持适应页面/缩放/拖拽平移/滚轮缩放/键盘快捷键
- 修复客户导入500错误(errors变量未初始化)
- 移除工作计划/商机/要客页面冗余编辑按钮
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 08:30:12 +08:00 |
|
v6ole
|
aa3fbca710
|
feat: 历史周报+图片预览+照片管理+导入优化+用户合并
新增:
- 历史周报: Dashboard/周报详情支持周选择器翻看往周,归档只读
- 图片预览: 全屏大图(移动端+PC端),点击遮罩关闭
- PC端照片管理: 编辑时可上传/删除照片
- 客户导入改为更新模式: 重名自动更新信息,显示操作明细
- 导入跳过原因: 旧周报导入也显示每条跳过原因
优化:
- 填报进度权限: 经理只看到自己,支局长/领导看全员
- 客户经理暖灰色hash标签列
- 用户去重合并(4组),数据完整迁移
- CLAUDE.md 更新到最新状态
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 08:30:12 +08:00 |
|
v6ole
|
e7af0e15ab
|
feat: 完整功能迭代 — 移动端+PC端全面优化
新增:
- 今日纪要 (6分类+彩色标签+时间选择器)
- 客户经理PC端工作台 (我的数据,5模块CRUD)
- 用户管理页 (支局长修改角色)
- 客户备注/收支费用(金额+单位)/联系人管理
- 拜访人姓名+电话字段
- 客户导入导出/旧周报导入模板下载
- 序号列+分页(25/50/100)
修复/优化:
- Hash路由→HTML5 History, Casdoor回调正常
- 时区统一为Asia/Shanghai (today_cst)
- 数据库懒加载→selectinload预加载
- 日期解析兼容ISO datetime字符串
- 文件上传定位修复 (position:relative)
- 表单button type='button'防止误提交
- 分管领导权限(只读客户档案,不可编辑)
- 侧边栏折叠+SVG图标
- 拜访方式/紧急度统一chip风格
- 时间范围统一为el-time-picker(is-range)
- 全局CSS设计变量+box-sizing修复滚动条
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 08:30:12 +08:00 |
|
v6ole
|
a1886074dd
|
企迹(qiji) 政企周报管理系统 — v0.1
后端: FastAPI + SQLAlchemy 2.0 (async) + Alembic + MinIO + Casdoor + 企微
前端: Vue 3 + Vite + TypeScript + Element Plus + Pinia
功能清单:
- 8 张数据表自动建表 / Casdoor OIDC 登录 / 企微静默登录
- 双布局: 移动端(填报) + PC端(汇总管理)
- 拜访记录 CRUD + MinIO 照片直传 + 缩略图预览 + 同访人草稿
- 今日纪要 (6 分类) / 工作计划 / 小微商机 / 要客拜访 CRUD
- 客户档案: 备注/收支费用/联系人/归属分配/批量转移
- 客户导入导出 + 模板下载 + 搜索/分页/筛选
- 仪表盘: 四卡统计 + 填报进度 (拜访+纪要双维度)
- 周报详情: 五 Tab + 按人/客户筛选 + 时间轴
- 用户管理 / 客户经理 PC 端工作台
- 企微: 催办/公告/定时提醒 / 时区修正
- Docker 部署配置
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 08:30:12 +08:00 |
|