index.html 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Treemap - Zentao</title>
  8. <link rel="stylesheet" href="../../../theme/zui/css/min.css" />
  9. <script src="../../jquery/lib.js"></script>
  10. <script src="../min.js"></script>
  11. <script src="./min.js"></script>
  12. <link rel="stylesheet" href="./min.css" />
  13. <style>
  14. #treemap,body,html {width: 100%; height: 100%; background: none;}
  15. #treemap .treemap-node-fold-icon {font-size: 12px;}
  16. #treemap .treemap-node-fold-icon:before {content: '\e6f1'; left: 0;}
  17. #treemap .treemap-node.collapsed .treemap-node-fold-icon:before {content: '\e6f2'}
  18. </style>
  19. </head>
  20. <body>
  21. <div id="treemap"></div>
  22. <script>
  23. window.parent.$(function()
  24. {
  25. $('#treemap').treemap($.extend({}, window.parent[$.getSearchParam('options')]));
  26. const treemap = $('#treemap').data('zui.treemap');
  27. window.parent.getTreemap = function() {return treemap;};
  28. if(treemap.options.onReady) treemap.options.onReady(treemap, window);
  29. $('body').on('click', () => window.parent.$(window.frameElement).trigger('click'));
  30. if(treemap.options.onContextMenu)
  31. {
  32. treemap.$nodes.on('contextmenu', function(e)
  33. {
  34. const $node = $(e.target).closest('.treemap-node');
  35. const node = $node.data('node');
  36. const frameBounding = window.frameElement.getBoundingClientRect();
  37. const clientX = e.clientX + frameBounding.left;
  38. const clientY = e.clientY + frameBounding.top;
  39. let result = treemap.options.onContextMenu({node: node, clientX: clientX, clientY: clientY, treemap: treemap, event: e});
  40. if(!result) return;
  41. if(Array.isArray(result)) result = {items: result};
  42. window.parent.zui.ContextMenu.show($.extend(
  43. {
  44. element: {getBoundingClientRect: () => ({x: clientX, y: clientY, width: 0, height: 0, left: clientX, top: clientY})},
  45. }, result));
  46. e.preventDefault();
  47. return false;
  48. });
  49. }
  50. });
  51. </script>
  52. </body>
  53. </html>