组织
组织的接口需要使用组织的密钥才能访问
获取应用列表
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