fileView.vue 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <view class="container">
  3. <!-- <cu-custom bgColor="bg-gradual-pink" :isBack="true">
  4. <block slot="backText">返回</block>
  5. <block slot="content">检测报告</block>
  6. </cu-custom> -->
  7. <web-view :src="pdfUrl"></web-view>
  8. </view>
  9. </template>
  10. <script>
  11. import http from "@/common/service/http.js"
  12. import md5 from "@/common/util/md5.js"
  13. export default {
  14. data() {
  15. return {
  16. pdfUrl: '',
  17. from: 'app'
  18. }
  19. },
  20. onLoad(option) {
  21. if (option.id) {
  22. this.getDe(option.id)
  23. }
  24. /**
  25. * 浏览情景
  26. */
  27. // 浏览情景1:浏览本地的pdf文件
  28. //this.pdfUrl = '/hybrid/html/web/viewer.html?file=./compressed.tracemonkey-pldi-09.pdf'
  29. // 浏览情景2:浏览在线的pdf文件
  30. // this.pdfUrl = '/hybrid/html/web/viewer.html?file=' + encodeURIComponent(
  31. // "https://www.mingjianlims.com/group1/M00/00/0C/rBKdLGHuElCAVpUEAAY6VxViWJE056.pdf")
  32. },
  33. methods: {
  34. /**
  35. * 根据报告的id查询文档路径
  36. */
  37. getDe(id) {
  38. let access_token = uni.getStorageSync('Access-Token')
  39. console.log(access_token)
  40. let sql =
  41. `{"sql":"select FILE_PATH_ from ibps_file_attachment WHERE id_ = (SELECT shou_quan_qian_z FROM t_mjjcbg WHERE id_ = '${id}')"}`
  42. let md5 = this.sig(sql) //加密, 获取md5密文
  43. let requestData = sql.slice(0, 1) + '"sig":"' + md5 + '",' + sql.slice(1) //结果拼接
  44. this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
  45. if (res.data.state == 200) {
  46. const data = res.data.variables.data[0]
  47. let url =
  48. http.apiHosp + data.FILE_PATH_
  49. console.log(url)
  50. this.pdfUrl = '/hybrid/html/web/viewer.html?file=' + encodeURIComponent(url)
  51. }
  52. })
  53. },
  54. /**
  55. * 下载情景
  56. */
  57. downloadPdfClick() {
  58. // 下载情景1:h5内嵌app,通过分享给朋友的方式进行下载
  59. if (this.from == 'app') {
  60. let item = http.apiHosp + 'h5/hybrid/html/web/pdf.html?shareUrl=' + encodeURIComponent(
  61. this
  62. .bgUrl) +
  63. '&shareTitle=PDF文件';
  64. window.open(item);
  65. return;
  66. } else if (this.from == 'wx wq') {
  67. // 下载情景2:h5内嵌微信小程序,从h5页面跳转到小程序页面后,然后通过调用小程序原生API进行下载
  68. // 注意: 先要引入微信jssdk [命令: npm install jweixin-module]
  69. // this.$wx.miniProgram.navigateTo({
  70. // url: '/pages/pdf/pdf_download?pdf='+ encodeURIComponent(this.bgUrl) //小程序页面链接
  71. // });
  72. }
  73. },
  74. sig(sql) {
  75. let rul = (sql.length + 9) * 12 * 3 + 168
  76. let salt = "JinYuanXinTong"
  77. return md5(rul + '' + salt)
  78. }
  79. }
  80. }
  81. </script>
  82. <style>
  83. </style>