2021SC@SDUSC
本次分析关于审计的细节,也是这个程序的比较重点的部分。
首先定义变量。barwidth是进度条的长度,等于trackNode的长度×每一个节点的宽度,在获取到数据的时候赋值;stepwidth就是每一个节点的宽度;trackNode代表节点的进度;Steps用于判断审计是准备状态或是结束状态。
data: {
id:'',
id2:'',
path:'',
leixing:'',
zhuangtai:'',
servicedetail:{},
piyu:"尚未审批",
shenpiren:"尚未审批",
trackNode:[
{stepName:"已提交审计"},{stepName:"科长审批"},{stepName:"处长审批"},{stepName:"审批完成"}
],
barWidth:320,
stepWidth:80,
Steps:0,
},
然后是显示审计细节的函数,首先获得选择显示细节的审计的id,存入定义的id中,然后request请求HTTPS网络查看该审计是否有批语,如果没有批语则piyu为‘尚无批语’,else将piyu内容置为请求网络后获得的信息。
wx.request({
url: app.globalData.globalReqUrl+'/api/affair/'+i,
method: 'get',
header: {
'content-type': 'application/json' ,
'token':app.globalData.token
},
success(res){
console.log(res.data.content.affair)
if(!res.data.content.affair.msg)
{
that.setData({
piyu:"尚无批语"
})
}
else{
that.setData({
piyu:res.data.content.affair.msg
})
}
}
})
与之相似的,下一步是查看是否有审批,同样是进行网络请求然后对返回信息进行判断,如果已经审批则将shenpiren置为获得的名字。
wx.request({
url: app.globalData.globalReqUrl+'/api/approval/new/'+i,
method: 'get',
header: {
'content-type': 'application/json' ,
'token':app.globalData.token
},
success(res){
console.log(res.data.content.author)
if(!res.data.content.author.name)
{
that.setData({
shenpiren:"尚未审批"
})
}
else{
that.setData({
shenpiren:res.data.content.author.name
})
}
}
})
然后是审计节点的展示,首先要区分是准备审计或是审计结束,要将Steps设置为相应值,然后要群分是全程跟踪审计或者是报销审计,这里if判断的条件中的数字类型代表的状态含义都是上一篇的代码中所定义的,具体可以参考上一篇。这里根据请求网络后从后端获得的数字状态分别将leixing置为不同的类型。审批流程分为四个状态,同样以数字判断,然后将获得的信息存入servicedetail中,在这部就完成了对审计的类型、状态、名字的获取。
wx.request({
url: app.globalData.globalReqUrl+'/api/affair/'+i,
method: 'get',
header: {
'content-type': 'application/json' ,
'token':app.globalData.token
},
success(res) {
console.log(res.data.content)
if(res.data.content.affair.approverPost==2)
{
that.setData({
Steps:1
})
}
else if(res.data.content.affair.approverPost==3){
that.setData({
Steps:2
})
}
if(res.data.content.affair.kind==21)
{
that.setData({
leixing:"全程跟踪审计"
})
}
else{
that.setData({
leixing:"报销审计"
})
}
if(res.data.content.affair.state==10)
{
that.setData({
zhuangtai :"准备审计",
Steps:0
})
}
else if(res.data.content.affair.state==11){
that.setData({
zhuangtai:"正在审批"
})
}
else if(res.data.content.affair.state==12){
that.setData({
zhuangtai:"审批不通过"
})
}
else if(res.data.content.affair.state==13){
that.setData({
zhuangtai:"审批结束",
Steps:3
})
}
that.setData({
servicedetail:{
"name":res.data.content.affair.name,
"city":that.data.zhuangtai,
"tag":that.data.leixing,
}
})
console.log(servicedetail.name)
}
})
然后是关于审计的报告的查看。系统的设定是当准备审计时是尚未提交报告的,即当steps=0时,所以在准备审计的条件下点击查看报告会弹出不允许的提醒,在其他状态可以进行报告的查看,wx.downloadFile用于下载文件资源到本地,客户端直接发起一个HTTPS GET请求,返回文件的本地临时路径,id2即指文件的id,将文件路径命名为filePath。获得本地的路径后可以进行文件的预览,wx.openDocument用于新开页面打开文档,文件类型为PDF,对于成功或失败都在命令行进行提示。
preview: function () {
if(this.data.zhuangtai=="准备审计"){
wx.showToast({
title: '只有提交报告才能查看',
icon:'none',
duration: 1500
})
}else{
console.log("预览")
var id = this.data.id2;
//下载简历
wx.downloadFile({
url: app.globalData.globalReqUrl + "/api/download/"+id,
success: function (res) {
var filePath = res.tempFilePath
console.log(filePath)
//预览简历
wx.openDocument({
fileType: "pdf",
filePath: filePath,
success: function (res) {
console.log("打开文档成功")
console.log(res);
},
fail: function (res) {
console.log("fail");
console.log(res)
},
complete: function (res) {
console.log("complete");
console.log(res)
}
})
},
fail: function (res) {
console.log('fail')
console.log(res)
},
complete: function (res) {
console.log('complete')
console.log(res)
}
})
}
},
以上综合前一篇的博客,就完成了首先查看全部的审计,然后点击某个审计进行细节的查看,可以查看到审计的状态和审计进行的流程,对于已经开始或结束的审计可以查看到审计报告,报告获取后存于本地临时路径中。以上就完成了查看审计的全部的流程。