feat: 支局长/领导可指定客户经理创建记录

后端 schema: WorkPlanCreate/MiniBusinessCreate/KeyVisitCreate 新增可选 manager_id
后端 API: create 端点支持 manager_id 参数(留空则默认本人)
前端: 三个页面新建弹窗新增「客户经理」下拉(仅支局长/领导可见)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-27 11:17:54 +08:00
parent 576715f990
commit a4904973bf
9 changed files with 51 additions and 9 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ async def create_key_visit(
planned_date=data.planned_date,
planned_visitor=data.planned_visitor,
visit_target=data.visit_target,
manager_id=uuid.UUID(current_user["user_id"]),
manager_id=data.manager_id or uuid.UUID(current_user["user_id"]),
)
init_entry(k, current_user["name"])
db.add(k)
+1 -1
View File
@@ -60,7 +60,7 @@ async def create_mini_business(
amount=data.amount,
follow_up_detail=data.follow_up_detail,
status=data.status,
manager_id=uuid.UUID(current_user["user_id"]),
manager_id=data.manager_id or uuid.UUID(current_user["user_id"]),
expected_revenue_date=data.expected_revenue_date,
)
init_entry(m, current_user["name"])
+1 -1
View File
@@ -58,7 +58,7 @@ async def create_work_plan(
customer_id=data.customer_id,
plan_content=data.plan_content,
plan_date=parse_date(data.plan_date),
manager_id=uuid.UUID(current_user["user_id"]),
manager_id=data.manager_id or uuid.UUID(current_user["user_id"]),
status=data.status,
)
init_entry(wp, current_user["name"])
+1
View File
@@ -11,6 +11,7 @@ class KeyVisitCreate(BaseModel):
planned_date: str = ""
planned_visitor: str = ""
visit_target: str = ""
manager_id: Optional[uuid.UUID] = None
class KeyVisitUpdate(BaseModel):
+1
View File
@@ -10,6 +10,7 @@ class MiniBusinessCreate(BaseModel):
follow_up_detail: str = ""
status: str = "跟进中"
expected_revenue_date: str = ""
manager_id: Optional[uuid.UUID] = None
class MiniBusinessUpdate(BaseModel):
+1
View File
@@ -9,6 +9,7 @@ class WorkPlanCreate(BaseModel):
plan_content: str = ""
plan_date: str # "YYYY-MM-DD"
status: str = "计划中"
manager_id: Optional[uuid.UUID] = None # director can assign to a specific manager
class WorkPlanUpdate(BaseModel):