index.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { GetLogo } from '@/api/app';
  2. import { setConfig } from './auth';
  3. /**
  4. * 格式化 Date
  5. * @param {Date} date
  6. * @returns {String} yyyy-mm-dd
  7. */
  8. export function formatDate(date) {
  9. if (arguments.length <= 0 || !date) {
  10. return null;
  11. }
  12. return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  13. }
  14. /**
  15. * @param {Object} time
  16. * @param {string} cFormat
  17. * @returns {string | null}
  18. */
  19. export function parseTime(time, cFormat) {
  20. if (arguments.length === 0 || !time) {
  21. return null;
  22. }
  23. const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';
  24. const formatObj = {
  25. y: time.getFullYear(),
  26. m: time.getMonth() + 1,
  27. d: time.getDate(),
  28. h: time.getHours(),
  29. i: time.getMinutes(),
  30. s: time.getSeconds(),
  31. a: time.getDay()
  32. };
  33. const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
  34. const value = formatObj[key];
  35. // Note: getDay() returns 0 on Sunday
  36. if (key === 'a') {
  37. return ['日', '一', '二', '三', '四', '五', '六'][value];
  38. }
  39. return value.toString().padStart(2, '0');
  40. });
  41. return time_str;
  42. }
  43. export function getConfigInformation() {
  44. return new Promise((resolve, reject) => {
  45. GetLogo()
  46. .then((res) => {
  47. setConfig(res);
  48. resolve(res);
  49. })
  50. .catch((err) => {
  51. reject(err);
  52. });
  53. });
  54. }
  55. // 对小于 10 的补零
  56. export function zeroFill(val) {
  57. if (val < 10) return `0${val}`;
  58. return val;
  59. }
  60. /**
  61. * 将秒转为时:分:秒格式
  62. * @param {Number|String} val 秒
  63. * @param {'normal'|'chinese'} type 格式类型
  64. * @returns {String} hh:MM:ss 小于1小时返回 MM:ss
  65. */
  66. export function secondFormatConversion(val, type = 'normal') {
  67. const seconds = parseInt(val); // 输入的秒数
  68. const hours = Math.floor(seconds / 3600); // 小时部分
  69. const minutes = Math.floor((seconds % 3600) / 60); // 分钟部分
  70. const remainingSeconds = seconds % 60; // 剩余的秒数
  71. // 使用零填充函数来格式化小时、分钟和秒
  72. const formattedHours = zeroFill(hours);
  73. const formattedMinutes = zeroFill(minutes);
  74. const formattedSeconds = zeroFill(remainingSeconds);
  75. // 根据时间范围返回不同的格式
  76. if (hours > 0) {
  77. if (type === 'chinese') {
  78. return `${hours}时${minutes}分${remainingSeconds}秒`;
  79. }
  80. return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;
  81. }
  82. if (type === 'chinese') {
  83. return `${minutes}分${remainingSeconds}秒`;
  84. }
  85. return `${formattedMinutes}:${formattedSeconds}`;
  86. }