scene-path.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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));
  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) {
  24. var str = '';
  25. if (data) {
  26. str = '<div class="round-box"><div class="line-v"></div><div class="round-node start-node">{0}</div></div>'.format(data.nm);
  27. str += FormatterScenePathRound(data.ch);
  28. str += '<div class="round-box"><div class="round-node">END</div></div>';
  29. }
  30. return str;
  31. }
  32. function FormatterScenePathRound(data) {
  33. var str = '';
  34. if (data && data.length > 0) {
  35. data.forEach(function (v) {
  36. if (v.r) {
  37. var end = v.re ? "end" : "";
  38. str += '<div class="round-box {0} start">'.format(end);
  39. str += '<div class="line-v"></div>';
  40. var block = v.ch
  41. ? v.ch.find(function (v) {
  42. return v.r && v.bt === 1;
  43. })
  44. : undefined;
  45. //var name = block ? block.name + '(' + block.path + ')' : "";
  46. var flowInfo = block ? block.ch : undefined;
  47. str += '<div class="left sfb-box">';
  48. str += '<div class="sfb-title">客观情景块</div>';
  49. str += '<div class="sbf-body"> {0}</div>'.format(FormatterScenePathFlow(flowInfo));
  50. str += '</div>';
  51. str += '<div class="round-node">{0}</div>'.format(v.ri);
  52. block = v.ch
  53. ? v.ch.find(function (v) {
  54. return v.r && v.bt === 2;
  55. })
  56. : undefined;
  57. //name = block ? block.name + '(' + block.path + ')' : "";
  58. flowInfo = block ? block.ch : undefined;
  59. str += '<div class="right sfb-box">';
  60. str += '<div class="sfb-title">演化情景块</div>';
  61. str += '<div class="sbf-body"> {0}</div>'.format(FormatterScenePathFlow(flowInfo));
  62. str += '</div>';
  63. str += '</div>';
  64. }
  65. });
  66. }
  67. return str;
  68. }
  69. function FormatterScenePathFlow(data) {
  70. var str = '';
  71. if (data && data.length > 0) {
  72. data.forEach(function (v) {
  73. if (v.r) {
  74. var end = v.re ? "end" : "";
  75. str += '<div class="sf-box {0}">'.format(end);
  76. str += '<div class="sf-name">{0}</div>'.format(v.nm);
  77. var startChild = v.ch ? v.ch.find(function (v) {
  78. return v.r;
  79. }) : undefined;
  80. str += '<div class="fn-box">{0}</div>'.format(FormatterScenePathNode(startChild));
  81. str += '</div>';
  82. }
  83. });
  84. }
  85. return str;
  86. }
  87. function FormatterScenePathNode(data) {
  88. var str = '';
  89. if (data) {
  90. var end = data.re ? "end" : "";
  91. str += '<div class="node {0}"></div>'.format(end);
  92. var startChild = data.ch ? data.ch.find(function (v) {
  93. return v.r;
  94. }) : undefined;
  95. if (startChild) {
  96. str += FormatterScenePathNode(startChild);
  97. }
  98. }
  99. return str;
  100. }