test.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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 href="../../bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet" />
  8. <link rel="stylesheet" href="css/font-awesome.min.css">
  9. <link rel="stylesheet" href="css/jquery.orgchart.css">
  10. <link rel="stylesheet" href="css/style.css">
  11. <link href="../../select2/css/select2.min.css" rel="stylesheet" />
  12. <style type="text/css">
  13. #chart-container {
  14. /*text-align: left;*/
  15. height: 600px
  16. }
  17. * {
  18. margin: 0
  19. }
  20. dl {
  21. margin: 5px 0;
  22. }
  23. dl > dt, dl > dd {
  24. display: inline-block;
  25. }
  26. .orgchart {
  27. background-image: none;
  28. }
  29. .orgchart .lines .leftLine {
  30. border-left: 1px solid #678CEB;
  31. }
  32. .orgchart .lines .rightLine {
  33. border-right: 1px solid #678CEB;
  34. }
  35. .orgchart .lines .topLine {
  36. border-top: 2px solid #678CEB;
  37. }
  38. .orgchart .lines .downLine {
  39. background-color: #678CEB;
  40. }
  41. .orgchart .node {
  42. width: 200px;
  43. height: 150px;
  44. }
  45. .orgchart .node .title {
  46. text-align: center;
  47. font-size: 12px;
  48. font-weight: bold;
  49. height: 30px;
  50. line-height: 30px;
  51. overflow: hidden;
  52. text-overflow: ellipsis;
  53. white-space: nowrap;
  54. background-color: #678CEB;
  55. color: #fff;
  56. border-radius: 4px 4px 0 0;
  57. }
  58. .orgchart .node .content {
  59. height: calc(100% - 30px);
  60. border: 1px solid #678CEB;
  61. padding: 5px;
  62. }
  63. .orgchart.l2r .node, .orgchart.r2l .node {
  64. width: 150px;
  65. height: 250px;
  66. }
  67. .orgchart.l2r .node .title {
  68. text-align: center;
  69. font-size: 12px;
  70. font-weight: bold;
  71. height: 30px;
  72. line-height: 30px;
  73. overflow: hidden;
  74. text-overflow: ellipsis;
  75. white-space: nowrap;
  76. background-color: #678CEB;
  77. color: #fff;
  78. border-radius: 4px 4px 0 0;
  79. }
  80. .orgchart.l2r .node .title, .orgchart.l2r .node .content {
  81. transform: rotate(-90deg) translate(-90px, -90px) rotateY(180deg);
  82. transform-origin: bottom center;
  83. width: 240px;
  84. }
  85. .orgchart.l2r .node .content {
  86. transform-origin: top center;
  87. height: 100px;
  88. }
  89. </style>
  90. </head>
  91. <body>
  92. <div id="chart-container"></div>
  93. <select>
  94. <option value="value">text</option>
  95. </select>
  96. <script type="text/javascript" src="js/jquery.min.js"></script>
  97. <script type="text/javascript" src="js/jquery.orgchart.js"></script>
  98. <script src="../../select2/js/select2.min.js"></script>
  99. <script type="text/javascript">
  100. var data =
  101. [{"Node":1,"No":"1-1","ParentNo":"0","ObjEvents":"001","GoodScore":"0","PoorScore":"0"},{"Node":2,"No":"2-1","ParentNo":"1-1","ObjEvents":"011","PoorScore":"0","GoodScore":"30"},{"Node":2,"No":"2-2","ParentNo":"1-1","ObjEvents":"012","PoorScore":"30","GoodScore":"70"},{"Node":2,"No":"2-3","ParentNo":"1-1","ObjEvents":"013","PoorScore":"70","GoodScore":"100"},{"Node":3,"No":"3-1","ParentNo":"2-1","ObjEvents":"021","PoorScore":"0","GoodScore":"30"},{"Node":3,"No":"3-2","ParentNo":"2-1","ObjEvents":"022","PoorScore":"30","GoodScore":"70"},{"Node":3,"No":"3-3","ParentNo":"2-1","ObjEvents":"023","PoorScore":"70","GoodScore":"100"},{"Node":3,"No":"3-4","ParentNo":"2-2","ObjEvents":"024","PoorScore":"0","GoodScore":"30"},{"Node":3,"No":"3-5","ParentNo":"2-2","ObjEvents":"025","PoorScore":"30","GoodScore":"70"},{"Node":3,"No":"3-6","ParentNo":"2-2","ObjEvents":"026","PoorScore":"70","GoodScore":"100"},{"Node":3,"No":"3-7","ParentNo":"2-3","ObjEvents":"027","PoorScore":"0","GoodScore":"30"},{"Node":3,"No":"3-8","ParentNo":"2-3","ObjEvents":"028","PoorScore":"30","GoodScore":"70"},{"Node":3,"No":"3-9","ParentNo":"2-3","ObjEvents":"029","PoorScore":"70","GoodScore":"100"}];
  102. function GetData(data) {
  103. var node = {};
  104. $.each(data,function(i, v) {
  105. if (v["Node"]===1) {
  106. node = v;
  107. return false;
  108. }
  109. });
  110. node["children"] = GetChilds(node["No"], data);
  111. console.log(node);
  112. return node;
  113. }
  114. function GetChilds(parentNo, data) {
  115. var nodes = [];
  116. $.each(data, function (i, v) {
  117. if (v["ParentNo"] === parentNo) {
  118. v["children"] = GetChilds(v["No"], data);
  119. nodes.push(v);
  120. }
  121. });
  122. return nodes;
  123. }
  124. $(function () {
  125. var datascource = GetData(data);
  126. $('#chart-container').orgchart({
  127. 'data': datascource,
  128. 'pan': true,
  129. 'zoom': true,
  130. 'nodeContent': '',
  131. 'nodeTitle': 'No',
  132. //'direction': 'l2r',
  133. 'nodeId': 'No',
  134. 'parentNodeSymbol':'iconfont icon-start',
  135. //'toggleSiblingsResp':true
  136. 'nodeTemplate':FormateNode
  137. });
  138. $("select").select2();
  139. });
  140. function FormateNode(data){
  141. var str = '<div class="title"><div class="tool-box"></div>' + data.No +'</div><div class="content">';
  142. //str += '<dl><dt>事件:</dt><dd>' + data.ObjEvents + '</dd></dl>';
  143. str +=
  144. '<div class="form-group-sm">' +
  145. '<label class="iwb-label" for="" style="float:left">选择事件</label>' +
  146. '<select style="width:100%"><option value="value">text</option><option value="value">text</option></select>'+
  147. '</div>';
  148. str+='</div>';
  149. return str;
  150. }
  151. </script>
  152. </body>
  153. </html>