report-path.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Organization Chart Plugin</title>
  6. <link rel="icon" href="img/logo.png">
  7. <link rel="stylesheet" href="css/font-awesome.min.css">
  8. <link rel="stylesheet" href="css/jquery.orgchart.css">
  9. <link rel="stylesheet" href="css/style.css">
  10. <style type="text/css">
  11. #edit-panel {
  12. text-align: center;
  13. position: relative;
  14. left: 10px;
  15. width: calc(100% - 40px);
  16. border-radius: 4px;
  17. float: left;
  18. margin-top: 10px;
  19. padding: 10px;
  20. color: #fff;
  21. background-color: #449d44;
  22. }
  23. #edit-panel * { font-size: 20px; }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="chart-container"></div>
  28. <div id="edit-panel" class="view-state">
  29. <input type="text" id="selected-node" placeholder="please select node" readonly="true">
  30. <button type="button" id="btn-report-path">draw report path</button>
  31. <button type="button" id="btn-reset">reset</button>
  32. </div>
  33. <script type="text/javascript" src="js/jquery.min.js"></script>
  34. <script type="text/javascript" src="js/jquery.orgchart.js"></script>
  35. <script type="text/javascript">
  36. $(function() {
  37. var datascource = {
  38. 'name': 'Lao Lao',
  39. 'title': 'general manager',
  40. 'children': [
  41. { 'name': 'Bo Miao', 'title': 'department manager',
  42. 'children': [
  43. { 'name': 'Li Jing', 'title': 'senior engineer' },
  44. { 'name': 'Li Xin', 'title': 'senior engineer',
  45. 'children': [
  46. { 'name': 'To To', 'title': 'engineer' },
  47. { 'name': 'Fei Fei', 'title': 'engineer' },
  48. { 'name': 'Xuan Xuan', 'title': 'engineer' }
  49. ]
  50. }
  51. ]
  52. },
  53. { 'name': 'Su Miao', 'title': 'department manager',
  54. 'children': [
  55. { 'name': 'Pang Pang', 'title': 'senior engineer' },
  56. { 'name': 'Hei Hei', 'title': 'senior engineer',
  57. 'children': [
  58. { 'name': 'Xiang Xiang', 'title': 'UE engineer' },
  59. { 'name': 'Dan Dan', 'title': 'engineer' },
  60. { 'name': 'Zai Zai', 'title': 'engineer' }
  61. ]
  62. }
  63. ]
  64. }
  65. ]
  66. };
  67. var oc = $('#chart-container').orgchart({
  68. 'data' : datascource,
  69. 'nodeContent': 'title'
  70. });
  71. oc.$chart.find('.node').on('click', function() {
  72. $('#selected-node').val($(this).children('.title').text());
  73. });
  74. $('#btn-report-path').on('click', function() {
  75. var $selected = $('#chart-container').find('.node.focused');
  76. if ($selected.length) {
  77. $selected.parents('.nodes').children(':has(.focused)').find('.node:first').each(function(index, superior) {
  78. if (!$(superior).find('.horizontalEdge:first').closest('table').parent().siblings().is('.hidden')) {
  79. $(superior).find('.horizontalEdge:first').trigger('click');
  80. }
  81. });
  82. $(this).prop('disabled', true);
  83. } else {
  84. alert('please select the node firstly');
  85. }
  86. });
  87. $('#btn-reset').on('click', function() {
  88. $('#chart-container').find('.hidden').removeClass('hidden')
  89. .end().find('.slide-up, .slide-right, .slide-left, .focused').removeClass('slide-up slide-right slide-left focused');
  90. $('#btn-report-path').prop('disabled', false);
  91. $('#selected-node').val('');
  92. });
  93. });
  94. </script>
  95. </body>
  96. </html>