人工智能研究中心快递柜——代码分析十三

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)
            }
          })
        }   
     
    
  },

以上综合前一篇的博客,就完成了首先查看全部的审计,然后点击某个审计进行细节的查看,可以查看到审计的状态和审计进行的流程,对于已经开始或结束的审计可以查看到审计报告,报告获取后存于本地临时路径中。以上就完成了查看审计的全部的流程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值