utils.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import TUIMessage from "../components/messageTUI/index";
  2. import Error from "./error";
  3. export function caculateTimeago(dateTimeStamp: number) {
  4. const { t } = (window as any).TUIKitTUICore.config.i18n.useI18n();
  5. const minute = 1000 * 60;
  6. const hour = minute * 60;
  7. const day = hour * 24;
  8. const week = day * 7;
  9. const now = new Date().getTime();
  10. const diffValue = now - dateTimeStamp;
  11. let result = "";
  12. if (diffValue < 0) {
  13. return;
  14. }
  15. const minC = diffValue / minute;
  16. const hourC = diffValue / hour;
  17. const dayC = diffValue / day;
  18. const weekC = diffValue / week;
  19. if (weekC >= 1 && weekC <= 4) {
  20. result = ` ${parseInt(`${weekC}`, 10)} ${t("time.周")}${t("time.前")}`;
  21. } else if (dayC >= 1 && dayC <= 6) {
  22. result = ` ${parseInt(`${dayC}`, 10)} ${t("time.天")}${t("time.前")}`;
  23. } else if (hourC >= 1 && hourC <= 23) {
  24. result = ` ${parseInt(`${hourC}`, 10)} ${t("time.小时")}${t("time.前")}`;
  25. } else if (minC >= 1 && minC <= 59) {
  26. result = ` ${parseInt(`${minC}`, 10)} ${t("time.分钟")}${t("time.前")}`;
  27. } else if (diffValue >= 0 && diffValue <= minute) {
  28. result = `${t("time.刚刚")}`;
  29. } else {
  30. const datetime = new Date();
  31. datetime.setTime(dateTimeStamp);
  32. const Nyear = datetime.getFullYear();
  33. const Nmonth = datetime.getMonth() + 1 < 10 ? `0${datetime.getMonth() + 1}` : datetime.getMonth() + 1;
  34. const Ndate = datetime.getDate() < 10 ? `0${datetime.getDate()}` : datetime.getDate();
  35. result = `${Nyear}-${Nmonth}-${Ndate}`;
  36. }
  37. return result;
  38. }
  39. // 解析处理系统消息
  40. // Handle the system messages
  41. export function translateGroupSystemNotice(message: any) {
  42. const { t } = (window as any).TUIKitTUICore.config.i18n.useI18n();
  43. const groupName = message.payload.groupProfile.name || message.payload.groupProfile.groupID;
  44. switch (message.payload.operationType) {
  45. case 1:
  46. return `${message.payload.operatorID} ${t("message.tip.申请加入群组")}:${groupName}`;
  47. case 2:
  48. return `${t("message.tip.成功加入群组")}:${groupName}`;
  49. case 3:
  50. return `${t("message.tip.申请加入群组")}:${groupName} ${t("message.tip.被拒绝")}`;
  51. case 4:
  52. return `${t("message.tip.你被管理员")}${message.payload.operatorID} ${t("message.tip.踢出群组")}:${groupName}`;
  53. case 5:
  54. return `${t("message.tip.群")}:${groupName} ${t("message.tip.被")} ${message.payload.operatorID} ${t("message.tip.解散")}`;
  55. case 6:
  56. return `${message.payload.operatorID} ${t("message.tip.创建群")}:${groupName}`;
  57. case 7:
  58. return `${message.payload.operatorID} ${t("message.tip.邀请你加群")}:${groupName}`;
  59. case 8:
  60. return `${t("message.tip.你退出群组")}:${groupName}`;
  61. case 9:
  62. return `${t("message.tip.你被")}${message.payload.operatorID} ${t("message.tip.设置为群")}:${groupName} ${t("message.tip.的管理员")}`;
  63. case 10:
  64. return `${t("message.tip.你被")}${message.payload.operatorID} ${t("message.tip.撤销群")}:${groupName} ${t("message.tip.的管理员身份")}`;
  65. case 12:
  66. return `${message.payload.operatorID} ${t("message.tip.邀请你加群")}:${groupName}`;
  67. case 13:
  68. return `${message.payload.operatorID} ${t("message.tip.同意加群")}:${groupName}`;
  69. case 14:
  70. return `${message.payload.operatorID} ${t("message.tip.拒接加群")}:${groupName}`;
  71. case 255:
  72. return `${t("message.tip.自定义群系统通知")}: ${message.payload.userDefinedField}`;
  73. }
  74. }
  75. export function handleErrorPrompts(error: any, type: any) {
  76. console.log(error, "error", error.type, error.message);
  77. if (error.message.indexOf("this group does not exist") !== -1) {
  78. error.message = "当前群组已解散";
  79. // error.replace("Error: this group does not exist", "当前群组已解散");
  80. }
  81. // 当前当人不在群里面
  82. if(error.message.indexOf('only group member can get group info') !== -1) {
  83. return
  84. }
  85. if (error?.type && error?.message) {
  86. TUIMessage({
  87. message: `${error.type} : ${error.message}` || error,
  88. isH5: !!type?.isH5,
  89. type: "error",
  90. });
  91. } else {
  92. TUIMessage({
  93. message: Error[error.code] || error.message,
  94. isH5: !!type?.isH5,
  95. type: "error",
  96. });
  97. }
  98. }
  99. export function handleSuccessPrompts(message: any, type: any) {
  100. TUIMessage({
  101. message,
  102. isH5: !!type?.isH5,
  103. type: "success",
  104. });
  105. }
  106. export function isArrayEqual(a: Array<any>, b: Array<any>) {
  107. if (a.length !== b.length) {
  108. return false;
  109. }
  110. for (let i = 0; i < a.length; i++) {
  111. if (b.indexOf(a[i]) === -1) {
  112. return false;
  113. }
  114. }
  115. return true;
  116. }