index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import { isPlainObject, isFunction } from "../utils/validate";
  2. export function messageToHtml() {}
  3. export function messageToText() {}
  4. /**
  5. * 使用某个组件上的作用域插槽
  6. * @param {VueComponent} inject
  7. * @param {String} slotName
  8. * @param {Node} defaultElement
  9. * @param {Object} props
  10. */
  11. export function useScopedSlot(slot, def, props) {
  12. return slot ? slot(props) : def;
  13. }
  14. export function padZero(val) {
  15. return val < 10 ? `0${val}` : val;
  16. }
  17. export function hoursTimeFormat(t) {
  18. const date = new Date(t);
  19. const nowDate = new Date();
  20. const Y = t => {
  21. return t.getFullYear();
  22. };
  23. const MD = t => {
  24. return `${t.getMonth() + 1}-${t.getDate()}`;
  25. };
  26. const dateY = Y(date);
  27. const nowDateY = Y(nowDate);
  28. let format;
  29. if (dateY !== nowDateY) {
  30. format = "y年m月d日 h:i";
  31. } else if (`${dateY}-${MD(date)}` === `${nowDateY}-${MD(nowDate)}`) {
  32. format = "h:i";
  33. } else {
  34. format = "m月d日 h:i";
  35. }
  36. return timeFormat(t, format);
  37. }
  38. export function timeFormat(t, format) {
  39. if (!format) format = "y-m-d h:i:s";
  40. if (t) t = new Date(t);
  41. else t = new Date();
  42. const formatArr = [
  43. t.getFullYear().toString(),
  44. padZero((t.getMonth() + 1).toString()),
  45. padZero(t.getDate().toString()),
  46. padZero(t.getHours().toString()),
  47. padZero(t.getMinutes().toString()),
  48. padZero(t.getSeconds().toString()),
  49. ];
  50. const reg = "ymdhis";
  51. for (let i = 0; i < formatArr.length; i++) {
  52. format = format.replace(reg.charAt(i), formatArr[i]);
  53. }
  54. return format;
  55. }
  56. export function funCall(event, callback) {
  57. if (isFunction(event)) {
  58. event(() => {
  59. callback();
  60. });
  61. } else {
  62. callback();
  63. }
  64. }
  65. /**
  66. * 获取数组相交的值组成新数组
  67. * @param {Array} a
  68. * @param {Array} b
  69. */
  70. export function arrayIntersect(a, b) {
  71. return a.filter(x => b.includes(x));
  72. }
  73. //清除字符串内的所有HTML标签
  74. export function clearHtml(str) {
  75. return str.replace(/<.*?>/gi, "");
  76. }
  77. //清除字符串内的所有HTML标签,除了IMG
  78. export function clearHtmlExcludeImg(str) {
  79. return str.replace(/<(?!img).*?>/gi, "");
  80. }
  81. export function error(text) {
  82. throw new Error(text);
  83. }
  84. export function cloneDeep(obj) {
  85. const newobj = { ...obj };
  86. for (const key in newobj) {
  87. const val = newobj[key];
  88. if (isPlainObject(val)) {
  89. newobj[key] = cloneDeep(val);
  90. }
  91. }
  92. return newobj;
  93. }
  94. export function mergeDeep(o1, o2) {
  95. for (const key in o2) {
  96. if (isPlainObject(o1[key])) {
  97. o1[key] = mergeDeep(o1[key], o2[key]);
  98. } else {
  99. o1[key] = o2[key];
  100. }
  101. }
  102. return o1;
  103. }
  104. export function formatByte(value) {
  105. if (null == value || value == "") {
  106. return "0 Bytes";
  107. }
  108. var unitArr = ["B", "K", "M", "G", "T", "P", "E", "Z", "Y"];
  109. var index = 0;
  110. var srcsize = parseFloat(value);
  111. index = Math.floor(Math.log(srcsize) / Math.log(1024));
  112. var size = srcsize / Math.pow(1024, index);
  113. size = parseFloat(size.toFixed(2));
  114. return size + unitArr[index];
  115. }
  116. export function generateUUID() {
  117. var d = new Date().getTime();
  118. if (window.performance && typeof window.performance.now === "function") {
  119. d += performance.now(); //use high-precision timer if available
  120. }
  121. var uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(
  122. c,
  123. ) {
  124. var r = (d + Math.random() * 16) % 16 | 0;
  125. d = Math.floor(d / 16);
  126. return (c == "x" ? r : (r & 0x3) | 0x8).toString(16);
  127. });
  128. return uuid;
  129. }