@zjw-jszn/shared-imsdk 1.0.12 → 1.0.13
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/api/index.d.ts +5 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/shared-imsdk.css +108 -90
- package/dist/shared-imsdk.es.js +220 -66
- package/dist/shared-imsdk.umd.cjs +221 -65
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __SHARED_IMSDK_CSS__ = ".confirm-dialog-mask[data-v-69eaf313] {\n position: fixed;\n z-index: 12000;\n inset: 0;\n\n background: rgba(15, 23, 42, 0.35);\n backdrop-filter: blur(2px);\n}\n.confirm-dialog[data-v-69eaf313] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n width: min(420px, calc(100vw - 32px));\n border: 1px solid #e8edf4;\n border-radius: 12px;\n\n background: #fff;\n box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22);\n}\n.confirm-dialog-header[data-v-69eaf313] {\n padding: 16px 18px 8px;\n}\n.confirm-dialog-title[data-v-69eaf313] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #1f2937;\n}\n.confirm-dialog-body[data-v-69eaf313] {\n padding: 0 18px 10px;\n}\n.confirm-dialog-message[data-v-69eaf313] {\n margin: 0;\n font-size: 14px;\n line-height: 1.55;\n color: #4b5563;\n}\n.confirm-dialog-error[data-v-69eaf313] {\n margin: 10px 0 0;\n font-size: 13px;\n line-height: 1.45;\n color: #cf1322;\n}\n.confirm-dialog-footer[data-v-69eaf313] {\n display: flex;\n gap: 10px;\n justify-content: flex-end;\n padding: 14px 18px 18px;\n}\n.dialog-btn[data-v-69eaf313] {\n cursor: pointer;\n\n min-width: 80px;\n height: 34px;\n padding: 0 14px;\n border: 1px solid transparent;\n border-radius: 8px;\n\n font-size: 14px;\n\n transition: all 0.2s ease;\n}\n.dialog-btn[data-v-69eaf313]:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n.cancel-btn[data-v-69eaf313] {\n border-color: #d9d9d9;\n color: #595959;\n background: #fff;\n}\n.cancel-btn[data-v-69eaf313]:hover:not(:disabled) {\n border-color: #bfbfbf;\n color: #262626;\n background: #fafafa;\n}\n.confirm-btn[data-v-69eaf313] {\n border-color: #0e77cc;\n color: #fff;\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n}\n.confirm-btn[data-v-69eaf313]:hover:not(:disabled) {\n border-color: #0d6db8;\n filter: brightness(1.03);\n}\n.v3-body-inner{scroll-behavior:smooth;scrollbar-color:#393d3f rgba(0,0,0,.1);scrollbar-width:thin}.v3-body-inner::-webkit-scrollbar{width:8px}.v3-body-inner::-webkit-scrollbar-track{background-color:transparent}.v3-body-inner::-webkit-scrollbar-thumb{display:none;background:rgba(0,0,0,.3);border-radius:5px}.v3-body-inner:hover::-webkit-scrollbar-thumb{display:block}.v3-emoji-picker{height:320px;width:280px;box-shadow:0 2px 10px #0003;border-radius:10px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;text-align:left}.v3-emoji-picker *{box-sizing:border-box}.v3-emoji-picker .v3-header{padding:15px 15px 13px;border-bottom:1px solid}.v3-emoji-picker .v3-header .v3-groups{display:flex}.v3-emoji-picker .v3-header .v3-groups .v3-group{flex-grow:1;padding:0;margin:0;border:none;background:none;font-size:23px;cursor:pointer;position:relative;display:block;opacity:.7;transition:.2s}.v3-emoji-picker .v3-header .v3-groups .v3-group.v3-is-hidden{display:none}.v3-emoji-picker .v3-header .v3-groups .v3-group:first-child,.v3-emoji-picker .v3-header .v3-groups .v3-group:last-child{flex-grow:0}.v3-emoji-picker .v3-header .v3-groups .v3-group:hover{opacity:1}.v3-emoji-picker .v3-header .v3-groups .v3-group span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-header .v3-groups .v3-group span img{display:block;width:1em;height:auto}.v3-emoji-picker .v3-spacing{height:11px}.v3-emoji-picker .v3-search input{width:100%;display:block;height:26px;padding:0 10px;border:1px solid;border-radius:3px;font-size:12px;transition:.2s}.v3-emoji-picker .v3-search input:focus{outline:none}.v3-emoji-picker .v3-body{padding:0 0 15px 11px;min-height:0;flex-grow:1}.v3-emoji-picker .v3-body .v3-body-inner{flex-grow:1;min-height:0;overflow-y:auto;overflow-x:hidden;height:100%;padding-right:11px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5{margin:0;top:0;padding:7px 0 3px 4px;z-index:2}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5.v3-sticky{position:sticky}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis{display:flex;font-size:18px;flex-wrap:wrap}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button{cursor:pointer;border:none;background:none;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;flex-basis:12.5%;max-width:12.5%;flex-grow:1;padding:0;font-size:22px;position:relative}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:after{content:\"\";width:100%;padding-bottom:100%}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{max-width:100%;padding:4px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span,.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{position:absolute;top:0;left:0;width:100%;height:100%}.v3-emoji-picker .v3-body .v3-body-inner.is-mac .v3-emojis button{font-family:\"Apple Color Emoji\"}.v3-emoji-picker .v3-footer{font-size:14px;border-top:1px solid #dddddd;padding:15px;display:flex;align-items:center;justify-content:space-between;position:relative}.v3-emoji-picker .v3-footer .v3-tone,.v3-emoji-picker .v3-footer .v3-foot-left{display:flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone img,.v3-emoji-picker .v3-footer .v3-foot-left img{width:20px;display:block}.v3-emoji-picker .v3-footer .v3-tone>span:first-child,.v3-emoji-picker .v3-footer .v3-foot-left>span:first-child{margin-right:6px}.v3-emoji-picker .v3-footer .v3-foot-left>span.v3-text{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v3-emoji-picker .v3-footer .v3-tone{border:none;padding:0;background:none;cursor:pointer;display:inline-flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone>span{display:inline-flex;vertical-align:top}.v3-emoji-picker .v3-footer .v3-tone .v3-text{font-size:13px}.v3-emoji-picker .v3-footer .v3-tone .v3-icon{display:inline-flex;height:15px;width:15px;vertical-align:middle;align-self:center;border:2px solid rgba(0,0,0,.2)}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-neutral{background-color:#ffd225}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fb{background-color:#ffdfbd}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fc{background-color:#e9c197}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fd{background-color:#c88e62}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fe{background-color:#a86637}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3ff{background-color:#60463a}.v3-emoji-picker .v3-footer .v3-tone .is-mac span{font-family:\"Apple Color Emoji\"}.v3-skin-tones{position:absolute;height:100%;width:60%;top:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 15px;opacity:0;visibility:hidden;transition:.2s;border-radius:0 0 10px 10px}.v3-skin-tones.v3-is-open{opacity:1;visibility:visible}.v3-skin-tones .v3-skin-tone{display:inline-block;height:15px;width:25px;border:none;padding:0;cursor:pointer;transition:0ms}.v3-skin-tones .v3-skin-tone:hover{transform:scale(1.1);transition:.2s}.v3-skin-tones .v3-skin-tone-neutral{color:#ffd225;background-color:#ffd225}.v3-skin-tones .v3-skin-tone-1f3fb{color:#ffdfbd;background-color:#ffdfbd}.v3-skin-tones .v3-skin-tone-1f3fc{color:#e9c197;background-color:#e9c197}.v3-skin-tones .v3-skin-tone-1f3fd{color:#c88e62;background-color:#c88e62}.v3-skin-tones .v3-skin-tone-1f3fe{color:#a86637;background-color:#a86637}.v3-skin-tones .v3-skin-tone-1f3ff{color:#60463a;background-color:#60463a}.v3-input-emoji-picker *{box-sizing:border-box}.v3-input-emoji-picker .v3-input-picker-root{position:relative}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-input,.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{width:100%;height:40px;border:1px solid #999;padding-left:15px}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{min-height:80px;resize:vertical}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea+.v3-input-picker-wrap .v3-input-picker-icon{top:auto;bottom:5px}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon{display:inline-flex;position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:24px;border:none;background:none;padding:0 5px;cursor:pointer}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon img{display:block;width:1em;height:1em}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-emoji-picker{opacity:0;visibility:hidden;transition:.2s}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap.v3-picker-is-open .v3-emoji-picker{opacity:1;visibility:visible;z-index:999}.v3-emoji-picker{--v3-picker-bg: #ffffff;--v3-picker-fg: #000000;--v3-picker-border: #dddddd;--v3-picker-input-bg: var(--v3-picker-bg);--v3-picker-input-border: #cccccc;--v3-picker-input-focus-border: #000000;--v3-group-image-filter: none;--v3-picker-emoji-hover: #f7f7f7;background:var(--v3-picker-bg);color:var(--v3-picker-fg)}.v3-emoji-picker .v3-footer,.v3-emoji-picker .v3-header{border-color:var(--v3-picker-border)}.v3-emoji-picker .v3-groups{filter:var(--v3-group-image-filter)}.v3-emoji-picker .v3-tone{color:var(--v3-picker-fg)}.v3-emoji-picker .v3-search input{background:var(--v3-picker-input-bg);border-color:var(--v3-picker-input-border);color:inherit}.v3-emoji-picker .v3-search input:focus{border-color:var(--v3-picker-input-focus-border)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5,.v3-emoji-picker .v3-skin-tones{background:var(--v3-picker-bg)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:hover{background:var(--v3-picker-emoji-hover, #f7f7f7)}@media (prefers-color-scheme: dark){.v3-emoji-picker.v3-color-theme-auto{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}}.v3-emoji-picker.v3-color-theme-dark{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}\n\n.chat-room[data-v-1459079f] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #fff;\n}\n.chat-room-header[data-v-1459079f] {\n display: flex;\n gap: 12px;\n align-items: center;\n\n padding: 8px 20px;\n border-bottom: 1px solid #e8e8e8;\n\n background: linear-gradient(180deg, #fff 0%, #fafafa 100%);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n.back-btn[data-v-1459079f] {\n cursor: pointer;\n\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n width: 36px;\n height: 36px;\n border: none;\n border-radius: 50%;\n\n font-size: 16px;\n color: #595959;\n\n background: #f0f0f0;\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.back-btn[data-v-1459079f]:hover {\n transform: scale(1.05);\n color: #0e77cc;\n background: #e8e8e8;\n}\n.back-btn[data-v-1459079f]:active {\n transform: scale(0.95);\n}\n.title[data-v-1459079f] {\n display: flex;\n flex: 1;\n gap: 12px;\n align-items: center;\n}\n.header-actions[data-v-1459079f] {\n display: flex;\n flex-shrink: 0;\n align-items: flex-end;\n}\n.end-session-btn[data-v-1459079f] {\n cursor: pointer;\n\n min-width: 90px;\n height: 32px;\n padding: 0 12px;\n border: 1px solid #ffd6d6;\n border-radius: 16px;\n\n font-size: 13px;\n font-weight: 500;\n color: #d4380d;\n\n background: #fff2f0;\n\n transition: all 0.2s ease;\n}\n.end-session-btn[data-v-1459079f]:hover:not(:disabled) {\n border-color: #ffb3ad;\n background: #ffe7e2;\n}\n.end-session-btn[data-v-1459079f]:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n.avatar-wrapper[data-v-1459079f] {\n position: relative;\n flex-shrink: 0;\n width: 42px;\n height: 42px;\n}\n.avatar-img[data-v-1459079f] {\n width: 100%;\n height: 100%;\n border: 2px solid white;\n border-radius: 50%;\n\n object-fit: cover;\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.avatar-text[data-v-1459079f] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 42px;\n height: 42px;\n border: 2px solid white;\n border-radius: 50%;\n\n font-size: 16px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 8px rgba(14, 119, 204, 0.3);\n}\n.user-info[data-v-1459079f] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.name[data-v-1459079f] {\n font-size: 15px;\n font-weight: 600;\n color: #262626;\n letter-spacing: 0.2px;\n}\n.messages[data-v-1459079f] {\n position: relative;\n\n overflow-y: auto;\n flex: 1;\n\n padding: 24px 20px;\n\n background: linear-gradient(180deg, #f5f5f5 0%, #fafafa 100%);\n}\n\n/* 自定义滚动条 */\n.messages[data-v-1459079f]::-webkit-scrollbar {\n width: 6px;\n}\n.messages[data-v-1459079f]::-webkit-scrollbar-track {\n background: transparent;\n}\n.messages[data-v-1459079f]::-webkit-scrollbar-thumb {\n border-radius: 3px;\n background: #d9d9d9;\n}\n.messages[data-v-1459079f]::-webkit-scrollbar-thumb:hover {\n background: #bfbfbf;\n}\n.loading-more[data-v-1459079f] {\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: center;\n\n padding: 16px;\n\n font-size: 13px;\n color: #8c8c8c;\n}\n.loading-spinner-small[data-v-1459079f] {\n width: 20px;\n height: 20px;\n border: 2px solid #f0f0f0;\n border-top: 2px solid #0e77cc;\n border-radius: 50%;\n\n animation: spin-1459079f 0.8s linear infinite;\n}\n.no-more[data-v-1459079f] {\n padding: 12px;\n font-size: 12px;\n color: #bfbfbf;\n text-align: center;\n}\n.loading-state[data-v-1459079f] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n padding: 60px 20px;\n\n color: #bfbfbf;\n}\n.loading-spinner[data-v-1459079f] {\n width: 40px;\n height: 40px;\n margin-bottom: 16px;\n border: 3px solid #f0f0f0;\n border-top: 3px solid #0e77cc;\n border-radius: 50%;\n\n animation: spin-1459079f 0.8s linear infinite;\n}\n@keyframes spin-1459079f {\n0% { transform: rotate(0deg);\n}\n100% { transform: rotate(360deg);\n}\n}\n.empty-messages[data-v-1459079f] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n\n color: #bfbfbf;\n}\n.empty-messages .icon[data-v-1459079f] {\n margin-bottom: 16px;\n font-size: 64px;\n opacity: 0.5;\n}\n.empty-messages p[data-v-1459079f] {\n margin: 0;\n font-size: 14px;\n font-weight: 400;\n}\n.message-item[data-v-1459079f] {\n display: flex;\n gap: 12px;\n margin-bottom: 24px;\n animation: slide-in-1459079f 0.3s ease-out;\n}\n@keyframes slide-in-1459079f {\nfrom {\n transform: translateY(10px);\n opacity: 0;\n}\nto {\n transform: translateY(0);\n opacity: 1;\n}\n}\n.message-item.is-self[data-v-1459079f] {\n justify-content: flex-end;\n}\n.msg-avatar-wrapper[data-v-1459079f] {\n position: relative;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n}\n.msg-avatar-img[data-v-1459079f] {\n width: 100%;\n height: 100%;\n border: 2px solid white;\n border-radius: 50%;\n\n object-fit: cover;\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n}\n.msg-avatar[data-v-1459079f] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 40px;\n height: 40px;\n border: 2px solid white;\n border-radius: 50%;\n\n font-size: 15px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 6px rgba(14, 119, 204, 0.3);\n}\n.message-content-wrapper[data-v-1459079f] {\n display: flex;\n flex-direction: column;\n max-width: 65%;\n}\n.is-self .message-content-wrapper[data-v-1459079f] {\n align-items: flex-end;\n}\n.message-sender[data-v-1459079f] {\n margin-bottom: 6px;\n font-size: 12px;\n font-weight: 400;\n color: #8c8c8c;\n}\n.message-content[data-v-1459079f] {\n padding: 12px 16px;\n border-radius: 12px;\n\n background-color: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n\n transition: all 0.2s;\n}\n.message-item.is-self .message-content[data-v-1459079f] {\n color: white;\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 8px rgba(14, 119, 204, 0.25);\n}\n.message-text[data-v-1459079f] {\n margin-bottom: 6px;\n\n font-size: 14px;\n line-height: 1.6;\n color: #262626;\n overflow-wrap: break-word;\n}\n.message-item.is-self .message-text[data-v-1459079f] {\n color: white;\n}\n\n/* 图片消息 */\n.message-image[data-v-1459079f] {\n margin-bottom: 6px;\n}\n.message-image img[data-v-1459079f] {\n cursor: pointer;\n\n max-width: 300px;\n max-height: 300px;\n border-radius: 8px;\n\n object-fit: cover;\n\n transition: transform 0.2s;\n}\n.message-image img[data-v-1459079f]:hover {\n transform: scale(1.02);\n}\n\n/* 表情消息 */\n.message-emoji[data-v-1459079f] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-height: 60px;\n margin-bottom: 6px;\n\n font-size: 48px;\n line-height: 1;\n}\n\n/* 文件消息 */\n.message-file[data-v-1459079f] {\n margin-bottom: 6px;\n}\n.file-link[data-v-1459079f] {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n\n padding: 12px 16px;\n border-radius: 8px;\n\n font-size: 14px;\n font-weight: 500;\n color: #262626;\n text-decoration: none;\n\n background-color: #f5f5f5;\n\n transition: all 0.2s;\n}\n.file-link[data-v-1459079f]:hover {\n color: #0e77cc;\n background-color: #e8e8e8;\n}\n.is-self .file-link[data-v-1459079f] {\n color: white;\n background-color: rgba(255, 255, 255, 0.2);\n}\n.is-self .file-link[data-v-1459079f]:hover {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n/* 系统通知 */\n.message-system[data-v-1459079f] {\n margin-bottom: 6px;\n padding: 8px 12px;\n border-left: 3px solid #0e77cc;\n border-radius: 6px;\n\n font-size: 13px;\n color: #8c8c8c;\n text-align: center;\n\n background-color: #f5f5f5;\n}\n.is-self .message-system[data-v-1459079f] {\n border-left-color: white;\n color: rgba(255, 255, 255, 0.9);\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n/* 卡片消息 */\n.message-card[data-v-1459079f] {\n margin-bottom: 6px;\n padding: 12px;\n border: 1px solid #bae6fd;\n border-radius: 8px;\n\n background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);\n}\n.is-self .message-card[data-v-1459079f] {\n border-color: rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.2);\n}\n.message-time[data-v-1459079f] {\n font-size: 11px;\n color: #8c8c8c;\n}\n.message-item.is-self .message-time[data-v-1459079f] {\n color: rgba(255, 255, 255, 0.75);\n}\n.input-area[data-v-1459079f] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n\n padding: 16px 20px;\n border-top: 1px solid #e8e8e8;\n\n background: white;\n box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);\n}\n\n/* 工具栏 */\n.input-toolbar[data-v-1459079f] {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n}\n.tool-btn[data-v-1459079f] {\n cursor: pointer;\n\n display: inline-flex;\n gap: 6px;\n align-items: center;\n\n padding: 8px 14px;\n border: 1.5px solid #e8e8e8;\n border-radius: 8px;\n\n font-size: 13px;\n font-weight: 500;\n color: #595959;\n\n background: white;\n outline: none;\n\n transition: all 0.2s;\n}\n.tool-btn[data-v-1459079f]:hover:not(:disabled) {\n border-color: #0e77cc;\n color: #0e77cc;\n background: #f0f9ff;\n}\n.tool-btn[data-v-1459079f]:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n background: #f5f5f5;\n}\n.tool-btn-text[data-v-1459079f] {\n font-size: 13px;\n}\n.tool-btn-icon[data-v-1459079f] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n width: 18px;\n height: 18px;\n}\n.tool-btn-svg[data-v-1459079f] {\n width: 18px;\n height: 18px;\n}\n.image-btn[data-v-1459079f] {\n border-color: #d9d9d9;\n}\n.emoji-container[data-v-1459079f] {\n position: relative;\n}\n.quick-reply-container[data-v-1459079f] {\n position: relative;\n}\n.quick-reply-trigger[data-v-1459079f] {\n border-color: #d9d9d9;\n}\n.quick-reply-trigger.active[data-v-1459079f] {\n border-color: #0e77cc;\n color: #0e77cc;\n background: #f0f9ff;\n}\n.quick-reply-panel[data-v-1459079f] {\n position: absolute;\n z-index: 1001;\n bottom: calc(100% + 8px);\n left: 0;\n\n overflow: hidden;\n\n width: 320px;\n max-width: min(320px, calc(100vw - 80px));\n border: 1px solid #e8e8e8;\n border-radius: 10px;\n\n background: #fff;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);\n}\n.quick-reply-search[data-v-1459079f] {\n padding: 10px;\n border-bottom: 1px solid #f0f0f0;\n}\n.quick-reply-search input[data-v-1459079f] {\n width: 100%;\n height: 34px;\n padding: 0 10px;\n border: 1px solid #d9d9d9;\n border-radius: 8px;\n\n font-size: 13px;\n color: #595959;\n\n background: #fff;\n outline: none;\n}\n.quick-reply-search input[data-v-1459079f]:focus {\n border-color: #0e77cc;\n box-shadow: 0 0 0 2px rgba(14, 119, 204, 0.08);\n}\n.quick-reply-list[data-v-1459079f] {\n overflow-y: auto;\n max-height: 220px;\n padding: 8px;\n}\n.quick-reply-item[data-v-1459079f] {\n cursor: pointer;\n\n width: 100%;\n margin-bottom: 6px;\n padding: 8px 10px;\n border: 1px solid transparent;\n border-radius: 8px;\n\n font-size: 13px;\n line-height: 1.45;\n color: #595959;\n text-align: left;\n\n background: #f7f8fa;\n}\n.quick-reply-item[data-v-1459079f]:last-child {\n margin-bottom: 0;\n}\n.quick-reply-item[data-v-1459079f]:hover {\n border-color: #b6dcfa;\n color: #0e77cc;\n background: #f0f9ff;\n}\n.quick-reply-empty[data-v-1459079f] {\n padding: 18px 10px;\n font-size: 12px;\n color: #bfbfbf;\n text-align: center;\n}\n.emoji-picker-wrapper[data-v-1459079f] {\n position: absolute;\n z-index: 1000;\n bottom: 100%;\n left: 0;\n\n overflow: hidden;\n\n margin-bottom: 8px;\n border-radius: 8px;\n\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);\n}\n.input-area textarea[data-v-1459079f] {\n resize: none;\n\n width: 100%;\n padding: 12px 14px;\n border: 1.5px solid #e8e8e8;\n border-radius: 8px;\n\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n font-size: 14px;\n line-height: 1.5;\n\n background: #fafafa;\n outline: none;\n\n transition: all 0.2s;\n}\n.input-area textarea[data-v-1459079f]:focus {\n border-color: #0e77cc;\n background: white;\n box-shadow: 0 0 0 3px rgba(14, 119, 204, 0.08);\n}\n.input-area textarea[data-v-1459079f]::placeholder {\n color: #bfbfbf;\n}\n.input-actions[data-v-1459079f] {\n display: flex;\n justify-content: flex-end;\n}\n.send-btn[data-v-1459079f] {\n cursor: pointer;\n\n padding: 10px 28px;\n border: none;\n border-radius: 8px;\n\n font-size: 14px;\n font-weight: 500;\n color: white;\n letter-spacing: 0.3px;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 6px rgba(14, 119, 204, 0.25);\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.send-btn[data-v-1459079f]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(14, 119, 204, 0.35);\n}\n.send-btn[data-v-1459079f]:active {\n transform: translateY(0);\n box-shadow: 0 2px 6px rgba(14, 119, 204, 0.25);\n}\n\n.conversation-list[data-v-66bc5469] {\n overflow-y: auto;\n display: flex;\n flex: 1;\n flex-direction: column;\n\n background: #fff;\n}\n\n/* 自定义滚动条 */\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar {\n width: 6px;\n}\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar-track {\n background: transparent;\n}\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar-thumb {\n border-radius: 3px;\n background: #d9d9d9;\n}\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar-thumb:hover {\n background: #bfbfbf;\n}\n.unread-header[data-v-66bc5469] {\n padding: 8px 20px;\n border-bottom: 1px solid #e8e8e8;\n background: linear-gradient(180deg, #fafafa 0%, #fff 100%);\n}\n.unread-count[data-v-66bc5469] {\n font-size: 15px;\n font-weight: 600;\n color: #262626;\n letter-spacing: 0.3px;\n}\n.search-header[data-v-66bc5469] {\n padding: 10px 16px;\n border-bottom: 1px solid #f0f0f0;\n background: #fff;\n}\n.search-input[data-v-66bc5469] {\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n padding: 0 12px;\n border: 1px solid #d9d9d9;\n border-radius: 8px;\n\n font-size: 13px;\n color: #262626;\n\n background: #fff;\n outline: none;\n\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n.search-input[data-v-66bc5469]::placeholder {\n color: #bfbfbf;\n}\n.search-input[data-v-66bc5469]:focus {\n border-color: #0e77cc;\n box-shadow: 0 0 0 2px rgb(14 119 204 / 12%);\n}\n.loading-state[data-v-66bc5469] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n padding: 60px 20px;\n\n color: #bfbfbf;\n}\n.loading-spinner[data-v-66bc5469] {\n width: 40px;\n height: 40px;\n margin-bottom: 16px;\n border: 3px solid #f0f0f0;\n border-top: 3px solid #0e77cc;\n border-radius: 50%;\n\n animation: spin-66bc5469 0.8s linear infinite;\n}\n@keyframes spin-66bc5469 {\n0% { transform: rotate(0deg);\n}\n100% { transform: rotate(360deg);\n}\n}\n.empty-state[data-v-66bc5469] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n padding: 40px 20px;\n\n color: #bfbfbf;\n}\n.empty-icon[data-v-66bc5469] {\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n opacity: 0.5;\n}\n.empty-state p[data-v-66bc5469] {\n margin: 0;\n font-size: 14px;\n font-weight: 400;\n}\n.conversation-item[data-v-66bc5469] {\n cursor: pointer;\n\n position: relative;\n\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n\n background: white;\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.conversation-item[data-v-66bc5469]:hover {\n background-color: #f5f7fa;\n}\n.conversation-item.active[data-v-66bc5469] {\n padding-left: 13px;\n border-left: 3px solid #0e77cc;\n background: linear-gradient(90deg, #ecf5ff 0%, #fff 100%);\n}\n.conversation-item[data-v-66bc5469]:last-child {\n border-bottom: none;\n}\n\n/* 会话项内容布局 */\n.conversation-item-content[data-v-66bc5469] {\n display: flex;\n gap: 12px;\n align-items: center;\n width: 100%;\n}\n.avatar-wrapper[data-v-66bc5469] {\n position: relative;\n flex-shrink: 0;\n width: 44px;\n height: 44px;\n}\n.avatar-img[data-v-66bc5469] {\n width: 100%;\n height: 100%;\n border: 2px solid white;\n border-radius: 50%;\n\n object-fit: cover;\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.avatar-text[data-v-66bc5469] {\n position: absolute;\n top: 0;\n left: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 44px;\n height: 44px;\n border: 2px solid white;\n border-radius: 50%;\n\n font-size: 16px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 8px rgba(14, 119, 204, 0.3);\n}\n.session-info[data-v-66bc5469] {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 4px;\n justify-content: center;\n\n min-width: 0;\n}\n.session-name[data-v-66bc5469] {\n font-size: 14px;\n font-weight: 600;\n color: #262626;\n letter-spacing: 0.2px;\n}\n.content-text[data-v-66bc5469] {\n overflow: hidden;\n display: block;\n\n font-size: 13px;\n line-height: 1.4;\n color: #595959;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.session-meta[data-v-66bc5469] {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n gap: 6px;\n align-items: flex-end;\n}\n.session-time[data-v-66bc5469] {\n font-size: 12px;\n font-weight: 400;\n color: #8c8c8c;\n}\n.unread-badge[data-v-66bc5469] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-width: 20px;\n height: 20px;\n margin-left: 8px;\n padding: 0 7px;\n border-radius: 10px;\n\n font-size: 12px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);\n box-shadow: 0 2px 6px rgba(255, 77, 79, 0.3);\n\n animation: pulse-66bc5469 2s ease-in-out infinite;\n}\n@keyframes pulse-66bc5469 {\n0%, 100% {\n transform: scale(1);\n}\n50% {\n transform: scale(1.05);\n}\n}\n\n.chat-window[data-v-00d50ef7] {\n position: fixed;\n z-index: 9998;\n\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n min-width: 380px;\n min-height: 360px;\n border: 1px solid rgba(9, 62, 105, 0.14);\n border-radius: 18px;\n\n background: linear-gradient(180deg, #fff 0%, #f9fcff 100%);\n backdrop-filter: blur(6px);\n box-shadow: 0 24px 80px rgba(11, 58, 106, 0.24);\n\n animation: window-enter-00d50ef7 0.22s ease-out;\n}\n.chat-window.is-dragging[data-v-00d50ef7] {\n cursor: move;\n box-shadow: 0 28px 88px rgba(11, 58, 106, 0.28);\n}\n.chat-window.is-resizing[data-v-00d50ef7] {\n cursor: nwse-resize;\n}\n.chat-header[data-v-00d50ef7] {\n cursor: move;\n user-select: none;\n\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n\n padding: 10px 20px;\n\n color: white;\n\n background: linear-gradient(135deg, #0f83df 0%, #0e6fbe 62%, #0c5fa5 100%);\n box-shadow: 0 2px 12px rgba(14, 119, 204, 0.26);\n}\n\n/* 用户信息区域 */\n.user-info-section[data-v-00d50ef7] {\n display: flex;\n flex: 1;\n gap: 12px;\n align-items: center;\n}\n.user-avatar-wrapper[data-v-00d50ef7] {\n position: relative;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n}\n.user-avatar[data-v-00d50ef7] {\n width: 100%;\n height: 100%;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n\n object-fit: cover;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n.user-avatar-default[data-v-00d50ef7] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 40px;\n height: 40px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n\n font-size: 16px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.1) 100%);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n.status-indicator[data-v-00d50ef7] {\n cursor: pointer;\n\n position: absolute;\n right: -2px;\n bottom: -2px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 14px;\n height: 14px;\n border: 2px solid white;\n border-radius: 50%;\n\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n\n transition: transform 0.2s;\n}\n.status-indicator[data-v-00d50ef7]:hover {\n transform: scale(1.15);\n}\n.status-indicator svg[data-v-00d50ef7] {\n width: 8px;\n height: 8px;\n}\n\n/* 状态下拉菜单 */\n.status-dropdown[data-v-00d50ef7] {\n position: absolute;\n z-index: 100;\n top: 100%;\n left: 0;\n\n min-width: 120px;\n margin-top: 8px;\n padding: 6px;\n border: 1px solid #dbe7f5;\n border-radius: 10px;\n\n background: white;\n box-shadow: 0 12px 30px rgba(11, 58, 106, 0.18);\n}\n.status-option[data-v-00d50ef7] {\n cursor: pointer;\n\n display: flex;\n gap: 8px;\n align-items: center;\n\n padding: 8px 10px;\n border-radius: 6px;\n\n color: #262626;\n\n transition: all 0.2s;\n}\n.status-option[data-v-00d50ef7]:hover {\n background: #f5f5f5;\n}\n.status-option.active[data-v-00d50ef7] {\n color: #0e77cc;\n background: #e6f7ff;\n}\n.status-dot[data-v-00d50ef7] {\n flex-shrink: 0;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n.status-option span[data-v-00d50ef7] {\n flex: 1;\n font-size: 13px;\n}\n.check-icon[data-v-00d50ef7] {\n width: 16px;\n height: 16px;\n opacity: 0.8;\n}\n.user-details[data-v-00d50ef7] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.user-name[data-v-00d50ef7] {\n font-size: 14px;\n font-weight: 600;\n letter-spacing: 0.2px;\n}\n.user-status[data-v-00d50ef7] {\n font-size: 12px;\n font-weight: 400;\n opacity: 0.9;\n}\n.close-btn[data-v-00d50ef7] {\n cursor: pointer;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 8px;\n\n font-size: 28px;\n line-height: 1;\n color: white;\n\n opacity: 0.8;\n background: none;\n\n transition: all 0.2s;\n}\n.close-btn[data-v-00d50ef7]:hover {\n transform: rotate(90deg);\n opacity: 1;\n background: rgba(255, 255, 255, 0.15);\n}\n.close-btn[data-v-00d50ef7]:active {\n transform: rotate(90deg) scale(0.95);\n}\n.chat-body[data-v-00d50ef7] {\n overflow: hidden;\n display: flex;\n flex: 1;\n\n min-height: 0;\n\n background: linear-gradient(180deg, #fbfdff 0%, #f4f8fc 100%);\n}\n\n/* 第一栏:一级菜单 */\n.first-sidebar[data-v-00d50ef7] {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n\n width: 76px;\n padding: 0;\n border-right: 1px solid #dce8f3;\n\n background: linear-gradient(180deg, #f5f9ff 0%, #f0f6fd 100%);\n}\n.menu-items-container[data-v-00d50ef7] {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n\n padding: 18px 0;\n}\n.menu-item[data-v-00d50ef7] {\n cursor: pointer;\n\n position: relative;\n\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n width: 50px;\n height: 50px;\n margin-bottom: 12px;\n border: 1px solid transparent;\n border-radius: 12px;\n\n font-weight: 400;\n color: #7d8fa3;\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.menu-item[data-v-00d50ef7]:last-child {\n margin-bottom: 0;\n}\n.menu-item[data-v-00d50ef7]:hover {\n transform: translateY(-1px);\n border-color: #d2e3f3;\n color: #0e77cc;\n background: #f7fbff;\n}\n.menu-item.active[data-v-00d50ef7] {\n border-color: #0e77cc;\n color: white;\n background: linear-gradient(135deg, #0f83df 0%, #0d6db8 100%);\n box-shadow: 0 8px 20px rgba(14, 119, 204, 0.35);\n}\n.menu-item.active[data-v-00d50ef7]::before {\n content: '';\n\n position: absolute;\n top: 50%;\n left: -11px;\n transform: translateY(-50%);\n\n width: 3px;\n height: 24px;\n border-radius: 2px;\n\n background: #0e77cc;\n}\n.menu-item .icon[data-v-00d50ef7] {\n width: 23px;\n height: 23px;\n}\n.menu-item .label[data-v-00d50ef7] {\n display: none;\n}\n.menu-item .menu-badge[data-v-00d50ef7] {\n position: absolute;\n top: 6px;\n right: 6px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border: 2px solid white;\n border-radius: 8px;\n\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n color: white;\n\n background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);\n box-shadow: 0 2px 6px rgba(255, 77, 79, 0.4);\n}\n.menu-item.active .menu-badge[data-v-00d50ef7] {\n border-color: #0e77cc;\n color: #ff4d4f;\n background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);\n}\n\n/* 第二栏:二级侧边栏 */\n.second-sidebar[data-v-00d50ef7] {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n\n width: 250px;\n border-right: 1px solid #dce8f3;\n\n background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);\n}\n\n/* 第三栏:聊天区域 */\n.chat-area[data-v-00d50ef7] {\n overflow: hidden;\n display: flex;\n flex: 1;\n flex-direction: column;\n\n min-width: 0;\n\n background: radial-gradient(circle at top right, rgba(14, 119, 204, 0.08) 0%, rgba(255, 255, 255, 0) 42%), #fff;\n}\n.empty-chat[data-v-00d50ef7] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n\n color: #8ca1b8;\n\n background: linear-gradient(180deg, #f7fbff 0%, #fff 100%);\n}\n.empty-chat .empty-icon[data-v-00d50ef7] {\n width: 72px;\n height: 72px;\n margin-bottom: 18px;\n\n opacity: 0.5;\n filter: drop-shadow(0 8px 20px rgba(11, 58, 106, 0.16));\n}\n.empty-chat p[data-v-00d50ef7] {\n margin: 0;\n font-size: 15px;\n font-weight: 500;\n letter-spacing: 0.3px;\n}\n\n/* 拉伸手柄 */\n.resize-handle[data-v-00d50ef7] {\n cursor: nwse-resize;\n\n position: absolute;\n z-index: 9999;\n right: 0;\n bottom: 0;\n\n width: 24px;\n height: 24px;\n\n opacity: 0.5;\n\n transition: opacity 0.2s;\n}\n.resize-handle[data-v-00d50ef7]:hover {\n opacity: 1;\n}\n.resize-handle[data-v-00d50ef7]::after {\n content: '';\n\n position: absolute;\n right: 6px;\n bottom: 6px;\n\n width: 0;\n height: 0;\n border-top: 10px solid transparent;\n border-right: 10px solid #0e77cc;\n border-bottom: 10px solid #0e77cc;\n border-left: 10px solid transparent;\n\n opacity: 0.6;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));\n}\n@keyframes window-enter-00d50ef7 {\nfrom {\n transform: translate3d(0, 16px, 0) scale(0.98);\n opacity: 0;\n}\nto {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 1;\n}\n}\n@media (width <= 960px) {\n.second-sidebar[data-v-00d50ef7] {\n width: 220px;\n}\n}\n\n.float-button[data-v-a60f9c33] {\n touch-action: none;\n cursor: grab;\n user-select: none;\n\n position: fixed;\n z-index: 9999;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 64px;\n height: 64px;\n border: 1px solid #0e77cc;\n border-radius: 50%;\n\n background: #fff;\n box-shadow: 0 4px 20px rgba(14, 119, 204, 0.3);\n\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.float-button.is-hidden[data-v-a60f9c33] {\n pointer-events: none;\n transform: scale(0.88);\n opacity: 0;\n}\n.float-button[data-v-a60f9c33]:hover {\n transform: translateY(-2px);\n box-shadow: 0 6px 30px rgba(14, 119, 204, 0.4);\n}\n.float-button[data-v-a60f9c33]:active {\n transform: translateY(0) scale(0.95);\n}\n.float-button.is-dragging[data-v-a60f9c33] {\n cursor: grabbing;\n transform: scale(1.08);\n box-shadow: 0 8px 35px rgba(14, 119, 204, 0.35);\n}\n.float-button .icon[data-v-a60f9c33] {\n pointer-events: none;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 32px;\n height: 32px;\n\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));\n}\n.float-button .icon img[data-v-a60f9c33] {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.float-button .badge[data-v-a60f9c33] {\n pointer-events: none;\n\n position: absolute;\n top: 4px;\n right: 4px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border: 2.5px solid white;\n border-radius: 10px;\n\n font-size: 11px;\n font-weight: 600;\n line-height: 1;\n color: white;\n\n background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);\n box-shadow: 0 2px 8px rgba(255, 77, 79, 0.4);\n}\n.float-button.has-unread[data-v-a60f9c33] {\n animation: pulse-a60f9c33 2s ease-in-out infinite;\n}\n@keyframes pulse-a60f9c33 {\n0%, 100% {\n box-shadow: 0 4px 20px rgba(14, 119, 204, 0.3),\n 0 0 0 0 rgba(255, 77, 79, 0.4);\n}\n50% {\n box-shadow: 0 4px 20px rgba(14, 119, 204, 0.3),\n 0 0 0 12px rgba(255, 77, 79, 0);\n}\n}\n/*$vite$:1*/"
|
|
1
|
+
const __SHARED_IMSDK_CSS__ = ".confirm-dialog-mask[data-v-69eaf313] {\n position: fixed;\n z-index: 12000;\n inset: 0;\n\n background: rgba(15, 23, 42, 0.35);\n backdrop-filter: blur(2px);\n}\n.confirm-dialog[data-v-69eaf313] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n width: min(420px, calc(100vw - 32px));\n border: 1px solid #e8edf4;\n border-radius: 12px;\n\n background: #fff;\n box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22);\n}\n.confirm-dialog-header[data-v-69eaf313] {\n padding: 16px 18px 8px;\n}\n.confirm-dialog-title[data-v-69eaf313] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #1f2937;\n}\n.confirm-dialog-body[data-v-69eaf313] {\n padding: 0 18px 10px;\n}\n.confirm-dialog-message[data-v-69eaf313] {\n margin: 0;\n font-size: 14px;\n line-height: 1.55;\n color: #4b5563;\n}\n.confirm-dialog-error[data-v-69eaf313] {\n margin: 10px 0 0;\n font-size: 13px;\n line-height: 1.45;\n color: #cf1322;\n}\n.confirm-dialog-footer[data-v-69eaf313] {\n display: flex;\n gap: 10px;\n justify-content: flex-end;\n padding: 14px 18px 18px;\n}\n.dialog-btn[data-v-69eaf313] {\n cursor: pointer;\n\n min-width: 80px;\n height: 34px;\n padding: 0 14px;\n border: 1px solid transparent;\n border-radius: 8px;\n\n font-size: 14px;\n\n transition: all 0.2s ease;\n}\n.dialog-btn[data-v-69eaf313]:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n.cancel-btn[data-v-69eaf313] {\n border-color: #d9d9d9;\n color: #595959;\n background: #fff;\n}\n.cancel-btn[data-v-69eaf313]:hover:not(:disabled) {\n border-color: #bfbfbf;\n color: #262626;\n background: #fafafa;\n}\n.confirm-btn[data-v-69eaf313] {\n border-color: #0e77cc;\n color: #fff;\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n}\n.confirm-btn[data-v-69eaf313]:hover:not(:disabled) {\n border-color: #0d6db8;\n filter: brightness(1.03);\n}\n.v3-body-inner{scroll-behavior:smooth;scrollbar-color:#393d3f rgba(0,0,0,.1);scrollbar-width:thin}.v3-body-inner::-webkit-scrollbar{width:8px}.v3-body-inner::-webkit-scrollbar-track{background-color:transparent}.v3-body-inner::-webkit-scrollbar-thumb{display:none;background:rgba(0,0,0,.3);border-radius:5px}.v3-body-inner:hover::-webkit-scrollbar-thumb{display:block}.v3-emoji-picker{height:320px;width:280px;box-shadow:0 2px 10px #0003;border-radius:10px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;text-align:left}.v3-emoji-picker *{box-sizing:border-box}.v3-emoji-picker .v3-header{padding:15px 15px 13px;border-bottom:1px solid}.v3-emoji-picker .v3-header .v3-groups{display:flex}.v3-emoji-picker .v3-header .v3-groups .v3-group{flex-grow:1;padding:0;margin:0;border:none;background:none;font-size:23px;cursor:pointer;position:relative;display:block;opacity:.7;transition:.2s}.v3-emoji-picker .v3-header .v3-groups .v3-group.v3-is-hidden{display:none}.v3-emoji-picker .v3-header .v3-groups .v3-group:first-child,.v3-emoji-picker .v3-header .v3-groups .v3-group:last-child{flex-grow:0}.v3-emoji-picker .v3-header .v3-groups .v3-group:hover{opacity:1}.v3-emoji-picker .v3-header .v3-groups .v3-group span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-header .v3-groups .v3-group span img{display:block;width:1em;height:auto}.v3-emoji-picker .v3-spacing{height:11px}.v3-emoji-picker .v3-search input{width:100%;display:block;height:26px;padding:0 10px;border:1px solid;border-radius:3px;font-size:12px;transition:.2s}.v3-emoji-picker .v3-search input:focus{outline:none}.v3-emoji-picker .v3-body{padding:0 0 15px 11px;min-height:0;flex-grow:1}.v3-emoji-picker .v3-body .v3-body-inner{flex-grow:1;min-height:0;overflow-y:auto;overflow-x:hidden;height:100%;padding-right:11px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5{margin:0;top:0;padding:7px 0 3px 4px;z-index:2}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5.v3-sticky{position:sticky}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis{display:flex;font-size:18px;flex-wrap:wrap}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button{cursor:pointer;border:none;background:none;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;flex-basis:12.5%;max-width:12.5%;flex-grow:1;padding:0;font-size:22px;position:relative}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:after{content:\"\";width:100%;padding-bottom:100%}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{max-width:100%;padding:4px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span,.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{position:absolute;top:0;left:0;width:100%;height:100%}.v3-emoji-picker .v3-body .v3-body-inner.is-mac .v3-emojis button{font-family:\"Apple Color Emoji\"}.v3-emoji-picker .v3-footer{font-size:14px;border-top:1px solid #dddddd;padding:15px;display:flex;align-items:center;justify-content:space-between;position:relative}.v3-emoji-picker .v3-footer .v3-tone,.v3-emoji-picker .v3-footer .v3-foot-left{display:flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone img,.v3-emoji-picker .v3-footer .v3-foot-left img{width:20px;display:block}.v3-emoji-picker .v3-footer .v3-tone>span:first-child,.v3-emoji-picker .v3-footer .v3-foot-left>span:first-child{margin-right:6px}.v3-emoji-picker .v3-footer .v3-foot-left>span.v3-text{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v3-emoji-picker .v3-footer .v3-tone{border:none;padding:0;background:none;cursor:pointer;display:inline-flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone>span{display:inline-flex;vertical-align:top}.v3-emoji-picker .v3-footer .v3-tone .v3-text{font-size:13px}.v3-emoji-picker .v3-footer .v3-tone .v3-icon{display:inline-flex;height:15px;width:15px;vertical-align:middle;align-self:center;border:2px solid rgba(0,0,0,.2)}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-neutral{background-color:#ffd225}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fb{background-color:#ffdfbd}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fc{background-color:#e9c197}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fd{background-color:#c88e62}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fe{background-color:#a86637}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3ff{background-color:#60463a}.v3-emoji-picker .v3-footer .v3-tone .is-mac span{font-family:\"Apple Color Emoji\"}.v3-skin-tones{position:absolute;height:100%;width:60%;top:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 15px;opacity:0;visibility:hidden;transition:.2s;border-radius:0 0 10px 10px}.v3-skin-tones.v3-is-open{opacity:1;visibility:visible}.v3-skin-tones .v3-skin-tone{display:inline-block;height:15px;width:25px;border:none;padding:0;cursor:pointer;transition:0ms}.v3-skin-tones .v3-skin-tone:hover{transform:scale(1.1);transition:.2s}.v3-skin-tones .v3-skin-tone-neutral{color:#ffd225;background-color:#ffd225}.v3-skin-tones .v3-skin-tone-1f3fb{color:#ffdfbd;background-color:#ffdfbd}.v3-skin-tones .v3-skin-tone-1f3fc{color:#e9c197;background-color:#e9c197}.v3-skin-tones .v3-skin-tone-1f3fd{color:#c88e62;background-color:#c88e62}.v3-skin-tones .v3-skin-tone-1f3fe{color:#a86637;background-color:#a86637}.v3-skin-tones .v3-skin-tone-1f3ff{color:#60463a;background-color:#60463a}.v3-input-emoji-picker *{box-sizing:border-box}.v3-input-emoji-picker .v3-input-picker-root{position:relative}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-input,.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{width:100%;height:40px;border:1px solid #999;padding-left:15px}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{min-height:80px;resize:vertical}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea+.v3-input-picker-wrap .v3-input-picker-icon{top:auto;bottom:5px}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon{display:inline-flex;position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:24px;border:none;background:none;padding:0 5px;cursor:pointer}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon img{display:block;width:1em;height:1em}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-emoji-picker{opacity:0;visibility:hidden;transition:.2s}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap.v3-picker-is-open .v3-emoji-picker{opacity:1;visibility:visible;z-index:999}.v3-emoji-picker{--v3-picker-bg: #ffffff;--v3-picker-fg: #000000;--v3-picker-border: #dddddd;--v3-picker-input-bg: var(--v3-picker-bg);--v3-picker-input-border: #cccccc;--v3-picker-input-focus-border: #000000;--v3-group-image-filter: none;--v3-picker-emoji-hover: #f7f7f7;background:var(--v3-picker-bg);color:var(--v3-picker-fg)}.v3-emoji-picker .v3-footer,.v3-emoji-picker .v3-header{border-color:var(--v3-picker-border)}.v3-emoji-picker .v3-groups{filter:var(--v3-group-image-filter)}.v3-emoji-picker .v3-tone{color:var(--v3-picker-fg)}.v3-emoji-picker .v3-search input{background:var(--v3-picker-input-bg);border-color:var(--v3-picker-input-border);color:inherit}.v3-emoji-picker .v3-search input:focus{border-color:var(--v3-picker-input-focus-border)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5,.v3-emoji-picker .v3-skin-tones{background:var(--v3-picker-bg)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:hover{background:var(--v3-picker-emoji-hover, #f7f7f7)}@media (prefers-color-scheme: dark){.v3-emoji-picker.v3-color-theme-auto{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}}.v3-emoji-picker.v3-color-theme-dark{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}\n\n.chat-room[data-v-6f480f31] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #fff;\n}\n.chat-room-header[data-v-6f480f31] {\n display: flex;\n gap: 12px;\n align-items: center;\n\n padding: 8px 20px;\n border-bottom: 1px solid #e8e8e8;\n\n background: linear-gradient(180deg, #fff 0%, #fafafa 100%);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n.back-btn[data-v-6f480f31] {\n cursor: pointer;\n\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n width: 36px;\n height: 36px;\n border: none;\n border-radius: 50%;\n\n font-size: 16px;\n color: #595959;\n\n background: #f0f0f0;\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.back-btn[data-v-6f480f31]:hover {\n transform: scale(1.05);\n color: #0e77cc;\n background: #e8e8e8;\n}\n.back-btn[data-v-6f480f31]:active {\n transform: scale(0.95);\n}\n.title[data-v-6f480f31] {\n display: flex;\n flex: 1;\n gap: 12px;\n align-items: center;\n}\n.header-actions[data-v-6f480f31] {\n display: flex;\n flex-shrink: 0;\n align-items: flex-end;\n}\n.end-session-btn[data-v-6f480f31] {\n cursor: pointer;\n\n min-width: 90px;\n height: 32px;\n padding: 0 12px;\n border: 1px solid #ffd6d6;\n border-radius: 16px;\n\n font-size: 13px;\n font-weight: 500;\n color: #d4380d;\n\n background: #fff2f0;\n\n transition: all 0.2s ease;\n}\n.end-session-btn[data-v-6f480f31]:hover:not(:disabled) {\n border-color: #ffb3ad;\n background: #ffe7e2;\n}\n.end-session-btn[data-v-6f480f31]:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n.avatar-wrapper[data-v-6f480f31] {\n position: relative;\n flex-shrink: 0;\n width: 42px;\n height: 42px;\n}\n.avatar-img[data-v-6f480f31] {\n width: 100%;\n height: 100%;\n border: 2px solid white;\n border-radius: 50%;\n\n object-fit: cover;\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.avatar-text[data-v-6f480f31] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 42px;\n height: 42px;\n border: 2px solid white;\n border-radius: 50%;\n\n font-size: 16px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 8px rgba(14, 119, 204, 0.3);\n}\n.user-info[data-v-6f480f31] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.name[data-v-6f480f31] {\n font-size: 15px;\n font-weight: 600;\n color: #262626;\n letter-spacing: 0.2px;\n}\n.messages[data-v-6f480f31] {\n position: relative;\n\n overflow-y: auto;\n flex: 1;\n\n padding: 24px 20px;\n\n background: linear-gradient(180deg, #f5f5f5 0%, #fafafa 100%);\n}\n\n/* 自定义滚动条 */\n.messages[data-v-6f480f31]::-webkit-scrollbar {\n width: 6px;\n}\n.messages[data-v-6f480f31]::-webkit-scrollbar-track {\n background: transparent;\n}\n.messages[data-v-6f480f31]::-webkit-scrollbar-thumb {\n border-radius: 3px;\n background: #d9d9d9;\n}\n.messages[data-v-6f480f31]::-webkit-scrollbar-thumb:hover {\n background: #bfbfbf;\n}\n.loading-more[data-v-6f480f31] {\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: center;\n\n padding: 16px;\n\n font-size: 13px;\n color: #8c8c8c;\n}\n.loading-spinner-small[data-v-6f480f31] {\n width: 20px;\n height: 20px;\n border: 2px solid #f0f0f0;\n border-top: 2px solid #0e77cc;\n border-radius: 50%;\n\n animation: spin-6f480f31 0.8s linear infinite;\n}\n.no-more[data-v-6f480f31] {\n padding: 12px;\n font-size: 12px;\n color: #bfbfbf;\n text-align: center;\n}\n.loading-state[data-v-6f480f31] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n padding: 60px 20px;\n\n color: #bfbfbf;\n}\n.loading-spinner[data-v-6f480f31] {\n width: 40px;\n height: 40px;\n margin-bottom: 16px;\n border: 3px solid #f0f0f0;\n border-top: 3px solid #0e77cc;\n border-radius: 50%;\n\n animation: spin-6f480f31 0.8s linear infinite;\n}\n@keyframes spin-6f480f31 {\n0% { transform: rotate(0deg);\n}\n100% { transform: rotate(360deg);\n}\n}\n.empty-messages[data-v-6f480f31] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n\n color: #bfbfbf;\n}\n.empty-messages .icon[data-v-6f480f31] {\n margin-bottom: 16px;\n font-size: 64px;\n opacity: 0.5;\n}\n.empty-messages p[data-v-6f480f31] {\n margin: 0;\n font-size: 14px;\n font-weight: 400;\n}\n.message-item[data-v-6f480f31] {\n display: flex;\n gap: 12px;\n margin-bottom: 24px;\n animation: slide-in-6f480f31 0.3s ease-out;\n}\n@keyframes slide-in-6f480f31 {\nfrom {\n transform: translateY(10px);\n opacity: 0;\n}\nto {\n transform: translateY(0);\n opacity: 1;\n}\n}\n.message-item.is-self[data-v-6f480f31] {\n justify-content: flex-end;\n}\n.msg-avatar-wrapper[data-v-6f480f31] {\n position: relative;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n}\n.msg-avatar-img[data-v-6f480f31] {\n width: 100%;\n height: 100%;\n border: 2px solid white;\n border-radius: 50%;\n\n object-fit: cover;\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n}\n.msg-avatar[data-v-6f480f31] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 40px;\n height: 40px;\n border: 2px solid white;\n border-radius: 50%;\n\n font-size: 15px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 6px rgba(14, 119, 204, 0.3);\n}\n.message-content-wrapper[data-v-6f480f31] {\n display: flex;\n flex-direction: column;\n max-width: 65%;\n}\n.is-self .message-content-wrapper[data-v-6f480f31] {\n align-items: flex-end;\n}\n.message-sender[data-v-6f480f31] {\n margin-bottom: 6px;\n font-size: 12px;\n font-weight: 400;\n color: #8c8c8c;\n}\n.message-content[data-v-6f480f31] {\n padding: 12px 16px;\n border-radius: 12px;\n\n background-color: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n\n transition: all 0.2s;\n}\n.message-item.is-self .message-content[data-v-6f480f31] {\n color: white;\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 8px rgba(14, 119, 204, 0.25);\n}\n.message-text[data-v-6f480f31] {\n margin-bottom: 6px;\n\n font-size: 14px;\n line-height: 1.6;\n color: #262626;\n overflow-wrap: break-word;\n}\n.message-item.is-self .message-text[data-v-6f480f31] {\n color: white;\n}\n\n/* 图片消息 */\n.message-image[data-v-6f480f31] {\n margin-bottom: 6px;\n}\n.message-image img[data-v-6f480f31] {\n cursor: pointer;\n\n max-width: 300px;\n max-height: 300px;\n border-radius: 8px;\n\n object-fit: cover;\n\n transition: transform 0.2s;\n}\n.message-image img[data-v-6f480f31]:hover {\n transform: scale(1.02);\n}\n\n/* 表情消息 */\n.message-emoji[data-v-6f480f31] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-height: 60px;\n margin-bottom: 6px;\n\n font-size: 48px;\n line-height: 1;\n}\n\n/* 文件消息 */\n.message-file[data-v-6f480f31] {\n margin-bottom: 6px;\n}\n.file-link[data-v-6f480f31] {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n\n padding: 12px 16px;\n border-radius: 8px;\n\n font-size: 14px;\n font-weight: 500;\n color: #262626;\n text-decoration: none;\n\n background-color: #f5f5f5;\n\n transition: all 0.2s;\n}\n.file-link[data-v-6f480f31]:hover {\n color: #0e77cc;\n background-color: #e8e8e8;\n}\n.is-self .file-link[data-v-6f480f31] {\n color: white;\n background-color: rgba(255, 255, 255, 0.2);\n}\n.is-self .file-link[data-v-6f480f31]:hover {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n/* 系统通知 */\n.message-system[data-v-6f480f31] {\n margin-bottom: 6px;\n padding: 8px 12px;\n border-left: 3px solid #0e77cc;\n border-radius: 6px;\n\n font-size: 13px;\n color: #8c8c8c;\n text-align: center;\n\n background-color: #f5f5f5;\n}\n.is-self .message-system[data-v-6f480f31] {\n border-left-color: white;\n color: rgba(255, 255, 255, 0.9);\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n/* 卡片消息 */\n.message-card[data-v-6f480f31] {\n margin-bottom: 6px;\n padding: 12px;\n border: 1px solid #bae6fd;\n border-radius: 8px;\n\n background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);\n}\n.is-self .message-card[data-v-6f480f31] {\n border-color: rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.2);\n}\n.message-time[data-v-6f480f31] {\n font-size: 11px;\n color: #8c8c8c;\n}\n.message-item.is-self .message-time[data-v-6f480f31] {\n color: rgba(255, 255, 255, 0.75);\n}\n\n/* 视频消息 */\n.message-video[data-v-6f480f31] {\n overflow: hidden;\n margin-bottom: 6px;\n border-radius: 12px;\n background: #000;\n}\n.message-video video[data-v-6f480f31] {\n display: block;\n width: 100%;\n max-width: 280px;\n max-height: 400px;\n}\n.input-area[data-v-6f480f31] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n\n padding: 16px 20px;\n border-top: 1px solid #e8e8e8;\n\n background: white;\n box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);\n}\n\n/* 工具栏 */\n.input-toolbar[data-v-6f480f31] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 4px 0;\n}\n.tool-btn[data-v-6f480f31] {\n cursor: pointer;\n\n display: inline-flex;\n gap: 6px;\n align-items: center;\n\n padding: 8px 14px;\n border: 1.5px solid #e8e8e8;\n border-radius: 8px;\n\n font-size: 13px;\n font-weight: 500;\n color: #595959;\n\n background: white;\n outline: none;\n\n transition: all 0.2s;\n}\n.tool-btn[data-v-6f480f31]:hover:not(:disabled) {\n border-color: #0e77cc;\n color: #0e77cc;\n background: #f0f9ff;\n}\n.tool-btn[data-v-6f480f31]:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n background: #f5f5f5;\n}\n.tool-btn-text[data-v-6f480f31] {\n font-size: 13px;\n}\n.tool-btn-icon[data-v-6f480f31] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n width: 18px;\n height: 18px;\n}\n.tool-btn-svg[data-v-6f480f31] {\n width: 18px;\n height: 18px;\n}\n.image-btn[data-v-6f480f31] {\n border-color: #d9d9d9;\n}\n.video-btn[data-v-6f480f31] {\n border-color: #d9d9d9;\n}\n.emoji-container[data-v-6f480f31] {\n position: relative;\n}\n.quick-reply-container[data-v-6f480f31] {\n position: relative;\n}\n.quick-reply-trigger[data-v-6f480f31] {\n border-color: #d9d9d9;\n}\n.quick-reply-trigger.active[data-v-6f480f31] {\n border-color: #0e77cc;\n color: #0e77cc;\n background: #f0f9ff;\n}\n.quick-reply-panel[data-v-6f480f31] {\n position: absolute;\n z-index: 1001;\n bottom: calc(100% + 8px);\n left: 0;\n\n overflow: hidden;\n\n width: 320px;\n max-width: min(320px, calc(100vw - 80px));\n border: 1px solid #e8e8e8;\n border-radius: 10px;\n\n background: #fff;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);\n}\n.quick-reply-search[data-v-6f480f31] {\n padding: 10px;\n border-bottom: 1px solid #f0f0f0;\n}\n.quick-reply-search input[data-v-6f480f31] {\n width: 100%;\n height: 34px;\n padding: 0 10px;\n border: 1px solid #d9d9d9;\n border-radius: 8px;\n\n font-size: 13px;\n color: #595959;\n\n background: #fff;\n outline: none;\n}\n.quick-reply-search input[data-v-6f480f31]:focus {\n border-color: #0e77cc;\n box-shadow: 0 0 0 2px rgba(14, 119, 204, 0.08);\n}\n.quick-reply-list[data-v-6f480f31] {\n overflow-y: auto;\n max-height: 220px;\n padding: 8px;\n}\n.quick-reply-item[data-v-6f480f31] {\n cursor: pointer;\n\n width: 100%;\n margin-bottom: 6px;\n padding: 8px 10px;\n border: 1px solid transparent;\n border-radius: 8px;\n\n font-size: 13px;\n line-height: 1.45;\n color: #595959;\n text-align: left;\n\n background: #f7f8fa;\n}\n.quick-reply-item[data-v-6f480f31]:last-child {\n margin-bottom: 0;\n}\n.quick-reply-item[data-v-6f480f31]:hover {\n border-color: #b6dcfa;\n color: #0e77cc;\n background: #f0f9ff;\n}\n.quick-reply-empty[data-v-6f480f31] {\n padding: 18px 10px;\n font-size: 12px;\n color: #bfbfbf;\n text-align: center;\n}\n.emoji-picker-wrapper[data-v-6f480f31] {\n position: absolute;\n z-index: 1000;\n bottom: 100%;\n left: 0;\n\n overflow: hidden;\n\n margin-bottom: 8px;\n border-radius: 8px;\n\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);\n}\n.input-area textarea[data-v-6f480f31] {\n resize: none;\n\n width: 100%;\n padding: 12px 14px;\n border: 1.5px solid #e8e8e8;\n border-radius: 8px;\n\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n font-size: 14px;\n line-height: 1.5;\n\n background: #fafafa;\n outline: none;\n\n transition: all 0.2s;\n}\n.input-area textarea[data-v-6f480f31]:focus {\n border-color: #0e77cc;\n background: white;\n box-shadow: 0 0 0 3px rgba(14, 119, 204, 0.08);\n}\n.input-area textarea[data-v-6f480f31]::placeholder {\n color: #bfbfbf;\n}\n.input-actions[data-v-6f480f31] {\n display: flex;\n justify-content: flex-end;\n}\n.send-btn[data-v-6f480f31] {\n cursor: pointer;\n\n padding: 10px 28px;\n border: none;\n border-radius: 8px;\n\n font-size: 14px;\n font-weight: 500;\n color: white;\n letter-spacing: 0.3px;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 6px rgba(14, 119, 204, 0.25);\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.send-btn[data-v-6f480f31]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(14, 119, 204, 0.35);\n}\n.send-btn[data-v-6f480f31]:active {\n transform: translateY(0);\n box-shadow: 0 2px 6px rgba(14, 119, 204, 0.25);\n}\n\n.conversation-list[data-v-66bc5469] {\n overflow-y: auto;\n display: flex;\n flex: 1;\n flex-direction: column;\n\n background: #fff;\n}\n\n/* 自定义滚动条 */\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar {\n width: 6px;\n}\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar-track {\n background: transparent;\n}\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar-thumb {\n border-radius: 3px;\n background: #d9d9d9;\n}\n.conversation-list[data-v-66bc5469]::-webkit-scrollbar-thumb:hover {\n background: #bfbfbf;\n}\n.unread-header[data-v-66bc5469] {\n padding: 8px 20px;\n border-bottom: 1px solid #e8e8e8;\n background: linear-gradient(180deg, #fafafa 0%, #fff 100%);\n}\n.unread-count[data-v-66bc5469] {\n font-size: 15px;\n font-weight: 600;\n color: #262626;\n letter-spacing: 0.3px;\n}\n.search-header[data-v-66bc5469] {\n padding: 10px 16px;\n border-bottom: 1px solid #f0f0f0;\n background: #fff;\n}\n.search-input[data-v-66bc5469] {\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n padding: 0 12px;\n border: 1px solid #d9d9d9;\n border-radius: 8px;\n\n font-size: 13px;\n color: #262626;\n\n background: #fff;\n outline: none;\n\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n.search-input[data-v-66bc5469]::placeholder {\n color: #bfbfbf;\n}\n.search-input[data-v-66bc5469]:focus {\n border-color: #0e77cc;\n box-shadow: 0 0 0 2px rgb(14 119 204 / 12%);\n}\n.loading-state[data-v-66bc5469] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n padding: 60px 20px;\n\n color: #bfbfbf;\n}\n.loading-spinner[data-v-66bc5469] {\n width: 40px;\n height: 40px;\n margin-bottom: 16px;\n border: 3px solid #f0f0f0;\n border-top: 3px solid #0e77cc;\n border-radius: 50%;\n\n animation: spin-66bc5469 0.8s linear infinite;\n}\n@keyframes spin-66bc5469 {\n0% { transform: rotate(0deg);\n}\n100% { transform: rotate(360deg);\n}\n}\n.empty-state[data-v-66bc5469] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n padding: 40px 20px;\n\n color: #bfbfbf;\n}\n.empty-icon[data-v-66bc5469] {\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n opacity: 0.5;\n}\n.empty-state p[data-v-66bc5469] {\n margin: 0;\n font-size: 14px;\n font-weight: 400;\n}\n.conversation-item[data-v-66bc5469] {\n cursor: pointer;\n\n position: relative;\n\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n\n background: white;\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.conversation-item[data-v-66bc5469]:hover {\n background-color: #f5f7fa;\n}\n.conversation-item.active[data-v-66bc5469] {\n padding-left: 13px;\n border-left: 3px solid #0e77cc;\n background: linear-gradient(90deg, #ecf5ff 0%, #fff 100%);\n}\n.conversation-item[data-v-66bc5469]:last-child {\n border-bottom: none;\n}\n\n/* 会话项内容布局 */\n.conversation-item-content[data-v-66bc5469] {\n display: flex;\n gap: 12px;\n align-items: center;\n width: 100%;\n}\n.avatar-wrapper[data-v-66bc5469] {\n position: relative;\n flex-shrink: 0;\n width: 44px;\n height: 44px;\n}\n.avatar-img[data-v-66bc5469] {\n width: 100%;\n height: 100%;\n border: 2px solid white;\n border-radius: 50%;\n\n object-fit: cover;\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.avatar-text[data-v-66bc5469] {\n position: absolute;\n top: 0;\n left: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 44px;\n height: 44px;\n border: 2px solid white;\n border-radius: 50%;\n\n font-size: 16px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);\n box-shadow: 0 2px 8px rgba(14, 119, 204, 0.3);\n}\n.session-info[data-v-66bc5469] {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 4px;\n justify-content: center;\n\n min-width: 0;\n}\n.session-name[data-v-66bc5469] {\n font-size: 14px;\n font-weight: 600;\n color: #262626;\n letter-spacing: 0.2px;\n}\n.content-text[data-v-66bc5469] {\n overflow: hidden;\n display: block;\n\n font-size: 13px;\n line-height: 1.4;\n color: #595959;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.session-meta[data-v-66bc5469] {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n gap: 6px;\n align-items: flex-end;\n}\n.session-time[data-v-66bc5469] {\n font-size: 12px;\n font-weight: 400;\n color: #8c8c8c;\n}\n.unread-badge[data-v-66bc5469] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-width: 20px;\n height: 20px;\n margin-left: 8px;\n padding: 0 7px;\n border-radius: 10px;\n\n font-size: 12px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);\n box-shadow: 0 2px 6px rgba(255, 77, 79, 0.3);\n\n animation: pulse-66bc5469 2s ease-in-out infinite;\n}\n@keyframes pulse-66bc5469 {\n0%, 100% {\n transform: scale(1);\n}\n50% {\n transform: scale(1.05);\n}\n}\n\n.chat-window[data-v-00d50ef7] {\n position: fixed;\n z-index: 9998;\n\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n min-width: 380px;\n min-height: 360px;\n border: 1px solid rgba(9, 62, 105, 0.14);\n border-radius: 18px;\n\n background: linear-gradient(180deg, #fff 0%, #f9fcff 100%);\n backdrop-filter: blur(6px);\n box-shadow: 0 24px 80px rgba(11, 58, 106, 0.24);\n\n animation: window-enter-00d50ef7 0.22s ease-out;\n}\n.chat-window.is-dragging[data-v-00d50ef7] {\n cursor: move;\n box-shadow: 0 28px 88px rgba(11, 58, 106, 0.28);\n}\n.chat-window.is-resizing[data-v-00d50ef7] {\n cursor: nwse-resize;\n}\n.chat-header[data-v-00d50ef7] {\n cursor: move;\n user-select: none;\n\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n\n padding: 10px 20px;\n\n color: white;\n\n background: linear-gradient(135deg, #0f83df 0%, #0e6fbe 62%, #0c5fa5 100%);\n box-shadow: 0 2px 12px rgba(14, 119, 204, 0.26);\n}\n\n/* 用户信息区域 */\n.user-info-section[data-v-00d50ef7] {\n display: flex;\n flex: 1;\n gap: 12px;\n align-items: center;\n}\n.user-avatar-wrapper[data-v-00d50ef7] {\n position: relative;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n}\n.user-avatar[data-v-00d50ef7] {\n width: 100%;\n height: 100%;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n\n object-fit: cover;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n.user-avatar-default[data-v-00d50ef7] {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 40px;\n height: 40px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n\n font-size: 16px;\n font-weight: 600;\n color: white;\n\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.1) 100%);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n.status-indicator[data-v-00d50ef7] {\n cursor: pointer;\n\n position: absolute;\n right: -2px;\n bottom: -2px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 14px;\n height: 14px;\n border: 2px solid white;\n border-radius: 50%;\n\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n\n transition: transform 0.2s;\n}\n.status-indicator[data-v-00d50ef7]:hover {\n transform: scale(1.15);\n}\n.status-indicator svg[data-v-00d50ef7] {\n width: 8px;\n height: 8px;\n}\n\n/* 状态下拉菜单 */\n.status-dropdown[data-v-00d50ef7] {\n position: absolute;\n z-index: 100;\n top: 100%;\n left: 0;\n\n min-width: 120px;\n margin-top: 8px;\n padding: 6px;\n border: 1px solid #dbe7f5;\n border-radius: 10px;\n\n background: white;\n box-shadow: 0 12px 30px rgba(11, 58, 106, 0.18);\n}\n.status-option[data-v-00d50ef7] {\n cursor: pointer;\n\n display: flex;\n gap: 8px;\n align-items: center;\n\n padding: 8px 10px;\n border-radius: 6px;\n\n color: #262626;\n\n transition: all 0.2s;\n}\n.status-option[data-v-00d50ef7]:hover {\n background: #f5f5f5;\n}\n.status-option.active[data-v-00d50ef7] {\n color: #0e77cc;\n background: #e6f7ff;\n}\n.status-dot[data-v-00d50ef7] {\n flex-shrink: 0;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n.status-option span[data-v-00d50ef7] {\n flex: 1;\n font-size: 13px;\n}\n.check-icon[data-v-00d50ef7] {\n width: 16px;\n height: 16px;\n opacity: 0.8;\n}\n.user-details[data-v-00d50ef7] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.user-name[data-v-00d50ef7] {\n font-size: 14px;\n font-weight: 600;\n letter-spacing: 0.2px;\n}\n.user-status[data-v-00d50ef7] {\n font-size: 12px;\n font-weight: 400;\n opacity: 0.9;\n}\n.close-btn[data-v-00d50ef7] {\n cursor: pointer;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 8px;\n\n font-size: 28px;\n line-height: 1;\n color: white;\n\n opacity: 0.8;\n background: none;\n\n transition: all 0.2s;\n}\n.close-btn[data-v-00d50ef7]:hover {\n transform: rotate(90deg);\n opacity: 1;\n background: rgba(255, 255, 255, 0.15);\n}\n.close-btn[data-v-00d50ef7]:active {\n transform: rotate(90deg) scale(0.95);\n}\n.chat-body[data-v-00d50ef7] {\n overflow: hidden;\n display: flex;\n flex: 1;\n\n min-height: 0;\n\n background: linear-gradient(180deg, #fbfdff 0%, #f4f8fc 100%);\n}\n\n/* 第一栏:一级菜单 */\n.first-sidebar[data-v-00d50ef7] {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n\n width: 76px;\n padding: 0;\n border-right: 1px solid #dce8f3;\n\n background: linear-gradient(180deg, #f5f9ff 0%, #f0f6fd 100%);\n}\n.menu-items-container[data-v-00d50ef7] {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n\n padding: 18px 0;\n}\n.menu-item[data-v-00d50ef7] {\n cursor: pointer;\n\n position: relative;\n\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n width: 50px;\n height: 50px;\n margin-bottom: 12px;\n border: 1px solid transparent;\n border-radius: 12px;\n\n font-weight: 400;\n color: #7d8fa3;\n\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.menu-item[data-v-00d50ef7]:last-child {\n margin-bottom: 0;\n}\n.menu-item[data-v-00d50ef7]:hover {\n transform: translateY(-1px);\n border-color: #d2e3f3;\n color: #0e77cc;\n background: #f7fbff;\n}\n.menu-item.active[data-v-00d50ef7] {\n border-color: #0e77cc;\n color: white;\n background: linear-gradient(135deg, #0f83df 0%, #0d6db8 100%);\n box-shadow: 0 8px 20px rgba(14, 119, 204, 0.35);\n}\n.menu-item.active[data-v-00d50ef7]::before {\n content: '';\n\n position: absolute;\n top: 50%;\n left: -11px;\n transform: translateY(-50%);\n\n width: 3px;\n height: 24px;\n border-radius: 2px;\n\n background: #0e77cc;\n}\n.menu-item .icon[data-v-00d50ef7] {\n width: 23px;\n height: 23px;\n}\n.menu-item .label[data-v-00d50ef7] {\n display: none;\n}\n.menu-item .menu-badge[data-v-00d50ef7] {\n position: absolute;\n top: 6px;\n right: 6px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border: 2px solid white;\n border-radius: 8px;\n\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n color: white;\n\n background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);\n box-shadow: 0 2px 6px rgba(255, 77, 79, 0.4);\n}\n.menu-item.active .menu-badge[data-v-00d50ef7] {\n border-color: #0e77cc;\n color: #ff4d4f;\n background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);\n}\n\n/* 第二栏:二级侧边栏 */\n.second-sidebar[data-v-00d50ef7] {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n\n width: 250px;\n border-right: 1px solid #dce8f3;\n\n background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);\n}\n\n/* 第三栏:聊天区域 */\n.chat-area[data-v-00d50ef7] {\n overflow: hidden;\n display: flex;\n flex: 1;\n flex-direction: column;\n\n min-width: 0;\n\n background: radial-gradient(circle at top right, rgba(14, 119, 204, 0.08) 0%, rgba(255, 255, 255, 0) 42%), #fff;\n}\n.empty-chat[data-v-00d50ef7] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n\n color: #8ca1b8;\n\n background: linear-gradient(180deg, #f7fbff 0%, #fff 100%);\n}\n.empty-chat .empty-icon[data-v-00d50ef7] {\n width: 72px;\n height: 72px;\n margin-bottom: 18px;\n\n opacity: 0.5;\n filter: drop-shadow(0 8px 20px rgba(11, 58, 106, 0.16));\n}\n.empty-chat p[data-v-00d50ef7] {\n margin: 0;\n font-size: 15px;\n font-weight: 500;\n letter-spacing: 0.3px;\n}\n\n/* 拉伸手柄 */\n.resize-handle[data-v-00d50ef7] {\n cursor: nwse-resize;\n\n position: absolute;\n z-index: 9999;\n right: 0;\n bottom: 0;\n\n width: 24px;\n height: 24px;\n\n opacity: 0.5;\n\n transition: opacity 0.2s;\n}\n.resize-handle[data-v-00d50ef7]:hover {\n opacity: 1;\n}\n.resize-handle[data-v-00d50ef7]::after {\n content: '';\n\n position: absolute;\n right: 6px;\n bottom: 6px;\n\n width: 0;\n height: 0;\n border-top: 10px solid transparent;\n border-right: 10px solid #0e77cc;\n border-bottom: 10px solid #0e77cc;\n border-left: 10px solid transparent;\n\n opacity: 0.6;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));\n}\n@keyframes window-enter-00d50ef7 {\nfrom {\n transform: translate3d(0, 16px, 0) scale(0.98);\n opacity: 0;\n}\nto {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 1;\n}\n}\n@media (width <= 960px) {\n.second-sidebar[data-v-00d50ef7] {\n width: 220px;\n}\n}\n\n.float-button[data-v-a60f9c33] {\n touch-action: none;\n cursor: grab;\n user-select: none;\n\n position: fixed;\n z-index: 9999;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 64px;\n height: 64px;\n border: 1px solid #0e77cc;\n border-radius: 50%;\n\n background: #fff;\n box-shadow: 0 4px 20px rgba(14, 119, 204, 0.3);\n\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.float-button.is-hidden[data-v-a60f9c33] {\n pointer-events: none;\n transform: scale(0.88);\n opacity: 0;\n}\n.float-button[data-v-a60f9c33]:hover {\n transform: translateY(-2px);\n box-shadow: 0 6px 30px rgba(14, 119, 204, 0.4);\n}\n.float-button[data-v-a60f9c33]:active {\n transform: translateY(0) scale(0.95);\n}\n.float-button.is-dragging[data-v-a60f9c33] {\n cursor: grabbing;\n transform: scale(1.08);\n box-shadow: 0 8px 35px rgba(14, 119, 204, 0.35);\n}\n.float-button .icon[data-v-a60f9c33] {\n pointer-events: none;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 32px;\n height: 32px;\n\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));\n}\n.float-button .icon img[data-v-a60f9c33] {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.float-button .badge[data-v-a60f9c33] {\n pointer-events: none;\n\n position: absolute;\n top: 4px;\n right: 4px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border: 2.5px solid white;\n border-radius: 10px;\n\n font-size: 11px;\n font-weight: 600;\n line-height: 1;\n color: white;\n\n background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);\n box-shadow: 0 2px 8px rgba(255, 77, 79, 0.4);\n}\n.float-button.has-unread[data-v-a60f9c33] {\n animation: pulse-a60f9c33 2s ease-in-out infinite;\n}\n@keyframes pulse-a60f9c33 {\n0%, 100% {\n box-shadow: 0 4px 20px rgba(14, 119, 204, 0.3),\n 0 0 0 0 rgba(255, 77, 79, 0.4);\n}\n50% {\n box-shadow: 0 4px 20px rgba(14, 119, 204, 0.3),\n 0 0 0 12px rgba(255, 77, 79, 0);\n}\n}\n/*$vite$:1*/"
|
|
2
2
|
if (typeof document !== 'undefined' && __SHARED_IMSDK_CSS__) {
|
|
3
3
|
const __SHARED_IMSDK_STYLE_ID__ = 'zjw-jszn-shared-imsdk-style'
|
|
4
4
|
if (!document.getElementById(__SHARED_IMSDK_STYLE_ID__)) {
|
|
@@ -5725,6 +5725,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
5725
5725
|
resourceBaseURL: "https://resource.api.orchiport.asia",
|
|
5726
5726
|
prefix: "",
|
|
5727
5727
|
uploadURL: "https://resource.api.orchiport.asia/system/uploadImage",
|
|
5728
|
+
uploadFileURL: "https://resource.api.orchiport.asia/system/uploadFile",
|
|
5728
5729
|
signKey: "Z0XYfLbnDpuVqk41",
|
|
5729
5730
|
suffix: "43cf28",
|
|
5730
5731
|
groupId: "6",
|
|
@@ -6219,6 +6220,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6219
6220
|
var INTEGER_STRING_REGEXP = /^\d+$/;
|
|
6220
6221
|
var UPLOAD_TIMEOUT_MS = 3e4;
|
|
6221
6222
|
var MAX_UPLOAD_IMAGE_SIZE_BYTES = 2 * 1024 * 1024;
|
|
6223
|
+
var MAX_UPLOAD_FILE_SIZE_BYTES = 50 * 1024 * 1024;
|
|
6222
6224
|
var CUSTOMER_ONLY_TRUE_SET = new Set(["1", "true"]);
|
|
6223
6225
|
function ensureAuthorized(apiName) {
|
|
6224
6226
|
if (!httpClient.getAuth()) throw new Error(`未登录,禁止请求 ${apiName},请先完成鉴权`);
|
|
@@ -6283,6 +6285,50 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6283
6285
|
});
|
|
6284
6286
|
return _uploadImage.apply(this, arguments);
|
|
6285
6287
|
}
|
|
6288
|
+
/**
|
|
6289
|
+
* 上传文件(视频、文档等)
|
|
6290
|
+
* @param file 文件对象
|
|
6291
|
+
*/
|
|
6292
|
+
function uploadFile(_x2) {
|
|
6293
|
+
return _uploadFile.apply(this, arguments);
|
|
6294
|
+
}
|
|
6295
|
+
function _uploadFile() {
|
|
6296
|
+
_uploadFile = _asyncToGenerator(function* (file) {
|
|
6297
|
+
ensureAuthorized("uploadFile");
|
|
6298
|
+
if (file.size > MAX_UPLOAD_FILE_SIZE_BYTES) throw new Error("文件大小不能超过 50MB");
|
|
6299
|
+
const config = getConfig();
|
|
6300
|
+
const formData = new FormData();
|
|
6301
|
+
formData.append("file", file);
|
|
6302
|
+
const controller = new AbortController();
|
|
6303
|
+
const timeoutTimer = setTimeout(() => controller.abort(), UPLOAD_TIMEOUT_MS);
|
|
6304
|
+
try {
|
|
6305
|
+
const response = yield fetch(config.api.uploadFileURL || config.api.uploadURL, {
|
|
6306
|
+
method: "POST",
|
|
6307
|
+
body: formData,
|
|
6308
|
+
signal: controller.signal
|
|
6309
|
+
});
|
|
6310
|
+
if (!response.ok) {
|
|
6311
|
+
let errorPayload;
|
|
6312
|
+
try {
|
|
6313
|
+
errorPayload = yield response.json();
|
|
6314
|
+
} catch (_unused2) {
|
|
6315
|
+
errorPayload = null;
|
|
6316
|
+
}
|
|
6317
|
+
throw new Error(getUploadErrorMessage(response.status, errorPayload));
|
|
6318
|
+
}
|
|
6319
|
+
const result = yield response.json();
|
|
6320
|
+
if (result.code !== 200) throw new Error(result.message || "上传失败");
|
|
6321
|
+
return result;
|
|
6322
|
+
} catch (error) {
|
|
6323
|
+
if (error instanceof DOMException && error.name === "AbortError") throw new Error("上传超时");
|
|
6324
|
+
console.error("上传文件失败:", error);
|
|
6325
|
+
throw error instanceof Error ? error : /* @__PURE__ */ new Error("上传文件失败");
|
|
6326
|
+
} finally {
|
|
6327
|
+
clearTimeout(timeoutTimer);
|
|
6328
|
+
}
|
|
6329
|
+
});
|
|
6330
|
+
return _uploadFile.apply(this, arguments);
|
|
6331
|
+
}
|
|
6286
6332
|
function unwrapResult(response, apiName) {
|
|
6287
6333
|
if (response.result === void 0 || response.result === null) throw new Error(`${apiName} 接口返回 result 为空`);
|
|
6288
6334
|
return response.result;
|
|
@@ -6304,7 +6350,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6304
6350
|
* - Shared 层固定提交 `phone + site`
|
|
6305
6351
|
* - 其他扩展参数通过 config.auth.authorizationPayload 注入(如门店的 username/avatar)
|
|
6306
6352
|
*/
|
|
6307
|
-
function getAuthorization(
|
|
6353
|
+
function getAuthorization(_x3) {
|
|
6308
6354
|
return _getAuthorization.apply(this, arguments);
|
|
6309
6355
|
}
|
|
6310
6356
|
function _getAuthorization() {
|
|
@@ -6338,7 +6384,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6338
6384
|
* @param data.user_type - 用户类型
|
|
6339
6385
|
* @param data.username - 用户名(可选,门店场景可用于筛选)
|
|
6340
6386
|
*/
|
|
6341
|
-
function getUserChatList(
|
|
6387
|
+
function getUserChatList(_x4) {
|
|
6342
6388
|
return _getUserChatList.apply(this, arguments);
|
|
6343
6389
|
}
|
|
6344
6390
|
function _getUserChatList() {
|
|
@@ -6362,7 +6408,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6362
6408
|
* @param data.limit - 每页数量
|
|
6363
6409
|
* @param data.session_id - 会话ID
|
|
6364
6410
|
*/
|
|
6365
|
-
function getChatListBySession(
|
|
6411
|
+
function getChatListBySession(_x5) {
|
|
6366
6412
|
return _getChatListBySession.apply(this, arguments);
|
|
6367
6413
|
}
|
|
6368
6414
|
function _getChatListBySession() {
|
|
@@ -6396,7 +6442,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6396
6442
|
* @param data.page - 页码
|
|
6397
6443
|
* @param data.limit - 每页数量
|
|
6398
6444
|
*/
|
|
6399
|
-
function getUnReadList(
|
|
6445
|
+
function getUnReadList(_x6) {
|
|
6400
6446
|
return _getUnReadList.apply(this, arguments);
|
|
6401
6447
|
}
|
|
6402
6448
|
function _getUnReadList() {
|
|
@@ -6414,7 +6460,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6414
6460
|
* @param data.limit - 每页数量
|
|
6415
6461
|
* @param data.session_id - 会话ID
|
|
6416
6462
|
*/
|
|
6417
|
-
function getChatRewordBySession(
|
|
6463
|
+
function getChatRewordBySession(_x7) {
|
|
6418
6464
|
return _getChatRewordBySession.apply(this, arguments);
|
|
6419
6465
|
}
|
|
6420
6466
|
function _getChatRewordBySession() {
|
|
@@ -6437,7 +6483,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
6437
6483
|
* @param data.friend_type - 对话对象类型
|
|
6438
6484
|
* @param data.customeronly - 平台客服模式标记(1/true)
|
|
6439
6485
|
*/
|
|
6440
|
-
function getChatList(
|
|
6486
|
+
function getChatList(_x8) {
|
|
6441
6487
|
return _getChatList.apply(this, arguments);
|
|
6442
6488
|
}
|
|
6443
6489
|
function _getChatList() {
|
|
@@ -16795,84 +16841,106 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
16795
16841
|
};
|
|
16796
16842
|
var _hoisted_28 = {
|
|
16797
16843
|
key: 6,
|
|
16844
|
+
class: "message-video"
|
|
16845
|
+
};
|
|
16846
|
+
var _hoisted_29 = ["src"];
|
|
16847
|
+
var _hoisted_30 = {
|
|
16848
|
+
key: 7,
|
|
16798
16849
|
class: "message-text"
|
|
16799
16850
|
};
|
|
16800
|
-
var
|
|
16801
|
-
var
|
|
16802
|
-
var
|
|
16803
|
-
var
|
|
16851
|
+
var _hoisted_31 = { class: "message-time" };
|
|
16852
|
+
var _hoisted_32 = { class: "message-content-wrapper" };
|
|
16853
|
+
var _hoisted_33 = { class: "message-content" };
|
|
16854
|
+
var _hoisted_34 = {
|
|
16804
16855
|
key: 0,
|
|
16805
16856
|
class: "message-text"
|
|
16806
16857
|
};
|
|
16807
|
-
var
|
|
16858
|
+
var _hoisted_35 = {
|
|
16808
16859
|
key: 1,
|
|
16809
16860
|
class: "message-image"
|
|
16810
16861
|
};
|
|
16811
|
-
var
|
|
16812
|
-
var
|
|
16862
|
+
var _hoisted_36 = ["src", "onLoad"];
|
|
16863
|
+
var _hoisted_37 = {
|
|
16813
16864
|
key: 2,
|
|
16814
16865
|
class: "message-emoji"
|
|
16815
16866
|
};
|
|
16816
|
-
var
|
|
16867
|
+
var _hoisted_38 = {
|
|
16817
16868
|
key: 3,
|
|
16818
16869
|
class: "message-file"
|
|
16819
16870
|
};
|
|
16820
|
-
var
|
|
16821
|
-
var
|
|
16871
|
+
var _hoisted_39 = ["href"];
|
|
16872
|
+
var _hoisted_40 = {
|
|
16822
16873
|
key: 4,
|
|
16823
16874
|
class: "message-system"
|
|
16824
16875
|
};
|
|
16825
|
-
var
|
|
16876
|
+
var _hoisted_41 = {
|
|
16826
16877
|
key: 5,
|
|
16827
16878
|
class: "message-card"
|
|
16828
16879
|
};
|
|
16829
|
-
var
|
|
16880
|
+
var _hoisted_42 = {
|
|
16830
16881
|
key: 6,
|
|
16831
|
-
class: "message-
|
|
16882
|
+
class: "message-video"
|
|
16832
16883
|
};
|
|
16833
|
-
var
|
|
16834
|
-
var _hoisted_42 = { class: "msg-avatar-wrapper" };
|
|
16835
|
-
var _hoisted_43 = ["src", "alt"];
|
|
16884
|
+
var _hoisted_43 = ["src"];
|
|
16836
16885
|
var _hoisted_44 = {
|
|
16886
|
+
key: 7,
|
|
16887
|
+
class: "message-text"
|
|
16888
|
+
};
|
|
16889
|
+
var _hoisted_45 = { class: "message-time" };
|
|
16890
|
+
var _hoisted_46 = { class: "msg-avatar-wrapper" };
|
|
16891
|
+
var _hoisted_47 = ["src", "alt"];
|
|
16892
|
+
var _hoisted_48 = {
|
|
16837
16893
|
key: 1,
|
|
16838
16894
|
class: "msg-avatar"
|
|
16839
16895
|
};
|
|
16840
|
-
var
|
|
16896
|
+
var _hoisted_49 = {
|
|
16841
16897
|
key: 3,
|
|
16842
16898
|
class: "empty-messages"
|
|
16843
16899
|
};
|
|
16844
|
-
var
|
|
16845
|
-
var
|
|
16846
|
-
var
|
|
16847
|
-
var
|
|
16848
|
-
var
|
|
16900
|
+
var _hoisted_50 = ["src"];
|
|
16901
|
+
var _hoisted_51 = { class: "input-area" };
|
|
16902
|
+
var _hoisted_52 = { class: "input-toolbar" };
|
|
16903
|
+
var _hoisted_53 = ["disabled"];
|
|
16904
|
+
var _hoisted_54 = {
|
|
16849
16905
|
class: "tool-btn-icon",
|
|
16850
16906
|
"aria-hidden": "true"
|
|
16851
16907
|
};
|
|
16852
|
-
var
|
|
16908
|
+
var _hoisted_55 = {
|
|
16853
16909
|
key: 0,
|
|
16854
16910
|
class: "tool-btn-svg",
|
|
16855
16911
|
viewBox: "0 0 1024 1024"
|
|
16856
16912
|
};
|
|
16857
|
-
var
|
|
16858
|
-
var
|
|
16859
|
-
var
|
|
16860
|
-
var
|
|
16913
|
+
var _hoisted_56 = { key: 1 };
|
|
16914
|
+
var _hoisted_57 = { class: "tool-btn-text" };
|
|
16915
|
+
var _hoisted_58 = ["disabled"];
|
|
16916
|
+
var _hoisted_59 = {
|
|
16917
|
+
class: "tool-btn-icon",
|
|
16918
|
+
"aria-hidden": "true"
|
|
16919
|
+
};
|
|
16920
|
+
var _hoisted_60 = {
|
|
16921
|
+
key: 0,
|
|
16922
|
+
class: "tool-btn-svg",
|
|
16923
|
+
viewBox: "0 0 1024 1024"
|
|
16924
|
+
};
|
|
16925
|
+
var _hoisted_61 = { key: 1 };
|
|
16926
|
+
var _hoisted_62 = { class: "tool-btn-text" };
|
|
16927
|
+
var _hoisted_63 = { class: "emoji-container" };
|
|
16928
|
+
var _hoisted_64 = {
|
|
16861
16929
|
key: 0,
|
|
16862
16930
|
class: "emoji-picker-wrapper"
|
|
16863
16931
|
};
|
|
16864
|
-
var
|
|
16932
|
+
var _hoisted_65 = {
|
|
16865
16933
|
key: 0,
|
|
16866
16934
|
class: "quick-reply-panel"
|
|
16867
16935
|
};
|
|
16868
|
-
var
|
|
16869
|
-
var
|
|
16870
|
-
var
|
|
16871
|
-
var
|
|
16936
|
+
var _hoisted_66 = { class: "quick-reply-search" };
|
|
16937
|
+
var _hoisted_67 = { class: "quick-reply-list" };
|
|
16938
|
+
var _hoisted_68 = ["onClick"];
|
|
16939
|
+
var _hoisted_69 = {
|
|
16872
16940
|
key: 0,
|
|
16873
16941
|
class: "quick-reply-empty"
|
|
16874
16942
|
};
|
|
16875
|
-
var
|
|
16943
|
+
var _hoisted_70 = ["onKeydown"];
|
|
16876
16944
|
var pageSize = 20;
|
|
16877
16945
|
//#endregion
|
|
16878
16946
|
//#region src/components/ChatRoom.vue
|
|
@@ -16913,6 +16981,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
16913
16981
|
let tempMessageSeed = 0;
|
|
16914
16982
|
const HTTP_URL_REGEXP = /^https?:\/\//i;
|
|
16915
16983
|
const isUploading = /* @__PURE__ */ ref(false);
|
|
16984
|
+
const isUploadingVideo = /* @__PURE__ */ ref(false);
|
|
16916
16985
|
const showEmojiPicker = /* @__PURE__ */ ref(false);
|
|
16917
16986
|
function toggleEmojiPicker() {
|
|
16918
16987
|
if (!showEmojiPicker.value) showQuickReplyPanel.value = false;
|
|
@@ -17288,6 +17357,23 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17288
17357
|
}();
|
|
17289
17358
|
input.click();
|
|
17290
17359
|
}
|
|
17360
|
+
function handleVideoSelect() {
|
|
17361
|
+
const input = document.createElement("input");
|
|
17362
|
+
input.type = "file";
|
|
17363
|
+
input.accept = "video/*";
|
|
17364
|
+
input.onchange = function() {
|
|
17365
|
+
var _ref2 = _asyncToGenerator(function* (e) {
|
|
17366
|
+
var _target$files2;
|
|
17367
|
+
const file = (_target$files2 = e.target.files) === null || _target$files2 === void 0 ? void 0 : _target$files2[0];
|
|
17368
|
+
if (!file) return;
|
|
17369
|
+
yield uploadAndSendVideo(file);
|
|
17370
|
+
});
|
|
17371
|
+
return function(_x2) {
|
|
17372
|
+
return _ref2.apply(this, arguments);
|
|
17373
|
+
};
|
|
17374
|
+
}();
|
|
17375
|
+
input.click();
|
|
17376
|
+
}
|
|
17291
17377
|
function resolveUploadedImageUrl(resourceBaseURL, uploadURL, fileUrl) {
|
|
17292
17378
|
const normalizedFileUrl = typeof fileUrl === "string" ? fileUrl.trim() : "";
|
|
17293
17379
|
if (!normalizedFileUrl) return "";
|
|
@@ -17301,7 +17387,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17301
17387
|
return normalizedFileUrl;
|
|
17302
17388
|
}
|
|
17303
17389
|
}
|
|
17304
|
-
function uploadAndSendImage(
|
|
17390
|
+
function uploadAndSendImage(_x3) {
|
|
17305
17391
|
return _uploadAndSendImage.apply(this, arguments);
|
|
17306
17392
|
}
|
|
17307
17393
|
function _uploadAndSendImage() {
|
|
@@ -17350,6 +17436,55 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17350
17436
|
});
|
|
17351
17437
|
return _uploadAndSendImage.apply(this, arguments);
|
|
17352
17438
|
}
|
|
17439
|
+
function uploadAndSendVideo(_x4) {
|
|
17440
|
+
return _uploadAndSendVideo.apply(this, arguments);
|
|
17441
|
+
}
|
|
17442
|
+
function _uploadAndSendVideo() {
|
|
17443
|
+
_uploadAndSendVideo = _asyncToGenerator(function* (file) {
|
|
17444
|
+
var _props$conversationDa13;
|
|
17445
|
+
if (!getUserInfo()) {
|
|
17446
|
+
console.warn("用户未登录");
|
|
17447
|
+
return;
|
|
17448
|
+
}
|
|
17449
|
+
if (!((_props$conversationDa13 = props.conversationData) === null || _props$conversationDa13 === void 0 ? void 0 : _props$conversationDa13.friend)) {
|
|
17450
|
+
console.warn("会话信息不完整");
|
|
17451
|
+
return;
|
|
17452
|
+
}
|
|
17453
|
+
try {
|
|
17454
|
+
var _response$data2, _props$conversationDa14, _props$conversationDa15, _props$conversationDa16;
|
|
17455
|
+
isUploadingVideo.value = true;
|
|
17456
|
+
const response = yield uploadFile(file);
|
|
17457
|
+
if (!response.success || !((_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.url)) throw new Error(response.message || "上传失败");
|
|
17458
|
+
const config = getConfig();
|
|
17459
|
+
const videoUrl = resolveUploadedImageUrl(config.api.resourceBaseURL, config.api.uploadFileURL || config.api.uploadURL, response.data.url);
|
|
17460
|
+
if (!videoUrl) throw new Error("上传返回视频地址为空");
|
|
17461
|
+
const tempMessageId = createTempMessageId();
|
|
17462
|
+
const messageData = {
|
|
17463
|
+
fid: (_props$conversationDa14 = props.conversationData.friend) === null || _props$conversationDa14 === void 0 ? void 0 : _props$conversationDa14.id,
|
|
17464
|
+
receiveId: (_props$conversationDa15 = props.conversationData.friend) === null || _props$conversationDa15 === void 0 ? void 0 : _props$conversationDa15.id,
|
|
17465
|
+
friend_type: props.conversationData.friend_type,
|
|
17466
|
+
session_id: props.conversationId,
|
|
17467
|
+
msg_type: 7,
|
|
17468
|
+
content: videoUrl
|
|
17469
|
+
};
|
|
17470
|
+
wsClient.sendBusinessMessage("send", messageData);
|
|
17471
|
+
const tempMessage = createTempMessage({
|
|
17472
|
+
id: tempMessageId,
|
|
17473
|
+
content: videoUrl,
|
|
17474
|
+
msgType: 7,
|
|
17475
|
+
receiverId: (_props$conversationDa16 = props.conversationData) === null || _props$conversationDa16 === void 0 || (_props$conversationDa16 = _props$conversationDa16.friend) === null || _props$conversationDa16 === void 0 ? void 0 : _props$conversationDa16.id
|
|
17476
|
+
});
|
|
17477
|
+
messages.value.push(tempMessage);
|
|
17478
|
+
emit("messageSent", tempMessage);
|
|
17479
|
+
scrollToBottomAfterRender();
|
|
17480
|
+
} catch (error) {
|
|
17481
|
+
console.error("上传视频失败:", error);
|
|
17482
|
+
} finally {
|
|
17483
|
+
isUploadingVideo.value = false;
|
|
17484
|
+
}
|
|
17485
|
+
});
|
|
17486
|
+
return _uploadAndSendVideo.apply(this, arguments);
|
|
17487
|
+
}
|
|
17353
17488
|
function handleWebSocketMessage(data) {
|
|
17354
17489
|
const message = normalizeWSMessage(data);
|
|
17355
17490
|
if (!message) return;
|
|
@@ -17381,9 +17516,9 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17381
17516
|
if (existingMessageIndex !== -1) return;
|
|
17382
17517
|
}
|
|
17383
17518
|
if (!isSelf) {
|
|
17384
|
-
var _props$
|
|
17519
|
+
var _props$conversationDa17;
|
|
17385
17520
|
if (existingMessageIndex !== -1) return;
|
|
17386
|
-
const friendInfo = ((_props$
|
|
17521
|
+
const friendInfo = ((_props$conversationDa17 = props.conversationData) === null || _props$conversationDa17 === void 0 ? void 0 : _props$conversationDa17.friend) || {};
|
|
17387
17522
|
const senderName = (friendInfo === null || friendInfo === void 0 ? void 0 : friendInfo.username) || (friendInfo === null || friendInfo === void 0 ? void 0 : friendInfo.name) || (friendInfo === null || friendInfo === void 0 ? void 0 : friendInfo.phone) || (message.senderId ? `ID:${message.senderId}` : "");
|
|
17388
17523
|
const newMessage = {
|
|
17389
17524
|
id: message.id || Date.now(),
|
|
@@ -17403,13 +17538,13 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17403
17538
|
}
|
|
17404
17539
|
}
|
|
17405
17540
|
function sendReadReceipt() {
|
|
17406
|
-
var _props$
|
|
17407
|
-
if (!((_props$
|
|
17541
|
+
var _props$conversationDa18, _props$conversationDa19;
|
|
17542
|
+
if (!((_props$conversationDa18 = props.conversationData) === null || _props$conversationDa18 === void 0 ? void 0 : _props$conversationDa18.friend)) {
|
|
17408
17543
|
console.warn("无法发送已读回执:缺少 conversationData 或 friend 信息");
|
|
17409
17544
|
return;
|
|
17410
17545
|
}
|
|
17411
17546
|
const readReceiptData = {
|
|
17412
|
-
fid: (_props$
|
|
17547
|
+
fid: (_props$conversationDa19 = props.conversationData.friend) === null || _props$conversationDa19 === void 0 ? void 0 : _props$conversationDa19.id,
|
|
17413
17548
|
friend_type: props.conversationData.friend_type,
|
|
17414
17549
|
session_id: props.conversationId
|
|
17415
17550
|
};
|
|
@@ -17479,48 +17614,67 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17479
17614
|
href: msg.content,
|
|
17480
17615
|
target: "_blank",
|
|
17481
17616
|
class: "file-link"
|
|
17482
|
-
}, " 📎 点击下载文件 ", 8, _hoisted_25)])) : msg.msgType === 5 ? (openBlock(), createElementBlock("div", _hoisted_26, toDisplayString(msg.content), 1)) : msg.msgType === 6 ? (openBlock(), createElementBlock("div", _hoisted_27, toDisplayString(msg.content), 1)) :
|
|
17617
|
+
}, " 📎 点击下载文件 ", 8, _hoisted_25)])) : msg.msgType === 5 ? (openBlock(), createElementBlock("div", _hoisted_26, toDisplayString(msg.content), 1)) : msg.msgType === 6 ? (openBlock(), createElementBlock("div", _hoisted_27, toDisplayString(msg.content), 1)) : msg.msgType === 7 ? (openBlock(), createElementBlock("div", _hoisted_28, [createBaseVNode("video", {
|
|
17618
|
+
src: msg.content,
|
|
17619
|
+
controls: "",
|
|
17620
|
+
preload: "metadata",
|
|
17621
|
+
onLoadedmetadata: scrollToBottomAfterRender
|
|
17622
|
+
}, null, 40, _hoisted_29)])) : (openBlock(), createElementBlock("div", _hoisted_30, toDisplayString(msg.content), 1)), createBaseVNode("div", _hoisted_31, toDisplayString(msg.time), 1)])])], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createBaseVNode("div", _hoisted_32, [createBaseVNode("div", _hoisted_33, [msg.msgType === 1 ? (openBlock(), createElementBlock("div", _hoisted_34, toDisplayString(msg.content), 1)) : msg.msgType === 2 ? (openBlock(), createElementBlock("div", _hoisted_35, [createBaseVNode("img", {
|
|
17483
17623
|
src: msg.content,
|
|
17484
17624
|
alt: "图片",
|
|
17485
17625
|
onLoad: ($event) => handleMessageImageLoad(msg.id),
|
|
17486
17626
|
onError: handleImageError
|
|
17487
|
-
}, null, 40,
|
|
17627
|
+
}, null, 40, _hoisted_36)])) : msg.msgType === 3 ? (openBlock(), createElementBlock("div", _hoisted_37, toDisplayString(msg.content), 1)) : msg.msgType === 4 ? (openBlock(), createElementBlock("div", _hoisted_38, [createBaseVNode("a", {
|
|
17488
17628
|
href: msg.content,
|
|
17489
17629
|
target: "_blank",
|
|
17490
17630
|
class: "file-link"
|
|
17491
|
-
}, " 📎 点击下载文件 ", 8,
|
|
17631
|
+
}, " 📎 点击下载文件 ", 8, _hoisted_39)])) : msg.msgType === 5 ? (openBlock(), createElementBlock("div", _hoisted_40, toDisplayString(msg.content), 1)) : msg.msgType === 6 ? (openBlock(), createElementBlock("div", _hoisted_41, toDisplayString(msg.content), 1)) : msg.msgType === 7 ? (openBlock(), createElementBlock("div", _hoisted_42, [createBaseVNode("video", {
|
|
17632
|
+
src: msg.content,
|
|
17633
|
+
controls: "",
|
|
17634
|
+
preload: "metadata",
|
|
17635
|
+
onLoadedmetadata: scrollToBottomAfterRender
|
|
17636
|
+
}, null, 40, _hoisted_43)])) : (openBlock(), createElementBlock("div", _hoisted_44, toDisplayString(msg.content), 1)), createBaseVNode("div", _hoisted_45, toDisplayString(msg.time), 1)])]), createBaseVNode("div", _hoisted_46, [msg.avatar ? (openBlock(), createElementBlock("img", {
|
|
17492
17637
|
key: 0,
|
|
17493
17638
|
src: msg.avatar,
|
|
17494
17639
|
alt: msg.sender || "用户",
|
|
17495
17640
|
class: "msg-avatar-img",
|
|
17496
17641
|
onError: handleImageError
|
|
17497
|
-
}, null, 40,
|
|
17642
|
+
}, null, 40, _hoisted_47)) : (openBlock(), createElementBlock("div", _hoisted_48, toDisplayString(((_msg$sender2 = msg.sender) === null || _msg$sender2 === void 0 ? void 0 : _msg$sender2.charAt(0)) || "#"), 1))])], 64))], 2);
|
|
17498
17643
|
}), 128)),
|
|
17499
|
-
!loading.value && messages.value.length === 0 ? (openBlock(), createElementBlock("div",
|
|
17644
|
+
!loading.value && messages.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_49, [createBaseVNode("img", {
|
|
17500
17645
|
class: "empty-icon",
|
|
17501
17646
|
src: unref(message_default),
|
|
17502
17647
|
alt: "暂无消息"
|
|
17503
|
-
}, null, 8,
|
|
17648
|
+
}, null, 8, _hoisted_50), _cache[5] || (_cache[5] = createBaseVNode("p", null, "暂无消息", -1))])) : createCommentVNode("", true)
|
|
17504
17649
|
], 544),
|
|
17505
|
-
createBaseVNode("div",
|
|
17506
|
-
createBaseVNode("div",
|
|
17650
|
+
createBaseVNode("div", _hoisted_51, [
|
|
17651
|
+
createBaseVNode("div", _hoisted_52, [
|
|
17507
17652
|
createBaseVNode("button", {
|
|
17508
17653
|
class: "tool-btn image-btn",
|
|
17509
17654
|
disabled: isUploading.value,
|
|
17510
17655
|
title: "发送图片",
|
|
17511
17656
|
onClick: handleImageSelect
|
|
17512
|
-
}, [createBaseVNode("span",
|
|
17657
|
+
}, [createBaseVNode("span", _hoisted_54, [!isUploading.value ? (openBlock(), createElementBlock("svg", _hoisted_55, [..._cache[6] || (_cache[6] = [createBaseVNode("path", {
|
|
17513
17658
|
fill: "currentColor",
|
|
17514
17659
|
d: "M160 160v704h704V160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32"
|
|
17515
17660
|
}, null, -1), createBaseVNode("path", {
|
|
17516
17661
|
fill: "currentColor",
|
|
17517
17662
|
d: "M384 288q64 0 64 64t-64 64-64-64 64-64M185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952z"
|
|
17518
|
-
}, null, -1)])])) : (openBlock(), createElementBlock("span",
|
|
17519
|
-
createBaseVNode("
|
|
17663
|
+
}, null, -1)])])) : (openBlock(), createElementBlock("span", _hoisted_56, "⏳"))]), createBaseVNode("span", _hoisted_57, toDisplayString(isUploading.value ? "上传中..." : "图片"), 1)], 8, _hoisted_53),
|
|
17664
|
+
createBaseVNode("button", {
|
|
17665
|
+
class: "tool-btn video-btn",
|
|
17666
|
+
disabled: isUploadingVideo.value,
|
|
17667
|
+
title: "发送视频",
|
|
17668
|
+
onClick: handleVideoSelect
|
|
17669
|
+
}, [createBaseVNode("span", _hoisted_59, [!isUploadingVideo.value ? (openBlock(), createElementBlock("svg", _hoisted_60, [..._cache[7] || (_cache[7] = [createBaseVNode("path", {
|
|
17670
|
+
fill: "currentColor",
|
|
17671
|
+
d: "M832 192H192c-35.2 0-64 28.8-64 64v512c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64V256c0-35.2-28.8-64-64-64m0 64v512H192V256zM320 320l320 192-320 192z"
|
|
17672
|
+
}, null, -1)])])) : (openBlock(), createElementBlock("span", _hoisted_61, "⏳"))]), createBaseVNode("span", _hoisted_62, toDisplayString(isUploadingVideo.value ? "上传中..." : "视频"), 1)], 8, _hoisted_58),
|
|
17673
|
+
createBaseVNode("div", _hoisted_63, [createBaseVNode("button", {
|
|
17520
17674
|
class: "tool-btn emoji-btn",
|
|
17521
17675
|
title: "选择表情",
|
|
17522
17676
|
onClick: toggleEmojiPicker
|
|
17523
|
-
}, [..._cache[
|
|
17677
|
+
}, [..._cache[8] || (_cache[8] = [createStaticVNode("<span class=\"tool-btn-icon\" aria-hidden=\"true\" data-v-6f480f31><svg class=\"tool-btn-svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" data-v-6f480f31><circle cx=\"12\" cy=\"12\" r=\"10\" data-v-6f480f31></circle><path d=\"M8 14s1.5 2 4 2 4-2 4-2\" data-v-6f480f31></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\" data-v-6f480f31></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\" data-v-6f480f31></line></svg></span><span class=\"tool-btn-text\" data-v-6f480f31>表情</span>", 2)])]), showEmojiPicker.value ? (openBlock(), createElementBlock("div", _hoisted_64, [createVNode(unref(Picker), {
|
|
17524
17678
|
native: true,
|
|
17525
17679
|
theme: "light",
|
|
17526
17680
|
"group-names": {
|
|
@@ -17550,7 +17704,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17550
17704
|
class: normalizeClass(["tool-btn quick-reply-trigger", { active: showQuickReplyPanel.value }]),
|
|
17551
17705
|
title: "快捷回复",
|
|
17552
17706
|
onClick: toggleQuickReplyPanel
|
|
17553
|
-
}, [..._cache[
|
|
17707
|
+
}, [..._cache[9] || (_cache[9] = [createBaseVNode("span", {
|
|
17554
17708
|
class: "tool-btn-icon",
|
|
17555
17709
|
"aria-hidden": "true"
|
|
17556
17710
|
}, [createBaseVNode("svg", {
|
|
@@ -17561,18 +17715,18 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17561
17715
|
"stroke-width": "2",
|
|
17562
17716
|
"stroke-linecap": "round",
|
|
17563
17717
|
"stroke-linejoin": "round"
|
|
17564
|
-
}, [createBaseVNode("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })])], -1), createBaseVNode("span", { class: "tool-btn-text" }, "快捷回复", -1)])], 2), showQuickReplyPanel.value ? (openBlock(), createElementBlock("div",
|
|
17718
|
+
}, [createBaseVNode("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })])], -1), createBaseVNode("span", { class: "tool-btn-text" }, "快捷回复", -1)])], 2), showQuickReplyPanel.value ? (openBlock(), createElementBlock("div", _hoisted_65, [createBaseVNode("div", _hoisted_66, [withDirectives(createBaseVNode("input", {
|
|
17565
17719
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => quickReplyKeyword.value = $event),
|
|
17566
17720
|
type: "text",
|
|
17567
17721
|
placeholder: "搜索快捷回复"
|
|
17568
|
-
}, null, 512), [[vModelText, quickReplyKeyword.value]])]), createBaseVNode("div",
|
|
17722
|
+
}, null, 512), [[vModelText, quickReplyKeyword.value]])]), createBaseVNode("div", _hoisted_67, [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredQuickReplyList.value, (item, index) => {
|
|
17569
17723
|
return openBlock(), createElementBlock("button", {
|
|
17570
17724
|
key: `${item}-${index}`,
|
|
17571
17725
|
type: "button",
|
|
17572
17726
|
class: "quick-reply-item",
|
|
17573
17727
|
onClick: ($event) => applyQuickReply(item)
|
|
17574
|
-
}, toDisplayString(item), 9,
|
|
17575
|
-
}), 128)), !filteredQuickReplyList.value.length ? (openBlock(), createElementBlock("div",
|
|
17728
|
+
}, toDisplayString(item), 9, _hoisted_68);
|
|
17729
|
+
}), 128)), !filteredQuickReplyList.value.length ? (openBlock(), createElementBlock("div", _hoisted_69, " 暂无匹配快捷回复 ")) : createCommentVNode("", true)])])) : createCommentVNode("", true)], 512)) : createCommentVNode("", true)
|
|
17576
17730
|
]),
|
|
17577
17731
|
withDirectives(createBaseVNode("textarea", {
|
|
17578
17732
|
ref_key: "inputTextarea",
|
|
@@ -17581,7 +17735,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17581
17735
|
placeholder: "请输入消息...",
|
|
17582
17736
|
rows: "3",
|
|
17583
17737
|
onKeydown: withKeys(withModifiers(sendMessage, ["exact", "prevent"]), ["enter"])
|
|
17584
|
-
}, null, 40,
|
|
17738
|
+
}, null, 40, _hoisted_70), [[vModelText, inputMessage.value]]),
|
|
17585
17739
|
createBaseVNode("div", { class: "input-actions" }, [createBaseVNode("button", {
|
|
17586
17740
|
class: "send-btn",
|
|
17587
17741
|
onClick: sendMessage
|
|
@@ -17606,7 +17760,7 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
17606
17760
|
]);
|
|
17607
17761
|
};
|
|
17608
17762
|
}
|
|
17609
|
-
}), [["__scopeId", "data-v-
|
|
17763
|
+
}), [["__scopeId", "data-v-6f480f31"]]);
|
|
17610
17764
|
//#endregion
|
|
17611
17765
|
//#region src/assets/img/list.png?url
|
|
17612
17766
|
var list_default = "data:image/png;base64,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";
|
|
@@ -19421,6 +19575,8 @@ Expected function or array of functions, received type ${typeof value}.`);
|
|
|
19421
19575
|
exports.isStoreMode = isStoreMode;
|
|
19422
19576
|
exports.resetConfig = resetConfig;
|
|
19423
19577
|
exports.updateConfig = updateConfig;
|
|
19578
|
+
exports.uploadFile = uploadFile;
|
|
19579
|
+
exports.uploadImage = uploadImage;
|
|
19424
19580
|
exports.warnModeOverrides = warnModeOverrides;
|
|
19425
19581
|
exports.wsClient = wsClient;
|
|
19426
19582
|
});
|