archive: 紫鸟/HubStudio 文档快照(3889 篇 Markdown)

来源:紫鸟帮助中心/博客/主站资讯 + HubStudio API 文档/帮助中心 + 三个官方 skill 仓库。
只入库 Markdown 与元数据;原始 HTML 与 tarball 留在本机。
This commit is contained in:
admin9webs committed 2026-10-05 12:11:35 +00:00
commit 322b7737eb
3976 files changed
+695714

No files matched your search

@@ -0,0 +1,219 @@
# 访问策略 - 访问规则与账号策略接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅访问规则的新建、编辑、删除、启禁用、详情,以及规则成员/账号设置、账号策略绑定接口时加载。
所有接口**权限点**均为 **ERP-网页访问权限**,方法均为 POST。
---
## ERP-访问规则新建
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/add`
> addIds 与 addNames 可任传其一,都传取并集。
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| name | 规则名称 | 是 | string |
| desc | 规则描述 | 是 | string |
| activeUser | 生效成员(1除boss外所有/2指定成员/3指定部门/4指定角色) | 是 | number |
| userChange | 指定成员对象 | 是 | object |
| userChange.addIds | 新增成员id列表(空值传[]) | 否 | string[] |
| userChange.addNames | 新增成员用户名列表 | 否 | string[] |
| userChange.departmentIds | 指定部门列表 | 否 | number[] |
| userChange.roleIds | 指定角色列表 | 否 | number[] |
| activeAccount | 生效账号(0所有/1指定) | 是 | number |
| accountChange | 指定账号对象 | 是 | object |
| accountChange.addIds | 账号id列表 | 否 | string[] |
| activeRange | 生效范围(1所有网站/2黑名单/3白名单) | 是 | string |
| configs | 配置详情数组 | 是 | array |
| configs[].urlId | 网页ID(activeRange=1时传0) | 是 | number |
| configs[].isAccessible | 是否可访问 | 是 | boolean |
| configs[].isLog | 是否记录日志 | 是 | boolean |
| configs[].functions | 操作控制配置数组 | 是 | array |
| configs[].functions[].function | clipboard/file_upload/file_download/print/console/password/mouse_click/keyboard_input | 是 | string |
| configs[].functions[].permission | 1允许/2允许且记录/3限制且记录/6限制 | 是 | number |
| isSkipRuleConflictCheck | 是否跳过冲突检测 | 是 | boolean |
| effectiveTime | 生效时间(可选) | 否 | object |
| effectiveTime.timeType | 0永久 1限制时间 | 是 | string |
| effectiveTime.startTime | 开始时间戳(秒),永久填0 | 是 | number |
| effectiveTime.endTime | 结束时间戳(秒),永久填0 | 是 | number |
| isAllowRequest | 是否允许申请访问(默认true) | 否 | boolean |
| shareCompanyIds | 合作公司id列表 | 否 | number[] |
| domIds | dom列表 | 否 | number[] |
**响应 data**:含 id(number)。
---
## ERP-访问规则编辑
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/edit`
> addIds/addNames 可任传其一取并集;deleteIds/deleteNames 不能与 add 重复。
参数结构与「规则新建」基本一致,差异:
- 新增 `ruleId`(number, 必须) — 规则ID
- `userChange` / `accountChange` 增加 `deleteIds`(string[]) 和 `deleteNames`(string[]) 用于删除成员
- 无 `activeRange`、`isSkipRuleConflictCheck` 参数
**响应**:ret / msg
---
## ERP-访问规则删除
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/delete`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ruleIds | 规则ID列表 | 是 | number[] |
**响应**:ret / msg
---
## ERP-访问规则启用禁用
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/active`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ruleIds | 规则ID列表 | 是 | number[] |
| isActive | 0禁用 1启用 | 是 | string |
**响应**:ret / msg
---
## ERP-访问规则列表
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/list`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| search | 搜索关键字 | 否 | string |
| activeRange | 1所有网站/2黑名单/3白名单 | 否 | number |
| isActive | 0禁用 1启用 | 否 | number |
| ruleListType | 0全部 1账号可绑定 | 否 | number |
| accountId | 账号id(获取可绑定规则时传) | 否 | number |
| page | 页码 | 是 | number |
| limit | 每页条数 | 是 | number |
**响应 data**:含 list 数组(每项含 id、name、activeUser、activeRange、isActive、description、users[]、roles[]、departments[]、accounts[]、presetType、canChangeUser/Account/Url/Active/canDelete/canCopy)和 count。
---
## ERP-访问规则详情
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/detail`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ruleId | 规则ID | 是 | number |
**响应 data**:含 id、name、description、activeUser、activeRange、activeAccount、users[{id,name,username}]、roles[{id,name}]、departments[{id,name}]、accounts[{id,name}]、configs[{urlId,urlName,groupId,groupName,tType,isAccessible,isLog,urlPattern,functions[{function,permission}]}]、effectiveTime{timeType,startTime,endTime}、shareCompanys[{id,name}]、domList[]、domIds[]。
---
## ERP-访问规则设置生效成员
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/change_user`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ruleId | 规则ID | 是 | number |
| activeUser | 1所有/2指定成员/3指定部门/4指定角色 | 是 | number |
| userChange.addIds | 新增成员id(空传[]) | 是 | string[] |
| userChange.addNames | 新增成员用户名 | 否 | string[] |
| userChange.deleteIds | 删除成员id(空传[]) | 是 | string[] |
| userChange.deleteNames | 删除成员用户名 | 否 | string[] |
| userChange.departmentIds | 指定部门 | 是 | number[] |
| userChange.roleIds | 指定角色 | 是 | number[] |
**响应**:ret / msg
---
## ERP-访问规则设置生效账号
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/change_account`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ruleId | 规则ID | 是 | number |
| activeAccount | 0所有 1指定 | 是 | number |
| accountChange.addIds | 新增账号id | 是 | string[] |
| accountChange.deleteIds | 删除账号id | 是 | string[] |
**响应**:ret / msg
---
## ERP-规则可绑定的账号列表
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/account/bindable_list`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| page | 页码 | 是 | number |
| limit | 每页条数 | 是 | number |
| ruleId | 规则id | 否 | number |
| platformIds | 平台id列表 | 否 | number[] |
| tagIds | 标签id列表 | 否 | number[] |
| accountName | 账号名称 | 否 | string |
**响应 data**:含 list(每项含 id、name、collocationRelation、sitePlatformName、storePlatformId、tags[{id,name}])、count(number)、bindAccountIds(number[])。
---
## ERP-账号添加访问策略
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/account_ref/add_to_account`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| accountId | 账号id | 是 | string |
| ruleIds | 访问策略id列表 | 是 | number[] |
| isSkipRuleConflictCheck | 是否跳过冲突检测 | 是 | boolean |
**响应**:ret / msg
---
## ERP-账号移除访问策略
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/account_ref/remove_from_account`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| accountId | 账号id | 是 | string |
| ruleIds | 访问策略id列表 | 是 | number[] |
**响应**:ret / msg
---
## ERP-账号绑定的访问策略列表
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule/list/one_account`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| accountId | 账号id | 是 | string |
| page | 页码 | 是 | number |
| limit | 每页条数 | 是 | number |
**响应 data**:含 list 数组(每项含 id、name、activeRange、activeUser、isActive、users[{id,name,username}]、urlCount、isInvalid、canDelete)和 count。
@@ -0,0 +1,152 @@
# 访问策略 - 网页与分组管理接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅网页增删改查、网页分组管理接口的详细参数时加载。
所有接口**权限点**均为 **ERP-网页访问权限**,方法均为 POST。
---
## ERP-添加网页
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url/add`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| name | 网页名称 | 是 | string |
| groupId | 分组ID | 是 | number |
| desc | 描述 | 否 | string |
| urlPattern | URL | 是 | string |
**响应 data**:含 id(number)。
---
## ERP-编辑网页
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url/edit`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| urlId | 网页ID | 是 | number |
| name | 网页名称 | 是 | string |
| groupId | 分组ID | 是 | number |
| desc | 描述 | 否 | string |
| urlPattern | URL | 是 | string |
**响应**:ret / msg
---
## ERP-删除网页
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url/delete`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| urlIds | 网页ID列表 | 是 | number[] |
**响应**:ret / msg
---
## ERP-网页列表
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url/list`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| search | 搜索关键字 | 否 | string |
| groupIds | 筛选分组ID | 否 | number[] |
| tType | 1系统预置 2自定义 | 否 | number |
| page | 页码 | 是 | number |
| limit | 每页条数 | 是 | number |
**响应 data**:含 list 数组(每项含 id、name、groupId、groupName、tType、urlPattern、description)和 count(number)。
---
## ERP-网页详情
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url/detail`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| urlId | 网页ID | 是 | number |
| urlPattern | 网页url(按url查详情) | 否 | string |
**响应 data**:含 id、name、groupId、groupName、tType、urlPattern、description。
---
## ERP-网页修改分组
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url/change_group`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| groupId | 目标分组ID | 是 | number |
| urlIds | 网页ID列表 | 是 | number[] |
**响应**:ret / msg
---
## ERP-添加网页分组
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url_group/add`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| name | 分组名称 | 是 | string |
| groupIdParent | 父级分组ID(0为顶级,默认0) | 否 | number |
**响应 data**:含 id(number)。
---
## ERP-编辑网页分组
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url_group/edit`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| groupId | 分组ID | 是 | number |
| name | 分组名称 | 是 | string |
**响应**:ret / msg
---
## ERP-删除网页分组
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url_group/delete`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| groupId | 分组ID | 是 | number |
**响应**:ret / msg
---
## ERP-网页分组列表
- **路径**:`/superbrowser/rest/v1/erp/security/access_rule_url_group/list`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| groupIdParent | 父级id(0为顶级,默认0) | 否 | number |
| isAll | 是否返回全部数据(默认false) | 否 | boolean |
**响应 data**:含 list 数组,每项含 id(number)、name(string)、tType(1系统/2自定义)、urlCount(number)、childrenCount(number)、groupIdParent(number)、children(array,isAll=true 时返回,结构同父节点)。
@@ -0,0 +1,76 @@
# 账号授权管理接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅账号授权新增、删除、查询、清除、授权用户列表接口的详细参数时加载。
---
## ERP-账号授权新增
- **路径**:`/superbrowser/rest/v1/erp/store/auth/add` **方法**:POST **权限点**:ERP-账号授权权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeIdList | 账号id列表 | 是 | string[] |
| staffId | 授权用户id | 是 | string |
| isAuthAddtion | 是否授权附加账号(默认授权)0否 1是 | 否 | number |
**响应**:ret / status / msg
---
## ERP-账号授权删除
- **路径**:`/superbrowser/rest/v1/erp/store/auth/delete` **方法**:POST **权限点**:ERP-账号授权权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeIdList | 账号id列表 | 是 | string[] |
| staffId | 授权用户id | 是 | string |
**响应**:ret / status / msg
---
## ERP-账号授权查询
- **路径**:`/superbrowser/rest/v1/erp/store/auth/query` **方法**:POST **权限点**:ERP-账号查看权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| userId | 用户id | 是 | number |
**响应 data**:数组,每项含 storeId(number)、storeName(string)。
---
## ERP-清除账号授权
- **路径**:`/superbrowser/rest/v1/erp/store/auth/clean` **方法**:POST **权限点**:ERP-清除账号授权
> 清除指定账号上的所有授权关系(不指定用户)。
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeIdList | 账号id数组 | 是 | string[] |
**响应**:ret / msg
---
## ERP-账号授权用户列表查询
- **路径**:`/superbrowser/rest/v1/erp/store/user/list` **方法**:POST **权限点**:ERP-账号查看权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeIdList | 账号id列表 | 否 | string[] |
| page | 页码 | 否 | string |
| limit | 每页条数 | 否 | string |
**响应 data**:数组,每项含 storeId(number)、userId(number)、username(string)。另有 count。
@@ -0,0 +1,134 @@
# 账号增删改查与状态接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅账号创建、删除、编辑、列表查询、标签列表、缓存清除接口的详细参数时加载。
---
## ERP-创建账号
- **路径**:`/superbrowser/rest/v1/erp/store/create` **方法**:POST **权限点**:ERP-创建与删除账号权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeData | 账号数据数组 | 是 | array |
| storeData[].name | 账号名 | 是 | string |
| storeData[].username | 平台登录账号 | 否 | string |
| storeData[].password | 平台登录密码 | 否 | string |
| storeData[].siteId | 站点id | 否 | string |
| storeData[].tagIds | 标签列表(不超过5个) | 否 | number[] |
| proxyId | 设备id | 否 | number |
| enterpriseName | 企业简称 | 否 | string |
| defyWarning | 是否无视风险添加:1是 0否(默认1) | 否 | string |
**响应 data**:数组,每项含 storeId(string)、name(string)、siteId(string)、msg(string)、riskMsgList(string[])
---
## ERP-删除账号
- **路径**:`/superbrowser/rest/v1/erp/store/delete` **方法**:POST **权限点**:ERP-创建与删除账号权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeIds | 账号id数组 | 是 | number[] |
**响应**:ret / status / msg
---
## ERP-编辑账号基础信息
- **路径**:`/superbrowser/rest/v1/erp/store/update/base` **方法**:POST **权限点**:ERP-编辑账号基础信息
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| id | 账号id | 是 | number |
| name | 账号名(≤64位,不传不更新) | 否 | string |
| siteId | 平台id(不传不更新) | 否 | number |
| tagIds | 标签id列表(不传不更新,传空清空,≤5个) | 否 | number[] |
| defyWarning | 是否无视风险:1是 0否(默认1) | 否 | integer |
| customerUrl | 自定义平台站点url | 否 | string |
**响应**:ret / msg / status
---
## ERP-账号列表查询
- **路径**:`/superbrowser/rest/v1/erp/store/list` **方法**:POST **权限点**:ERP-账号查看权限
> 私有化账号建议一次最多查询 20 条。
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeName | 账号名称 | 否 | string |
| ip | 设备ip | 否 | string |
| page | 页码 | 否 | number |
| limit | 每页条数 | 否 | number |
**响应 data**:数组,每项含 id、name、ip、proxyId、siteId、siteName、platform、platformName、username、createtime、lastuserId、lastusetime、packageName (均 string)。另有 count。
---
## ERP-用户的账号列表查询
- **路径**:`/superbrowser/rest/v1/erp/store/list/by/user` **方法**:POST **权限点**:ERP-账号查看权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| userId | 用户id | 是 | number |
| storeName | 账号名称 | 否 | string |
| page | 页码 | 否 | number |
| limit | 每页条数 | 否 | number |
**响应 data**:数组,每项含 storeId、storeName、proxyId、ipExpiryTime、platformName (均 string)。另有 count。
---
## ERP-查询某用户有权限的账号列表
- **路径**:`/superbrowser/rest/v1/erp/user/stores` **方法**:POST **权限点**:ERP-查询某用户有权限的账号列表
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| userId | 用户id | 是 | number |
| storeName | 账号名称 | 否 | string |
| isAccurate | 0模糊 1精确(默认精确) | 否 | number |
| page | 页码 | 否 | number |
| limit | 每页条数 | 否 | number |
**响应 data**:数组,每项含 id(number)、name、ipId(number)、ip、platform、platformCategory、userName、lastUserId、lastUserName、lastOpenUsername、lastUsetime、ipExpiryTime、tags(string[])、regionInfo。另有 count。
---
## ERP-标签列表
- **路径**:`/superbrowser/rest/v1/erp/tag/list` **方法**:POST **权限点**:ERP-标签列表
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
**响应 data**:对象,含 list 数组,每项含 id(string)、name(string)。
---
## ERP-清除账号缓存
- **路径**:`/superbrowser/rest/v1/erp/store/deletecookie` **方法**:POST **权限点**:ERP-清除账号缓存
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| userId | 用户id | 是 | string |
| removeStoreId | 账号id | 是 | number |
| removeType | 1清除所有 2仅保留cookie 3仅保留二步验证状态 | 是 | number |
**响应**:ret / msg / status
@@ -0,0 +1,119 @@
# 账号标签管理接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅标签的添加、删除、重命名、绑定、解绑、替换、移除、清空、列表接口时加载。
所有标签接口**权限点**均为 **账号标签管理权限**。标签操作路径统一为 `/superbrowser/rest/v1/store-tag/{action}`,方法均为 POST。每个账号最多绑定 5 个标签。
**操作模式**:绑定/解绑为增量操作;替换为全量覆盖;清空移除所有标签。
---
## 添加账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/add`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 否 | string |
| userId | 用户id | 否 | string |
| tagName | 标签名称 | 否 | string |
**响应 data**:对象,含 tag_id(string)。
---
## 删除账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/delete`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 否 | string |
| tagIds | 标签id列表 | 否 | string[] |
| userId | 用户id | 否 | string |
**响应**:ret / msg
---
## 重命名账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/rename`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 否 | string |
| tid | 标签id | 否 | string |
| userId | 用户id | 否 | string |
| name | 新标签名称 | 否 | string |
**响应**:ret / status / msg
---
## 绑定账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/bind`(增量追加)
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 否 | string |
| storeIds | 账号id列表 | 否 | string[] |
| tagIds | 标签id列表 | 否 | string[] |
| userId | 用户id | 否 | string |
**响应**:ret / msg
---
## 解绑账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/unbind`(增量移除)
请求参数同「绑定账号标签」。**响应**:ret / status / msg
---
## 替换账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/replace`(全量覆盖)
请求参数同「绑定账号标签」。**响应**:ret / msg / status
---
## 移除账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/remove`
请求参数同「绑定账号标签」。**响应**:ret / msg / status
---
## 清空账号标签
- **路径**:`/superbrowser/rest/v1/store-tag/clear`(移除账号所有标签)
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 否 | string |
| storeIds | 账号id列表 | 否 | string[] |
| userId | 用户id | 否 | string |
**响应**:ret / msg
---
## 账号的标签列表
- **路径**:`/superbrowser/rest/v1/store-tag/list`
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | string |
| storeId | 店铺id | 是 | string |
| userId | 用户id | 是 | string |
| withSystem | 1带系统标签 0不带(默认0) | 否 | string |
**响应 data**:含 id(string)、name(string)、is_system(string)、store_count(string)。
@@ -0,0 +1,108 @@
# API 调用指南
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要了解认证方式、请求构造方法、代码示例或常见错误时加载。
## 概述
紫鸟开放平台使用"简单通用模式"进行 API 认证,通过 API Key 作为 Bearer Token 传递。
## 1. 获取 companyId(紫鸟企业ID)
在开放平台首页右侧可获取紫鸟企业ID(即 companyId),几乎所有接口都需要传此参数。
## 2. 获取 API Key
前提:在紫鸟开放平台创建"卖家自研应用",API 身份验证方式选择**简单通用模式**。在控制台中可以找到 API Key。
## 3. 配置 IP 白名单
在紫鸟开放平台的**应用管理**中,点击【设置】进入该应用的【应用概览】页面,点击【安全中心】下的【IP 白名单设置】,添加调用接口的服务器 IP。建议使用一台 IP 固定的服务器发起 API 请求。
## 4. 构造请求头
```
Authorization: Bearer {你的API_Key}
Content-Type: application/json
```
`Bearer` 和 API Key 之间必须有一个空格。
## 5. 请求地址
Base URL:`https://sbappstoreapi.ziniao.com/openapi-router`
完整请求地址 = Base URL + 接口路径。例如:
`https://sbappstoreapi.ziniao.com/openapi-router/superbrowser/rest/v1/erp/store/list`
## 6. 响应结构
### 网关层(外层)
| 字段 | 类型 | 说明 |
|------|------|------|
| request_id | string | 全局请求ID |
| code | string | "0" 表示成功 |
| msg | string | 返回码描述 |
| sub_code | string | 业务返回码(成功时不返回) |
| sub_msg | string | 业务返回码描述(成功时不返回) |
| data | object | 业务响应参数 |
### 业务层(data 内部)
| 字段 | 类型 | 说明 |
|------|------|------|
| ret | number | 0 成功,其他失败 |
| status | string | "success" 或 "faile" |
| data | array/object | 业务数据(部分接口有) |
| msg | string | 错误信息 |
| count | number | 列表查询时的总条数 |
| 其他字段 | - | 部分接口的业务字段直接在此层级 |
> **关键提醒**:业务数据位置因接口而异,不要假设所有业务数据都在 `data` 字段中。各 reference 文件对每个接口标注了"响应 data"或"响应"——"响应 data"表示数据在业务层的 data 字段中;"响应"后直接列出的字段(如 id、password)表示它们与 ret/status 同级,直接位于业务层根级。
## 7. 代码示例
### Java(OkHttp)
```java
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"companyId\": 123456}");
Request request = new Request.Builder()
.url("https://sbappstoreapi.ziniao.com/openapi-router/superbrowser/rest/v1/erp/store/list")
.method("POST", body)
.addHeader("Authorization", "Bearer 你的API_Key")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
```
### Python(requests)
```python
import requests, json
url = "https://sbappstoreapi.ziniao.com/openapi-router/superbrowser/rest/v1/erp/store/list"
headers = {"Authorization": "Bearer 你的API_Key", "Content-Type": "application/json"}
response = requests.post(url, headers=headers, data=json.dumps({"companyId": 123456}))
print(response.json())
```
### JavaScript(Fetch)
```javascript
fetch("https://sbappstoreapi.ziniao.com/openapi-router/superbrowser/rest/v1/erp/store/list", {
method: "POST",
headers: { "Authorization": "Bearer 你的API_Key", "Content-Type": "application/json" },
body: JSON.stringify({ companyId: 123456 }),
})
.then(r => r.json()).then(console.log).catch(console.error);
```
## 8. 常见问题
**401 错误**:检查 API Key 是否正确、Authorization 格式是否含空格、接口是否支持通用模式、应用是否已申请对应权限点。
**code 非 "0"**:请求未到达业务层,通常是认证或权限问题。
**ret 非 0**:业务操作失败,读取 msg 或 sub_msg 获取错误详情。
@@ -0,0 +1,172 @@
# 部门员工管理接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅部门增删改查移动、员工新增/修改/查询/启禁用、部门变更接口时加载。
所有接口方法均为 POST。
---
## ERP-部门查询
- **路径**:`/superbrowser/rest/v1/erp/department/list` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
**响应 data**:数组,每项含 id(number)、name(string)、hierarchy(number 层级)、parentId(number)、ordering(number)。另有 count。
---
## ERP-部门新增
- **路径**:`/superbrowser/rest/v1/erp/department/add` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| name | 部门名称 | 是 | string |
| hierarchy | 部门级别 | 是 | string |
| parentId | 父级部门id | 是 | string |
**响应 data**:含 id(string 部门id)。
---
## ERP-部门修改
- **路径**:`/superbrowser/rest/v1/erp/department/update` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| id | 部门id | 是 | number |
| name | 部门新名称 | 否 | string |
| parentId | 父部门id | 否 | number |
**响应**:ret / status / msg
---
## ERP-部门删除
- **路径**:`/superbrowser/rest/v1/erp/department/delete` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | string |
| id | 部门id | 是 | string |
**响应**:ret / status / msg
---
## ERP-部门移动
- **路径**:`/superbrowser/rest/v1/erp/department/order` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| parentId | 父部门id | 是 | string |
| order | 更新后的部门顺序(部门id数组) | 是 | string[] |
**响应**:ret / status / msg
---
## ERP-员工查询
- **路径**:`/superbrowser/rest/v1/erp/staff/list` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| page | 页码 | 是 | number |
| limit | 每页条数 | 是 | number |
| username | 用户账号 | 否 | string |
| name | 真实姓名 | 否 | string |
| departmentIds | 部门id数组 | 否 | number[] |
| level | 角色类型(0boss/1经理/2员工/3超管) | 否 | string |
| delflag | 0正常 1禁用 2删除(不传全部) | 否 | string |
| isAccurate | 0模糊 1精确(默认0) | 否 | number |
**响应 data**:含 username、userId、name、level、mobile、delflag、authPhone (均 string)。另有 count。
---
## ERP-员工新增v2
- **路径**:`/superbrowser/rest/v2/erp/staff/add` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | string |
| nickname | 用户账号 | 是 | string |
| name | 真实姓名 | 是 | string |
| password | 密码 | 是 | string |
| mobile | 手机号 | 否 | string |
| departmentIds | 部门id数组 | 是 | string[] |
| roleId | 角色id | 是 | number |
| authDevide | 设备授权方式(1/2/3/4) | 是 | number |
| isUpdatePersonInfo | 1允许修改个人信息 0不允许 | 是 | number |
| isLimitLogin | 0否 1是 | 是 | number |
| isTwoStepVerify | 0否 1是 | 是 | number |
| authClient | 登录终端控制对象 | 是 | object |
| authClient.allowLoginWindows | 1允许 0不允许 | 是 | string |
| authClient.allowLoginMac | 1允许 0不允许 | 是 | string |
| authClient.allowLoginAndroid | 1允许 0不允许 | 是 | string |
| authClient.allowLoginWeb | 1允许 0不允许 | 是 | string |
| authClient.allowLoginIos | 1允许 0不允许 | 是 | string |
| authClient.allowLoginMiniprog | 1允许 0不允许 | 是 | string |
| authClient.allowLoginLinux | 1允许 0不允许 | 否 | string |
| loginLimitStartTime | HH:mm(分钟仅00或30) | 否 | string |
| loginLimitEndTime | HH:mm | 否 | string |
| loginLimitStartDate | yyyy-MM-dd | 否 | string |
| loginLimitEndDate | yyyy-MM-dd | 否 | string |
| enablePhoneLogin | 0否 1是 | 否 | number |
**响应**:含 id(用户id)、password(string)。
---
## ERP-员工修改v2
- **路径**:`/superbrowser/rest/v2/erp/staff/modify` **权限点**:ERP-部门与员工接口
参数结构与「员工新增v2」基本一致,差异:
- 新增 `id`(string, 必须) — 用户id
- 多数字段变为非必须(不传不更新)
- 新增 `isResetAuthPhone`(number) — 1重置登录手机号 0不重置
- `areaCode` 和 `authPhone` 已废弃
**响应**:ret / status / msg
---
## ERP-员工启用禁用接口
- **路径**:`/superbrowser/rest/v1/erp/staff/status` **权限点**:ERP-部门与员工接口
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| staffIds | 用户id数组 | 是 | string[] |
| status | 0启用 1禁用 2删除 | 是 | string |
**响应**:ret / status / msg
---
## ERP-用户的部门变更
- **路径**:`/superbrowser/rest/v1/erp/staff/department` **权限点**:ERP-用户的部门变更
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | string |
| staffIds | 用户id列表 | 是 | number[] |
| departmentIds | 部门id列表 | 是 | number[] |
**响应**:ret / msg / status
@@ -0,0 +1,180 @@
# 设备管理接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅设备套餐、购买、续费、绑定、解绑、查询、自有设备管理接口时加载。
所有接口方法均为 POST,Content-Type 为 application/json。
---
## ERP-套餐列表查询
- **路径**:`/superbrowser/rest/v1/erp/package/new` **权限点**:ERP-设备套餐列表查询权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
**响应 data**:数组,每项含 regionCloudId(套餐ID)、ctype(0站群/1云平台/2自有/3本地)、networkType、areaId、areaName、city、priceOriginal、deviceConfigName、deviceType(1标准/2节能/3高配)、deviceOs、deviceSupportRemoteLogin、deviceCpuSize、deviceMemorySize、deviceBandWidth、deviceDiskSize、platformName (均 string)。
---
## ERP-购买设备
- **路径**:`/superbrowser/rest/v1/erp/purchase` **权限点**:ERP-设备购买与续费权限
> 需要紫鸟账号上有余额。
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | string |
| purchase | 购买信息对象 | 是 | object |
| purchase.packageId | 套餐id | 是 | number |
| purchase.periodId | 时长id(1:1月/2:3月/3:6月/4:12月) | 是 | number |
| purchase.num | 数量(单次最多5个) | 是 | number |
| storeIds | 要绑定的账号id(未绑设备的) | 否 | number[] |
**响应 data**:含 order_id(string)、create_time(string)、proxyIdList(number[] 设备ID列表)。
---
## ERP-续费设备
- **路径**:`/superbrowser/rest/v1/erp/renew` **权限点**:ERP-设备购买与续费权限
> 仅支持紫鸟 IP 续费;自有设备请通过开启自动续费。
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | string |
| renew | 续费信息对象 | 是 | object |
| renew.periodId | 时长id | 是 | string |
| renew.ipIds | proxy_id 数组 | 是 | integer[] |
**响应 data**:含 id(设备id)、ip(设备ip)、expire(过期时间)。另有 orderId、createTime。
---
## ERP-开关自动续费
- **路径**:`/superbrowser/rest/v1/erp/ip/renewal` **权限点**:ERP-开关自动续费
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ids | proxy_id 数组 | 是 | number[] |
| isOpen | 0关闭 1开启 | 是 | number |
**响应**:ret / msg / status
---
## ERP-设备查询
- **路径**:`/superbrowser/rest/v1/erp/ip/page` **权限点**:ERP-设备查询
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| ipAddr | 设备地址 | 否 | string |
| page | 页码 | 否 | string |
| limit | 每页条数 | 否 | string |
**响应 data**:数组,每项含 id(number)、ip、proxyName、proxyType(0站群/1云平台/2自有/3vps/4虚拟机/5本地)、port、ptype(0http/1https/2socks5)、expiry、isRenewal(0关/1开)、createtime、delflag(0正常/2回收站) (均 string)。另有 count。
---
## ERP-绑定设备
- **路径**:`/superbrowser/rest/v1/erp/ip/bind` **权限点**:ERP-设备绑定权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| proxyId | 设备id | 是 | number |
| storeIdList | 账号id列表 | 是 | number[] |
| defyWarning | 是否无视风险:1是 0否(默认1) | 否 | number |
**响应**:ret / status / msg / riskMsgList(string[])
---
## ERP-解绑设备
- **路径**:`/superbrowser/rest/v1/erp/ip/unbind` **权限点**:ERP-解绑设备
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| storeId | 账号ID | 是 | number |
**响应**:ret / msg / status
---
## ERP-查询已购设备价格接口
- **路径**:`/superbrowser/rest/v1/erp/proxy/purchased_package_info` **权限点**:ERP-查询已购设备价格接口
> 仅支持查询云平台设备。
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司ID | 是 | number |
| proxyId | 设备ID | 是 | number |
**响应 data**:含 proxyId(number)、regionCloudId(number 套餐ID)、price(number 续费价格)。
---
## ERP-设备历史绑定记录
- **路径**:`/superbrowser/rest/v1/erp/ip/historybind` **权限点**:ERP-设备查询
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| proxyId | 设备id | 是 | number |
**响应 data**:对象含 list 数组,每项含 storeId、storeName、proxyName、unBindTime、unbindUserId、unbindUsername、cloudType (均 string)。另有 count。
---
## ERP-添加自有设备(新)
- **路径**:`/superbrowser/rest/v1/erp/ip/self/add/new` **权限点**:ERP-添加自有设备(新)
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司ID | 是 | string |
| defyWarning | 1无视风险 0风险提示 | 是 | number |
| base | 基础信息对象 | 是 | object |
| base.deviceName | 设备名称 | 是 | string |
| base.isDynamic | 是否动态网络(false静态/true动态) | 是 | boolean |
| proxy | 代理信息对象 | 是 | object |
| proxy.type | 0http/1https/2sock5/3ssh/4ssl | 是 | string |
| proxy.addr | 代理地址 | 是 | string |
| proxy.port | 代理端口 | 是 | string |
| proxy.username | 用户名 | 否 | string |
| proxy.passwd | 密码 | 否 | string |
| proxy.isSetAccount | 是否设密码 0否 1是 | 是 | number |
**响应 data**:含 id(number 设备ID)。
---
## ERP-修改自有设备信息(新)
- **路径**:`/superbrowser/rest/v1/erp/ip/self/edit/new` **权限点**:ERP-修改自有设备信息(新)
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司ID | 是 | string |
| defyWarning | 1无视风险 0风险提示 | 是 | number |
| proxyId | 设备ID | 是 | string |
| base | 基础信息对象 | 是 | object |
| base.deviceName | 设备名称(不传不更新) | 否 | string |
| base.isDynamic | 是否动态网络 | 是 | boolean |
| proxy | 代理信息对象(字段同添加接口) | 是 | object |
**响应**:ret / status / msg
@@ -0,0 +1,107 @@
# 角色和权限管理接口
> 本文件是 ziniao-erp-api-doc 的 Level 2 参考文档。
> 仅在需要查阅角色增改查、权限列表、用户角色调整接口的详细参数时加载。
所有接口方法均为 POST。
---
## ERP-添加角色
- **路径**:`/superbrowser/rest/v1/erp/per/role/add` **权限点**:ERP-角色添加、修改权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| roleName | 角色名称 | 是 | string |
| identityId | 角色身份id(1管理员/2普通成员/3超级管理员) | 是 | number |
| desc | 描述 | 否 | string |
| permissionIds | 权限id列表 | 是 | number[] |
**响应**:ret / status / msg
---
## ERP-修改角色
- **路径**:`/superbrowser/rest/v1/erp/per/role/edit` **权限点**:ERP-角色添加、修改权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| roleId | 角色id | 是 | string |
| roleName | 角色名称 | 是 | string |
| identityId | 角色身份id | 是 | number |
| desc | 描述 | 否 | string |
| permissionIds | 权限id列表 | 是 | number[] |
**响应**:ret / status / msg
---
## ERP-角色列表查询
- **路径**:`/superbrowser/rest/v1/erp/per/role/list` **权限点**:ERP-角色列表查询
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| page | 页码 | 否 | number |
| limit | 每页条数 | 否 | number |
| filterKeyword | 搜索关键字 | 否 | string |
**响应 data**:含角色信息 id、name、desc、identityType(1管理/2员工/3超管)、allPermission、users[{userId,name,username}]、permissions[{id,name,groupId,groupName,dependOn[],requiredBy[]}]。另有 count。
---
## ERP-角色详情
- **路径**:`/superbrowser/rest/v1/erp/per/role/detail` **权限点**:ERP-角色详情
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| roleId | 角色id | 是 | number |
**响应 data**:含 id、companyId、name、desc、permissionList[{id,name,groupId,groupName}] (均 string)。
---
## ERP-权限列表
- **路径**:`/superbrowser/rest/v1/erp/per/permission/list` **权限点**:ERP-权限列表
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| identityId | 角色身份id(1管理员/2普通成员/3超级管理员) | 是 | number |
**响应 data**:数组,每项含 id(number)、name(string)、desc(string)、order(number)、groupId(number)、groupName(string)、groupOrder(number)、dependOn(number[])、requiredBy(number[])。
---
## ERP-调整角色
- **路径**:`/superbrowser/rest/v1/erp/staff/change/role` **权限点**:ERP-角色添加、修改权限
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| roleId | 角色id | 是 | number |
| staffIds | 用户id列表 | 是 | number[] |
**响应**:ret / status / msg
---
## ERP-用户角色列表
- **路径**:`/superbrowser/rest/v1/erp/staff/role/list` **权限点**:ERP-角色列表查询
| 参数 | 说明 | 必须 | 类型 |
|------|------|------|------|
| companyId | 公司id | 是 | number |
| staffId | 用户id | 是 | number |
**响应 data**:对象含 roleList 数组,每项含 id(string)、name(string)。