跳到主要内容

v1 API 创建表单视图

API 使用者,可以通过本接口,在指定表单下创建自定义视图

功能免费版专业版/专业增强版企业基础版企业协作版企业高级版
创建表单视图✔️✔️✔️✔️✔️

认证方式​

V1 Bearer 认证方式

headers 设置​

需要在请求中设置如下 headers

  • Content-Type: application/json
  • Accept: application/json
  • Authorization: 放入上一步骤生成的 CODE

接口说明​

  • API 使用者可以在自己创建或有管理权限的共享表单下创建视图。
  • 创建自定义视图需要账户套餐支持自定义视图能力。
  • 单个表单下最多支持 100 个视图。
  • view_type 默认为 grid。
  • prefer_columns 为空时,服务端会根据表单默认展示字段生成视图展示列。
  • filter 使用数组形式传入;传空数组表示没有筛选条件。

接口描述​

Request​

POST https://jinshuju.net/api/v1/forms/FORM_TOKEN/views

{
"name": "待跟进客户",
"view_type": "kanban",
"prefer_columns": ["serial_number", "field_1", "field_2", "field_3"],
"kanban_group_by_api_code": "field_3",
"kanban_card_title_api_code": "field_1",
"sort": [
{ "api_code": "serial_number", "order": "desc" }
],
"filter": [
{ "field": "field_3", "operator": "eq", "value": "待跟进" }
]
}
参数名称是否必须类型说明
FORM_TOKEN是String表单 Token(URL 路径参数)
name是String视图名称,最长 120 个字符
view_type否String视图类型:grid / kanban / stats / form。默认 grid;form(表单视图)仅表格支持
visibility否String可见性:cooperators / personal。默认 cooperators
prefer_columns否Array(String)视图展示的字段 api_code 列表
kanban_group_by_api_code否String看板视图分组字段的 api_code。字段必须支持看板分组
kanban_card_title_api_code否String看板卡片标题字段的 api_code
kanban_group_order否Array(String)看板分组的显示顺序,元素为分组选项的 api_code,不可重复
kanban_hidden_groups否Array(String)隐藏的看板分组,取值同 kanban_group_order;空数组表示全部显示
sort否Array(FormViewSortRule)排序规则数组
sorted_columns否Array(Object)列的显示顺序,按数组顺序排列,整体替换
sorted_columns[].api_code是String字段的 api_code
filter否Array(FormViewFilterCondition)视图筛选条件数组
title否String填写页标题,最长 120 个字符,默认为表格名称。仅表单视图可用
description否String / null填写页描述。仅表单视图可用
published否Boolean是否发布填写页,默认 false。仅表单视图可用
field_overrides否Array(FormViewFieldOverrideInput)填写项设置;不传时按列顺序勾选全部可填写的列。仅表单视图可用
cid否String客户端标识,随实时变更广播透传

filter 字段过滤​

filter 用于保存视图筛选条件。每个元素是 {field, operator, value} 三元组,多个条件之间是 AND 关系。

元素类型说明
fieldString字段的 api_code(如 field_3),或系统字段名 created_at
operatorString操作符,见下方表格
value取决于 operator比较值;null / not_null 不需要传

支持的 operator:

类别operatorvalue 形式示例
等值eq / ne标量{"field":"field_1","operator":"eq","value":"张三"}
比较gt / gte / lt / lte标量{"field":"field_3","operator":"gte","value":6}
区间between / not_between2 元素数组 [min, max](闭区间){"field":"field_3","operator":"between","value":[80,100]}
集合any_in / none_in数组{"field":"field_2","operator":"any_in","value":["北京","上海"]}
文本like / not_like子串{"field":"field_2","operator":"like","value":"张"}
是否为空null / not_null省略{"field":"field_4","operator":"not_null"}

filter 必须传数组;不要传 { "scope_conditions": [] } 这类内部存储结构。

Response​

创建成功时返回新创建的视图结构。

{
"token": "vD3e4F",
"name": "待跟进客户",
"view_type": "kanban",
"position": 1,
"predefined": false,
"prefer_columns": ["serial_number", "field_1", "field_2", "field_3"],
"sort": [
{ "api_code": "serial_number", "order": "desc" }
],
"filter": [
{ "field": "field_3", "operator": "eq", "value": "待跟进" }
],
"created_at": "2026-05-26T03:00:00.000Z",
"updated_at": "2026-05-26T03:00:00.000Z"
}
参数名称是否必须类型说明
token是String视图 Token
name是String视图名称
view_type是String视图类型:grid / kanban / stats / form(表单视图)
position是Integer视图排序位置
predefined是Boolean是否为系统预设视图
visibility是String可见性:cooperators(协作者可见)/ personal(仅创建者可见)
view_scope是String视图归属:user / form。form 视图不可删除,也不可切换可见性
prefer_columns是Array(String)视图展示的字段 api_code 列表;为空时表示展示表单可推送字段
sorted_columns是Array(Object)列的显示顺序,按 position 升序
sorted_columns[].api_code是String字段的 api_code
sorted_columns[].position是Integer列位置,从 1 开始
kanban_group_by_api_code是String / null看板视图分组字段的 api_code
kanban_card_title_api_code是String / null看板卡片标题字段的 api_code;未设置时按 prefer_columns 推算
kanban_group_order是Array(String)看板分组的显示顺序,元素为分组选项的 api_code;__unset__ 表示未分组
kanban_hidden_groups是Array(String)隐藏的看板分组,取值同 kanban_group_order
grid_frozen_boundary_api_code是String / null表格视图中冻结列边界处字段的 api_code
sort是Array(Object)排序规则数组
sort[].api_code是String排序字段的 api_code,可包含系统字段如 serial_number
sort[].order是String排序方向:asc / desc
filter是Array(FormViewFilterCondition)视图筛选条件数组。无筛选条件时返回空数组
created_at是DateTime视图创建时间
updated_at是DateTime视图最后更新时间
title否String / null填写页标题(仅表单视图返回)
description否String / null填写页描述(仅表单视图返回)
published否Boolean是否已发布,未发布时填写链接不可用(仅表单视图返回)
fill_url否String对外填写链接(仅表单视图返回)
fill_items否Array(FormViewFillItem)填写页上勾选的填写项,按填写页顺序(仅表单视图返回)

状态码​

状态码说明
201创建成功
401未认证
402当前套餐不支持 V1 API,或当前账户不支持自定义视图
403无权限(如 OAuth scope 不足,或无权创建表单视图)
404表单不存在或无权访问
422参数校验失败、视图数量达到上限、筛选条件不合法

数据类型​

FormViewSortRule​

参数名称是否必须类型说明
api_code是String排序字段的 api_code,可包含系统字段如 serial_number
order否String排序方向:asc / desc

FormViewFilterCondition​

参数名称是否必须类型说明
field是String筛选字段的 api_code
operator是String筛选操作符
value否Any筛选值;运算符为 null / not_null 时没有该字段

FormViewFieldOverrideInput​

参数名称是否必须类型说明
field_api_code是String列的 api_code;须可作为填写项,不可重复
label否String / null填写页上的标题;为空时沿用列标题
notes否String / null填写页上的说明;为空时沿用列说明
private否Boolean / null为 true 时不在填写页显示;不传时沿用列自身设置
position否Integer / null在填写页中的位置;不传时按数组顺序
validations否Array(String)填写项校验,目前 presence 表示必填;须为该列类型支持的校验

FormViewFillItem​

参数名称是否必须类型说明
api_code是String列的 api_code
label是String / null填写页上显示的标题,未单独设置时为列标题
notes是String / null填写页上显示的说明,未单独设置时为列说明
required是Boolean是否必填

示例代码​

HTTP​

POST https://jinshuju.net/api/v1/forms/$FORM_TOKEN/views

Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN

{
"name": "待跟进客户",
"view_type": "kanban",
"filter": [{ "field": "field_3", "operator": "eq", "value": "待跟进" }]
}

Python​

import requests

access_token = 'YOUR_ACCESS_TOKEN'
form_token = 'YOUR_FORM_TOKEN'

payload = {
"name": "待跟进客户",
"view_type": "kanban",
"filter": [{"field": "field_3", "operator": "eq", "value": "待跟进"}]
}

response = requests.post(
f'https://jinshuju.net/api/v1/forms/{form_token}/views',
headers={'Authorization': f'Bearer {access_token}'},
json=payload
)

print(response.text)