v6ole
aed9182dbe
fix: 移动端列表页移除 v-loading 遮罩,修复卡片点击无反应
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 20:12:14 +08:00
v6ole
24fb5f8f71
feat: 移动端工作计划/商机跟单/要客拜访支持编辑和删除
...
- 三个表单均支持 create+edit 双模式(通过 route.params.id 判断)
- 编辑模式: 加载已有数据 → 修改 → PUT 更新
- 编辑模式增加删除按钮
- 列表页卡片点击跳转编辑页
- 新增 6 条编辑路由
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 20:06:47 +08:00
v6ole
bc6c7076fe
feat: 移动端导航重构 — 4 Tab + 工作中心 + 模块列表
...
- TabBar 新增「工作」标签(首页/工作/拜访/纪要)
- 新增工作中心页(/m/work),四卡片入口显示各模块记录数
- 新增三个列表页:工作计划/商机跟单/要客拜访(卡片流+删除)
- 首页精简:移除快捷 chip,入口统一到工作中心
- 路由新增: /m/work, /m/plans, /m/mini-biz, /m/key-visits
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 19:58:01 +08:00
v6ole
e06574df38
fix: 移动端相关人员提示更新为同访人周报显示说明
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 19:53:00 +08:00
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
9eae965858
fix: 跟进记录日期选择器添加 value-format 避免 422 错误
...
el-date-picker 默认返回 Date 对象,JSON 序列化为 ISO 格式,
Pydantic date 字段不接受,需显式指定 value-format="YYYY-MM-DD"
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 19:04:21 +08:00
v6ole
87876f11fd
fix: MiniBusiness.vue 缺少 miniBusinessApi 导入
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:57:48 +08:00
v6ole
19aa9153ff
feat: PC端商机跟单新增详情弹窗+跟进时间线
...
- 点击客户名打开详情弹窗(替代直接编辑)
- 详情弹窗: 商机信息 + 跟进时间线 + 添加入口
- 跟进方式 chip: 电话/微信/上门/邮件/其他(色标区分)
- 每条跟进记录显示: 图标+日期+方式+内容+作者
- 支持添加和删除跟进记录
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:53:46 +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
13f8b9c512
docs: 商机跟单优化设计文档 — 跟进记录子表
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:48:23 +08:00
v6ole
03f14df244
fix: 移动端要客拜访计划时间改用日期选择器
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:34:25 +08:00
v6ole
3879cdc7ef
fix: 移动端工作计划/商机跟单/要客拜访新增快速新建客户
...
三个移动端表单现均支持搜索时直接新建客户(el-select #empty 插槽)
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:29:41 +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
c489a8d6fd
fix: 搜索无结果时新建按钮改为el-select的empty插槽,避免被遮挡
...
- 将「新建客户」按钮从 el-select 下方的独立 div 移入 #empty 插槽
- 搜索无匹配时,下拉面板直接显示「未找到xxx」+ 新建按钮
- 不再被原生「无数据」空状态遮挡
- 移动端+桌面端五个页面统一修复
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:04:45 +08:00
v6ole
5682c12085
feat: 桌面端工作页面支持搜索时直接新建客户
...
- WorkPlans/MiniBusiness/KeyVisits/ManagerWorkspace 四个页面新增快速新建客户功能
- 客户搜索框输入时,若无匹配结果,直接显示「+ 新建客户」按钮
- 点击即调用 POST /customers/quick-create 创建并自动选中
- 与移动端 VisitForm 保持一致体验
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 18:00:35 +08:00
v6ole
be26ea5588
fix: 亮灯表指标移除临期计数,精简显示
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 16:35:00 +08:00
v6ole
750ce8d8eb
feat: 亮灯表新增客户经理指标文字说明
...
每个客户经理折叠栏新增一行指标摘要:
「已拜访X · 临期X · 未拜访X · 完成率X%」
数字加粗,完成率按阈值着色(>=80%绿 >=50%金 <50%红)
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 16:25:35 +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
c38a9e74ad
chore: ignore .cc-connect bridge metadata
2026-07-12 14:39:28 +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
dcb0b826de
fix: 桌面端编辑时客户名称显示UUID的问题
...
WorkPlans/MiniBusiness/KeyVisits/ManagerWorkspace 四个页面的
openEdit 均直接 spread item 到 form,未确保客户在 el-select
选项列表中。修复:编辑前检查并补充客户到 customers 列表。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:45:06 +08:00
v6ole
e6237590c0
fix: 移动端编辑拜访记录时客户名称显示UUID的问题
...
编辑模式下,el-select 的 customers 列表可能不包含当前记录对应的客户,
导致无法匹配选项而直接显示原始 UUID 值。
修复:从 GET 响应中获取 customer_name,补充到 customers 列表。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:43:21 +08:00
v6ole
f9eed82afb
fix: disable mobile zoom to prevent input auto-zoom on iOS
...
Added maximum-scale=1.0, user-scalable=no to viewport meta tag.
Prevents iOS Safari from auto-zooming when focusing inputs with font-size < 16px.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:36:37 +08:00
v6ole
f4847bc748
docs: update CLAUDE.md — SSH port 7072, 127.0.0.1 binding, leave feature
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:33:55 +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
4debecd523
feat: add mobile leave form + list + home entry + routes
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:18:07 +08:00
v6ole
82bc0d9e41
feat: add mobile leave list page
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:16:34 +08:00
v6ole
7fd0f9b706
feat: add sidebar entry + route + dashboard leave card + on_leave status
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:15:50 +08:00
v6ole
709685057b
feat: add Leaves management page (PC)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 13:12:56 +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
e17536b3e4
docs: 请假功能实现计划 (11 tasks)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 12:52:44 +08:00
v6ole
531df448c1
docs: 请假功能设计文档
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-12 12:48:19 +08:00
v6ole
e8b92a6f99
feat: 列宽拖拽 + 筛选栏 + 截图导出 + UI优化
...
- 新增 v-column-resize 指令,11 张表格均支持拖拽调整列宽
- 工作计划/商机跟单/要客拜访新增筛选栏(客户经理 + 状态)
- 汇总栏 chip 可点击筛选,支持重置与计数
- 新增截图导出功能(dom-to-image-more,像素级文字渲染)
- 截图范围从标题开始,自动隐藏操作按钮,5px白边
- 截图时页面闪烁动画反馈
- 全局 CSS 完善(列宽手柄、截图模式、捕获动画)
- 仪表盘 UI 细节优化 + 亮灯表标签调整
- 登录页 UI 改进
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-11 22:17:45 +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
2bb85bf45c
fix: UserManage.vue 补充丢失的 useAuthStore 导入
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-27 12:09:04 +08:00
v6ole
015af18d3c
fix: 用户编辑弹窗修复 — footer 简化 + 删除后关闭弹窗
...
- footer 用 span 替代 flex div (避免 element-plus 兼容问题)
- 删除成功后自动关闭弹窗
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-27 12:02:04 +08:00
v6ole
7e31606b45
refine: 删除按钮移到编辑弹窗 — 统一操作入口
...
- 表格行内只保留「编辑」按钮
- 编辑弹窗左下角红色「删除用户」按钮(仅支局长可见)
- 避免表格行内误删
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-27 11:56:03 +08:00