scene-path_v2.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. function FormatterScenePath(data) {
  2. var str = '';
  3. if (data && data.length) {
  4. str += '<div class="path-box">';
  5. str += '<div id="scene-path-carousel" class="carousel slide" data-ride="carousel" data-pause="false" data-interval="30000" style="width: 100%; height: 100%;position: relative;">';
  6. var str1 = '';
  7. for (var i = 0; i < data.length; i++) {
  8. var v = data[i];
  9. var active = i === 0 ? "active" : "";
  10. str1 += '<div class="carousel-item {0}" style="height: 100%" data-id="{1}">{2}</div>'.format(active, v.i, FormatterSingleScenePath(v, false));
  11. }
  12. str += '<div class="carousel-inner">{0}</div>'.format(str1);
  13. str +=
  14. '<a class="carousel-control carousel-control-prev" href="#scene-path-carousel" role="button" data-slide="prev"><span class="carousel-control-prev-icon" aria-hidden="true"></span></a>';
  15. str +=
  16. '<a class="carousel-control carousel-control-next" href="#scene-path-carousel" role="button" data-slide="next"><span class="carousel-control-next-icon" aria-hidden="true"></span></a>';
  17. str += '</div>';
  18. str += '</div>';
  19. }
  20. return str;
  21. }
  22. function FormatterSingleScenePath(data, css) {
  23. var str = '';
  24. css = css === undefined ? true : css;
  25. if (css) {
  26. //$.metPageCss('/Content/Css/path2.min.css', 'path-css');
  27. str += '<div class="path-box">';
  28. }
  29. if (data) {
  30. //str += '<div class="round-box"><div class="line-v"></div><div class="round-node start-node">{0}</div></div>'.format(data.name);
  31. str += FormatterScenePathRound(data.ch);
  32. // str += '<div class="round-box"><div class="round-node">END</div></div>';
  33. }
  34. if (css) {
  35. str += '</div>';
  36. }
  37. return str;
  38. }
  39. function FormatterScenePathRound(data) {
  40. var str = '';
  41. if (data && data.length > 0) {
  42. data.forEach(function (v) {
  43. if (v.r) {
  44. var end = v.re ? "end" : "";
  45. str += '<div class="round-box {0} start">'.format(end);
  46. str += '<div class="line-v"></div>';
  47. var block = v.ch
  48. ? v.ch.find(function (v) {
  49. return v.r && v.bt === 1;
  50. })
  51. : undefined;
  52. //var name = block ? block.name + '(' + block.path + ')' : "";
  53. var flowInfo = block ? block.ch : undefined;
  54. str += '<div class="left sfb-box">';
  55. str += '<div class="sfb-title">客观情景块</div>';
  56. str += '<div class="sbf-body"> {0}</div>'.format(FormatterScenePathFlow(flowInfo));
  57. str += '</div>';
  58. str += '<div class="round-node">{0}</div>'.format(v.ri);
  59. block = v.ch
  60. ? v.ch.find(function (v) {
  61. return v.r && v.bt === 2;
  62. })
  63. : undefined;
  64. //name = block ? block.name + '(' + block.path + ')' : "";
  65. flowInfo = block ? block.ch : undefined;
  66. str += '<div class="right sfb-box">';
  67. str += '<div class="sfb-title">演化情景块</div>';
  68. str += '<div class="sbf-body"> {0}</div>'.format(FormatterScenePathFlow(flowInfo));
  69. str += '</div>';
  70. str += '</div>';
  71. }
  72. });
  73. }
  74. return str;
  75. }
  76. function FormatterScenePathFlow(data) {
  77. var str = '';
  78. if (data && data.length > 0) {
  79. data.forEach(function (v) {
  80. if (v.r) {
  81. var end = v.re ? "end" : "";
  82. str += '<div class="sf-box {0}">'.format(end);
  83. str += '<div class="sf-name">{0}</div>'.format(v.nm);
  84. var startChild = v.ch ? v.ch.find(function (v) {
  85. return v.r;
  86. }) : undefined;
  87. str += '<div class="fn-box">{0}</div>'.format(FormatterScenePathNode(startChild));
  88. str += '</div>';
  89. }
  90. });
  91. }
  92. return str;
  93. }
  94. function FormatterScenePathNode(data, arrow) {
  95. var str = '';
  96. if (data) {
  97. var end = data.re ? "end" : "";
  98. if (arrow) {
  99. str += '<div class="arrow {0}"></div>'.format(end);
  100. }
  101. str += '<div class="node {0}" title="情景节点"></div>'.format(end);
  102. var startChild = data.ch ? data.ch.find(function (v) {
  103. return v.r;
  104. }) : undefined;
  105. if (startChild) {
  106. str += FormatterScenePathNode(startChild, true);
  107. }
  108. }
  109. return str;
  110. }