uploadSign.html 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/html">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="renderer" content="webkit">
  7. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  8. <title>签名上传</title>
  9. <script src="cdn/sdk/sdk.js"></script>
  10. <link rel="stylesheet" href="cdn/sdk/sdk.css">
  11. <link rel="stylesheet" href="cdn/sdk/iconfont.css">
  12. </head>
  13. <body>
  14. <div id="amis"></div>
  15. </body>
  16. <script>
  17. function getQueryString(name) {
  18. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  19. var r = window.location.search.substr(1).match(reg);
  20. if (r != null) {
  21. return unescape(r[2]);
  22. }
  23. return null;
  24. }
  25. // 这样调用:
  26. const uuid = getQueryString("uuid");
  27. const userid = getQueryString("userid");
  28. const tenantId = getQueryString("tenantId");
  29. const amis = amisRequire("amis/embed");
  30. const files = [];
  31. function dataURLtoFile(dataurl, filename) {
  32. var arr = dataurl.split(","),
  33. mime = arr[0].match(/:(.*?);/)[1],
  34. bstr = atob(arr[1]),
  35. n = bstr.length,
  36. u8arr = new Uint8Array(n);
  37. while (n--) {
  38. u8arr[n] = bstr.charCodeAt(n);
  39. }
  40. return new File([u8arr], filename, { type: mime });
  41. }
  42. amis.embed("#amis", {
  43. type: "page",
  44. body: {
  45. type: "form",
  46. title: "签名上传",
  47. api: {
  48. method: "post",
  49. url: "/api/file/uploadFile/record",
  50. requestAdaptor: function(api, context) {
  51. let data = api.data;
  52. let file = dataURLtoFile(data.file, "file.jpg");
  53. return {
  54. ...api,
  55. data: {
  56. file: file,
  57. "serialNumber": uuid,
  58. "tenantId": tenantId
  59. }
  60. };
  61. }
  62. },
  63. body: [
  64. {
  65. type: "input-signature",
  66. name: "file"
  67. },
  68. {
  69. type: "image",
  70. name: "file"
  71. }
  72. ]
  73. }
  74. });
  75. </script>
  76. </html>