@fle-ui/plus-im-record 0.0.8-beta.0 → 0.0.8-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/es/@types/index.d.ts +620 -0
  2. package/es/CardTag/index.d.ts +3 -0
  3. package/es/CardTag/index.js +18 -0
  4. package/es/ChatMessageItem/index.d.ts +15 -0
  5. package/es/ChatMessageItem/index.js +130 -0
  6. package/es/ChatMessageItem/index.less +108 -0
  7. package/es/ChatMessageList/index.d.ts +28 -0
  8. package/es/ChatMessageList/index.js +58 -0
  9. package/es/ChatMessageList/index.less +34 -0
  10. package/es/GoodsCard/index.d.ts +15 -0
  11. package/es/GoodsCard/index.js +95 -0
  12. package/es/GoodsCard/index.less +49 -0
  13. package/es/GoodsOrderCard/index.d.ts +14 -0
  14. package/es/GoodsOrderCard/index.js +161 -0
  15. package/es/GoodsOrderCard/index.less +81 -0
  16. package/es/Icon/index.d.ts +8 -0
  17. package/es/Icon/index.js +11 -0
  18. package/es/ParseSession/AudioPlayer.d.ts +14 -0
  19. package/es/ParseSession/AudioPlayer.js +89 -0
  20. package/es/ParseSession/audioAndVideoTool.d.ts +3 -0
  21. package/es/ParseSession/audioAndVideoTool.js +21 -0
  22. package/es/ParseSession/index.d.ts +15 -0
  23. package/es/ParseSession/index.js +492 -0
  24. package/es/ParseSession/index.less +226 -0
  25. package/es/api/index.d.ts +30 -0
  26. package/es/api/index.js +48 -0
  27. package/es/audioAndVideoTool.d.ts +3 -0
  28. package/es/audioAndVideoTool.js +21 -0
  29. package/es/common/const/index.d.ts +46 -0
  30. package/es/common/const/index.js +82 -0
  31. package/es/common/utils/index.d.ts +33 -0
  32. package/es/common/utils/index.js +169 -0
  33. package/es/index.d.ts +28 -0
  34. package/es/index.js +77 -0
  35. package/es/styles/extends.less +50 -0
  36. package/es/styles/index.less +35 -0
  37. package/es/styles/vars.less +8 -0
  38. package/es/utils/index.d.ts +14 -0
  39. package/es/utils/index.js +50 -0
  40. package/lib/@types/index.d.ts +620 -0
  41. package/lib/CardTag/index.d.ts +3 -0
  42. package/lib/CardTag/index.js +25 -0
  43. package/lib/ChatMessageItem/index.d.ts +15 -0
  44. package/lib/ChatMessageItem/index.js +136 -0
  45. package/lib/ChatMessageItem/index.less +108 -0
  46. package/lib/ChatMessageList/index.d.ts +28 -0
  47. package/lib/ChatMessageList/index.js +65 -0
  48. package/lib/ChatMessageList/index.less +34 -0
  49. package/lib/GoodsCard/index.d.ts +15 -0
  50. package/lib/GoodsCard/index.js +105 -0
  51. package/lib/GoodsCard/index.less +49 -0
  52. package/lib/GoodsOrderCard/index.d.ts +14 -0
  53. package/lib/GoodsOrderCard/index.js +169 -0
  54. package/lib/GoodsOrderCard/index.less +81 -0
  55. package/lib/Icon/index.d.ts +8 -0
  56. package/lib/Icon/index.js +18 -0
  57. package/lib/ParseSession/AudioPlayer.d.ts +14 -0
  58. package/lib/ParseSession/AudioPlayer.js +98 -0
  59. package/lib/ParseSession/audioAndVideoTool.d.ts +3 -0
  60. package/lib/ParseSession/audioAndVideoTool.js +27 -0
  61. package/lib/ParseSession/index.d.ts +15 -0
  62. package/lib/ParseSession/index.js +494 -0
  63. package/lib/ParseSession/index.less +226 -0
  64. package/lib/api/index.d.ts +30 -0
  65. package/lib/api/index.js +55 -0
  66. package/lib/audioAndVideoTool.d.ts +3 -0
  67. package/lib/audioAndVideoTool.js +27 -0
  68. package/lib/common/const/index.d.ts +46 -0
  69. package/lib/common/const/index.js +88 -0
  70. package/lib/common/utils/index.d.ts +33 -0
  71. package/lib/common/utils/index.js +183 -0
  72. package/lib/index.d.ts +28 -0
  73. package/lib/index.js +86 -0
  74. package/lib/styles/extends.less +50 -0
  75. package/lib/styles/index.less +35 -0
  76. package/lib/styles/vars.less +8 -0
  77. package/lib/utils/index.d.ts +14 -0
  78. package/lib/utils/index.js +56 -0
  79. package/package.json +2 -2
@@ -0,0 +1,226 @@
1
+ @prefix: chart-messages-item;
2
+
3
+ .@{prefix} {
4
+ &-text {
5
+ padding: 8px;
6
+ }
7
+
8
+ &-ref {
9
+ padding: 12px;
10
+ padding-bottom: 16px;
11
+ &-body {
12
+ border-left: 2px solid #c2d4ff;
13
+ padding-left: 8px;
14
+ }
15
+ &-text-body {
16
+ // width: 328px;
17
+ max-height: 115px;
18
+ font-size: 12px;
19
+ color: #777;
20
+ overflow: hidden;
21
+ display: -webkit-box;
22
+ word-break: break-all;
23
+ -webkit-line-clamp: 3;
24
+ -webkit-box-orient: vertical;
25
+ text-overflow: ellipsis;
26
+ }
27
+ &-img-body {
28
+ width: 170px;
29
+ height: 115px;
30
+ img {
31
+ width: 100%;
32
+ height: 100%;
33
+ object-fit: contain;
34
+ }
35
+ }
36
+ &-video-body {
37
+ width: 170px;
38
+ height: 115px;
39
+ video {
40
+ width: 100%;
41
+ height: 100%;
42
+ object-fit: contain;
43
+ }
44
+ }
45
+ &-nickname {
46
+ font-size: 12px;
47
+ color: #777;
48
+ font-weight: 600;
49
+ margin-bottom: 8px;
50
+ }
51
+ }
52
+ &-image {
53
+ // padding: 4px;
54
+ border-radius: 6px;
55
+ max-width: 200px;
56
+ max-height: 200px;
57
+ }
58
+
59
+ video {
60
+ width: 100%;
61
+ height: 100%;
62
+ max-width: 200px;
63
+ max-height: 200px;
64
+ border-radius: 6px;
65
+ object-fit: fill;
66
+ }
67
+
68
+ &-audio {
69
+ padding: 8px;
70
+
71
+ &-in,
72
+ &-out {
73
+ max-width: 90px;
74
+ min-width: 64px;
75
+ display: flex;
76
+ justify-content: space-between;
77
+ cursor: pointer;
78
+ .@{prefix}-audio-icon {
79
+ display: flex;
80
+ justify-content: center;
81
+ align-items: center;
82
+ margin-top: 2px;
83
+ width: 16px;
84
+ height: 16px;
85
+ font-size: 16px;
86
+ img {
87
+ display: block;
88
+ height: 100%;
89
+ transform: translate(2px, 0);
90
+ }
91
+ }
92
+ }
93
+ &-in {
94
+ flex-direction: row-reverse;
95
+ .@{prefix}-audio-icon {
96
+ transform: rotate(180deg);
97
+ }
98
+ }
99
+ }
100
+
101
+ &-file {
102
+ display: flex;
103
+ justify-content: space-between;
104
+ padding: 8px 8px 8px 12px;
105
+ &-icon {
106
+ font-size: 28px;
107
+ color: #2c6bffff;
108
+ }
109
+ &-info {
110
+ padding-left: 10px;
111
+ display: flex;
112
+ flex-direction: column;
113
+ color: #777;
114
+ }
115
+ }
116
+
117
+ &-helps {
118
+ width: 276px;
119
+ color: #333;
120
+ img {
121
+ display: block;
122
+ width: 276px;
123
+ }
124
+ p {
125
+ margin: 0;
126
+ padding: 10px 8px;
127
+ font-size: 14px;
128
+ border-top: 1px solid #e4ecff;
129
+ cursor: pointer;
130
+ display: flex;
131
+ gap: 8px;
132
+ .title {
133
+ flex: 1;
134
+ word-break: break-all;
135
+ }
136
+ }
137
+ }
138
+
139
+ &-faqlink {
140
+ padding: 8px;
141
+ h3 {
142
+ margin: 0;
143
+ font-size: 14px;
144
+ color: #333;
145
+ font-weight: 600;
146
+ }
147
+ }
148
+
149
+ &-form {
150
+ width: 272px;
151
+ .fx-form {
152
+ padding: 0 10px 10px 10px;
153
+ }
154
+
155
+ img {
156
+ display: block;
157
+ width: 272px;
158
+ margin-bottom: 16px;
159
+ }
160
+
161
+ &-code {
162
+ display: flex;
163
+ justify-content: space-between;
164
+ }
165
+
166
+ .fx-form-item {
167
+ margin-bottom: 20px;
168
+ .fx-form-item-explain-error {
169
+ font-size: 12px;
170
+ }
171
+ .fx-input[disabled] {
172
+ color: #999;
173
+ }
174
+ }
175
+ .fx-btn-primary:disabled {
176
+ color: #999;
177
+ }
178
+ }
179
+
180
+ &-charthistory {
181
+ padding: 8px;
182
+ min-width: 272px;
183
+ max-width: 400px;
184
+ cursor: pointer;
185
+ h4 {
186
+ font-weight: 600;
187
+ margin-bottom: 5px;
188
+ color: #333;
189
+ }
190
+ p {
191
+ margin-bottom: 4px;
192
+ font-size: 12px;
193
+ color: #777;
194
+ }
195
+ &-from {
196
+ display: flex;
197
+ align-items: center;
198
+ border-top: 1px solid #eee;
199
+ padding-top: 5px;
200
+ color: #777;
201
+ font-size: 12px;
202
+ &-icon {
203
+ display: flex;
204
+ justify-content: center;
205
+ align-items: center;
206
+ width: 16px;
207
+ height: 16px;
208
+ border-radius: 50%;
209
+ margin-right: 3px;
210
+ background-color: #2c6bffff;
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ .fx-preview-toolbar-wrapper {
217
+ position: fixed;
218
+ bottom: 32px;
219
+ left: 50%;
220
+ padding: 0 24px;
221
+ color: #fff;
222
+ font-size: 20px;
223
+ background-color: rgba(0, 0, 0, 0.1);
224
+ border-radius: 100px;
225
+ transform: translateX(-50%);
226
+ }
@@ -0,0 +1,30 @@
1
+ declare const baseURLMap: {
2
+ dev: string;
3
+ test: string;
4
+ qa: string;
5
+ prod: string;
6
+ };
7
+ export type Env = keyof typeof baseURLMap;
8
+ interface ApiMethods {
9
+ getAccountInfoByAccid: (data: {
10
+ accids: string[];
11
+ }) => Promise<any>;
12
+ getProductById: (data: {
13
+ productId: number;
14
+ relationId: string | number;
15
+ relationType: string | number;
16
+ orderProductId?: number;
17
+ }) => Promise<any>;
18
+ getCSOrder: (data: {
19
+ orderSn: number | string;
20
+ orderId: any;
21
+ accid?: string;
22
+ relationId?: string | number;
23
+ relationType?: number;
24
+ }) => Promise<any>;
25
+ getContact: (params: {
26
+ msgId?: string;
27
+ }) => Promise<any>;
28
+ }
29
+ export declare const apiCreate: (_env?: Env, token?: string) => ApiMethods;
30
+ export {};
@@ -0,0 +1,48 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import Request from '@fle-tools/request';
8
+ import Cookies from 'js-cookie';
9
+ var baseURLMap = {
10
+ dev: 'https://dev-gateway.fxqifu.net/pangu',
11
+ test: 'https://qa-gateway.fxqifu.net/pangu',
12
+ qa: 'https://qa-gateway.fxqifu.net/pangu',
13
+ prod: 'https://gateway.fxqifu.net/pangu'
14
+ };
15
+ export var apiCreate = function apiCreate(_env, token) {
16
+ var localStorageEnv = Object.keys(baseURLMap).includes(localStorage.getItem('env') || '') ? localStorage.getItem('env') : '';
17
+ var env = _env || localStorageEnv || 'prod';
18
+ var baseURL = baseURLMap[env];
19
+ var service = Request({
20
+ baseUrl: baseURL,
21
+ timeout: 30000,
22
+ beforeRequestResolve: function beforeRequestResolve(config) {
23
+ config.headers = _objectSpread(_objectSpread({}, config.headers), {}, {
24
+ authority_token: token || Cookies.get('token')
25
+ });
26
+ }
27
+ });
28
+ return {
29
+ // 获取用户头像名字信息
30
+ getAccountInfoByAccid: function getAccountInfoByAccid(data) {
31
+ return service.post("/ll/provider/message/user/info-list", data);
32
+ },
33
+ // 获取商品信息
34
+ getProductById: function getProductById(data) {
35
+ return service.post('/ll/provider/message/product/get', data);
36
+ },
37
+ // 获取订单信息
38
+ getCSOrder: function getCSOrder(data) {
39
+ return service.post('/ll/provider/message/order/get', data);
40
+ },
41
+ // 获取联系人信息(表单)
42
+ getContact: function getContact(params) {
43
+ return service.get('/ll/provider/message/contact/get', {
44
+ params: params
45
+ });
46
+ }
47
+ };
48
+ };
@@ -0,0 +1,3 @@
1
+ export declare const pauseAllAudio: () => HTMLAudioElement;
2
+ export declare const pauseOtherVideo: (idClient: string) => void;
3
+ export declare const pauseAllVideo: () => void;
@@ -0,0 +1,21 @@
1
+ export var pauseAllAudio = function pauseAllAudio() {
2
+ var audio = document.getElementById('fxMessageAudio');
3
+ audio === null || audio === void 0 ? void 0 : audio.pause();
4
+ return audio;
5
+ };
6
+ export var pauseOtherVideo = function pauseOtherVideo(idClient) {
7
+ var videoElements = document.getElementsByTagName('video');
8
+ for (var i = 0; i < videoElements.length; i++) {
9
+ if (videoElements[i].id !== "fxMessageVideo-".concat(idClient)) {
10
+ videoElements[i].pause();
11
+ }
12
+ }
13
+ };
14
+ export var pauseAllVideo = function pauseAllVideo() {
15
+ var videoElements = document.getElementsByTagName('video');
16
+ for (var i = 0; i < videoElements.length; i++) {
17
+ if (videoElements[i].id.startsWith('fxMessageVideo-')) {
18
+ videoElements[i].pause();
19
+ }
20
+ }
21
+ };
@@ -0,0 +1,46 @@
1
+ export declare const defaultAvatar = "https://qa-oss.elebuys.com/tmpdir/202402221617520002519945.png";
2
+ export declare const fallbackImg = "data:image/png;base64,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";
3
+ export declare const imMsgTypes: {
4
+ text: string;
5
+ image: string;
6
+ video: string;
7
+ audio: string;
8
+ link: string;
9
+ file: string;
10
+ faq: string;
11
+ faqLink: string;
12
+ formCustomer: string;
13
+ tip: string;
14
+ event: string;
15
+ order: string;
16
+ product: string;
17
+ orderGoods: string;
18
+ offlineSupport: string;
19
+ chatrecord: string;
20
+ };
21
+ export declare const msgEventTypes: {
22
+ userClose: number;
23
+ csClose: number;
24
+ sysClose: number;
25
+ userEnter: number;
26
+ transferOk: number;
27
+ lineUp: number;
28
+ lineOverLimit: number;
29
+ formCustomer: number;
30
+ csOffLine: number;
31
+ };
32
+ export declare const roleTypes: {
33
+ cs: 'cs';
34
+ user: 'user';
35
+ };
36
+ export declare const fileTypes: {
37
+ img: string[];
38
+ audio: string[];
39
+ video: string[];
40
+ file: string[];
41
+ };
42
+ export declare const networkHintMap: any;
43
+ export declare const cardTagMap: Record<string, {
44
+ label: string;
45
+ color: string;
46
+ }>;
@@ -0,0 +1,82 @@
1
+ export var defaultAvatar = 'https://qa-oss.elebuys.com/tmpdir/202402221617520002519945.png';
2
+ export var fallbackImg = 'data:image/png;base64,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';
3
+ export var imMsgTypes = {
4
+ text: 'text',
5
+ image: 'image',
6
+ video: 'video',
7
+ audio: 'audio',
8
+ link: 'link',
9
+ file: 'file',
10
+ faq: 'faq',
11
+ faqLink: 'faqLink',
12
+ formCustomer: 'formCustomer',
13
+ tip: 'tip',
14
+ event: 'event',
15
+ order: 'order',
16
+ product: 'product',
17
+ orderGoods: 'order-goods',
18
+ offlineSupport: 'offline-support',
19
+ chatrecord: 'chatrecord'
20
+ };
21
+ export var msgEventTypes = {
22
+ userClose: 101,
23
+ csClose: 102,
24
+ sysClose: 103,
25
+ userEnter: 111,
26
+ transferOk: 121,
27
+ lineUp: 131,
28
+ lineOverLimit: 132,
29
+ formCustomer: 201,
30
+ csOffLine: 301 // 客服离线
31
+ };
32
+ export var roleTypes = {
33
+ cs: 'cs',
34
+ user: 'user'
35
+ };
36
+ export var fileTypes = {
37
+ img: ['.jpg', '.png', '.jpeg', '.gif'],
38
+ audio: ['.ogg', '.mp3'],
39
+ video: ['.mp4', '.mov'],
40
+ file: ['.txt', '.zip', '.rar', '.z7', '.doc', '.docm', '.docx', '.ppt', '.pptm', '.pptx', '.xls', '.xlsx', '.pdf']
41
+ };
42
+ export var networkHintMap = {
43
+ logined: '暂无会话',
44
+ willReconnect: '即将重连...',
45
+ disconnect: '连接已断开',
46
+ kicked: '已在其他设备登录',
47
+ default: '暂无会话'
48
+ };
49
+ export var cardTagMap = {
50
+ '1': {
51
+ label: '电商精选',
52
+ color: '#FF3013'
53
+ },
54
+ '2': {
55
+ label: '生鲜电商',
56
+ color: '#D5A704'
57
+ },
58
+ '3': {
59
+ label: '超市精选',
60
+ color: '#0064E0'
61
+ },
62
+ '4': {
63
+ label: '虚拟商品',
64
+ color: '#AC30E3'
65
+ },
66
+ '5': {
67
+ label: '生鲜蛋糕',
68
+ color: '#4D2EF6'
69
+ },
70
+ '6': {
71
+ label: '自有供应商商品',
72
+ color: '#0064E0'
73
+ },
74
+ '7': {
75
+ label: '精选商品',
76
+ color: '#FF0036'
77
+ },
78
+ '8': {
79
+ label: '自有商品',
80
+ color: '#FF3013'
81
+ }
82
+ };
@@ -0,0 +1,33 @@
1
+ export declare function getSessionIdFromMsg(msg: {
2
+ from: any;
3
+ to: any;
4
+ scene: any;
5
+ }, myAccount: any): string;
6
+ export declare function paserAttach(attach?: any): any;
7
+ export declare function getSimplifyMsg(attach?: any): any;
8
+ export declare function concatMsgs<T>(arr1?: any[], arr2?: any[]): T[];
9
+ export declare function getDateDiff(dateTimeStamp: number): string;
10
+ export declare function downloadByUrl(src: string): void;
11
+ /**
12
+ * 将文字写入剪切板
13
+ * @param {string} text
14
+ * @returns {Promise} 返回promise对象
15
+ */
16
+ export declare function copyText(text?: string): Promise<void>;
17
+ export declare const matchs: {
18
+ paserProductFromUrl: (str: string) => string | null | undefined;
19
+ paserOrderFromUrl: (str: string) => string | null | undefined;
20
+ };
21
+ declare const _default: {
22
+ getSessionIdFromMsg: typeof getSessionIdFromMsg;
23
+ paserAttach: typeof paserAttach;
24
+ getDateDiff: typeof getDateDiff;
25
+ downloadByUrl: typeof downloadByUrl;
26
+ copyText: typeof copyText;
27
+ getSimplifyMsg: typeof getSimplifyMsg;
28
+ matchs: {
29
+ paserProductFromUrl: (str: string) => string | null | undefined;
30
+ paserOrderFromUrl: (str: string) => string | null | undefined;
31
+ };
32
+ };
33
+ export default _default;
@@ -0,0 +1,169 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ import { imMsgTypes } from '../const';
8
+ /* eslint-disable radix */
9
+ export function getSessionIdFromMsg(msg, myAccount) {
10
+ // 在群中,不管 from 是不是自己,sessionId 都要取 to
11
+ var from = msg.from,
12
+ to = msg.to,
13
+ scene = msg.scene;
14
+ var target = '';
15
+ if (scene === 'p2p') {
16
+ if (from === myAccount) {
17
+ target = to;
18
+ } else {
19
+ target = from;
20
+ }
21
+ } else {
22
+ target = to;
23
+ }
24
+ var sessionId = "".concat(scene, "-").concat(target);
25
+ return sessionId;
26
+ }
27
+ export function paserAttach() {
28
+ var attach = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
+ if (attach.content && typeof attach.content === 'string' && ![imMsgTypes.tip, imMsgTypes.text].includes(attach.type)) {
30
+ var defaultObj = [imMsgTypes.faq].includes(attach.type) ? [] : {};
31
+ try {
32
+ attach.content = JSON.parse(attach.content);
33
+ } catch (error) {
34
+ console.log('paser', error);
35
+ attach.content = defaultObj;
36
+ }
37
+ }
38
+ return attach;
39
+ }
40
+ export function getSimplifyMsg() {
41
+ var attach = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
42
+ var type = attach.type,
43
+ content = attach.content;
44
+ if ([imMsgTypes.text, imMsgTypes.tip].includes(type)) return content;
45
+ if (type === imMsgTypes.faqLink) return content.title;
46
+ if (type === imMsgTypes.event) return content.tips;
47
+ if (type === imMsgTypes.audio) return '[音频]...';
48
+ if (type === imMsgTypes.faq) return '[猜你想问]...';
49
+ if (type === imMsgTypes.file) return '[文件]...';
50
+ if (type === imMsgTypes.formCustomer) return '[表单]...';
51
+ if (type === imMsgTypes.image) return '[图片]...';
52
+ if (type === imMsgTypes.video) return '[视频]...';
53
+ if (type === imMsgTypes.link) return '[链接]...';
54
+ if (type === imMsgTypes.order) return '[订单卡片]...';
55
+ if (type === imMsgTypes.product) return '[商品卡片]...';
56
+ if (type === imMsgTypes.chatrecord) return '[转接记录]...';
57
+ }
58
+ export function concatMsgs() {
59
+ var arr1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
60
+ var arr2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
61
+ var idMap = {};
62
+ var result = [];
63
+ [].concat(_toConsumableArray(arr1), _toConsumableArray(arr2)).forEach(function () {
64
+ var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
65
+ if (!idMap[item.idServer]) {
66
+ result.push(item);
67
+ idMap[item.idServer] = true;
68
+ }
69
+ });
70
+ result.sort(function (a, b) {
71
+ return a.time - b.time;
72
+ });
73
+ return result;
74
+ }
75
+ // 时间戳转多少分钟之前
76
+ export function getDateDiff(dateTimeStamp) {
77
+ var timestamp = dateTimeStamp || new Date().getTime();
78
+ var minute = 1000 * 60;
79
+ var hour = minute * 60;
80
+ var day = hour * 24;
81
+ var month = day * 30;
82
+ var year = day * 365;
83
+ var now = new Date().getTime();
84
+ var diffValue = now - timestamp;
85
+ var result;
86
+ if (diffValue < 0) {
87
+ return '刚刚';
88
+ }
89
+ var yearC = Math.floor(diffValue / year);
90
+ var monthC = Math.floor(diffValue / month);
91
+ var weekC = Math.floor(diffValue / (7 * day));
92
+ var dayC = Math.floor(diffValue / day);
93
+ var hourC = Math.floor(diffValue / hour);
94
+ var minC = Math.floor(diffValue / minute);
95
+ if (yearC >= 1) {
96
+ result = "".concat(yearC, "\u5E74\u524D");
97
+ } else if (monthC >= 1) {
98
+ result = "".concat(monthC, "\u6708\u524D");
99
+ } else if (weekC >= 1) {
100
+ result = "".concat(weekC, "\u5468\u524D");
101
+ } else if (dayC >= 1) {
102
+ result = "".concat(dayC, "\u5929\u524D");
103
+ } else if (hourC >= 1) {
104
+ result = "".concat(hourC, "\u5C0F\u65F6\u524D");
105
+ } else if (minC >= 1) {
106
+ result = "".concat(minC, "\u5206\u949F\u524D");
107
+ } else result = '刚刚';
108
+ return result;
109
+ }
110
+ export function downloadByUrl(src) {
111
+ fetch(src).then(function (response) {
112
+ return response.blob();
113
+ }).then(function (blob) {
114
+ var url = URL.createObjectURL(new Blob([blob]));
115
+ var link = document.createElement('a');
116
+ link.href = url;
117
+ link.download = 'image.png';
118
+ document.body.appendChild(link);
119
+ link.click();
120
+ URL.revokeObjectURL(url);
121
+ link.remove();
122
+ });
123
+ }
124
+ /**
125
+ * 将文字写入剪切板
126
+ * @param {string} text
127
+ * @returns {Promise} 返回promise对象
128
+ */
129
+ export function copyText() {
130
+ var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
131
+ // 在调用前 先访问是否存在 clipboard 对象
132
+ if (navigator.clipboard) {
133
+ return navigator.clipboard.writeText(text);
134
+ } else {
135
+ try {
136
+ var t = document.createElement('textarea');
137
+ t.nodeValue = text;
138
+ t.value = text;
139
+ document.body.appendChild(t);
140
+ t.select();
141
+ document.execCommand('copy');
142
+ document.body.removeChild(t);
143
+ return Promise.resolve();
144
+ } catch (e) {
145
+ return Promise.reject(e);
146
+ }
147
+ }
148
+ }
149
+ export var matchs = {
150
+ paserProductFromUrl: function paserProductFromUrl(str) {
151
+ if (!str) return null;
152
+ var res = str.match(/^https*(.+?)(product\/product_info|productDetail|goodsDetail)\/(\d+)$/);
153
+ return res === null || res === void 0 ? void 0 : res[3];
154
+ },
155
+ paserOrderFromUrl: function paserOrderFromUrl(str) {
156
+ if (!str) return null;
157
+ var res = str.match(/^https*(.+?)(order\/order_detail.+?order_id=)(\d+)$/);
158
+ return res === null || res === void 0 ? void 0 : res[3];
159
+ }
160
+ };
161
+ export default {
162
+ getSessionIdFromMsg: getSessionIdFromMsg,
163
+ paserAttach: paserAttach,
164
+ getDateDiff: getDateDiff,
165
+ downloadByUrl: downloadByUrl,
166
+ copyText: copyText,
167
+ getSimplifyMsg: getSimplifyMsg,
168
+ matchs: matchs
169
+ };