2026-11-02 22:20:55 -05:00
|
|
|
"""表单参照选项,不能由此读取薪酬、联系方式或完整业务对象。"""
|
|
|
|
|
from typing import Annotated
|
|
|
|
|
|
|
|
|
|
from fastapi import APIRouter, Query
|
|
|
|
|
|
|
|
|
|
from app.api.deps import DbSession, LoginUser
|
|
|
|
|
from app.core.response import ok
|
|
|
|
|
from app.services.authorization_metadata import options, payroll_options
|
|
|
|
|
|
|
|
|
|
router = APIRouter(prefix="/meta", tags=["业务参照"])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/payroll-input/{business_id}")
|
2026-11-05 05:47:13 -05:00
|
|
|
def payroll_metadata(business_id: int, session: DbSession, actor: LoginUser,
|
|
|
|
|
page_num: Annotated[int, Query(alias="pageNum", ge=1)] = 1,
|
|
|
|
|
page_size: Annotated[int, Query(alias="pageSize", ge=1, le=200)] = 200):
|
|
|
|
|
return ok(payroll_options(session, actor, business_id, page_num=page_num, page_size=page_size))
|
2026-11-02 22:20:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/options")
|
|
|
|
|
def metadata_options(session: DbSession, actor: LoginUser, resource: str,
|
|
|
|
|
business_id: Annotated[int | None, Query(ge=1)] = None,
|
|
|
|
|
search: Annotated[str | None, Query(max_length=64)] = None):
|
|
|
|
|
return ok(options(session, actor, resource, business_id=business_id, search=search))
|