yx-web-sdk 0.0.26 → 0.0.28
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.
- package/dist/chat-card/index.js +1 -1
- package/dist/chat-content/index.js +1 -1
- package/dist/chat-page/index.js +1 -1
- package/dist/chat-room/index.js +1 -1
- package/dist/index-entry/index.js +1 -1
- package/dist/{index.vue_vue_type_script_setup_true_lang-BpYIybBN.mjs → index.vue_vue_type_script_setup_true_lang-CvCfYqe9.mjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_0_lang-DectxdQg.mjs → index.vue_vue_type_style_index_0_lang-Bzp6GXSr.mjs} +108 -25
- package/dist/{index.vue_vue_type_style_index_0_lang-CJ6N1ut8.mjs → index.vue_vue_type_style_index_0_lang-CQtS2mCm.mjs} +111 -47
- package/dist/{index.vue_vue_type_style_index_0_lang-D8SCARR2.mjs → index.vue_vue_type_style_index_0_lang-CvNvjkKX.mjs} +2 -2
- package/dist/yx-web-sdk.es.js +219 -72
- package/dist/yx-web-sdk.umd.js +219 -72
- package/package.json +1 -1
package/dist/chat-card/index.js
CHANGED
package/dist/chat-page/index.js
CHANGED
package/dist/chat-room/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, ref, onMounted, onUnmounted, openBlock, crea
|
|
|
2
2
|
import { useRouter } from "vue-router";
|
|
3
3
|
import { Spin, Result, Button, Empty, message } from "ant-design-vue";
|
|
4
4
|
import { s as setGlobalRequest, c as useImSdkStore, a as useServerStore, u as useChannelStore, b as useUserStore, d as useGlobalStore } from "../index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
|
|
5
|
-
import { _ as _sfc_main$1 } from "../index.vue_vue_type_style_index_0_lang-
|
|
5
|
+
import { _ as _sfc_main$1 } from "../index.vue_vue_type_style_index_0_lang-CvNvjkKX.mjs";
|
|
6
6
|
import { S as ServerChannelSidebar } from "../index-BvfJ77uD.mjs";
|
|
7
7
|
import { M as MembersSidebar } from "../index-DwPi-usb.mjs";
|
|
8
8
|
import { _ as _export_sfc } from "../_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, watch, openBlock, createBlock, createElementBlock } from "vue";
|
|
2
|
-
import { _ as _sfc_main$1 } from "./index.vue_vue_type_style_index_0_lang-
|
|
2
|
+
import { _ as _sfc_main$1 } from "./index.vue_vue_type_style_index_0_lang-CQtS2mCm.mjs";
|
|
3
3
|
import { u as useChannelStore, a as useServerStore, b as useUserStore } from "./index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
|
|
4
4
|
const _hoisted_1 = { key: 1 };
|
|
5
5
|
const HISTORY_LIMIT = 100;
|
|
@@ -220,19 +220,90 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
220
220
|
return props.msg.fromAccount === props.myAccid && nowTime.value - props.msg.time <= REVOCATION_INTERVAL;
|
|
221
221
|
});
|
|
222
222
|
const { copy } = useClipboard();
|
|
223
|
+
const imageBlobCache = /* @__PURE__ */ new Map();
|
|
224
|
+
async function fetchImageAsPngBlob(url) {
|
|
225
|
+
const response = await fetch(url);
|
|
226
|
+
const blob = await response.blob();
|
|
227
|
+
if (blob.type === "image/png") {
|
|
228
|
+
return blob;
|
|
229
|
+
}
|
|
230
|
+
return new Promise((resolve, reject) => {
|
|
231
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
232
|
+
const img = document.createElement("img");
|
|
233
|
+
img.crossOrigin = "anonymous";
|
|
234
|
+
img.onload = () => {
|
|
235
|
+
const canvas = document.createElement("canvas");
|
|
236
|
+
canvas.width = img.naturalWidth;
|
|
237
|
+
canvas.height = img.naturalHeight;
|
|
238
|
+
const ctx = canvas.getContext("2d");
|
|
239
|
+
ctx.drawImage(img, 0, 0);
|
|
240
|
+
canvas.toBlob((b) => {
|
|
241
|
+
URL.revokeObjectURL(objectUrl);
|
|
242
|
+
if (b) {
|
|
243
|
+
resolve(b);
|
|
244
|
+
} else {
|
|
245
|
+
reject(new Error("canvas toBlob 失败"));
|
|
246
|
+
}
|
|
247
|
+
}, "image/png");
|
|
248
|
+
};
|
|
249
|
+
img.onerror = () => {
|
|
250
|
+
URL.revokeObjectURL(objectUrl);
|
|
251
|
+
reject(new Error("图片加载失败"));
|
|
252
|
+
};
|
|
253
|
+
img.src = objectUrl;
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
function clearImageBlobCache() {
|
|
257
|
+
imageBlobCache.clear();
|
|
258
|
+
}
|
|
223
259
|
const emit = __emit;
|
|
224
260
|
const textMsgContextMenuVisible = ref(false);
|
|
225
261
|
const textMsgContextMenuX = ref(0);
|
|
226
262
|
const textMsgContextMenuY = ref(0);
|
|
227
263
|
const textMsgContextMenuRef = ref(null);
|
|
228
|
-
|
|
264
|
+
const eventSource = ref("");
|
|
265
|
+
function onTextMsgContextMenu(e, p) {
|
|
266
|
+
var _a;
|
|
267
|
+
eventSource.value = p ?? "normal";
|
|
229
268
|
textMsgContextMenuX.value = e.clientX;
|
|
230
269
|
textMsgContextMenuY.value = e.clientY;
|
|
231
|
-
|
|
270
|
+
if (p === "img") {
|
|
271
|
+
const imgUrl = (_a = props.msg.attach) == null ? void 0 : _a.url;
|
|
272
|
+
if (imgUrl && !imageBlobCache.has(imgUrl)) {
|
|
273
|
+
fetchImageAsPngBlob(imgUrl).then((blob) => {
|
|
274
|
+
imageBlobCache.set(imgUrl, blob);
|
|
275
|
+
}).catch((err) => {
|
|
276
|
+
console.error("预下载图片失败: ", err);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
setTimeout(
|
|
281
|
+
() => {
|
|
282
|
+
textMsgContextMenuVisible.value = true;
|
|
283
|
+
},
|
|
284
|
+
p === "img" ? 150 : 0
|
|
285
|
+
);
|
|
232
286
|
}
|
|
233
287
|
function onCopyClick() {
|
|
234
|
-
var _a;
|
|
288
|
+
var _a, _b;
|
|
235
289
|
if (props.msg.type === "text") {
|
|
290
|
+
if (eventSource.value === "img") {
|
|
291
|
+
const imgUrl = (_a = props.msg.attach) == null ? void 0 : _a.url;
|
|
292
|
+
const cachedBlob = imageBlobCache.get(imgUrl);
|
|
293
|
+
if (cachedBlob) {
|
|
294
|
+
navigator.clipboard.write([new ClipboardItem({ "image/png": cachedBlob })]).then(() => {
|
|
295
|
+
}).catch((err) => {
|
|
296
|
+
console.error("copy image error: ", err);
|
|
297
|
+
message.error("复制图片失败");
|
|
298
|
+
}).finally(() => {
|
|
299
|
+
textMsgContextMenuVisible.value = false;
|
|
300
|
+
});
|
|
301
|
+
} else {
|
|
302
|
+
message.warning("图片正在加载中,请稍后再试");
|
|
303
|
+
textMsgContextMenuVisible.value = false;
|
|
304
|
+
}
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
236
307
|
copy(props.msg.body).then(() => {
|
|
237
308
|
}).catch((err) => {
|
|
238
309
|
console.error("copy error: ", err);
|
|
@@ -242,13 +313,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
242
313
|
});
|
|
243
314
|
}
|
|
244
315
|
if (props.msg.type === "image") {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
316
|
+
const imgUrl = (_b = props.msg.attach) == null ? void 0 : _b.url;
|
|
317
|
+
const cachedBlob = imageBlobCache.get(imgUrl);
|
|
318
|
+
if (cachedBlob) {
|
|
319
|
+
navigator.clipboard.write([new ClipboardItem({ "image/png": cachedBlob })]).then(() => {
|
|
320
|
+
}).catch((err) => {
|
|
321
|
+
console.error("copy image error: ", err);
|
|
322
|
+
message.error("复制图片失败");
|
|
323
|
+
}).finally(() => {
|
|
324
|
+
textMsgContextMenuVisible.value = false;
|
|
325
|
+
});
|
|
326
|
+
} else {
|
|
327
|
+
message.warning("图片正在加载中,请稍后再试");
|
|
250
328
|
textMsgContextMenuVisible.value = false;
|
|
251
|
-
}
|
|
329
|
+
}
|
|
252
330
|
}
|
|
253
331
|
}
|
|
254
332
|
function onQuoteClick() {
|
|
@@ -317,6 +395,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
317
395
|
onBeforeUnmount(() => {
|
|
318
396
|
document.removeEventListener("click", handleClickOutside, true);
|
|
319
397
|
document.removeEventListener("contextmenu", handleClickOutside, true);
|
|
398
|
+
clearImageBlobCache();
|
|
320
399
|
});
|
|
321
400
|
const myAvatar = computed(() => {
|
|
322
401
|
var _a, _b, _c, _d;
|
|
@@ -478,7 +557,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
478
557
|
], 2)) : __props.msg.type === "image" ? (openBlock(), createElementBlock("div", {
|
|
479
558
|
key: 2,
|
|
480
559
|
class: normalizeClass(["chatCardMainContent flash-target", { myMsg: __props.msg.fromAccount === __props.myAccid, otherMsg: __props.msg.fromAccount !== __props.myAccid }]),
|
|
481
|
-
onContextmenu: withModifiers(onTextMsgContextMenu, ["prevent"])
|
|
560
|
+
onContextmenu: _cache[0] || (_cache[0] = withModifiers(($event) => onTextMsgContextMenu($event, "img"), ["prevent"]))
|
|
482
561
|
}, [
|
|
483
562
|
createVNode(unref(Image), {
|
|
484
563
|
class: "imgMsg",
|
|
@@ -496,24 +575,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
496
575
|
], 34)) : (openBlock(), createElementBlock("div", {
|
|
497
576
|
key: 3,
|
|
498
577
|
class: normalizeClass(["chatCardMainContent", { myMsg: __props.msg.fromAccount === __props.myAccid, otherMsg: __props.msg.fromAccount !== __props.myAccid }])
|
|
499
|
-
}, [..._cache[
|
|
578
|
+
}, [..._cache[3] || (_cache[3] = [
|
|
500
579
|
createElementVNode("div", { class: "textMsg" }, toDisplayString("暂不支持该消息"), -1)
|
|
501
580
|
])], 2)),
|
|
502
581
|
__props.msg.type === "text" && IMG_EXT.includes(((_j = (_i = __props.msg) == null ? void 0 : _i.attach) == null ? void 0 : _j.ext) || "") ? (openBlock(), createElementBlock("div", _hoisted_14, [
|
|
503
|
-
((_l = (_k = __props.msg) == null ? void 0 : _k.attach) == null ? void 0 : _l.size) && ((_n = (_m = __props.msg) == null ? void 0 : _m.attach) == null ? void 0 : _n.size) < MAX_IMG_PREVIEW_SIZE ? (openBlock(),
|
|
582
|
+
((_l = (_k = __props.msg) == null ? void 0 : _k.attach) == null ? void 0 : _l.size) && ((_n = (_m = __props.msg) == null ? void 0 : _m.attach) == null ? void 0 : _n.size) < MAX_IMG_PREVIEW_SIZE ? (openBlock(), createElementBlock("div", {
|
|
504
583
|
key: 0,
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
584
|
+
onContextmenu: _cache[1] || (_cache[1] = withModifiers(($event) => onTextMsgContextMenu($event, "img"), ["prevent"]))
|
|
585
|
+
}, [
|
|
586
|
+
createVNode(unref(Image), {
|
|
587
|
+
class: "imgMsg",
|
|
588
|
+
src: (_p = (_o = __props.msg) == null ? void 0 : _o.attach) == null ? void 0 : _p.url,
|
|
589
|
+
width: attachImageSize.value.width,
|
|
590
|
+
height: attachImageSize.value.height
|
|
591
|
+
}, {
|
|
592
|
+
previewMask: withCtx(() => [
|
|
593
|
+
createElementVNode("div", _hoisted_15, [
|
|
594
|
+
createVNode(unref(EyeOutlined))
|
|
595
|
+
])
|
|
596
|
+
]),
|
|
597
|
+
_: 1
|
|
598
|
+
}, 8, ["src", "width", "height"])
|
|
599
|
+
], 32)) : (openBlock(), createBlock(_sfc_main$1, {
|
|
517
600
|
key: 1,
|
|
518
601
|
attach: (_q = __props.msg) == null ? void 0 : _q.attach
|
|
519
602
|
}, null, 8, ["attach"]))
|
|
@@ -540,7 +623,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
540
623
|
src: (_s = msgExt.value.quoteMsg.attach) == null ? void 0 : _s.url,
|
|
541
624
|
width: quoteImageMsgSize.value.width,
|
|
542
625
|
height: quoteImageMsgSize.value.height,
|
|
543
|
-
onClick: _cache[
|
|
626
|
+
onClick: _cache[2] || (_cache[2] = withModifiers(() => {
|
|
544
627
|
}, ["stop", "prevent"]))
|
|
545
628
|
}, {
|
|
546
629
|
previewMask: withCtx(() => [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createVNode, ref, computed, watch, nextTick, defineComponent, openBlock, createElementBlock, createElementVNode, normalizeStyle, unref, normalizeClass, createBlock, createCommentVNode, Fragment, renderList, toDisplayString, withCtx } from "vue";
|
|
1
|
+
import { createVNode, ref, computed, watch, nextTick, defineComponent, openBlock, createElementBlock, createElementVNode, normalizeStyle, unref, normalizeClass, createBlock, createCommentVNode, Fragment, renderList, toDisplayString, withModifiers, withCtx } from "vue";
|
|
2
2
|
import { useRouter } from "vue-router";
|
|
3
3
|
import { Input, Image, Popover, Button, Upload, message } from "ant-design-vue";
|
|
4
4
|
import { A as AitPersonPopover } from "./index-BhLJLbtt.mjs";
|
|
5
|
-
import { L as LoadingOutlined, _ as _sfc_main$2, a as _sfc_main$3 } from "./index.vue_vue_type_style_index_0_lang-
|
|
5
|
+
import { L as LoadingOutlined, _ as _sfc_main$2, a as _sfc_main$3 } from "./index.vue_vue_type_style_index_0_lang-Bzp6GXSr.mjs";
|
|
6
6
|
import { _ as _sfc_main$1 } from "./index.vue_vue_type_style_index_0_lang-BxXBf_VA.mjs";
|
|
7
7
|
import { a as useServerStore, g as getServerMembersByAccids, u as useChannelStore, e as getImageMsgDisplaySize, f as filterStr, i as isLt } from "./index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
|
|
8
8
|
import { useEventListener, useDebounceFn } from "@vueuse/core";
|
|
@@ -472,11 +472,10 @@ const _hoisted_15 = {
|
|
|
472
472
|
class: "chatroomInputAttachmentWrapperImg"
|
|
473
473
|
};
|
|
474
474
|
const _hoisted_16 = { class: "chatroomInputAttachmentWrapperImgMask" };
|
|
475
|
-
const _hoisted_17 = { class: "
|
|
476
|
-
const _hoisted_18 = {
|
|
477
|
-
const _hoisted_19 =
|
|
478
|
-
const _hoisted_20 =
|
|
479
|
-
const _hoisted_21 = { class: "chatroomController" };
|
|
475
|
+
const _hoisted_17 = { class: "chatroomInputLeft" };
|
|
476
|
+
const _hoisted_18 = { style: { "width": "400px" } };
|
|
477
|
+
const _hoisted_19 = ["onClick"];
|
|
478
|
+
const _hoisted_20 = { class: "chatroomController" };
|
|
480
479
|
const MAX_IMG_SIZE = 10;
|
|
481
480
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
482
481
|
...{
|
|
@@ -757,41 +756,101 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
757
756
|
}
|
|
758
757
|
};
|
|
759
758
|
const handlePaste = async (e) => {
|
|
759
|
+
var _a;
|
|
760
760
|
if (props.sendDisabled || attachmentUploading.value) return;
|
|
761
761
|
const clipboardData = e.clipboardData;
|
|
762
762
|
if (!clipboardData) return;
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
763
|
+
let imageFile = null;
|
|
764
|
+
if (clipboardData.items && clipboardData.items.length) {
|
|
765
|
+
for (let i = 0; i < clipboardData.items.length; i++) {
|
|
766
|
+
const item = clipboardData.items[i];
|
|
767
|
+
if (item.type.startsWith("image/")) {
|
|
768
|
+
imageFile = item.getAsFile();
|
|
769
|
+
break;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
if (!imageFile && clipboardData.files && clipboardData.files.length) {
|
|
774
|
+
for (let i = 0; i < clipboardData.files.length; i++) {
|
|
775
|
+
if (clipboardData.files[i].type.startsWith("image/")) {
|
|
776
|
+
imageFile = clipboardData.files[i];
|
|
777
|
+
break;
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
if (!imageFile) return;
|
|
782
|
+
e.preventDefault();
|
|
783
|
+
const existingFile = (_a = attachment.value) == null ? void 0 : _a.__file;
|
|
784
|
+
if (existingFile && existingFile.size === imageFile.size && existingFile.type === imageFile.type) {
|
|
785
|
+
return;
|
|
786
|
+
}
|
|
787
|
+
if (!isLt(imageFile.size, MAX_IMG_SIZE)) {
|
|
788
|
+
message.error("图片大小最大支持20M");
|
|
789
|
+
return;
|
|
790
|
+
}
|
|
791
|
+
attachmentUploading.value = true;
|
|
792
|
+
try {
|
|
793
|
+
const uploadResult = await channelStore.uploadImage({
|
|
794
|
+
file: imageFile,
|
|
795
|
+
onUploadStart: () => {
|
|
774
796
|
attachmentUploading.value = true;
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
onUploadStart: () => {
|
|
779
|
-
attachmentUploading.value = true;
|
|
780
|
-
},
|
|
781
|
-
onUploadDone: () => {
|
|
782
|
-
attachmentUploading.value = false;
|
|
783
|
-
}
|
|
784
|
-
});
|
|
785
|
-
attachment.value = uploadResult;
|
|
786
|
-
} catch (error) {
|
|
787
|
-
console.error("上传图片失败:", error);
|
|
788
|
-
message.error("上传图片失败");
|
|
789
|
-
attachmentUploading.value = false;
|
|
790
|
-
}
|
|
797
|
+
},
|
|
798
|
+
onUploadDone: () => {
|
|
799
|
+
attachmentUploading.value = false;
|
|
791
800
|
}
|
|
792
|
-
|
|
801
|
+
});
|
|
802
|
+
uploadResult.__file = imageFile;
|
|
803
|
+
attachment.value = uploadResult;
|
|
804
|
+
} catch (error) {
|
|
805
|
+
console.error("上传图片失败:", error);
|
|
806
|
+
message.error("上传图片失败");
|
|
807
|
+
attachmentUploading.value = false;
|
|
808
|
+
}
|
|
809
|
+
};
|
|
810
|
+
const handleDrop = async (e) => {
|
|
811
|
+
var _a;
|
|
812
|
+
e.preventDefault();
|
|
813
|
+
if (props.sendDisabled || attachmentUploading.value) return;
|
|
814
|
+
const dataTransfer = e.dataTransfer;
|
|
815
|
+
console.log("dataTransfer", dataTransfer);
|
|
816
|
+
if (!dataTransfer || !dataTransfer.files.length) return;
|
|
817
|
+
let imageFile = null;
|
|
818
|
+
for (let i = 0; i < dataTransfer.files.length; i++) {
|
|
819
|
+
if (dataTransfer.files[i].type.startsWith("image/")) {
|
|
820
|
+
imageFile = dataTransfer.files[i];
|
|
821
|
+
break;
|
|
793
822
|
}
|
|
794
823
|
}
|
|
824
|
+
if (!imageFile) {
|
|
825
|
+
message.error("仅支持拖入图片文件");
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
const existingFile = (_a = attachment.value) == null ? void 0 : _a.__file;
|
|
829
|
+
if (existingFile && existingFile.size === imageFile.size && existingFile.type === imageFile.type) {
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
if (!isLt(imageFile.size, MAX_IMG_SIZE)) {
|
|
833
|
+
message.error(`图片大小最大支持${MAX_IMG_SIZE}MB`);
|
|
834
|
+
return;
|
|
835
|
+
}
|
|
836
|
+
attachmentUploading.value = true;
|
|
837
|
+
try {
|
|
838
|
+
const uploadResult = await channelStore.uploadImage({
|
|
839
|
+
file: imageFile,
|
|
840
|
+
onUploadStart: () => {
|
|
841
|
+
attachmentUploading.value = true;
|
|
842
|
+
},
|
|
843
|
+
onUploadDone: () => {
|
|
844
|
+
attachmentUploading.value = false;
|
|
845
|
+
}
|
|
846
|
+
});
|
|
847
|
+
uploadResult.__file = imageFile;
|
|
848
|
+
attachment.value = uploadResult;
|
|
849
|
+
} catch (error) {
|
|
850
|
+
console.error("拖拽上传图片失败:", error);
|
|
851
|
+
message.error("拖拽上传图片失败");
|
|
852
|
+
attachmentUploading.value = false;
|
|
853
|
+
}
|
|
795
854
|
};
|
|
796
855
|
const uploadImgHandler = async (file) => {
|
|
797
856
|
if (!file.type.startsWith("image/")) {
|
|
@@ -999,7 +1058,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
999
1058
|
__props.msgs.length ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
1000
1059
|
__props.isNoMore ? (openBlock(), createElementBlock("div", _hoisted_3, "没有更多消息了~")) : loadingMore.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
1001
1060
|
createVNode(unref(LoadingOutlined)),
|
|
1002
|
-
_cache[
|
|
1061
|
+
_cache[2] || (_cache[2] = createElementVNode("span", { style: { "margin-left": "10px" } }, "正在加载,请稍候", -1))
|
|
1003
1062
|
])) : createCommentVNode("", true)
|
|
1004
1063
|
])) : createCommentVNode("", true),
|
|
1005
1064
|
__props.msgs.length ? (openBlock(), createElementBlock("div", _hoisted_5, [
|
|
@@ -1023,7 +1082,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1023
1082
|
class: "emptyChatroomContent",
|
|
1024
1083
|
style: normalizeStyle({ height: ((_c = curChannel.value) == null ? void 0 : _c.ext) ? "calc(100% - 48px)" : "100%" })
|
|
1025
1084
|
}, [
|
|
1026
|
-
_cache[
|
|
1085
|
+
_cache[3] || (_cache[3] = createElementVNode("div", null, "欢迎来到", -1)),
|
|
1027
1086
|
createElementVNode("h1", null, "#" + toDisplayString(__props.channelName), 1)
|
|
1028
1087
|
], 4))
|
|
1029
1088
|
], 38),
|
|
@@ -1075,17 +1134,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1075
1134
|
}, null, 8, ["src"])
|
|
1076
1135
|
])) : createCommentVNode("", true)
|
|
1077
1136
|
])) : createCommentVNode("", true),
|
|
1078
|
-
createElementVNode("div",
|
|
1079
|
-
|
|
1137
|
+
createElementVNode("div", {
|
|
1138
|
+
class: "chatroomInputWrapper",
|
|
1139
|
+
onDragover: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
1140
|
+
}, ["prevent"])),
|
|
1141
|
+
onDrop: withModifiers(handleDrop, ["prevent"])
|
|
1142
|
+
}, [
|
|
1143
|
+
createElementVNode("div", _hoisted_17, [
|
|
1080
1144
|
createVNode(unref(Popover), { placement: "topLeft" }, {
|
|
1081
1145
|
content: withCtx(() => [
|
|
1082
|
-
createElementVNode("div",
|
|
1146
|
+
createElementVNode("div", _hoisted_18, [
|
|
1083
1147
|
(openBlock(), createElementBlock(Fragment, null, renderList(emjjData, (value, i) => {
|
|
1084
1148
|
return createElementVNode("span", {
|
|
1085
1149
|
key: i,
|
|
1086
1150
|
style: { "font-size": "16px", "cursor": "pointer" },
|
|
1087
1151
|
onClick: ($event) => insertEmj(i)
|
|
1088
|
-
}, toDisplayString(value), 9,
|
|
1152
|
+
}, toDisplayString(value), 9, _hoisted_19);
|
|
1089
1153
|
}), 64))
|
|
1090
1154
|
])
|
|
1091
1155
|
]),
|
|
@@ -1095,7 +1159,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1095
1159
|
type: "text",
|
|
1096
1160
|
disabled: __props.sendDisabled
|
|
1097
1161
|
}, {
|
|
1098
|
-
default: withCtx(() => [..._cache[
|
|
1162
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [
|
|
1099
1163
|
createElementVNode("svg", {
|
|
1100
1164
|
width: "21",
|
|
1101
1165
|
height: "21",
|
|
@@ -1130,7 +1194,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1130
1194
|
onBlur: handleInputBlur,
|
|
1131
1195
|
onPaste: handlePaste
|
|
1132
1196
|
}, null, 8, ["value", "placeholder", "disabled", "onKeydown", "onClick"]),
|
|
1133
|
-
createElementVNode("div",
|
|
1197
|
+
createElementVNode("div", _hoisted_20, [
|
|
1134
1198
|
createVNode(unref(Upload), {
|
|
1135
1199
|
"before-upload": uploadImgHandler,
|
|
1136
1200
|
"show-upload-list": false,
|
|
@@ -1145,7 +1209,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1145
1209
|
loading: attachmentUploading.value,
|
|
1146
1210
|
disabled: __props.sendDisabled || attachmentUploading.value
|
|
1147
1211
|
}, {
|
|
1148
|
-
icon: withCtx(() => [..._cache[
|
|
1212
|
+
icon: withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
1149
1213
|
createElementVNode("svg", {
|
|
1150
1214
|
width: "21",
|
|
1151
1215
|
height: "18",
|
|
@@ -1170,14 +1234,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1170
1234
|
]),
|
|
1171
1235
|
_: 1
|
|
1172
1236
|
}, 8, ["accept", "disabled"]),
|
|
1173
|
-
_cache[
|
|
1237
|
+
_cache[7] || (_cache[7] = createElementVNode("span", { class: "lineSeparator" }, null, -1)),
|
|
1174
1238
|
createVNode(unref(Button), {
|
|
1175
1239
|
class: "chatroomButtonArrowUp",
|
|
1176
1240
|
type: "text",
|
|
1177
1241
|
disabled: __props.sendDisabled,
|
|
1178
1242
|
onClick: handleSendText
|
|
1179
1243
|
}, {
|
|
1180
|
-
icon: withCtx(() => [..._cache[
|
|
1244
|
+
icon: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
1181
1245
|
createElementVNode("svg", {
|
|
1182
1246
|
width: "36",
|
|
1183
1247
|
height: "36",
|
|
@@ -1200,7 +1264,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1200
1264
|
_: 1
|
|
1201
1265
|
}, 8, ["disabled"])
|
|
1202
1266
|
])
|
|
1203
|
-
])
|
|
1267
|
+
], 32)
|
|
1204
1268
|
])
|
|
1205
1269
|
]),
|
|
1206
1270
|
createVNode(AitPersonPopover, {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineComponent, ref, h, watch, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createCommentVNode, createVNode } from "vue";
|
|
2
2
|
import { List, Typography } from "ant-design-vue";
|
|
3
|
-
import { _ as _sfc_main$1 } from "./index.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { _ as _sfc_main$1 } from "./index.vue_vue_type_script_setup_true_lang-CvCfYqe9.mjs";
|
|
4
4
|
import { a as useServerStore, u as useChannelStore } from "./index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
|
|
5
5
|
import "./index-L_drmZir.mjs";
|
|
6
6
|
import { useLocalStorage } from "@vueuse/core";
|
|
7
|
-
import { L as LoadingOutlined } from "./index.vue_vue_type_style_index_0_lang-
|
|
7
|
+
import { L as LoadingOutlined } from "./index.vue_vue_type_style_index_0_lang-Bzp6GXSr.mjs";
|
|
8
8
|
const _hoisted_1 = { class: "yx-chat-page-container" };
|
|
9
9
|
const _hoisted_2 = { class: "header-wrap" };
|
|
10
10
|
const _hoisted_3 = { class: "left" };
|