FUADMIN / VBEN 前端GET请求传递数组参数

有一个派工,需要拍给工程师,Post_Code 为1,需要前端调用一个GET 请求Post_Code 为1

后端post和 user是many to many 关系, USER 后端API接口: 
class Filters(FuFilters):
    name: str = Field(None, alias="name")
    mobile: str = Field(None, alias="mobile")
    status: bool = Field(None, alias="status")
    dept_id__in: list = Field(None, alias="dept_ids[]")
    dept_name__in: list = Field(None, alias="dept_names[]")
    post__in: list = Field(None, alias="post_code[:]")

为排查错误:

print("Parsed filters:", filters) 检查输入参数

@router.get("/user", response=List[UserSchemaOut])
def list_user(request, filters: Filters = Query(...)):
    print("Parsed filters:", filters)
    qs = retrieve(request, Users, filters)
    users = []
    for user in qs:
        post_names = list(user.post.values_list('name', flat=True))
        post_ids = list(map(int, user.post.values_list('id', flat=True)))  # 确保所有元素都是整数
        role_ids = list(map(int, user.role.values_list('id', flat=True)))  # 确保所有元素都是整数

        try:
            dept_id = int(user.dept.id) if user.dept else None
        except (ValueError, AttributeError) as e:
            dept_id = None

        if dept_id is None:
            continue  # 如果用户没有关联部门,跳过

        try:
            user_data = UserSchemaOut(
                id=user.id,
                username=user.username,
                name=user.name,
                birthday=user.birthday,
                groups=list(user.groups.values_list('id', flat=True)),  # 确保 groups 是一个整数列表
                user_permissions=list(user.user_permissions.values_list('id', flat=True)),
                # 确保 user_permissions 是一个整数列表
                dept=dept_id,
                dept_name=user.dept.name if user.dept else None,
                post_name=post_names,
                post=post_ids,
                role=role_ids
            )
        except Exception as e:
            print(f"Error creating UserSchemaOut for user {user.id}: {e}")
            continue
        users.append(user_data)
    return users

前端: 

通过多次,查看GET请求,修改前端代码,搞定了数组的传递: 

 {
    field: 'dispatch',
    label: '工单派发',
    required: true,
    component: 'ApiSelect',
    componentProps: () => {
      return {
        api: async () => {
          return await getEngineerList({ 'post_code[:]': 1 }); // 修改参数名称
        },
        labelField: 'name',
        valueField: 'id',
        mode: 'multiple',
      };
    },
    itemProps: { validateTrigger: 'blur' },
  },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值