400-158-0245

概述

网页与手机端开发

系统架构

网页端开发

手机端开发

常见问题

API接口文档

说明

用户接口

文件核心操作接口

文件管理接口

其它文件操作接口

审批接口

讨论接口

快捷方式/发布接口

消息/提醒接口

多媒体接口

 

审批接口

 

1、获取审批模板内容接口

URI: /app/approval/templet-content

该接口用于获取审批模板的内容,在创建审批模板时也需要调用以获取一些基本设置

POST参数:

token: token参数

id: 审批模板的ID,(id可以为0,此时只获取审批类型数据(json.data),创建新的审批模板时必须要有这些数据)

fileId: 文件或文件夹,可为0,如果大于0,则可获取文件或文件夹的相关信息

返回数据示例:

{
    "code": 0,
    "data": [  //其每一项表示根据审批后处理来划分的一个类型(即审批类型)
        [
            "1",  //表示审批类型的ID
            "不处理", //表示审批类型的名称
            "0", //表示审批适用范围(0不限,1只适用于文件夹,2只适用于文件)
            "0", //表示是审批时需要的附加数据,0表示不需要,1表示审批时可填写限制时间(主要是各种申请权限中申请临时权限的有效期),2暂时未使用,3暂时未使用
            "0" //表示是否需要上传文件或新建文件夹,0不需要,1需要上传文件(如修改文件上传文件),2需要新建文件夹
        ],
        [
            "2",
            "上传文件",
            "1",
            "3",
            "1"
        ],
        ...
    ],
    "templet": { //表示审批模板的内容,下面的content项是一json格式的字符串,见后面说明
        "content": "{\n    \"approvalType\": \"4\",\n    \"approverAuth\": 0,\n    \"ccAuth\": 0,\n    \"desc\": \"请说明修改内容\",\n    \"destFolderId\": 0,\n    \"mark\": false,\n    \"step\": [\n        {\n            \"approvalNum\": 0,\n            \"ids\": [\n                \"1\"\n            ],\n            \"name\": \"d\",\n            \"realnames\": [\n                \"系统管理员\"\n            ],\n            \"type\": 2,\n            \"usernames\": [\n                \"admin\"\n            ]\n        }\n    ],\n    \"title\": \"申请修改\",\n    \"uids\": [\n        4\n    ]\n}",
        "createtime": 1634714946, 
        "creatorId": 3,
        "editorId": 3,
        "edittime": 1634714946,
        "fileId": 71, //审批模板生效的文件或文件夹,如果是文件夹,则该模板也对它的子文件夹或子文件生效
        "id": 5, //审批模板id
        "mType": 2, //审批模板生效的范围:1只对文件夹生效,2只对文件生效,0不限,mType的取值需与每个审批类型设置的适用范围一致 
        "title": "申请修改" //审批模板名称,与content项中的title一致
    },
    "userinfo": { //审批中涉及的所有用户的基本信息
        "1": [
            "admin",
            "系统管理员",
            "0"
        ],
        "4": [
            "test03",
            "测试3",
            "0"
        ]
    }
} 

审批模板内容即json.templet.content 是json格式的字符串,说明如下:

{
	"approvalType": "4", //表示审批类型ID(也就是json.data中的审批类型)
	"approverAuth": 0, //表示审批人附加权限(0表示无,1表示可预览,2表示可预览与下载,附加权限的意思是:如果审批人对要审批的文件没有预览或下载权限,通过这个设置,可以让他在审批时获得相应的权限)
	"ccAuth": 0, //表示抄送人附加权限,与审批人附加权限类似
	"desc": "请说明修改内容",
	"destFolderId": 0, //暂未使用
	"mark": false, //暂未使用
	"step": [{ //这里是审批步骤,可以有多个步骤
		"approvalNum": 0, //当type=3时,表示同意人数大于该值通过
		"ids": ["1"], //审批人id,可多个,与realnames,usernames保持一致
		"name": "审批", //当前审批步骤名称
		"realnames": ["系统管理员"], //审批人真实姓名
		"type": 2, //表示审批通过规则,1表示一致同意,2表示任一同意,3表示同意人数大于n通过,4表示指定同意
		"usernames": ["admin"] //审批人账号
	}],
	"title": "申请修改",
	"uids": [4] //抄送人列表
}

2、创建或修改审批模板

URI: /app/approval/set-templet

POST参数:

token: token参数,提示:只有超级管理员或对当前文件/文件夹有管理权限的普通管理员才可创建或修改当前文件/文件夹的审批模板

fileId: 要创建审批模板的文件或文件夹ID,注意审批模板有继承性,文件夹下的子文件/文件夹也将拥有该审批模板

tid: 审批模板id,如果是创建模板,则为0

title: 审批模板名称

mType: 审批模板适用范围,0表示不限,1表示只适用于文件夹,2表示只适用于文件(例如:如果在文件夹发起只适用于文件的审批模板,则该文件夹下的各级子文件都可以发起该审批),mType的取值需与每个审批类型设置的适用范围一致,审批类型可见前面的接口1

content: json格式的字符串,审批模板的主要内容,与接口1的json.templet.content一致


3、获取一个文件/文件夹的所有审批模板(包括继承)

URI: /app/approval/templet-list

POST参数:

token: token参数,提示:只有超级管理员或对当前文件/文件夹有管理权限的普通管理员才能调用此接口

fileId: 文件或文件夹ID

返回结果的json.data是一个列表,其每一项与接口1的json.templet类似,注意,如果返回的json.data[index].fileId与POST参数的fileId不一致,表示该审批模板是当前文件/文件夹继承而来


4、获取当前管理员有管理权限的审批模板列表

URI: /app/approval/templet-list2

POST参数:

token: token参数,提示,必须是超级管理员或普通管理员

返回结果

json.data是一个列表,每一项表示一个审批模板,其中data.id表示审批模板的id,data.title表示审批模板名称,data.path表示审批模板对应文件/文件夹的完整路径


5、删除审批模板

URI: /app/approval/remove-templet

提示:删除审批模板后,将不能再发起相应的审批,但正在处理或处理完毕的审批都不受影响

POST参数:

token: token参数,必须是超级管理员或对审批模板指定的文件/文件夹有管理权限的普通管理员能调用该接口

id: 审批模板的ID


6、发起审批

URI: /app/approval/create-approval

提示:调用此接口前一般要调用接口1(调用时fileId参数与tid参数都不能为0),该接口返回的部分数据(主要是审批模板数据)可直接写入POST参数的json中

POST参数:

token: token参数,发起人至少要对要审批的文件/文件夹具有可见权限

json: 是json格式的字符串,包括发起审批的所有信息:

{
    "approverAuth": 2, //表示审批者附加权限,必须与审批模板里相应值一致
    "attachmentId": 79, //附件ID,仅上传文件或修改文件需要,请参见上传附件接口
    "copyto": [ //审批结束要抄送的用户ID,这是在审批模板里就固定的内容,必须与审批模板里的抄送人列表一致
        4
    ],
    "creatorNote": "修改了部分内容", //发起人陈述
    "ccAuth": 2, //表示抄送人附加权限,必须与审批模板里相应值一致
    "desc": "请说明修改内容", //审批描述,需与审批模板里对应的项一致
    "fileId": 71, //当前文件或文件夹ID
    "fullPath": "公司文件/dzz_1.1_UTF8_20120408.zip", //当前文件或文件夹路径
    "mark": false, //暂未启用,填固定值: false
    "step": [ //审批步骤,可以有多个审批步骤,与审批模板里的审批步骤基本一致(但可能需要添加selectId字段,见下面注释)
        {
            "approvalNum": 0, //
            "ids": [
                1
            ],
            "name": "d",
            "realnames": [
                "系统管理员"
            ],
            "selectId": 1, //当type=4,即指定同意类型时,这里表示指定的审批人的ID,其它情况该项不存在
            "type": 2,
            "usernames": [
                "admin"
            ]
        }
    ],
    "taskType": 4, //审批类型,需与审批模板里对应的项一致
    "tempAuthDay": 4, //仅用于权限变动审批,表示临时权限的天数
    "tid": 5, //审批模板的ID
    "title": "修改文件" //审批模板的名称,需与审批模板里对应的项一致
}

7、获取我发起的审批列表

URI: /app/approval/get-creator-list

获取当前用户发起的所有审批

POST参数:

token: token参数

返回值的json.data是一个列表,其中:

json.data[index].content 是我发起审批的内容,具体字段含义参见接口6的POST参数:json

json.data[index].taskType:审批类型

json.data[index].status: 审批状态,0正在审批,1已通过,2已拒绝,3处理失败

8、查看一个审批

URI: /app/approval/view-approval

获取审批的详情,只有超级管理员、对审批文件有管理权限的普通管理员、发起人、审批人、抄送人有权查看

POST参数:

token: token参数

id: 审批ID

返回结果示例:

{
    "attachment": { //审批附件,当审批类型为上传或修改时需要
        "atype": 1, //附件类型,如果为0表示是单文件附件,如果为1表示是多文件附件
        "fileId": 98, //附件的文件ID,如果为atype为0,表示该附件的文件ID,如果是atype为1,表示一个文件夹,所有附件都放在这个文件夹里
        "fileName": "90a0f4355748920d29c2f523ff071cbe7ab89f9c0e6f76e38328e84049c2eb44", //表示附件名称,如果atype=0,并且审批类型为上传时,附件名称就是审批后的文件名,其它情型没有实际作用。
        "size": 0, //atype为0时,表示附件的大小
        "totalNum": 5, //atype为1时,表示附件数量
        "totalSize": 18900 //atype为1时,表示附件总大小
    },
    "code": 0,
    "data": { //content表示审批的内容,具体字段含义参见接口6的POST参数:json 
    "content": "{\n    \"approverAuth\": 2,\n    \"attachmentId\": 98,\n    \"ccAuth\": 2,\n    \"copyto\": null,\n    \"creatorNote\": \"请批准!\",\n    \"desc\": \"上传审批\",\n    \"fileId\": 7,\n    \"fullPath\": \"公司文件/示例-按项目/质量控制\",\n    \"mark\": false,\n    \"step\": [\n        {\n            \"approvalNum\": 0,\n            \"ids\": [\n                3\n            ],\n            \"name\": \"初审\",\n            \"realnames\": [\n                \"测试2\"\n            ],\n            \"type\": 2,\n            \"usernames\": [\n                \"test02\"\n            ]\n        },\n        {\n            \"approvalNum\": 0,\n            \"ids\": [\n                1\n            ],\n            \"name\": \"终审\",\n            \"realnames\": [\n                \"系统管理员\"\n            ],\n            \"type\": 2,\n            \"usernames\": [\n                \"admin\"\n            ]\n        }\n    ],\n    \"taskType\": \"2\",\n    \"tid\": 6,\n    \"title\": \"上传审批\"\n}\n",
        "createtime": 1635170411,
        "creator": 4,
        "endTime": 0, 
        "errmsg": "",
        "fileId": 7,
        "id": 2,
        "status": 0,
        "taskType": 2
    },
    "data2": [ //以下每一项表示一个审批人
        {
            "aid": 2, //当前审批的id
            "handleType": 2, //表示审批通过规则,1表示一致同意,2表示任一同意,3表示同意人数大于n通过,4表示指定同意
            "handletime": 0, //当前审批人处理审批的时间
            "id": 3, //表示审批人在当前审批中的处理id
            "note": "", //当前审批人处理审批时填写的审批人陈述
            "status": 0, //当前审批步骤的结果,0还没有结果,1通过审批,2拒绝(提示:每个审批步骤可以有多个审批人,只有按审批规则,足够的审批人同意或反对,status的状态才会变化)
            "status2": 0, //当前审批人的审批结果,0还未处理,1通过审批,2拒绝
            "step": 0,//当前审批人所在的审批步骤
            "uid": 3, //当前审批人的用户id
            "utype": 1 //utype为1表示审批人utype为0表示抄送人,这里只会显示审批人
        },
        {
            "aid": 2, //当前审批的id
            "handleType": 2,
            "handletime": 0,
            "id": 4,
            "note": "",
            "status": 0,
            "status2": 0,
            "step": 1,
            "uid": 1,
            "utype": 1
        }
    ],
    "fileAuth": "A", //表示当前用户对要审批文件/文件夹的权限
    "fileMap": { //表示要审批文件/文件夹的基本信息
        "approvalId": 2, //当前审批的id
        "creatorId": 1,
        "fileExtend": "",
        "fileId": 7,
        "fileName": "质量控制",
        "fileType": 1,
        "lockStatus": 0,
        "lockUser": 0,
        "parentId": 3,
        "size": 0
    },
    "userinfo": { //表示与审批相关的用户的信息
        "1": [
            "admin",
            "系统管理员",
            "0"
        ],
        "3": [
            "test02",
            "测试2",
            "0"
        ],
        "4": [
            "test03",
            "测试3",
            "0"
        ]
    }
}

9、获取审批列表(需要我处理的审批、抄送给我的审批、我管理的审批)

URI: /app/approval/get-handler-list

POST参数:

token: token参数

utype: 获取类型,0表示抄送给我的审批,1表示需要我处理的审批

admin: 如果其值为1,表示我管理的审批(超级管理员获取全部的审批,普通管理员获取他管理的文件的审批,如果admin为1,utype的取值无意义)

返回数据的说明请参见接口6、接口7

10、审批人处理审批请求

URI: /app/approval/handle-step

POST参数:

token: token参数

aid: 当前审批的ID

auid: 当前审批中,审批人的处理id,参见接口8的json.data2

step: 审批步骤,参见接口8的json.data2

note: 审批人的审批意见

status: 审批人的审批结论,1为同意,2为拒绝

11、上传审批附件

URI: 

1、/app/approval/upload-attachment/[token]/[filesize]

2、/app/approval/upload-attachment/[token]/[filesize]/[uuid]/[rootid]

3、/app/approval/upload-attachment/[token]/[filesize]/[uuid]/[rootid]/[rpath]

POST参数:

token: token参数

fileSize2: 要上传文件的大小

atype: 上传类型,0表示单文件附件,1表示多文件附件

file: 上传文件对像的字段名称,即html里的<input type=’file’ name=’file’ />

一次只能上传一个文件

URI解释:URI有三种形式,1是单文件附件,2、3是多文件附件(使用之前需要调用接口12获取uuid,rootid)。

URI中以方括号包围的标签需要在上传时动态指定,它们代表的意义如下:

token: token参数

filesize: 文件大小

uuid: 多文件上传时需要的一个上传标识,这个标识由接口12创建并获取

rootid: 多文件上传时所有上传文件的根目录,由接口12创建并获取

rpath: 相对路径,多文件上传时,如果上传的有文件夹,则上传文件夹里的一个文件时,例如: 图片资料/素材/logo3.png,rpath需要写成:图片资料|素材 (注意文件夹名称之间用“|”而不再是“\”)

如果是单文件审批,返回结果的fileId即是附件id(attachmentId),调用接口6创建审批时需要用到


12、创建多文件附件

URI: /app/approval/create-multifiles-attachment

如果审批时要上传多个文件(限于上传新文件审批),需要先调用本接口产生uuid与rootid,然后再反复调用接口11把每个文件上传到云盘

POST参数:

token: token参数

rpath: 是一个json格式的字符串,指明要上传的多文件附件里的所有目录结构(即所有文件夹结构,不含文件信息),其结构如下:

["qdoc", "qmake", "qdoc/images", "qdoc/style", "qmake/images", "qmake/style"]

json中的每一项是一个文件夹的相对路径,如果多文件附件不包含文件夹,则rpath参数可省略

返回结果中有rootid与uuid,可根据这两个数据调用接口11,以上传所有的文件,调用接口6创建审批时,附件id(attachmentId)即是rootid

13、下载审批附件

URI: /app/approval/download-attachment

POST参数:

token: token参数

fileId: 审批附件的文件id,如果是单文件附件,就是附件id,如果是多文件附件,需要根据附件id调用接口14获取要下载的审批文件的id

14、浏览审批附件(多文件附件时)

URI: /app/approval/get-attach-list

POST参数:

token: token参数

fileId: 文件夹ID,审批附件的根文件夹就是附件id

basePath: 附件子目录的相对路径,例如要查看审批附件中的文件夹doc/image目录下的文件列表,basePath就填写:doc/image

返回结果中可以获得子目录与子文件,子目录可以继续调用该接口获取子目录的文件列表,子文件可以根据它的fileId使用接口13下载或预览

15、删除审批

URI: /app/approval/remove-approval

仅超级管理员或对审批文件有管理权限的普通管理员可操作

POST参数:

token: token参数

id: 审批ID


16、打包下载多文件审批文件

URI: /app/approval/download-attachment-zip

POST参数:

token: token参数

fileId: 审批附件id


17、获取一个文件上的审批列表

URI: /app/approval/get-file-approval-log

POST参数:

token: token参数

fileId: 审批附件id

18、其它说明

如果一个文件或文件夹上有可发起的审批,文件浏览接口:/app/file/list-dir返回的数据中有:

{
    "approval": [
	{
	    "id": 6, //审批模板ID
	    "name": "上传审批" //审批模板名称
	},
	{
	    "id": 3,
	    "name": "申请预览权限"
	}
    ],
    ....
}

可以据此在该文件/文件夹上发起审批