scene-path.js 4.6 KB

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