utils.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. function getRouter() {
  2. let pages = getCurrentPages(); //获取加载的页面
  3. let currentPage = pages[pages.length - 1]; //获取当前页面的对象
  4. let url = currentPage.route; //当前页面url
  5. uni.setStorageSync('url', `${url}`)
  6. let options = currentPage.options;
  7. console.log("url: " + url);
  8. console.log("options: " + options);
  9. if (options) {
  10. let urlParams = url + '?'
  11. for (let key in options) {
  12. let value = options[key]
  13. urlParams += key + '=' + value + '&'
  14. }
  15. urlParams = urlParams.substring(0, urlParams.length - 1); //去掉末尾的&
  16. uni.setStorageSync('url', `${urlParams}`)
  17. }
  18. }
  19. //解析链接
  20. function getQueryString(url, name) {
  21. // console.log("url = " + url);
  22. // console.log("name = " + name);
  23. var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i');
  24. var r = url.substr(1).match(reg);
  25. if (r != null) {
  26. // console.log("r = " + r)
  27. // console.log("r[2] = " + r[2])
  28. return r[2];
  29. }
  30. return null;
  31. }
  32. //
  33. function money(value) {
  34. if (typeof value !== 'string') {
  35. value = String(value)
  36. }
  37. if (!value) return '0.0'
  38. // const intPart = Number(value).toFixed(0) // 获取整数部分
  39. const intPart = value.split('.')[0]
  40. const intPartFormat = intPart
  41. // .toString()
  42. .replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断
  43. let floatPart = '.0' // 预定义小数部分
  44. const value2Array = value.split('.')
  45. // =2表示数据有小数位
  46. if (value2Array.length === 2) {
  47. floatPart = value2Array[1].toString() // 拿到小数部分
  48. if (floatPart.length === 1) {
  49. // 补0,
  50. return intPartFormat + '.' + floatPart
  51. } else {
  52. return intPartFormat + '.' + floatPart[0]
  53. }
  54. } else {
  55. return intPartFormat + floatPart
  56. }
  57. }
  58. function fansview(num) {
  59. num = parseInt(num)
  60. if (num >= 100000000) {
  61. var t1 = num / 100000000
  62. var t2 = num % 100000000
  63. if (t2 !== 0) {
  64. return String(t1).substring(0, String(t1).indexOf('.') + 2) + '亿'
  65. } else return String(t1) + '.0亿'
  66. } else if (num >= 10000) {
  67. var t1 = num / 10000
  68. var t2 = num % 10000
  69. if (t2 !== 0) {
  70. // return String(t1).match(/^\d+(?:\.\d{1,2})?/) + "万"
  71. return String(t1).substring(0, String(t1).indexOf('.') + 2) + '万'
  72. } else return String(t1) + '.0万'
  73. } else {
  74. num = String(num)
  75. }
  76. return num
  77. }
  78. function getDaysBetweenDates(date1, date2) {
  79. // 将日期转为时间戳,单位为毫秒
  80. var timestamp1 = Date.parse(date1);
  81. var timestamp2 = Date.parse(date2);
  82. // 计算时间戳之差
  83. var timeDiff = (timestamp2 - timestamp1);
  84. // 将时间戳之差转为天数并返回
  85. var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
  86. return diffDays;
  87. }
  88. //截至时间精确到小时
  89. function getDaysAndHoursBetweenDates(date1, date2) {
  90. // 将两个日期转换为毫秒数
  91. var time1 = date1.getTime();
  92. var time2 = date2.getTime();
  93. // 计算两个日期之间的毫秒数差
  94. var timeDiff = time2 - time1;
  95. // 计算总小时数
  96. var totalHours = Math.ceil(timeDiff / (1000 * 3600));
  97. // 计算天数
  98. var days = Math.floor(totalHours / 24);
  99. // 计算剩余小时数
  100. var hours = totalHours % 24;
  101. // 返回包含天数和小时数的对象
  102. return {
  103. days: days,
  104. hours: hours
  105. };
  106. }
  107. module.exports = {
  108. getRouter,
  109. getQueryString,
  110. money,
  111. fansview,
  112. getDaysBetweenDates,
  113. getDaysAndHoursBetweenDates,
  114. }