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>
This commit is contained in:
@@ -15,6 +15,7 @@ router = APIRouter(prefix="/users", tags=["Users"])
|
||||
class UpdateUserRoleRequest(BaseModel):
|
||||
role: str # manager / director / leader
|
||||
department: str = ""
|
||||
require_report: bool = True
|
||||
|
||||
|
||||
@router.get("/", response_model=list[UserOut])
|
||||
@@ -71,6 +72,7 @@ async def update_user_role(
|
||||
user.role = data.role
|
||||
if data.department:
|
||||
user.department = data.department
|
||||
user.require_report = data.require_report
|
||||
await db.commit()
|
||||
await db.refresh(user)
|
||||
|
||||
@@ -79,6 +81,7 @@ async def update_user_role(
|
||||
"name": user.name,
|
||||
"role": user.role,
|
||||
"department": user.department,
|
||||
"require_report": user.require_report,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -143,6 +143,14 @@ async def create_visit(
|
||||
init_entry(visit, current_user["name"])
|
||||
db.add(visit)
|
||||
|
||||
# Update customer's last visit tracking
|
||||
cust_result = await db.execute(select(Customer).where(Customer.id == data.customer_id))
|
||||
customer = cust_result.scalar_one_or_none()
|
||||
if customer:
|
||||
customer.last_visit_date = parse_date(data.visit_date)
|
||||
customer.last_visit_manager_id = uuid.UUID(current_user["user_id"])
|
||||
db.add(customer)
|
||||
|
||||
# Create draft copies for companions
|
||||
for companion_id in data.companions:
|
||||
if companion_id != uuid.UUID(current_user["user_id"]):
|
||||
|
||||
Reference in New Issue
Block a user