base.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. import crypto from "crypto";
  2. //个位数字补零
  3. export function numberB0(n) {
  4. return n < 10 ? "0" + n : n;
  5. }
  6. /**
  7. * 通过传入的时间戳获取所需的一个标准格式的日期
  8. * 参数:
  9. * time: 时间戳
  10. * tag: 0,今天;1,明天,-1,昨天
  11. * type: 输出格式,date:标准日期1999-01-10;datetime:标准日期时间:1999-01-10 10:10:10。
  12. * 返回:1999-01-10
  13. */
  14. export function getBzDate(time, tag = 0, type = "date") {
  15. let dateTime = new Date(time).getTime() + 3600*1000*24*tag;
  16. let newDate = new Date(dateTime);
  17. let result = newDate.getFullYear() + "-" + numberB0((newDate.getMonth() + 1)) + "-" + numberB0(newDate.getDate());
  18. switch(type){
  19. case "date":
  20. return result;
  21. break;
  22. case "datetime":
  23. return result + " " + numberB0(newDate.getHours()) + ":" + numberB0(newDate.getMinutes()) + ":" + numberB0(newDate.getSeconds());
  24. break;
  25. default:
  26. return result;
  27. }
  28. }
  29. /**
  30. * 传入[开始日期, 结束日期]
  31. * 返回格式[2020-10-01 00:00:00, 2020-10-01 23:59:59]
  32. * tag: 1,补时分秒
  33. * 2,补分秒
  34. * 3,补秒
  35. * */
  36. export function dateQjChange(list, tag) {
  37. if (list[0] === "" || list[0] === null) return list;
  38. let d1 = new Date(list[0]);
  39. let d2 = new Date(list[1]);
  40. if (tag === undefined) {
  41. tag = 1;
  42. }
  43. switch (tag) {
  44. case 1:
  45. return [
  46. d1.getFullYear() +
  47. "-" +
  48. numberB0(d1.getMonth() + 1) +
  49. "-" +
  50. numberB0(d1.getDate()) +
  51. " 00:00:00",
  52. d2.getFullYear() +
  53. "-" +
  54. numberB0(d2.getMonth() + 1) +
  55. "-" +
  56. numberB0(d2.getDate()) +
  57. " 23:59:59",
  58. ];
  59. case 2:
  60. return [
  61. d1.getFullYear() +
  62. "-" +
  63. numberB0(d1.getMonth() + 1) +
  64. "-" +
  65. numberB0(d1.getDate()) +
  66. " " +
  67. numberB0(d1.getHours()) +
  68. ":00:00",
  69. d2.getFullYear() +
  70. "-" +
  71. numberB0(d2.getMonth() + 1) +
  72. "-" +
  73. numberB0(d2.getDate()) +
  74. " " +
  75. numberB0(d2.getHours()) +
  76. ":59:59",
  77. ];
  78. break;
  79. case 3:
  80. return [
  81. d1.getFullYear() +
  82. "-" +
  83. numberB0(d1.getMonth() + 1) +
  84. "-" +
  85. numberB0(d1.getDate()) +
  86. " " +
  87. numberB0(d1.getHours()) +
  88. ":" +
  89. numberB0(d1.getMinutes()) +
  90. ":00",
  91. d2.getFullYear() +
  92. "-" +
  93. numberB0(d2.getMonth() + 1) +
  94. "-" +
  95. numberB0(d2.getDate()) +
  96. " " +
  97. numberB0(d2.getHours()) +
  98. ":" +
  99. numberB0(d2.getMinutes()) +
  100. ":59",
  101. ];
  102. break;
  103. }
  104. }
  105. //金额分割符,4位分割(仅数字)
  106. export function getNewNum(nStr) {
  107. nStr += "";
  108. var x = nStr.split(".");
  109. var x1 = x[0];
  110. var x2 = x.length > 1 ? "." + x[1] : "";
  111. var rgx = /(\d+)(\d{4})/;
  112. while (rgx.test(x1)) {
  113. x1 = x1.replace(rgx, "$1" + "," + "$2");
  114. }
  115. return x1 + x2;
  116. }
  117. /*
  118. * 对一个数字上取舍,如1234,取舍结果是2000
  119. * data: 数字
  120. * */
  121. export function numberCeil(num) {
  122. num = Math.ceil(num);
  123. let indexNum = (num+"").length;
  124. let result = 0;
  125. let w = 1;
  126. switch(indexNum) {
  127. case 1:
  128. w = 1;
  129. break;
  130. case 2:
  131. w = 10;
  132. break;
  133. case 3:
  134. w = 100;
  135. break;
  136. case 4:
  137. w = 1000;
  138. break;
  139. case 5:
  140. w = 10000;
  141. break;
  142. case 6:
  143. w = 100000;
  144. break;
  145. case 7:
  146. w = 1000000;
  147. break;
  148. case 8:
  149. w = 10000000;
  150. break;
  151. case 9:
  152. w = 100000000;
  153. break;
  154. case 10:
  155. w = 1000000000;
  156. break;
  157. case 11:
  158. w = 10000000000;
  159. break;
  160. case 12:
  161. w = 100000000000;
  162. break;
  163. case 13:
  164. w = 1000000000000;
  165. break;
  166. default:
  167. w = 10000000000000;
  168. }
  169. result = Math.ceil(num/w)*w;
  170. return result;
  171. }
  172. /*
  173. * Ant和element-ui 级联相同bug - 底层存在children的时候会显示空模块的问题,此方法可以完成任意级别的递归找children。
  174. * data:原型数据
  175. * */
  176. export function cascaderBugRepair(data) {
  177. if (data == null) return false;
  178. let nums = data.length;
  179. for (var i = 0; i < nums; i++) {
  180. if (data[i].children.length <= 0) {
  181. delete data[i].children;
  182. } else {
  183. if (data[i].children.length > 0) {
  184. data[i].children = cascaderBugRepair(data[i].children);
  185. }
  186. }
  187. }
  188. return data;
  189. }
  190. export default {
  191. numberCeil,
  192. getBzDate,
  193. cascaderBugRepair,
  194. getNewNum,
  195. dateQjChange,
  196. numberB0,
  197. };