人民医院前端

index.js 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. if (!Array.prototype.indexOf) {
  2. Array.prototype.indexOf = function(a) {
  3. var b = this.length >>> 0;
  4. var c = Number(arguments[1]) || 0;
  5. c = c < 0 ? Math.ceil(c) : Math.floor(c);
  6. if (c < 0) c += b;
  7. for (; c < b; c++) {
  8. if (c in this && this[c] === a) return c;
  9. }
  10. return -1;
  11. };
  12. }
  13. if (!Array.prototype.remove) {
  14. Array.prototype.remove = function(a) {
  15. var b = $.inArray(a, this);
  16. if (b > -1) {
  17. this.splice(b, 1);
  18. }
  19. };
  20. }
  21. if (!Object.getOwnPropertyNames) {
  22. Object.getOwnPropertyNames = function(a) {
  23. var b = [];
  24. for (var c in a) {
  25. b.push(c);
  26. }
  27. return b;
  28. };
  29. }
  30. var xmldata = {};
  31. $(function() {
  32. $.getJSON("../config/serverConfig.json", function(data) {
  33. if (data) {
  34. $.getJSON(data.IVR_API + "Home/GetIvrFileText", function(data) {
  35. if (data.state == "success") {
  36. if (data.data) {
  37. load(data.data);
  38. }
  39. }
  40. $("#myflow").myflow({
  41. basePath: "",
  42. allowStateMutiLine: true,
  43. restore: xmldata,
  44. tools: {
  45. save: function(a, b) {
  46. //console.log(a);
  47. $.post(
  48. data.IVR_API + "Home/SaveIvrFile",
  49. { text: btoa(encodeURI(a)) },
  50. function(data) {
  51. if (data.state == "success") {
  52. alert("����ɹ�");
  53. } else {
  54. alert("����ʧ��");
  55. }
  56. }
  57. );
  58. }
  59. }
  60. });
  61. });
  62. }
  63. });
  64. });
  65. function load(data) {
  66. xmldata = {
  67. paths: {},
  68. props: {
  69. props: {}
  70. },
  71. states: {}
  72. };
  73. $xml = $($.parseXML(data));
  74. var k = $xml.find("flow")[0];
  75. $(k.attributes).each(function(i, n) {
  76. xmldata.props.props[n.name] = {
  77. value: n.value
  78. };
  79. });
  80. var o = 0;
  81. $(k.childNodes).each(function(i, m) {
  82. if (m.attributes) {
  83. var d = $(m).attr("Pos");
  84. var e = {};
  85. var f = parseInt(o / 5),
  86. ys = o % 5;
  87. var g = {
  88. x: 200 + (f % 2 == 0 ? ys : 4 - ys) * 200,
  89. y: 50 + f * 150
  90. };
  91. $(m.attributes).each(function(i, l) {
  92. var a = l.name,
  93. value = l.value;
  94. if (a == "X") {
  95. g.x = value;
  96. } else if (a == "Y") {
  97. g.y = value;
  98. } else if ((a.indexOf("Pos") != -1 && a != "Pos") || a == "Next") {
  99. var b = "path" + d + "_" + value;
  100. if (xmldata.paths[b]) {
  101. xmldata.paths[b].props.text.value += "," + a;
  102. } else {
  103. var c = {
  104. from: "rect" + d,
  105. to: "rect" + value,
  106. text: {
  107. text: ""
  108. },
  109. dots: [],
  110. props: {
  111. text: {
  112. value: a
  113. }
  114. },
  115. textPos: {
  116. x: 0,
  117. y: -10
  118. }
  119. };
  120. xmldata.paths[b] = c;
  121. }
  122. } else if (a != "Pos" && a != "Name") {
  123. e[a] = {
  124. value: value
  125. };
  126. }
  127. });
  128. if (m.childNodes.length > 0) {
  129. if (m.firstElementChild) {
  130. var h = m.firstElementChild.tagName;
  131. var j = [];
  132. $(m.childNodes).each(function(i, p) {
  133. if (p.attributes) {
  134. var a = {};
  135. if (h != "Branch") {
  136. $(p.attributes).each(function(i, q) {
  137. a[q.name] = q.value;
  138. });
  139. } else {
  140. a["Value"] = $(p).attr("Value");
  141. if ($(p).attr("Pos")) {
  142. var b = "path" + d + "_" + $(p).attr("Pos");
  143. if (xmldata.paths.hasOwnProperty(b)) {
  144. xmldata.paths[b].props.text.value +=
  145. "," + $(p).attr("Value");
  146. } else {
  147. var c = {
  148. from: "rect" + d,
  149. to: "rect" + $(p).attr("Pos"),
  150. text: {
  151. text: $(p).attr("Value")
  152. },
  153. dots: [],
  154. props: {
  155. text: {
  156. value: $(p).attr("Value")
  157. }
  158. },
  159. textPos: {
  160. x: 0,
  161. y: -10
  162. }
  163. };
  164. xmldata.paths[b] = c;
  165. }
  166. }
  167. }
  168. j.push(a);
  169. }
  170. });
  171. e[h] = {
  172. value: JSON.stringify(j)
  173. };
  174. }
  175. }
  176. xmldata.states["rect" + d] = {
  177. props: e,
  178. text: {
  179. text: $(m).attr("Note")
  180. },
  181. type: $(m).attr("Name"),
  182. attr: g
  183. };
  184. o++;
  185. }
  186. });
  187. }