tools.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. export default {
  2. /**
  3. * @param {Array} rows
  4. * @param {Object} filter
  5. */
  6. find_rows(rows, filter, return_index = true) {
  7. for (let i = 0; i < rows.length; i ++) {
  8. let res = true
  9. let item = rows[i]
  10. for (let key in filter) {
  11. if (item[key] != filter[key]) res = false
  12. }
  13. if (res) return return_index ? index : item
  14. }
  15. return return_index ? -1 : null
  16. },
  17. //设置cookie
  18. setCookie: function (cname, cvalue, exdays) {
  19. var d = new Date();
  20. d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  21. var expires = "expires=" + d.toUTCString();
  22. document.cookie = cname + "=" + cvalue + "; " + expires;
  23. console.info(document.cookie);
  24. },
  25. //获取cookie
  26. getCookie: function (cname) {
  27. var name = cname + "=";
  28. var ca = document.cookie.split(';');
  29. for (var i = 0; i < ca.length; i++) {
  30. var c = ca[i];
  31. while (c.charAt(0) == ' ') c = c.substring(1);
  32. if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
  33. }
  34. return "";
  35. },
  36. //清除cookie
  37. clearCookie: function (cname) {
  38. this.setCookie(cname, "", -1);
  39. },
  40. getPlatform: function() {
  41. let platform = uni.getSystemInfoSync().platform;
  42. // #ifdef H5
  43. if (window.navigator && window.navigator.userAgent) {
  44. const ua = window.navigator.userAgent.toLowerCase()
  45. if (ua.match(/MicroMessenger/i) == 'micromessenger') {
  46. platform = 'WX-H5'
  47. } else platform = 'H5'
  48. }
  49. // #endif
  50. // #ifdef MP-WEIXIN
  51. platform = 'MP-WEIXIN'
  52. // #endif
  53. // #ifdef MP-ALIPAY
  54. platform = 'MP-ALIPAY'
  55. // #endif
  56. // #ifdef MP-BAIDU
  57. platform = 'MP-BAIDU'
  58. // #endif
  59. return platform
  60. },
  61. has_addon(name) {
  62. let appInfo = uni.getStorageSync('appInfo')
  63. if (!appInfo) return false
  64. if (!appInfo.plugins) return false
  65. if (appInfo.plugins.indexOf(name) != -1) return true
  66. return false
  67. },
  68. queryStringify(obj) {
  69. let res = []
  70. for (let k in obj) {
  71. res.push(`${k}=${obj[k]}`)
  72. }
  73. return res.join('&')
  74. },
  75. // #ifdef H5
  76. //获取指定form中的所有的<input>对象
  77. getElements(formId) {
  78. var form = document.getElementById(formId);
  79. var elements = new Array();
  80. var tagElements = form.getElementsByTagName('input');
  81. for (var j = 0; j < tagElements.length; j++){
  82. elements.push(tagElements[j]);
  83. }
  84. return elements;
  85. },
  86. //获取单个input中的【name,value】数组
  87. inputSelector(element) {
  88. if (element.checked)
  89. return [element.name, element.value];
  90. },
  91. input(element) {
  92. switch (element.type.toLowerCase()) {
  93. case 'submit':
  94. case 'hidden':
  95. case 'password':
  96. case 'text':
  97. return [element.name, element.value];
  98. case 'checkbox':
  99. case 'radio':
  100. return this.inputSelector(element);
  101. }
  102. return false;
  103. },
  104. //组合URL
  105. serializeElement(element) {
  106. var method = element.tagName.toLowerCase();
  107. var parameter = this.input(element);
  108. if (parameter) {
  109. var key = encodeURIComponent(parameter[0]);
  110. if (key.length == 0) return;
  111. if (parameter[1].constructor != Array)
  112. parameter[1] = [parameter[1]];
  113. var values = parameter[1];
  114. var results = [];
  115. for (var i=0; i<values.length; i++) {
  116. results.push(key + '=' + encodeURIComponent(values[i]));
  117. }
  118. return results.join('&');
  119. }
  120. },
  121. //调用方法
  122. serializeForm(formId) {
  123. console.log(123123);
  124. var elements = this.getElements(formId);
  125. var queryComponents = new Array();
  126. for (var i = 0; i < elements.length; i++) {
  127. var queryComponent = this.serializeElement(elements[i]);
  128. if (queryComponent)
  129. queryComponents.push(queryComponent);
  130. }
  131. return queryComponents.join('&');
  132. },
  133. // #endif
  134. }