You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

lr-bootstrap.js 5.3 KiB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /*
  2. * 版 本 ADMS V2 Learun智慧校园 敏捷 开发框架
  3. * Copyright (c) 2013-2018 北京泉江科技有限公司
  4. * 创建人:Learun智慧校园- 前端开发组
  5. * 日 期:2018.04.11
  6. * 描 述:框架开启js
  7. */
  8. (function (window) {
  9. "use strict";
  10. var plugins = [
  11. { name: 'jquery', ver: '1.10.2' },
  12. { name: 'cookie', ver: '1.0.0' },
  13. { name: 'md5', ver: '1.0.0' },
  14. { name: 'scrollbar', ver: '1.0.0' },
  15. { name: 'toastr', ver: '1.0.0' },
  16. { name: 'bootstrap', ver: '1.0.0' },
  17. { name: 'layer', ver: '1.0.0' },
  18. { name: 'jqprint', ver: '1.0.0' },
  19. { name: 'wdatePicker', ver: '1.0.0' },
  20. { name: 'syntaxhighlighter', ver: '1.0.0' },
  21. { name: 'fontAwesome', ver: '1.0.0' },
  22. { name: 'iconfont', ver:'1.0.0'},
  23. //'signalR',等即时好了再添加
  24. { name: 'common', ver: '1.0.0', isIframe: true },
  25. { name: 'base', ver: '1.0.0' },
  26. { name: 'tabs', ver: '1.0.0' },
  27. { name: 'date', ver: '1.0.0' },
  28. { name: 'validator-helper', ver: '1.0.0' },
  29. { name: 'lrlayer', ver: '1.0.0' },
  30. { name: 'ajax', ver: '1.0.0' },
  31. { name: 'clientdata', ver: '1.0.0' },
  32. { name: 'iframe', ver: '1.0.0', isIframe: true },
  33. { name: 'validator', ver: '1.0.0', isIframe: true },
  34. { name: 'layout', ver: '1.0.0', isIframe: true },
  35. { name: 'tree', ver: '1.0.0', isIframe: true },
  36. { name: 'select', ver: '1.0.0', isIframe: true },
  37. { name: 'formselect', ver: '1.0.0', isIframe: true },
  38. { name: 'layerselect', ver: '1.0.0', isIframe: true },
  39. { name: 'jfgrid', ver: '1.0.0', isIframe: true },
  40. { name: 'wizard', ver: '1.0.0', isIframe: true },
  41. { name: 'timeline', ver: '1.0.0', isIframe: true },
  42. { name: 'datepicker', ver: '1.0.0', isIframe: true },
  43. { name: 'uploader', ver: '1.0.0', isIframe: true },
  44. { name: 'excel', ver: '1.0.0', isIframe: true },
  45. { name: 'authorize', ver: '1.0.0', isIframe: true },
  46. { name: 'custmerform', ver: '1.0.0', isIframe: true },
  47. { name: 'workflow', ver: '1.0.0', isIframe: true },
  48. { name: 'form', ver: '1.0.0', isIframe: true },
  49. ];
  50. var iframePlugins = [];
  51. // 原生ajax方法实现
  52. function ajax() {
  53. var ajaxData = {
  54. type: arguments[0].type || "GET",
  55. url: arguments[0].url || "",
  56. async: arguments[0].async || "true",
  57. data: arguments[0].data || null,
  58. dataType: arguments[0].dataType || "text",
  59. contentType: arguments[0].contentType || "application/x-www-form-urlencoded",
  60. beforeSend: arguments[0].beforeSend || function () { },
  61. success: arguments[0].success || function () { },
  62. error: arguments[0].error || function () { }
  63. }
  64. ajaxData.beforeSend()
  65. var xhr = createxmlHttpRequest();
  66. xhr.responseType = ajaxData.dataType;
  67. xhr.open(ajaxData.type, ajaxData.url, ajaxData.async);
  68. xhr.setRequestHeader("Content-Type", ajaxData.contentType);
  69. xhr.send(convertData(ajaxData.data));
  70. xhr.onreadystatechange = function () {
  71. if (xhr.readyState == 4) {
  72. if (xhr.status == 200) {
  73. ajaxData.success(xhr.response)
  74. } else {
  75. ajaxData.error()
  76. }
  77. }
  78. }
  79. }
  80. function createxmlHttpRequest() {
  81. if (window.ActiveXObject) {
  82. return new ActiveXObject("Microsoft.XMLHTTP");
  83. } else if (window.XMLHttpRequest) {
  84. return new XMLHttpRequest();
  85. }
  86. }
  87. function convertData(data) {
  88. if (typeof data === 'object') {
  89. var convertResult = "";
  90. for (var c in data) {
  91. convertResult += c + "=" + data[c] + "&";
  92. }
  93. convertResult = convertResult.substring(0, convertResult.length - 1)
  94. return convertResult;
  95. } else {
  96. return data;
  97. }
  98. }
  99. // 浏览器本地存储方法
  100. var storage = {
  101. get: function (name) {
  102. if (localStorage) {
  103. return JSON.parse(localStorage.getItem(name)) || {};
  104. }
  105. else {
  106. return clientData[name] || {};
  107. }
  108. },
  109. set: function (name, data) {
  110. if (localStorage) {
  111. localStorage.setItem(name, JSON.stringify(data));
  112. }
  113. else {
  114. return clientData[name] = data;
  115. }
  116. }
  117. };
  118. // 加载框架需要的js和css代码
  119. var loadPlugins = [];
  120. function loadPlugin() {
  121. for (var i = 0, l = plugins.length; i < l; i++) {
  122. var item = plugins[i];
  123. var plugin = storage.get(item.name);
  124. if (plugin.ver != item.ver) {
  125. loadPlugins.push(item.name);
  126. }
  127. if (item.isIframe) {
  128. loadPlugins.push(item.name);
  129. }
  130. }
  131. // 从服务端加载js和css;
  132. ajax({
  133. url: "ajax.php",
  134. dataType: "json",
  135. data: { "plugins": String(loadPlugins) },
  136. success: function (msg) {
  137. console.log(msg);
  138. },
  139. error: function () {
  140. }
  141. });
  142. }
  143. })(window);