jianli.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. $(document).ready(function() {
  2. var recordId = requestParam.recordId;
  3. var hrefStr = requestParam.hrefStr;
  4. var pdfContainer = document.getElementById("pdf-container");
  5. pdfContainer.style.width = '100%';
  6. pdfContainer.style.height = '100vh';
  7. pdfContainer.style.overflow = 'hidden';
  8. pdfContainer.style.position = 'relative';
  9. // 添加缩放按钮和样式
  10. var zoomControls = document.createElement('div');
  11. zoomControls.style.position = 'absolute';
  12. zoomControls.style.top = '10px';
  13. zoomControls.style.right = '10px';
  14. zoomControls.style.zIndex = '1000';
  15. var zoomInBtn = document.createElement('button');
  16. zoomInBtn.innerText = '+';
  17. zoomInBtn.style.fontSize = '24px';
  18. zoomInBtn.style.margin = '0 5px';
  19. var zoomOutBtn = document.createElement('button');
  20. zoomOutBtn.innerText = '-';
  21. zoomOutBtn.style.fontSize = '24px';
  22. zoomOutBtn.style.margin = '0 5px';
  23. zoomControls.appendChild(zoomInBtn);
  24. zoomControls.appendChild(zoomOutBtn);
  25. pdfContainer.appendChild(zoomControls);
  26. var scale = 1.5;
  27. var startX, startY, currentX, currentY, initialDX, initialDY;
  28. var isDragging = false;
  29. var numPages;
  30. var pdf;
  31. mbos.eas.invokeScript({
  32. name: "commonOSFservice",
  33. param: ['getJobRegistrationPackage', JSON.stringify({ recordId: recordId })],
  34. success: function(res) {
  35. var base64Data = res.msg;
  36. var pdfData = atob(base64Data);
  37. var loadingTask = pdfjsLib.getDocument({data: pdfData});
  38. loadingTask.promise.then(function(pdfDoc) {
  39. pdf = pdfDoc;
  40. numPages = pdf.numPages;
  41. renderAllPages(scale, true);
  42. zoomInBtn.addEventListener('click', function() {
  43. scale += 0.1;
  44. renderAllPages(scale, false);
  45. });
  46. zoomOutBtn.addEventListener('click', function() {
  47. scale = Math.max(0.5, scale - 0.1);
  48. renderAllPages(scale, false);
  49. });
  50. }, function(reason) {
  51. console.error(reason);
  52. });
  53. },
  54. error: function(e) {
  55. console.log(e);
  56. }
  57. });
  58. function renderAllPages(newScale, isFirst) {
  59. pdfContainer.innerHTML = '';
  60. pdfContainer.appendChild(zoomControls);
  61. for (var i = 1; i <= numPages; i++) {
  62. pdf.getPage(i).then(function(page) {
  63. var viewport = page.getViewport({ scale: newScale });
  64. var canvas = document.createElement('canvas');
  65. var context = canvas.getContext('2d');
  66. canvas.id = 'pdf-canvas-' + page.pageNumber;
  67. canvas.width = viewport.width;
  68. canvas.height = viewport.height;
  69. canvas.style.position = 'absolute';
  70. canvas.style.left = '0';
  71. canvas.style.top = '0';
  72. if (isFirst) {
  73. canvas.style.width = '100%';
  74. canvas.style.height = '100%';
  75. }
  76. pdfContainer.appendChild(canvas);
  77. canvas.addEventListener('touchstart', function(e) {
  78. isDragging = true;
  79. startX = e.touches[0].clientX;
  80. startY = e.touches[0].clientY;
  81. initialDX = canvas.offsetLeft;
  82. initialDY = canvas.offsetTop;
  83. });
  84. canvas.addEventListener('touchmove', function(e) {
  85. if (isDragging) {
  86. currentX = e.touches[0].clientX;
  87. currentY = e.touches[0].clientY;
  88. var dx = currentX - startX;
  89. var dy = currentY - startY;
  90. canvas.style.left = (initialDX + dx) + 'px';
  91. canvas.style.top = (initialDY + dy) + 'px';
  92. }
  93. });
  94. canvas.addEventListener('touchend', function() {
  95. isDragging = false;
  96. });
  97. var renderContext = {
  98. canvasContext: context,
  99. viewport: viewport
  100. };
  101. page.render(renderContext);
  102. });
  103. }
  104. }
  105. if (!hrefStr) {
  106. $('#myButton').hide();
  107. }
  108. $('#myButton').click(function() {
  109. window.location.href = hrefStr + "/judge_page?recordId=" + encodeURIComponent(recordId);
  110. });
  111. });