网页与手机端开发
API接口文档
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] //抄送人列表 }
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一致
URI: /app/approval/templet-list
POST参数:
token: token参数,提示:只有超级管理员或对当前文件/文件夹有管理权限的普通管理员才能调用此接口
fileId: 文件或文件夹ID
返回结果的json.data是一个列表,其每一项与接口1的json.templet类似,注意,如果返回的json.data[index].fileId与POST参数的fileId不一致,表示该审批模板是当前文件/文件夹继承而来
URI: /app/approval/templet-list2
POST参数:
token: token参数,提示,必须是超级管理员或普通管理员
返回结果
json.data是一个列表,每一项表示一个审批模板,其中data.id表示审批模板的id,data.title表示审批模板名称,data.path表示审批模板对应文件/文件夹的完整路径
URI: /app/approval/remove-templet
提示:删除审批模板后,将不能再发起相应的审批,但正在处理或处理完毕的审批都不受影响
POST参数:
token: token参数,必须是超级管理员或对审批模板指定的文件/文件夹有管理权限的普通管理员能调用该接口
id: 审批模板的ID
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": "修改文件" //审批模板的名称,需与审批模板里对应的项一致 }
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处理失败
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" ] } }
URI: /app/approval/get-handler-list
POST参数:
token: token参数
utype: 获取类型,0表示抄送给我的审批,1表示需要我处理的审批
admin: 如果其值为1,表示我管理的审批(超级管理员获取全部的审批,普通管理员获取他管理的文件的审批,如果admin为1,utype的取值无意义)
返回数据的说明请参见接口6、接口7
URI: /app/approval/handle-step
POST参数:
token: token参数
aid: 当前审批的ID
auid: 当前审批中,审批人的处理id,参见接口8的json.data2
step: 审批步骤,参见接口8的json.data2
note: 审批人的审批意见
status: 审批人的审批结论,1为同意,2为拒绝
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创建审批时需要用到
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
URI: /app/approval/download-attachment
POST参数:
token: token参数
fileId: 审批附件的文件id,如果是单文件附件,就是附件id,如果是多文件附件,需要根据附件id调用接口14获取要下载的审批文件的id
URI: /app/approval/get-attach-list
POST参数:
token: token参数
fileId: 文件夹ID,审批附件的根文件夹就是附件id
basePath: 附件子目录的相对路径,例如要查看审批附件中的文件夹doc/image目录下的文件列表,basePath就填写:doc/image
返回结果中可以获得子目录与子文件,子目录可以继续调用该接口获取子目录的文件列表,子文件可以根据它的fileId使用接口13下载或预览
URI: /app/approval/remove-approval
仅超级管理员或对审批文件有管理权限的普通管理员可操作
POST参数:
token: token参数
id: 审批ID
URI: /app/approval/download-attachment-zip
POST参数:
token: token参数
fileId: 审批附件id
URI: /app/approval/get-file-approval-log
POST参数:
token: token参数
fileId: 审批附件id
如果一个文件或文件夹上有可发起的审批,文件浏览接口:/app/file/list-dir返回的数据中有:
{ "approval": [ { "id": 6, //审批模板ID "name": "上传审批" //审批模板名称 }, { "id": 3, "name": "申请预览权限" } ], .... }
可以据此在该文件/文件夹上发起审批