util.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. const QQMapWX = require('../common/component/mapSDK/qqmap-wx-jssdk.min.js');
  2. var regChar = { //非特殊字符作为值
  3. '?':'qweqwqjoijweq',
  4. '&':'asdauihdasfsdas',
  5. '=':'fqwebwfubwefqwf'
  6. }
  7. function formatTime(date) {
  8. var year = date.getFullYear();
  9. var month = date.getMonth() + 1;
  10. var day = date.getDate();
  11. var hour = date.getHours();
  12. var minute = date.getMinutes();
  13. var second = date.getSeconds();
  14. return (
  15. [year, month, day].map(formatNumber).join('/') +
  16. ' ' +
  17. [hour, minute, second].map(formatNumber).join(':')
  18. );
  19. }
  20. function formatTimeTxt(year, month, day) {
  21. return [year, month, day].map(formatNumber).join('');
  22. }
  23. function formatNumber(n) {
  24. n = n.toString();
  25. return n[1] ? n : '0' + n;
  26. }
  27. function makeNumToHour(n) {
  28. return formatNumber(n) + ':00';
  29. }
  30. function makeHourToNum(t) {
  31. return parseInt(t.toString().split(':')[0]);
  32. }
  33. function makeNumToDay(n) {
  34. return '周' + '日一二三四五六'[n];
  35. }
  36. function makeNumToFullTimeArr(n) {
  37. // 20171010
  38. n = n.toString();
  39. let year = n.substring(0, 4);
  40. let month = n.substring(4, 6);
  41. let date = n.substring(6, 8);
  42. return [year, month, date];
  43. }
  44. function isPhoneNum(txt) {
  45. return /^1[34578]\d{9}$/.test(txt);
  46. }
  47. function arrUniqueFilter(arr) {
  48. return arr.filter((item, pos, array) => array.indexOf(item) === pos);
  49. }
  50. function bindInput(event) {
  51. var obj = {},
  52. key = event.target.dataset['key'];
  53. // Toast.showToast('success', event.detail.value);
  54. obj[key] = event.detail.value;
  55. this.setData(obj);
  56. // console.log(obj[key])
  57. }
  58. function encodeParam(str){
  59. var encode = [];
  60. var tempSwitch = false
  61. for (let i = 0; i < str.length; i++) {
  62. Object.keys(regChar).forEach(function(key){
  63. if (str.charAt(i) === key){
  64. encode.push(regChar[key]);
  65. tempSwitch = true
  66. return;
  67. }
  68. })
  69. if (!tempSwitch){
  70. encode.push(str.charAt(i))
  71. }
  72. tempSwitch = false
  73. }
  74. return encode.join('')
  75. }
  76. function decodeParam(str) {
  77. var keyReg = ''
  78. Object.keys(regChar).forEach(function (key) {
  79. keyReg = new RegExp(regChar[key],'g')
  80. // console.log(regChar[key])
  81. str = str.replace(keyReg, key)
  82. })
  83. return str
  84. }
  85. function removeArrItem(arr, item) {
  86. var newarr = [];
  87. for (var i = 0; i < arr.length; i++) {
  88. if (arr[i] != item) {
  89. newarr.push(arr[i]);
  90. }
  91. }
  92. return newarr;
  93. }
  94. class Timer {
  95. constructor({ max, delay = 1000 }) {
  96. console.log(max, delay);
  97. this.timer = null;
  98. this.max = max;
  99. this.delay = delay;
  100. }
  101. run(cb) {
  102. this.timer = setInterval(() => {
  103. if (this.max >= 0) {
  104. cb && cb(this.max--);
  105. } else {
  106. this.cancel();
  107. }
  108. }, this.delay);
  109. }
  110. cancel() {
  111. this.timer && clearInterval(this.timer);
  112. }
  113. }
  114. class Toast {
  115. constructor() {
  116. // this.successImage = 'images/icon-success.png';
  117. // this.warnImage = '../../../images/icon-warn.png';
  118. // this.loadingImage = 'images/icon-loading.png';
  119. this.image = {
  120. success: '../../../images/icon-success.png',
  121. warn: '../../../images/icon-warn.png',
  122. loading: '../../../images/icon-loading.png'
  123. };
  124. }
  125. showToast(type = 'success', title, success = () => { }) {
  126. let imgUrl = '';
  127. let t = '';
  128. switch (type) {
  129. case 'success':
  130. case 'tip':
  131. wx.showModal({
  132. title: '提示',
  133. content: title,
  134. showCancel: false,
  135. confirmColor: '#e83828',
  136. success
  137. });
  138. break;
  139. case 'warn':
  140. // imgUrl = this.warnImage;
  141. t = type == 'success' ? '成功' : '提示';
  142. wx.showModal({
  143. title: t,
  144. content: title,
  145. showCancel: false,
  146. confirmColor: '#e83828',
  147. success
  148. });
  149. break;
  150. case 'loading':
  151. wx.showToast({
  152. //title: '手机号码输入错误',
  153. title: title || '加载中...',
  154. icon: type,
  155. mask: true
  156. });
  157. break;
  158. }
  159. }
  160. showToast2(type = 'success', title = '') {
  161. switch (type) {
  162. case 'loading':
  163. wx.showLoading({
  164. mask: true,
  165. title: title || '加载中...'
  166. });
  167. break;
  168. case 'success':
  169. case 'warn':
  170. default:
  171. wx.showToast({
  172. //title: '手机号码输入错误',
  173. title: title,
  174. icon: type,
  175. image: this.image[type],
  176. mask: true
  177. });
  178. break;
  179. }
  180. }
  181. hideLoading() {
  182. wx.hideLoading();
  183. }
  184. }
  185. module.exports = {
  186. formatTime,
  187. removeArrItem,
  188. formatTimeTxt,
  189. formatNumber,
  190. isPhoneNum,
  191. makeNumToHour,
  192. makeHourToNum,
  193. makeNumToDay,
  194. makeNumToFullTimeArr,
  195. arrUniqueFilter,
  196. Timer,
  197. bindInput,
  198. encodeParam,
  199. decodeParam,
  200. Toast: new Toast(),
  201. qqmapsdk: new QQMapWX({
  202. key: '2Z3BZ-H7EWO-F4YWX-SG5JF-2VOK2-S2FUB'
  203. })
  204. };