base.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. import crypto from "crypto";
  2. //个位数字补零
  3. export function numberB0(n) {
  4. return n < 10 ? "0" + n : n;
  5. }
  6. // 得到 2019-07-27 格式的日期数组,区间为7天
  7. export function getSevenDays() {
  8. var date = new Date();
  9. let nowDate =
  10. date.getFullYear() +
  11. "-" +
  12. numberB0(date.getMonth() + 1) +
  13. "-" +
  14. numberB0(date.getDate());
  15. let oldDate = new Date(date.setTime(date.getTime() - 3600 * 1000 * 24 * 6)).toJSON();
  16. let oldDates = oldDate.split("T");
  17. oldDate = oldDates[0];
  18. return [oldDate, nowDate];
  19. }
  20. // 同上,但不包括今日
  21. export function getSevenDays2() {
  22. var date = new Date();
  23. let nowDate = new Date(date.setTime(date.getTime() - 3600 * 1000 * 24 * 1)).toJSON();
  24. let nowDates = nowDate.split("T");
  25. nowDate = nowDates[0];
  26. let oldDate = new Date(date.setTime(date.getTime() - 3600 * 1000 * 24 * 6)).toJSON();
  27. let oldDates = oldDate.split("T");
  28. oldDate = oldDates[0];
  29. return [oldDate, nowDate];
  30. }
  31. /**
  32. * 将接口返回的日期(12344518976156)转换成(2019-10-10)
  33. * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(2019-10-10)
  34. * */
  35. export function dateChange(date) {
  36. let d = new Date(date);
  37. return d.getFullYear() + "-" + numberB0(d.getMonth() + 1) + "-" + numberB0(d.getDate());
  38. }
  39. /**
  40. * 将接口返回的日期(12344518976156)转换成(23:59:59)
  41. * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(23:59:59)
  42. * */
  43. export function monthChange(date) {
  44. let d = new Date(date);
  45. return d.getFullYear() + "-" + numberB0(d.getMonth() + 1);
  46. }
  47. /**
  48. * 将接口返回的日期(12344518976156)转换成(23:59:59)
  49. * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(23:59:59)
  50. * */
  51. export function timeChange(date) {
  52. let d = new Date(date);
  53. return (
  54. numberB0(d.getHours()) +
  55. ":" +
  56. numberB0(d.getMinutes()) +
  57. ":" +
  58. numberB0(d.getSeconds())
  59. );
  60. }
  61. export function timeHMChange(date) {
  62. let d = new Date(date);
  63. return numberB0(d.getHours()) + ":" + numberB0(d.getMinutes());
  64. }
  65. /**
  66. * 将接口返回的日期时间(12344518976156)转换成(2020-10-14 23:59:59)
  67. * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(2020-10-14 23:59:59)
  68. * */
  69. export function dateTimeChange(date) {
  70. if (date === "" || date === null) return date;
  71. let d = new Date(date);
  72. return (
  73. d.getFullYear() +
  74. "-" +
  75. numberB0(d.getMonth() + 1) +
  76. "-" +
  77. numberB0(d.getDate()) +
  78. " " +
  79. numberB0(d.getHours()) +
  80. ":" +
  81. numberB0(d.getMinutes()) +
  82. ":" +
  83. numberB0(d.getSeconds())
  84. );
  85. }
  86. /**
  87. * getNowTime - 获取当前日期时间:2019-10-10 10:10:20
  88. * axios.js在用
  89. * */
  90. export function getNowTime() {
  91. var date = new Date();
  92. return (
  93. date.getFullYear() +
  94. "-" +
  95. numberB0(date.getMonth() + 1) +
  96. "-" +
  97. numberB0(date.getDate()) +
  98. " " +
  99. numberB0(date.getHours()) +
  100. ":" +
  101. numberB0(date.getMinutes()) +
  102. ":" +
  103. numberB0(date.getSeconds())
  104. );
  105. }
  106. /**
  107. * 传入[开始日期, 结束日期]
  108. * 返回格式[2020-10-01 00:00:00, 2020-10-01 23:59:59]
  109. * tag: 1,补时分秒
  110. * 2,补分秒
  111. * 3,补秒
  112. * */
  113. export function dateQjChange(list, tag) {
  114. if (list[0] === "" || list[0] === null) return list;
  115. let d1 = new Date(list[0]);
  116. let d2 = new Date(list[1]);
  117. if (tag === undefined) {
  118. tag = 1;
  119. }
  120. switch (tag) {
  121. case 1:
  122. return [
  123. d1.getFullYear() +
  124. "-" +
  125. numberB0(d1.getMonth() + 1) +
  126. "-" +
  127. numberB0(d1.getDate()) +
  128. " 00:00:00",
  129. d2.getFullYear() +
  130. "-" +
  131. numberB0(d2.getMonth() + 1) +
  132. "-" +
  133. numberB0(d2.getDate()) +
  134. " 23:59:59",
  135. ];
  136. case 2:
  137. return [
  138. d1.getFullYear() +
  139. "-" +
  140. numberB0(d1.getMonth() + 1) +
  141. "-" +
  142. numberB0(d1.getDate()) +
  143. " " +
  144. numberB0(d1.getHours()) +
  145. ":00:00",
  146. d2.getFullYear() +
  147. "-" +
  148. numberB0(d2.getMonth() + 1) +
  149. "-" +
  150. numberB0(d2.getDate()) +
  151. " " +
  152. numberB0(d2.getHours()) +
  153. ":59:59",
  154. ];
  155. break;
  156. case 3:
  157. return [
  158. d1.getFullYear() +
  159. "-" +
  160. numberB0(d1.getMonth() + 1) +
  161. "-" +
  162. numberB0(d1.getDate()) +
  163. " " +
  164. numberB0(d1.getHours()) +
  165. ":" +
  166. numberB0(d1.getMinutes()) +
  167. ":00",
  168. d2.getFullYear() +
  169. "-" +
  170. numberB0(d2.getMonth() + 1) +
  171. "-" +
  172. numberB0(d2.getDate()) +
  173. " " +
  174. numberB0(d2.getHours()) +
  175. ":" +
  176. numberB0(d2.getMinutes()) +
  177. ":59",
  178. ];
  179. break;
  180. }
  181. }
  182. /**
  183. * getNowTime2 - 获取当前日期时间:2019年10月10日 10:10:20 星期一
  184. * 地图版在用
  185. * */
  186. export function getNowTime2() {
  187. var date = new Date();
  188. var weekday = new Array(7);
  189. weekday[0] = "星期日";
  190. weekday[1] = "星期一";
  191. weekday[2] = "星期二";
  192. weekday[3] = "星期三";
  193. weekday[4] = "星期四";
  194. weekday[5] = "星期五";
  195. weekday[6] = "星期六";
  196. var n = weekday[date.getDay()];
  197. return (
  198. date.getFullYear() +
  199. "年" +
  200. numberB0(date.getMonth() + 1) +
  201. "月" +
  202. numberB0(date.getDate()) +
  203. "日 " +
  204. numberB0(date.getHours()) +
  205. ":" +
  206. numberB0(date.getMinutes()) +
  207. ":" +
  208. numberB0(date.getSeconds()) +
  209. " " +
  210. n
  211. );
  212. }
  213. //金额分割符,4位分割(仅数字)
  214. export function getNewNum(nStr) {
  215. nStr += "";
  216. var x = nStr.split(".");
  217. var x1 = x[0];
  218. var x2 = x.length > 1 ? "." + x[1] : "";
  219. var rgx = /(\d+)(\d{4})/;
  220. while (rgx.test(x1)) {
  221. x1 = x1.replace(rgx, "$1" + "," + "$2");
  222. }
  223. return x1 + x2;
  224. }
  225. /**
  226. * 提供获取内容页面的高度,便于处理两种不同显示滚动条的兼容问题。默认页面高度自然,框架提供了滚动条无需处理;特殊情况,页面高度需保持一屏,内部页面的高度需要自己计算,因此提供该方法,便于开发者开发内部页面。
  227. * type:midd居中模式;full全屏模式;
  228. * */
  229. export function getPageHeight(type) {
  230. let h = document.documentElement.clientHeight;
  231. type = type === undefined ? "midd" : type;
  232. if (type === "midd") {
  233. h = h - 48;
  234. }
  235. return h;
  236. }
  237. /**
  238. * 提供获取内容页面的宽度。
  239. * type:midd居中模式;full全屏模式;
  240. * 全屏模式无需计算宽度是否小于1600
  241. * */
  242. export function getPageWidth(type) {
  243. let w = document.documentElement.clientWidth;
  244. type = type === undefined ? "midd" : type;
  245. if (type === "midd") {
  246. if (w < 1600) {
  247. return 1200;
  248. } else {
  249. return 1500;
  250. }
  251. } else {
  252. return w;
  253. }
  254. }
  255. /*
  256. * Ant和element-ui 级联相同bug - 底层存在children的时候会显示空模块的问题,此方法可以完成任意级别的递归找children。
  257. * data:原型数据
  258. * */
  259. export function cascaderBugRepair(data) {
  260. if (data == null) return false;
  261. let nums = data.length;
  262. for (var i = 0; i < nums; i++) {
  263. if (data[i].children.length <= 0) {
  264. delete data[i].children;
  265. } else {
  266. if (data[i].children.length > 0) {
  267. data[i].children = cascaderBugRepair(data[i].children);
  268. }
  269. }
  270. }
  271. return data;
  272. }
  273. /*
  274. * ant - 级联 - 显示名字为:宝通运维/总中心/分中心
  275. * 修改为:分中心
  276. * */
  277. export function cascaderShowName({ labels }) {
  278. return labels[labels.length - 1];
  279. }
  280. /*
  281. * MD5加密方法
  282. * */
  283. export function getMd5(data) {
  284. const md5 = crypto.createHash("md5");
  285. md5.update(data);
  286. let md5password = md5.digest("hex");
  287. return md5password.toString().toUpperCase();
  288. }
  289. export default {
  290. getMd5,
  291. cascaderBugRepair,
  292. cascaderShowName,
  293. getPageWidth,
  294. getPageHeight,
  295. getNewNum,
  296. dateChange,
  297. timeHMChange,
  298. timeChange,
  299. getNowTime,
  300. getNowTime2,
  301. dateQjChange,
  302. getSevenDays,
  303. getSevenDays2,
  304. dateTimeChange,
  305. numberB0,
  306. monthChange,
  307. };