组织
组织的接口需要使用组织的密钥才能访问
获取应用列表
URL:GET /openapi/company/{组织短名字}/app
返回内容:
{
"status": 0,
"msg": "",
"data": [
{
"id": "grOwVRwNXG", // 应用 id
"key": "92a54", // 短名字
"logo": "", // logo 图片地址
"name": "名称",
"description": "描述",
"isDraft": false // 如果从未发布就是 true
}
]
}
创建应用
URL: POST /openapi/company/{组织短名字}/app
提交的内容格式
{
"owner": "xxxxx@xx.com", //「必填」 所属用户的邮箱地址
"name": "AppName", //「必填」 应用名字
"key": "xxx", // 应用短名字,弄个好记的名字,决定应用访问路径
"description": "", // 描述
"logo": "http://xxxx.com/xxx.png" // 应用 logo
}
导入应用
URL: POST /openapi/company/{组织短名字}/import
提交的内容格式
{
"name": "AppName", //「必填」 应用名字
"file": "", // .amis 爱速搭应用包
"password": "" // 密码如果包设置了密码的话
}
注意:此接口只能通过 form-data
请求体格式发送,否则无法识别其中文件内容。
删除应用
URL: DELETE /openapi/company/{组织短名字}/app/{appId}
appId 是前面从应用列表页中获取的 id
字段
根据应用名删除应用
URL: DELETE /openapi/company/{组织短名字}/appName/{appName}
其中 appName
是应用名
批量导入组织架构
URL:POST /openapi/company/{组织短名字}/department/import
提交内容格式:
{
"departments": [
{"code": "0", "name": "测试专用组织根部门", "parentCode": ""},
{"code": "1", "name": "测试专用组织子部门", "parentCode": "0"}
],
"users": [
{
"name": "张三",
"email": "zhangsan@xxx.com",
"phone": "12345678901",
"nickName": "张三",
"departmentCode": "0",
"isManager": "1",
"authType": "xxx",
"authId": "123456"
}
]
}
departments
部门信息,数组格式。注意parentCode
要能找到对应的code
行。否则构建部门树会出错。部门编号可以按自己的规则来生成,主要用来辅助构建部门树。可以不用给出全量部门树,但是这次导入相关的部门的所有顶层都需要给定,也就说这次导入的人员放到第三层部门里面,那么必须把第三层对应的第二层,顶层都携带上。code
部门编号name
部门名称parentCode
父级部门编号,如果为空表示为顶级部门
users
用户信息,数组格式。要求departmentCode
要能在departments
字段中能找到。name
用户名email
邮箱nickName
显示名departmentCode
部门编号isManager
是否是部门经理authType
可以为空,可以配置成 oauth,cas2,weixin,qq 等authId
第三方登录的 id,即对应登录方式返回的 profile 数据 id
这个导入接口可以多次调用,增量导入。关于部门部分,多次导入不会删除部门,只会新增或者更新部门。关于人员,多次导入不会删除人员,只会新增人员到部门中。所以会存在一个用户被加入到多个部门的情况。
组织架构相关
获取根部门列表
URL:GET /openapi/company/{组织短名字}/department
返回结构类似
{
"status": 0,
"msg": "",
"data": {
"options": [
{
"label": "根部门",
"value": "k1Jw8ME8Gq",
"creatable": true,
"editable": true,
"removable": false,
"children": [
{
"label": "部门 1",
"value": "DyVZYOwav6",
"creatable": true,
"editable": true,
"removable": true,
"loaded": false,
"defer": true,
"deferApi": "/api/company/aisuda/department?parent=DyVZYOwav6"
},
{
"label": "部门 2",
"value": "pezEbloLAB",
"creatable": true,
"editable": true,
"removable": true,
"loaded": true
}
],
"placeholder": "暂无更多子部门"
}
]
}
}
为了支持大型组织结构,这里使用了异步加载机制,比如上面例子的 部门 1
有子部门,需要将其中的 /api/
替换成 /openapi/
然后去请求子部门数据。
如果希望一次性返回所有部门组织架构,可以请求 GET /openapi/company/{组织短名字}/department/all
。
{
"id": "k1Jw8ME8Gq",
"parentId": "",
"createdAt": "2021-06-11T03:29:45.000Z",
"updatedAt": "2021-06-22T04:59:53.000Z",
"name": "根部门",
"children": [
{
"id": "3mrZq9ZjNR",
"parentId": "k1Jw8ME8Gq",
"createdAt": "2021-06-22T04:59:53.000Z",
"updatedAt": "2021-06-22T04:59:53.000Z",
"name": "部门 1"
},
{
"id": "DyVZYOwav6",
"parentId": "k1Jw8ME8Gq",
"createdAt": "2022-07-15T02:37:18.000Z",
"updatedAt": "2022-07-15T02:37:18.000Z",
"name": "部门 2",
"children": [
{
"id": "Nq4omrw1g7",
"parentId": "DyVZYOwav6",
"createdAt": "2022-07-15T03:18:15.000Z",
"updatedAt": "2022-07-15T03:18:15.000Z",
"name": "部门 3"
}
]
}
]
}
新增部门
URL:POST /openapi/company/{组织短名字}/department
提交内容格式是
{"name": "部门名称", "parentId": "k1Jw8ME8Gq"}
其中 parentId
是这个新增部门所属父级部门的 id
删除部门
URL:DELETE /openapi/company/{组织短名字}/department/{部门id}
向部门里添加成员
URL:POST /openapi/company/{组织短名字}/department/addUser
提交内容格式是
{"department": "Nq4omrw1g7", "email": "aisuda@baidu.com"}
其中 department
是部门 id
获取部门里的用户
URL:GET /openapi/company/{组织短名字}/department/users?departmentId={部门 id}
返回结构类似
{
"status": 0,
"msg": "操作成功",
"data": {
"creatable": false,
"isAdmin": false,
"items": [
{
"editable": false,
"deletable": false,
"username": "aisuda",
"name": "aisuda",
"email": "aisuda@baidu.com",
"isLeader": false,
"id": "4Qyw7pEgGd",
"userId": "k1Jw8ME8Gq",
"departmentId": "Nq4omrw1g7",
"departmentName": "部门 id",
"isBultin": false
}
],
"count": 2,
"options": [{"label": "aisuda", "value": "4Qyw7pEgGd"}]
}
}
主要使用这个接口里的 items
,另外这个接口支持分页,还可以传递 page
perPage
参数。
删除部门里的用户
URL:DELETE /openapi/company/{组织短名字}/department/{部门id}/delUser/:id
其中用户 id 可以从部门用户列表里获得
根据邮箱删除部门里的用户
URL:DELETE /openapi/company/{组织短名字}/department/{部门id}/delUserByEmail/:email
email 是邮箱
设置用户是否为部门经理
URL:POST /openapi/company/{组织短名字}/department/toggleLeader
提交参数类似
{"departmentId": "Nq4omrw1g7", "userId": "k1Jw8ME8Gq", "isLeader": true}
切换封禁用户
URL:POST /openapi/company/{组织短名字}/department/toggleDisabled
提交参数类似
{"departmentId": "Nq4omrw1g7", "userId": "k1Jw8ME8Gq", "disabled": true}
调整用户所属部门
URL:POST /openapi/company/{组织短名字}/department/changeUser
提交参数类似
{
"departmentId": "Nq4omrw1g7",
"userId": "pezEbloLAB",
"newDepartmentId": "grOwVRwNXG"
}
newDepartmentId 是新部门 id