产品迭代模块:卡片改表格 + 日期内联编辑 + 后端日期校验
- 卡片列表改为表格列表(10列),参考用户运营中心产品台账 - 数据库新增 priority + 5 个日期字段(start/plan/dev_done/test/launch) - 删除 owner/platform/feature_list 字段(migrate_drop_product_fields) - 日期内联编辑:5个日期列直接渲染 date input - 后端日期校验:4个时间不能早于启动时间;启动时间必填 - 详情页新增耗时统计区块(总/产品/研发/测试耗时) - 优先级和状态合并同一行 - 新增'未开始'状态 - 表格垂直居中对齐 - renderProducts 后重新初始化 lucide 图标
This commit is contained in:
@@ -47,3 +47,27 @@ def migrate_rename_tenant():
|
||||
conn.commit()
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def migrate_drop_product_fields():
|
||||
"""删除 product_versions 表的 owner / platform / feature_list 字段"""
|
||||
from flask_app import db, mysql
|
||||
|
||||
conn = db()
|
||||
try:
|
||||
for col in ["owner", "platform", "feature_list"]:
|
||||
cur = conn.cursor(dictionary=True)
|
||||
cur.execute("SHOW COLUMNS FROM product_versions LIKE %s", (col,))
|
||||
exists = cur.fetchone()
|
||||
cur.close()
|
||||
if exists:
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
cur.execute(f"ALTER TABLE product_versions DROP COLUMN {col}")
|
||||
cur.close()
|
||||
conn.commit()
|
||||
print(f"[migrate] product_versions.{col} 列已删除")
|
||||
except mysql.connector.Error as e:
|
||||
print(f"[migrate] 删除 {col} 失败: {e}")
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
Reference in New Issue
Block a user