Commit Graph

116 Commits

Author SHA1 Message Date
mac
664da22329 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-07-06 20:58:19 +08:00
mac
dbc98e4693 feat: 项目模块+首页优化 — 删除项目费用/列重排/卡片标题双行
项目模块:
- 全面删除项目费用(METRIC_CARDS/thead/tdRow/budgetTab保存逻辑)
- 表格列重排:签约→确收→毛利→应付→项目利润→回款→已付→现金流→执行率→毛利率→回款率→付款率
- 卡片重排并删除签约项目总数
- 表格标题双行:项目财务明细+列顺序副标题
- 项目利润=毛利(不再减费用)

首页:
- 业务财务概览标题改为双行格式
- 列顺序重排保持一致
- 项目费用行加入/移除等多次调整
2026-07-06 20:58:19 +08:00
mac
73a6ac126c Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-06 19:34:24 +08:00
mac
ac312741df feat: 首页表格优化 — 列重排+项目费用回血+正负着色+命名统一
- 列顺序:年度累计→上季度累计→上月累计→本季度累计→季环比→本月累计→月环比
- 业务财务概览加回项目费用行(橙色,现金流之前)
- 本月新增→本月累计,季度累计→本季度累计
- 现金流/项目利润/部门净利:正值绿负值红
- 部门利润→部门毛利
2026-07-06 19:34:24 +08:00
mac
878e26d4ca Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-06 19:19:41 +08:00
mac
1b88366ba0 fix: 费用模块线上保存失败 — 空值转0兼容MySQL严格模式
expense.js保存时amount/incurred_amount空字符串转为0
避免MySQL 8.x strict mode报Data truncated
2026-07-06 19:19:41 +08:00
mac
e12ed0936b Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-06 19:10:18 +08:00
mac
56feeb0cfe feat: 首页重构 — 财务概览转置+部门经营卡片+命名统一
首页:
- 5卡片→表格(行=指标,列=时间),新增已付/现金流/项目利润行,费用行
- 行列对换:8列(年度/季度/季环比/本月/月环比/上季度/上月)×9行
- 新增「部门经营情况」卡片(部门利润/费用/净利)
- 趋势图3→4列,新增月度项目利润折线图(indigo)
- 命名:利润→项目利润,费用→项目费用,月度利润→月度项目利润
- 卡片改名:经营管理→项目管理,财务概览→业务(项目)财务概览
- 指标列统一颜色,去掉行编号

项目模块:
- 利润→项目利润,费用→项目费用,总费用→总项目费用
- 月度回款与费用→月度回款与已付,柱状图→折线图

后端:
- 新增paid/cashflow/profit指标聚合(单/多租户)
- monthly_finance新增paid字段
- helpers.py修复重复return data
2026-07-06 19:10:14 +08:00
mac
8edb74f173 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-07-06 18:20:38 +08:00
mac
340f8bd88c feat: 首页财务概览重构 — 5卡片合并为表格 + 费用列 + 环比列
- 5张独立财务卡片合并为一张表格(行=时间维度,列=6项指标)
- 新增费用列(数据源expense_records,单/多租户路径均支持)
- 每列增加环比列(季度累计行=季度环比,本月新增行=月度环比)
- 环比:正值绿+xx%,负值红-xx%
- 后端新增expense_annual/q2/month/prev_q/prev_month指标
2026-07-06 18:20:34 +08:00
mac
1a42c6e6f3 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-06 17:31:40 +08:00
mac
7ab0c71b54 feat: 费用模块重构 + 项目模块优化 + 数据库迁移
费用模块:
- 字段精简为5个:费用类型(下拉6选)、月份(3年36月下拉)、金额、已发生金额、费用说明(textarea)
- 三视图切换(总/季度/月度),按expense_month筛选,汇总卡片实时更新
- 类型筛选功能,Toolbar+汇总+表格三段式布局
- 删除按钮移至关闭按钮左侧,间距8px
- 费用记录删除合计行,列宽固定200px,居中

项目模块:
- 卡片网格6→7列(14卡片7×2满排),配置驱动 METRIC_CARDS
- 新增费用/利润字段,利润=毛利-费用
- 表格行添加费用、利润列,比率列text-xs→text-sm
- 项目流水tab费用与已付列对调,汇总卡片6→1×6
- 修复月度/季度切换时汇总卡片不更新
- 筛选区统一为卡片,去除'筛选:'前缀

数据库:
- expense_records新增expense_type/expense_month/incurred_amount列
- migrations/columns.py幂等迁移,启动时自动执行
2026-07-06 17:31:34 +08:00
mac
d21497bce3 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-06 15:39:56 +08:00
mac
8a78c756b7 refactor: 项目模块重构 — 统一渲染 + 配置驱动 + 交互优化
核心重构:
- 提取 renderView() / tdRow() 统一函数,消除三视图 16000+ 字符重复代码
- METRIC_CARDS 配置驱动,调整卡片顺序/单位只需改配置
- 筛选区统一为下拉框(视图 + 状态 + 日期),删除筛选:前缀
- 日历选择器移至顶部工具栏,卡片内不再重复

功能优化:
- 项目状态简化为已签约/待签约
- 新增签约项目总数卡片(月度/季度按签约月份过滤)
- 签约金额/已确收/已回款/应付/已付改为万元单位
- 项目名称固定300px + 省略号 + title悬停
- body min-width 1400px + overflow-x:auto
- 首页费用金额→应付金额

代码清理:
- 删除 monthOpts/quarterOpts/qLabels 等死代码
- 删除 purchase.js(采购→费用模块已另表迁移)
- 财务→项目(侧边栏),采购→费用(全域重命名)
2026-07-06 15:39:39 +08:00
mac
574e3c5700 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-07-06 13:05:01 +08:00
mac
8430c93b97 feat: 新增采购模块 + 财务表格重建
采购模块:
- 新增 purchase_records 表 + CRUD 路由 + bootstrap 数据加载
- 前端采购管理页面: 表格 + 弹窗新增/编辑 + 侧边栏入口

财务模块:
- 表格新增签约金额、执行率、回款率、付款率、毛利、毛利率列
- 状态/日期筛选统一为无边框下拉框,移至页面顶部工具栏
- 删除 metric 卡片,新增 11 张汇总卡片(签约金额~现金流)
- 表格合计行移至表头下方,后改为汇总卡片
- 所有单元格统一水平/垂直居中
- 修复季度视图 gross 变量缺失、合计行遗漏
2026-07-06 13:04:56 +08:00
mac
c70293b447 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-03 19:06:57 +08:00
mac
ff7eb19d5d refactor: 财务模块卡片头部重构为单行功能区 + 表格增加状态列
- 卡片头部简化为单行: 视图标签 | 筛选:状态/月份/季度下拉 + 新增按钮
- 状态筛选从标签按钮改为统一风格下拉框(自定义SVG箭头)
- 下拉框字体/高度与视图标签 btn-sm 完全对齐
- 表格增加状态列(已签约/流程中/待签约,分色显示)
- 季度视图 p-4 padding 修复
2026-07-03 19:06:54 +08:00
mac
adeff08827 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-02 20:10:45 +08:00
mac
493150cb27 财务项目详情升级:任务管理tab + 项目编号 + 执行信息 + 后端重构
后端重构:
- flask_app.py 拆分为 db.py/helpers.py/routes.py/seed_data.py + Blueprint
- 删除死代码 init_db/latest_followup,净减 240 行
- migrations 反向依赖消除

财务项目详情:
- 新增任务管理 tab(月份/类型/数量/已执行/差额/单价/执行金额/未执行金额)
- 新增项目编号、开始/结束时间、项目经理、合同服务费标准(5%-25%下拉)
- 科普业务类型新增科普专访、患教会
- task_data JSON 存储任务列表

财务视图:
- 只保留总视图和月度视图,去除确收/毛利和回款/应付视图
- 月度视图月份选择器
- 表格统一居中对齐
- 去除流程项目/流程金额卡片
2026-07-02 20:10:45 +08:00
mac
8bd40de41d Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 13s
2026-07-02 18:30:24 +08:00
mac
caebf90438 重构:flask_app.py 拆分为 db/helpers/routes/seed_data + Blueprint
- flask_app.py 1166行→33行纯入口
- 新建 db.py(配置+连接+SQL工具)
- 新建 helpers.py(attach_common/monthly_finance/add_file_index)
- 新建 routes.py(全路由 Blueprint + 装饰器 + TABLES)
- 新建 migrations/seed_data.py(seed_db 搬迁)
- migrations/{tables,columns,data_fixes,seed}.py 改 import 为 from db
- 删除死代码 init_db(228行)+ latest_followup(10行)
- 反向依赖消除:migrations 不再 import flask_app
- 前端零改动,URL 不变
2026-07-02 18:30:24 +08:00
mac
ac6eacea82 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-02 17:55:40 +08:00
mac
34786ba9e5 产品迭代表格化 + 财务总视图/月度视图 + 总工作台
产品迭代:
- 卡片改表格(10列),5个日期内联编辑,后端日期校验
- 表头排序,新增未开始状态,详情页耗时统计
- 删除 owner/platform/feature_list 字段

财务:
- 新增总视图和月度视图,去除确收/毛利和回款/应付视图
- 月度流水加已付列,费用改应付
- 月份选择器,表格居中对齐
- 去除流程项目/流程金额卡片

总工作台:
- 聚合所有工作台首页数据
- 只显示首页tab,隐藏4个模块卡片
2026-07-02 17:55:40 +08:00
mac
83c2a5ca94 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-07-02 14:50:45 +08:00
mac
fbff2e5f24 产品迭代:表格排序 + 详情页优先级状态对齐
- 表头点击排序(正序/倒序切换),优先级按 P0-P3 逻辑序
- 排序图标与表头文字同行显示
- 详情页优先级/状态合并行改用标准 drawer-field 结构对齐
2026-07-02 14:50:45 +08:00
mac
fbd2290d29 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-07-02 14:31:06 +08:00
mac
0eb9d69f1e 产品迭代模块:卡片改表格 + 日期内联编辑 + 后端日期校验
- 卡片列表改为表格列表(10列),参考用户运营中心产品台账
- 数据库新增 priority + 5 个日期字段(start/plan/dev_done/test/launch)
- 删除 owner/platform/feature_list 字段(migrate_drop_product_fields)
- 日期内联编辑:5个日期列直接渲染 date input
- 后端日期校验:4个时间不能早于启动时间;启动时间必填
- 详情页新增耗时统计区块(总/产品/研发/测试耗时)
- 优先级和状态合并同一行
- 新增'未开始'状态
- 表格垂直居中对齐
- renderProducts 后重新初始化 lucide 图标
2026-07-02 14:31:06 +08:00
mac
97fcf88c61 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-06-29 17:02:55 +08:00
mac
003b6f3bdb fix(deploy): cleanup 按修改时间排序,防字母序误删新 release
原 find + sort(字母序)导致 a 开头的 commit sha 被误判为最旧版本删除。
改为 ls -dt(按修改时间倒序),tail -n +6 保留最近 5 个。
2026-06-29 17:02:55 +08:00
mac
a01afef599 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-06-29 16:52:37 +08:00
mac
9226233de5 chore: 重新触发部署(sys.path 修复已就绪) 2026-06-29 16:52:37 +08:00
mac
28fa244fe5 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 12s
2026-06-29 16:45:21 +08:00
mac
96948a37de fix: migrations 模块在 gunicorn --preload 下无法导入
ModuleNotFoundError: No module named 'migrations'
根因:gunicorn 的 sys.path 不包含 backend/ 目录
修复:flask_app.py 顶层添加 sys.path.insert 确保 backend 在搜索路径中
2026-06-29 16:45:16 +08:00
mac
ad3885e0be Merge branch 'dev'
Some checks failed
Deploy / deploy (push) Failing after 23s
2026-06-29 16:02:10 +08:00
mac
d47fde60a4 chore: 触发重新部署 2026-06-29 16:02:10 +08:00
mac
0fb7ee2992 Merge branch 'dev'
Some checks failed
Deploy / deploy (push) Failing after 14m52s
2026-06-26 12:21:02 +08:00
mac
2bb99feda4 工作台重命名:无界·无界 → 学会·无界
- ALL_TENANTS / session / seed / migrations 全部同步
- 新增 migrate_rename_tenant() 数据迁移,启动自动 UPDATE 所有表
- migrations/ 模式重构(参考 SalesManager)
2026-06-26 12:21:02 +08:00
mac
f6792cad39 Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 10s
2026-06-24 12:42:56 +08:00
mac
33f47acc55 左侧菜单改版:工作台下拉 + 5个图标导航
- 工作台改为下拉菜单(layout-grid + chevron-down 图标)
- 顶部 tabs 移到左侧 sidebar,5 个图标导航(首页/财务/台账/方案/产品)
- 头像与工作台间、工作台与导航间各加分隔线
- 经营管理 tab 短名改为'财务'
- 移除 .tabs 样式,新增 .sidebar-tab 样式
2026-06-24 12:42:56 +08:00
mac
bed6e9192a Merge branch 'dev'
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-06-23 23:12:03 +08:00
mac
2c7e6b7d29 fix: 经营管理卡片图标修复 + 金额统一取整
- 已签项目图标 file-sign → file-check-2(修复不显示)
- 11 个卡片金额从 money() 改为 moneyInt()(Math.round 取整)
2026-06-23 23:12:03 +08:00
mac
aaa213a765 fix(deploy): 修复 data 目录不存在导致 ln 软链失败
All checks were successful
Deploy / deploy (push) Successful in 10s
rsync 排除了 data/uploads 但没保留 data/ 空目录,
导致 ln -sfn shared/uploads data/uploads 时父目录不存在而失败。
在 ln 之前加 mkdir -p 确保目录存在。
2026-06-23 23:07:25 +08:00
mac
636b3fc82b fix(deploy): 修复 data 目录不存在导致 ln 软链失败
rsync 排除了 data/uploads 但没保留 data/ 空目录,
导致 ln -sfn shared/uploads data/uploads 时父目录不存在而失败。
在 ln 之前加 mkdir -p 确保目录存在。
2026-06-23 23:07:18 +08:00
Deploy Test
207629a9bb test: trigger workflow debug
Some checks failed
Deploy / deploy (push) Failing after 0s
2026-06-23 23:03:22 +08:00
mac
361359ee32 统计卡片统一为 metric-card 样式 + 增加图标
Some checks failed
Deploy / deploy (push) Failing after 1s
- 经营管理/重点工作台账卡片改用 .metric-card 类(与首页一致)
- 卡片增加 lucide 图标(签约/金额/任务/状态等)
- 布局:左对齐、text-2xl、图标+标签
2026-06-23 22:49:55 +08:00
mac
25da1453be 新增自动化部署:Gitea Actions + systemd + gunicorn
Some checks failed
Deploy / deploy (push) Failing after 1s
- .gitea/workflows/deploy.yml:push main 自动触发部署
- requirements.txt:Python 依赖清单
- deploy/opc-manager.service:systemd 服务(gunicorn --preload -w 4)
- deploy/README.md:完整部署指南
- deploy/服务器配置任务提示词.md:给服务器管理 Agent 的操作提示词
- health 接口简化返回 {ok, service}
2026-06-23 19:33:16 +08:00
mac
39f2b679a1 首页:新增回款/费用卡片 + 统计口径对齐 + UI 优化
- 新增回款金额、费用金额 2 个卡片(5 列布局)
- 卡片标题统一为 年度累计/季度累计/本月新增
- 季度计算改为动态本季度(不再写死 Q2)
- 卡片数字统一取整(moneyInt)
- 财务趋势图只统计已签约项目(与卡片口径对齐)
- net_profit 字段重命名为 gross(消除命名误导)
- 近期动态删除图标改为 trash-2(与附件删除一致)
2026-06-23 17:17:36 +08:00
mac
5f9a92b24d 经营管理视图切换按钮移到卡片外,与重点工作台账布局对齐 2026-06-23 16:20:18 +08:00
mac
b6dd913275 登录页底部改为 Powered by yxcowork.vip,移除默认账号显示 2026-06-23 16:03:11 +08:00