zj-plugin-intelligent 1.2.5-beta.1 → 1.2.5-beta.11
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.
|
@@ -931,6 +931,42 @@ eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! ./node_modules/_
|
|
|
931
931
|
|
|
932
932
|
/***/ }),
|
|
933
933
|
|
|
934
|
+
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=script&lang=js":
|
|
935
|
+
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
936
|
+
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=script&lang=js ***!
|
|
937
|
+
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
938
|
+
/*! no static exports found */
|
|
939
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
940
|
+
|
|
941
|
+
"use strict";
|
|
942
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = exports.default = {\n name: 'AgentSelector',\n props: {\n agentList: {\n type: Array,\n default: () => []\n },\n isMobile: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n getInitial(name) {\n if (!name) return '?';\n return name.charAt(0);\n }\n }\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
943
|
+
|
|
944
|
+
/***/ }),
|
|
945
|
+
|
|
946
|
+
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=script&lang=js":
|
|
947
|
+
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
948
|
+
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=script&lang=js ***!
|
|
949
|
+
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
950
|
+
/*! no static exports found */
|
|
951
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
952
|
+
|
|
953
|
+
"use strict";
|
|
954
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n__webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.error.cause.js\");\n__webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array.push.js\");\n__webpack_require__(/*! core-js/modules/es.array-buffer.detached.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array-buffer.detached.js\");\n__webpack_require__(/*! core-js/modules/es.array-buffer.transfer.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array-buffer.transfer.js\");\n__webpack_require__(/*! core-js/modules/es.array-buffer.transfer-to-fixed-length.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array-buffer.transfer-to-fixed-length.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.constructor.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.find.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.for-each.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.map.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.at.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.at.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.find-last.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.find-last.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.find-last-index.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.find-last-index.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.set.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.set.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.to-reversed.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.to-reversed.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.to-sorted.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.to-sorted.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.with.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.with.js\");\nvar _markdownIt = _interopRequireDefault(__webpack_require__(/*! markdown-it */ \"./node_modules/_markdown-it@14.1.0@markdown-it/index.mjs\"));\nvar _apichat = __webpack_require__(/*! @lib/api/apichat */ \"./src/lib/api/apichat.js\");\nvar _index = __webpack_require__(/*! @lib/socket/fileManager/obs/index */ \"./src/lib/socket/fileManager/obs/index.js\");\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @lib/socket/utils/index */ \"./src/lib/socket/utils/index.js\"));\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\nvar _apiObs = _interopRequireDefault(__webpack_require__(/*! @lib/api/apiObs */ \"./src/lib/api/apiObs.js\"));\nvar _html2canvas = _interopRequireDefault(__webpack_require__(/*! html2canvas */ \"./node_modules/_html2canvas@1.4.1@html2canvas/dist/html2canvas.js\"));\nconst md = new _markdownIt.default({\n breaks: true,\n html: false,\n linkify: true,\n typographer: true\n});\nmd.enable('table');\nvar _default = exports.default = {\n name: 'ChatDetail',\n props: {\n isMobile: {\n type: Boolean,\n default: false\n },\n activeSessionId: {\n type: String,\n default: ''\n },\n currentAgent: {\n type: String,\n default: ''\n },\n agentInfo: {\n type: Object,\n default: () => ({})\n },\n currentAgentDesc: {\n type: String,\n default: ''\n },\n showSidebar: {\n type: Boolean,\n default: false\n },\n showH5List: {\n type: Boolean,\n default: false\n },\n showAgentSelect: {\n type: Boolean,\n default: false\n },\n agentList: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n messages: [],\n inputText: '',\n sending: false,\n waitTimer: null,\n waitSeconds: 0,\n canceling: false,\n msgPage: 1,\n msgMaxPage: 1,\n msgTotal: 0,\n eventSource: null,\n showToolInfo: false,\n showDownBtn: false,\n lastScrollTop: 0,\n scrollTimer: null,\n contentCache: {},\n loadingSessionMsg: false,\n greeting: '',\n _scrollTimer: null,\n voiceMode: false,\n isRecording: false,\n recordDuration: 0,\n recordingTimer: null,\n audioContext: null,\n audioStream: null,\n audioProcessor: null,\n audioChunks: [],\n isCancelSwipe: false,\n recordStartY: 0,\n _pendingSendText: null\n };\n },\n computed: {\n waitClass() {\n if (this.waitSeconds > 15) return 'wait-15';\n if (this.waitSeconds > 10) return 'wait-10';\n if (this.waitSeconds > 5) return 'wait-5';\n return '';\n },\n currentAgentName() {\n if (!this.currentAgent) return '';\n const a = this.agentList.find(x => x.agentCode === this.currentAgent);\n return a ? a.agentName || a.agentCode : this.currentAgent;\n }\n },\n watch: {\n contentCache: {\n handler(val) {\n // 保持响应性\n },\n immediate: true\n },\n activeSessionId(val) {\n if (val && this._pendingSendText) {\n const text = this._pendingSendText;\n this._pendingSendText = null;\n this.$nextTick(() => this._sendMessage(text));\n }\n }\n },\n mounted() {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', this.onViewportResize, {\n passive: true\n });\n }\n },\n beforeDestroy() {\n if (window.visualViewport) {\n window.visualViewport.removeEventListener('resize', this.onViewportResize);\n }\n this.releaseAudio();\n this.contentCache = {};\n clearTimeout(this._scrollTimer);\n if (this.eventSource) {\n this.eventSource.onerror = null;\n this.eventSource.close();\n this.eventSource = null;\n }\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n if (this._typeTimer) {\n clearInterval(this._typeTimer);\n this._typeTimer = null;\n }\n },\n methods: {\n getInitial(name) {\n if (!name) return '?';\n return name.charAt(0);\n },\n formatTime(t) {\n if (!t) return '';\n const d = new Date(t.replace(' ', 'T'));\n const now = new Date();\n const diff = (now - d) / 1000;\n if (diff < 60) return '刚刚';\n if (diff < 3600) return Math.floor(diff / 60) + '分钟前';\n if (diff < 86400) return Math.floor(diff / 3600) + '小时前';\n return d.getMonth() + 1 + '/' + d.getDate();\n },\n escapeHtml(text) {\n if (!text) return '';\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n },\n renderMarkdown(text) {\n if (!text) return '';\n try {\n return md.render(text);\n } catch (err) {\n return this.escapeHtml(text);\n }\n },\n renderStreaming(text, msgKey) {\n if (!text) return '';\n const cache = this.contentCache[msgKey];\n const lines = text.split('\\n');\n const lastLineIdx = lines.length - 1;\n if (!cache) {\n try {\n const html = md.render(text);\n this.$set(this.contentCache, msgKey, {\n renderedLines: lastLineIdx,\n html,\n fullText: text\n });\n return html;\n } catch {\n return this.escapeHtml(text);\n }\n }\n if (text === cache.fullText) return cache.html;\n cache.fullText = text;\n\n // 行数没变,仅末尾追加字符,直接拼接尾行\n if (lastLineIdx === cache.renderedLines) {\n return cache.html + this.escapeHtml(lines[lastLineIdx]);\n }\n\n // 场景1:行数变少/文本回退截断,全量重渲染\n if (lastLineIdx < cache.renderedLines) {\n try {\n const fullLines = lines.slice(0, lastLineIdx);\n let newBaseHtml = '';\n if (fullLines.length > 0) {\n newBaseHtml = md.render(fullLines.join('\\n'));\n }\n cache.html = newBaseHtml;\n cache.renderedLines = lastLineIdx;\n const lastLine = this.escapeHtml(lines[lastLineIdx]);\n return cache.html + (lastLine || '');\n } catch {\n return this.escapeHtml(text);\n }\n }\n\n // 场景2:新增完整行\n if (cache.renderedLines < lastLineIdx) {\n const allFullLines = lines.slice(0, lastLineIdx);\n let newBaseHtml = '';\n if (allFullLines.length > 0) {\n newBaseHtml = md.render(allFullLines.join('\\n'));\n }\n cache.html = newBaseHtml;\n cache.renderedLines = lastLineIdx;\n }\n const lastLine = this.escapeHtml(lines[lastLineIdx]);\n cache.renderedLines = lastLineIdx;\n return cache.html + (lastLine || '');\n },\n getChatAvatarStyle(agent, avatar) {\n if (avatar) {\n return {\n backgroundImage: `url(${avatar})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n }\n const _agent = this.agentList.find(x => x.agentCode === agent);\n if (_agent && _agent.avatar) {\n return {\n backgroundImage: `url(${_agent.avatar})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n }\n // 没有网络图片时,根据智能体在 agentList 中的索引位置决定颜色\n const index = this.agentList.findIndex(item => item.agentCode === agent);\n if (index !== -1) {\n const colorIndex = index % 4 + 1;\n return {\n background: this.getGradientByColorIndex(colorIndex)\n };\n }\n return {\n background: 'linear-gradient(135deg, #1677ff, #4096ff)'\n };\n },\n getGradientByColorIndex(index) {\n const gradients = {\n 1: 'linear-gradient(135deg, #1677ff, #4096ff)',\n 2: 'linear-gradient(135deg, #52c41a, #73d13d)',\n 3: 'linear-gradient(135deg, #fa8c16, #ffa940)',\n 4: 'linear-gradient(135deg, #722ed1, #b37feb)'\n };\n return gradients[index] || gradients[1];\n },\n sendQuickMsg(message) {\n if (message) {\n this.inputText = message;\n this.sendMessage();\n }\n },\n formatMixText(str) {\n if (!str) return '';\n let res = str.replace(/([a-zA-Z0-9])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z0-9])/g, '$1 $2');\n res = res.replace(/([a-z])([A-Z])/g, '$1 $2');\n return res;\n },\n // 检测是否滚动到底部,控制向下箭头显示隐藏\n checkScrollBottom(forceShowWhenNotBottom = false) {\n const el = this.$refs.messagesRef;\n if (!el) {\n this.showDownBtn = false;\n return;\n }\n const {\n scrollHeight,\n scrollTop,\n clientHeight\n } = el;\n const remain = scrollHeight - scrollTop - clientHeight;\n const atBottom = remain <= 80;\n if (atBottom) {\n this.showDownBtn = false;\n } else if (this.sending && scrollTop >= this.lastScrollTop && !forceShowWhenNotBottom) {\n this.showDownBtn = false;\n } else {\n this.showDownBtn = true;\n }\n this.lastScrollTop = scrollTop;\n this.$emit('scroll-bottom-check', {\n showDownBtn: this.showDownBtn,\n lastScrollTop: this.lastScrollTop\n });\n },\n // H5 输入框获取焦点 - 滚动到底部让键盘不遮挡\n onInputFocus() {\n if (!this.isMobile) return;\n setTimeout(() => {\n window.scrollTo(0, document.body.scrollHeight);\n }, 300);\n },\n // visualViewport 变化时(如键盘弹出)调整滚动位置\n onViewportResize() {\n if (!this.isMobile) return;\n const activeEl = document.activeElement;\n if (activeEl && (activeEl.tagName === 'TEXTAREA' || activeEl.tagName === 'INPUT')) {\n window.scrollTo(0, document.body.scrollHeight);\n }\n },\n autoResizeTextarea() {\n const ta = this.$refs.taRef;\n if (!ta) return;\n const isMobile = this.isMobile;\n const baseH = isMobile ? 36 : 100;\n const maxH = isMobile ? 100 : 180;\n ta.style.height = `${baseH}px`;\n const realH = ta.scrollHeight;\n if (realH > baseH) {\n ta.style.height = `${Math.min(realH, maxH)}px`;\n }\n this.$nextTick(() => {\n this.checkScrollBottom(true);\n });\n },\n // Ctrl+Enter换行\n newLine(e) {\n e.preventDefault();\n const ta = this.$refs.taRef;\n const start = ta.selectionStart;\n const end = ta.selectionEnd;\n this.inputText = this.inputText.slice(0, start) + '\\n' + this.inputText.slice(end);\n this.$nextTick(() => {\n ta.selectionStart = ta.selectionEnd = start + 1;\n this.autoResizeTextarea();\n });\n },\n toggleVoiceMode() {\n this.voiceMode = !this.voiceMode;\n if (!this.voiceMode) {\n this.releaseAudio();\n }\n },\n // 确保音频设备已就绪\n async ensureAudioReady() {\n if (this.audioContext && this.audioStream) return true;\n if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\n alert('当前环境不支持麦克风访问');\n return false;\n }\n try {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: true\n });\n this.audioStream = stream;\n const audioContext = new (window.AudioContext || window.webkitAudioContext)({\n sampleRate: 16000\n });\n this.audioContext = audioContext;\n const source = audioContext.createMediaStreamSource(stream);\n const processor = audioContext.createScriptProcessor(4096, 1, 1);\n this.audioProcessor = processor;\n processor.onaudioprocess = e => {\n if (!this.isRecording) return;\n const inputData = e.inputBuffer.getChannelData(0);\n this.audioChunks.push(new Float32Array(inputData));\n };\n source.connect(processor);\n processor.connect(audioContext.destination);\n return true;\n } catch (err) {\n console.error('麦克风访问失败:', err);\n alert('麦克风权限被拒绝');\n return false;\n }\n },\n // H5语音录制 - 触摸开始\n async onRecordTouchStart(e) {\n if (this.sending) return;\n const ready = await this.ensureAudioReady();\n if (!ready) return;\n this.isCancelSwipe = false;\n this.recordStartY = e.touches[0].clientY;\n this.recordDuration = 0;\n this.audioChunks = [];\n this.isRecording = true;\n this.recordingTimer = setInterval(() => {\n this.recordDuration++;\n if (this.recordDuration >= 60) {\n this.onRecordTouchEnd();\n }\n }, 1000);\n },\n // H5语音录制 - 触摸移动\n onRecordTouchMove(e) {\n if (!this.isRecording) return;\n const touch = e.touches[0];\n const moveY = touch.clientY;\n const cancelThreshold = 60;\n this.isCancelSwipe = this.recordStartY - moveY > cancelThreshold;\n },\n // H5语音录制 - 触摸结束\n onRecordTouchEnd() {\n if (!this.isRecording) return;\n this.isRecording = false;\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n this.stopAudioCapture(!this.isCancelSwipe);\n },\n // 停止音频采集并输出 WAV\n stopAudioCapture(shouldSend) {\n this.isRecording = false;\n if (shouldSend && this.audioChunks.length > 0) {\n const wavBlob = this.encodePCMToWav(this.audioChunks, 16000);\n this.sendAudioBlob(wavBlob);\n }\n this.audioChunks = [];\n },\n // 取消录音\n cancelRecording() {\n this.isRecording = false;\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n this.recordDuration = 0;\n this.isCancelSwipe = false;\n this.audioChunks = [];\n },\n // 释放音频资源\n releaseAudio() {\n this.cancelRecording();\n if (this.audioProcessor) {\n this.audioProcessor.disconnect();\n this.audioProcessor = null;\n }\n if (this.audioContext) {\n this.audioContext.close().catch(() => {});\n this.audioContext = null;\n }\n if (this.audioStream) {\n this.audioStream.getTracks().forEach(t => t.stop());\n this.audioStream = null;\n }\n },\n // 将 Float32 PCM 数据编码为 WAV Blob\n encodePCMToWav(chunks, sampleRate) {\n let totalLength = 0;\n for (const chunk of chunks) {\n totalLength += chunk.length;\n }\n const pcmData = new Int16Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n for (let i = 0; i < chunk.length; i++) {\n const s = Math.max(-1, Math.min(1, chunk[i]));\n pcmData[offset++] = s < 0 ? s * 0x8000 : s * 0x7FFF;\n }\n }\n const numChannels = 1;\n const bitsPerSample = 16;\n const byteRate = sampleRate * numChannels * bitsPerSample / 8;\n const blockAlign = numChannels * bitsPerSample / 8;\n const dataSize = pcmData.length * (bitsPerSample / 8);\n const headerSize = 44;\n const totalSize = headerSize + dataSize;\n const buffer = new ArrayBuffer(totalSize);\n const view = new DataView(buffer);\n this._wavWriteString(view, 0, 'RIFF');\n view.setUint32(4, totalSize - 8, true);\n this._wavWriteString(view, 8, 'WAVE');\n this._wavWriteString(view, 12, 'fmt ');\n view.setUint32(16, 16, true);\n view.setUint16(20, 1, true);\n view.setUint16(22, numChannels, true);\n view.setUint32(24, sampleRate, true);\n view.setUint32(28, byteRate, true);\n view.setUint16(32, blockAlign, true);\n view.setUint16(34, bitsPerSample, true);\n this._wavWriteString(view, 36, 'data');\n view.setUint32(40, dataSize, true);\n const pcmView = new Int16Array(buffer, headerSize, pcmData.length);\n pcmView.set(pcmData);\n return new Blob([buffer], {\n type: 'audio/wav'\n });\n },\n _wavWriteString(view, offset, str) {\n for (let i = 0; i < str.length; i++) {\n view.setUint8(offset + i, str.charCodeAt(i));\n }\n },\n // 发送音频\n sendAudioBlob(blob) {\n let appSeqId = _index2.default.getAppSeqId();\n let name = appSeqId + '.wav';\n const file = new File([blob], name, {\n type: 'audio/wav'\n });\n this.sendAudioMessage(file);\n },\n sendAudioMessage(file) {\n const sttKey = 'stt_' + Date.now();\n const sttMsg = {\n role: 'user',\n content: '转化中...',\n _sttStatus: 'pending',\n _sttKey: sttKey,\n createTime: new Date().toISOString(),\n _key: sttKey\n };\n this.messages.push(sttMsg);\n this.scrollToBottom(true);\n (0, _index.fileUploadToObs)({\n _file: file,\n appSeqId: file.name\n }).then(resp => {\n if (resp.CommonMsg.Status === 200) {\n return _apiObs.default.aliAudioToText({\n url: resp.obs_upload_data.obsUrl\n }).then(result => {\n if (result.code === '200' && result.data) {\n const idx = this.messages.findIndex(m => m._sttKey === sttKey);\n if (idx !== -1) {\n this.messages.splice(idx, 1);\n }\n this.sendQuickMsg(result.data);\n } else {\n throw new Error(result.msg || '语音转文字失败');\n }\n });\n } else {\n throw new Error(resp.CommonMsg.Message || '文件上传失败');\n }\n }).catch(err => {\n console.error('语音转文字失败:', err);\n const idx = this.messages.findIndex(m => m._sttKey === sttKey);\n if (idx !== -1) {\n this.$set(this.messages, idx, {\n ...this.messages[idx],\n _sttStatus: 'error',\n content: '语音转文字失败'\n });\n }\n this.$message.error('语音转文字失败');\n });\n this.$message.success(`录音完成 (${this.recordDuration}s)`);\n },\n clearWaitTimer() {\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n },\n loadMoreMessages() {\n const nextPage = this.msgPage + 1;\n const maxPage = Math.ceil(this.msgTotal / 10);\n if (nextPage > maxPage) {\n this.loadingMore = false;\n return;\n }\n (0, _apichat.getSessionMessages)(this.activeSessionId, nextPage, 10).then(res => {\n const list = Array.isArray(res) ? res : res.list || [];\n this.msgPage = nextPage;\n const asAsc = (list || []).slice().reverse();\n const prepend = asAsc.map(m => ({\n role: m.role,\n content: m.content || '',\n thinking: m.thinking || '',\n toolCalls: [],\n agentName: '',\n createTime: m.createTime || null,\n _key: m.createTime ? 'msg_' + m.createTime : 'msg_' + Date.now() + '_' + Math.random()\n }));\n const container = this.$refs.messagesRef;\n const oldScrollHeight = container ? container.scrollHeight : 0;\n const oldScrollTop = container ? container.scrollTop : 0;\n this.messages = [...prepend, ...this.messages];\n this.$nextTick(() => {\n if (container) {\n container.scrollTop = oldScrollTop + (container.scrollHeight - oldScrollHeight);\n }\n this.loadingMore = false;\n });\n }).catch(() => {\n this.loadingMore = false;\n });\n },\n onScrollMessages() {\n const container = this.$refs.messagesRef;\n if (!container || this.loadingMore) return;\n const isAtBottom = container.scrollTop + container.clientHeight >= container.scrollHeight - 100;\n this.checkScrollBottom();\n if (isAtBottom) return;\n if (container.scrollTop < 50 && this.msgPage < Math.ceil(this.msgTotal / 10)) {\n this.loadingMore = true;\n this.loadMoreMessages();\n }\n },\n async sendMessage() {\n const text = this.inputText.trim();\n if (!text || this.sending) return;\n if (!this.activeSessionId) {\n this.$emit('start-session');\n this._pendingSendText = text;\n return;\n }\n this._sendMessage(text);\n },\n async _sendMessage(text) {\n this.inputText = '';\n const ta = this.$refs.taRef;\n const isMobile = this.isMobile;\n const baseH = isMobile ? 36 : 100;\n if (ta) {\n ta.style.height = baseH + 'px';\n }\n this.showDownBtn = false;\n this.messages.push({\n role: 'user',\n content: text,\n createTime: new Date().toISOString(),\n _key: 'user_' + Date.now() + '_' + Math.random()\n });\n const agentName = this.currentAgentName;\n const msgIdx = this.messages.push({\n role: \"assistant\",\n content: \"\",\n thinking: \"\",\n loading: true,\n toolCalls: [],\n agentName,\n createTime: new Date().toISOString(),\n _key: 'asst_' + Date.now() + '_' + Math.random()\n }) - 1;\n this.scrollToBottom(true);\n this.sending = true;\n this.waitSeconds = 0;\n if (this.waitTimer) clearInterval(this.waitTimer);\n this.waitTimer = setInterval(() => {\n this.waitSeconds++;\n }, 1000);\n let thinkingBuffer = '';\n let finalContent = '';\n let answerBuffer = '';\n let thinkDisplayed = 0;\n let typeTimer = null;\n typeTimer = setInterval(() => {\n if (!this.messages[msgIdx]) return;\n if (thinkDisplayed < thinkingBuffer.length) {\n thinkDisplayed += 50;\n if (thinkDisplayed > thinkingBuffer.length) thinkDisplayed = thinkingBuffer.length;\n this.messages[msgIdx].thinking = thinkingBuffer.substring(0, thinkDisplayed);\n this.scrollToBottom();\n } else if (finalContent && !this.messages[msgIdx].content) {\n clearInterval(typeTimer);\n const key = this.messages[msgIdx]._key;\n if (key) {\n this.$delete(this.contentCache, key);\n this.$delete(this.contentCache, key + '_t');\n }\n typeTimer = null;\n this.messages[msgIdx].content = finalContent;\n this.messages[msgIdx].thinking = thinkingBuffer;\n this.messages[msgIdx].loading = false;\n this.sending = false;\n this.clearWaitTimer();\n this.scrollToBottom();\n this.$emit('session-refresh');\n this.$emit('message-sent');\n }\n }, 30);\n const url = (0, _apichat.createStreamUrl)(this.activeSessionId, text);\n if (this.eventSource) {\n this.eventSource.close();\n }\n this.eventSource = new EventSource(url);\n const es = this.eventSource;\n es.addEventListener('reasoning', e => {\n if (e.data) {\n const chunk = e.data;\n let cleanChunk = chunk.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2').replace(/\\s+([:,.!?])/g, '$1').replace(/([:,.!?])\\s+/g, '$1 ');\n cleanChunk = cleanChunk.replace(/\\s+/g, ' ');\n const lastChar = thinkingBuffer.slice(-1);\n const firstChar = cleanChunk.slice(0, 1);\n const isLetter = c => /[a-zA-Z]/.test(c);\n if (isLetter(lastChar) && isLetter(firstChar)) {\n thinkingBuffer += ' ' + cleanChunk;\n } else {\n thinkingBuffer += cleanChunk;\n }\n }\n });\n es.addEventListener('reasoning_result', e => {\n if (e.data) {\n thinkingBuffer = e.data;\n }\n });\n es.addEventListener('answer', e => {\n if (e.data) {\n answerBuffer += e.data;\n if (this.messages[msgIdx]) {\n this.messages[msgIdx].content += e.data.replace(/([a-zA-Z]+)([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z]+)/g, '$1 $2').replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2');\n this.scrollToBottom();\n }\n }\n });\n es.addEventListener('tool_result', e => {\n if (e.data && this.messages[msgIdx]) {\n if (!this.messages[msgIdx].toolCalls) this.messages[msgIdx].toolCalls = [];\n this.messages[msgIdx].toolCalls.push(e.data);\n this.scrollToBottom();\n }\n });\n es.addEventListener('agent_result', e => {\n finalContent = e.data || '';\n es.close();\n this.eventSource = null;\n if (this.messages[msgIdx]) {\n const key = this.messages[msgIdx]._key;\n if (key) this.$delete(this.contentCache, key);\n this.messages[msgIdx].content = finalContent;\n this.messages[msgIdx].thinking = thinkingBuffer;\n this.messages[msgIdx].loading = false;\n }\n this.sending = false;\n this.clearWaitTimer();\n if (typeTimer) {\n clearInterval(typeTimer);\n typeTimer = null;\n }\n this.scrollToBottom();\n this.$emit('session-refresh');\n this.$emit('message-sent');\n });\n es.onerror = err => {\n console.log('[SSE] onerror', err);\n if (thinkingBuffer.length > 0 && !finalContent) finalContent = thinkingBuffer;\n if (!finalContent) finalContent = '❌ 连接中断';\n es.close();\n this.eventSource = null;\n if (this.messages[msgIdx]) {\n const key = this.messages[msgIdx]._key;\n if (key) this.$delete(this.contentCache, key);\n this.messages[msgIdx].content = finalContent;\n this.messages[msgIdx].thinking = thinkingBuffer;\n this.messages[msgIdx].loading = false;\n }\n this.sending = false;\n this.clearWaitTimer();\n if (typeTimer) {\n clearInterval(typeTimer);\n typeTimer = null;\n }\n this.scrollToBottom();\n };\n },\n stopAgent() {\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n if (this.activeSessionId) {\n (0, _apichat.stopStream)(this.activeSessionId).catch(() => {});\n }\n if (this.messages.length > 0) {\n const last = this.messages[this.messages.length - 1];\n if (last && last.loading) {\n last.content = last.content || last.thinking || '⏹ 已停止';\n last.loading = false;\n this.$delete(this.contentCache, last._key);\n }\n }\n this.sending = false;\n this.clearWaitTimer();\n },\n scrollToTop() {\n const el = this.$refs.messagesRef;\n if (el) el.scrollTop = 0;\n },\n scrollToBottom(force = false) {\n if (this.showDownBtn && !force) return;\n this.$nextTick(() => {\n const el = this.$refs.messagesRef;\n if (el) {\n el.scrollTop = el.scrollHeight;\n this.lastScrollTop = el.scrollTop;\n this.showDownBtn = false;\n }\n });\n },\n scrollToBottomOnce() {\n clearTimeout(this._scrollTimer);\n this.$nextTick(() => {\n const tryScroll = () => {\n const el = this.$refs.messagesRef;\n if (!el) {\n this._scrollTimer = setTimeout(tryScroll, 50);\n return;\n }\n const originalScrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.scrollTop = el.scrollHeight - el.clientHeight;\n el.style.scrollBehavior = originalScrollBehavior;\n this.showDownBtn = false;\n };\n tryScroll();\n });\n },\n copyText(content) {\n if (!content) return;\n navigator.clipboard.writeText(content.replace(/<[^>]+>/g, '')).then(() => {\n this.$message({\n message: '已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(() => {\n this.$message({\n message: '复制失败',\n type: 'error',\n duration: 2000\n });\n });\n },\n copyAsImage(content) {\n if (!content) return;\n const div = document.createElement('div');\n div.className = 'copy-image-render';\n div.style.cssText = 'position:fixed;left:-9999px;top:0;width:600px;padding:20px;background:#fff;font-size:14px;line-height:1.6;color:#333;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;';\n div.innerHTML = this.renderMarkdown(content);\n document.body.appendChild(div);\n this.$message({\n message: '正在生成图片...',\n type: 'info',\n duration: 2000\n });\n (0, _html2canvas.default)(div, {\n scale: 2,\n useCORS: true,\n backgroundColor: '#ffffff'\n }).then(canvas => {\n canvas.toBlob(blob => {\n if (blob) {\n navigator.clipboard.write([new ClipboardItem({\n 'image/png': blob\n })]).then(() => {\n this.$message({\n message: '图片已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(() => {\n this.$message({\n message: '复制图片失败',\n type: 'error',\n duration: 2000\n });\n });\n }\n }, 'image/png');\n }).catch(() => {\n this.$message({\n message: '生成图片失败',\n type: 'error',\n duration: 2000\n });\n }).finally(() => {\n document.body.removeChild(div);\n });\n }\n }\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
955
|
+
|
|
956
|
+
/***/ }),
|
|
957
|
+
|
|
958
|
+
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=script&lang=js":
|
|
959
|
+
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
960
|
+
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=script&lang=js ***!
|
|
961
|
+
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
962
|
+
/*! no static exports found */
|
|
963
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
964
|
+
|
|
965
|
+
"use strict";
|
|
966
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n__webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.constructor.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.filter.js\");\nvar _apichat = __webpack_require__(/*! @lib/api/apichat */ \"./src/lib/api/apichat.js\");\nvar _default = exports.default = {\n name: 'ChatSidebar',\n props: {\n sessions: {\n type: Array,\n default: () => []\n },\n activeSessionId: {\n type: String,\n default: ''\n },\n isMobile: {\n type: Boolean,\n default: false\n },\n isIntelShow: {\n type: Boolean,\n default: false\n },\n showSidebar: {\n type: Boolean,\n default: false\n },\n showH5List: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n searchKeyword: '',\n agentSuggestions: [],\n showAgentSuggestions: false,\n longPressTimer: null,\n longPressed: false,\n searchTimer: null\n };\n },\n computed: {\n localFilteredSessions() {\n if (!this.searchKeyword) return this.sessions;\n const kw = this.searchKeyword.toLowerCase();\n return this.sessions.filter(s => {\n const name = (s.agentName || s.agentCode || '').toLowerCase();\n return name.includes(kw);\n });\n }\n },\n watch: {\n searchKeyword(val) {\n if (this.searchTimer) clearTimeout(this.searchTimer);\n if (!val.trim()) {\n this.agentSuggestions = [];\n this.showAgentSuggestions = false;\n return;\n }\n this.searchTimer = setTimeout(() => {\n (0, _apichat.getChatAgents)(val.trim()).then(list => {\n this.agentSuggestions = list || [];\n this.showAgentSuggestions = this.agentSuggestions.length > 0;\n }).catch(() => {\n this.agentSuggestions = [];\n });\n }, 300);\n }\n },\n methods: {\n getInitial(name) {\n if (!name) return '?';\n return name.charAt(0);\n },\n formatTime(t) {\n if (!t) return '';\n const d = new Date(t.replace(' ', 'T'));\n const now = new Date();\n const diff = (now - d) / 1000;\n if (diff < 60) return '刚刚';\n if (diff < 3600) return Math.floor(diff / 60) + '分钟前';\n if (diff < 86400) return Math.floor(diff / 3600) + '小时前';\n return d.getMonth() + 1 + '/' + d.getDate();\n },\n onSearchClear() {\n this.searchKeyword = '';\n this.agentSuggestions = [];\n this.showAgentSuggestions = false;\n },\n selectSuggestion(a) {\n this.searchKeyword = '';\n this.agentSuggestions = [];\n this.showAgentSuggestions = false;\n this.$emit('start-chat-from-search', a);\n },\n onSessionClick(s) {\n if (this.longPressed) {\n this.longPressed = false;\n return;\n }\n this.$emit('switch-session', s);\n },\n onSessionTouchStart(s, e) {\n if (!this.isMobile) return;\n this.longPressed = false;\n this.longPressTimer = setTimeout(() => {\n this.longPressed = true;\n this.$emit('delete-session', s);\n }, 600);\n },\n onSessionTouchEnd() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n },\n onSessionTouchMove() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n }\n }\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
967
|
+
|
|
968
|
+
/***/ }),
|
|
969
|
+
|
|
934
970
|
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=script&lang=js":
|
|
935
971
|
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
936
972
|
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=script&lang=js ***!
|
|
@@ -939,7 +975,7 @@ eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! ./node_modules/_
|
|
|
939
975
|
/***/ (function(module, exports, __webpack_require__) {
|
|
940
976
|
|
|
941
977
|
"use strict";
|
|
942
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n__webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.error.cause.js\");\n__webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array.push.js\");\n__webpack_require__(/*! core-js/modules/es.array-buffer.detached.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array-buffer.detached.js\");\n__webpack_require__(/*! core-js/modules/es.array-buffer.transfer.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array-buffer.transfer.js\");\n__webpack_require__(/*! core-js/modules/es.array-buffer.transfer-to-fixed-length.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array-buffer.transfer-to-fixed-length.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.constructor.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.filter.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.find.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.for-each.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.map.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.at.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.at.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.find-last.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.find-last.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.find-last-index.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.find-last-index.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.set.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.set.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.to-reversed.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.to-reversed.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.to-sorted.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.to-sorted.js\");\n__webpack_require__(/*! core-js/modules/es.typed-array.with.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.typed-array.with.js\");\nvar _apichat = __webpack_require__(/*! @lib/api/apichat */ \"./src/lib/api/apichat.js\");\nvar _markdownIt = _interopRequireDefault(__webpack_require__(/*! markdown-it */ \"./node_modules/_markdown-it@14.1.0@markdown-it/index.mjs\"));\nvar _html2canvas = _interopRequireDefault(__webpack_require__(/*! html2canvas */ \"./node_modules/_html2canvas@1.4.1@html2canvas/dist/html2canvas.js\"));\nvar _index = __webpack_require__(/*! @lib/socket/fileManager/obs/index */ \"./src/lib/socket/fileManager/obs/index.js\");\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @lib/socket/utils/index */ \"./src/lib/socket/utils/index.js\"));\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\nvar _apiObs = _interopRequireDefault(__webpack_require__(/*! @lib/api/apiObs */ \"./src/lib/api/apiObs.js\"));\nconst md = new _markdownIt.default({\n breaks: true,\n html: false,\n linkify: true,\n typographer: true\n});\nmd.enable('table');\nvar _default = exports.default = {\n name: 'ChatMain',\n props: {\n Ak: {\n type: String,\n default: ''\n },\n Sk: {\n type: String,\n default: ''\n },\n imAccount: {\n type: String,\n default: ''\n },\n companyNo: {\n type: String,\n default: ''\n },\n isIntelShow: {\n default: false,\n type: Boolean\n },\n chatImToken: {\n default: '',\n type: String\n }\n },\n data() {\n return {\n agentList: [],\n currentAgent: '',\n currentAgentDesc: '',\n sessionsLoaded: false,\n searchKeyword: '',\n agentSuggestions: [],\n showAgentSuggestions: false,\n sessionList: [],\n activeSessionId: '',\n messages: [],\n loadingMore: false,\n sending: false,\n waitTimer: null,\n waitSeconds: 0,\n canceling: false,\n msgPage: 1,\n msgMaxPage: 1,\n msgTotal: 0,\n inputText: '',\n eventSource: null,\n showToolInfo: false,\n showDownBtn: false,\n // 控制向下箭头显隐\n lastScrollTop: 0,\n scrollTimer: null,\n // 滚动防抖(新增)\n showAgentSelect: true,\n isMobile: false,\n showSidebar: false,\n showH5List: false,\n // H5列表模式(展示会话列表而非聊天详情)\n _scrollTimer: null,\n agentInfo: {},\n contentCache: {},\n // 流式分行缓存 key=msg._key\n loadingSessionMsg: false,\n // 会话消息加载中标记\n greeting: '',\n longPressTimer: null,\n longPressed: false,\n // H5 语音输入\n voiceMode: false,\n // true=语音模式,false=文字模式\n isRecording: false,\n // 是否正在录音\n recordDuration: 0,\n // 录音时长(秒)\n recordingTimer: null,\n // 时长计时器\n audioContext: null,\n // AudioContext 实例\n audioStream: null,\n // MediaStream(用于清理)\n audioProcessor: null,\n // ScriptProcessorNode\n audioChunks: [],\n // Float32Array 数据块\n isCancelSwipe: false,\n // 是否上滑取消\n recordStartY: 0 // 触摸起始Y坐标\n };\n },\n created() {\n if (this.Ak || this.Sk) {\n (0, _apichat.setApiAuth)(this.Ak, this.Sk, this.imAccount, this.companyNo, this.chatImToken);\n }\n this.loadAgents();\n this.loadSessions();\n },\n mounted() {\n this.updateViewportState();\n window.addEventListener('resize', this.updateViewportState, {\n passive: true\n });\n },\n computed: {\n waitClass() {\n if (this.waitSeconds > 15) return 'wait-15';\n if (this.waitSeconds > 10) return 'wait-10';\n if (this.waitSeconds > 5) return 'wait-5';\n return '';\n },\n filteredSessions() {\n if (!this.searchKeyword) return this.sessionList;\n const kw = this.searchKeyword.toLowerCase();\n return this.sessionList.filter(s => {\n const name = (s.agentName || s.agentCode || '').toLowerCase();\n return name.includes(kw);\n });\n },\n currentAgentName() {\n if (!this.currentAgent) return '';\n const a = this.agentList.find(x => x.agentCode === this.currentAgent);\n return a ? a.agentName || a.agentCode : this.currentAgent;\n }\n },\n watch: {\n searchKeyword(val) {\n if (this.searchTimer) clearTimeout(this.searchTimer);\n if (!val.trim()) {\n this.agentSuggestions = [];\n this.showAgentSuggestions = false;\n this.closeSidebar();\n return;\n }\n this.searchTimer = setTimeout(() => {\n (0, _apichat.getChatAgents)(val.trim()).then(list => {\n this.agentSuggestions = list || [];\n this.showAgentSuggestions = this.agentSuggestions.length > 0;\n }).catch(() => {\n this.agentSuggestions = [];\n });\n }, 300);\n }\n // ak: {\n // handler(newVal) {\n // setApiAuth(newVal, this.sk)\n // },\n // immediate: true\n // },\n // sk: {\n // handler(newVal) {\n // setApiAuth(this.ak, newVal)\n // },\n // immediate: true\n // }\n },\n methods: {\n updateViewportState() {\n if (typeof window === 'undefined') return;\n const nextIsMobile = window.innerWidth <= 768;\n const wasMobile = this.isMobile;\n this.isMobile = nextIsMobile;\n if (!nextIsMobile) {\n this.showSidebar = false;\n this.showH5List = false;\n } else if (!wasMobile && nextIsMobile) {\n // 从桌面端切换到H5:如果加载了会话列表且无活跃会话,展示列表页\n if (this.sessionList.length > 0 && !this.activeSessionId) {\n this.showH5List = true;\n this.showAgentSelect = false;\n }\n }\n },\n toggleSidebar() {\n if (!this.isMobile) return;\n this.showSidebar = !this.showSidebar;\n },\n closeSidebar() {\n this.showSidebar = false;\n },\n // H5:调用原生返回上一级\n handleNativeBack() {\n if (this.$hybrid && typeof this.$hybrid.closePage === 'function') {\n this.$hybrid.closePage();\n } else if (window.history.length > 1) {\n window.history.back();\n }\n },\n // H5侧边栏返回按钮\n handleSidebarBack() {\n this.handleNativeBack();\n },\n agentjumpclick() {\n if (this.sending) {\n this.$message.warning('AI正在生成内容,暂时请不要切换对话');\n return;\n }\n this.currentAgent = '';\n this.currentAgentDesc = '';\n this.searchKeyword = '';\n this.activeSessionId = '';\n this.agentSuggestions = [];\n this.messages = [];\n this.showAgentSuggestions = false;\n this.showAgentSelect = true;\n this.showH5List = false;\n this.closeSidebar();\n },\n // H5:从详情页返回列表页\n goBackToList() {\n if (this.sending) {\n this.$message.warning('AI正在生成内容,暂时请不要切换对话');\n return;\n }\n // 关闭流连接\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n this.sending = false;\n this.clearWaitTimer();\n this.activeSessionId = '';\n this.messages = [];\n this.currentAgent = '';\n this.currentAgentDesc = '';\n this.agentInfo = {};\n this.contentCache = {};\n\n // 始终返回列表页\n this.showH5List = true;\n this.showAgentSelect = false;\n this.closeSidebar();\n },\n sendQuickMsg(message) {\n if (message) {\n this.inputText = message;\n this.sendMessage();\n }\n },\n formatMixText(str) {\n if (!str) return '';\n // 1. 中文 <=> 英文/数字 之间加空格\n let res = str.replace(/([a-zA-Z0-9])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z0-9])/g, '$1 $2');\n // 2. 连续英文单词分片粘连修复:字母紧跟字母中间加空格\n // 匹配 小写+大写 驼峰、连续分片拼接成一坨的英文\n res = res.replace(/([a-z])([A-Z])/g, '$1 $2');\n return res;\n },\n // 获取右侧头像样式(根据当前智能体在左侧列表中的位置决定颜色)\n getChatAvatarStyle(agent, avatar) {\n if (avatar) {\n return {\n backgroundImage: `url(${avatar})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n }\n const _agent = this.agentList.find(x => x.agentCode === agent);\n // 如果有网络图片,返回背景图样式\n if (agent.avatar) {\n return {\n backgroundImage: `url(${agent.avatar})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n }\n\n // 没有网络图片时,根据智能体在 agentList 中的索引位置决定颜色\n if (this.sessionList) {\n // 找到当前智能体在列表中的索引\n const index = this.sessionList.findIndex(item => item.agentCode === agent);\n if (index !== -1) {\n // 根据索引计算颜色类(4色循环)\n const colorIndex = index % 4 + 1;\n return {\n background: this.getGradientByColorIndex(colorIndex)\n };\n }\n }\n\n // 默认返回蓝色渐变\n return {\n background: 'linear-gradient(135deg, #1677ff, #4096ff)'\n };\n },\n // 根据颜色索引获取对应的渐变色\n getGradientByColorIndex(index) {\n const gradients = {\n 1: 'linear-gradient(135deg, #1677ff, #4096ff)',\n 2: 'linear-gradient(135deg, #52c41a, #73d13d)',\n 3: 'linear-gradient(135deg, #fa8c16, #ffa940)',\n 4: 'linear-gradient(135deg, #722ed1, #b37feb)'\n };\n return gradients[index] || gradients[1];\n },\n selectAgent(agentItem) {\n this.showAgentSelect = false;\n this.currentAgent = agentItem.agentCode;\n this.currentAgentName = agentItem.agentName;\n // 查找历史会话\n const existSession = this.sessionList.find(s => s.agentCode === agentItem.agentCode);\n if (existSession) {\n this.activeSessionId = existSession.id;\n this.switchSession(existSession);\n } else {\n this.createNewSession(agentItem.agentCode);\n }\n },\n createNewSession(agentCode) {\n // 你原有新建会话逻辑\n },\n // 检测是否滚动到底部,控制向下箭头显示隐藏\n checkScrollBottom(forceShowWhenNotBottom = false) {\n const el = this.$refs.messagesRef;\n if (!el) {\n this.showDownBtn = false;\n return;\n }\n const {\n scrollHeight,\n scrollTop,\n clientHeight\n } = el;\n const remain = scrollHeight - scrollTop - clientHeight;\n const atBottom = remain <= 80;\n if (atBottom) {\n this.showDownBtn = false;\n } else if (this.sending && scrollTop >= this.lastScrollTop && !forceShowWhenNotBottom) {\n // 发送AI回答时,如果用户没有主动向上滚动,就不要显示下箭头闪烁\n this.showDownBtn = false;\n } else {\n this.showDownBtn = true;\n }\n this.lastScrollTop = scrollTop;\n },\n // 固定最小高度:单行不撑开,超出才增高\n autoResizeTextarea() {\n const ta = this.$refs.taRef;\n if (!ta) return;\n // 根据端适配基准高度和最大高度\n const isMobile = this.isMobile;\n const baseH = isMobile ? 36 : 100;\n const maxH = isMobile ? 100 : 180;\n ta.style.height = `${baseH}px`;\n // 内容真实高度\n const realH = ta.scrollHeight;\n // 只有内容高度>基准才撑开,否则保持初始高度\n if (realH > baseH) {\n ta.style.height = `${Math.min(realH, maxH)}px`;\n }\n this.$nextTick(() => {\n this.checkScrollBottom(true);\n });\n },\n // Shift+Enter换行\n newLine(e) {\n // 取消浏览器默认行为\n e.preventDefault();\n // 拿到光标位置\n const ta = this.$refs.taRef;\n const start = ta.selectionStart;\n const end = ta.selectionEnd;\n // 在光标处插入换行符\n this.inputText = this.inputText.slice(0, start) + '\\n' + this.inputText.slice(end);\n // 光标定位到换行后\n this.$nextTick(() => {\n ta.selectionStart = ta.selectionEnd = start + 1;\n // 自动调整输入框高度\n this.autoResizeTextarea();\n });\n },\n toggleVoiceMode() {\n this.voiceMode = !this.voiceMode;\n if (!this.voiceMode) {\n // 切回文字模式时清理录音状态\n this.cancelRecording();\n }\n },\n // H5语音录制 - 触摸开始\n async onRecordTouchStart(e) {\n if (this.sending) return;\n this.isCancelSwipe = false;\n this.recordStartY = e.touches[0].clientY;\n this.recordDuration = 0;\n this.audioChunks = [];\n this.isRecording = true;\n\n // 启动时长计时\n this.recordingTimer = setInterval(() => {\n this.recordDuration++;\n if (this.recordDuration >= 60) {\n this.onRecordTouchEnd();\n }\n }, 1000);\n\n // 使用 AudioContext 采集 PCM 数据,输出 WAV 格式\n try {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: true\n });\n this.audioStream = stream;\n const audioContext = new (window.AudioContext || window.webkitAudioContext)({\n sampleRate: 16000\n });\n this.audioContext = audioContext;\n const source = audioContext.createMediaStreamSource(stream);\n // bufferSize=4096, 1 input channel, 1 output channel\n const processor = audioContext.createScriptProcessor(4096, 1, 1);\n this.audioProcessor = processor;\n processor.onaudioprocess = e => {\n if (!this.isRecording) return;\n const inputData = e.inputBuffer.getChannelData(0);\n // 保存 float32 采样数据\n this.audioChunks.push(new Float32Array(inputData));\n };\n source.connect(processor);\n processor.connect(audioContext.destination);\n } catch (err) {\n console.error('麦克风访问失败:', err);\n this.$message.warning('麦克风权限被拒绝');\n this.cancelRecording();\n }\n },\n // H5语音录制 - 触摸移动(检测上滑取消)\n onRecordTouchMove(e) {\n if (!this.isRecording) return;\n const touch = e.touches[0];\n const moveY = touch.clientY;\n const cancelThreshold = 60; // 上滑60px进入取消区域\n this.isCancelSwipe = this.recordStartY - moveY > cancelThreshold;\n },\n // H5语音录制 - 触摸结束\n onRecordTouchEnd() {\n if (!this.isRecording) return;\n this.isRecording = false;\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n this.stopAudioCapture(!this.isCancelSwipe);\n },\n // 停止音频采集并输出 WAV\n stopAudioCapture(shouldSend) {\n // 断开并清理音频节点\n if (this.audioProcessor) {\n this.audioProcessor.disconnect();\n this.audioProcessor = null;\n }\n if (this.audioContext) {\n this.audioContext.close().catch(() => {});\n this.audioContext = null;\n }\n if (this.audioStream) {\n this.audioStream.getTracks().forEach(t => t.stop());\n this.audioStream = null;\n }\n if (shouldSend && this.audioChunks.length > 0) {\n const wavBlob = this.encodePCMToWav(this.audioChunks, 16000);\n this.sendAudioBlob(wavBlob);\n }\n this.audioChunks = [];\n },\n // 取消录音\n cancelRecording() {\n this.isRecording = false;\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n this.stopAudioCapture(false);\n this.recordDuration = 0;\n this.isCancelSwipe = false;\n },\n // 将 Float32 PCM 数据编码为 WAV Blob\n encodePCMToWav(chunks, sampleRate) {\n // 计算总采样数\n let totalLength = 0;\n for (const chunk of chunks) {\n totalLength += chunk.length;\n }\n\n // 转换为 Int16 PCM\n const pcmData = new Int16Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n for (let i = 0; i < chunk.length; i++) {\n const s = Math.max(-1, Math.min(1, chunk[i]));\n pcmData[offset++] = s < 0 ? s * 0x8000 : s * 0x7FFF;\n }\n }\n const numChannels = 1;\n const bitsPerSample = 16;\n const byteRate = sampleRate * numChannels * bitsPerSample / 8;\n const blockAlign = numChannels * bitsPerSample / 8;\n const dataSize = pcmData.length * (bitsPerSample / 8);\n const headerSize = 44;\n const totalSize = headerSize + dataSize;\n const buffer = new ArrayBuffer(totalSize);\n const view = new DataView(buffer);\n\n // RIFF header\n this._wavWriteString(view, 0, 'RIFF');\n view.setUint32(4, totalSize - 8, true);\n this._wavWriteString(view, 8, 'WAVE');\n\n // fmt chunk\n this._wavWriteString(view, 12, 'fmt ');\n view.setUint32(16, 16, true); // chunk size\n view.setUint16(20, 1, true); // PCM format\n view.setUint16(22, numChannels, true); // 单声道\n view.setUint32(24, sampleRate, true); // 采样率\n view.setUint32(28, byteRate, true);\n view.setUint16(32, blockAlign, true);\n view.setUint16(34, bitsPerSample, true);\n\n // data chunk\n this._wavWriteString(view, 36, 'data');\n view.setUint32(40, dataSize, true);\n\n // 写入 PCM 数据\n const pcmView = new Int16Array(buffer, headerSize, pcmData.length);\n pcmView.set(pcmData);\n return new Blob([buffer], {\n type: 'audio/wav'\n });\n },\n _wavWriteString(view, offset, str) {\n for (let i = 0; i < str.length; i++) {\n view.setUint8(offset + i, str.charCodeAt(i));\n }\n },\n // 发送音频\n sendAudioBlob(blob) {\n let appSeqId = _index2.default.getAppSeqId();\n let name = appSeqId + '.wav';\n const file = new File([blob], name, {\n type: 'audio/wav'\n });\n // TODO: 上传音频文件并调用 STT 接口\n this.sendAudioMessage(file);\n },\n sendAudioMessage(file) {\n // 插入本地 pending 消息\n const sttKey = 'stt_' + Date.now();\n const sttMsg = {\n role: 'user',\n content: '转化中...',\n _sttStatus: 'pending',\n _sttKey: sttKey,\n createTime: new Date().toISOString(),\n _key: sttKey\n };\n this.messages.push(sttMsg);\n this.scrollToBottom(true);\n (0, _index.fileUploadToObs)({\n _file: file,\n appSeqId: file.name\n }).then(resp => {\n if (resp.CommonMsg.Status === 200) {\n // 调用语音转文字接口\n return _apiObs.default.aliAudioToText({\n url: resp.obs_upload_data.obsUrl\n }).then(result => {\n if (result.code === '200' && result.data) {\n // 成功:删除 pending 消息,发送给后端\n const idx = this.messages.findIndex(m => m._sttKey === sttKey);\n if (idx !== -1) {\n this.messages.splice(idx, 1);\n }\n this.sendQuickMsg(result.data);\n } else {\n throw new Error(result.msg || '语音转文字失败');\n }\n });\n } else {\n throw new Error(resp.CommonMsg.Message || '文件上传失败');\n }\n }).catch(err => {\n console.error('语音转文字失败:', err);\n // 失败:更新为错误状态\n const idx = this.messages.findIndex(m => m._sttKey === sttKey);\n if (idx !== -1) {\n this.$set(this.messages, idx, {\n ...this.messages[idx],\n _sttStatus: 'error',\n content: '语音转文字失败'\n });\n }\n this.$message.error('语音转文字失败');\n });\n this.$message.success(`录音完成 (${this.recordDuration}s)`);\n },\n clearWaitTimer() {\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n },\n loadAgents() {\n (0, _apichat.getChatAgents)().then(list => {\n this.agentList = list || [];\n // if (this.agentList.length > 0 && !this.currentAgent) {\n // const first = this.agentList[0]\n // this.currentAgent = first.agentCode\n // this.currentAgentDesc = first.description || ''\n // }\n }).catch(() => {});\n },\n loadSessions() {\n (0, _apichat.getSessionList)().then(list => {\n if (!this.activeSessionId) {\n this.sessionList = list || [];\n if (this.sessionList.length > 0) {\n if (this.isMobile) {\n // H5模式:不自动选中会话,展示列表页\n this.showAgentSelect = false;\n this.showH5List = true;\n this.showSidebar = false;\n } else {\n this.switchSession(this.sessionList[0]);\n }\n }\n if (this.sessionList.length === 0) {\n this.showAgentSelect = true;\n this.showH5List = false;\n }\n } else {\n this.sessionList = list || [];\n let _item = list.find(res => res.sessionId == this.activeSessionId);\n try {\n if (_item.suggestedQuestions) {\n _item.suggestedQuestions = JSON.parse(_item.suggestedQuestions);\n } else {\n _item.suggestedQuestions = [];\n }\n _item && (this.agentInfo = _item);\n } catch (err) {\n // JSON格式错误兜底空数组,防止页面报错\n this.agentInfo.questionArr = [];\n console.warn('快捷提问解析失败', err);\n }\n }\n }).catch(() => {});\n },\n onSearchClear() {\n this.agentSuggestions = [];\n this.showAgentSuggestions = false;\n },\n startChatWithAgent(agent) {\n console.log('选择了助手', agent.agentCode, this.currentAgent);\n if (agent.agentCode == this.currentAgent) {\n this.searchKeyword = '';\n this.agentSuggestions = [];\n this.showAgentSuggestions = false;\n return;\n }\n this.currentAgent = agent.agentCode;\n this.currentAgentDesc = agent.description || '';\n this.searchKeyword = '';\n this.agentInfo = {};\n this.agentSuggestions = [];\n this.messages = [];\n this.showAgentSuggestions = false;\n this.showAgentSelect = false;\n this.closeSidebar();\n if (this.isMobile) {\n this.showH5List = false; // H5:进入详情页,隐藏列表\n }\n const existing = this.sessionList.find(s => s.agentCode === agent.agentCode);\n if (existing) {\n this.switchSession(existing);\n } else {\n this.handleNewSession();\n }\n },\n handleNewSession() {\n if (!this.currentAgent) return;\n if (this.activeSessionId) this.closeOldSession();\n (0, _apichat.startSession)(this.currentAgent).then(res => {\n console.log(res, 'startChatWithAgentstartChatWithAgentstartChatWithAgent', this.agentInfo);\n this.activeSessionId = res.sessionId || '';\n this.loadSessions();\n const agent = this.agentList.find(a => a.agentCode === this.currentAgent);\n if (agent) this.addWelcomeMessage(agent);\n }).catch(() => {});\n },\n // H5长按删除 - 触摸开始\n onSessionTouchStart(s, e) {\n if (!this.isMobile) return;\n this.longPressed = false;\n this.longPressTimer = setTimeout(() => {\n this.longPressed = true;\n this.handleDeleteSession(s);\n }, 600);\n },\n // H5长按删除 - 触摸结束/移动(取消长按)\n onSessionTouchEnd() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n },\n onSessionTouchMove() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n },\n async switchSession(s) {\n if (this.longPressed) {\n this.longPressed = false;\n return;\n }\n if (this.sending) {\n this.$message.warning('AI正在生成内容,暂时请不要切换对话');\n return;\n }\n this.showAgentSelect = false;\n this.closeSidebar();\n if (this.isMobile) {\n this.showH5List = false; // H5:进入详情页,隐藏列表\n }\n if (this.activeSessionId === s.sessionId) return;\n this.contentCache = {};\n this.activeSessionId = s.sessionId;\n this.currentAgent = s.agentCode;\n console.log('进入');\n this.agentInfo = s;\n console.log('进入', this.agentInfo);\n try {\n if (s.suggestedQuestions) {\n this.agentInfo.suggestedQuestions = JSON.parse(s.suggestedQuestions);\n } else {\n this.agentInfo.suggestedQuestions = [];\n }\n } catch (err) {\n // JSON格式错误兜底空数组,防止页面报错\n this.agentInfo.questionArr = [];\n console.warn('快捷提问解析失败', err);\n }\n const agent = this.agentList.find(a => a.agentCode === s.agentCode);\n this.currentAgentDesc = agent ? agent.description || '' : '';\n this.msgPage = 1;\n this.msgTotal = 0;\n this.messages = []; // 先清空,但开启加载锁屏蔽空白页\n this.loadingSessionMsg = true; // 开启加载标记\n (0, _apichat.syncToken)((0, _cookie.getToken)(), s.sessionId);\n try {\n const res = await (0, _apichat.getSessionMessages)(s.sessionId, 1, 10);\n const list = Array.isArray(res) ? res : res.list || [];\n this.msgTotal = res.total || list.length;\n this.msgPage = 1;\n const asAsc = (list || []).slice().reverse();\n this.messages = asAsc.map(m => ({\n role: m.role,\n content: m.content || '',\n thinking: m.thinking || '',\n toolCalls: [],\n agentName: m.role === 'assistant' ? s.agentName || '' : '',\n createTime: m.createTime || null,\n _key: m.createTime ? 'msg_' + m.createTime : 'msg_' + Date.now() + '_' + Math.random()\n }));\n if (this.messages.length === 0 && agent) this.addWelcomeMessage(agent);\n await this.$nextTick();\n this.$nextTick(() => {\n this.scrollToBottomOnce();\n this.checkScrollBottom();\n });\n } catch (e) {\n this.messages = [];\n } finally {\n // 无论成功失败,结束后关闭加载锁\n this.loadingSessionMsg = false;\n }\n },\n loadMoreMessages() {\n const nextPage = this.msgPage + 1;\n const maxPage = Math.ceil(this.msgTotal / 10);\n if (nextPage > maxPage) {\n this.loadingMore = false;\n return;\n }\n (0, _apichat.getSessionMessages)(this.activeSessionId, nextPage, 10).then(res => {\n const list = Array.isArray(res) ? res : res.list || [];\n this.msgPage = nextPage;\n const asAsc = (list || []).slice().reverse();\n const prepend = asAsc.map(m => ({\n role: m.role,\n content: m.content || '',\n thinking: m.thinking || '',\n toolCalls: [],\n agentName: '',\n createTime: m.createTime || null,\n _key: m.createTime ? 'msg_' + m.createTime : 'msg_' + Date.now() + '_' + Math.random()\n }));\n const container = this.$refs.messagesRef;\n const oldScrollHeight = container ? container.scrollHeight : 0;\n const oldScrollTop = container ? container.scrollTop : 0;\n this.messages = [...prepend, ...this.messages];\n this.$nextTick(() => {\n if (container) {\n container.scrollTop = oldScrollTop + (container.scrollHeight - oldScrollHeight);\n }\n this.loadingMore = false;\n });\n }).catch(() => {\n this.loadingMore = false;\n });\n },\n onScrollMessages() {\n const container = this.$refs.messagesRef;\n if (!container || this.loadingMore) return;\n const isAtBottom = container.scrollTop + container.clientHeight >= container.scrollHeight - 100;\n this.checkScrollBottom();\n if (isAtBottom) return;\n if (container.scrollTop < 50 && this.msgPage < Math.ceil(this.msgTotal / 10)) {\n this.loadingMore = true;\n this.loadMoreMessages();\n }\n },\n handleDeleteSession(s) {\n this.$confirm(`确认删除「${s.agentName || s.agentCode}」的会话?`, '提示', {\n type: 'warning'\n }).then(() => {\n (0, _apichat.deleteSession)(s.sessionId).then(() => {\n if (this.activeSessionId === s.sessionId) {\n this.activeSessionId = '';\n this.messages = [];\n this.currentAgent = '';\n this.currentAgentDesc = '';\n if (this.isMobile) {\n this.showH5List = false;\n this.showAgentSelect = true;\n } else {\n this.showAgentSelect = true;\n }\n }\n this.loadSessions();\n });\n }).catch(() => {});\n },\n closeOldSession() {},\n onAgentChange(code) {\n const agent = this.agentList.find(a => a.agentCode === code);\n this.currentAgentDesc = agent ? agent.description || '' : '';\n this.handleNewSession();\n },\n addWelcomeMessage(agent) {\n this.greeting = '';\n // if (!agent) return\n // const name = agent.agentName || '助手';\n const _agent = this.agentList.find(x => x.agentCode === this.currentAgent);\n this.greeting = _agent.greeting || `很高兴为您服务,请问有什么可以帮到您?`;\n // this.messages.push({\n // role: 'assistant',\n // content: _content,\n // thinking: '',\n // agentName: name,\n // _key: 'welcome_' + Date.now()\n // })\n },\n async sendMessage() {\n const text = this.inputText.trim();\n if (!text || this.sending) return;\n if (!this.activeSessionId) {\n await (0, _apichat.startSession)(this.currentAgent).then(res => {\n this.activeSessionId = res.sessionId || '';\n this.loadSessions();\n });\n if (!this.activeSessionId) return;\n }\n this.inputText = '';\n const ta = this.$refs.taRef;\n const isMobile = this.isMobile;\n const baseH = isMobile ? 36 : 100;\n if (ta) {\n ta.style.height = baseH + 'px'; // 强制恢复初始高度\n }\n this.showDownBtn = false;\n this.messages.push({\n role: 'user',\n content: text,\n createTime: new Date().toISOString(),\n _key: 'user_' + Date.now() + '_' + Math.random()\n });\n const agentName = this.currentAgentName;\n const msgIdx = this.messages.push({\n role: \"assistant\",\n content: \"\",\n thinking: \"\",\n loading: true,\n toolCalls: [],\n agentName,\n createTime: new Date().toISOString(),\n _key: 'asst_' + Date.now() + '_' + Math.random()\n }) - 1;\n this.scrollToBottom(true);\n this.sending = true;\n this.waitSeconds = 0;\n if (this.waitTimer) clearInterval(this.waitTimer);\n this.waitTimer = setInterval(() => {\n this.waitSeconds++;\n }, 1000);\n let thinkingBuffer = '';\n let finalContent = '';\n let answerBuffer = '';\n let thinkDisplayed = 0;\n let typeTimer = null;\n typeTimer = setInterval(() => {\n if (!this.messages[msgIdx]) return;\n if (thinkDisplayed < thinkingBuffer.length) {\n thinkDisplayed += 50;\n if (thinkDisplayed > thinkingBuffer.length) thinkDisplayed = thinkingBuffer.length;\n this.messages[msgIdx].thinking = thinkingBuffer.substring(0, thinkDisplayed);\n this.scrollToBottom();\n } else if (finalContent && !this.messages[msgIdx].content) {\n clearInterval(typeTimer);\n const key = this.messages[msgIdx]._key;\n if (key) {\n this.$delete(this.contentCache, key);\n this.$delete(this.contentCache, key + '_t');\n }\n typeTimer = null;\n this.messages[msgIdx].content = finalContent;\n this.messages[msgIdx].thinking = thinkingBuffer;\n this.messages[msgIdx].loading = false;\n this.sending = false;\n this.clearWaitTimer();\n this.scrollToBottom();\n this.loadSessions();\n }\n }, 30);\n const url = (0, _apichat.createStreamUrl)(this.activeSessionId, text);\n if (this.eventSource) {\n this.eventSource.close();\n }\n this.eventSource = new EventSource(url);\n const es = this.eventSource;\n es.addEventListener('reasoning', e => {\n if (e.data) {\n const chunk = e.data;\n // 1. 先处理当前分片内部的中英文、数字、标点空格\n let cleanChunk = chunk.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2').replace(/\\s+([:,.!?])/g, '$1').replace(/([:,.!?])\\s+/g, '$1 ');\n cleanChunk = cleanChunk.replace(/\\s+/g, ' ');\n\n // 2. 关键:判断前一段末尾 + 当前段开头都是英文,补空格分隔\n const lastChar = thinkingBuffer.slice(-1);\n const firstChar = cleanChunk.slice(0, 1);\n const isLetter = c => /[a-zA-Z]/.test(c);\n if (isLetter(lastChar) && isLetter(firstChar)) {\n // 两段都是英文衔接,中间加空格\n thinkingBuffer += ' ' + cleanChunk;\n } else {\n thinkingBuffer += cleanChunk;\n }\n }\n });\n es.addEventListener('reasoning_result', e => {\n if (e.data) {\n thinkingBuffer = e.data;\n }\n });\n es.addEventListener('answer', e => {\n if (e.data) {\n answerBuffer += e.data;\n if (this.messages[msgIdx]) {\n this.messages[msgIdx].content += e.data.replace(/([a-zA-Z]+)([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z]+)/g, '$1 $2').replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2');\n this.scrollToBottom();\n }\n }\n });\n es.addEventListener('tool_result', e => {\n if (e.data && this.messages[msgIdx]) {\n if (!this.messages[msgIdx].toolCalls) this.messages[msgIdx].toolCalls = [];\n this.messages[msgIdx].toolCalls.push(e.data);\n this.scrollToBottom();\n }\n });\n es.addEventListener('agent_result', e => {\n finalContent = e.data || '';\n es.close();\n this.eventSource = null;\n if (this.messages[msgIdx]) {\n const key = this.messages[msgIdx]._key;\n if (key) this.$delete(this.contentCache, key);\n this.messages[msgIdx].content = finalContent;\n this.messages[msgIdx].thinking = thinkingBuffer;\n this.messages[msgIdx].loading = false;\n }\n this.sending = false;\n this.clearWaitTimer();\n if (typeTimer) {\n clearInterval(typeTimer);\n typeTimer = null;\n }\n this.scrollToBottom();\n this.loadSessions();\n });\n es.onerror = err => {\n console.log('[SSE] onerror', err);\n if (thinkingBuffer.length > 0 && !finalContent) finalContent = thinkingBuffer;\n if (!finalContent) finalContent = '❌ 连接中断';\n es.close();\n this.eventSource = null;\n if (this.messages[msgIdx]) {\n const key = this.messages[msgIdx]._key;\n if (key) this.$delete(this.contentCache, key);\n this.messages[msgIdx].content = finalContent;\n this.messages[msgIdx].thinking = thinkingBuffer;\n this.messages[msgIdx].loading = false;\n }\n this.sending = false;\n this.clearWaitTimer();\n if (typeTimer) {\n clearInterval(typeTimer);\n typeTimer = null;\n }\n this.scrollToBottom();\n };\n },\n stopAgent() {\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n if (this.activeSessionId) {\n (0, _apichat.stopStream)(this.activeSessionId).catch(() => {});\n }\n if (this.messages.length > 0) {\n const last = this.messages[this.messages.length - 1];\n if (last && last.loading) {\n last.content = last.content || last.thinking || '⏹ 已停止';\n last.loading = false;\n this.$delete(this.contentCache, last._key);\n }\n }\n this.sending = false;\n this.clearWaitTimer();\n },\n copyText(content) {\n if (!content) return;\n navigator.clipboard.writeText(content.replace(/<[^>]+>/g, '')).then(() => {\n this.$message({\n message: '已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(() => {\n this.$message({\n message: '复制失败',\n type: 'error',\n duration: 2000\n });\n });\n },\n copyAsImage(content) {\n if (!content) return;\n // 创建临时容器渲染 Markdown\n const div = document.createElement('div');\n div.className = 'copy-image-render';\n div.style.cssText = 'position:fixed;left:-9999px;top:0;width:600px;padding:20px;background:#fff;font-size:14px;line-height:1.6;color:#333;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;';\n div.innerHTML = this.renderMarkdown(content);\n document.body.appendChild(div);\n this.$message({\n message: '正在生成图片...',\n type: 'info',\n duration: 2000\n });\n (0, _html2canvas.default)(div, {\n scale: 2,\n useCORS: true,\n backgroundColor: '#ffffff'\n }).then(canvas => {\n canvas.toBlob(blob => {\n if (blob) {\n navigator.clipboard.write([new ClipboardItem({\n 'image/png': blob\n })]).then(() => {\n this.$message({\n message: '图片已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(() => {\n this.$message({\n message: '复制图片失败',\n type: 'error',\n duration: 2000\n });\n });\n }\n }, 'image/png');\n }).catch(() => {\n this.$message({\n message: '生成图片失败',\n type: 'error',\n duration: 2000\n });\n }).finally(() => {\n document.body.removeChild(div);\n });\n },\n formatTime(t) {\n if (!t) return '';\n const d = new Date(t.replace(' ', 'T'));\n const now = new Date();\n const diff = (now - d) / 1000;\n if (diff < 60) return '刚刚';\n if (diff < 3600) return Math.floor(diff / 60) + '分钟前';\n if (diff < 86400) return Math.floor(diff / 3600) + '小时前';\n return d.getMonth() + 1 + '/' + d.getDate();\n },\n getInitial(name) {\n if (!name) return '?';\n return name.charAt(0);\n },\n renderMarkdown(text) {\n if (!text) return '';\n try {\n return md.render(text);\n } catch (err) {\n return this.escapeHtml(text);\n }\n },\n renderStreaming(text, msgKey) {\n if (!text) return '';\n console.log('进入');\n const cache = this.contentCache[msgKey];\n const lines = text.split('\\n');\n const lastLineIdx = lines.length - 1;\n if (!cache) {\n try {\n const html = md.render(text);\n this.$set(this.contentCache, msgKey, {\n renderedLines: lastLineIdx,\n html,\n fullText: text\n });\n return html;\n } catch {\n return this.escapeHtml(text);\n }\n }\n if (text === cache.fullText) return cache.html;\n cache.fullText = text;\n\n // 行数没变,仅末尾追加字符,直接拼接尾行(原有逻辑不变)\n if (lastLineIdx === cache.renderedLines) {\n return cache.html + this.escapeHtml(lines[lastLineIdx]);\n }\n\n // 场景1:行数变少/文本回退截断,全量重渲染(原有分支保留,内部修复)\n if (lastLineIdx < cache.renderedLines) {\n try {\n // 重新截取所有完整行生成全新基础html,清空旧叠加内容\n const fullLines = lines.slice(0, lastLineIdx);\n let newBaseHtml = '';\n if (fullLines.length > 0) {\n newBaseHtml = md.render(fullLines.join('\\n'));\n }\n cache.html = newBaseHtml;\n cache.renderedLines = lastLineIdx;\n // 拼接尾行\n const lastLine = this.escapeHtml(lines[lastLineIdx]);\n return cache.html + (lastLine || '');\n } catch {\n return this.escapeHtml(text);\n }\n }\n\n // 场景2:新增完整行,修复:不再累加旧html,重新从0生成完整行基础\n if (cache.renderedLines < lastLineIdx) {\n // 关键修复:重新切片所有完整行,抛弃之前叠加的旧html,杜绝重复\n const allFullLines = lines.slice(0, lastLineIdx);\n let newBaseHtml = '';\n if (allFullLines.length > 0) {\n newBaseHtml = md.render(allFullLines.join('\\n'));\n }\n cache.html = newBaseHtml;\n cache.renderedLines = lastLineIdx;\n }\n const lastLine = this.escapeHtml(lines[lastLineIdx]);\n cache.renderedLines = lastLineIdx;\n return cache.html + (lastLine || '');\n },\n escapeHtml(text) {\n if (!text) return '';\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n },\n scrollToTop() {\n const el = this.$refs.messagesRef;\n if (el) el.scrollTop = 0;\n },\n scrollToBottom(force = false) {\n if (this.showDownBtn && !force) return;\n this.$nextTick(() => {\n const el = this.$refs.messagesRef;\n if (el) {\n el.scrollTop = el.scrollHeight;\n this.lastScrollTop = el.scrollTop;\n this.showDownBtn = false; // 滚动到底部后立刻隐藏箭头\n }\n });\n },\n scrollToBottomOnce() {\n // 清理旧定时器,防止任何泄漏\n clearTimeout(this._scrollTimer);\n this.$nextTick(() => {\n let retry = 0;\n const maxRetry = 6; // 重试6次,足够覆盖所有渲染延迟\n\n const tryScroll = () => {\n var _this$$refs;\n const el = (_this$$refs = this.$refs) === null || _this$$refs === void 0 ? void 0 : _this$$refs.messagesRef;\n if (!el) {\n this._scrollTimer = setTimeout(tryScroll, 50);\n return;\n }\n\n // 临时禁用平滑滚动,立即跳到底部\n const originalScrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.scrollTop = el.scrollHeight - el.clientHeight;\n el.style.scrollBehavior = originalScrollBehavior;\n this.showDownBtn = false;\n };\n tryScroll();\n });\n }\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.updateViewportState);\n this.contentCache = {};\n clearTimeout(this._scrollTimer);\n if (this.eventSource) {\n this.eventSource.onerror = null;\n this.eventSource.close();\n this.eventSource = null;\n }\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n if (this._typeTimer) {\n clearInterval(this._typeTimer);\n this._typeTimer = null;\n }\n }\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
978
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n__webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.constructor.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.find.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.map.js\");\nvar _apichat = __webpack_require__(/*! @lib/api/apichat */ \"./src/lib/api/apichat.js\");\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\nvar _ChatSidebar = _interopRequireDefault(__webpack_require__(/*! ./ChatSidebar.vue */ \"./src/lib/components/chatMain/ChatSidebar.vue\"));\nvar _AgentSelector = _interopRequireDefault(__webpack_require__(/*! ./AgentSelector.vue */ \"./src/lib/components/chatMain/AgentSelector.vue\"));\nvar _ChatDetail = _interopRequireDefault(__webpack_require__(/*! ./ChatDetail.vue */ \"./src/lib/components/chatMain/ChatDetail.vue\"));\nvar _default = exports.default = {\n name: 'ChatMain',\n components: {\n ChatSidebar: _ChatSidebar.default,\n AgentSelector: _AgentSelector.default,\n ChatDetail: _ChatDetail.default\n },\n props: {\n Ak: {\n type: String,\n default: ''\n },\n Sk: {\n type: String,\n default: ''\n },\n imAccount: {\n type: String,\n default: ''\n },\n companyNo: {\n type: String,\n default: ''\n },\n isIntelShow: {\n default: false,\n type: Boolean\n },\n chatImToken: {\n default: '',\n type: String\n }\n },\n data() {\n // 首次渲染前检测窗口宽度,避免 H5 端先显示 PC 布局再切换导致闪烁\n const _isMobile = typeof window !== 'undefined' && window.innerWidth <= 768;\n return {\n agentList: [],\n currentAgent: '',\n currentAgentDesc: '',\n sessionsLoaded: false,\n sessionList: [],\n activeSessionId: '',\n loadingMore: false,\n showAgentSelect: !_isMobile,\n isMobile: _isMobile,\n showSidebar: false,\n showH5List: _isMobile,\n agentInfo: {},\n _swipeStartX: 0,\n _swipeStartY: 0\n };\n },\n created() {\n if (this.Ak || this.Sk) {\n (0, _apichat.setApiAuth)(this.Ak, this.Sk, this.imAccount, this.companyNo, this.chatImToken);\n }\n this.loadAgents();\n this.loadSessions();\n },\n mounted() {\n this.updateViewportState();\n window.addEventListener('resize', this.updateViewportState, {\n passive: true\n });\n },\n watch: {},\n methods: {\n // ── H5 侧滑手势 ──\n onSwipeTouchStart(e) {\n if (!this.isMobile) return;\n this._swipeStartX = e.touches[0].clientX;\n this._swipeStartY = e.touches[0].clientY;\n },\n onSwipeTouchEnd(e) {\n if (!this.isMobile) return;\n const endX = e.changedTouches[0].clientX;\n const endY = e.changedTouches[0].clientY;\n const diffX = endX - this._swipeStartX;\n const diffY = endY - this._swipeStartY;\n\n // 从左侧边缘开始滑动(30px 内),向右滑动超过 60px,且水平距离明显大于垂直距离\n if (this._swipeStartX > 30) return;\n if (diffX < 60) return;\n if (Math.abs(diffX) < Math.abs(diffY) * 2) return;\n if (this.showH5List) {\n // 列表页 → 原生返回\n this.handleNativeBack();\n } else if (!this.showAgentSelect) {\n // 详情页/欢迎页 → 返回列表\n this.goBackToList();\n }\n },\n handleNewSessionInternal() {\n if (!this.currentAgent) return;\n if (this.activeSessionId) this.closeOldSession();\n (0, _apichat.startSession)(this.currentAgent).then(res => {\n this.activeSessionId = res.sessionId || '';\n this.loadSessions();\n const agent = this.agentList.find(a => a.agentCode === this.currentAgent);\n if (agent) this.addWelcomeMessage(agent);\n }).catch(() => {});\n },\n updateViewportState() {\n if (typeof window === 'undefined') return;\n const nextIsMobile = window.innerWidth <= 768;\n const wasMobile = this.isMobile;\n this.isMobile = nextIsMobile;\n if (!nextIsMobile) {\n this.showSidebar = false;\n this.showH5List = false;\n } else if (!wasMobile && nextIsMobile) {\n if (this.sessionList.length > 0 && !this.activeSessionId) {\n this.showH5List = true;\n this.showAgentSelect = false;\n }\n }\n },\n toggleSidebar() {\n if (!this.isMobile) return;\n this.showSidebar = !this.showSidebar;\n },\n closeSidebar() {\n this.showSidebar = false;\n },\n handleNativeBack() {\n if (this.$hybrid && typeof this.$hybrid.closePage === 'function') {\n this.$hybrid.closePage();\n } else if (window.history.length > 1) {\n window.history.back();\n }\n },\n handleSidebarBack() {\n this.handleNativeBack();\n },\n agentjumpclick() {\n const cd = this.$refs.chatDetail;\n if (cd && cd.sending) {\n this.$message.warning('AI正在生成内容,暂时请不要切换对话');\n return;\n }\n this.currentAgent = '';\n this.currentAgentDesc = '';\n this.activeSessionId = '';\n this.showAgentSelect = true;\n this.showH5List = false;\n this.closeSidebar();\n },\n goBackToList() {\n const cd = this.$refs.chatDetail;\n if (cd && cd.sending) {\n this.$message.warning('AI正在生成内容,暂时请不要切换对话');\n return;\n }\n if (cd) {\n if (cd.eventSource) {\n cd.eventSource.close();\n cd.eventSource = null;\n }\n cd.sending = false;\n cd.clearWaitTimer();\n cd.messages = [];\n cd.contentCache = {};\n }\n this.activeSessionId = '';\n this.currentAgent = '';\n this.currentAgentDesc = '';\n this.agentInfo = {};\n this.showH5List = true;\n this.showAgentSelect = false;\n this.closeSidebar();\n },\n loadAgents() {\n (0, _apichat.getChatAgents)().then(list => {\n this.agentList = list || [];\n }).catch(() => {});\n },\n loadSessions() {\n (0, _apichat.getSessionList)().then(list => {\n if (!this.activeSessionId) {\n this.sessionList = list || [];\n if (this.sessionList.length > 0) {\n if (this.isMobile) {\n this.showAgentSelect = false;\n this.showH5List = true;\n this.showSidebar = false;\n } else {\n this.switchSession(this.sessionList[0]);\n }\n }\n if (this.sessionList.length === 0) {\n this.showAgentSelect = true;\n this.showH5List = false;\n }\n } else {\n this.sessionList = list || [];\n let _item = list.find(res => res.sessionId == this.activeSessionId);\n try {\n if (_item && _item.suggestedQuestions) {\n _item.suggestedQuestions = JSON.parse(_item.suggestedQuestions);\n }\n _item && (this.agentInfo = _item);\n } catch (err) {\n this.agentInfo.questionArr = [];\n console.warn('快捷提问解析失败', err);\n }\n }\n }).catch(() => {});\n },\n startChatWithAgent(agent) {\n console.log('选择了助手', agent.agentCode, this.currentAgent);\n if (agent.agentCode == this.currentAgent) {\n return;\n }\n this.currentAgent = agent.agentCode;\n this.currentAgentDesc = agent.description || '';\n this.agentInfo = {};\n this.showAgentSelect = false;\n this.closeSidebar();\n if (this.isMobile) {\n this.showH5List = false;\n }\n const existing = this.sessionList.find(s => s.agentCode === agent.agentCode);\n if (existing) {\n this.switchSession(existing);\n } else {\n this.handleNewSession();\n }\n },\n handleNewSession() {\n if (!this.currentAgent) return;\n if (this.activeSessionId) this.closeOldSession();\n (0, _apichat.startSession)(this.currentAgent).then(res => {\n this.activeSessionId = res.sessionId || '';\n this.loadSessions();\n const agent = this.agentList.find(a => a.agentCode === this.currentAgent);\n if (agent) this.addWelcomeMessage(agent);\n }).catch(() => {});\n },\n addWelcomeMessage(agent) {\n const cd = this.$refs.chatDetail;\n if (cd) {\n const _agent = this.agentList.find(x => x.agentCode === this.currentAgent);\n cd.greeting = _agent ? _agent.greeting || '很高兴为您服务,请问有什么可以帮到您?' : '';\n }\n },\n async switchSession(s) {\n let cd = this.$refs.chatDetail;\n if (cd && cd.sending) {\n this.$message.warning('AI正在生成内容,暂时请不要切换对话');\n return;\n }\n this.showAgentSelect = false;\n this.closeSidebar();\n if (this.isMobile) {\n this.showH5List = false;\n }\n if (this.activeSessionId === s.sessionId) return;\n\n // 移动端刚切换 showH5List=false,ChatDetail 尚未渲染完成,需要等待 nextTick\n if (!cd) {\n await this.$nextTick();\n cd = this.$refs.chatDetail;\n }\n if (cd) {\n cd.contentCache = {};\n cd.messages = [];\n cd.msgPage = 1;\n cd.msgTotal = 0;\n cd.loadingSessionMsg = true;\n }\n this.activeSessionId = s.sessionId;\n this.currentAgent = s.agentCode;\n this.agentInfo = s;\n try {\n if (s.suggestedQuestions) {\n this.agentInfo.suggestedQuestions = JSON.parse(s.suggestedQuestions);\n } else {\n this.agentInfo.suggestedQuestions = [];\n }\n } catch (err) {\n this.agentInfo.questionArr = [];\n console.warn('快捷提问解析失败', err);\n }\n const agent = this.agentList.find(a => a.agentCode === s.agentCode);\n this.currentAgentDesc = agent ? agent.description || '' : '';\n (0, _apichat.syncToken)((0, _cookie.getToken)(), s.sessionId);\n try {\n const res = await (0, _apichat.getSessionMessages)(s.sessionId, 1, 10);\n const list = Array.isArray(res) ? res : res.list || [];\n if (cd) {\n cd.msgTotal = res.total || list.length;\n cd.msgPage = 1;\n const asAsc = (list || []).slice().reverse();\n cd.messages = asAsc.map(m => ({\n role: m.role,\n content: m.content || '',\n thinking: m.thinking || '',\n toolCalls: [],\n agentName: m.role === 'assistant' ? s.agentName || '' : '',\n createTime: m.createTime || null,\n _key: m.createTime ? 'msg_' + m.createTime : 'msg_' + Date.now() + '_' + Math.random()\n }));\n if (cd.messages.length === 0 && agent) {\n const _agent = this.agentList.find(x => x.agentCode === this.currentAgent);\n cd.greeting = _agent ? _agent.greeting || '很高兴为您服务,请问有什么可以帮到您?' : '';\n }\n cd.loadingSessionMsg = false;\n await this.$nextTick();\n this.$nextTick(() => {\n cd.scrollToBottomOnce();\n cd.checkScrollBottom();\n });\n }\n } catch (e) {\n if (cd) {\n cd.messages = [];\n cd.loadingSessionMsg = false;\n }\n }\n },\n handleDeleteSession(s) {\n this.$confirm(`确认删除「${s.agentName || s.agentCode}」的会话?`, '提示', {\n type: 'warning'\n }).then(() => {\n (0, _apichat.deleteSession)(s.sessionId).then(() => {\n if (this.activeSessionId === s.sessionId) {\n this.activeSessionId = '';\n this.currentAgent = '';\n this.currentAgentDesc = '';\n const cd = this.$refs.chatDetail;\n if (cd) {\n cd.messages = [];\n cd.contentCache = {};\n }\n if (this.isMobile) {\n this.showH5List = false;\n this.showAgentSelect = true;\n } else {\n this.showAgentSelect = true;\n }\n }\n this.loadSessions();\n });\n }).catch(() => {});\n },\n closeOldSession() {}\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.updateViewportState);\n }\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
943
979
|
|
|
944
980
|
/***/ }),
|
|
945
981
|
|
|
@@ -979,6 +1015,42 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
979
1015
|
|
|
980
1016
|
/***/ }),
|
|
981
1017
|
|
|
1018
|
+
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true":
|
|
1019
|
+
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1020
|
+
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4b66220e-vue-loader-template"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true ***!
|
|
1021
|
+
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1022
|
+
/*! no static exports found */
|
|
1023
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1024
|
+
|
|
1025
|
+
"use strict";
|
|
1026
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.staticRenderFns = exports.render = void 0;\nvar render = exports.render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"agent-selector\"\n }, [_vm.isMobile ? _c(\"div\", {\n staticClass: \"mobile-agent-select-header\"\n }, [_c(\"button\", {\n staticClass: \"mobile-agent-back\",\n on: {\n click: function ($event) {\n return _vm.$emit(\"go-back\");\n }\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"22\",\n height: \"22\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M15 18l-6-6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })])]), _c(\"span\", {\n staticClass: \"mobile-agent-title-text\"\n }, [_vm._v(\"AI\")])]) : _vm._e(), _c(\"div\", {\n staticClass: \"agent-wrap\"\n }, [_vm._m(0), _c(\"div\", {\n staticClass: \"agent-list\"\n }, _vm._l(_vm.agentList, function (item) {\n return _c(\"div\", {\n key: item.agentCode,\n staticClass: \"agent-item\",\n style: {\n background: item.color\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"select-agent\", item);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"agent-avatar-wrapper\"\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar\",\n class: {\n \"has-agent-img\": !!item.avatar\n },\n style: item.avatar ? {\n backgroundImage: `url(${item.avatar})`\n } : {}\n }, [!item.avatar ? [_vm._v(\" \" + _vm._s(_vm.getInitial(item.agentName || item.agentCode)) + \" \")] : _vm._e()], 2)]), _c(\"div\", {\n staticClass: \"agent-info-content\"\n }, [_c(\"div\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(item.agentName))]), _c(\"div\", {\n staticClass: \"desc\"\n }, [_vm._v(_vm._s(item.greeting || item.description))])])]);\n }), 0)])]);\n};\nvar staticRenderFns = exports.staticRenderFns = [function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"agent-title\"\n }, [_c(\"h2\", [_vm._v(\"选择智能助手开始对话\")])]);\n}];\nrender._withStripped = true;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%224b66220e-vue-loader-template%22%7D!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
1027
|
+
|
|
1028
|
+
/***/ }),
|
|
1029
|
+
|
|
1030
|
+
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true":
|
|
1031
|
+
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1032
|
+
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4b66220e-vue-loader-template"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true ***!
|
|
1033
|
+
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1034
|
+
/*! no static exports found */
|
|
1035
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1036
|
+
|
|
1037
|
+
"use strict";
|
|
1038
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.staticRenderFns = exports.render = void 0;\nvar render = exports.render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"chat-main\"\n }, [_c(\"div\", {\n staticClass: \"chat-header\"\n }, [_c(\"div\", {\n staticClass: \"header-left\"\n }, [_vm.isMobile && _vm.activeSessionId ? _c(\"button\", {\n staticClass: \"mobile-back-btn\",\n attrs: {\n type: \"button\"\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"go-back-to-list\");\n }\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M15 18l-6-6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })])]) : _vm.isMobile ? _c(\"button\", {\n staticClass: \"mobile-menu-btn\",\n attrs: {\n type: \"button\"\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"toggle-sidebar\");\n }\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M3 6h18M3 12h18M3 18h18\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\"\n }\n })])]) : _vm._e(), _vm.currentAgent && (_vm.activeSessionId || _vm.messages.length > 0) ? _c(\"div\", {\n staticClass: \"agent-info\"\n }, [_c(\"div\", {\n staticClass: \"chat-agent-avatar-wrapper\"\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar session-avatar\",\n class: {\n \"has-agent-img\": _vm.agentInfo.avatar\n },\n style: {\n background: _vm.agentInfo.color || \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n }, [_vm.agentInfo.avatar ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: {\n src: _vm.agentInfo.avatar,\n alt: \"\"\n }\n }) : [_vm._v(_vm._s(_vm.getInitial(_vm.agentInfo.agentName || _vm.agentInfo.agentCode)))]], 2)]), _c(\"div\", {\n staticClass: \"agent-text\"\n }, [_c(\"div\", {\n staticClass: \"agent-name\"\n }, [_vm._v(_vm._s(_vm.currentAgentName))]), _c(\"div\", {\n staticClass: \"agent-desc\"\n }, [_vm._v(_vm._s(_vm.currentAgentDesc))])])]) : _c(\"div\", {\n staticClass: \"agent-info\"\n }, [_vm._m(0)])]), _vm.isMobile && !_vm.activeSessionId ? _c(\"div\", {\n staticClass: \"header-actions\"\n }, [_c(\"button\", {\n staticClass: \"mobile-header-btn\",\n attrs: {\n type: \"button\"\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"agent-jump-click\");\n }\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 3C6.5 3 2 6.58 2 11c0 2.03.95 3.88 2.5 5.3L3 21l4.6-1.7c1.36.45 2.86.7 4.4.7 5.5 0 10-3.58 10-8s-4.5-8-10-8z\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"8\",\n cy: \"11\",\n r: \"1.3\",\n fill: \"#fff\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"12\",\n cy: \"11\",\n r: \"1.3\",\n fill: \"#fff\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"16\",\n cy: \"11\",\n r: \"1.3\",\n fill: \"#fff\"\n }\n })])])]) : _vm._e()]), _c(\"div\", {\n ref: \"messagesRef\",\n staticClass: \"chat-body\",\n on: {\n scroll: _vm.onScrollMessages\n }\n }, [!_vm.activeSessionId ? _c(\"div\", {\n staticClass: \"welcome welcome-default\"\n }, [_c(\"div\", {\n staticClass: \"welcome-icon\"\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 48 48\",\n width: \"64\",\n height: \"64\"\n }\n }, [_c(\"path\", {\n attrs: {\n fill: \"#e6f4ff\",\n d: \"M40 22c-2.21 0-4 1.79-4 4v10H12c-2.21 0-4-1.79-4-4V14c0-2.21 1.79-4 4-4h24c2.21 0 4 1.79 4 4v8z\"\n }\n }), _c(\"path\", {\n attrs: {\n fill: \"#1677ff\",\n d: \"M36 8c-2.21 0-4 1.79-4 4v18H8c-2.21 0-4-1.79-4-4V12c0-2.21 1.79-4 4-4h28z\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"20\",\n cy: \"28\",\n r: \"3\",\n fill: \"#fff\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"28\",\n cy: \"28\",\n r: \"3\",\n fill: \"#fff\"\n }\n })])]), _c(\"div\", {\n staticClass: \"welcome-title\"\n }, [_vm._v(\"欢迎使用 AI 助手\")]), _c(\"div\", {\n staticClass: \"welcome-text\"\n }, [_vm._v(\"从左侧选择一个会话,或搜索助手开始新的对话\")])]) : _vm.messages.length === 0 && !_vm.loadingSessionMsg ? _c(\"div\", {\n staticClass: \"chat-empty-welcome\"\n }, [_vm.agentInfo.hasOwnProperty(\"agentCode\") ? _c(\"div\", {\n staticClass: \"welcome-card\"\n }, [_c(\"div\", {\n staticClass: \"welcome-avatar-box\"\n }, [_c(\"div\", {\n staticClass: \"welcome-avatar\",\n class: {\n \"has-chat-agent-img\": _vm.agentInfo.avatar\n },\n style: _vm.getChatAvatarStyle(_vm.currentAgent, _vm.agentInfo.avatar)\n }, [!_vm.agentInfo.avatar ? [_vm._v(_vm._s(_vm.getInitial(_vm.currentAgentName)))] : _vm._e()], 2)]), _c(\"div\", {\n staticClass: \"welcome-text-group\"\n }, [_c(\"div\", {\n staticClass: \"text-sm\"\n }, [_vm._v(\"您好,我是\" + _vm._s(_vm.currentAgentName))]), _c(\"div\", {\n staticClass: \"text-lg\"\n }, [_vm._v(_vm._s(_vm.greeting))])])]) : _vm._e(), _c(\"div\", {\n staticClass: \"guess-box\"\n }, [_c(\"div\", {\n staticClass: \"guess-title\"\n }, [_c(\"svg\", {\n attrs: {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"#1677ff\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\"\n }\n })]), _c(\"span\", [_vm._v(\"猜您想问\")])]), _c(\"div\", {\n staticClass: \"tag-wrap\"\n }, _vm._l(_vm.agentInfo.suggestedQuestions, function (tag) {\n return _c(\"div\", {\n key: tag,\n staticClass: \"quick-tag\",\n on: {\n click: function ($event) {\n return _vm.sendQuickMsg(tag);\n }\n }\n }, [_vm._v(\" \" + _vm._s(tag) + \" \")]);\n }), 0)])]) : _vm._e(), _vm._l(_vm.messages, function (m) {\n return _c(\"div\", {\n key: m.id,\n staticClass: \"msg-row\",\n class: m.role\n }, [_c(\"div\", {\n staticClass: \"msg-main\"\n }, [_c(\"div\", {\n staticClass: \"msg-content\"\n }, [_c(\"div\", {\n staticClass: \"bubble\",\n class: m.role\n }, [m.role === \"user\" && m._sttStatus ? _c(\"div\", {\n staticClass: \"stt-bubble-wrap\"\n }, [m._sttStatus === \"pending\" ? _c(\"span\", {\n staticClass: \"stt-spinner stt-outside-icon\"\n }) : m._sttStatus === \"error\" ? _c(\"span\", {\n staticClass: \"stt-error-icon stt-outside-icon\"\n }, [_vm._v(\"!\")]) : _vm._e(), _c(\"span\", {\n staticClass: \"stt-bubble-text\"\n }, [_vm._v(_vm._s(m._sttStatus === \"pending\" ? \"转化中...\" : \"语音转文字失败\"))])]) : _vm._e(), !m._sttStatus && m.thinking ? _c(\"details\", {\n staticClass: \"thinking-details\",\n attrs: {\n open: \"\"\n }\n }, [_c(\"summary\", {\n staticClass: \"thinking-summary\"\n }, [_vm._v(\"💭 思考过程\")]), _c(\"div\", {\n staticClass: \"thinking-body\",\n domProps: {\n innerHTML: _vm._s(_vm.escapeHtml(m.thinking))\n }\n })]) : _vm._e(), !m._sttStatus && m.content && m.loading ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderStreaming(m.content, m._key))\n }\n }) : _vm._e(), !m._sttStatus && m.content && !m.loading ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderMarkdown(m.content))\n }\n }) : _vm._e(), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: !m._sttStatus && _vm.showToolInfo && m.toolCalls && m.toolCalls.length,\n expression: \"!m._sttStatus && showToolInfo && m.toolCalls && m.toolCalls.length\"\n }],\n staticClass: \"tool-calls\"\n }, _vm._l(m.toolCalls, function (tc, ti) {\n return _c(\"div\", {\n key: ti,\n staticClass: \"tool-item\"\n }, [_c(\"span\", {\n staticClass: \"tool-badge\"\n }, [_vm._v(\"工具返回\")]), _c(\"pre\", [_vm._v(_vm._s(tc.substring(0, 300)) + _vm._s(tc.length > 300 ? \"...\" : \"\"))])]);\n }), 0), m.loading ? _c(\"div\", {\n staticClass: \"typing\",\n class: _vm.waitClass\n }, [_c(\"span\", {\n staticClass: \"phrase\"\n }, [_vm._v(\"思考中\")]), _vm._m(1, true)]) : _vm._e()]), m.role === \"assistant\" && m.content && !m.loading ? _c(\"div\", {\n staticClass: \"msg-actions\"\n }, [_c(\"span\", {\n staticClass: \"action-btn\",\n attrs: {\n title: \"复制\"\n },\n on: {\n click: function ($event) {\n return _vm.copyText(m.content);\n }\n }\n }, [_vm._v(\"📋 复制\")]), _c(\"span\", {\n staticClass: \"action-btn\",\n attrs: {\n title: \"复制为图片\"\n },\n on: {\n click: function ($event) {\n return _vm.copyAsImage(m.content);\n }\n }\n }, [_vm._v(\"🖼 复制为图片\")])]) : _vm._e()])])]);\n })], 2), _c(\"div\", {\n staticClass: \"chat-footer\"\n }, [_c(\"div\", {\n staticClass: \"input-area\"\n }, [_vm.isMobile ? _c(\"button\", {\n staticClass: \"voice-btn\",\n attrs: {\n disabled: _vm.sending\n },\n on: {\n click: _vm.toggleVoiceMode\n }\n }, [!_vm.voiceMode ? _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"22\",\n height: \"22\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 14a3 3 0 003-3V5a3 3 0 00-6 0v6a3 3 0 003 3z\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M17 11a5 5 0 01-10 0H5a7 7 0 0014 0h-2z\"\n }\n }), _c(\"rect\", {\n attrs: {\n x: \"11\",\n y: \"17\",\n width: \"2\",\n height: \"4\",\n rx: \"1\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M9 20h6v2H9z\"\n }\n })]) : _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"22\",\n height: \"22\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M3 6h18v2H3V6zm0 5h18v2H3v-2zm0 5h18v2H3v-2z\"\n }\n })])]) : _vm._e(), !_vm.voiceMode || !_vm.isMobile ? [_c(\"textarea\", {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.inputText,\n expression: \"inputText\"\n }],\n ref: \"taRef\",\n staticClass: \"chat-textarea\",\n attrs: {\n placeholder: _vm.isMobile ? \"\" : \"请输入消息\",\n disabled: _vm.sending\n },\n domProps: {\n value: _vm.inputText\n },\n on: {\n input: [function ($event) {\n if ($event.target.composing) return;\n _vm.inputText = $event.target.value;\n }, _vm.autoResizeTextarea],\n focus: _vm.onInputFocus,\n keydown: [function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n return _vm.sendMessage.apply(null, arguments);\n }, function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if (!$event.ctrlKey) return null;\n return _vm.newLine.apply(null, arguments);\n }]\n }\n }), !_vm.sending ? _c(\"button\", {\n staticClass: \"send-btn\",\n class: {\n active: _vm.inputText.trim()\n },\n attrs: {\n disabled: _vm.sending || !_vm.inputText.trim()\n },\n on: {\n click: _vm.sendMessage\n }\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"20\",\n height: \"20\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\n }\n })])]) : _vm._e(), _vm.sending ? _c(\"button\", {\n staticClass: \"stop-btn\",\n on: {\n click: _vm.stopAgent\n }\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n }, [_c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })])]) : _vm._e()] : [_c(\"div\", {\n staticClass: \"hold-talk-btn\",\n class: {\n recording: _vm.isRecording\n },\n on: {\n touchstart: function ($event) {\n $event.preventDefault();\n return _vm.onRecordTouchStart($event);\n },\n touchmove: function ($event) {\n $event.preventDefault();\n return _vm.onRecordTouchMove($event);\n },\n touchend: function ($event) {\n $event.preventDefault();\n return _vm.onRecordTouchEnd.apply(null, arguments);\n }\n }\n }, [!_vm.isRecording ? _c(\"svg\", {\n staticClass: \"hold-talk-icon\",\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 14a3 3 0 003-3V5a3 3 0 00-6 0v6a3 3 0 003 3z\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M17 11a5 5 0 01-10 0H5a7 7 0 0014 0h-2z\"\n }\n }), _c(\"rect\", {\n attrs: {\n x: \"11\",\n y: \"17\",\n width: \"2\",\n height: \"4\",\n rx: \"1\"\n }\n })]) : _vm._e(), _c(\"span\", [_vm._v(_vm._s(_vm.isRecording ? _vm.isCancelSwipe ? \"松开取消\" : \"松手发送\" : \"按住说话\"))])]), _vm.sending ? _c(\"button\", {\n staticClass: \"stop-btn\",\n on: {\n click: _vm.stopAgent\n }\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n }, [_c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })])]) : _vm._e()], _vm.showDownBtn && _vm.messages.length !== 0 ? _c(\"div\", {\n staticClass: \"scroll-bottom-wrap\"\n }, [_c(\"div\", {\n staticClass: \"scroll-bottom-btn\",\n on: {\n click: function ($event) {\n return _vm.scrollToBottom(true);\n }\n }\n }, [_vm.sending ? _c(\"div\", {\n staticClass: \"loading-circle\"\n }) : _vm._e(), _c(\"svg\", {\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M6 9l6 6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })])])]) : _vm._e()], 2)]), _vm.isRecording ? _c(\"div\", {\n staticClass: \"voice-recording-overlay\"\n }, [_c(\"div\", {\n staticClass: \"voice-recording-card\"\n }, [_vm._m(2), _c(\"div\", {\n staticClass: \"voice-recording-duration\"\n }, [_vm._v(_vm._s(_vm.recordDuration)), _c(\"span\", {\n staticClass: \"unit\"\n }, [_vm._v(\"s\")])]), _c(\"div\", {\n staticClass: \"voice-recording-hint\",\n class: {\n cancel: _vm.isCancelSwipe\n }\n }, [_vm.isCancelSwipe ? _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#ff4d4f\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n }\n })]) : _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#999\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n }\n })]), _vm._v(\" \" + _vm._s(_vm.isCancelSwipe ? \"松开取消发送\" : \"手指上滑 取消发送\") + \" \")])])]) : _vm._e()]);\n};\nvar staticRenderFns = exports.staticRenderFns = [function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"agent-text\"\n }, [_c(\"div\", {\n staticClass: \"agent-name\",\n staticStyle: {\n color: \"#bbb\"\n }\n }, [_vm._v(\"请选择助手\")])]);\n}, function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"span\", {\n staticClass: \"dots\"\n }, [_c(\"span\"), _c(\"span\"), _c(\"span\")]);\n}, function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"voice-recording-wave\"\n }, [_c(\"span\"), _c(\"span\"), _c(\"span\"), _c(\"span\"), _c(\"span\")]);\n}];\nrender._withStripped = true;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%224b66220e-vue-loader-template%22%7D!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
1039
|
+
|
|
1040
|
+
/***/ }),
|
|
1041
|
+
|
|
1042
|
+
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true":
|
|
1043
|
+
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1044
|
+
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4b66220e-vue-loader-template"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true ***!
|
|
1045
|
+
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1046
|
+
/*! no static exports found */
|
|
1047
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1048
|
+
|
|
1049
|
+
"use strict";
|
|
1050
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.staticRenderFns = exports.render = void 0;\nvar render = exports.render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"chat-sidebar\",\n class: {\n open: _vm.showSidebar || _vm.isMobile && _vm.showH5List\n }\n }, [!_vm.isIntelShow ? _c(\"div\", {\n staticClass: \"sidebar-header\"\n }, [_vm.isMobile ? _c(\"button\", {\n staticClass: \"sidebar-back-btn\",\n on: {\n click: function ($event) {\n return _vm.$emit(\"sidebar-back\");\n }\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"22\",\n height: \"22\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M15 18l-6-6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })])]) : _vm._e(), _c(\"span\", {\n staticClass: \"sidebar-title\"\n }, [_vm._v(_vm._s(_vm.isMobile ? \"AI\" : \"AI助理(内测版)\"))]), _c(\"img\", {\n attrs: {\n src: __webpack_require__(/*! @/assets/aiagent/AImessage.png */ \"./src/assets/aiagent/AImessage.png\"),\n alt: \"\"\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"agent-jump-click\");\n }\n }\n })]) : _vm._e(), _c(\"div\", {\n staticClass: \"sidebar-search\"\n }, [_c(\"div\", {\n staticClass: \"search-wrap\"\n }, [_c(\"svg\", {\n staticClass: \"search-icon\",\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"circle\", {\n attrs: {\n cx: \"11\",\n cy: \"11\",\n r: \"7\",\n stroke: \"#999\",\n \"stroke-width\": \"2\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M21 21l-4.35-4.35\",\n stroke: \"#999\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\"\n }\n })]), _c(\"input\", {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.searchKeyword,\n expression: \"searchKeyword\"\n }],\n staticClass: \"search-input\",\n attrs: {\n type: \"text\",\n placeholder: \"搜索助手...\"\n },\n domProps: {\n value: _vm.searchKeyword\n },\n on: {\n input: function ($event) {\n if ($event.target.composing) return;\n _vm.searchKeyword = $event.target.value;\n }\n }\n }), _vm.searchKeyword ? _c(\"svg\", {\n staticClass: \"search-clear\",\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n },\n on: {\n click: _vm.onSearchClear\n }\n }, [_c(\"circle\", {\n attrs: {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n fill: \"#ccc\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M9 9l6 6M15 9l-6 6\",\n stroke: \"#fff\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\"\n }\n })]) : _vm._e()]), _vm.showAgentSuggestions && _vm.agentSuggestions.length > 0 && _vm.searchKeyword ? _c(\"div\", {\n staticClass: \"search-suggestions\"\n }, _vm._l(_vm.agentSuggestions, function (a) {\n return _c(\"div\", {\n key: a.agentCode,\n staticClass: \"suggestion-item\",\n on: {\n click: function ($event) {\n return _vm.selectSuggestion(a);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar suggestion-avatar\",\n class: {\n \"has-agent-img\": a.avatar\n },\n style: {\n width: \"20px\",\n height: \"20px\",\n background: a.color || \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n }, [a.avatar ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: {\n src: a.avatar,\n alt: \"\"\n }\n }) : [_vm._v(_vm._s(_vm.getInitial(a.agentName || a.agentCode)))]], 2), _c(\"span\", {\n staticClass: \"suggestion-name\"\n }, [_vm._v(_vm._s(a.agentName || a.agentCode))]), _c(\"span\", {\n staticClass: \"suggestion-desc\"\n }, [_vm._v(_vm._s(a.description ? a.description.substring(0, 30) : \"\"))])]);\n }), 0) : _vm._e()]), _vm.localFilteredSessions.length > 0 ? _c(\"div\", {\n staticClass: \"sidebar-list\"\n }, _vm._l(_vm.localFilteredSessions, function (s) {\n return _c(\"div\", {\n key: s.sessionId,\n staticClass: \"session-item\",\n class: {\n active: s.sessionId === _vm.activeSessionId\n },\n on: {\n click: function ($event) {\n return _vm.onSessionClick(s);\n },\n touchstart: function ($event) {\n return _vm.onSessionTouchStart(s, $event);\n },\n touchend: _vm.onSessionTouchEnd,\n touchmove: _vm.onSessionTouchMove\n }\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar session-avatar session-left-item\",\n class: {\n \"has-agent-img\": s.avatar\n },\n style: {\n background: s.color || \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n }, [s.avatar ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: {\n src: s.avatar,\n alt: \"\"\n }\n }) : [_vm._v(_vm._s(_vm.getInitial(s.agentName || s.agentCode)))]], 2), _c(\"div\", {\n staticClass: \"session-info\"\n }, [_c(\"div\", {\n staticClass: \"session-agent\"\n }, [_vm._v(_vm._s(s.agentName || s.agentCode))]), _c(\"div\", {\n staticClass: \"session-preview\"\n }, [_vm._v(_vm._s(s.greeting || s.lastContent || \"空会话\"))])]), _c(\"button\", {\n staticClass: \"session-delete\",\n on: {\n click: function ($event) {\n $event.stopPropagation();\n return _vm.$emit(\"delete-session\", s);\n }\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M6 7h12M9 7V5a1 1 0 011-1h4a1 1 0 011 1v2M10 11v6M14 11v6M7 7l1 13a1 1 0 001 1h6a1 1 0 001-1l1-13\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.5\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })])])]);\n }), 0) : _c(\"div\", {\n staticClass: \"sidebar-empty\"\n }, [_c(\"div\", {\n staticClass: \"empty-icon\"\n }, [_vm._v(\"💬\")]), _c(\"div\", [_vm._v(_vm._s(_vm.searchKeyword ? \"没有匹配的会话\" : \"暂无会话\"))]), _c(\"div\", {\n staticClass: \"empty-hint\"\n }, [_vm._v(_vm._s(_vm.searchKeyword ? \"试试其他关键词\" : \"选择助手开始对话\"))])])]);\n};\nvar staticRenderFns = exports.staticRenderFns = [];\nrender._withStripped = true;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%224b66220e-vue-loader-template%22%7D!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
1051
|
+
|
|
1052
|
+
/***/ }),
|
|
1053
|
+
|
|
982
1054
|
/***/ "./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=template&id=bf6d760c&scoped=true":
|
|
983
1055
|
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
984
1056
|
!*** ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4b66220e-vue-loader-template"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=template&id=bf6d760c&scoped=true ***!
|
|
@@ -987,7 +1059,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
987
1059
|
/***/ (function(module, exports, __webpack_require__) {
|
|
988
1060
|
|
|
989
1061
|
"use strict";
|
|
990
|
-
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.staticRenderFns = exports.render = void 0;\nvar render = exports.render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"chat-layout\",\n class: {\n \"is-mobile\": _vm.isMobile,\n \"sidebar-open\": _vm.showSidebar,\n \"h5-list-mode\": _vm.isMobile && _vm.showH5List\n }\n }, [_vm.isMobile && _vm.showSidebar && !_vm.showH5List ? _c(\"div\", {\n staticClass: \"sidebar-mask\",\n on: {\n click: _vm.closeSidebar\n }\n }) : _vm._e(), _c(\"div\", {\n staticClass: \"chat-sidebar\",\n class: {\n open: _vm.showSidebar || _vm.isMobile && _vm.showH5List\n }\n }, [!_vm.isIntelShow ? _c(\"div\", {\n staticClass: \"sidebar-header\"\n }, [_vm.isMobile ? _c(\"button\", {\n staticClass: \"sidebar-back-btn\",\n on: {\n click: _vm.handleSidebarBack\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-arrow-left\"\n })]) : _vm._e(), _c(\"span\", {\n staticClass: \"sidebar-title\"\n }, [_vm._v(_vm._s(_vm.isMobile ? \"AI\" : \"AI助理(内测版)\"))]), _c(\"i\", {\n staticClass: \"el-icon-chat-dot-round\",\n on: {\n click: _vm.agentjumpclick\n }\n })]) : _vm._e(), _c(\"div\", {\n staticClass: \"sidebar-search\"\n }, [_c(\"el-input\", {\n attrs: {\n size: \"small\",\n placeholder: \"搜索助手...\",\n \"prefix-icon\": \"el-icon-search\",\n clearable: \"\"\n },\n on: {\n clear: _vm.onSearchClear\n },\n model: {\n value: _vm.searchKeyword,\n callback: function ($$v) {\n _vm.searchKeyword = $$v;\n },\n expression: \"searchKeyword\"\n }\n }), _vm.showAgentSuggestions && _vm.agentSuggestions.length > 0 && _vm.searchKeyword ? _c(\"div\", {\n staticClass: \"search-suggestions\"\n }, _vm._l(_vm.agentSuggestions, function (a) {\n return _c(\"div\", {\n key: a.agentCode,\n staticClass: \"suggestion-item\",\n on: {\n click: function ($event) {\n return _vm.startChatWithAgent(a);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar suggestion-avatar\",\n class: {\n \"has-agent-img\": a.avatar\n },\n style: {\n width: \"20px\",\n height: \"20px\",\n // 底层固定底色(永远存在)\n background: a.color || \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n }, [a.avatar ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: {\n src: a.avatar,\n alt: \"\"\n }\n }) : [_vm._v(_vm._s(_vm.getInitial(a.agentName || a.agentCode)))]], 2), _c(\"span\", {\n staticClass: \"suggestion-name\"\n }, [_vm._v(_vm._s(a.agentName || a.agentCode))]), _c(\"span\", {\n staticClass: \"suggestion-desc\"\n }, [_vm._v(_vm._s(a.description ? a.description.substring(0, 30) : \"\"))])]);\n }), 0) : _vm._e()], 1), _vm.filteredSessions.length > 0 ? _c(\"div\", {\n staticClass: \"sidebar-list\"\n }, _vm._l(_vm.filteredSessions, function (s) {\n return _c(\"div\", {\n key: s.sessionId,\n staticClass: \"session-item\",\n class: {\n active: s.sessionId === _vm.activeSessionId\n },\n on: {\n click: function ($event) {\n return _vm.switchSession(s);\n },\n touchstart: function ($event) {\n return _vm.onSessionTouchStart(s, $event);\n },\n touchend: _vm.onSessionTouchEnd,\n touchmove: _vm.onSessionTouchMove\n }\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar session-avatar session-left-item\",\n class: {\n \"has-agent-img\": s.avatar\n },\n style: {\n // 底层固定底色(永远存在)\n background: s.color || \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n }, [s.avatar ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: {\n src: s.avatar,\n alt: \"\"\n }\n }) : [_vm._v(_vm._s(_vm.getInitial(s.agentName || s.agentCode)))]], 2), _c(\"div\", {\n staticClass: \"session-info\"\n }, [_c(\"div\", {\n staticClass: \"session-agent\"\n }, [_vm._v(_vm._s(s.agentName || s.agentCode))]), _c(\"div\", {\n staticClass: \"session-preview\"\n }, [_vm._v(_vm._s(s.greeting || s.lastContent || \"空会话\"))])]), _c(\"el-button\", {\n staticClass: \"session-delete\",\n attrs: {\n type: \"text\",\n size: \"mini\",\n icon: \"el-icon-delete\"\n },\n on: {\n click: function ($event) {\n $event.stopPropagation();\n return _vm.handleDeleteSession(s);\n }\n }\n })], 1);\n }), 0) : _c(\"div\", {\n staticClass: \"sidebar-empty\"\n }, [_c(\"div\", {\n staticClass: \"empty-icon\"\n }, [_vm._v(\"💬\")]), _c(\"div\", [_vm._v(_vm._s(_vm.searchKeyword ? \"没有匹配的会话\" : \"暂无会话\"))]), _c(\"div\", {\n staticClass: \"empty-hint\"\n }, [_vm._v(_vm._s(_vm.searchKeyword ? \"试试其他关键词\" : \"选择助手开始对话\"))])])]), _vm.showAgentSelect ? _c(\"div\", {\n staticClass: \"agent-selector\"\n }, [_vm.isMobile ? _c(\"div\", {\n staticClass: \"mobile-agent-select-header\"\n }, [_c(\"button\", {\n staticClass: \"mobile-agent-back\",\n on: {\n click: _vm.goBackToList\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-arrow-left\"\n })]), _c(\"span\", {\n staticClass: \"mobile-agent-title-text\"\n }, [_vm._v(\"AI\")])]) : _vm._e(), _c(\"div\", {\n staticClass: \"agent-wrap\"\n }, [_vm._m(0), _c(\"div\", {\n staticClass: \"agent-list\"\n }, _vm._l(_vm.agentList, function (item) {\n return _c(\"div\", {\n key: item.agentCode,\n staticClass: \"agent-item\",\n style: {\n background: item.color\n },\n on: {\n click: function ($event) {\n return _vm.startChatWithAgent(item);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"agent-avatar-wrapper\"\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar\",\n class: {\n \"has-agent-img\": !!item.avatar\n },\n style: item.avatar ? {\n backgroundImage: `url(${item.avatar})`\n } : {}\n }, [!item.avatar ? [_vm._v(\" \" + _vm._s(_vm.getInitial(item.agentName || item.agentCode)) + \" \")] : _vm._e()], 2)]), _c(\"div\", {\n staticClass: \"agent-info-content\"\n }, [_c(\"div\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(item.agentName))]), _c(\"div\", {\n staticClass: \"desc\"\n }, [_vm._v(_vm._s(item.greeting || item.description))])])]);\n }), 0)])]) : !_vm.showH5List ? _c(\"div\", {\n staticClass: \"chat-main\"\n }, [_c(\"div\", {\n staticClass: \"chat-header\"\n }, [_c(\"div\", {\n staticClass: \"header-left\"\n }, [_vm.isMobile && !_vm.showH5List && !_vm.showAgentSelect && _vm.activeSessionId ? _c(\"button\", {\n staticClass: \"mobile-back-btn\",\n attrs: {\n type: \"button\"\n },\n on: {\n click: _vm.goBackToList\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-arrow-left\"\n })]) : _vm.isMobile ? _c(\"button\", {\n staticClass: \"mobile-menu-btn\",\n attrs: {\n type: \"button\"\n },\n on: {\n click: _vm.toggleSidebar\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-s-fold\"\n })]) : _vm._e(), _vm.currentAgent && (_vm.activeSessionId || _vm.messages.length > 0) ? _c(\"div\", {\n staticClass: \"agent-info\"\n }, [_c(\"div\", {\n staticClass: \"chat-agent-avatar-wrapper\"\n }, [_c(\"div\", {\n staticClass: \"agent-list-avatar session-avatar\",\n class: {\n \"has-agent-img\": _vm.agentInfo.avatar\n },\n style: {\n // 底层固定底色(永远存在)\n background: _vm.agentInfo.color || \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n }, [_vm.agentInfo.avatar ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: {\n src: _vm.agentInfo.avatar,\n alt: \"\"\n }\n }) : [_vm._v(_vm._s(_vm.getInitial(_vm.agentInfo.agentName || _vm.agentInfo.agentCode)))]], 2)]), _c(\"div\", {\n staticClass: \"agent-text\"\n }, [_c(\"div\", {\n staticClass: \"agent-name\"\n }, [_vm._v(_vm._s(_vm.currentAgentName))]), _c(\"div\", {\n staticClass: \"agent-desc\"\n }, [_vm._v(_vm._s(_vm.currentAgentDesc))])])]) : _c(\"div\", {\n staticClass: \"agent-info\"\n }, [_vm._m(1)])]), _vm.isMobile ? _c(\"div\", {\n staticClass: \"header-actions\"\n }, [_c(\"button\", {\n staticClass: \"mobile-header-btn\",\n attrs: {\n type: \"button\"\n },\n on: {\n click: _vm.agentjumpclick\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-chat-dot-round\"\n })])]) : _vm._e()]), _c(\"div\", {\n ref: \"messagesRef\",\n staticClass: \"chat-body\",\n on: {\n scroll: _vm.onScrollMessages\n }\n }, [!_vm.activeSessionId ? _c(\"div\", {\n staticClass: \"welcome welcome-default\"\n }, [_c(\"div\", {\n staticClass: \"welcome-icon\"\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 48 48\",\n width: \"64\",\n height: \"64\"\n }\n }, [_c(\"path\", {\n attrs: {\n fill: \"#e6f4ff\",\n d: \"M40 22c-2.21 0-4 1.79-4 4v10H12c-2.21 0-4-1.79-4-4V14c0-2.21 1.79-4 4-4h24c2.21 0 4 1.79 4 4v8z\"\n }\n }), _c(\"path\", {\n attrs: {\n fill: \"#1677ff\",\n d: \"M36 8c-2.21 0-4 1.79-4 4v18H8c-2.21 0-4-1.79-4-4V12c0-2.21 1.79-4 4-4h28z\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"20\",\n cy: \"28\",\n r: \"3\",\n fill: \"#fff\"\n }\n }), _c(\"circle\", {\n attrs: {\n cx: \"28\",\n cy: \"28\",\n r: \"3\",\n fill: \"#fff\"\n }\n })])]), _c(\"div\", {\n staticClass: \"welcome-title\"\n }, [_vm._v(\"欢迎使用 AI 助手\")]), _c(\"div\", {\n staticClass: \"welcome-text\"\n }, [_vm._v(\"从左侧选择一个会话,或搜索助手开始新的对话\")])]) : _vm.messages.length === 0 && !_vm.loadingSessionMsg ? _c(\"div\", {\n staticClass: \"chat-empty-welcome\"\n }, [_vm.agentInfo.hasOwnProperty(\"agentCode\") ? _c(\"div\", {\n staticClass: \"welcome-card\"\n }, [_c(\"div\", {\n staticClass: \"welcome-avatar-box\"\n }, [_c(\"div\", {\n staticClass: \"welcome-avatar\",\n class: {\n \"has-chat-agent-img\": _vm.agentInfo.avatar\n },\n style: _vm.getChatAvatarStyle(_vm.currentAgent, _vm.agentInfo.avatar)\n }, [!_vm.agentInfo.avatar ? [_vm._v(_vm._s(_vm.getInitial(_vm.currentAgentName)))] : _vm._e()], 2)]), _c(\"div\", {\n staticClass: \"welcome-text-group\"\n }, [_c(\"div\", {\n staticClass: \"text-sm\"\n }, [_vm._v(\"您好,我是\" + _vm._s(_vm.currentAgentName))]), _c(\"div\", {\n staticClass: \"text-lg\"\n }, [_vm._v(_vm._s(_vm.greeting))])])]) : _vm._e(), _c(\"div\", {\n staticClass: \"guess-box\"\n }, [_c(\"div\", {\n staticClass: \"guess-title\"\n }, [_c(\"svg\", {\n attrs: {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"#1677ff\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\"\n }\n })]), _c(\"span\", [_vm._v(\"猜您想问\")])]), _c(\"div\", {\n staticClass: \"tag-wrap\"\n }, _vm._l(_vm.agentInfo.suggestedQuestions, function (tag) {\n return _c(\"div\", {\n key: tag,\n staticClass: \"quick-tag\",\n on: {\n click: function ($event) {\n return _vm.sendQuickMsg(tag);\n }\n }\n }, [_vm._v(\" \" + _vm._s(tag) + \" \")]);\n }), 0)])]) : _vm._e(), _vm._l(_vm.messages, function (m) {\n return _c(\"div\", {\n key: m.id,\n staticClass: \"msg-row\",\n class: m.role\n }, [_c(\"div\", {\n staticClass: \"msg-main\"\n }, [_c(\"div\", {\n staticClass: \"msg-content\"\n }, [_c(\"div\", {\n staticClass: \"bubble\",\n class: m.role\n }, [m.role === \"user\" && m._sttStatus ? _c(\"div\", {\n staticClass: \"stt-bubble-wrap\"\n }, [m._sttStatus === \"pending\" ? _c(\"span\", {\n staticClass: \"stt-spinner stt-outside-icon\"\n }) : m._sttStatus === \"error\" ? _c(\"span\", {\n staticClass: \"stt-error-icon stt-outside-icon\"\n }, [_vm._v(\"!\")]) : _vm._e(), _c(\"span\", {\n staticClass: \"stt-bubble-text\"\n }, [_vm._v(_vm._s(m._sttStatus === \"pending\" ? \"转化中...\" : \"语音转文字失败\"))])]) : _vm._e(), !m._sttStatus && m.thinking ? _c(\"details\", {\n staticClass: \"thinking-details\",\n attrs: {\n open: \"\"\n }\n }, [_c(\"summary\", {\n staticClass: \"thinking-summary\"\n }, [_vm._v(\"💭 思考过程\")]), _c(\"div\", {\n staticClass: \"thinking-body\",\n domProps: {\n innerHTML: _vm._s(_vm.escapeHtml(m.thinking))\n }\n })]) : _vm._e(), !m._sttStatus && m.content && m.loading ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderStreaming(m.content, m._key))\n }\n }) : _vm._e(), !m._sttStatus && m.content && !m.loading ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderMarkdown(m.content))\n }\n }) : _vm._e(), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: !m._sttStatus && _vm.showToolInfo && m.toolCalls && m.toolCalls.length,\n expression: \"!m._sttStatus && showToolInfo && m.toolCalls && m.toolCalls.length\"\n }],\n staticClass: \"tool-calls\"\n }, _vm._l(m.toolCalls, function (tc, ti) {\n return _c(\"div\", {\n key: ti,\n staticClass: \"tool-item\"\n }, [_c(\"span\", {\n staticClass: \"tool-badge\"\n }, [_vm._v(\"工具返回\")]), _c(\"pre\", [_vm._v(_vm._s(tc.substring(0, 300)) + _vm._s(tc.length > 300 ? \"...\" : \"\"))])]);\n }), 0), m.loading ? _c(\"div\", {\n staticClass: \"typing\",\n class: _vm.waitClass\n }, [_c(\"span\", {\n staticClass: \"phrase\"\n }, [_vm._v(\"思考中\")]), _vm._m(2, true)]) : _vm._e()]), m.role === \"assistant\" && m.content && !m.loading ? _c(\"div\", {\n staticClass: \"msg-actions\"\n }, [_c(\"span\", {\n staticClass: \"action-btn\",\n attrs: {\n title: \"复制\"\n },\n on: {\n click: function ($event) {\n return _vm.copyText(m.content);\n }\n }\n }, [_vm._v(\"📋 复制\")]), _c(\"span\", {\n staticClass: \"action-btn\",\n attrs: {\n title: \"复制为图片\"\n },\n on: {\n click: function ($event) {\n return _vm.copyAsImage(m.content);\n }\n }\n }, [_vm._v(\"🖼 复制为图片\")])]) : _vm._e()])])]);\n })], 2), _c(\"div\", {\n staticClass: \"chat-footer\"\n }, [_c(\"div\", {\n staticClass: \"input-area\"\n }, [_vm.isMobile ? _c(\"button\", {\n staticClass: \"voice-btn\",\n attrs: {\n disabled: _vm.sending\n },\n on: {\n click: _vm.toggleVoiceMode\n }\n }, [!_vm.voiceMode ? _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"22\",\n height: \"22\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 14a3 3 0 003-3V5a3 3 0 00-6 0v6a3 3 0 003 3z\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M17 11a5 5 0 01-10 0H5a7 7 0 0014 0h-2z\"\n }\n }), _c(\"rect\", {\n attrs: {\n x: \"11\",\n y: \"17\",\n width: \"2\",\n height: \"4\",\n rx: \"1\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M9 20h6v2H9z\"\n }\n })]) : _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"22\",\n height: \"22\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M3 6h18v2H3V6zm0 5h18v2H3v-2zm0 5h18v2H3v-2z\"\n }\n })])]) : _vm._e(), !_vm.voiceMode || !_vm.isMobile ? [_c(\"textarea\", {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.inputText,\n expression: \"inputText\"\n }],\n ref: \"taRef\",\n staticClass: \"chat-textarea\",\n attrs: {\n placeholder: _vm.isMobile ? \"\" : \"请输入消息\",\n disabled: _vm.sending\n },\n domProps: {\n value: _vm.inputText\n },\n on: {\n input: [function ($event) {\n if ($event.target.composing) return;\n _vm.inputText = $event.target.value;\n }, _vm.autoResizeTextarea],\n keydown: [function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n return _vm.sendMessage.apply(null, arguments);\n }, function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if (!$event.ctrlKey) return null;\n return _vm.newLine.apply(null, arguments);\n }]\n }\n }), !_vm.sending ? _c(\"button\", {\n staticClass: \"send-btn\",\n class: {\n active: _vm.inputText.trim()\n },\n attrs: {\n disabled: _vm.sending || !_vm.inputText.trim()\n },\n on: {\n click: _vm.sendMessage\n }\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"20\",\n height: \"20\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\n }\n })])]) : _vm._e(), _vm.sending ? _c(\"button\", {\n staticClass: \"stop-btn\",\n on: {\n click: _vm.stopAgent\n }\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n }, [_c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })])]) : _vm._e()] : [_c(\"div\", {\n staticClass: \"hold-talk-btn\",\n class: {\n recording: _vm.isRecording\n },\n on: {\n touchstart: function ($event) {\n $event.preventDefault();\n return _vm.onRecordTouchStart.apply(null, arguments);\n },\n touchmove: function ($event) {\n $event.preventDefault();\n return _vm.onRecordTouchMove.apply(null, arguments);\n },\n touchend: function ($event) {\n $event.preventDefault();\n return _vm.onRecordTouchEnd.apply(null, arguments);\n }\n }\n }, [!_vm.isRecording ? _c(\"svg\", {\n staticClass: \"hold-talk-icon\",\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 14a3 3 0 003-3V5a3 3 0 00-6 0v6a3 3 0 003 3z\"\n }\n }), _c(\"path\", {\n attrs: {\n d: \"M17 11a5 5 0 01-10 0H5a7 7 0 0014 0h-2z\"\n }\n }), _c(\"rect\", {\n attrs: {\n x: \"11\",\n y: \"17\",\n width: \"2\",\n height: \"4\",\n rx: \"1\"\n }\n })]) : _vm._e(), _c(\"span\", [_vm._v(_vm._s(_vm.isRecording ? _vm.isCancelSwipe ? \"松开取消\" : \"松手发送\" : \"按住说话\"))])]), _vm.sending ? _c(\"button\", {\n staticClass: \"stop-btn\",\n on: {\n click: _vm.stopAgent\n }\n }, [_c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n }, [_c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })])]) : _vm._e()], _vm.showDownBtn && _vm.messages.length !== 0 ? _c(\"div\", {\n staticClass: \"scroll-bottom-wrap\"\n }, [_c(\"div\", {\n staticClass: \"scroll-bottom-btn\",\n on: {\n click: function ($event) {\n return _vm.scrollToBottom(true);\n }\n }\n }, [_vm.sending ? _c(\"div\", {\n staticClass: \"loading-circle\"\n }) : _vm._e(), _c(\"i\", {\n staticClass: \"el-icon-arrow-down\"\n })])]) : _vm._e()], 2)]), _vm.isRecording ? _c(\"div\", {\n staticClass: \"voice-recording-overlay\"\n }, [_c(\"div\", {\n staticClass: \"voice-recording-card\"\n }, [_vm._m(3), _c(\"div\", {\n staticClass: \"voice-recording-duration\"\n }, [_vm._v(_vm._s(_vm.recordDuration)), _c(\"span\", {\n staticClass: \"unit\"\n }, [_vm._v(\"s\")])]), _c(\"div\", {\n staticClass: \"voice-recording-hint\",\n class: {\n cancel: _vm.isCancelSwipe\n }\n }, [_vm.isCancelSwipe ? _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#ff4d4f\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n }\n })]) : _c(\"svg\", {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#999\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n }\n })]), _vm._v(\" \" + _vm._s(_vm.isCancelSwipe ? \"松开取消发送\" : \"手指上滑 取消发送\") + \" \")])])]) : _vm._e()]) : _vm._e()]);\n};\nvar staticRenderFns = exports.staticRenderFns = [function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"agent-title\"\n }, [_c(\"h2\", [_vm._v(\"选择智能助手开始对话\")])]);\n}, function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"agent-text\"\n }, [_c(\"div\", {\n staticClass: \"agent-name\",\n staticStyle: {\n color: \"#bbb\"\n }\n }, [_vm._v(\"请选择助手\")])]);\n}, function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"span\", {\n staticClass: \"dots\"\n }, [_c(\"span\"), _c(\"span\"), _c(\"span\")]);\n}, function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"voice-recording-wave\"\n }, [_c(\"span\"), _c(\"span\"), _c(\"span\"), _c(\"span\"), _c(\"span\")]);\n}];\nrender._withStripped = true;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%224b66220e-vue-loader-template%22%7D!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
1062
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.staticRenderFns = exports.render = void 0;\nvar render = exports.render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"chat-layout\",\n class: {\n \"is-mobile\": _vm.isMobile,\n \"sidebar-open\": _vm.showSidebar,\n \"h5-list-mode\": _vm.isMobile && _vm.showH5List\n },\n on: {\n touchstart: _vm.onSwipeTouchStart,\n touchend: _vm.onSwipeTouchEnd\n }\n }, [_vm.isMobile && _vm.showSidebar && !_vm.showH5List ? _c(\"div\", {\n staticClass: \"sidebar-mask\",\n on: {\n click: _vm.closeSidebar\n }\n }) : _vm._e(), _c(\"ChatSidebar\", {\n attrs: {\n sessions: _vm.sessionList,\n activeSessionId: _vm.activeSessionId,\n isMobile: _vm.isMobile,\n isIntelShow: _vm.isIntelShow\n },\n on: {\n \"sidebar-back\": _vm.handleSidebarBack,\n \"agent-jump-click\": _vm.agentjumpclick,\n \"switch-session\": _vm.switchSession,\n \"delete-session\": _vm.handleDeleteSession,\n \"start-chat-from-search\": _vm.startChatWithAgent\n }\n }), _vm.showAgentSelect ? _c(\"AgentSelector\", {\n attrs: {\n agentList: _vm.agentList,\n isMobile: _vm.isMobile\n },\n on: {\n \"select-agent\": _vm.startChatWithAgent,\n \"go-back\": _vm.goBackToList\n }\n }) : !_vm.showH5List ? _c(\"ChatDetail\", {\n ref: \"chatDetail\",\n attrs: {\n isMobile: _vm.isMobile,\n activeSessionId: _vm.activeSessionId,\n currentAgent: _vm.currentAgent,\n agentInfo: _vm.agentInfo,\n currentAgentDesc: _vm.currentAgentDesc,\n agentList: _vm.agentList\n },\n on: {\n \"go-back-to-list\": _vm.goBackToList,\n \"toggle-sidebar\": _vm.toggleSidebar,\n \"agent-jump-click\": _vm.agentjumpclick,\n \"close-sidebar\": _vm.closeSidebar,\n \"session-refresh\": _vm.loadSessions,\n \"start-session\": _vm.handleNewSessionInternal\n }\n }) : _vm._e()], 1);\n};\nvar staticRenderFns = exports.staticRenderFns = [];\nrender._withStripped = true;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%224b66220e-vue-loader-template%22%7D!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_babel-loader@8.4.1@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
991
1063
|
|
|
992
1064
|
/***/ }),
|
|
993
1065
|
|
|
@@ -3223,47 +3295,58 @@ eval(";(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.e
|
|
|
3223
3295
|
|
|
3224
3296
|
/***/ }),
|
|
3225
3297
|
|
|
3226
|
-
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/
|
|
3227
|
-
|
|
3228
|
-
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--
|
|
3229
|
-
|
|
3298
|
+
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_sass-loader@8.0.2@sass-loader/dist/cjs.js?!./src/lib/style/zj-client.scss":
|
|
3299
|
+
/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
|
|
3300
|
+
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--9-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--9-oneOf-3-2!./node_modules/_sass-loader@8.0.2@sass-loader/dist/cjs.js??ref--9-oneOf-3-3!./src/lib/style/zj-client.scss ***!
|
|
3301
|
+
\**********************************************************************************************************************************************************************************************************************************************************************/
|
|
3230
3302
|
/*! no static exports found */
|
|
3231
3303
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3232
3304
|
|
|
3233
|
-
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../_css-loader@3.6.0@css-loader/dist/runtime/getUrl.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ./fonts/element-icons.woff */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.woff\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ./fonts/element-icons.ttf */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.ttf\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\nexports.push([module.i, \".fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45,.45)}.collapse-transition{transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}@font-face{font-family:element-icons;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"truetype\\\");font-weight:400;font-display:\\\"auto\\\";font-style:normal}[class*=\\\" el-icon-\\\"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:\\\"\\\\e6a0\\\"}.el-icon-ice-cream-square:before{content:\\\"\\\\e6a3\\\"}.el-icon-lollipop:before{content:\\\"\\\\e6a4\\\"}.el-icon-potato-strips:before{content:\\\"\\\\e6a5\\\"}.el-icon-milk-tea:before{content:\\\"\\\\e6a6\\\"}.el-icon-ice-drink:before{content:\\\"\\\\e6a7\\\"}.el-icon-ice-tea:before{content:\\\"\\\\e6a9\\\"}.el-icon-coffee:before{content:\\\"\\\\e6aa\\\"}.el-icon-orange:before{content:\\\"\\\\e6ab\\\"}.el-icon-pear:before{content:\\\"\\\\e6ac\\\"}.el-icon-apple:before{content:\\\"\\\\e6ad\\\"}.el-icon-cherry:before{content:\\\"\\\\e6ae\\\"}.el-icon-watermelon:before{content:\\\"\\\\e6af\\\"}.el-icon-grape:before{content:\\\"\\\\e6b0\\\"}.el-icon-refrigerator:before{content:\\\"\\\\e6b1\\\"}.el-icon-goblet-square-full:before{content:\\\"\\\\e6b2\\\"}.el-icon-goblet-square:before{content:\\\"\\\\e6b3\\\"}.el-icon-goblet-full:before{content:\\\"\\\\e6b4\\\"}.el-icon-goblet:before{content:\\\"\\\\e6b5\\\"}.el-icon-cold-drink:before{content:\\\"\\\\e6b6\\\"}.el-icon-coffee-cup:before{content:\\\"\\\\e6b8\\\"}.el-icon-water-cup:before{content:\\\"\\\\e6b9\\\"}.el-icon-hot-water:before{content:\\\"\\\\e6ba\\\"}.el-icon-ice-cream:before{content:\\\"\\\\e6bb\\\"}.el-icon-dessert:before{content:\\\"\\\\e6bc\\\"}.el-icon-sugar:before{content:\\\"\\\\e6bd\\\"}.el-icon-tableware:before{content:\\\"\\\\e6be\\\"}.el-icon-burger:before{content:\\\"\\\\e6bf\\\"}.el-icon-knife-fork:before{content:\\\"\\\\e6c1\\\"}.el-icon-fork-spoon:before{content:\\\"\\\\e6c2\\\"}.el-icon-chicken:before{content:\\\"\\\\e6c3\\\"}.el-icon-food:before{content:\\\"\\\\e6c4\\\"}.el-icon-dish-1:before{content:\\\"\\\\e6c5\\\"}.el-icon-dish:before{content:\\\"\\\\e6c6\\\"}.el-icon-moon-night:before{content:\\\"\\\\e6ee\\\"}.el-icon-moon:before{content:\\\"\\\\e6f0\\\"}.el-icon-cloudy-and-sunny:before{content:\\\"\\\\e6f1\\\"}.el-icon-partly-cloudy:before{content:\\\"\\\\e6f2\\\"}.el-icon-cloudy:before{content:\\\"\\\\e6f3\\\"}.el-icon-sunny:before{content:\\\"\\\\e6f6\\\"}.el-icon-sunset:before{content:\\\"\\\\e6f7\\\"}.el-icon-sunrise-1:before{content:\\\"\\\\e6f8\\\"}.el-icon-sunrise:before{content:\\\"\\\\e6f9\\\"}.el-icon-heavy-rain:before{content:\\\"\\\\e6fa\\\"}.el-icon-lightning:before{content:\\\"\\\\e6fb\\\"}.el-icon-light-rain:before{content:\\\"\\\\e6fc\\\"}.el-icon-wind-power:before{content:\\\"\\\\e6fd\\\"}.el-icon-baseball:before{content:\\\"\\\\e712\\\"}.el-icon-soccer:before{content:\\\"\\\\e713\\\"}.el-icon-football:before{content:\\\"\\\\e715\\\"}.el-icon-basketball:before{content:\\\"\\\\e716\\\"}.el-icon-ship:before{content:\\\"\\\\e73f\\\"}.el-icon-truck:before{content:\\\"\\\\e740\\\"}.el-icon-bicycle:before{content:\\\"\\\\e741\\\"}.el-icon-mobile-phone:before{content:\\\"\\\\e6d3\\\"}.el-icon-service:before{content:\\\"\\\\e6d4\\\"}.el-icon-key:before{content:\\\"\\\\e6e2\\\"}.el-icon-unlock:before{content:\\\"\\\\e6e4\\\"}.el-icon-lock:before{content:\\\"\\\\e6e5\\\"}.el-icon-watch:before{content:\\\"\\\\e6fe\\\"}.el-icon-watch-1:before{content:\\\"\\\\e6ff\\\"}.el-icon-timer:before{content:\\\"\\\\e702\\\"}.el-icon-alarm-clock:before{content:\\\"\\\\e703\\\"}.el-icon-map-location:before{content:\\\"\\\\e704\\\"}.el-icon-delete-location:before{content:\\\"\\\\e705\\\"}.el-icon-add-location:before{content:\\\"\\\\e706\\\"}.el-icon-location-information:before{content:\\\"\\\\e707\\\"}.el-icon-location-outline:before{content:\\\"\\\\e708\\\"}.el-icon-location:before{content:\\\"\\\\e79e\\\"}.el-icon-place:before{content:\\\"\\\\e709\\\"}.el-icon-discover:before{content:\\\"\\\\e70a\\\"}.el-icon-first-aid-kit:before{content:\\\"\\\\e70b\\\"}.el-icon-trophy-1:before{content:\\\"\\\\e70c\\\"}.el-icon-trophy:before{content:\\\"\\\\e70d\\\"}.el-icon-medal:before{content:\\\"\\\\e70e\\\"}.el-icon-medal-1:before{content:\\\"\\\\e70f\\\"}.el-icon-stopwatch:before{content:\\\"\\\\e710\\\"}.el-icon-mic:before{content:\\\"\\\\e711\\\"}.el-icon-copy-document:before{content:\\\"\\\\e718\\\"}.el-icon-full-screen:before{content:\\\"\\\\e719\\\"}.el-icon-switch-button:before{content:\\\"\\\\e71b\\\"}.el-icon-aim:before{content:\\\"\\\\e71c\\\"}.el-icon-crop:before{content:\\\"\\\\e71d\\\"}.el-icon-odometer:before{content:\\\"\\\\e71e\\\"}.el-icon-time:before{content:\\\"\\\\e71f\\\"}.el-icon-bangzhu:before{content:\\\"\\\\e724\\\"}.el-icon-close-notification:before{content:\\\"\\\\e726\\\"}.el-icon-microphone:before{content:\\\"\\\\e727\\\"}.el-icon-turn-off-microphone:before{content:\\\"\\\\e728\\\"}.el-icon-position:before{content:\\\"\\\\e729\\\"}.el-icon-postcard:before{content:\\\"\\\\e72a\\\"}.el-icon-message:before{content:\\\"\\\\e72b\\\"}.el-icon-chat-line-square:before{content:\\\"\\\\e72d\\\"}.el-icon-chat-dot-square:before{content:\\\"\\\\e72e\\\"}.el-icon-chat-dot-round:before{content:\\\"\\\\e72f\\\"}.el-icon-chat-square:before{content:\\\"\\\\e730\\\"}.el-icon-chat-line-round:before{content:\\\"\\\\e731\\\"}.el-icon-chat-round:before{content:\\\"\\\\e732\\\"}.el-icon-set-up:before{content:\\\"\\\\e733\\\"}.el-icon-turn-off:before{content:\\\"\\\\e734\\\"}.el-icon-open:before{content:\\\"\\\\e735\\\"}.el-icon-connection:before{content:\\\"\\\\e736\\\"}.el-icon-link:before{content:\\\"\\\\e737\\\"}.el-icon-cpu:before{content:\\\"\\\\e738\\\"}.el-icon-thumb:before{content:\\\"\\\\e739\\\"}.el-icon-female:before{content:\\\"\\\\e73a\\\"}.el-icon-male:before{content:\\\"\\\\e73b\\\"}.el-icon-guide:before{content:\\\"\\\\e73c\\\"}.el-icon-news:before{content:\\\"\\\\e73e\\\"}.el-icon-price-tag:before{content:\\\"\\\\e744\\\"}.el-icon-discount:before{content:\\\"\\\\e745\\\"}.el-icon-wallet:before{content:\\\"\\\\e747\\\"}.el-icon-coin:before{content:\\\"\\\\e748\\\"}.el-icon-money:before{content:\\\"\\\\e749\\\"}.el-icon-bank-card:before{content:\\\"\\\\e74a\\\"}.el-icon-box:before{content:\\\"\\\\e74b\\\"}.el-icon-present:before{content:\\\"\\\\e74c\\\"}.el-icon-sell:before{content:\\\"\\\\e6d5\\\"}.el-icon-sold-out:before{content:\\\"\\\\e6d6\\\"}.el-icon-shopping-bag-2:before{content:\\\"\\\\e74d\\\"}.el-icon-shopping-bag-1:before{content:\\\"\\\\e74e\\\"}.el-icon-shopping-cart-2:before{content:\\\"\\\\e74f\\\"}.el-icon-shopping-cart-1:before{content:\\\"\\\\e750\\\"}.el-icon-shopping-cart-full:before{content:\\\"\\\\e751\\\"}.el-icon-smoking:before{content:\\\"\\\\e752\\\"}.el-icon-no-smoking:before{content:\\\"\\\\e753\\\"}.el-icon-house:before{content:\\\"\\\\e754\\\"}.el-icon-table-lamp:before{content:\\\"\\\\e755\\\"}.el-icon-school:before{content:\\\"\\\\e756\\\"}.el-icon-office-building:before{content:\\\"\\\\e757\\\"}.el-icon-toilet-paper:before{content:\\\"\\\\e758\\\"}.el-icon-notebook-2:before{content:\\\"\\\\e759\\\"}.el-icon-notebook-1:before{content:\\\"\\\\e75a\\\"}.el-icon-files:before{content:\\\"\\\\e75b\\\"}.el-icon-collection:before{content:\\\"\\\\e75c\\\"}.el-icon-receiving:before{content:\\\"\\\\e75d\\\"}.el-icon-suitcase-1:before{content:\\\"\\\\e760\\\"}.el-icon-suitcase:before{content:\\\"\\\\e761\\\"}.el-icon-film:before{content:\\\"\\\\e763\\\"}.el-icon-collection-tag:before{content:\\\"\\\\e765\\\"}.el-icon-data-analysis:before{content:\\\"\\\\e766\\\"}.el-icon-pie-chart:before{content:\\\"\\\\e767\\\"}.el-icon-data-board:before{content:\\\"\\\\e768\\\"}.el-icon-data-line:before{content:\\\"\\\\e76d\\\"}.el-icon-reading:before{content:\\\"\\\\e769\\\"}.el-icon-magic-stick:before{content:\\\"\\\\e76a\\\"}.el-icon-coordinate:before{content:\\\"\\\\e76b\\\"}.el-icon-mouse:before{content:\\\"\\\\e76c\\\"}.el-icon-brush:before{content:\\\"\\\\e76e\\\"}.el-icon-headset:before{content:\\\"\\\\e76f\\\"}.el-icon-umbrella:before{content:\\\"\\\\e770\\\"}.el-icon-scissors:before{content:\\\"\\\\e771\\\"}.el-icon-mobile:before{content:\\\"\\\\e773\\\"}.el-icon-attract:before{content:\\\"\\\\e774\\\"}.el-icon-monitor:before{content:\\\"\\\\e775\\\"}.el-icon-search:before{content:\\\"\\\\e778\\\"}.el-icon-takeaway-box:before{content:\\\"\\\\e77a\\\"}.el-icon-paperclip:before{content:\\\"\\\\e77d\\\"}.el-icon-printer:before{content:\\\"\\\\e77e\\\"}.el-icon-document-add:before{content:\\\"\\\\e782\\\"}.el-icon-document:before{content:\\\"\\\\e785\\\"}.el-icon-document-checked:before{content:\\\"\\\\e786\\\"}.el-icon-document-copy:before{content:\\\"\\\\e787\\\"}.el-icon-document-delete:before{content:\\\"\\\\e788\\\"}.el-icon-document-remove:before{content:\\\"\\\\e789\\\"}.el-icon-tickets:before{content:\\\"\\\\e78b\\\"}.el-icon-folder-checked:before{content:\\\"\\\\e77f\\\"}.el-icon-folder-delete:before{content:\\\"\\\\e780\\\"}.el-icon-folder-remove:before{content:\\\"\\\\e781\\\"}.el-icon-folder-add:before{content:\\\"\\\\e783\\\"}.el-icon-folder-opened:before{content:\\\"\\\\e784\\\"}.el-icon-folder:before{content:\\\"\\\\e78a\\\"}.el-icon-edit-outline:before{content:\\\"\\\\e764\\\"}.el-icon-edit:before{content:\\\"\\\\e78c\\\"}.el-icon-date:before{content:\\\"\\\\e78e\\\"}.el-icon-c-scale-to-original:before{content:\\\"\\\\e7c6\\\"}.el-icon-view:before{content:\\\"\\\\e6ce\\\"}.el-icon-loading:before{content:\\\"\\\\e6cf\\\"}.el-icon-rank:before{content:\\\"\\\\e6d1\\\"}.el-icon-sort-down:before{content:\\\"\\\\e7c4\\\"}.el-icon-sort-up:before{content:\\\"\\\\e7c5\\\"}.el-icon-sort:before{content:\\\"\\\\e6d2\\\"}.el-icon-finished:before{content:\\\"\\\\e6cd\\\"}.el-icon-refresh-left:before{content:\\\"\\\\e6c7\\\"}.el-icon-refresh-right:before{content:\\\"\\\\e6c8\\\"}.el-icon-refresh:before{content:\\\"\\\\e6d0\\\"}.el-icon-video-play:before{content:\\\"\\\\e7c0\\\"}.el-icon-video-pause:before{content:\\\"\\\\e7c1\\\"}.el-icon-d-arrow-right:before{content:\\\"\\\\e6dc\\\"}.el-icon-d-arrow-left:before{content:\\\"\\\\e6dd\\\"}.el-icon-arrow-up:before{content:\\\"\\\\e6e1\\\"}.el-icon-arrow-down:before{content:\\\"\\\\e6df\\\"}.el-icon-arrow-right:before{content:\\\"\\\\e6e0\\\"}.el-icon-arrow-left:before{content:\\\"\\\\e6de\\\"}.el-icon-top-right:before{content:\\\"\\\\e6e7\\\"}.el-icon-top-left:before{content:\\\"\\\\e6e8\\\"}.el-icon-top:before{content:\\\"\\\\e6e6\\\"}.el-icon-bottom:before{content:\\\"\\\\e6eb\\\"}.el-icon-right:before{content:\\\"\\\\e6e9\\\"}.el-icon-back:before{content:\\\"\\\\e6ea\\\"}.el-icon-bottom-right:before{content:\\\"\\\\e6ec\\\"}.el-icon-bottom-left:before{content:\\\"\\\\e6ed\\\"}.el-icon-caret-top:before{content:\\\"\\\\e78f\\\"}.el-icon-caret-bottom:before{content:\\\"\\\\e790\\\"}.el-icon-caret-right:before{content:\\\"\\\\e791\\\"}.el-icon-caret-left:before{content:\\\"\\\\e792\\\"}.el-icon-d-caret:before{content:\\\"\\\\e79a\\\"}.el-icon-share:before{content:\\\"\\\\e793\\\"}.el-icon-menu:before{content:\\\"\\\\e798\\\"}.el-icon-s-grid:before{content:\\\"\\\\e7a6\\\"}.el-icon-s-check:before{content:\\\"\\\\e7a7\\\"}.el-icon-s-data:before{content:\\\"\\\\e7a8\\\"}.el-icon-s-opportunity:before{content:\\\"\\\\e7aa\\\"}.el-icon-s-custom:before{content:\\\"\\\\e7ab\\\"}.el-icon-s-claim:before{content:\\\"\\\\e7ad\\\"}.el-icon-s-finance:before{content:\\\"\\\\e7ae\\\"}.el-icon-s-comment:before{content:\\\"\\\\e7af\\\"}.el-icon-s-flag:before{content:\\\"\\\\e7b0\\\"}.el-icon-s-marketing:before{content:\\\"\\\\e7b1\\\"}.el-icon-s-shop:before{content:\\\"\\\\e7b4\\\"}.el-icon-s-open:before{content:\\\"\\\\e7b5\\\"}.el-icon-s-management:before{content:\\\"\\\\e7b6\\\"}.el-icon-s-ticket:before{content:\\\"\\\\e7b7\\\"}.el-icon-s-release:before{content:\\\"\\\\e7b8\\\"}.el-icon-s-home:before{content:\\\"\\\\e7b9\\\"}.el-icon-s-promotion:before{content:\\\"\\\\e7ba\\\"}.el-icon-s-operation:before{content:\\\"\\\\e7bb\\\"}.el-icon-s-unfold:before{content:\\\"\\\\e7bc\\\"}.el-icon-s-fold:before{content:\\\"\\\\e7a9\\\"}.el-icon-s-platform:before{content:\\\"\\\\e7bd\\\"}.el-icon-s-order:before{content:\\\"\\\\e7be\\\"}.el-icon-s-cooperation:before{content:\\\"\\\\e7bf\\\"}.el-icon-bell:before{content:\\\"\\\\e725\\\"}.el-icon-message-solid:before{content:\\\"\\\\e799\\\"}.el-icon-video-camera:before{content:\\\"\\\\e772\\\"}.el-icon-video-camera-solid:before{content:\\\"\\\\e796\\\"}.el-icon-camera:before{content:\\\"\\\\e779\\\"}.el-icon-camera-solid:before{content:\\\"\\\\e79b\\\"}.el-icon-download:before{content:\\\"\\\\e77c\\\"}.el-icon-upload2:before{content:\\\"\\\\e77b\\\"}.el-icon-upload:before{content:\\\"\\\\e7c3\\\"}.el-icon-picture-outline-round:before{content:\\\"\\\\e75f\\\"}.el-icon-picture-outline:before{content:\\\"\\\\e75e\\\"}.el-icon-picture:before{content:\\\"\\\\e79f\\\"}.el-icon-close:before{content:\\\"\\\\e6db\\\"}.el-icon-check:before{content:\\\"\\\\e6da\\\"}.el-icon-plus:before{content:\\\"\\\\e6d9\\\"}.el-icon-minus:before{content:\\\"\\\\e6d8\\\"}.el-icon-help:before{content:\\\"\\\\e73d\\\"}.el-icon-s-help:before{content:\\\"\\\\e7b3\\\"}.el-icon-circle-close:before{content:\\\"\\\\e78d\\\"}.el-icon-circle-check:before{content:\\\"\\\\e720\\\"}.el-icon-circle-plus-outline:before{content:\\\"\\\\e723\\\"}.el-icon-remove-outline:before{content:\\\"\\\\e722\\\"}.el-icon-zoom-out:before{content:\\\"\\\\e776\\\"}.el-icon-zoom-in:before{content:\\\"\\\\e777\\\"}.el-icon-error:before{content:\\\"\\\\e79d\\\"}.el-icon-success:before{content:\\\"\\\\e79c\\\"}.el-icon-circle-plus:before{content:\\\"\\\\e7a0\\\"}.el-icon-remove:before{content:\\\"\\\\e7a2\\\"}.el-icon-info:before{content:\\\"\\\\e7a1\\\"}.el-icon-question:before{content:\\\"\\\\e7a4\\\"}.el-icon-warning-outline:before{content:\\\"\\\\e6c9\\\"}.el-icon-warning:before{content:\\\"\\\\e7a3\\\"}.el-icon-goods:before{content:\\\"\\\\e7c2\\\"}.el-icon-s-goods:before{content:\\\"\\\\e7b2\\\"}.el-icon-star-off:before{content:\\\"\\\\e717\\\"}.el-icon-star-on:before{content:\\\"\\\\e797\\\"}.el-icon-more-outline:before{content:\\\"\\\\e6cc\\\"}.el-icon-more:before{content:\\\"\\\\e794\\\"}.el-icon-phone-outline:before{content:\\\"\\\\e6cb\\\"}.el-icon-phone:before{content:\\\"\\\\e795\\\"}.el-icon-user:before{content:\\\"\\\\e6e3\\\"}.el-icon-user-solid:before{content:\\\"\\\\e7a5\\\"}.el-icon-setting:before{content:\\\"\\\\e6ca\\\"}.el-icon-s-tools:before{content:\\\"\\\\e7ac\\\"}.el-icon-delete:before{content:\\\"\\\\e6d7\\\"}.el-icon-delete-solid:before{content:\\\"\\\\e7c9\\\"}.el-icon-eleme:before{content:\\\"\\\\e7c7\\\"}.el-icon-platform-eleme:before{content:\\\"\\\\e7ca\\\"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/base.css?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2");
|
|
3305
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.zj-style {\\n position: relative;\\n overflow: hidden; }\\n\\n.zjkf__root.zjkf-body {\\n font-family: 'Microsoft YaHei', '微软雅黑', '宋体', helvetica, 'Hiragino Sans GB', MicrosoftYaHei;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n margin: 0 !important;\\n font-size: 14px;\\n background: #ffffff; }\\n .zjkf__root.zjkf-body .clearfix::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden; }\\n .zjkf__root.zjkf-body .clearfix {\\n zoom: 1; }\\n .zjkf__root.zjkf-body i.zj-iconfont {\\n speak: none;\\n font-style: normal;\\n font-weight: 400;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n vertical-align: baseline;\\n display: inline-block;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-button {\\n display: none !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-track-piece {\\n background: transparent !important; }\\n\\n.zjkf-common-e-ui .el-button.el-button--primary {\\n background: #0074fd !important;\\n border-color: #0074fd !important; }\\n\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important; }\\n\\n.zjkf-common-e-ui .el-button--primary.is-disabled,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important; }\\n\\n/*\\r\\n * @Desc: \\r\\n * @Auth: Hrc\\r\\n * @Date: 2021-06-16 10:12:53\\r\\n */\\n.zjkf__chat > .chat-message {\\n position: relative;\\n height: calc(100% - 50px - 220px);\\n overflow-y: auto;\\n overflow-x: hidden;\\n background-color: #f2f2f2;\\n box-sizing: border-box;\\n scrollbar-width: thin;\\n scrollbar-color: #dddfe0 #f2f2f2; }\\n .zjkf__chat > .chat-message .unConnect {\\n padding: 20px;\\n margin: 20px 0;\\n text-align: center; }\\n .zjkf__chat > .chat-message .unConnect .loading {\\n display: inline-block;\\n padding: 5px 30px;\\n border-radius: 20px;\\n background-color: #5facff;\\n color: #ffffff;\\n font-size: 12px; }\\n .zjkf__chat > .chat-message .unConnect .errorConnect {\\n display: inline-block;\\n padding: 5px 30px;\\n border-radius: 20px;\\n background-color: #e27171;\\n color: #ffffff;\\n font-size: 12px; }\\n .zjkf__chat > .chat-message .unConnect i {\\n font-size: 14px;\\n margin-right: 5px;\\n transition: font-size 3s linear 1s; }\\n .zjkf__chat > .chat-message i.animation {\\n animation: myrotate 2s linear infinite;\\n -webkit-animation: myrotate 2s linear infinite; }\\n .zjkf__chat > .chat-message .message-list .message-item {\\n width: 100%;\\n padding: 15px 0;\\n box-sizing: border-box;\\n text-align: left;\\n padding-bottom: 0px; }\\n .zjkf__chat > .chat-message .message-list .message-item .sendTime {\\n text-align: center;\\n padding: 10px;\\n margin: 0;\\n font-size: 12px;\\n color: #8e8e8e; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .avatar {\\n width: 38px;\\n height: 38px;\\n line-height: 35px;\\n border-radius: 50%;\\n border: none;\\n overflow: hidden;\\n text-align: center; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .avatar img {\\n max-width: 100%;\\n max-height: 100%;\\n vertical-align: middle; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .send-user {\\n line-height: 1;\\n font-size: 12px;\\n color: #909399;\\n margin-bottom: 10px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message {\\n min-width: 50px;\\n max-width: 65%; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble-box {\\n padding: 5px;\\n width: 100%;\\n box-sizing: border-box; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble {\\n display: inline-block;\\n position: relative;\\n padding: 10px 15px;\\n border-radius: 4px;\\n background-color: #ffffff;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\\n width: inherit;\\n box-sizing: border-box; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble::after {\\n content: '';\\n position: absolute;\\n top: 8px;\\n width: 0;\\n height: 0;\\n border: 0 solid #ffffff;\\n border-top: 5px solid transparent;\\n border-bottom: 5px solid transparent; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.large-txt p {\\n font-size: 18px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble p {\\n font-size: 14px;\\n color: #666666;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n width: inherit; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue {\\n width: 90%;\\n padding: 20px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue::after {\\n content: '';\\n position: absolute;\\n left: -3px;\\n border-right-width: 4px;\\n filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.16)); }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .tit h3 {\\n font-size: 20px;\\n font-weight: bold;\\n color: #333333;\\n margin-bottom: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .tit p {\\n font-size: 12px;\\n color: #333333;\\n margin-bottom: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body {\\n text-align: center;\\n padding: 15px;\\n padding-bottom: 0; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body p {\\n font-size: 12px;\\n color: #999999; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body .num {\\n margin-top: 15px;\\n font-size: 60px;\\n color: #0074fd; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .top-line {\\n border-top: 1px dashed #dedee0; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory {\\n padding: 10px 10px 2px;\\n min-width: 368px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-tit {\\n margin-bottom: 10px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-tit p {\\n font-size: 14px;\\n color: #969696; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item {\\n padding: 10px 5px;\\n font-size: 14px;\\n color: #333333;\\n flex-basis: calc(50% - 10px);\\n cursor: pointer;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item:hover:not(.disabled) {\\n color: #0074FD; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item.disabled {\\n color: #bdbdbd;\\n cursor: no-drop; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-divider:not(:last-child)::after {\\n content: \\\"\\\";\\n width: 94%;\\n height: 1px;\\n position: absolute;\\n left: 3%;\\n margin-top: 29px;\\n background-image: linear-gradient(to right, #DEDEE0 0%, #DEDEE0 50%, transparent 50%);\\n background-size: 9px 1px;\\n background-repeat: repeat-x; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation {\\n width: 100%;\\n padding-top: 10px;\\n text-align: center; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation .el-button {\\n margin: 0 auto;\\n padding: 8px 17px;\\n border-radius: 2px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation .el-button.el-button--primary.is-disabled {\\n background-color: #c4c4c4;\\n border-color: #c4c4c4; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .img-bubble {\\n width: 100%; }\\n .zjkf__chat > .chat-message .message-list .message-item .is-read {\\n margin-top: 10px;\\n font-size: 12px;\\n color: #97979a; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .send-user .nickname {\\n float: left;\\n margin-right: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .message {\\n float: left; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .message .bubble::after {\\n left: -3px;\\n border-right-width: 4px;\\n filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.16)); }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .message .img-bubble {\\n text-align: left; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .send-user .nickname {\\n float: right;\\n margin-left: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message {\\n float: right; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message .bubble {\\n background-color: #e5f1fe; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message .bubble::after {\\n right: -3px;\\n border-left-width: 4px;\\n border-left-color: #e5f1fe;\\n border-right-color: #e5f1fe;\\n filter: drop-shadow(2px 1px 2px rgba(0, 0, 0, 0.16)); }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message .img-bubble {\\n text-align: right; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .is-read,\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .send-user {\\n text-align: right; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate {\\n text-align: center;\\n height: 20px;\\n line-height: 20px;\\n box-sizing: border-box; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more .line {\\n width: 40%;\\n height: 1px;\\n margin: 0 auto;\\n background-color: #dedee0; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more i {\\n font-size: 20px;\\n color: #a3a3a3; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more .history-tip {\\n color: #b5b5b5;\\n display: block;\\n font-size: 12px;\\n margin: 0 auto;\\n margin-top: -10px;\\n background-color: #f2f2f2;\\n width: 25%;\\n cursor: pointer; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip {\\n text-align: center; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip > .time {\\n font-size: 12px;\\n color: #909399; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip > .text {\\n background: rgba(0, 0, 0, 0.4);\\n border-radius: 4px;\\n padding: 5px 15px;\\n line-height: 1;\\n color: #ffffff;\\n font-size: 12px;\\n display: inline-block;\\n letter-spacing: 1px; }\\n\\n@keyframes myrotate {\\n 0% {\\n transform: rotate(0deg); }\\n 100% {\\n transform: rotate(1turn); } }\\n\\n.zjkf__chat .chat-editor {\\n position: relative;\\n height: 220px;\\n background: #f2f2f2;\\n border-top: 1px solid #e3e3e3;\\n box-sizing: border-box;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\n .zjkf__chat .chat-editor.disabled::after {\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: rgba(244, 244, 245, 0.65); }\\n .zjkf__chat .chat-editor .__tools {\\n text-align: left;\\n height: 40px;\\n max-height: 40px;\\n position: relative;\\n overflow: hidden; }\\n .zjkf__chat .chat-editor .__tools .btn-icon {\\n display: inline-block;\\n height: 40px;\\n padding: 8px 10px;\\n box-sizing: border-box; }\\n .zjkf__chat .chat-editor .__tools .btn-icon:first-child {\\n padding-left: 20px; }\\n .zjkf__chat .chat-editor .__tools .btn-icon .zj-iconfont {\\n font-size: 25px;\\n cursor: pointer; }\\n .zjkf__chat .chat-editor .__input .el-textarea__inner {\\n background-color: #f2f2f2;\\n background-image: none;\\n border: none;\\n border-radius: 0;\\n padding: 5px 20px;\\n height: calc(220px - 90px);\\n font-family: 'Microsoft YaHei'; }\\n .zjkf__chat .chat-editor .__input .__send {\\n height: 50px;\\n line-height: 50px;\\n padding-right: 20px;\\n text-align: right;\\n font-size: 12px;\\n color: #999999; }\\n .zjkf__chat .chat-editor .__input .__send .el-button {\\n padding: 9px 23px;\\n font-size: 12px;\\n border-radius: 2px;\\n margin-left: 10px; }\\n .zjkf__chat .chat-editor .__input .__send .remain-text {\\n margin-left: 20px; }\\n .zjkf__chat .chat-editor .emoj-poppver {\\n position: absolute;\\n top: -230px;\\n left: 10px;\\n height: 200px;\\n width: 70%;\\n overflow: hidden scroll;\\n background-color: #ffffff;\\n padding: 10px 5px;\\n border-radius: 5px;\\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.16);\\n animation: emjoSlideUp 0.2s ease-in;\\n -webkit-animation: emjoSlideUp 0.2s ease-in;\\n -moz-animation: emjoSlideUp 0.2s ease-in; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row {\\n text-align: center;\\n margin-bottom: 5px; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row .el-col {\\n padding: 0 5px; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row .emoji-icon {\\n font-size: 24px;\\n box-sizing: border-box;\\n overflow: hidden;\\n min-height: 37px;\\n border-radius: 4px; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row .emoji-icon:hover {\\n font-size: 26px;\\n transition: all 0.2s ease;\\n background-color: #efefef;\\n cursor: pointer; }\\n\\n@keyframes emjoSlideUp {\\n from {\\n transform: translateY(20px);\\n opacity: 0; }\\n to {\\n transform: translateY(0);\\n opacity: 1; } }\\n\\n#YSF-BTN-HOLDER {\\n display: none; }\\n\\n/**\\r\\n * @desc: 公用样式\\r\\n */\\n.zj-small-btn {\\n padding: 8px 22px !important;\\n font-size: 12px !important; }\\n\\n.zjkf__wrapper {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n box-sizing: border-box;\\n zoom: 1;\\n z-index: 2001; }\\n .zjkf__wrapper.small-win {\\n background: transparent; }\\n .zjkf__wrapper.small-win .zjkf__chat {\\n box-shadow: none; }\\n .zjkf__wrapper.shadow {\\n box-shadow: 0 2px 8px 1px rgba(23, 23, 26, 0.2); }\\n .zjkf__wrapper.fullscreen {\\n left: 0 !important;\\n top: 0 !important; }\\n\\n.zjkf__chat {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n overflow: hidden;\\n transition: all 0.3s ease; }\\n\\n.zjkf__chat .zjkf__chat-header {\\n background-color: #f2f2f2;\\n height: 50px;\\n line-height: 50px;\\n padding: 0 10px 0 20px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\n .zjkf__chat .zjkf__chat-header > .__title {\\n font-size: 16px;\\n letter-spacing: 1px;\\n font-family: 'Microsoft YaHei', '微软雅黑', '宋体', helvetica, 'Hiragino Sans GB', MicrosoftYaHei;\\n color: #333333; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/style/zj-client.scss?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--9-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--9-oneOf-3-2!./node_modules/_sass-loader@8.0.2@sass-loader/dist/cjs.js??ref--9-oneOf-3-3");
|
|
3234
3306
|
|
|
3235
3307
|
/***/ }),
|
|
3236
3308
|
|
|
3237
|
-
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./
|
|
3238
|
-
|
|
3239
|
-
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2!./
|
|
3240
|
-
|
|
3309
|
+
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./src/lib/assets/iconfont/iconfont.css":
|
|
3310
|
+
/*!**************************************************************************************************************************************************************************************************!*\
|
|
3311
|
+
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2!./src/lib/assets/iconfont/iconfont.css ***!
|
|
3312
|
+
\**************************************************************************************************************************************************************************************************/
|
|
3241
3313
|
/*! no static exports found */
|
|
3242
3314
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3243
3315
|
|
|
3244
|
-
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*!
|
|
3316
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/getUrl.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ./iconfont.woff2?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.woff2?t=1656657853347\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ./iconfont.woff?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.woff?t=1656657853347\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = __webpack_require__(/*! ./iconfont.ttf?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.ttf?t=1656657853347\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\nexports.push([module.i, \"@font-face {\\r\\n font-family: \\\"zj-iconfont\\\"; /* Project id 2613773 */\\r\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('woff2'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format('woff'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('truetype');\\r\\n}\\r\\n\\r\\n.zj-iconfont {\\r\\n font-family: \\\"zj-iconfont\\\" !important;\\r\\n font-size: 16px;\\r\\n font-style: normal;\\r\\n -webkit-font-smoothing: antialiased;\\r\\n -moz-osx-font-smoothing: grayscale;\\r\\n}\\r\\n\\r\\n.kf-biaoqingemoji:before {\\r\\n content: \\\"\\\\e7bb\\\";\\r\\n}\\r\\n\\r\\n.kf-a-wenjianjiawenjian1:before {\\r\\n content: \\\"\\\\e727\\\";\\r\\n}\\r\\n\\r\\n.kf-window-close:before {\\r\\n content: \\\"\\\\e9bb\\\";\\r\\n}\\r\\n\\r\\n.kf-window-normal:before {\\r\\n content: \\\"\\\\e9bc\\\";\\r\\n}\\r\\n\\r\\n.kf-window-min:before {\\r\\n content: \\\"\\\\e9bd\\\";\\r\\n}\\r\\n\\r\\n.kf-window-max:before {\\r\\n content: \\\"\\\\e9be\\\";\\r\\n}\\r\\n\\r\\n.kf-guanbi:before {\\r\\n content: \\\"\\\\e609\\\";\\r\\n}\\r\\n\\r\\n.kf-nishizhenxuanzhuan:before {\\r\\n content: \\\"\\\\e65a\\\";\\r\\n}\\r\\n\\r\\n.kf-shunshizhenxuanzhuan:before {\\r\\n content: \\\"\\\\e65c\\\";\\r\\n}\\r\\n\\r\\n.kf-unfold:before {\\r\\n content: \\\"\\\\e649\\\";\\r\\n}\\r\\n\\r\\n.kf-group-2:before {\\r\\n content: \\\"\\\\e6a0\\\";\\r\\n}\\r\\n\\r\\n.kf-group-1:before {\\r\\n content: \\\"\\\\e6a1\\\";\\r\\n}\\r\\n\\r\\n.kf-ziyuan:before {\\r\\n content: \\\"\\\\e61f\\\";\\r\\n}\\r\\n\\r\\n.kf-loading:before {\\r\\n content: \\\"\\\\e6fd\\\";\\r\\n}\\r\\n\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.css?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2");
|
|
3245
3317
|
|
|
3246
3318
|
/***/ }),
|
|
3247
3319
|
|
|
3248
|
-
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/
|
|
3249
|
-
|
|
3250
|
-
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--
|
|
3251
|
-
|
|
3320
|
+
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css":
|
|
3321
|
+
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
3322
|
+
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css ***!
|
|
3323
|
+
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
3252
3324
|
/*! no static exports found */
|
|
3253
3325
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3254
3326
|
|
|
3255
|
-
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.zj-style {\\n position: relative;\\n overflow: hidden; }\\n\\n.zjkf__root.zjkf-body {\\n font-family: 'Microsoft YaHei', '微软雅黑', '宋体', helvetica, 'Hiragino Sans GB', MicrosoftYaHei;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n margin: 0 !important;\\n font-size: 14px;\\n background: #ffffff; }\\n .zjkf__root.zjkf-body .clearfix::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden; }\\n .zjkf__root.zjkf-body .clearfix {\\n zoom: 1; }\\n .zjkf__root.zjkf-body i.zj-iconfont {\\n speak: none;\\n font-style: normal;\\n font-weight: 400;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n vertical-align: baseline;\\n display: inline-block;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-button {\\n display: none !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important; }\\n\\n.zjkf-scrollbar ::-webkit-scrollbar-track-piece {\\n background: transparent !important; }\\n\\n.zjkf-common-e-ui .el-button.el-button--primary {\\n background: #0074fd !important;\\n border-color: #0074fd !important; }\\n\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important; }\\n\\n.zjkf-common-e-ui .el-button--primary.is-disabled,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important; }\\n\\n/*\\r\\n * @Desc: \\r\\n * @Auth: Hrc\\r\\n * @Date: 2021-06-16 10:12:53\\r\\n */\\n.zjkf__chat > .chat-message {\\n position: relative;\\n height: calc(100% - 50px - 220px);\\n overflow-y: auto;\\n overflow-x: hidden;\\n background-color: #f2f2f2;\\n box-sizing: border-box;\\n scrollbar-width: thin;\\n scrollbar-color: #dddfe0 #f2f2f2; }\\n .zjkf__chat > .chat-message .unConnect {\\n padding: 20px;\\n margin: 20px 0;\\n text-align: center; }\\n .zjkf__chat > .chat-message .unConnect .loading {\\n display: inline-block;\\n padding: 5px 30px;\\n border-radius: 20px;\\n background-color: #5facff;\\n color: #ffffff;\\n font-size: 12px; }\\n .zjkf__chat > .chat-message .unConnect .errorConnect {\\n display: inline-block;\\n padding: 5px 30px;\\n border-radius: 20px;\\n background-color: #e27171;\\n color: #ffffff;\\n font-size: 12px; }\\n .zjkf__chat > .chat-message .unConnect i {\\n font-size: 14px;\\n margin-right: 5px;\\n transition: font-size 3s linear 1s; }\\n .zjkf__chat > .chat-message i.animation {\\n animation: myrotate 2s linear infinite;\\n -webkit-animation: myrotate 2s linear infinite; }\\n .zjkf__chat > .chat-message .message-list .message-item {\\n width: 100%;\\n padding: 15px 0;\\n box-sizing: border-box;\\n text-align: left;\\n padding-bottom: 0px; }\\n .zjkf__chat > .chat-message .message-list .message-item .sendTime {\\n text-align: center;\\n padding: 10px;\\n margin: 0;\\n font-size: 12px;\\n color: #8e8e8e; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .avatar {\\n width: 38px;\\n height: 38px;\\n line-height: 35px;\\n border-radius: 50%;\\n border: none;\\n overflow: hidden;\\n text-align: center; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .avatar img {\\n max-width: 100%;\\n max-height: 100%;\\n vertical-align: middle; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .send-user {\\n line-height: 1;\\n font-size: 12px;\\n color: #909399;\\n margin-bottom: 10px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message {\\n min-width: 50px;\\n max-width: 65%; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble-box {\\n padding: 5px;\\n width: 100%;\\n box-sizing: border-box; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble {\\n display: inline-block;\\n position: relative;\\n padding: 10px 15px;\\n border-radius: 4px;\\n background-color: #ffffff;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\\n width: inherit;\\n box-sizing: border-box; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble::after {\\n content: '';\\n position: absolute;\\n top: 8px;\\n width: 0;\\n height: 0;\\n border: 0 solid #ffffff;\\n border-top: 5px solid transparent;\\n border-bottom: 5px solid transparent; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.large-txt p {\\n font-size: 18px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble p {\\n font-size: 14px;\\n color: #666666;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n width: inherit; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue {\\n width: 90%;\\n padding: 20px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue::after {\\n content: '';\\n position: absolute;\\n left: -3px;\\n border-right-width: 4px;\\n filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.16)); }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .tit h3 {\\n font-size: 20px;\\n font-weight: bold;\\n color: #333333;\\n margin-bottom: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .tit p {\\n font-size: 12px;\\n color: #333333;\\n margin-bottom: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body {\\n text-align: center;\\n padding: 15px;\\n padding-bottom: 0; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body p {\\n font-size: 12px;\\n color: #999999; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body .num {\\n margin-top: 15px;\\n font-size: 60px;\\n color: #0074fd; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .top-line {\\n border-top: 1px dashed #dedee0; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory {\\n padding: 10px 10px 2px;\\n min-width: 368px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-tit {\\n margin-bottom: 10px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-tit p {\\n font-size: 14px;\\n color: #969696; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item {\\n padding: 10px 5px;\\n font-size: 14px;\\n color: #333333;\\n flex-basis: calc(50% - 10px);\\n cursor: pointer;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item:hover:not(.disabled) {\\n color: #0074FD; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item.disabled {\\n color: #bdbdbd;\\n cursor: no-drop; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-divider:not(:last-child)::after {\\n content: \\\"\\\";\\n width: 94%;\\n height: 1px;\\n position: absolute;\\n left: 3%;\\n margin-top: 29px;\\n background-image: linear-gradient(to right, #DEDEE0 0%, #DEDEE0 50%, transparent 50%);\\n background-size: 9px 1px;\\n background-repeat: repeat-x; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation {\\n width: 100%;\\n padding-top: 10px;\\n text-align: center; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation .el-button {\\n margin: 0 auto;\\n padding: 8px 17px;\\n border-radius: 2px; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation .el-button.el-button--primary.is-disabled {\\n background-color: #c4c4c4;\\n border-color: #c4c4c4; }\\n .zjkf__chat > .chat-message .message-list .message-item .info .message .img-bubble {\\n width: 100%; }\\n .zjkf__chat > .chat-message .message-list .message-item .is-read {\\n margin-top: 10px;\\n font-size: 12px;\\n color: #97979a; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .send-user .nickname {\\n float: left;\\n margin-right: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .message {\\n float: left; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .message .bubble::after {\\n left: -3px;\\n border-right-width: 4px;\\n filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.16)); }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-left .message .img-bubble {\\n text-align: left; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .send-user .nickname {\\n float: right;\\n margin-left: 15px; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message {\\n float: right; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message .bubble {\\n background-color: #e5f1fe; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message .bubble::after {\\n right: -3px;\\n border-left-width: 4px;\\n border-left-color: #e5f1fe;\\n border-right-color: #e5f1fe;\\n filter: drop-shadow(2px 1px 2px rgba(0, 0, 0, 0.16)); }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .message .img-bubble {\\n text-align: right; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .is-read,\\n .zjkf__chat > .chat-message .message-list .message-item.msg-right .send-user {\\n text-align: right; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate {\\n text-align: center;\\n height: 20px;\\n line-height: 20px;\\n box-sizing: border-box; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more .line {\\n width: 40%;\\n height: 1px;\\n margin: 0 auto;\\n background-color: #dedee0; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more i {\\n font-size: 20px;\\n color: #a3a3a3; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more .history-tip {\\n color: #b5b5b5;\\n display: block;\\n font-size: 12px;\\n margin: 0 auto;\\n margin-top: -10px;\\n background-color: #f2f2f2;\\n width: 25%;\\n cursor: pointer; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip {\\n text-align: center; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip > .time {\\n font-size: 12px;\\n color: #909399; }\\n .zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip > .text {\\n background: rgba(0, 0, 0, 0.4);\\n border-radius: 4px;\\n padding: 5px 15px;\\n line-height: 1;\\n color: #ffffff;\\n font-size: 12px;\\n display: inline-block;\\n letter-spacing: 1px; }\\n\\n@keyframes myrotate {\\n 0% {\\n transform: rotate(0deg); }\\n 100% {\\n transform: rotate(1turn); } }\\n\\n.zjkf__chat .chat-editor {\\n position: relative;\\n height: 220px;\\n background: #f2f2f2;\\n border-top: 1px solid #e3e3e3;\\n box-sizing: border-box;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\n .zjkf__chat .chat-editor.disabled::after {\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: rgba(244, 244, 245, 0.65); }\\n .zjkf__chat .chat-editor .__tools {\\n text-align: left;\\n height: 40px;\\n max-height: 40px;\\n position: relative;\\n overflow: hidden; }\\n .zjkf__chat .chat-editor .__tools .btn-icon {\\n display: inline-block;\\n height: 40px;\\n padding: 8px 10px;\\n box-sizing: border-box; }\\n .zjkf__chat .chat-editor .__tools .btn-icon:first-child {\\n padding-left: 20px; }\\n .zjkf__chat .chat-editor .__tools .btn-icon .zj-iconfont {\\n font-size: 25px;\\n cursor: pointer; }\\n .zjkf__chat .chat-editor .__input .el-textarea__inner {\\n background-color: #f2f2f2;\\n background-image: none;\\n border: none;\\n border-radius: 0;\\n padding: 5px 20px;\\n height: calc(220px - 90px);\\n font-family: 'Microsoft YaHei'; }\\n .zjkf__chat .chat-editor .__input .__send {\\n height: 50px;\\n line-height: 50px;\\n padding-right: 20px;\\n text-align: right;\\n font-size: 12px;\\n color: #999999; }\\n .zjkf__chat .chat-editor .__input .__send .el-button {\\n padding: 9px 23px;\\n font-size: 12px;\\n border-radius: 2px;\\n margin-left: 10px; }\\n .zjkf__chat .chat-editor .__input .__send .remain-text {\\n margin-left: 20px; }\\n .zjkf__chat .chat-editor .emoj-poppver {\\n position: absolute;\\n top: -230px;\\n left: 10px;\\n height: 200px;\\n width: 70%;\\n overflow: hidden scroll;\\n background-color: #ffffff;\\n padding: 10px 5px;\\n border-radius: 5px;\\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.16);\\n animation: emjoSlideUp 0.2s ease-in;\\n -webkit-animation: emjoSlideUp 0.2s ease-in;\\n -moz-animation: emjoSlideUp 0.2s ease-in; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row {\\n text-align: center;\\n margin-bottom: 5px; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row .el-col {\\n padding: 0 5px; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row .emoji-icon {\\n font-size: 24px;\\n box-sizing: border-box;\\n overflow: hidden;\\n min-height: 37px;\\n border-radius: 4px; }\\n .zjkf__chat .chat-editor .emoj-poppver .emoj-row .emoji-icon:hover {\\n font-size: 26px;\\n transition: all 0.2s ease;\\n background-color: #efefef;\\n cursor: pointer; }\\n\\n@keyframes emjoSlideUp {\\n from {\\n transform: translateY(20px);\\n opacity: 0; }\\n to {\\n transform: translateY(0);\\n opacity: 1; } }\\n\\n#YSF-BTN-HOLDER {\\n display: none; }\\n\\n/**\\r\\n * @desc: 公用样式\\r\\n */\\n.zj-small-btn {\\n padding: 8px 22px !important;\\n font-size: 12px !important; }\\n\\n.zjkf__wrapper {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n box-sizing: border-box;\\n zoom: 1;\\n z-index: 2001; }\\n .zjkf__wrapper.small-win {\\n background: transparent; }\\n .zjkf__wrapper.small-win .zjkf__chat {\\n box-shadow: none; }\\n .zjkf__wrapper.shadow {\\n box-shadow: 0 2px 8px 1px rgba(23, 23, 26, 0.2); }\\n .zjkf__wrapper.fullscreen {\\n left: 0 !important;\\n top: 0 !important; }\\n\\n.zjkf__chat {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n overflow: hidden;\\n transition: all 0.3s ease; }\\n\\n.zjkf__chat .zjkf__chat-header {\\n background-color: #f2f2f2;\\n height: 50px;\\n line-height: 50px;\\n padding: 0 10px 0 20px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\n .zjkf__chat .zjkf__chat-header > .__title {\\n font-size: 16px;\\n letter-spacing: 1px;\\n font-family: 'Microsoft YaHei', '微软雅黑', '宋体', helvetica, 'Hiragino Sans GB', MicrosoftYaHei;\\n color: #333333; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/style/zj-client.scss?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--9-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--9-oneOf-3-2!./node_modules/_sass-loader@8.0.2@sass-loader/dist/cjs.js??ref--9-oneOf-3-3");
|
|
3327
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n/* 外层大容器,本地渐变背景铺满全屏,内部全部居中 */\\n.agent-selector[data-v-d478ade8] {\\n width: 100%;\\n min-height: 100%;\\n padding: 80px 20px;\\n /* 本地背景图铺满 */\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/background.png) no-repeat;\\n background-size: 100% 100%;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n}\\n\\n/* 内容容器,限制最大宽度,自适应居中,无固定宽 */\\n.agent-wrap[data-v-d478ade8] {\\n width: 100%;\\n max-width: 920px;\\n}\\n\\n/* 标题样式,居中、字号、间距匹配效果图 */\\n.agent-title[data-v-d478ade8] {\\n text-align: center;\\n margin-bottom: 116px;\\n}\\n.agent-title h2[data-v-d478ade8] {\\n font-size: 26px;\\n color: #222;\\n font-weight: 500;\\n margin: 0;\\n line-height: 40px;\\n}\\n\\n/* 卡片网格:一行2等分,行列间距对齐效果图 */\\n.agent-list[data-v-d478ade8] {\\n display: grid;\\n grid-template-columns: repeat(2, 1fr);\\n gap: 76px 30px;\\n width: 100%;\\n}\\n\\n/* 卡片核心样式:圆角、内边距、相对定位,无固定宽度 */\\n.agent-item[data-v-d478ade8] {\\n position: relative;\\n border-radius: 11px;\\n height: 90px;\\n /* 左侧留出头像位置,文字靠右内缩 */\\n padding: 22px 20px 20px 110px;\\n box-sizing: border-box;\\n cursor: pointer;\\n transition: all 0.25s ease;\\n /* 轻微柔和阴影,和效果图一致 */\\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);\\n}\\n.agent-item[data-v-d478ade8]:hover {\\n transform: translateY(-4px);\\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);\\n}\\n\\n/* 上浮头像容器 */\\n.agent-avatar-wrapper[data-v-d478ade8] {\\n position: absolute;\\n left: 3px;\\n top: -36px;\\n}\\n\\n/* 头像本体通用样式 */\\n.agent-list-avatar[data-v-d478ade8] {\\n background-repeat: no-repeat;\\n background-position: center;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: #fff;\\n font-size: 22px;\\n font-weight: 600;\\n border-radius: 8px;\\n /* 效果图统一卡通头像尺寸 */\\n width: 92px;\\n height: 106px;\\n}\\n/* 有头像图片完整展示,不裁切 */\\n.agent-list-avatar.has-agent-img[data-v-d478ade8] {\\n background-size: cover;\\n}\\n/* 无头像文字首字母:小尺寸,偏移适配 */\\n.agent-list-avatar[data-v-d478ade8]:not(.has-agent-img) {\\n width: 76px;\\n height: 108px;\\n transform: translateX(9px);\\n}\\n\\n/* 文字区域垂直排列 */\\n.agent-info-content[data-v-d478ade8] {\\n display: flex;\\n flex-direction: column;\\n max-width: 300px;\\n flex-shrink: 0; /* 如果是flex布局,禁止自身被压缩 */\\n}\\n/* 助手名称 */\\n.name[data-v-d478ade8] {\\n font-size: 16px;\\n font-weight: 500;\\n color: #111;\\n line-height: 22px;\\n margin-bottom: 6px;\\n}\\n/* 描述文本 */\\n.desc[data-v-d478ade8] {\\n font-size: 14px;\\n color: #666;\\n line-height: 20px;\\n /* 超长描述单行省略 */\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n\\n/* H5 顶部栏 */\\n.mobile-agent-select-header[data-v-d478ade8] {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n padding: 10px 0;\\n min-height: 44px;\\n}\\n.mobile-agent-select-header .mobile-agent-back[data-v-d478ade8] {\\n position: absolute;\\n left: 4px;\\n top: 50%;\\n transform: translateY(-50%);\\n background: transparent;\\n border: none;\\n width: 44px;\\n height: 44px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n padding: 0;\\n color: #333;\\n}\\n.mobile-agent-select-header .mobile-agent-back i[data-v-d478ade8] {\\n font-size: 22px;\\n font-weight: 600;\\n}\\n.mobile-agent-select-header .mobile-agent-title-text[data-v-d478ade8] {\\n font-size: 17px;\\n font-weight: 500;\\n color: #000;\\n}\\n\\n/* 移动端适配 */\\n@media screen and (max-width: 768px) {\\n.agent-selector[data-v-d478ade8] {\\n padding: 0 !important;\\n}\\n.agent-selector .agent-wrap[data-v-d478ade8] {\\n padding: 40px 16px 0;\\n box-sizing: border-box;\\n}\\n.agent-selector .agent-title[data-v-d478ade8] {\\n display: none;\\n}\\n.agent-list[data-v-d478ade8] {\\n grid-template-columns: 1fr;\\n gap: 52px 0;\\n}\\n.agent-item[data-v-d478ade8] {\\n height: auto;\\n min-height: 84px;\\n padding: 18px 16px 18px 96px;\\n}\\n.agent-avatar-wrapper[data-v-d478ade8] {\\n left: 8px;\\n top: -18px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-d478ade8] {\\n width: 74px;\\n height: 88px;\\n}\\n.agent-list-avatar[data-v-d478ade8]:not(.has-agent-img) {\\n width: 62px;\\n height: 78px;\\n}\\n.desc[data-v-d478ade8] {\\n white-space: normal;\\n display: -webkit-box;\\n -webkit-line-clamp: 2;\\n -webkit-box-orient: vertical;\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
3256
3328
|
|
|
3257
3329
|
/***/ }),
|
|
3258
3330
|
|
|
3259
|
-
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./src/lib/
|
|
3260
|
-
|
|
3261
|
-
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-
|
|
3262
|
-
|
|
3331
|
+
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css":
|
|
3332
|
+
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
3333
|
+
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css ***!
|
|
3334
|
+
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
3263
3335
|
/*! no static exports found */
|
|
3264
3336
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3265
3337
|
|
|
3266
|
-
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/getUrl.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ./iconfont.woff2?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.woff2?t=1656657853347\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ./iconfont.woff?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.woff?t=1656657853347\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = __webpack_require__(/*! ./iconfont.ttf?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.ttf?t=1656657853347\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\nexports.push([module.i, \"@font-face {\\r\\n font-family: \\\"zj-iconfont\\\"; /* Project id 2613773 */\\r\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('woff2'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format('woff'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('truetype');\\r\\n}\\r\\n\\r\\n.zj-iconfont {\\r\\n font-family: \\\"zj-iconfont\\\" !important;\\r\\n font-size: 16px;\\r\\n font-style: normal;\\r\\n -webkit-font-smoothing: antialiased;\\r\\n -moz-osx-font-smoothing: grayscale;\\r\\n}\\r\\n\\r\\n.kf-biaoqingemoji:before {\\r\\n content: \\\"\\\\e7bb\\\";\\r\\n}\\r\\n\\r\\n.kf-a-wenjianjiawenjian1:before {\\r\\n content: \\\"\\\\e727\\\";\\r\\n}\\r\\n\\r\\n.kf-window-close:before {\\r\\n content: \\\"\\\\e9bb\\\";\\r\\n}\\r\\n\\r\\n.kf-window-normal:before {\\r\\n content: \\\"\\\\e9bc\\\";\\r\\n}\\r\\n\\r\\n.kf-window-min:before {\\r\\n content: \\\"\\\\e9bd\\\";\\r\\n}\\r\\n\\r\\n.kf-window-max:before {\\r\\n content: \\\"\\\\e9be\\\";\\r\\n}\\r\\n\\r\\n.kf-guanbi:before {\\r\\n content: \\\"\\\\e609\\\";\\r\\n}\\r\\n\\r\\n.kf-nishizhenxuanzhuan:before {\\r\\n content: \\\"\\\\e65a\\\";\\r\\n}\\r\\n\\r\\n.kf-shunshizhenxuanzhuan:before {\\r\\n content: \\\"\\\\e65c\\\";\\r\\n}\\r\\n\\r\\n.kf-unfold:before {\\r\\n content: \\\"\\\\e649\\\";\\r\\n}\\r\\n\\r\\n.kf-group-2:before {\\r\\n content: \\\"\\\\e6a0\\\";\\r\\n}\\r\\n\\r\\n.kf-group-1:before {\\r\\n content: \\\"\\\\e6a1\\\";\\r\\n}\\r\\n\\r\\n.kf-ziyuan:before {\\r\\n content: \\\"\\\\e61f\\\";\\r\\n}\\r\\n\\r\\n.kf-loading:before {\\r\\n content: \\\"\\\\e6fd\\\";\\r\\n}\\r\\n\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.css?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2");
|
|
3338
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.chat-main[data-v-9693c11e] {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n min-width: 0;\\n min-height: 0;\\n}\\n\\n/* ── Header ── */\\n.chat-header[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 20px;\\n background: #fff;\\n border-bottom: 1px solid #e8e8e8;\\n flex-shrink: 0;\\n z-index: 10;\\n}\\n.header-left[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 10px;\\n min-width: 0;\\n flex: 1;\\n}\\n.header-actions[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n flex-shrink: 0;\\n}\\n.agent-info[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 10px;\\n}\\n.agent-icon[data-v-9693c11e] {\\n width: 36px;\\n height: 36px;\\n border-radius: 8px;\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\n color: #fff;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 16px;\\n font-weight: 600;\\n flex-shrink: 0;\\n}\\n.agent-info:nth-child(4n + 2) .agent-icon-avatar[data-v-9693c11e] {\\n background: linear-gradient(135deg, #52c41a, #73d13d);\\n}\\n.agent-info:nth-child(4n + 3) .agent-icon-avatar[data-v-9693c11e] {\\n background: linear-gradient(135deg, #fa8c16, #ffa940);\\n}\\n.agent-info:nth-child(4n + 4) .agent-icon-avatar[data-v-9693c11e] {\\n background: linear-gradient(135deg, #722ed1, #b37feb);\\n}\\n.agent-text[data-v-9693c11e] {\\n min-width: 0;\\n}\\n.agent-name[data-v-9693c11e] {\\n font-size: 15px;\\n font-weight: 600;\\n color: #333;\\n line-height: 1.3;\\n}\\n.agent-desc[data-v-9693c11e] {\\n font-size: 12px;\\n color: #999;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: min(300px, 45vw);\\n}\\n.header-right[data-v-9693c11e] {\\n flex-shrink: 0;\\n}\\n.manage-link[data-v-9693c11e] {\\n font-size: 13px;\\n color: #1677ff;\\n text-decoration: none;\\n}\\n.manage-link[data-v-9693c11e]:hover {\\n color: #4096ff;\\n}\\n\\n/* ── Chat Body ── */\\n.chat-body[data-v-9693c11e] {\\n flex: 1;\\n overflow-y: auto;\\n padding: 16px clamp(12px, 3vw, 40px);\\n scroll-behavior: auto;\\n position: relative;\\n -webkit-overflow-scrolling: touch;\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/agentbackground.png) 100% no-repeat;\\n background-size: 100% 100%;\\n background-position: center;\\n background-size: cover;\\n min-height: 0;\\n}\\n.welcome[data-v-9693c11e] {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n height: 100%;\\n color: #bbb;\\n margin: 0 -20px;\\n}\\n.welcome-icon[data-v-9693c11e] {\\n margin-bottom: 12px;\\n opacity: 0.7;\\n}\\n.welcome-text[data-v-9693c11e] {\\n font-size: 15px;\\n}\\n.welcome-default .welcome-icon[data-v-9693c11e] {\\n margin-bottom: 16px;\\n}\\n.welcome-title[data-v-9693c11e] {\\n font-size: 20px;\\n font-weight: 600;\\n color: #333;\\n margin-bottom: 8px;\\n}\\n\\n/* ── Message Row ── */\\n.msg-row[data-v-9693c11e] {\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n padding: 20px 16px;\\n box-sizing: border-box;\\n align-items: center;\\n}\\n.msg-main[data-v-9693c11e] {\\n display: flex;\\n align-items: flex-start;\\n gap: 10px;\\n max-width: 85%;\\n width: min(100%, 860px) !important;\\n max-width: 860px;\\n}\\n.msg-row.user .msg-main[data-v-9693c11e] {\\n flex-direction: row-reverse;\\n}\\n.msg-row.assistant[data-v-9693c11e] {\\n justify-content: center;\\n}\\n.load-more[data-v-9693c11e] {\\n text-align: center;\\n font-size: 12px;\\n color: #999;\\n padding: 4px 0;\\n}\\n.msg-time[data-v-9693c11e] {\\n font-size: 11px;\\n color: #bbb;\\n margin-top: 2px;\\n padding-left: 4px;\\n}\\n.msg-row.user .msg-time[data-v-9693c11e] {\\n text-align: right;\\n padding-right: 4px;\\n}\\n.msg-actions[data-v-9693c11e] {\\n display: flex;\\n gap: 4px;\\n margin-top: 4px;\\n padding-left: 4px;\\n}\\n.action-btn[data-v-9693c11e] {\\n font-size: 12px;\\n color: #999;\\n cursor: pointer;\\n padding: 2px 6px 2px 0;\\n border-radius: 4px;\\n transition: all 0.2s;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.action-btn[data-v-9693c11e]:hover {\\n color: #1677ff;\\n background: #f0f5ff;\\n}\\n\\n/* ── STT 语音转文字状态 ── */\\n.stt-status-block[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n font-size: 14px;\\n line-height: 1.5;\\n}\\n.stt-bubble-wrap[data-v-9693c11e] {\\n position: relative;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n line-height: 1.4;\\n}\\n.stt-outside-icon[data-v-9693c11e] {\\n position: absolute;\\n right: 100%;\\n top: 50%;\\n margin-top: -9px;\\n margin-right: 20px;\\n}\\n.stt-spinner[data-v-9693c11e] {\\n display: inline-block;\\n width: 18px;\\n height: 18px;\\n border: 2.5px solid #d9d9d9;\\n border-top-color: #1677ff;\\n border-right-color: #4096ff;\\n border-radius: 50%;\\n animation: stt-spin-9693c11e 0.6s linear infinite;\\n flex-shrink: 0;\\n box-sizing: border-box;\\n}\\n@keyframes stt-spin-9693c11e {\\nto { transform: rotate(360deg);\\n}\\n}\\n.stt-error-icon[data-v-9693c11e] {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 18px;\\n height: 18px;\\n background: #ff4d4f;\\n color: #fff;\\n font-size: 12px;\\n font-weight: 700;\\n border-radius: 50%;\\n line-height: 1;\\n flex-shrink: 0;\\n}\\n.stt-bubble-text[data-v-9693c11e] {\\n font-size: 15px;\\n line-height: 1.4;\\n color: #fff;\\n white-space: nowrap;\\n margin: 6px 0;\\n}\\n.msg-avatar[data-v-9693c11e] {\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 13px;\\n font-weight: 700;\\n flex-shrink: 0;\\n color: #fff;\\n}\\n.msg-avatar.user[data-v-9693c11e] {\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\n color: #fff;\\n}\\n.msg-avatar.assistant[data-v-9693c11e] {\\n background: linear-gradient(135deg, #52c41a, #73d13d);\\n color: #fff;\\n}\\n.msg-agent-label[data-v-9693c11e] {\\n font-size: 12px;\\n color: #999;\\n margin-bottom: 2px;\\n}\\n.msg-content[data-v-9693c11e] {\\n width: 100% !important;\\n max-width: 100%;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\\n/* ── Bubble ── */\\n.bubble[data-v-9693c11e] {\\n max-width: 100%;\\n min-width: 30px;\\n width: -moz-fit-content;\\n width: fit-content;\\n padding: 8px 14px;\\n border-radius: 12px;\\n line-height: 1.4;\\n font-size: 15px;\\n word-break: break-word;\\n white-space: normal;\\n text-align: left;\\n overflow-wrap: anywhere;\\n}\\n.bubble[data-v-9693c11e]:has(.typing) {\\n padding: 16px 20px;\\n}\\n.bubble.user[data-v-9693c11e] {\\n background: #1677ff;\\n color: #fff;\\n border-bottom-right-radius: 4px;\\n box-shadow: 0 2px 8px rgba(22, 119, 255, 0.15);\\n float: none;\\n margin-left: auto;\\n max-width: min(100%, 520px);\\n}\\n.bubble.assistant[data-v-9693c11e] {\\n background: #fff;\\n color: #333;\\n border-bottom-left-radius: 4px;\\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\\n text-align: left;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n.bubble[data-v-9693c11e] table {\\n border-collapse: collapse;\\n width: 100%;\\n margin: 6px 0;\\n font-size: 14px;\\n}\\n.bubble[data-v-9693c11e] th,\\n.bubble[data-v-9693c11e] td {\\n border: 1px solid #e8e8e8;\\n padding: 5px 8px;\\n text-align: left;\\n}\\n.bubble[data-v-9693c11e] th {\\n background: #fafafa;\\n font-weight: 600;\\n}\\n.bubble[data-v-9693c11e] code {\\n padding: 1px 5px;\\n border-radius: 3px;\\n font-size: 14px;\\n}\\n.bubble[data-v-9693c11e] pre {\\n background: #f6f8fa;\\n color: #333;\\n padding: 12px;\\n border-radius: 6px;\\n overflow-x: auto;\\n font-size: 13px;\\n border: 1px solid #e8e8e8;\\n margin: 8px 0;\\n line-height: 1.5;\\n white-space: pre;\\n}\\n.bubble[data-v-9693c11e] ul,\\n.bubble[data-v-9693c11e] ol {\\n padding-left: 20px;\\n margin: 4px 0;\\n}\\n.bubble[data-v-9693c11e] li {\\n margin: 2px 0;\\n}\\n.bubble[data-v-9693c11e] p {\\n margin: 6px 0;\\n}\\n\\n/* ── Thinking ── */\\n.thinking-details[data-v-9693c11e] {\\n margin-bottom: 10px;\\n border: 1px solid #e8e8e8;\\n border-radius: 8px;\\n overflow: hidden;\\n background: #fafafa;\\n}\\n.thinking-summary[data-v-9693c11e] {\\n font-size: 12px;\\n color: #888;\\n cursor: pointer;\\n padding: 6px 10px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.thinking-summary[data-v-9693c11e]:hover {\\n color: #1677ff;\\n}\\n.thinking-body[data-v-9693c11e] {\\n font-size: 14px;\\n color: #666;\\n padding: 8px 12px;\\n line-height: 1.6;\\n border-top: 1px solid #f0f0f0;\\n text-align: left;\\n white-space: pre-wrap;\\n word-break: break-word;\\n overflow-wrap: break-word;\\n overflow-wrap: anywhere;\\n}\\n.final-content[data-v-9693c11e] {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n overflow-wrap: anywhere;\\n}\\n.thinking-body[data-v-9693c11e] p {\\n margin: 4px 0;\\n}\\n\\n/* ── Typing ── */\\n.typing[data-v-9693c11e] {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n gap: 8px;\\n min-height: 24px;\\n justify-content: flex-start;\\n padding: 4px 0;\\n}\\n.typing .phrase[data-v-9693c11e] {\\n font-size: 14px;\\n color: #888;\\n white-space: nowrap;\\n animation: phraseFade-9693c11e 0.5s ease;\\n letter-spacing: 0.5px;\\n}\\n.typing .dots[data-v-9693c11e] {\\n display: flex;\\n gap: 5px;\\n align-items: center;\\n justify-content: center;\\n}\\n.typing .dots span[data-v-9693c11e] {\\n width: 8px;\\n height: 8px;\\n background: #bbb;\\n border-radius: 50%;\\n animation: dtTyping-9693c11e 1.3s infinite ease-in-out;\\n}\\n.typing .dots span[data-v-9693c11e]:nth-child(2) {\\n animation-delay: 0.16s;\\n}\\n.typing .dots span[data-v-9693c11e]:nth-child(3) {\\n animation-delay: 0.32s;\\n}\\n@keyframes phraseFade-9693c11e {\\nfrom {\\n opacity: 0.2;\\n transform: translateY(4px);\\n}\\nto {\\n opacity: 1;\\n transform: translateY(0);\\n}\\n}\\n@keyframes dtTyping-9693c11e {\\n0%,\\n 60%,\\n 100% {\\n transform: translateY(0);\\n opacity: 0.3;\\n}\\n30% {\\n transform: translateY(-5px);\\n opacity: 1;\\n}\\n}\\n\\n/* ── Wait Timer ── */\\n.typing.wait-5 .dots span[data-v-9693c11e] {\\n width: 8px;\\n height: 8px;\\n animation-duration: 1s;\\n}\\n.typing.wait-5 .phrase[data-v-9693c11e] {\\n color: #888;\\n}\\n.typing.wait-10 .dots span[data-v-9693c11e] {\\n width: 9px;\\n height: 9px;\\n animation-duration: 0.8s;\\n background: #909399;\\n}\\n.typing.wait-10 .phrase[data-v-9693c11e] {\\n color: #909399;\\n}\\n.typing.wait-10 .dots[data-v-9693c11e] {\\n animation: dtPulse-9693c11e 1s infinite ease-in-out;\\n}\\n.typing.wait-15 .dots span[data-v-9693c11e] {\\n width: 10px;\\n height: 10px;\\n animation-duration: 0.6s;\\n background: #1677ff;\\n}\\n.typing.wait-15 .phrase[data-v-9693c11e] {\\n color: #1677ff;\\n}\\n.typing.wait-15 .dots[data-v-9693c11e] {\\n animation: dtPulse-9693c11e 0.6s infinite ease-in-out;\\n}\\n@keyframes dtPulse-9693c11e {\\n0%,\\n 100% {\\n transform: scale(1);\\n}\\n50% {\\n transform: scale(1.05);\\n}\\n}\\n\\n/* ── Tool Calls ── */\\n.tool-calls[data-v-9693c11e] {\\n margin-top: 8px;\\n}\\n.tool-item[data-v-9693c11e] {\\n background: #f5f5f5;\\n border-radius: 6px;\\n padding: 6px 10px;\\n margin-bottom: 4px;\\n font-size: 12px;\\n}\\n.tool-badge[data-v-9693c11e] {\\n display: inline-block;\\n margin-bottom: 2px;\\n font-size: 11px;\\n color: #fa8c16;\\n font-weight: 500;\\n}\\n.tool-item pre[data-v-9693c11e] {\\n margin: 0;\\n white-space: pre-wrap;\\n word-break: break-all;\\n font-size: 12px;\\n color: #666;\\n max-height: 120px;\\n overflow-y: auto;\\n}\\n\\n/* ── Scroll Buttons ── */\\n.scroll-btns[data-v-9693c11e] {\\n position: sticky;\\n left: 50%;\\n transform: translateX(-50%);\\n bottom: 20px;\\n z-index: 99;\\n display: flex;\\n justify-content: center;\\n margin-top: 10px;\\n pointer-events: none;\\n}\\n.scroll-btn[data-v-9693c11e] {\\n pointer-events: auto;\\n width: 38px;\\n height: 38px;\\n border-radius: 50%;\\n background: #fff;\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n}\\n.scroll-btn i[data-v-9693c11e] {\\n font-size: 16px;\\n color: #333;\\n}\\n\\n/* ── Footer ── */\\n.chat-footer[data-v-9693c11e] {\\n flex-shrink: 0;\\n border-top: none;\\n padding: 30px 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 0 auto;\\n width: 100%;\\n}\\n.input-area[data-v-9693c11e] {\\n position: relative;\\n display: flex;\\n align-items: flex-end;\\n gap: 6px;\\n background: #fff;\\n border-radius: 24px;\\n margin: 0 24px;\\n padding: 18px 20px;\\n border: 1px solid #b3d8ff;\\n transition: border-color 0.2s;\\n flex-wrap: wrap;\\n width: min(100%, 1000px) !important;\\n box-sizing: border-box;\\n}\\n.input-area[data-v-9693c11e]:focus-within {\\n border-color: #1677ff;\\n background: #fff;\\n box-shadow: none;\\n}\\n.input-area[data-v-9693c11e]::after {\\n content: \\\"Enter 发送,Ctrl+Enter 换行\\\";\\n position: absolute;\\n right: 100px;\\n bottom: 28px;\\n font-size: 14px;\\n color: #8c8c8c;\\n pointer-events: none;\\n}\\n.scroll-bottom-wrap[data-v-9693c11e] {\\n position: absolute;\\n left: 50%;\\n transform: translateX(-50%);\\n bottom: calc(100% + 30px);\\n z-index: 99;\\n display: flex;\\n justify-content: center;\\n pointer-events: none;\\n}\\n.scroll-bottom-btn[data-v-9693c11e] {\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n background: #fff;\\n border: 1px solid #e5e7eb;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n pointer-events: auto;\\n position: relative;\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);\\n}\\n.scroll-bottom-btn svg[data-v-9693c11e] {\\n color: #4e5969;\\n}\\n.scroll-bottom-btn[data-v-9693c11e]:hover {\\n transform: scale(1.1);\\n}\\n.loading-circle[data-v-9693c11e] {\\n position: absolute;\\n inset: 3px;\\n border-radius: 50%;\\n border: 1.5px solid transparent;\\n border-top: 1.5px solid #1677ff;\\n animation: circle-spin-9693c11e 1.5s linear infinite;\\n}\\n@keyframes circle-spin-9693c11e {\\nfrom {\\n transform: rotate(0deg);\\n}\\nto {\\n transform: rotate(360deg);\\n}\\n}\\n.chat-textarea[data-v-9693c11e] {\\n flex: 1;\\n border: none;\\n outline: none;\\n background: transparent;\\n resize: none;\\n font-size: 16px;\\n line-height: 24px;\\n min-height: 38px;\\n height: 100px;\\n max-height: 100px;\\n overflow-y: auto;\\n padding: 0;\\n box-sizing: border-box;\\n font-family: inherit;\\n color: #333;\\n flex: 1 1 320px;\\n min-width: 0;\\n}\\n.chat-textarea[data-v-9693c11e]::-moz-placeholder {\\n color: #999;\\n font-size: 16px;\\n}\\n.chat-textarea[data-v-9693c11e]::placeholder {\\n color: #999;\\n font-size: 16px;\\n}\\n.send-btn[data-v-9693c11e] {\\n width: auto;\\n height: 40px;\\n padding: 0 21px;\\n border-radius: 6px;\\n border: none;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n flex-shrink: 0;\\n transition: all 0.2s;\\n background: #1677ff;\\n color: #fff;\\n font-size: 14px;\\n}\\n.send-btn svg[data-v-9693c11e] {\\n display: none;\\n}\\n.send-btn[data-v-9693c11e]::after {\\n content: \\\"发送\\\";\\n}\\n.send-btn.active[data-v-9693c11e] {\\n background: #1677ff;\\n}\\n.send-btn.active[data-v-9693c11e]:hover {\\n background: #4096ff;\\n}\\n.send-btn[data-v-9693c11e]:disabled {\\n background: #88bfff;\\n cursor: not-allowed;\\n}\\n.stop-btn[data-v-9693c11e] {\\n width: 35px;\\n height: 35px;\\n border-radius: 50%;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: #ff4d4f;\\n color: #fff;\\n flex-shrink: 0;\\n transition: all 0.2s;\\n}\\n.stop-btn[data-v-9693c11e]:hover {\\n background: #ff7875;\\n}\\n\\n/* ── Voice ── */\\n.voice-btn[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 36px;\\n height: 36px;\\n min-width: 36px;\\n border: none;\\n background: transparent;\\n border-radius: 50%;\\n color: #333;\\n cursor: pointer;\\n flex-shrink: 0;\\n transition: background 0.2s;\\n padding: 0;\\n}\\n.voice-btn[data-v-9693c11e]:active {\\n background: rgba(0,0,0,0.05);\\n}\\n.voice-btn[data-v-9693c11e]:disabled {\\n opacity: 0.4;\\n cursor: not-allowed;\\n}\\n.hold-talk-btn[data-v-9693c11e] {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 6px;\\n height: 36px;\\n min-height: 36px;\\n margin: 0 4px;\\n border-radius: 18px;\\n background: #EBEBEB;\\n border: none;\\n font-size: 14px;\\n color: #666;\\n cursor: pointer;\\n -moz-user-select: none;\\n user-select: none;\\n -webkit-user-select: none;\\n transition: background 0.15s;\\n}\\n.hold-talk-btn[data-v-9693c11e]:active {\\n background: #ddd;\\n}\\n.hold-talk-btn.recording[data-v-9693c11e] {\\n background: #e8f0fe;\\n color: #333;\\n}\\n.hold-talk-btn .hold-talk-icon[data-v-9693c11e] {\\n flex-shrink: 0;\\n}\\n\\n/* ── Voice Recording Overlay ── */\\n.voice-recording-overlay[data-v-9693c11e] {\\n position: fixed;\\n left: 0;\\n right: 0;\\n top: 0;\\n bottom: 0;\\n z-index: 1000;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(0,0,0,0.35);\\n animation: fadeIn-9693c11e 0.15s ease;\\n}\\n.voice-recording-card[data-v-9693c11e] {\\n width: 200px;\\n padding: 32px 24px 24px;\\n background: #fff;\\n border-radius: 20px;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n gap: 16px;\\n box-shadow: 0 8px 32px rgba(0,0,0,0.15);\\n}\\n.voice-recording-wave[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n height: 40px;\\n}\\n.voice-recording-wave span[data-v-9693c11e] {\\n width: 4px;\\n background: #1677ff;\\n border-radius: 2px;\\n animation: waveAnim-9693c11e 0.6s ease-in-out infinite alternate;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(1) { height: 16px; animation-delay: 0s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(2) { height: 28px; animation-delay: 0.1s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(3) { height: 40px; animation-delay: 0.2s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(4) { height: 28px; animation-delay: 0.3s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(5) { height: 16px; animation-delay: 0.4s;\\n}\\n@keyframes waveAnim-9693c11e {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n.voice-recording-duration[data-v-9693c11e] {\\n font-size: 32px;\\n font-weight: 600;\\n color: #333;\\n line-height: 1;\\n}\\n.voice-recording-duration .unit[data-v-9693c11e] {\\n font-size: 18px;\\n font-weight: 400;\\n color: #999;\\n margin-left: 2px;\\n}\\n.voice-recording-hint[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n font-size: 13px;\\n color: #999;\\n}\\n.voice-recording-hint.cancel[data-v-9693c11e] {\\n color: #ff4d4f;\\n}\\n@keyframes fadeIn-9693c11e {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\n\\n/* ── Chat Agent Avatar ── */\\n.chat-agent-avatar-wrapper div[data-v-9693c11e] {\\n width: 44px;\\n height: 44px;\\n}\\n\\n/* ── Agent List Avatar ── */\\n.agent-list-avatar[data-v-9693c11e] {\\n background-repeat: no-repeat;\\n background-position: center;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: #fff;\\n font-size: 22px;\\n font-weight: 600;\\n border-radius: 8px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-9693c11e] {\\n width: 97px;\\n height: 126px;\\n background-size: cover;\\n}\\n.agent-list-avatar[data-v-9693c11e]:not(.has-agent-img) {\\n width: 76px;\\n height: 108px;\\n transform: translateX(9px);\\n}\\n.session-avatar[data-v-9693c11e] {\\n width: 44px !important;\\n height: 44px !important;\\n border-radius: 50% !important;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 16px !important;\\n font-weight: 600;\\n color: #fff;\\n flex-shrink: 0;\\n overflow: hidden;\\n}\\n.avatar-pic[data-v-9693c11e] {\\n width: 85%;\\n height: 85%;\\n -o-object-fit: contain;\\n object-fit: contain;\\n}\\n\\n/* ── Mobile Buttons ── */\\n.mobile-menu-btn[data-v-9693c11e],\\n.mobile-back-btn[data-v-9693c11e],\\n.mobile-header-btn[data-v-9693c11e] {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 36px;\\n height: 36px;\\n border: none;\\n border-radius: 10px;\\n background: #f5f7fa;\\n color: #333;\\n cursor: pointer;\\n flex-shrink: 0;\\n}\\n.mobile-menu-btn i[data-v-9693c11e],\\n.mobile-back-btn i[data-v-9693c11e],\\n.mobile-header-btn i[data-v-9693c11e] {\\n font-size: 18px;\\n}\\n.mobile-back-btn i[data-v-9693c11e] {\\n font-size: 20px;\\n font-weight: 600;\\n}\\n/* ── 聊天空白欢迎页(匹配蓝湖移动端聊天首页) ── */\\n.chat-empty-welcome[data-v-9693c11e] {\\n width: 100%;\\n padding: 40px 20px;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: column;\\n gap: 0px;\\n max-width: 600px;\\n margin: 80px auto;\\n}\\n\\n/* 顶部渐变欢迎卡片 */\\n.welcome-card[data-v-9693c11e] {\\n position: relative;\\n background: linear-gradient(296deg, #D6EDFF 20%, #E8EBFF 80%);\\nborder-radius: 16px 16px 0px 0px;\\n padding: 24px 24px 24px 150px;\\n overflow: visible;\\n}\\n/* 左侧探出头像容器 */\\n.welcome-avatar-box[data-v-9693c11e] {\\n position: absolute;\\n left: 15px;\\n bottom: 0px;\\n width: 110px;\\n height: 137px;\\n}\\n.welcome-avatar[data-v-9693c11e] {\\n width: 100%;\\n height: 100%;\\n border-radius: 12px;\\n background-size: cover;\\n background-position: center;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 20px;\\n color: #fff;\\n font-weight: 600;\\n}\\n.welcome-avatar.has-chat-agent-img[data-v-9693c11e] {\\n background: transparent;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.welcome-text-group[data-v-9693c11e] {\\n display: flex;\\n flex-direction: column;\\n gap: 6px;\\n}\\n.welcome-text-group .text-sm[data-v-9693c11e] {\\nfont-weight: 400;font-size: 12px;color: #666666;\\ntext-align: left;\\nfont-style: normal;\\n}\\n.welcome-text-group .text-lg[data-v-9693c11e] {\\n \\n font-weight: 500;\\nfont-size: 16px;\\ncolor: #000000;\\n}\\n\\n/* 猜你想问容器 */\\n.guess-box[data-v-9693c11e] {\\n border-top: 1px solid #fff;\\n background: linear-gradient(180deg, #B8DCFF 0%, #DFF0FF 50%, #FFFFFF 100%);\\n border-radius: 0 0 16px 16px;\\n padding: 20px;\\n}\\n.guess-title[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n font-size: 16px;\\n font-weight: 500;\\n color: #222;\\n margin-bottom: 16px;\\n}\\n.tag-wrap[data-v-9693c11e] {\\n display: flex;\\n flex-wrap: wrap;\\n gap: 10px;\\n}\\n.quick-tag[data-v-9693c11e] {\\n padding: 8px 14px;\\n background: #F2FAFF;\\n border-radius: 8px;\\n font-size: 14px;\\n color: #333;\\n cursor: pointer;\\n border: 1px solid #e0eaff;\\n transition: all 0.2s;\\n white-space: nowrap;\\n}\\n/* .quick-tag:hover {\\n background: #f0f7ff;\\n border-color: #1677ff;\\n} */\\n.chat-agent-avatar-wrapper div[data-v-9693c11e]{\\n width: 44px;\\n height: 44px;\\n}\\n/* ── Responsive ── */\\n@media screen and (max-width: 768px) {\\n.chat-header[data-v-9693c11e] {\\n padding: 10px 12px;\\n background: transparent;\\n border-bottom: none;\\n}\\n.chat-header .chat-agent-avatar-wrapper[data-v-9693c11e] {\\n display: none;\\n}\\n.chat-header .agent-desc[data-v-9693c11e] {\\n display: none;\\n}\\n.chat-header .header-left[data-v-9693c11e] {\\n flex: 1;\\n justify-content: center;\\n position: relative;\\n}\\n.chat-header .header-left .mobile-back-btn[data-v-9693c11e] {\\n position: absolute;\\n left: 12px;\\n background: transparent;\\n}\\n.chat-header .header-actions .mobile-header-btn[data-v-9693c11e] {\\n background: transparent;\\n}\\n.chat-body[data-v-9693c11e] {\\n padding: 12px;\\n background-position: center top;\\n}\\n.msg-row[data-v-9693c11e] {\\n padding: 12px 0;\\n}\\n.msg-main[data-v-9693c11e] {\\n width: 100% !important;\\n max-width: 100%;\\n}\\n.bubble[data-v-9693c11e] {\\n font-size: 14px;\\n}\\n.bubble.user[data-v-9693c11e] {\\n max-width: 88%;\\n}\\n.chat-footer[data-v-9693c11e] {\\n padding: 12px 0 max(12px, env(safe-area-inset-bottom));\\n flex-shrink: 0;\\n}\\n.input-area[data-v-9693c11e] {\\n width: calc(100% - 24px) !important;\\n margin: 0 12px;\\n padding: 6px 6px 6px 4px;\\n border-radius: 24px;\\n border: none;\\n background: #f5f5f5;\\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\\n flex-wrap: nowrap;\\n align-items: center;\\n}\\n.input-area[data-v-9693c11e]:focus-within {\\n border-color: transparent;\\n background: #f5f5f5;\\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\\n}\\n.input-area[data-v-9693c11e]::after {\\n display: none;\\n}\\n.voice-btn[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 36px;\\n height: 36px;\\n min-width: 36px;\\n border: none;\\n background: transparent;\\n border-radius: 50%;\\n color: #333;\\n cursor: pointer;\\n flex-shrink: 0;\\n transition: background 0.2s;\\n padding: 0;\\n}\\n.voice-btn[data-v-9693c11e]:active {\\n background: rgba(0,0,0,0.05);\\n}\\n.voice-btn[data-v-9693c11e]:disabled {\\n opacity: 0.4;\\n cursor: not-allowed;\\n}\\n.chat-textarea[data-v-9693c11e] {\\n flex: 1;\\n flex-basis: 0;\\n height: 36px;\\n min-height: 36px;\\n max-height: 100px;\\n font-size: 15px;\\n background: #EBEBEB;\\n border-radius: 18px;\\n padding: 0 14px;\\n line-height: 36px;\\n margin: 0 4px;\\n color: #333;\\n}\\n.chat-textarea[data-v-9693c11e]::-moz-placeholder {\\n color: #999;\\n font-size: 15px;\\n}\\n.chat-textarea[data-v-9693c11e]::placeholder {\\n color: #999;\\n font-size: 15px;\\n}\\n.send-btn[data-v-9693c11e] {\\n width: 36px;\\n height: 36px;\\n min-width: 36px;\\n padding: 0;\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: #1677ff;\\n color: #fff;\\n border: none;\\n cursor: pointer;\\n flex-shrink: 0;\\n}\\n.send-btn svg[data-v-9693c11e] {\\n display: block;\\n}\\n.send-btn[data-v-9693c11e]::after {\\n content: none;\\n}\\n.send-btn.active[data-v-9693c11e] {\\n background: #1677ff;\\n}\\n.send-btn[data-v-9693c11e]:disabled {\\n background: #88bfff;\\n cursor: not-allowed;\\n}\\n.send-btn[data-v-9693c11e]:active {\\n transform: scale(0.92);\\n}\\n.stop-btn[data-v-9693c11e] {\\n width: 36px;\\n height: 36px;\\n min-width: 36px;\\n}\\n.guess-box[data-v-9693c11e] {\\n padding: 16px;\\n}\\n\\n /* H5 语音模式 */\\n.hold-talk-btn[data-v-9693c11e] {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 6px;\\n height: 36px;\\n min-height: 36px;\\n margin: 0 4px;\\n border-radius: 18px;\\n background: #EBEBEB;\\n border: none;\\n font-size: 14px;\\n color: #666;\\n cursor: pointer;\\n -moz-user-select: none;\\n user-select: none;\\n -webkit-user-select: none;\\n transition: background 0.15s;\\n}\\n.hold-talk-btn[data-v-9693c11e]:active {\\n background: #ddd;\\n}\\n.hold-talk-btn.recording[data-v-9693c11e] {\\n background: #e8f0fe;\\n color: #333;\\n}\\n.hold-talk-btn .hold-talk-icon[data-v-9693c11e] {\\n flex-shrink: 0;\\n}\\n\\n /* 语音录制浮层 */\\n.voice-recording-overlay[data-v-9693c11e] {\\n position: fixed;\\n left: 0;\\n right: 0;\\n top: 0;\\n bottom: 0;\\n z-index: 1000;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(0,0,0,0.35);\\n animation: fadeIn-9693c11e 0.15s ease;\\n}\\n.voice-recording-card[data-v-9693c11e] {\\n width: 200px;\\n padding: 32px 24px 24px;\\n background: #fff;\\n border-radius: 20px;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n gap: 16px;\\n box-shadow: 0 8px 32px rgba(0,0,0,0.15);\\n}\\n.voice-recording-wave[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n height: 40px;\\n}\\n.voice-recording-wave span[data-v-9693c11e] {\\n width: 4px;\\n background: #1677ff;\\n border-radius: 2px;\\n animation: waveAnim-9693c11e 0.6s ease-in-out infinite alternate;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(1) { height: 16px; animation-delay: 0s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(2) { height: 28px; animation-delay: 0.1s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(3) { height: 40px; animation-delay: 0.2s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(4) { height: 28px; animation-delay: 0.3s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(5) { height: 16px; animation-delay: 0.4s;\\n}\\n@keyframes waveAnim-9693c11e {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n.voice-recording-duration[data-v-9693c11e] {\\n font-size: 32px;\\n font-weight: 600;\\n color: #333;\\n line-height: 1;\\n}\\n.voice-recording-duration .unit[data-v-9693c11e] {\\n font-size: 18px;\\n font-weight: 400;\\n color: #999;\\n margin-left: 2px;\\n}\\n.voice-recording-hint[data-v-9693c11e] {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n font-size: 13px;\\n color: #999;\\n}\\n.voice-recording-hint.cancel[data-v-9693c11e] {\\n color: #ff4d4f;\\n}\\n@keyframes fadeIn-9693c11e {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\n}\\n@media screen and (max-width: 480px) {\\n.agent-name[data-v-9693c11e] {\\n font-size: 14px;\\n}\\n.agent-desc[data-v-9693c11e] {\\n max-width: calc(100vw - 132px);\\n}\\n.mobile-menu-btn[data-v-9693c11e],\\n .mobile-header-btn[data-v-9693c11e] {\\n width: 32px;\\n height: 32px;\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
3339
|
+
|
|
3340
|
+
/***/ }),
|
|
3341
|
+
|
|
3342
|
+
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css":
|
|
3343
|
+
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
3344
|
+
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css ***!
|
|
3345
|
+
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
3346
|
+
/*! no static exports found */
|
|
3347
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
3348
|
+
|
|
3349
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n/* ── Sidebar ── */\\n.chat-sidebar[data-v-46646bec] {\\n width: 300px;\\n min-width: 300px;\\n background: #fff;\\n border-right: 1px solid #e8e8e8;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.sidebar-header[data-v-46646bec] {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 14px 8px 14px 16px;\\n border-bottom: 1px solid #e8e8e8;\\n flex-shrink: 0;\\n}\\n.sidebar-header i[data-v-46646bec]{\\n font-size: 20px;\\n cursor: pointer;\\n}\\n.sidebar-header img[data-v-46646bec]{\\n cursor: pointer;\\n}\\n.sidebar-title[data-v-46646bec] {\\n font-size: 15px;\\n font-weight: 600;\\n color: #333;\\n}\\n.sidebar-search[data-v-46646bec] {\\n padding: 8px 16px;\\n flex-shrink: 0;\\n position: relative;\\n z-index: 20;\\n}\\n.sidebar-search .search-wrap[data-v-46646bec] {\\n display: flex;\\n align-items: center;\\n position: relative;\\n}\\n.sidebar-search .search-icon[data-v-46646bec] {\\n position: absolute;\\n left: 12px;\\n flex-shrink: 0;\\n pointer-events: none;\\n}\\n.sidebar-search .search-input[data-v-46646bec] {\\n width: 100%;\\n height: 32px;\\n border-radius: 16px;\\n background: #f5f5f5;\\n border: 1px solid transparent;\\n font-size: 13px;\\n padding: 0 32px 0 34px;\\n outline: none;\\n box-sizing: border-box;\\n transition: all 0.2s;\\n}\\n.sidebar-search .search-input[data-v-46646bec]:focus {\\n background: #fff;\\n border: 1px solid #1677ff;\\n}\\n.sidebar-search .search-clear[data-v-46646bec] {\\n position: absolute;\\n right: 10px;\\n cursor: pointer;\\n flex-shrink: 0;\\n}\\n.search-suggestions[data-v-46646bec] {\\n position: absolute;\\n top: 100%;\\n left: 16px;\\n right: 16px;\\n background: #fff;\\n border: 1px solid #e8e8e8;\\n border-radius: 8px;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\\n z-index: 100;\\n max-height: 240px;\\n overflow-y: auto;\\n margin-top: 4px;\\n}\\n.suggestion-item[data-v-46646bec] {\\n display: flex;\\n align-items: center;\\n gap: 10px;\\n padding: 10px 12px;\\n cursor: pointer;\\n transition: background 0.15s;\\n}\\n.suggestion-item[data-v-46646bec]:hover {\\n background: #f5f7fa;\\n}\\n.suggestion-avatar[data-v-46646bec] {\\n width: 28px;\\n height: 28px;\\n border-radius: 6px;\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\n color: #fff;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 13px;\\n font-weight: 600;\\n flex-shrink: 0;\\n}\\n.suggestion-name[data-v-46646bec] {\\n font-size: 14px;\\n font-weight: 500;\\n color: #333;\\n white-space: nowrap;\\n}\\n.suggestion-desc[data-v-46646bec] {\\n font-size: 12px;\\n color: #999;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.sidebar-list[data-v-46646bec] {\\n flex: 1;\\n overflow-y: auto;\\n padding: 8px 0;\\n}\\n.session-item[data-v-46646bec] {\\n display: flex;\\n align-items: center;\\n padding: 6px 16px;\\n padding-bottom: 10px;\\n cursor: pointer;\\n border-bottom: 1px solid #f5f5f5;\\n transition: background 0.15s;\\n position: relative;\\n gap: 10px;\\n border-radius: 4px;\\n}\\n.session-left-item[data-v-46646bec] {\\n margin-left: 5px;\\n}\\n.session-item[data-v-46646bec]:hover {\\n background: #f5f7fa;\\n}\\n.session-item.active[data-v-46646bec] {\\n background: #F5F5F5;\\n}\\n.session-avatar[data-v-46646bec] {\\n width: 44px !important;\\n height: 44px !important;\\n border-radius: 50% !important;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 16px !important;\\n font-weight: 600;\\n color: #fff;\\n flex-shrink: 0;\\n overflow: hidden;\\n}\\n.avatar-pic[data-v-46646bec] {\\n width: 85%;\\n height: 85%;\\n -o-object-fit: contain;\\n object-fit: contain;\\n}\\n.session-info[data-v-46646bec] {\\n flex: 1;\\n min-width: 0;\\n}\\n.session-agent[data-v-46646bec] {\\n font-size: 15px;\\n font-weight: 500;\\n color: #333;\\n margin-bottom: 2px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.session-preview[data-v-46646bec] {\\n font-size: 12px;\\n color: #999;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.session-time[data-v-46646bec] {\\n font-size: 11px;\\n color: #bbb;\\n flex-shrink: 0;\\n margin-left: 8px;\\n margin-right: 4px;\\n}\\n.session-delete[data-v-46646bec] {\\n position: absolute;\\n right: 4px;\\n top: 20px;\\n transform: translateY(-50%);\\n opacity: 0;\\n transition: opacity 0.15s;\\n width: 28px;\\n height: 28px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border: none;\\n background: transparent;\\n padding: 0;\\n color: #333;\\n cursor: pointer;\\n}\\n.session-delete svg[data-v-46646bec] {\\n color: #333;\\n}\\n.session-item:hover .session-delete[data-v-46646bec] {\\n opacity: 1;\\n}\\n.sidebar-empty[data-v-46646bec] {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n color: #bbb;\\n font-size: 14px;\\n padding-bottom: 40px;\\n}\\n.empty-icon[data-v-46646bec] {\\n font-size: 36px;\\n margin-bottom: 8px;\\n}\\n.empty-hint[data-v-46646bec] {\\n font-size: 12px;\\n color: #d9d9d9;\\n margin-top: 4px;\\n}\\n\\n/* agent-list-avatar base */\\n.agent-list-avatar[data-v-46646bec] {\\n background-repeat: no-repeat;\\n background-position: center;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: #fff;\\n font-size: 22px;\\n font-weight: 600;\\n border-radius: 8px;\\n width: 92px;\\n height: 106px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-46646bec] {\\n background-size: cover;\\n}\\n\\n/* suggestion-avatar overrides */\\n.suggestion-avatar[data-v-46646bec] {\\n width: 28px !important;\\n height: 28px !important;\\n border-radius: 8px !important;\\n font-size: 12px !important;\\n font-weight: 600;\\n flex-shrink: 0;\\n}\\n\\n/* Desktop responsive */\\n.chat-sidebar[data-v-46646bec] {\\n width: min(300px, 32vw);\\n}\\n\\n/* ── Mobile (max-width: 768px) ── */\\n@media screen and (max-width: 768px) {\\n.chat-sidebar[data-v-46646bec] {\\n position: absolute;\\n inset: 0 auto 0 0;\\n width: min(82vw, 320px);\\n min-width: auto;\\n max-width: 320px;\\n height: 100%;\\n border-right: none;\\n box-shadow: 8px 0 24px rgba(15, 23, 42, 0.12);\\n transform: translateX(-100%);\\n transition: transform 0.24s ease;\\n}\\n.chat-sidebar.open[data-v-46646bec] {\\n transform: translateX(0);\\n}\\n.sidebar-back-btn[data-v-46646bec] {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 36px;\\n height: 36px;\\n border: none;\\n border-radius: 10px;\\n background: transparent;\\n color: #333;\\n cursor: pointer;\\n flex-shrink: 0;\\n position: absolute;\\n left: 8px;\\n top: 50%;\\n transform: translateY(-50%);\\n padding: 0;\\n}\\n.sidebar-back-btn svg[data-v-46646bec] {\\n display: block;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar[data-v-46646bec] {\\n position: relative !important;\\n width: 100% !important;\\n max-width: 100% !important;\\n min-width: 100% !important;\\n height: 100%;\\n transform: translateX(0) !important;\\n box-shadow: none !important;\\n border-right: none;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header[data-v-46646bec] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 14px 16px;\\n position: relative;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header img[data-v-46646bec] {\\n position: absolute;\\n right: 16px;\\n top: 50%;\\n transform: translateY(-50%);\\n width: 22px;\\n height: 22px;\\n -o-object-fit: contain;\\n object-fit: contain;\\n cursor: pointer;\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
3267
3350
|
|
|
3268
3351
|
/***/ }),
|
|
3269
3352
|
|
|
@@ -3274,7 +3357,18 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../.
|
|
|
3274
3357
|
/*! no static exports found */
|
|
3275
3358
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3276
3359
|
|
|
3277
|
-
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.chat-layout[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #fff;\\r\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;\\n}\\r\\n\\r\\n/* ── Sidebar ── */\\n.chat-sidebar[data-v-bf6d760c] {\\r\\n width: 300px;\\r\\n min-width: 300px;\\r\\n background: #fff;\\r\\n border-right: 1px solid #e8e8e8;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n overflow: hidden;\\n}\\n.sidebar-header[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n padding: 14px 8px 14px 16px;\\r\\n border-bottom: 1px solid #e8e8e8;\\r\\n flex-shrink: 0;\\n}\\n.sidebar-header i[data-v-bf6d760c]{\\r\\n font-size: 20px;\\r\\n cursor: pointer;\\n}\\n.sidebar-title[data-v-bf6d760c] {\\r\\n font-size: 15px;\\r\\n font-weight: 600;\\r\\n color: #333;\\n}\\n.sidebar-search[data-v-bf6d760c] {\\r\\n padding: 8px 16px;\\r\\n flex-shrink: 0;\\r\\n position: relative;\\r\\n z-index: 20;\\n}\\n.sidebar-search .el-input__inner[data-v-bf6d760c] {\\r\\n border-radius: 16px;\\r\\n background: #f5f5f5;\\r\\n border: none;\\r\\n font-size: 13px;\\n}\\n.sidebar-search .el-input__inner[data-v-bf6d760c]:focus {\\r\\n background: #fff;\\r\\n border: 1px solid #1677ff;\\n}\\n.search-suggestions[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: 16px;\\r\\n right: 16px;\\r\\n background: #fff;\\r\\n border: 1px solid #e8e8e8;\\r\\n border-radius: 8px;\\r\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\\r\\n z-index: 100;\\r\\n max-height: 240px;\\r\\n overflow-y: auto;\\r\\n margin-top: 4px;\\n}\\n.suggestion-item[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\r\\n padding: 10px 12px;\\r\\n cursor: pointer;\\r\\n transition: background 0.15s;\\n}\\n.suggestion-item[data-v-bf6d760c]:hover {\\r\\n background: #f5f7fa;\\n}\\n.suggestion-avatar[data-v-bf6d760c] {\\r\\n width: 28px;\\r\\n height: 28px;\\r\\n border-radius: 6px;\\r\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\r\\n color: #fff;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n flex-shrink: 0;\\n}\\n.suggestion-name[data-v-bf6d760c] {\\r\\n font-size: 14px;\\r\\n font-weight: 500;\\r\\n color: #333;\\r\\n white-space: nowrap;\\n}\\n.suggestion-desc[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\n}\\n.sidebar-list[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n overflow-y: auto;\\r\\n padding: 8px 0;\\n}\\n.session-item[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n padding: 6px 16px;\\r\\n /* 顶部留白,匹配UI顶部空隙 */\\r\\n padding-bottom: 10px;\\r\\n cursor: pointer;\\r\\n border-bottom: 1px solid #f5f5f5;\\r\\n transition: background 0.15s;\\r\\n position: relative;\\r\\n gap: 10px;\\r\\n border-radius: 4px;\\n}\\n.session-left-item[data-v-bf6d760c]{\\r\\n margin-left: 5px;\\n}\\n.session-item[data-v-bf6d760c]:hover {\\r\\n background: #f5f7fa;\\n}\\n.session-item.active[data-v-bf6d760c] {\\r\\n background: #F5F5F5\\n}\\n.session-avatar[data-v-bf6d760c] {\\r\\n width: 44px!important;\\r\\n height: 44px!important;\\r\\n /* UI是圆形头像,把8px圆角改成50% */\\r\\n border-radius: 50%!important;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 16px!important;\\r\\n font-weight: 600;\\r\\n color: #fff;\\r\\n flex-shrink: 0;\\r\\n overflow: hidden; /* 裁切图片,保证圆形 */\\n}\\r\\n/* 头像图片样式,居中完整展示,四周露出底色 */\\n.avatar-pic[data-v-bf6d760c] {\\r\\n width: 85%;\\r\\n height: 85%;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\n}\\n.session-info[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n min-width: 0;\\n}\\n.session-agent[data-v-bf6d760c] {\\r\\n font-size: 15px;\\r\\n font-weight: 500;\\r\\n color: #333;\\r\\n margin-bottom: 2px;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\n}\\n.session-preview[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\n}\\n.session-time[data-v-bf6d760c] {\\r\\n font-size: 11px;\\r\\n color: #bbb;\\r\\n flex-shrink: 0;\\r\\n margin-left: 8px;\\r\\n margin-right: 4px;\\n}\\n.session-delete[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n right: 4px;\\r\\n top: 20px;\\r\\n transform: translateY(-50%);\\r\\n opacity: 0;\\r\\n transition: opacity 0.15s;\\r\\n color: #666666;\\n}\\n.session-item:hover .session-delete[data-v-bf6d760c] {\\r\\n opacity: 1;\\n}\\n.sidebar-list[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n overflow-y: auto;\\r\\n padding: 8px 0;\\n}\\n.sidebar-empty[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #bbb;\\r\\n font-size: 14px;\\r\\n padding-bottom: 40px;\\n}\\n.empty-icon[data-v-bf6d760c] {\\r\\n font-size: 36px;\\r\\n margin-bottom: 8px;\\n}\\n.empty-hint[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #d9d9d9;\\r\\n margin-top: 4px;\\n}\\r\\n/* ── Main ── */\\n.chat-main[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n min-width: 0;\\n}\\r\\n\\r\\n/* ── Header ── */\\n.chat-header[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n padding: 10px 20px;\\r\\n background: #fff;\\r\\n border-bottom: 1px solid #e8e8e8;\\r\\n flex-shrink: 0;\\r\\n z-index: 10;\\n}\\n.header-left[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\r\\n min-width: 0;\\n}\\n.agent-info[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\n}\\n.agent-icon[data-v-bf6d760c] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border-radius: 8px;\\r\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\r\\n color: #fff;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 16px;\\r\\n font-weight: 600;\\r\\n flex-shrink: 0;\\n}\\r\\n/* 和左侧会话头像保持 4 色循环背景 */\\n.agent-info:nth-child(4n + 2) .agent-icon-avatar[data-v-bf6d760c] {\\r\\n background: linear-gradient(135deg, #52c41a, #73d13d);\\n}\\n.agent-info:nth-child(4n + 3) .agent-icon-avatar[data-v-bf6d760c] {\\r\\n background: linear-gradient(135deg, #fa8c16, #ffa940);\\n}\\n.agent-info:nth-child(4n + 4) .agent-icon-avatar[data-v-bf6d760c] {\\r\\n background: linear-gradient(135deg, #722ed1, #b37feb);\\n}\\n.agent-text[data-v-bf6d760c] {\\r\\n min-width: 0;\\n}\\n.agent-name[data-v-bf6d760c] {\\r\\n font-size: 15px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n line-height: 1.3;\\n}\\n.agent-desc[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\r\\n max-width: 300px;\\n}\\n.header-right[data-v-bf6d760c] {\\r\\n flex-shrink: 0;\\n}\\n.manage-link[data-v-bf6d760c] {\\r\\n font-size: 13px;\\r\\n color: #1677ff;\\r\\n text-decoration: none;\\n}\\n.manage-link[data-v-bf6d760c]:hover {\\r\\n color: #4096ff;\\n}\\r\\n\\r\\n/* ── Chat Body ── */\\n.chat-body[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n overflow-y: auto;\\r\\n padding: 16px 40px;\\r\\n scroll-behavior: auto;\\r\\n position: relative; /* 👈 就加这一行!! */\\r\\n -webkit-overflow-scrolling: touch;\\r\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/agentbackground.png) 100% no-repeat;\\r\\n background-size: 100% 100%;\\n}\\n.welcome[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n height: 100%;\\r\\n color: #bbb;\\r\\n margin: 0 -20px;\\n}\\n.welcome-icon[data-v-bf6d760c] {\\r\\n margin-bottom: 12px;\\r\\n opacity: 0.7;\\n}\\n.welcome-text[data-v-bf6d760c] {\\r\\n font-size: 15px;\\n}\\n.welcome-default .welcome-icon[data-v-bf6d760c] {\\r\\n margin-bottom: 16px;\\n}\\n.welcome-title[data-v-bf6d760c] {\\r\\n font-size: 20px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n margin-bottom: 8px;\\n}\\r\\n\\r\\n/* ── Message Row ── */\\n.msg-row[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n padding: 20px 16px;\\r\\n box-sizing: border-box;\\r\\n align-items: center;\\n}\\n.msg-main[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\r\\n max-width: 85%;\\r\\n /* 最大内容宽度限制,避免超宽 */\\r\\n width: 800px;\\n}\\n.msg-row.user .msg-main[data-v-bf6d760c] {\\r\\n flex-direction: row-reverse;\\n}\\n.msg-row.assistant[data-v-bf6d760c] {\\r\\n justify-content: center;\\n}\\n.load-more[data-v-bf6d760c] {\\r\\n text-align: center;\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n padding: 4px 0;\\n}\\n.msg-time[data-v-bf6d760c] {\\r\\n font-size: 11px;\\r\\n color: #bbb;\\r\\n margin-top: 2px;\\r\\n padding-left: 4px;\\n}\\n.msg-row.user .msg-time[data-v-bf6d760c] {\\r\\n text-align: right;\\r\\n padding-right: 4px;\\n}\\n.msg-actions[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n gap: 4px;\\r\\n margin-top: 4px;\\r\\n padding-left: 4px;\\n}\\n.action-btn[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n cursor: pointer;\\r\\n padding: 2px 6px 2px 0;\\r\\n border-radius: 4px;\\r\\n transition: all 0.2s;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n user-select: none;\\n}\\n.action-btn[data-v-bf6d760c]:hover {\\r\\n color: #1677ff;\\r\\n background: #f0f5ff;\\n}\\r\\n\\r\\n/* ── STT 语音转文字状态 ── */\\n.stt-status-block[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 8px;\\r\\n font-size: 14px;\\r\\n line-height: 1.5;\\n}\\r\\n/* ── STT 状态(图标紧贴气泡左侧,文字在气泡内) ── */\\n.stt-bubble-wrap[data-v-bf6d760c] {\\r\\n position: relative;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n font-size: 15px;\\r\\n line-height: 1.4;\\n}\\n.stt-outside-icon[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n right: 100%;\\r\\n top: 50%;\\r\\n margin-top: -9px;\\r\\n margin-right: 20px;\\n}\\n.stt-spinner[data-v-bf6d760c] {\\r\\n display: inline-block;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n border: 2.5px solid #d9d9d9;\\r\\n border-top-color: #1677ff;\\r\\n border-right-color: #4096ff;\\r\\n border-radius: 50%;\\r\\n animation: stt-spin-bf6d760c 0.6s linear infinite;\\r\\n flex-shrink: 0;\\r\\n box-sizing: border-box;\\n}\\n@keyframes stt-spin-bf6d760c {\\nto { transform: rotate(360deg);\\n}\\n}\\n.stt-error-icon[data-v-bf6d760c] {\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n background: #ff4d4f;\\r\\n color: #fff;\\r\\n font-size: 12px;\\r\\n font-weight: 700;\\r\\n border-radius: 50%;\\r\\n line-height: 1;\\r\\n flex-shrink: 0;\\n}\\n.stt-bubble-text[data-v-bf6d760c] {\\r\\n font-size: 15px;\\r\\n line-height: 1.4;\\r\\n color: #fff;\\r\\n white-space: nowrap;\\r\\n margin: 6px 0;\\n}\\n.msg-main[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: flex-start;\\r\\n gap: 10px;\\r\\n width: 800px;\\n}\\n.msg-row.user .msg-main[data-v-bf6d760c] {\\r\\n flex-direction: row-reverse;\\n}\\n.msg-avatar[data-v-bf6d760c] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border-radius: 50%;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 13px;\\r\\n font-weight: 700;\\r\\n flex-shrink: 0;\\r\\n color: #fff;\\n}\\n.msg-avatar.user[data-v-bf6d760c] {\\r\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\r\\n color: #fff;\\n}\\n.msg-avatar.assistant[data-v-bf6d760c] {\\r\\n background: linear-gradient(135deg, #52c41a, #73d13d);\\r\\n color: #fff;\\n}\\n.msg-agent-label[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n margin-bottom: 2px;\\n}\\n.msg-content[data-v-bf6d760c] {\\r\\n width: 800px;\\r\\n box-sizing: border-box;\\r\\n overflow: hidden;\\n}\\r\\n\\r\\n/* ── Bubble ── */\\n.bubble[data-v-bf6d760c] {\\r\\n max-width: 100%;\\r\\n min-width: 30px;\\r\\n width: -moz-fit-content;\\r\\n width: fit-content;\\r\\n padding: 8px 14px;\\r\\n border-radius: 12px;\\r\\n line-height: 1.4;\\r\\n font-size: 15px;\\r\\n word-break: break-word;\\r\\n white-space: normal;\\r\\n text-align: left;\\n}\\n.bubble[data-v-bf6d760c]:has(.typing) {\\r\\n padding: 16px 20px;\\n}\\n.bubble.user[data-v-bf6d760c] {\\r\\n background: #1677ff;\\r\\n color: #fff;\\r\\n border-bottom-right-radius: 4px;\\r\\n box-shadow: 0 2px 8px rgba(22, 119, 255, 0.15);\\r\\n float: right;\\n}\\n.bubble.assistant[data-v-bf6d760c] {\\r\\n background: #fff;\\r\\n color: #333;\\r\\n border-bottom-left-radius: 4px;\\r\\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\\r\\n text-align: left;\\r\\n width: 100%;\\r\\n box-sizing: border-box;\\n}\\n.bubble[data-v-bf6d760c] table {\\r\\n border-collapse: collapse;\\r\\n width: 100%;\\r\\n margin: 6px 0;\\r\\n font-size: 14px;\\n}\\n.bubble[data-v-bf6d760c] th,\\r\\n.bubble[data-v-bf6d760c] td {\\r\\n border: 1px solid #e8e8e8;\\r\\n padding: 5px 8px;\\r\\n text-align: left;\\n}\\n.bubble[data-v-bf6d760c] th {\\r\\n background: #fafafa;\\r\\n font-weight: 600;\\n}\\n.bubble[data-v-bf6d760c] code {\\r\\n /* background: #f0f2f5; */\\r\\n padding: 1px 5px;\\r\\n border-radius: 3px;\\r\\n font-size: 14px;\\n}\\n.bubble[data-v-bf6d760c] pre {\\r\\n background: #f6f8fa;\\r\\n color: #333;\\r\\n padding: 12px;\\r\\n border-radius: 6px;\\r\\n overflow-x: auto;\\r\\n font-size: 13px;\\r\\n border: 1px solid #e8e8e8;\\r\\n margin: 8px 0;\\r\\n line-height: 1.5;\\r\\n white-space: pre;\\n}\\n.bubble[data-v-bf6d760c] ul,\\r\\n.bubble[data-v-bf6d760c] ol {\\r\\n padding-left: 20px;\\r\\n margin: 4px 0;\\n}\\n.bubble[data-v-bf6d760c] li {\\r\\n margin: 2px 0;\\n}\\n.bubble[data-v-bf6d760c] p{\\r\\n margin: 6px 0;\\n}\\r\\n\\r\\n/* ── Thinking ── */\\n.thinking-details[data-v-bf6d760c] {\\r\\n margin-bottom: 10px;\\r\\n border: 1px solid #e8e8e8;\\r\\n border-radius: 8px;\\r\\n overflow: hidden;\\r\\n background: #fafafa;\\n}\\n.thinking-summary[data-v-bf6d760c] {\\r\\n font-size: 12px;\\r\\n color: #888;\\r\\n cursor: pointer;\\r\\n padding: 6px 10px;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n user-select: none;\\n}\\n.thinking-summary[data-v-bf6d760c]:hover {\\r\\n color: #1677ff;\\n}\\n.thinking-body[data-v-bf6d760c] {\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n padding: 8px 12px;\\r\\n line-height: 1.6;\\r\\n border-top: 1px solid #f0f0f0;\\r\\n text-align: left;\\r\\n white-space: pre-wrap;\\r\\n word-break: break-word;\\r\\n /* 兼容中英文混合断行优化 */\\r\\n overflow-wrap: break-word;\\n}\\n.final-content[data-v-bf6d760c]{\\r\\n /* white-space: pre-wrap; */\\r\\n word-break: break-word;\\r\\n overflow-wrap: break-word;\\n}\\n.thinking-body[data-v-bf6d760c] p {\\r\\n margin: 4px 0;\\n}\\r\\n\\r\\n/* ── Typing ── */\\n.typing[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n gap: 8px;\\r\\n min-height: 24px;\\r\\n justify-content: flex-start;\\r\\n padding: 4px 0;\\n}\\n.typing .phrase[data-v-bf6d760c] {\\r\\n font-size: 14px;\\r\\n color: #888;\\r\\n white-space: nowrap;\\r\\n animation: phraseFade-bf6d760c 0.5s ease;\\r\\n letter-spacing: 0.5px;\\n}\\n.typing .dots[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n gap: 5px;\\r\\n align-items: center;\\r\\n justify-content: center;\\n}\\n.typing .dots span[data-v-bf6d760c] {\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n background: #bbb;\\r\\n border-radius: 50%;\\r\\n animation: dtTyping-bf6d760c 1.3s infinite ease-in-out;\\n}\\n.typing .dots span[data-v-bf6d760c]:nth-child(2) {\\r\\n animation-delay: 0.16s;\\n}\\n.typing .dots span[data-v-bf6d760c]:nth-child(3) {\\r\\n animation-delay: 0.32s;\\n}\\n@keyframes phraseFade-bf6d760c {\\nfrom {\\r\\n opacity: 0.2;\\r\\n transform: translateY(4px);\\n}\\nto {\\r\\n opacity: 1;\\r\\n transform: translateY(0);\\n}\\n}\\n@keyframes dtTyping-bf6d760c {\\n0%,\\r\\n 60%,\\r\\n 100% {\\r\\n transform: translateY(0);\\r\\n opacity: 0.3;\\n}\\n30% {\\r\\n transform: translateY(-5px);\\r\\n opacity: 1;\\n}\\n}\\r\\n\\r\\n/* ── Scroll Buttons ── */\\n.scroll-btns[data-v-bf6d760c] {\\r\\n position: sticky;\\r\\n left: 50%;\\r\\n transform: translateX(-50%);\\r\\n bottom: 20px;\\r\\n z-index: 99;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n margin-top: 10px;\\r\\n pointer-events: none;\\n}\\n.scroll-btn[data-v-bf6d760c] {\\r\\n pointer-events: auto;\\r\\n width: 38px;\\r\\n height: 38px;\\r\\n border-radius: 50%;\\r\\n background: #fff;\\r\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\n}\\n.scroll-btn i[data-v-bf6d760c] {\\r\\n font-size: 16px;\\r\\n color: #333;\\n}\\r\\n/* ── Wait Timer ── */\\n.typing.wait-5 .dots span[data-v-bf6d760c] {\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n animation-duration: 1s;\\n}\\n.typing.wait-5 .phrase[data-v-bf6d760c] {\\r\\n color: #888;\\n}\\n.typing.wait-10 .dots span[data-v-bf6d760c] {\\r\\n width: 9px;\\r\\n height: 9px;\\r\\n animation-duration: 0.8s;\\r\\n background: #909399;\\n}\\n.typing.wait-10 .phrase[data-v-bf6d760c] {\\r\\n color: #909399;\\n}\\n.typing.wait-10 .dots[data-v-bf6d760c] {\\r\\n animation: dtPulse-bf6d760c 1s infinite ease-in-out;\\n}\\n.typing.wait-15 .dots span[data-v-bf6d760c] {\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n animation-duration: 0.6s;\\r\\n background: #1677ff;\\n}\\n.typing.wait-15 .phrase[data-v-bf6d760c] {\\r\\n color: #1677ff;\\n}\\n.typing.wait-15 .dots[data-v-bf6d760c] {\\r\\n animation: dtPulse-bf6d760c 0.6s infinite ease-in-out;\\n}\\n@keyframes dtPulse-bf6d760c {\\n0%,\\r\\n 100% {\\r\\n transform: scale(1);\\n}\\n50% {\\r\\n transform: scale(1.05);\\n}\\n}\\n.tool-calls[data-v-bf6d760c] {\\r\\n margin-top: 8px;\\n}\\n.tool-item[data-v-bf6d760c] {\\r\\n background: #f5f5f5;\\r\\n border-radius: 6px;\\r\\n padding: 6px 10px;\\r\\n margin-bottom: 4px;\\r\\n font-size: 12px;\\n}\\n.tool-badge[data-v-bf6d760c] {\\r\\n display: inline-block;\\r\\n margin-bottom: 2px;\\r\\n font-size: 11px;\\r\\n color: #fa8c16;\\r\\n font-weight: 500;\\n}\\n.tool-item pre[data-v-bf6d760c] {\\r\\n margin: 0;\\r\\n white-space: pre-wrap;\\r\\n word-break: break-all;\\r\\n font-size: 12px;\\r\\n color: #666;\\r\\n max-height: 120px;\\r\\n overflow-y: auto;\\n}\\r\\n\\r\\n/* ── Footer ── */\\n.chat-footer[data-v-bf6d760c] {\\r\\n flex-shrink: 0;\\r\\n border-top: none;\\r\\n padding: 30px 0;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n margin: 0 auto;\\n}\\n.input-area[data-v-bf6d760c] {\\r\\n position: relative;\\r\\n display: flex;\\r\\n align-items: flex-end;\\r\\n gap: 6px;\\r\\n background: #fff;\\r\\n border-radius: 24px;\\r\\n /* 左右留白,实现居中效果,和截图边距一致 */\\r\\n margin: 0 24px;\\r\\n padding: 18px 20px;\\r\\n border: 1px solid #b3d8ff;\\r\\n transition: border-color 0.2s;\\r\\n flex-wrap: wrap;\\r\\n width: 1000px;\\n}\\r\\n/* 原有悬浮滚动按钮逻辑完全保留不动 */\\n.scroll-bottom-wrap[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n transform: translateX(-50%);\\r\\n bottom: calc(100% + 30px);\\r\\n z-index: 99;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n pointer-events: none;\\n}\\n.scroll-bottom-btn[data-v-bf6d760c] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border-radius: 50%;\\r\\n background: #fff;\\r\\n border: 1px solid #e5e7eb;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n pointer-events: auto;\\r\\n position: relative;\\r\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);\\n}\\n.scroll-bottom-btn i[data-v-bf6d760c] {\\r\\n font-size: 14px;\\r\\n color: #4e5969;\\n}\\r\\n/* 加载转圈动画原样保留 */\\n.loading-circle[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n inset: 3px;\\r\\n border-radius: 50%;\\r\\n border: 1.5px solid transparent;\\r\\n border-top: 1.5px solid #1677ff;\\r\\n animation: circle-spin-bf6d760c 1.5s linear infinite;\\n}\\n@keyframes circle-spin-bf6d760c {\\nfrom {\\r\\n transform: rotate(0deg);\\n}\\nto {\\r\\n transform: rotate(360deg);\\n}\\n}\\r\\n/* 聚焦仅变色,取消阴影 */\\n.input-area[data-v-bf6d760c]:focus-within {\\r\\n border-color: #1677ff;\\r\\n background: #fff;\\r\\n box-shadow: none;\\n}\\n.chat-textarea[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n border: none;\\r\\n outline: none;\\r\\n background: transparent;\\r\\n resize: none;\\r\\n font-size: 16px;\\r\\n line-height: 24px;\\r\\n min-height: 38px;\\r\\n height: 100px;\\r\\n max-height: 100px;\\r\\n overflow-y: auto;\\r\\n padding: 0;\\r\\n box-sizing: border-box;\\r\\n font-family: inherit;\\r\\n color: #333;\\n}\\n.chat-textarea[data-v-bf6d760c]::-moz-placeholder {\\r\\n color: #999;\\r\\n font-size: 16px;\\n}\\n.chat-textarea[data-v-bf6d760c]::placeholder {\\r\\n color: #999;\\r\\n font-size: 16px;\\n}\\r\\n/* 发送按钮 纯蓝色矩形,隐藏svg图标,显示文字发送 */\\n.send-btn[data-v-bf6d760c] {\\r\\n width: auto;\\r\\n height: 40px;\\r\\n padding: 0 21px;\\r\\n border-radius: 6px;\\r\\n border: none;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n transition: all 0.2s;\\r\\n background: #1677ff;\\r\\n color: #fff;\\r\\n font-size: 14px;\\n}\\n.send-btn svg[data-v-bf6d760c] {\\r\\n display: none;\\n}\\n.send-btn[data-v-bf6d760c]::after {\\r\\n content: \\\"发送\\\";\\n}\\n.send-btn.active[data-v-bf6d760c] {\\r\\n background: #1677ff;\\n}\\n.send-btn.active[data-v-bf6d760c]:hover {\\r\\n background: #4096ff;\\n}\\n.send-btn[data-v-bf6d760c]:disabled {\\r\\n background: #88bfff;\\r\\n cursor: not-allowed;\\n}\\n.stop-btn[data-v-bf6d760c] {\\r\\n width: 35px;\\r\\n height: 35px;\\r\\n border-radius: 50%;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: #ff4d4f;\\r\\n color: #fff;\\r\\n flex-shrink: 0;\\r\\n transition: all 0.2s;\\n}\\n.stop-btn[data-v-bf6d760c]:hover {\\r\\n background: #ff7875;\\n}\\r\\n/* 右下角提示文字,精准定位在按钮左侧,和截图位置完全对齐 */\\n.input-area[data-v-bf6d760c]::after {\\r\\n content: \\\"Enter 发送,Ctrl+Enter 换行\\\";\\r\\n position: absolute;\\r\\n right: 100px;\\r\\n bottom: 28px;\\r\\n font-size: 14px;\\r\\n color: #8c8c8c;\\r\\n pointer-events: none;\\n}\\r\\n/* 滚动到底部按钮样式 */\\n.scroll-bottom-btn[data-v-bf6d760c] {\\r\\n width: 38px;\\r\\n height: 38px;\\r\\n border-radius: 50%;\\r\\n background: #ffffff;\\r\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n transition: all 0.2s ease;\\n}\\n.scroll-bottom-btn[data-v-bf6d760c]:hover {\\r\\n transform: scale(1.1);\\n}\\n.scroll-bottom-btn i[data-v-bf6d760c] {\\r\\n color: #333;\\r\\n font-size: 16px;\\n}\\r\\n\\r\\n\\r\\n/* 外层页面容器 对应box_9区域 */\\n.agent-select-page[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/background.png) 100% no-repeat;\\r\\n background-size: 100% 100%;\\r\\n box-sizing: border-box;\\r\\n /* 内部全部居中 */\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\n}\\r\\n\\r\\n/* 内容容器,限制最大宽度,自适应,居中 */\\n.agent-wrap[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n max-width: 1200px;\\n}\\r\\n\\r\\n/* 标题区域居中 */\\n.agent-title[data-v-bf6d760c] {\\r\\n text-align: center;\\r\\n margin-bottom: 116px;\\n}\\n.agent-title h2[data-v-bf6d760c] {\\r\\n font-size: 28px!important;\\r\\n color: #000;\\r\\n font-weight: 500!important;\\r\\n font-family: PingFangSC-Medium;\\r\\n margin: 0;\\r\\n line-height: 40px;\\n}\\r\\n\\r\\n/* 智能助手列表:一行2个自适应等分,自动换行 */\\n.agent-list[data-v-bf6d760c] {\\r\\n display: grid;\\r\\n grid-template-columns: repeat(2, 1fr);\\r\\n gap: 76px 30px;\\r\\n width: 100%;\\n}\\r\\n\\r\\n/* 卡片基础样式,无固定宽度,自适应网格列宽 */\\n.agent-item[data-v-bf6d760c] {\\r\\n position: relative;\\r\\n border-radius: 11px;\\r\\n height: 90px;\\r\\n padding: 20px 20px 19px 116px;\\r\\n box-sizing: border-box;\\r\\n cursor: pointer;\\r\\n transition: all 0.3s ease;\\n}\\n.agent-item[data-v-bf6d760c]:hover {\\r\\n transform: translateY(-4px);\\r\\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);\\n}\\r\\n\\r\\n/* 上浮头像容器 */\\n.agent-avatar-wrapper[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n left: 3px;\\r\\n top: -36px;\\n}\\r\\n\\r\\n/* 头像默认样式 */\\n.agent-list-avatar[data-v-bf6d760c] {\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\r\\n border-radius: 8px;\\n}\\r\\n/* 有头像图片:大尺寸 */\\n.agent-list-avatar.has-agent-img[data-v-bf6d760c] {\\r\\n width: 97px;\\r\\n height: 126px;\\r\\n background-size: cover;\\n}\\r\\n/* 无头像文字首字母:小尺寸,偏移适配 */\\n.agent-list-avatar[data-v-bf6d760c]:not(.has-agent-img) {\\r\\n width: 76px;\\r\\n height: 108px;\\r\\n transform: translateX(9px);\\n}\\r\\n\\r\\n/* 文字内容区 */\\n.agent-info-content[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n flex-direction: column;\\n}\\n.name[data-v-bf6d760c] {\\r\\n font-size: 16px;\\r\\n font-family: PingFangSC-Medium;\\r\\n color: #000;\\r\\n line-height: 22px;\\r\\n margin-bottom: 8px;\\n}\\n.desc[data-v-bf6d760c] {\\r\\n font-size: 15px;\\r\\n font-family: PingFangSC-Regular;\\r\\n color: #666;\\r\\n line-height: 21px;\\r\\n /* 核心三行单行省略,文字超出自动... */\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n /* 关键:继承父容器宽度,不会超出父盒子 */\\r\\n width: 100%;\\r\\n display: block;\\n}\\r\\n/* 响应式适配:小屏幕自动变为单列 */\\n@media screen and (max-width: 768px) {\\n.agent-list[data-v-bf6d760c] {\\r\\n grid-template-columns: 1fr;\\n}\\n.agent-selector[data-v-bf6d760c] {\\r\\n padding: 40px 15px;\\n}\\n.agent-title[data-v-bf6d760c] {\\r\\n margin-bottom: 60px;\\n}\\n.agent-title h2[data-v-bf6d760c] {\\r\\n font-size: 22px;\\n}\\n}\\r\\n\\r\\n\\r\\n/* ── 聊天空白欢迎页(匹配蓝湖移动端聊天首页) ── */\\n.chat-empty-welcome[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n padding: 40px 20px;\\r\\n box-sizing: border-box;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n gap: 0px;\\r\\n max-width: 600px;\\r\\n margin: 80px auto;\\n}\\r\\n\\r\\n/* 顶部渐变欢迎卡片 */\\n.welcome-card[data-v-bf6d760c] {\\r\\n position: relative;\\r\\n background: linear-gradient(296deg, #D6EDFF 20%, #E8EBFF 80%);\\r\\nborder-radius: 16px 16px 0px 0px;\\r\\n padding: 24px 24px 24px 150px;\\r\\n overflow: visible;\\n}\\r\\n/* 左侧探出头像容器 */\\n.welcome-avatar-box[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n left: 15px;\\r\\n bottom: 0px;\\r\\n width: 110px;\\r\\n height: 137px;\\n}\\n.welcome-avatar[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n border-radius: 12px;\\r\\n background-size: cover;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 20px;\\r\\n color: #fff;\\r\\n font-weight: 600;\\n}\\n.welcome-avatar.has-chat-agent-img[data-v-bf6d760c] {\\r\\n background: transparent;\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\n}\\n.welcome-text-group[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n gap: 6px;\\n}\\n.welcome-text-group .text-sm[data-v-bf6d760c] {\\r\\nfont-weight: 400;font-size: 12px;color: #666666;\\r\\ntext-align: left;\\r\\nfont-style: normal;\\n}\\n.welcome-text-group .text-lg[data-v-bf6d760c] {\\r\\n \\r\\n font-weight: 500;\\r\\nfont-size: 16px;\\r\\ncolor: #000000;\\n}\\r\\n\\r\\n/* 猜你想问容器 */\\n.guess-box[data-v-bf6d760c] {\\r\\n border-top: 1px solid #fff;\\r\\n background: linear-gradient(180deg, #B8DCFF 0%, #DFF0FF 50%, #FFFFFF 100%);\\r\\n border-radius: 0 0 16px 16px;\\r\\n padding: 20px;\\n}\\n.guess-title[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 6px;\\r\\n font-size: 16px;\\r\\n font-weight: 500;\\r\\n color: #222;\\r\\n margin-bottom: 16px;\\n}\\n.tag-wrap[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n gap: 10px;\\n}\\n.quick-tag[data-v-bf6d760c] {\\r\\n padding: 8px 14px;\\r\\n background: #F2FAFF;\\r\\n border-radius: 8px;\\r\\n font-size: 14px;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n border: 1px solid #e0eaff;\\r\\n transition: all 0.2s;\\r\\n white-space: nowrap;\\n}\\r\\n/* .quick-tag:hover {\\r\\n background: #f0f7ff;\\r\\n border-color: #1677ff;\\r\\n} */\\n.chat-agent-avatar-wrapper div[data-v-bf6d760c]{\\r\\n width: 44px;\\r\\n height: 44px;\\n}\\r\\n\\r\\n\\r\\n\\r\\n/* 外层大容器,本地渐变背景铺满全屏,内部全部居中 */\\n.agent-selector[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n min-height: 100%;\\r\\n padding: 80px 20px;\\r\\n /* 本地背景图铺满 */\\r\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/background.png) no-repeat;\\r\\n background-size: 100% 100%;\\r\\n box-sizing: border-box;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\n}\\r\\n\\r\\n/* 内容容器,限制最大宽度,自适应居中,无固定宽 */\\n.agent-wrap[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n max-width: 920px;\\n}\\r\\n\\r\\n/* 标题样式,居中、字号、间距匹配效果图 */\\n.agent-title[data-v-bf6d760c] {\\r\\n text-align: center;\\r\\n margin-bottom: 116px;\\n}\\n.agent-title h2[data-v-bf6d760c] {\\r\\n font-size: 26px;\\r\\n color: #222;\\r\\n font-weight: 500;\\r\\n margin: 0;\\r\\n line-height: 40px;\\n}\\r\\n\\r\\n/* 卡片网格:一行2等分,行列间距对齐效果图 */\\n.agent-list[data-v-bf6d760c] {\\r\\n display: grid;\\r\\n grid-template-columns: repeat(2, 1fr);\\r\\n gap: 76px 30px;\\r\\n width: 100%;\\n}\\r\\n\\r\\n/* 卡片核心样式:圆角、内边距、相对定位,无固定宽度 */\\n.agent-item[data-v-bf6d760c] {\\r\\n position: relative;\\r\\n border-radius: 11px;\\r\\n height: 90px;\\r\\n /* 左侧留出头像位置,文字靠右内缩 */\\r\\n padding: 22px 20px 20px 110px;\\r\\n box-sizing: border-box;\\r\\n cursor: pointer;\\r\\n transition: all 0.25s ease;\\r\\n /* 轻微柔和阴影,和效果图一致 */\\r\\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);\\n}\\n.agent-item[data-v-bf6d760c]:hover {\\r\\n transform: translateY(-4px);\\r\\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);\\n}\\r\\n\\r\\n\\r\\n/* 头像本体通用样式 */\\n.agent-list-avatar[data-v-bf6d760c] {\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\r\\n border-radius: 8px;\\r\\n /* 效果图统一卡通头像尺寸 */\\r\\n width: 92px;\\r\\n height: 106px;\\n}\\r\\n/* 有头像图片完整展示,不裁切 */\\n.agent-list-avatar.has-agent-img[data-v-bf6d760c] {\\r\\n background-size: cover;\\n}\\r\\n\\r\\n/* 文字区域垂直排列 */\\n.agent-info-content[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n max-width: 300px;\\r\\n flex-shrink: 0; /* 如果是flex布局,禁止自身被压缩 */\\n}\\r\\n/* 助手名称 */\\n.name[data-v-bf6d760c] {\\r\\n font-size: 16px;\\r\\n font-weight: 500;\\r\\n color: #111;\\r\\n line-height: 22px;\\r\\n margin-bottom: 6px;\\n}\\r\\n/* 描述文本 */\\n.desc[data-v-bf6d760c] {\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n line-height: 20px;\\r\\n /* 超长描述单行省略 */\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\n}\\r\\n\\r\\n/* 移动端适配:小屏幕自动单列 */\\n@media screen and (max-width: 768px) {\\n.agent-list[data-v-bf6d760c] {\\r\\n grid-template-columns: 1fr;\\n}\\n.agent-selector[data-v-bf6d760c] {\\r\\n padding: 40px 15px;\\n}\\n.agent-title[data-v-bf6d760c] {\\r\\n margin-bottom: 40px;\\n}\\n.agent-title h2[data-v-bf6d760c] {\\r\\n font-size: 22px;\\n}\\n}\\n.chat-layout[data-v-bf6d760c] {\\r\\n position: relative;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\n}\\n.sidebar-mask[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n inset: 0;\\r\\n background: rgba(15, 23, 42, 0.28);\\r\\n z-index: 29;\\n}\\n.suggestion-avatar[data-v-bf6d760c] {\\r\\n width: 28px !important;\\r\\n height: 28px !important;\\r\\n border-radius: 8px !important;\\r\\n font-size: 12px !important;\\r\\n font-weight: 600;\\r\\n flex-shrink: 0;\\n}\\n.chat-main[data-v-bf6d760c],\\r\\n.chat-body[data-v-bf6d760c] {\\r\\n min-height: 0;\\n}\\n.header-left[data-v-bf6d760c],\\r\\n.header-actions[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\n}\\n.header-left[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n min-width: 0;\\r\\n gap: 10px;\\n}\\n.header-actions[data-v-bf6d760c] {\\r\\n flex-shrink: 0;\\n}\\n.mobile-menu-btn[data-v-bf6d760c],\\r\\n.mobile-back-btn[data-v-bf6d760c],\\r\\n.mobile-header-btn[data-v-bf6d760c] {\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border: none;\\r\\n border-radius: 10px;\\r\\n background: #f5f7fa;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\n}\\n.mobile-menu-btn i[data-v-bf6d760c],\\r\\n.mobile-back-btn i[data-v-bf6d760c],\\r\\n.mobile-header-btn i[data-v-bf6d760c] {\\r\\n font-size: 18px;\\n}\\n.mobile-back-btn i[data-v-bf6d760c] {\\r\\n font-size: 20px;\\r\\n font-weight: 600;\\n}\\n.chat-sidebar[data-v-bf6d760c] {\\r\\n width: min(300px, 32vw);\\n}\\n.chat-body[data-v-bf6d760c] {\\r\\n padding: 16px clamp(12px, 3vw, 40px);\\r\\n background-position: center;\\r\\n background-size: cover;\\n}\\n.agent-desc[data-v-bf6d760c] {\\r\\n max-width: min(300px, 45vw);\\n}\\n.msg-row[data-v-bf6d760c] {\\r\\n padding: 18px 0;\\n}\\n.msg-main[data-v-bf6d760c] {\\r\\n width: min(100%, 860px) !important;\\r\\n max-width: 860px;\\n}\\n.msg-content[data-v-bf6d760c] {\\r\\n width: 100% !important;\\r\\n max-width: 100%;\\n}\\n.bubble.user[data-v-bf6d760c] {\\r\\n float: none;\\r\\n margin-left: auto;\\r\\n max-width: min(100%, 520px);\\n}\\n.final-content[data-v-bf6d760c],\\r\\n.thinking-body[data-v-bf6d760c],\\r\\n.bubble[data-v-bf6d760c] {\\r\\n overflow-wrap: anywhere;\\n}\\n.chat-footer[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n padding: 24px 0;\\n}\\n.input-area[data-v-bf6d760c] {\\r\\n width: min(100%, 1000px) !important;\\r\\n box-sizing: border-box;\\n}\\n.chat-textarea[data-v-bf6d760c] {\\r\\n flex: 1 1 320px;\\r\\n min-width: 0;\\n}\\n@media screen and (max-width: 768px) {\\n.chat-layout.is-mobile[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n height: 100dvh;\\n}\\r\\n\\r\\n /* agent-selector H5 顶部栏 */\\n.agent-selector[data-v-bf6d760c] {\\r\\n padding: 0 !important;\\n}\\n.agent-selector .agent-wrap[data-v-bf6d760c] {\\r\\n padding: 40px 16px 0;\\r\\n box-sizing: border-box;\\n}\\n.mobile-agent-select-header[data-v-bf6d760c] {\\r\\n width: 100%;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n position: relative;\\r\\n padding: 10px 0;\\r\\n min-height: 44px;\\n}\\n.mobile-agent-select-header .mobile-agent-back[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n left: 4px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n background: transparent;\\r\\n border: none;\\r\\n width: 44px;\\r\\n height: 44px;\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n padding: 0;\\r\\n color: #333;\\n}\\n.mobile-agent-select-header .mobile-agent-back i[data-v-bf6d760c] {\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\n}\\n.mobile-agent-select-header .mobile-agent-title-text[data-v-bf6d760c] {\\r\\n font-size: 17px;\\r\\n font-weight: 500;\\r\\n color: #000;\\n}\\n.agent-selector .agent-title[data-v-bf6d760c] {\\r\\n display: none;\\n}\\r\\n\\r\\n /* H5列表模式:侧边栏全屏展示 */\\n.chat-layout.h5-list-mode .chat-sidebar[data-v-bf6d760c] {\\r\\n position: relative !important;\\r\\n width: 100% !important;\\r\\n max-width: 100% !important;\\r\\n min-width: 100% !important;\\r\\n height: 100%;\\r\\n transform: translateX(0) !important;\\r\\n box-shadow: none !important;\\r\\n border-right: none;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n padding: 14px 16px;\\r\\n position: relative;\\n}\\n.sidebar-back-btn[data-v-bf6d760c] {\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border: none;\\r\\n border-radius: 10px;\\r\\n background: transparent;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n position: absolute;\\r\\n left: 8px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n padding: 0;\\n}\\n.sidebar-back-btn i[data-v-bf6d760c] {\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header .el-icon-chat-dot-round[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n right: 16px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\n}\\n.chat-sidebar[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n inset: 0 auto 0 0;\\r\\n width: min(82vw, 320px);\\r\\n min-width: auto;\\r\\n max-width: 320px;\\r\\n height: 100%;\\r\\n border-right: none;\\r\\n box-shadow: 8px 0 24px rgba(15, 23, 42, 0.12);\\r\\n transform: translateX(-100%);\\r\\n transition: transform 0.24s ease;\\n}\\n.chat-sidebar.open[data-v-bf6d760c] {\\r\\n transform: translateX(0);\\n}\\n.chat-header[data-v-bf6d760c] {\\r\\n padding: 10px 12px;\\r\\n background: transparent;\\r\\n border-bottom: none;\\n}\\n.chat-header .chat-agent-avatar-wrapper[data-v-bf6d760c] {\\r\\n display: none;\\n}\\n.chat-header .agent-desc[data-v-bf6d760c] {\\r\\n display: none;\\n}\\n.chat-header .header-left[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n justify-content: center;\\n}\\n.chat-header .header-left .mobile-back-btn[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n left: 12px;\\r\\n background: transparent;\\n}\\n.chat-header .header-actions .mobile-header-btn[data-v-bf6d760c] {\\r\\n background: transparent;\\n}\\n.chat-body[data-v-bf6d760c] {\\r\\n padding: 12px;\\r\\n background-position: center top;\\n}\\n.msg-row[data-v-bf6d760c] {\\r\\n padding: 12px 0;\\n}\\n.msg-main[data-v-bf6d760c] {\\r\\n width: 100% !important;\\r\\n max-width: 100%;\\n}\\n.bubble[data-v-bf6d760c] {\\r\\n font-size: 14px;\\n}\\n.bubble.user[data-v-bf6d760c] {\\r\\n max-width: 88%;\\n}\\n.chat-footer[data-v-bf6d760c] {\\r\\n padding: 12px 0 max(12px, env(safe-area-inset-bottom));\\n}\\n.input-area[data-v-bf6d760c] {\\r\\n width: calc(100% - 24px) !important;\\r\\n margin: 0 12px;\\r\\n padding: 6px 6px 6px 4px;\\r\\n border-radius: 24px;\\r\\n border: none;\\r\\n background: #f5f5f5;\\r\\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\\r\\n flex-wrap: nowrap;\\r\\n align-items: center;\\n}\\n.input-area[data-v-bf6d760c]:focus-within {\\r\\n border-color: transparent;\\r\\n background: #f5f5f5;\\r\\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\\n}\\n.input-area[data-v-bf6d760c]::after {\\r\\n display: none;\\n}\\n.voice-btn[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\r\\n border: none;\\r\\n background: transparent;\\r\\n border-radius: 50%;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n transition: background 0.2s;\\r\\n padding: 0;\\n}\\n.voice-btn[data-v-bf6d760c]:active {\\r\\n background: rgba(0,0,0,0.05);\\n}\\n.voice-btn[data-v-bf6d760c]:disabled {\\r\\n opacity: 0.4;\\r\\n cursor: not-allowed;\\n}\\n.chat-textarea[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n flex-basis: 0;\\r\\n height: 36px;\\r\\n min-height: 36px;\\r\\n max-height: 100px;\\r\\n font-size: 15px;\\r\\n background: #EBEBEB;\\r\\n border-radius: 18px;\\r\\n padding: 0 14px;\\r\\n line-height: 36px;\\r\\n margin: 0 4px;\\r\\n color: #333;\\n}\\n.chat-textarea[data-v-bf6d760c]::-moz-placeholder {\\r\\n color: #999;\\r\\n font-size: 15px;\\n}\\n.chat-textarea[data-v-bf6d760c]::placeholder {\\r\\n color: #999;\\r\\n font-size: 15px;\\n}\\n.send-btn[data-v-bf6d760c] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\r\\n padding: 0;\\r\\n border-radius: 50%;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: #1677ff;\\r\\n color: #fff;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\n}\\n.send-btn svg[data-v-bf6d760c] {\\r\\n display: block;\\n}\\n.send-btn[data-v-bf6d760c]::after {\\r\\n content: none;\\n}\\n.send-btn.active[data-v-bf6d760c] {\\r\\n background: #1677ff;\\n}\\n.send-btn[data-v-bf6d760c]:disabled {\\r\\n background: #88bfff;\\r\\n cursor: not-allowed;\\n}\\n.send-btn[data-v-bf6d760c]:active {\\r\\n transform: scale(0.92);\\n}\\r\\n\\r\\n /* 移动端停止按钮 */\\n.stop-btn[data-v-bf6d760c] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\n}\\n.agent-selector[data-v-bf6d760c] {\\r\\n padding: 28px 12px;\\n}\\n.agent-list[data-v-bf6d760c] {\\r\\n grid-template-columns: 1fr;\\r\\n gap: 52px 0;\\n}\\n.agent-item[data-v-bf6d760c] {\\r\\n height: auto;\\r\\n min-height: 84px;\\r\\n padding: 18px 16px 18px 96px;\\n}\\n.agent-avatar-wrapper[data-v-bf6d760c] {\\r\\n left: 8px;\\r\\n top: -18px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-bf6d760c] {\\r\\n width: 74px;\\r\\n height: 88px;\\n}\\n.agent-list-avatar[data-v-bf6d760c]:not(.has-agent-img) {\\r\\n width: 62px;\\r\\n height: 78px;\\n}\\n.desc[data-v-bf6d760c] {\\r\\n white-space: normal;\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\n}\\n.guess-box[data-v-bf6d760c] {\\r\\n padding: 16px;\\n}\\n.session-delete[data-v-bf6d760c] {\\r\\n display: none;\\n}\\r\\n\\r\\n /* ── H5 语音模式 ── */\\n.hold-talk-btn[data-v-bf6d760c] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n gap: 6px;\\r\\n height: 36px;\\r\\n min-height: 36px;\\r\\n margin: 0 4px;\\r\\n border-radius: 18px;\\r\\n background: #EBEBEB;\\r\\n border: none;\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n cursor: pointer;\\r\\n -moz-user-select: none;\\r\\n user-select: none;\\r\\n -webkit-user-select: none;\\r\\n transition: background 0.15s;\\n}\\n.hold-talk-btn[data-v-bf6d760c]:active {\\r\\n background: #ddd;\\n}\\n.hold-talk-btn.recording[data-v-bf6d760c] {\\r\\n background: #e8f0fe;\\r\\n color: #333;\\n}\\n.hold-talk-btn .hold-talk-icon[data-v-bf6d760c] {\\r\\n flex-shrink: 0;\\n}\\r\\n\\r\\n /* 语音录制浮层 */\\n.voice-recording-overlay[data-v-bf6d760c] {\\r\\n position: fixed;\\r\\n left: 0;\\r\\n right: 0;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n z-index: 1000;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: rgba(0,0,0,0.35);\\r\\n animation: fadeIn-bf6d760c 0.15s ease;\\n}\\n.voice-recording-card[data-v-bf6d760c] {\\r\\n width: 200px;\\r\\n padding: 32px 24px 24px;\\r\\n background: #fff;\\r\\n border-radius: 20px;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n gap: 16px;\\r\\n box-shadow: 0 8px 32px rgba(0,0,0,0.15);\\n}\\n.voice-recording-wave[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 4px;\\r\\n height: 40px;\\n}\\n.voice-recording-wave span[data-v-bf6d760c] {\\r\\n width: 4px;\\r\\n background: #1677ff;\\r\\n border-radius: 2px;\\r\\n animation: waveAnim-bf6d760c 0.6s ease-in-out infinite alternate;\\n}\\n.voice-recording-wave span[data-v-bf6d760c]:nth-child(1) { height: 16px; animation-delay: 0s;\\n}\\n.voice-recording-wave span[data-v-bf6d760c]:nth-child(2) { height: 28px; animation-delay: 0.1s;\\n}\\n.voice-recording-wave span[data-v-bf6d760c]:nth-child(3) { height: 40px; animation-delay: 0.2s;\\n}\\n.voice-recording-wave span[data-v-bf6d760c]:nth-child(4) { height: 28px; animation-delay: 0.3s;\\n}\\n.voice-recording-wave span[data-v-bf6d760c]:nth-child(5) { height: 16px; animation-delay: 0.4s;\\n}\\n@keyframes waveAnim-bf6d760c {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n.voice-recording-duration[data-v-bf6d760c] {\\r\\n font-size: 32px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n line-height: 1;\\n}\\n.voice-recording-duration .unit[data-v-bf6d760c] {\\r\\n font-size: 18px;\\r\\n font-weight: 400;\\r\\n color: #999;\\r\\n margin-left: 2px;\\n}\\n.voice-recording-hint[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 4px;\\r\\n font-size: 13px;\\r\\n color: #999;\\n}\\n.voice-recording-hint.cancel[data-v-bf6d760c] {\\r\\n color: #ff4d4f;\\n}\\n@keyframes fadeIn-bf6d760c {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\n}\\n@media screen and (max-width: 480px) {\\n.agent-name[data-v-bf6d760c] {\\r\\n font-size: 14px;\\n}\\n.agent-desc[data-v-bf6d760c] {\\r\\n max-width: calc(100vw - 132px);\\n}\\n.mobile-menu-btn[data-v-bf6d760c],\\r\\n .mobile-header-btn[data-v-bf6d760c] {\\r\\n width: 32px;\\r\\n height: 32px;\\n}\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
3360
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.chat-layout[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #fff;\\r\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;\\r\\n position: relative;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\n}\\n.sidebar-mask[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n inset: 0;\\r\\n background: rgba(15, 23, 42, 0.28);\\r\\n z-index: 29;\\n}\\n.chat-layout.is-mobile[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n height: 100%;\\n}\\n.chat-main[data-v-bf6d760c],\\r\\n.chat-body[data-v-bf6d760c] {\\r\\n min-height: 0;\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
3361
|
+
|
|
3362
|
+
/***/ }),
|
|
3363
|
+
|
|
3364
|
+
/***/ "./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css":
|
|
3365
|
+
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
3366
|
+
!*** ./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css ***!
|
|
3367
|
+
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
3368
|
+
/*! no static exports found */
|
|
3369
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
3370
|
+
|
|
3371
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\r\\n/* H5 列表模式:侧边栏全屏展示 */\\n.chat-layout.h5-list-mode .chat-sidebar {\\r\\n position: relative !important;\\r\\n width: 100% !important;\\r\\n max-width: 100% !important;\\r\\n min-width: 100% !important;\\r\\n height: 100%;\\r\\n transform: translateX(0) !important;\\r\\n box-shadow: none !important;\\r\\n border-right: none;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n padding: 14px 16px;\\r\\n position: relative;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header img {\\r\\n position: absolute;\\r\\n right: 16px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\r\\n cursor: pointer;\\n}\\n@media screen and (max-width: 768px) {\\n.chat-sidebar {\\r\\n position: absolute;\\r\\n inset: 0 auto 0 0;\\r\\n width: min(82vw, 320px);\\r\\n min-width: auto;\\r\\n max-width: 320px;\\r\\n height: 100%;\\r\\n border-right: none;\\r\\n box-shadow: 8px 0 24px rgba(15, 23, 42, 0.12);\\r\\n transform: translateX(-100%);\\r\\n transition: transform 0.24s ease;\\n}\\n.chat-sidebar.open {\\r\\n transform: translateX(0);\\n}\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
3278
3372
|
|
|
3279
3373
|
/***/ }),
|
|
3280
3374
|
|
|
@@ -3335,157 +3429,6 @@ eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n //
|
|
|
3335
3429
|
|
|
3336
3430
|
/***/ }),
|
|
3337
3431
|
|
|
3338
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/message.js":
|
|
3339
|
-
/*!********************************************************************!*\
|
|
3340
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/message.js ***!
|
|
3341
|
-
\********************************************************************/
|
|
3342
|
-
/*! no static exports found */
|
|
3343
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3344
|
-
|
|
3345
|
-
eval("module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 81);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, exports) {\n\nmodule.exports = __webpack_require__(/*! element-ui/lib/utils/popup */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/index.js\");\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, exports) {\n\nmodule.exports = __webpack_require__(/*! element-ui/lib/utils/types */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/types.js\");\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\nmodule.exports = __webpack_require__(/*! element-ui/lib/utils/vdom */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/vdom.js\");\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = __webpack_require__(/*! vue */ \"vue\");\n\n/***/ }),\n\n/***/ 81:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external \"vue\"\nvar external_vue_ = __webpack_require__(7);\nvar external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/message/src/main.vue?vue&type=template&id=455b9f60&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { name: \"el-message-fade\" },\n on: { \"after-leave\": _vm.handleAfterLeave }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.visible,\n expression: \"visible\"\n }\n ],\n class: [\n \"el-message\",\n _vm.type && !_vm.iconClass ? \"el-message--\" + _vm.type : \"\",\n _vm.center ? \"is-center\" : \"\",\n _vm.showClose ? \"is-closable\" : \"\",\n _vm.customClass\n ],\n style: _vm.positionStyle,\n attrs: { role: \"alert\" },\n on: { mouseenter: _vm.clearTimer, mouseleave: _vm.startTimer }\n },\n [\n _vm.iconClass\n ? _c(\"i\", { class: _vm.iconClass })\n : _c(\"i\", { class: _vm.typeClass }),\n _vm._t(\"default\", [\n !_vm.dangerouslyUseHTMLString\n ? _c(\"p\", { staticClass: \"el-message__content\" }, [\n _vm._v(_vm._s(_vm.message))\n ])\n : _c(\"p\", {\n staticClass: \"el-message__content\",\n domProps: { innerHTML: _vm._s(_vm.message) }\n })\n ]),\n _vm.showClose\n ? _c(\"i\", {\n staticClass: \"el-message__closeBtn el-icon-close\",\n on: { click: _vm.close }\n })\n : _vm._e()\n ],\n 2\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/message/src/main.vue?vue&type=template&id=455b9f60&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/message/src/main.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar typeMap = {\n success: 'success',\n info: 'info',\n warning: 'warning',\n error: 'error'\n};\n\n/* harmony default export */ var mainvue_type_script_lang_js_ = ({\n data: function data() {\n return {\n visible: false,\n message: '',\n duration: 3000,\n type: 'info',\n iconClass: '',\n customClass: '',\n onClose: null,\n showClose: false,\n closed: false,\n verticalOffset: 20,\n timer: null,\n dangerouslyUseHTMLString: false,\n center: false\n };\n },\n\n\n computed: {\n typeClass: function typeClass() {\n return this.type && !this.iconClass ? 'el-message__icon el-icon-' + typeMap[this.type] : '';\n },\n positionStyle: function positionStyle() {\n return {\n 'top': this.verticalOffset + 'px'\n };\n }\n },\n\n watch: {\n closed: function closed(newVal) {\n if (newVal) {\n this.visible = false;\n }\n }\n },\n\n methods: {\n handleAfterLeave: function handleAfterLeave() {\n this.$destroy(true);\n this.$el.parentNode.removeChild(this.$el);\n },\n close: function close() {\n this.closed = true;\n if (typeof this.onClose === 'function') {\n this.onClose(this);\n }\n },\n clearTimer: function clearTimer() {\n clearTimeout(this.timer);\n },\n startTimer: function startTimer() {\n var _this = this;\n\n if (this.duration > 0) {\n this.timer = setTimeout(function () {\n if (!_this.closed) {\n _this.close();\n }\n }, this.duration);\n }\n },\n keydown: function keydown(e) {\n if (e.keyCode === 27) {\n // esc关闭消息\n if (!this.closed) {\n this.close();\n }\n }\n }\n },\n mounted: function mounted() {\n this.startTimer();\n document.addEventListener('keydown', this.keydown);\n },\n beforeDestroy: function beforeDestroy() {\n document.removeEventListener('keydown', this.keydown);\n }\n});\n// CONCATENATED MODULE: ./packages/message/src/main.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/message/src/main.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_mainvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/message/src/main.vue\"\n/* harmony default export */ var main = (component.exports);\n// EXTERNAL MODULE: external \"element-ui/lib/utils/popup\"\nvar popup_ = __webpack_require__(13);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/vdom\"\nvar vdom_ = __webpack_require__(23);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/types\"\nvar types_ = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./packages/message/src/main.js\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\nvar MessageConstructor = external_vue_default.a.extend(main);\n\nvar instance = void 0;\nvar instances = [];\nvar seed = 1;\n\nvar main_Message = function Message(options) {\n if (external_vue_default.a.prototype.$isServer) return;\n options = options || {};\n if (typeof options === 'string') {\n options = {\n message: options\n };\n }\n var userOnClose = options.onClose;\n var id = 'message_' + seed++;\n\n options.onClose = function () {\n Message.close(id, userOnClose);\n };\n instance = new MessageConstructor({\n data: options\n });\n instance.id = id;\n if (Object(vdom_[\"isVNode\"])(instance.message)) {\n instance.$slots.default = [instance.message];\n instance.message = null;\n }\n instance.$mount();\n document.body.appendChild(instance.$el);\n var verticalOffset = options.offset || 20;\n instances.forEach(function (item) {\n verticalOffset += item.$el.offsetHeight + 16;\n });\n instance.verticalOffset = verticalOffset;\n instance.visible = true;\n instance.$el.style.zIndex = popup_[\"PopupManager\"].nextZIndex();\n instances.push(instance);\n return instance;\n};\n\n['success', 'warning', 'info', 'error'].forEach(function (type) {\n main_Message[type] = function (options) {\n if (Object(types_[\"isObject\"])(options) && !Object(vdom_[\"isVNode\"])(options)) {\n return main_Message(_extends({}, options, {\n type: type\n }));\n }\n return main_Message({\n type: type,\n message: options\n });\n };\n});\n\nmain_Message.close = function (id, userOnClose) {\n var len = instances.length;\n var index = -1;\n var removedHeight = void 0;\n for (var i = 0; i < len; i++) {\n if (id === instances[i].id) {\n removedHeight = instances[i].$el.offsetHeight;\n index = i;\n if (typeof userOnClose === 'function') {\n userOnClose(instances[i]);\n }\n instances.splice(i, 1);\n break;\n }\n }\n if (len <= 1 || index === -1 || index > instances.length - 1) return;\n for (var _i = index; _i < len - 1; _i++) {\n var dom = instances[_i].$el;\n dom.style['top'] = parseInt(dom.style['top'], 10) - removedHeight - 16 + 'px';\n }\n};\n\nmain_Message.closeAll = function () {\n for (var i = instances.length - 1; i >= 0; i--) {\n instances[i].close();\n }\n};\n\n/* harmony default export */ var src_main = (main_Message);\n// CONCATENATED MODULE: ./packages/message/index.js\n\n/* harmony default export */ var message = __webpack_exports__[\"default\"] = (src_main);\n\n/***/ })\n\n/******/ });\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/message.js?");
|
|
3346
|
-
|
|
3347
|
-
/***/ }),
|
|
3348
|
-
|
|
3349
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/base.css":
|
|
3350
|
-
/*!******************************************************************************!*\
|
|
3351
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/base.css ***!
|
|
3352
|
-
\******************************************************************************/
|
|
3353
|
-
/*! no static exports found */
|
|
3354
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3355
|
-
|
|
3356
|
-
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../../_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2!./base.css */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/base.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"08b51fce\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/base.css?");
|
|
3357
|
-
|
|
3358
|
-
/***/ }),
|
|
3359
|
-
|
|
3360
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.ttf":
|
|
3361
|
-
/*!*********************************************************************************************!*\
|
|
3362
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.ttf ***!
|
|
3363
|
-
\*********************************************************************************************/
|
|
3364
|
-
/*! no static exports found */
|
|
3365
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3366
|
-
|
|
3367
|
-
eval("module.exports = __webpack_require__.p + \"static/fonts/element-icons.732389de.ttf\";\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.ttf?");
|
|
3368
|
-
|
|
3369
|
-
/***/ }),
|
|
3370
|
-
|
|
3371
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.woff":
|
|
3372
|
-
/*!**********************************************************************************************!*\
|
|
3373
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.woff ***!
|
|
3374
|
-
\**********************************************************************************************/
|
|
3375
|
-
/*! no static exports found */
|
|
3376
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3377
|
-
|
|
3378
|
-
eval("module.exports = __webpack_require__.p + \"static/fonts/element-icons.535877f5.woff\";\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/fonts/element-icons.woff?");
|
|
3379
|
-
|
|
3380
|
-
/***/ }),
|
|
3381
|
-
|
|
3382
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/message.css":
|
|
3383
|
-
/*!*********************************************************************************!*\
|
|
3384
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/message.css ***!
|
|
3385
|
-
\*********************************************************************************/
|
|
3386
|
-
/*! no static exports found */
|
|
3387
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3388
|
-
|
|
3389
|
-
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../../_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-3-2!./message.css */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/message.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"879b6244\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/theme-chalk/message.css?");
|
|
3390
|
-
|
|
3391
|
-
/***/ }),
|
|
3392
|
-
|
|
3393
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/dom.js":
|
|
3394
|
-
/*!**********************************************************************!*\
|
|
3395
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/dom.js ***!
|
|
3396
|
-
\**********************************************************************/
|
|
3397
|
-
/*! no static exports found */
|
|
3398
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3399
|
-
|
|
3400
|
-
"use strict";
|
|
3401
|
-
eval("\n\nexports.__esModule = true;\nexports.isInContainer = exports.getScrollContainer = exports.isScroll = exports.getStyle = exports.once = exports.off = exports.on = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /* istanbul ignore next */\n\nexports.hasClass = hasClass;\nexports.addClass = addClass;\nexports.removeClass = removeClass;\nexports.setStyle = setStyle;\n\nvar _vue = __webpack_require__(/*! vue */ \"vue\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isServer = _vue2.default.prototype.$isServer;\nvar SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\nvar MOZ_HACK_REGEXP = /^moz([A-Z])/;\nvar ieVersion = isServer ? 0 : Number(document.documentMode);\n\n/* istanbul ignore next */\nvar trim = function trim(string) {\n return (string || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n};\n/* istanbul ignore next */\nvar camelCase = function camelCase(name) {\n return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {\n return offset ? letter.toUpperCase() : letter;\n }).replace(MOZ_HACK_REGEXP, 'Moz$1');\n};\n\n/* istanbul ignore next */\nvar on = exports.on = function () {\n if (!isServer && document.addEventListener) {\n return function (element, event, handler) {\n if (element && event && handler) {\n element.addEventListener(event, handler, false);\n }\n };\n } else {\n return function (element, event, handler) {\n if (element && event && handler) {\n element.attachEvent('on' + event, handler);\n }\n };\n }\n}();\n\n/* istanbul ignore next */\nvar off = exports.off = function () {\n if (!isServer && document.removeEventListener) {\n return function (element, event, handler) {\n if (element && event) {\n element.removeEventListener(event, handler, false);\n }\n };\n } else {\n return function (element, event, handler) {\n if (element && event) {\n element.detachEvent('on' + event, handler);\n }\n };\n }\n}();\n\n/* istanbul ignore next */\nvar once = exports.once = function once(el, event, fn) {\n var listener = function listener() {\n if (fn) {\n fn.apply(this, arguments);\n }\n off(el, event, listener);\n };\n on(el, event, listener);\n};\n\n/* istanbul ignore next */\nfunction hasClass(el, cls) {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n } else {\n return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;\n }\n};\n\n/* istanbul ignore next */\nfunction addClass(el, cls) {\n if (!el) return;\n var curClass = el.className;\n var classes = (cls || '').split(' ');\n\n for (var i = 0, j = classes.length; i < j; i++) {\n var clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ' ' + clsName;\n }\n }\n if (!el.classList) {\n el.setAttribute('class', curClass);\n }\n};\n\n/* istanbul ignore next */\nfunction removeClass(el, cls) {\n if (!el || !cls) return;\n var classes = cls.split(' ');\n var curClass = ' ' + el.className + ' ';\n\n for (var i = 0, j = classes.length; i < j; i++) {\n var clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(' ' + clsName + ' ', ' ');\n }\n }\n if (!el.classList) {\n el.setAttribute('class', trim(curClass));\n }\n};\n\n/* istanbul ignore next */\nvar getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) {\n if (isServer) return;\n if (!element || !styleName) return null;\n styleName = camelCase(styleName);\n if (styleName === 'float') {\n styleName = 'styleFloat';\n }\n try {\n switch (styleName) {\n case 'opacity':\n try {\n return element.filters.item('alpha').opacity / 100;\n } catch (e) {\n return 1.0;\n }\n default:\n return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;\n }\n } catch (e) {\n return element.style[styleName];\n }\n} : function (element, styleName) {\n if (isServer) return;\n if (!element || !styleName) return null;\n styleName = camelCase(styleName);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n try {\n var computed = document.defaultView.getComputedStyle(element, '');\n return element.style[styleName] || computed ? computed[styleName] : null;\n } catch (e) {\n return element.style[styleName];\n }\n};\n\n/* istanbul ignore next */\nfunction setStyle(element, styleName, value) {\n if (!element || !styleName) return;\n\n if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') {\n for (var prop in styleName) {\n if (styleName.hasOwnProperty(prop)) {\n setStyle(element, prop, styleName[prop]);\n }\n }\n } else {\n styleName = camelCase(styleName);\n if (styleName === 'opacity' && ieVersion < 9) {\n element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';\n } else {\n element.style[styleName] = value;\n }\n }\n};\n\nvar isScroll = exports.isScroll = function isScroll(el, vertical) {\n if (isServer) return;\n\n var determinedDirection = vertical !== null && vertical !== undefined;\n var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow');\n\n return overflow.match(/(scroll|auto|overlay)/);\n};\n\nvar getScrollContainer = exports.getScrollContainer = function getScrollContainer(el, vertical) {\n if (isServer) return;\n\n var parent = el;\n while (parent) {\n if ([window, document, document.documentElement].includes(parent)) {\n return window;\n }\n if (isScroll(parent, vertical)) {\n return parent;\n }\n parent = parent.parentNode;\n }\n\n return parent;\n};\n\nvar isInContainer = exports.isInContainer = function isInContainer(el, container) {\n if (isServer || !el || !container) return false;\n\n var elRect = el.getBoundingClientRect();\n var containerRect = void 0;\n\n if ([window, document, document.documentElement, null, undefined].includes(container)) {\n containerRect = {\n top: 0,\n right: window.innerWidth,\n bottom: window.innerHeight,\n left: 0\n };\n } else {\n containerRect = container.getBoundingClientRect();\n }\n\n return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/dom.js?");
|
|
3402
|
-
|
|
3403
|
-
/***/ }),
|
|
3404
|
-
|
|
3405
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/merge.js":
|
|
3406
|
-
/*!************************************************************************!*\
|
|
3407
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/merge.js ***!
|
|
3408
|
-
\************************************************************************/
|
|
3409
|
-
/*! no static exports found */
|
|
3410
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3411
|
-
|
|
3412
|
-
"use strict";
|
|
3413
|
-
eval("\n\nexports.__esModule = true;\n\nexports.default = function (target) {\n for (var i = 1, j = arguments.length; i < j; i++) {\n var source = arguments[i] || {};\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n var value = source[prop];\n if (value !== undefined) {\n target[prop] = value;\n }\n }\n }\n }\n\n return target;\n};\n\n;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/merge.js?");
|
|
3414
|
-
|
|
3415
|
-
/***/ }),
|
|
3416
|
-
|
|
3417
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/index.js":
|
|
3418
|
-
/*!******************************************************************************!*\
|
|
3419
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/index.js ***!
|
|
3420
|
-
\******************************************************************************/
|
|
3421
|
-
/*! no static exports found */
|
|
3422
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3423
|
-
|
|
3424
|
-
"use strict";
|
|
3425
|
-
eval("\n\nexports.__esModule = true;\nexports.PopupManager = undefined;\n\nvar _vue = __webpack_require__(/*! vue */ \"vue\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _merge = __webpack_require__(/*! element-ui/lib/utils/merge */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _popupManager = __webpack_require__(/*! element-ui/lib/utils/popup/popup-manager */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/popup-manager.js\");\n\nvar _popupManager2 = _interopRequireDefault(_popupManager);\n\nvar _scrollbarWidth = __webpack_require__(/*! ../scrollbar-width */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/scrollbar-width.js\");\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _dom = __webpack_require__(/*! ../dom */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/dom.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar idSeed = 1;\n\nvar scrollBarWidth = void 0;\n\nexports.default = {\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n openDelay: {},\n closeDelay: {},\n zIndex: {},\n modal: {\n type: Boolean,\n default: false\n },\n modalFade: {\n type: Boolean,\n default: true\n },\n modalClass: {},\n modalAppendToBody: {\n type: Boolean,\n default: false\n },\n lockScroll: {\n type: Boolean,\n default: true\n },\n closeOnPressEscape: {\n type: Boolean,\n default: false\n },\n closeOnClickModal: {\n type: Boolean,\n default: false\n }\n },\n\n beforeMount: function beforeMount() {\n this._popupId = 'popup-' + idSeed++;\n _popupManager2.default.register(this._popupId, this);\n },\n beforeDestroy: function beforeDestroy() {\n _popupManager2.default.deregister(this._popupId);\n _popupManager2.default.closeModal(this._popupId);\n\n this.restoreBodyStyle();\n },\n data: function data() {\n return {\n opened: false,\n bodyPaddingRight: null,\n computedBodyPaddingRight: 0,\n withoutHiddenClass: true,\n rendered: false\n };\n },\n\n\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (val) {\n if (this._opening) return;\n if (!this.rendered) {\n this.rendered = true;\n _vue2.default.nextTick(function () {\n _this.open();\n });\n } else {\n this.open();\n }\n } else {\n this.close();\n }\n }\n },\n\n methods: {\n open: function open(options) {\n var _this2 = this;\n\n if (!this.rendered) {\n this.rendered = true;\n }\n\n var props = (0, _merge2.default)({}, this.$props || this, options);\n\n if (this._closeTimer) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n clearTimeout(this._openTimer);\n\n var openDelay = Number(props.openDelay);\n if (openDelay > 0) {\n this._openTimer = setTimeout(function () {\n _this2._openTimer = null;\n _this2.doOpen(props);\n }, openDelay);\n } else {\n this.doOpen(props);\n }\n },\n doOpen: function doOpen(props) {\n if (this.$isServer) return;\n if (this.willOpen && !this.willOpen()) return;\n if (this.opened) return;\n\n this._opening = true;\n\n var dom = this.$el;\n\n var modal = props.modal;\n\n var zIndex = props.zIndex;\n if (zIndex) {\n _popupManager2.default.zIndex = zIndex;\n }\n\n if (modal) {\n if (this._closing) {\n _popupManager2.default.closeModal(this._popupId);\n this._closing = false;\n }\n _popupManager2.default.openModal(this._popupId, _popupManager2.default.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);\n if (props.lockScroll) {\n this.withoutHiddenClass = !(0, _dom.hasClass)(document.body, 'el-popup-parent--hidden');\n if (this.withoutHiddenClass) {\n this.bodyPaddingRight = document.body.style.paddingRight;\n this.computedBodyPaddingRight = parseInt((0, _dom.getStyle)(document.body, 'paddingRight'), 10);\n }\n scrollBarWidth = (0, _scrollbarWidth2.default)();\n var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;\n var bodyOverflowY = (0, _dom.getStyle)(document.body, 'overflowY');\n if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {\n document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';\n }\n (0, _dom.addClass)(document.body, 'el-popup-parent--hidden');\n }\n }\n\n if (getComputedStyle(dom).position === 'static') {\n dom.style.position = 'absolute';\n }\n\n dom.style.zIndex = _popupManager2.default.nextZIndex();\n this.opened = true;\n\n this.onOpen && this.onOpen();\n\n this.doAfterOpen();\n },\n doAfterOpen: function doAfterOpen() {\n this._opening = false;\n },\n close: function close() {\n var _this3 = this;\n\n if (this.willClose && !this.willClose()) return;\n\n if (this._openTimer !== null) {\n clearTimeout(this._openTimer);\n this._openTimer = null;\n }\n clearTimeout(this._closeTimer);\n\n var closeDelay = Number(this.closeDelay);\n\n if (closeDelay > 0) {\n this._closeTimer = setTimeout(function () {\n _this3._closeTimer = null;\n _this3.doClose();\n }, closeDelay);\n } else {\n this.doClose();\n }\n },\n doClose: function doClose() {\n this._closing = true;\n\n this.onClose && this.onClose();\n\n if (this.lockScroll) {\n setTimeout(this.restoreBodyStyle, 200);\n }\n\n this.opened = false;\n\n this.doAfterClose();\n },\n doAfterClose: function doAfterClose() {\n _popupManager2.default.closeModal(this._popupId);\n this._closing = false;\n },\n restoreBodyStyle: function restoreBodyStyle() {\n if (this.modal && this.withoutHiddenClass) {\n document.body.style.paddingRight = this.bodyPaddingRight;\n (0, _dom.removeClass)(document.body, 'el-popup-parent--hidden');\n }\n this.withoutHiddenClass = true;\n }\n }\n};\nexports.PopupManager = _popupManager2.default;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/index.js?");
|
|
3426
|
-
|
|
3427
|
-
/***/ }),
|
|
3428
|
-
|
|
3429
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/popup-manager.js":
|
|
3430
|
-
/*!**************************************************************************************!*\
|
|
3431
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/popup-manager.js ***!
|
|
3432
|
-
\**************************************************************************************/
|
|
3433
|
-
/*! no static exports found */
|
|
3434
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3435
|
-
|
|
3436
|
-
"use strict";
|
|
3437
|
-
eval("\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(/*! vue */ \"vue\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = __webpack_require__(/*! element-ui/lib/utils/dom */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/dom.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasModal = false;\nvar hasInitZIndex = false;\nvar zIndex = void 0;\n\nvar getModal = function getModal() {\n if (_vue2.default.prototype.$isServer) return;\n var modalDom = PopupManager.modalDom;\n if (modalDom) {\n hasModal = true;\n } else {\n hasModal = false;\n modalDom = document.createElement('div');\n PopupManager.modalDom = modalDom;\n\n modalDom.addEventListener('touchmove', function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n modalDom.addEventListener('click', function () {\n PopupManager.doOnModalClick && PopupManager.doOnModalClick();\n });\n }\n\n return modalDom;\n};\n\nvar instances = {};\n\nvar PopupManager = {\n modalFade: true,\n\n getInstance: function getInstance(id) {\n return instances[id];\n },\n\n register: function register(id, instance) {\n if (id && instance) {\n instances[id] = instance;\n }\n },\n\n deregister: function deregister(id) {\n if (id) {\n instances[id] = null;\n delete instances[id];\n }\n },\n\n nextZIndex: function nextZIndex() {\n return PopupManager.zIndex++;\n },\n\n modalStack: [],\n\n doOnModalClick: function doOnModalClick() {\n var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topItem) return;\n\n var instance = PopupManager.getInstance(topItem.id);\n if (instance && instance.closeOnClickModal) {\n instance.close();\n }\n },\n\n openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {\n if (_vue2.default.prototype.$isServer) return;\n if (!id || zIndex === undefined) return;\n this.modalFade = modalFade;\n\n var modalStack = this.modalStack;\n\n for (var i = 0, j = modalStack.length; i < j; i++) {\n var item = modalStack[i];\n if (item.id === id) {\n return;\n }\n }\n\n var modalDom = getModal();\n\n (0, _dom.addClass)(modalDom, 'v-modal');\n if (this.modalFade && !hasModal) {\n (0, _dom.addClass)(modalDom, 'v-modal-enter');\n }\n if (modalClass) {\n var classArr = modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return (0, _dom.addClass)(modalDom, item);\n });\n }\n setTimeout(function () {\n (0, _dom.removeClass)(modalDom, 'v-modal-enter');\n }, 200);\n\n if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\n dom.parentNode.appendChild(modalDom);\n } else {\n document.body.appendChild(modalDom);\n }\n\n if (zIndex) {\n modalDom.style.zIndex = zIndex;\n }\n modalDom.tabIndex = 0;\n modalDom.style.display = '';\n\n this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\n },\n\n closeModal: function closeModal(id) {\n var modalStack = this.modalStack;\n var modalDom = getModal();\n\n if (modalStack.length > 0) {\n var topItem = modalStack[modalStack.length - 1];\n if (topItem.id === id) {\n if (topItem.modalClass) {\n var classArr = topItem.modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return (0, _dom.removeClass)(modalDom, item);\n });\n }\n\n modalStack.pop();\n if (modalStack.length > 0) {\n modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\n }\n } else {\n for (var i = modalStack.length - 1; i >= 0; i--) {\n if (modalStack[i].id === id) {\n modalStack.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (modalStack.length === 0) {\n if (this.modalFade) {\n (0, _dom.addClass)(modalDom, 'v-modal-leave');\n }\n setTimeout(function () {\n if (modalStack.length === 0) {\n if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\n modalDom.style.display = 'none';\n PopupManager.modalDom = undefined;\n }\n (0, _dom.removeClass)(modalDom, 'v-modal-leave');\n }, 200);\n }\n }\n};\n\nObject.defineProperty(PopupManager, 'zIndex', {\n configurable: true,\n get: function get() {\n if (!hasInitZIndex) {\n zIndex = zIndex || (_vue2.default.prototype.$ELEMENT || {}).zIndex || 2000;\n hasInitZIndex = true;\n }\n return zIndex;\n },\n set: function set(value) {\n zIndex = value;\n }\n});\n\nvar getTopPopup = function getTopPopup() {\n if (_vue2.default.prototype.$isServer) return;\n if (PopupManager.modalStack.length > 0) {\n var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topPopup) return;\n var instance = PopupManager.getInstance(topPopup.id);\n\n return instance;\n }\n};\n\nif (!_vue2.default.prototype.$isServer) {\n // handle `esc` key when the popup is shown\n window.addEventListener('keydown', function (event) {\n if (event.keyCode === 27) {\n var topPopup = getTopPopup();\n\n if (topPopup && topPopup.closeOnPressEscape) {\n topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();\n }\n }\n });\n}\n\nexports.default = PopupManager;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/popup/popup-manager.js?");
|
|
3438
|
-
|
|
3439
|
-
/***/ }),
|
|
3440
|
-
|
|
3441
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/scrollbar-width.js":
|
|
3442
|
-
/*!**********************************************************************************!*\
|
|
3443
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/scrollbar-width.js ***!
|
|
3444
|
-
\**********************************************************************************/
|
|
3445
|
-
/*! no static exports found */
|
|
3446
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3447
|
-
|
|
3448
|
-
"use strict";
|
|
3449
|
-
eval("\n\nexports.__esModule = true;\n\nexports.default = function () {\n if (_vue2.default.prototype.$isServer) return 0;\n if (scrollBarWidth !== undefined) return scrollBarWidth;\n\n var outer = document.createElement('div');\n outer.className = 'el-scrollbar__wrap';\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n outer.style.position = 'absolute';\n outer.style.top = '-9999px';\n document.body.appendChild(outer);\n\n var widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n var inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n var widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n scrollBarWidth = widthNoScroll - widthWithScroll;\n\n return scrollBarWidth;\n};\n\nvar _vue = __webpack_require__(/*! vue */ \"vue\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollBarWidth = void 0;\n\n;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/scrollbar-width.js?");
|
|
3450
|
-
|
|
3451
|
-
/***/ }),
|
|
3452
|
-
|
|
3453
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/types.js":
|
|
3454
|
-
/*!************************************************************************!*\
|
|
3455
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/types.js ***!
|
|
3456
|
-
\************************************************************************/
|
|
3457
|
-
/*! no static exports found */
|
|
3458
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3459
|
-
|
|
3460
|
-
"use strict";
|
|
3461
|
-
eval("\n\nexports.__esModule = true;\nexports.isDefined = exports.isUndefined = exports.isFunction = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isString = isString;\nexports.isObject = isObject;\nexports.isHtmlElement = isHtmlElement;\n\nvar _vue = __webpack_require__(/*! vue */ \"vue\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\n\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nfunction isHtmlElement(node) {\n return node && node.nodeType === Node.ELEMENT_NODE;\n}\n\n/**\n * - Inspired:\n * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js\n */\nvar isFunction = function isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n};\n\nif ( true && (typeof Int8Array === 'undefined' ? 'undefined' : _typeof(Int8Array)) !== 'object' && (_vue2.default.prototype.$isServer || typeof document.childNodes !== 'function')) {\n exports.isFunction = isFunction = function isFunction(obj) {\n return typeof obj === 'function' || false;\n };\n}\n\nexports.isFunction = isFunction;\nvar isUndefined = exports.isUndefined = function isUndefined(val) {\n return val === void 0;\n};\n\nvar isDefined = exports.isDefined = function isDefined(val) {\n return val !== undefined && val !== null;\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/types.js?");
|
|
3462
|
-
|
|
3463
|
-
/***/ }),
|
|
3464
|
-
|
|
3465
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/util.js":
|
|
3466
|
-
/*!***********************************************************************!*\
|
|
3467
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/util.js ***!
|
|
3468
|
-
\***********************************************************************/
|
|
3469
|
-
/*! no static exports found */
|
|
3470
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3471
|
-
|
|
3472
|
-
"use strict";
|
|
3473
|
-
eval("\n\nexports.__esModule = true;\nexports.isMac = exports.isEmpty = exports.isEqual = exports.arrayEquals = exports.looseEqual = exports.capitalize = exports.kebabCase = exports.autoprefixer = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.escapeRegexpString = exports.valueEquals = exports.generateId = exports.getValueByPath = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.noop = noop;\nexports.hasOwn = hasOwn;\nexports.toObject = toObject;\nexports.getPropByPath = getPropByPath;\nexports.rafThrottle = rafThrottle;\nexports.objToArray = objToArray;\n\nvar _vue = __webpack_require__(/*! vue */ \"vue\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _types = __webpack_require__(/*! element-ui/lib/utils/types */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/types.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction noop() {};\n\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n};\n\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n};\n\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n};\n\nvar getValueByPath = exports.getValueByPath = function getValueByPath(object, prop) {\n prop = prop || '';\n var paths = prop.split('.');\n var current = object;\n var result = null;\n for (var i = 0, j = paths.length; i < j; i++) {\n var path = paths[i];\n if (!current) break;\n\n if (i === j - 1) {\n result = current[path];\n break;\n }\n current = current[path];\n }\n return result;\n};\n\nfunction getPropByPath(obj, path, strict) {\n var tempObj = obj;\n path = path.replace(/\\[(\\w+)\\]/g, '.$1');\n path = path.replace(/^\\./, '');\n\n var keyArr = path.split('.');\n var i = 0;\n for (var len = keyArr.length; i < len - 1; ++i) {\n if (!tempObj && !strict) break;\n var key = keyArr[i];\n if (key in tempObj) {\n tempObj = tempObj[key];\n } else {\n if (strict) {\n throw new Error('please transfer a valid prop path to form item!');\n }\n break;\n }\n }\n return {\n o: tempObj,\n k: keyArr[i],\n v: tempObj ? tempObj[keyArr[i]] : null\n };\n};\n\nvar generateId = exports.generateId = function generateId() {\n return Math.floor(Math.random() * 10000);\n};\n\nvar valueEquals = exports.valueEquals = function valueEquals(a, b) {\n // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript\n if (a === b) return true;\n if (!(a instanceof Array)) return false;\n if (!(b instanceof Array)) return false;\n if (a.length !== b.length) return false;\n for (var i = 0; i !== a.length; ++i) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n\nvar escapeRegexpString = exports.escapeRegexpString = function escapeRegexpString() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(value).replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\n// TODO: use native Array.find, Array.findIndex when IE support is dropped\nvar arrayFindIndex = exports.arrayFindIndex = function arrayFindIndex(arr, pred) {\n for (var i = 0; i !== arr.length; ++i) {\n if (pred(arr[i])) {\n return i;\n }\n }\n return -1;\n};\n\nvar arrayFind = exports.arrayFind = function arrayFind(arr, pred) {\n var idx = arrayFindIndex(arr, pred);\n return idx !== -1 ? arr[idx] : undefined;\n};\n\n// coerce truthy value to array\nvar coerceTruthyValueToArray = exports.coerceTruthyValueToArray = function coerceTruthyValueToArray(val) {\n if (Array.isArray(val)) {\n return val;\n } else if (val) {\n return [val];\n } else {\n return [];\n }\n};\n\nvar isIE = exports.isIE = function isIE() {\n return !_vue2.default.prototype.$isServer && !isNaN(Number(document.documentMode));\n};\n\nvar isEdge = exports.isEdge = function isEdge() {\n return !_vue2.default.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;\n};\n\nvar isFirefox = exports.isFirefox = function isFirefox() {\n return !_vue2.default.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);\n};\n\nvar autoprefixer = exports.autoprefixer = function autoprefixer(style) {\n if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') return style;\n var rules = ['transform', 'transition', 'animation'];\n var prefixes = ['ms-', 'webkit-'];\n rules.forEach(function (rule) {\n var value = style[rule];\n if (rule && value) {\n prefixes.forEach(function (prefix) {\n style[prefix + rule] = value;\n });\n }\n });\n return style;\n};\n\nvar kebabCase = exports.kebabCase = function kebabCase(str) {\n var hyphenateRE = /([^-])([A-Z])/g;\n return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();\n};\n\nvar capitalize = exports.capitalize = function capitalize(str) {\n if (!(0, _types.isString)(str)) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nvar looseEqual = exports.looseEqual = function looseEqual(a, b) {\n var isObjectA = (0, _types.isObject)(a);\n var isObjectB = (0, _types.isObject)(b);\n if (isObjectA && isObjectB) {\n return JSON.stringify(a) === JSON.stringify(b);\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n } else {\n return false;\n }\n};\n\nvar arrayEquals = exports.arrayEquals = function arrayEquals(arrayA, arrayB) {\n arrayA = arrayA || [];\n arrayB = arrayB || [];\n\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n for (var i = 0; i < arrayA.length; i++) {\n if (!looseEqual(arrayA[i], arrayB[i])) {\n return false;\n }\n }\n\n return true;\n};\n\nvar isEqual = exports.isEqual = function isEqual(value1, value2) {\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return arrayEquals(value1, value2);\n }\n return looseEqual(value1, value2);\n};\n\nvar isEmpty = exports.isEmpty = function isEmpty(val) {\n // null or undefined\n if (val == null) return true;\n\n if (typeof val === 'boolean') return false;\n\n if (typeof val === 'number') return !val;\n\n if (val instanceof Error) return val.message === '';\n\n switch (Object.prototype.toString.call(val)) {\n // String or Array\n case '[object String]':\n case '[object Array]':\n return !val.length;\n\n // Map or Set or File\n case '[object File]':\n case '[object Map]':\n case '[object Set]':\n {\n return !val.size;\n }\n // Plain Object\n case '[object Object]':\n {\n return !Object.keys(val).length;\n }\n }\n\n return false;\n};\n\nfunction rafThrottle(fn) {\n var locked = false;\n return function () {\n var _this = this;\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (locked) return;\n locked = true;\n window.requestAnimationFrame(function (_) {\n fn.apply(_this, args);\n locked = false;\n });\n };\n}\n\nfunction objToArray(obj) {\n if (Array.isArray(obj)) {\n return obj;\n }\n return isEmpty(obj) ? [] : [obj];\n}\n\nvar isMac = exports.isMac = function isMac() {\n return !_vue2.default.prototype.$isServer && /macintosh|mac os x/i.test(navigator.userAgent);\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/util.js?");
|
|
3474
|
-
|
|
3475
|
-
/***/ }),
|
|
3476
|
-
|
|
3477
|
-
/***/ "./node_modules/_element-ui@2.15.14@element-ui/lib/utils/vdom.js":
|
|
3478
|
-
/*!***********************************************************************!*\
|
|
3479
|
-
!*** ./node_modules/_element-ui@2.15.14@element-ui/lib/utils/vdom.js ***!
|
|
3480
|
-
\***********************************************************************/
|
|
3481
|
-
/*! no static exports found */
|
|
3482
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3483
|
-
|
|
3484
|
-
"use strict";
|
|
3485
|
-
eval("\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isVNode = isVNode;\n\nvar _util = __webpack_require__(/*! element-ui/lib/utils/util */ \"./node_modules/_element-ui@2.15.14@element-ui/lib/utils/util.js\");\n\nfunction isVNode(node) {\n return node !== null && (typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object' && (0, _util.hasOwn)(node, 'componentOptions');\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/_element-ui@2.15.14@element-ui/lib/utils/vdom.js?");
|
|
3486
|
-
|
|
3487
|
-
/***/ }),
|
|
3488
|
-
|
|
3489
3432
|
/***/ "./node_modules/_entities@4.5.0@entities/lib/decode.js":
|
|
3490
3433
|
/*!*************************************************************!*\
|
|
3491
3434
|
!*** ./node_modules/_entities@4.5.0@entities/lib/decode.js ***!
|
|
@@ -12512,6 +12455,39 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
12512
12455
|
|
|
12513
12456
|
/***/ }),
|
|
12514
12457
|
|
|
12458
|
+
/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css":
|
|
12459
|
+
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
12460
|
+
!*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css ***!
|
|
12461
|
+
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
12462
|
+
/*! no static exports found */
|
|
12463
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
12464
|
+
|
|
12465
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"974aa374\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
12466
|
+
|
|
12467
|
+
/***/ }),
|
|
12468
|
+
|
|
12469
|
+
/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css":
|
|
12470
|
+
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
12471
|
+
!*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css ***!
|
|
12472
|
+
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
12473
|
+
/*! no static exports found */
|
|
12474
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
12475
|
+
|
|
12476
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"15edeb28\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
12477
|
+
|
|
12478
|
+
/***/ }),
|
|
12479
|
+
|
|
12480
|
+
/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css":
|
|
12481
|
+
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
12482
|
+
!*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css ***!
|
|
12483
|
+
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
12484
|
+
/*! no static exports found */
|
|
12485
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
12486
|
+
|
|
12487
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7486cf63\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
12488
|
+
|
|
12489
|
+
/***/ }),
|
|
12490
|
+
|
|
12515
12491
|
/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css":
|
|
12516
12492
|
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
12517
12493
|
!*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css ***!
|
|
@@ -12523,6 +12499,17 @@ eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// lo
|
|
|
12523
12499
|
|
|
12524
12500
|
/***/ }),
|
|
12525
12501
|
|
|
12502
|
+
/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css":
|
|
12503
|
+
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
12504
|
+
!*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css ***!
|
|
12505
|
+
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
12506
|
+
/*! no static exports found */
|
|
12507
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
12508
|
+
|
|
12509
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=1&id=bf6d760c&lang=css */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"74e63d99\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options");
|
|
12510
|
+
|
|
12511
|
+
/***/ }),
|
|
12512
|
+
|
|
12526
12513
|
/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_sass-loader@8.0.2@sass-loader/dist/cjs.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true":
|
|
12527
12514
|
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
12528
12515
|
!*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--9-oneOf-1-0!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--9-oneOf-1-1!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--9-oneOf-1-2!./node_modules/_sass-loader@8.0.2@sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true ***!
|
|
@@ -12621,7 +12608,18 @@ eval("module.exports = function(originalModule) {\n\tif (!originalModule.webpack
|
|
|
12621
12608
|
/*! exports provided: name, version, main, private, scripts, dependencies, devDependencies, browserslist, directories, keywords, license, default */
|
|
12622
12609
|
/***/ (function(module) {
|
|
12623
12610
|
|
|
12624
|
-
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.5-beta.
|
|
12611
|
+
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.5-beta.11\\\",\\\"main\\\":\\\"lib/ZjPluginIntelligent.umd.min.js\\\",\\\"private\\\":false,\\\"scripts\\\":{\\\"serve\\\":\\\"vue-cli-service serve\\\",\\\"build\\\":\\\"vue-cli-service build\\\",\\\"lib\\\":\\\"vue-cli-service build --target lib --name ZjPluginIntelligent --dest lib src/lib/index.js\\\",\\\"lib:test\\\":\\\"vue-cli-service build --mode test --target lib --name ZjPluginIntelligent --dest lib src/lib/index.js\\\"},\\\"dependencies\\\":{\\\"html2canvas\\\":\\\"^1.4.1\\\",\\\"markdown-it\\\":\\\"^14.1.0\\\"},\\\"devDependencies\\\":{\\\"@babel/preset-env\\\":\\\"^7.14.9\\\",\\\"@vue/cli-plugin-babel\\\":\\\"~4.5.0\\\",\\\"@vue/cli-plugin-eslint\\\":\\\"^4.5.13\\\",\\\"@vue/cli-plugin-vuex\\\":\\\"~4.5.0\\\",\\\"@vue/cli-service\\\":\\\"~4.5.0\\\",\\\"axios\\\":\\\"^0.27.2\\\",\\\"babel-eslint\\\":\\\"^10.1.0\\\",\\\"babel-plugin-component\\\":\\\"^1.1.1\\\",\\\"compression-webpack-plugin\\\":\\\"^6.0.3\\\",\\\"core-js\\\":\\\"^3.6.5\\\",\\\"element-ui\\\":\\\"^2.15.4\\\",\\\"eslint\\\":\\\"^7.30.0\\\",\\\"eslint-plugin-vue\\\":\\\"^7.13.0\\\",\\\"js-cookie\\\":\\\"^2.2.1\\\",\\\"node-sass\\\":\\\"^4.12.0\\\",\\\"obs-upload\\\":\\\"^1.0.4-alpha.0\\\",\\\"reconnecting-websocket\\\":\\\"^4.4.0\\\",\\\"sass-loader\\\":\\\"^8.0.2\\\",\\\"snowflake-id\\\":\\\"^1.1.0\\\",\\\"vue\\\":\\\"^2.6.11\\\",\\\"vue-template-compiler\\\":\\\"^2.6.11\\\",\\\"vuex\\\":\\\"^3.4.0\\\",\\\"pako\\\":\\\"^2.1.0\\\",\\\"webpack-bundle-analyzer\\\":\\\"^4.4.2\\\"},\\\"browserslist\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"not dead\\\"],\\\"directories\\\":{\\\"lib\\\":\\\"lib\\\"},\\\"keywords\\\":[],\\\"license\\\":\\\"ISC\\\"}\");\n\n//# sourceURL=webpack://ZjPluginIntelligent/./package.json?");
|
|
12612
|
+
|
|
12613
|
+
/***/ }),
|
|
12614
|
+
|
|
12615
|
+
/***/ "./src/assets/aiagent/AImessage.png":
|
|
12616
|
+
/*!******************************************!*\
|
|
12617
|
+
!*** ./src/assets/aiagent/AImessage.png ***!
|
|
12618
|
+
\******************************************/
|
|
12619
|
+
/*! no static exports found */
|
|
12620
|
+
/***/ (function(module, exports) {
|
|
12621
|
+
|
|
12622
|
+
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACe0lEQVR4AZyUTYvSURjFnTsarQTBTQPJLFoFrWrZB4gpiBkUhlmZb4uhRGYXBW2iXSESgW8kghUoE0FMfYC2LdrUJoSGmloIiuAU4ku/c+cq0gjNKM/53/s8zznnXq/Xv/HM+UQikTPxeHwrmUzWU6lUE/xxaKqmnjhzpJ5jholEIhwIBL4uLy+XlviMRqMc2HLIUVpSTxxx/zWdNTSsnjPGvBqPx7sQQ4VCIVwqlbJg1yGrmnriiCsN+dRnOqGRZfVbw+HwRrFYzCBsQZwb6okjrjTSTojWUFunsQ0hUi6X30+a/xvFlUZaeYhvdLhs/Qlf4akIKp4G0kgrD+vl9/vDGARZ5SHjQuG0QXlhbNZx2dO5MC4UTruH2brB/TJX4sOMk+E8Uhz05qTGHbxOvhONRs+qRn6J/C7jOeWCPOSlH2WFwj6wAfEmK+VpvozFYleA+m/IH/t8vm2ROLMG+SPGnHIHeazI0OVHA2ZNZr9BezAY/PR6vR2E38kH4AtQfNYDTEamRyHDA6YhYCOfz39iEur1eqvVavUH53PIbi72+/3z3L139DydTifMdVklf6DcQR4HhtU/squrrmgHTFq1Wq1rEx7kh5VK5RdTG/V6fch1+WYT95CH9eIwX1Nb44CDjAuF067Jy3S73QYuLdzvMy4a9xC25GXYfh/nHc7pNq+lazROFU5zRx7y0o/i4U3SYIfPeC3VHeFEpuJKI608JLKGmvCLZWg8h/CWu5h156LWMagnjrjSSDshTQ0pjGik2fomX3+DfB9hg39NBmw4ZFRTTxxxpSEfARuzhragrbfb7QvcswSrj7kOafDCIa2aeuKIa0Uzj78AAAD//zKVTWkAAAAGSURBVAMA3m5mcFEC/vMAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/assets/aiagent/AImessage.png?");
|
|
12625
12623
|
|
|
12626
12624
|
/***/ }),
|
|
12627
12625
|
|
|
@@ -12824,6 +12822,150 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@
|
|
|
12824
12822
|
|
|
12825
12823
|
/***/ }),
|
|
12826
12824
|
|
|
12825
|
+
/***/ "./src/lib/components/chatMain/AgentSelector.vue":
|
|
12826
|
+
/*!*******************************************************!*\
|
|
12827
|
+
!*** ./src/lib/components/chatMain/AgentSelector.vue ***!
|
|
12828
|
+
\*******************************************************/
|
|
12829
|
+
/*! no static exports found */
|
|
12830
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12831
|
+
|
|
12832
|
+
"use strict";
|
|
12833
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true */ \"./src/lib/components/chatMain/AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true\");\n/* harmony import */ var _AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AgentSelector.vue?vue&type=script&lang=js */ \"./src/lib/components/chatMain/AgentSelector.vue?vue&type=script&lang=js\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css */ \"./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"d478ade8\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/lib/components/chatMain/AgentSelector.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?");
|
|
12834
|
+
|
|
12835
|
+
/***/ }),
|
|
12836
|
+
|
|
12837
|
+
/***/ "./src/lib/components/chatMain/AgentSelector.vue?vue&type=script&lang=js":
|
|
12838
|
+
/*!*******************************************************************************!*\
|
|
12839
|
+
!*** ./src/lib/components/chatMain/AgentSelector.vue?vue&type=script&lang=js ***!
|
|
12840
|
+
\*******************************************************************************/
|
|
12841
|
+
/*! no static exports found */
|
|
12842
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12843
|
+
|
|
12844
|
+
"use strict";
|
|
12845
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/_babel-loader@8.4.1@babel-loader/lib!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./AgentSelector.vue?vue&type=script&lang=js */ \"./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=script&lang=js\");\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?");
|
|
12846
|
+
|
|
12847
|
+
/***/ }),
|
|
12848
|
+
|
|
12849
|
+
/***/ "./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css":
|
|
12850
|
+
/*!***************************************************************************************************************!*\
|
|
12851
|
+
!*** ./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css ***!
|
|
12852
|
+
\***************************************************************************************************************/
|
|
12853
|
+
/*! no static exports found */
|
|
12854
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12855
|
+
|
|
12856
|
+
"use strict";
|
|
12857
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?");
|
|
12858
|
+
|
|
12859
|
+
/***/ }),
|
|
12860
|
+
|
|
12861
|
+
/***/ "./src/lib/components/chatMain/AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true":
|
|
12862
|
+
/*!*************************************************************************************************!*\
|
|
12863
|
+
!*** ./src/lib/components/chatMain/AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true ***!
|
|
12864
|
+
\*************************************************************************************************/
|
|
12865
|
+
/*! no static exports found */
|
|
12866
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12867
|
+
|
|
12868
|
+
"use strict";
|
|
12869
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/_babel-loader@8.4.1@babel-loader/lib!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true */ \"./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"4b66220e-vue-loader-template\\\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=template&id=d478ade8&scoped=true\");\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_template_id_d478ade8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?");
|
|
12870
|
+
|
|
12871
|
+
/***/ }),
|
|
12872
|
+
|
|
12873
|
+
/***/ "./src/lib/components/chatMain/ChatDetail.vue":
|
|
12874
|
+
/*!****************************************************!*\
|
|
12875
|
+
!*** ./src/lib/components/chatMain/ChatDetail.vue ***!
|
|
12876
|
+
\****************************************************/
|
|
12877
|
+
/*! no static exports found */
|
|
12878
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12879
|
+
|
|
12880
|
+
"use strict";
|
|
12881
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true */ \"./src/lib/components/chatMain/ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true\");\n/* harmony import */ var _ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ChatDetail.vue?vue&type=script&lang=js */ \"./src/lib/components/chatMain/ChatDetail.vue?vue&type=script&lang=js\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css */ \"./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"9693c11e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/lib/components/chatMain/ChatDetail.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?");
|
|
12882
|
+
|
|
12883
|
+
/***/ }),
|
|
12884
|
+
|
|
12885
|
+
/***/ "./src/lib/components/chatMain/ChatDetail.vue?vue&type=script&lang=js":
|
|
12886
|
+
/*!****************************************************************************!*\
|
|
12887
|
+
!*** ./src/lib/components/chatMain/ChatDetail.vue?vue&type=script&lang=js ***!
|
|
12888
|
+
\****************************************************************************/
|
|
12889
|
+
/*! no static exports found */
|
|
12890
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12891
|
+
|
|
12892
|
+
"use strict";
|
|
12893
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/_babel-loader@8.4.1@babel-loader/lib!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatDetail.vue?vue&type=script&lang=js */ \"./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=script&lang=js\");\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?");
|
|
12894
|
+
|
|
12895
|
+
/***/ }),
|
|
12896
|
+
|
|
12897
|
+
/***/ "./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css":
|
|
12898
|
+
/*!************************************************************************************************************!*\
|
|
12899
|
+
!*** ./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css ***!
|
|
12900
|
+
\************************************************************************************************************/
|
|
12901
|
+
/*! no static exports found */
|
|
12902
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12903
|
+
|
|
12904
|
+
"use strict";
|
|
12905
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?");
|
|
12906
|
+
|
|
12907
|
+
/***/ }),
|
|
12908
|
+
|
|
12909
|
+
/***/ "./src/lib/components/chatMain/ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true":
|
|
12910
|
+
/*!**********************************************************************************************!*\
|
|
12911
|
+
!*** ./src/lib/components/chatMain/ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true ***!
|
|
12912
|
+
\**********************************************************************************************/
|
|
12913
|
+
/*! no static exports found */
|
|
12914
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12915
|
+
|
|
12916
|
+
"use strict";
|
|
12917
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/_babel-loader@8.4.1@babel-loader/lib!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true */ \"./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"4b66220e-vue-loader-template\\\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=template&id=9693c11e&scoped=true\");\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_template_id_9693c11e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?");
|
|
12918
|
+
|
|
12919
|
+
/***/ }),
|
|
12920
|
+
|
|
12921
|
+
/***/ "./src/lib/components/chatMain/ChatSidebar.vue":
|
|
12922
|
+
/*!*****************************************************!*\
|
|
12923
|
+
!*** ./src/lib/components/chatMain/ChatSidebar.vue ***!
|
|
12924
|
+
\*****************************************************/
|
|
12925
|
+
/*! no static exports found */
|
|
12926
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12927
|
+
|
|
12928
|
+
"use strict";
|
|
12929
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true */ \"./src/lib/components/chatMain/ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true\");\n/* harmony import */ var _ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ChatSidebar.vue?vue&type=script&lang=js */ \"./src/lib/components/chatMain/ChatSidebar.vue?vue&type=script&lang=js\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css */ \"./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"46646bec\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/lib/components/chatMain/ChatSidebar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?");
|
|
12930
|
+
|
|
12931
|
+
/***/ }),
|
|
12932
|
+
|
|
12933
|
+
/***/ "./src/lib/components/chatMain/ChatSidebar.vue?vue&type=script&lang=js":
|
|
12934
|
+
/*!*****************************************************************************!*\
|
|
12935
|
+
!*** ./src/lib/components/chatMain/ChatSidebar.vue?vue&type=script&lang=js ***!
|
|
12936
|
+
\*****************************************************************************/
|
|
12937
|
+
/*! no static exports found */
|
|
12938
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12939
|
+
|
|
12940
|
+
"use strict";
|
|
12941
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/_babel-loader@8.4.1@babel-loader/lib!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatSidebar.vue?vue&type=script&lang=js */ \"./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=script&lang=js\");\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?");
|
|
12942
|
+
|
|
12943
|
+
/***/ }),
|
|
12944
|
+
|
|
12945
|
+
/***/ "./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css":
|
|
12946
|
+
/*!*************************************************************************************************************!*\
|
|
12947
|
+
!*** ./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css ***!
|
|
12948
|
+
\*************************************************************************************************************/
|
|
12949
|
+
/*! no static exports found */
|
|
12950
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12951
|
+
|
|
12952
|
+
"use strict";
|
|
12953
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?");
|
|
12954
|
+
|
|
12955
|
+
/***/ }),
|
|
12956
|
+
|
|
12957
|
+
/***/ "./src/lib/components/chatMain/ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true":
|
|
12958
|
+
/*!***********************************************************************************************!*\
|
|
12959
|
+
!*** ./src/lib/components/chatMain/ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true ***!
|
|
12960
|
+
\***********************************************************************************************/
|
|
12961
|
+
/*! no static exports found */
|
|
12962
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12963
|
+
|
|
12964
|
+
"use strict";
|
|
12965
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"4b66220e-vue-loader-template\"}!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/_babel-loader@8.4.1@babel-loader/lib!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??ref--6!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true */ \"./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"4b66220e-vue-loader-template\\\"}!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_babel-loader@8.4.1@babel-loader/lib/index.js!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=template&id=46646bec&scoped=true\");\n/* harmony import */ var _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_4b66220e_vue_loader_template_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_8_4_1_babel_loader_lib_index_js_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_template_id_46646bec_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?");
|
|
12966
|
+
|
|
12967
|
+
/***/ }),
|
|
12968
|
+
|
|
12827
12969
|
/***/ "./src/lib/components/chatMain/index.vue":
|
|
12828
12970
|
/*!***********************************************!*\
|
|
12829
12971
|
!*** ./src/lib/components/chatMain/index.vue ***!
|
|
@@ -12832,7 +12974,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@
|
|
|
12832
12974
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
12833
12975
|
|
|
12834
12976
|
"use strict";
|
|
12835
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_bf6d760c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=bf6d760c&scoped=true */ \"./src/lib/components/chatMain/index.vue?vue&type=template&id=bf6d760c&scoped=true\");\n/* harmony import */ var _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js */ \"./src/lib/components/chatMain/index.vue?vue&type=script&lang=js\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css */ \"./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css\");\n/* harmony import */ var
|
|
12977
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_bf6d760c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=bf6d760c&scoped=true */ \"./src/lib/components/chatMain/index.vue?vue&type=template&id=bf6d760c&scoped=true\");\n/* harmony import */ var _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js */ \"./src/lib/components/chatMain/index.vue?vue&type=script&lang=js\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css */ \"./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css\");\n/* harmony import */ var _index_vue_vue_type_style_index_1_id_bf6d760c_lang_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=1&id=bf6d760c&lang=css */ \"./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css\");\n/* harmony import */ var _node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_15_11_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_bf6d760c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_bf6d760c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"bf6d760c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/lib/components/chatMain/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?");
|
|
12836
12978
|
|
|
12837
12979
|
/***/ }),
|
|
12838
12980
|
|
|
@@ -12860,6 +13002,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
12860
13002
|
|
|
12861
13003
|
/***/ }),
|
|
12862
13004
|
|
|
13005
|
+
/***/ "./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css":
|
|
13006
|
+
/*!*******************************************************************************************!*\
|
|
13007
|
+
!*** ./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css ***!
|
|
13008
|
+
\*******************************************************************************************/
|
|
13009
|
+
/*! no static exports found */
|
|
13010
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
13011
|
+
|
|
13012
|
+
"use strict";
|
|
13013
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bf6d760c_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader??ref--7-oneOf-1-0!../../../../node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--7-oneOf-1-2!../../../../node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=1&id=bf6d760c&lang=css */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js?!./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src/index.js?!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.11.1@vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&id=bf6d760c&lang=css\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bf6d760c_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bf6d760c_lang_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bf6d760c_lang_css__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_3_6_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bf6d760c_lang_css__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?");
|
|
13014
|
+
|
|
13015
|
+
/***/ }),
|
|
13016
|
+
|
|
12863
13017
|
/***/ "./src/lib/components/chatMain/index.vue?vue&type=template&id=bf6d760c&scoped=true":
|
|
12864
13018
|
/*!*****************************************************************************************!*\
|
|
12865
13019
|
!*** ./src/lib/components/chatMain/index.vue?vue&type=template&id=bf6d760c&scoped=true ***!
|
|
@@ -12951,7 +13105,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
12951
13105
|
/***/ (function(module, exports, __webpack_require__) {
|
|
12952
13106
|
|
|
12953
13107
|
"use strict";
|
|
12954
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\
|
|
13108
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n__webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.error.cause.js\");\n__webpack_require__(/*! core-js/modules/web.url-search-params.delete.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/web.url-search-params.delete.js\");\n__webpack_require__(/*! core-js/modules/web.url-search-params.has.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/web.url-search-params.has.js\");\n__webpack_require__(/*! core-js/modules/web.url-search-params.size.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/web.url-search-params.size.js\");\nvar _axios = _interopRequireDefault(__webpack_require__(/*! axios */ \"./node_modules/_axios@0.27.2@axios/index.js\"));\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/lib/env/index */ \"./src/lib/env/index.js\"));\nvar _message = __webpack_require__(/*! @lib/utils/message.js */ \"./src/lib/utils/message.js\");\n/*\r\n * @Desc:\r\n * @Auth: Hrc\r\n * @Date: 2021-05-28 17:26:44\r\n */\n\n// import qs from 'qs'\n\n_axios.default.defaults.timeout = 1000 * 10;\n// 跨域请求,允许保存cookie\n_axios.default.defaults.withCredentials = true;\nconsole.log(_index.default.VUE_APP_API, 'apiConfig.VUE_APP_API');\n_axios.default.defaults.baseURL = _index.default.VUE_APP_API;\n\n// const contentType = 'application/x-www-form-urlencoded'\n// function _needQs(headers) {\n// return headers['Content-type'] && headers['Content-type'].indexOf(contentType) !== -1\n// }\n\n// 对象转URL参数\nfunction objectToUrlParams(obj) {\n const params = new URLSearchParams();\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] !== undefined && obj[key] !== null) {\n params.append(key, obj[key]);\n }\n }\n return params;\n}\n// http request\n_axios.default.interceptors.request.use(config => {\n // 增加标识\n // 获取token\n const token = (0, _cookie.getToken)();\n if (token) {\n config.headers.satoken = `Bearer ${token}`;\n }\n if (config.isFormData) {\n config.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n // 序列化formdata请求头格式的数据\n // if (config.method === 'post' && _needQs(config.headers)) {\n // config.data = qs.stringify(config.data)\n // }\n return config;\n}, error => {\n return Promise.reject(error);\n});\n\n// http response\n_axios.default.interceptors.response.use(response => {\n // 解密返回数据\n if (response.headers.isencryption && response.headers.isencryption == 1 && response.data.payload) {\n const param = ['data', 'result', 'records'];\n const current = param.find(i => i in response.data);\n if (current) {\n const decryptData = window.spiderHack.decryptJson(response.data.payload);\n const dataType = response.headers.datatype;\n const handler = {\n object: JSON.parse,\n list: JSON.parse,\n long: parseFloat,\n integer: parseFloat,\n boolean: parse => typeof parse === 'boolean' ? parse : !!(typeof parse === 'string' && parse === 'true')\n };\n response.data[current] = handler[dataType] ? handler[dataType](decryptData) : decryptData;\n }\n }\n if (response.data.code != 200000 && response.data.code != 200 && response.data.state !== 'ok') {\n _errorHandle(response.data);\n return Promise.reject(new Error(response.data.msg));\n }\n return response.data;\n}, error => {\n _errorHandle(error);\n return Promise.reject(new Error(error.message));\n});\n\n// 错误处理\nfunction _errorHandle(error) {\n switch (error.code) {\n case 401001: // 登录失效\n case 401003:\n // 已在其他设备登录\n break;\n case 401002:\n // 未登录,无权访问\n break;\n case 401004:\n // 当前用户无权操作\n break;\n case 401005:\n // 手机号或密码错误\n break;\n case 401006:\n // 该用户已停用\n break;\n case 401007:\n // 原始密码不正确\n break;\n case 401008:\n // 密码不一致\n break;\n }\n (0, _message.showMessage)(error.msg);\n}\nfunction _request(method, opts = {}) {\n return (0, _axios.default)({\n method,\n withCredentials: false,\n ...opts\n });\n}\nvar _default = exports.default = {\n get(url, params, opts = {}) {\n return _request('GET', {\n url,\n params,\n ...opts\n });\n },\n post(url, data, opts = {}) {\n return _request('POST', {\n url,\n data,\n ...opts\n });\n },\n // 新增:表单提交方法\n postForm(url, data, opts = {}) {\n return _request('POST', {\n url,\n data: objectToUrlParams(data),\n isFormData: true,\n // 标记为表单数据\n ...opts\n });\n },\n put(url, data) {\n return _request('PUT', {\n url,\n data\n });\n },\n delete(url, data, opts = {}) {\n return _request('DELETE', {\n url,\n data,\n ...opts\n });\n }\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/http/index.js?");
|
|
12955
13109
|
|
|
12956
13110
|
/***/ }),
|
|
12957
13111
|
|
|
@@ -13314,6 +13468,18 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
13314
13468
|
|
|
13315
13469
|
/***/ }),
|
|
13316
13470
|
|
|
13471
|
+
/***/ "./src/lib/utils/message.js":
|
|
13472
|
+
/*!**********************************!*\
|
|
13473
|
+
!*** ./src/lib/utils/message.js ***!
|
|
13474
|
+
\**********************************/
|
|
13475
|
+
/*! no static exports found */
|
|
13476
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
13477
|
+
|
|
13478
|
+
"use strict";
|
|
13479
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.showMessage = showMessage;\n/*\n * @Desc: 轻量级原生提示,替代 element-ui 的 Message\n * @Author: Hrc\n * @Date: 2026-07-02 00:00:00\n */\n\nconst ICONS = {\n error: `<svg width=\"18\" height=\"18\" viewBox=\"0 0 1024 1024\" fill=\"currentColor\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"/><path d=\"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\"/></svg>`,\n info: `<svg width=\"18\" height=\"18\" viewBox=\"0 0 1024 1024\" fill=\"currentColor\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"/><path d=\"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\"/></svg>`,\n success: `<svg width=\"18\" height=\"18\" viewBox=\"0 0 1024 1024\" fill=\"currentColor\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"/><path d=\"M696 480H548V332c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v148H336c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h148v148c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h148c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"/></svg>`,\n warning: `<svg width=\"18\" height=\"18\" viewBox=\"0 0 1024 1024\" fill=\"currentColor\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"/><path d=\"M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm24-370c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V326c0-4.4-3.6-8-8-8h-48z\"/></svg>`\n};\nconst STYLES = {\n error: {\n bg: '#fef0f0',\n border: '#fde2e2',\n color: '#f56c6c'\n },\n info: {\n bg: '#edf2fc',\n border: '#ebeef5',\n color: '#909399'\n },\n success: {\n bg: '#f0f9eb',\n border: '#e1f3d8',\n color: '#67c23a'\n },\n warning: {\n bg: '#fdf6ec',\n border: '#faecd8',\n color: '#e6a23c'\n }\n};\nfunction ensureWrapper() {\n if (typeof document === 'undefined') return null;\n let wrapper = document.getElementById('__npm_message_wrapper');\n if (!wrapper) {\n wrapper = document.createElement('div');\n wrapper.id = '__npm_message_wrapper';\n wrapper.style.cssText = 'position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:2001;display:flex;flex-direction:column;align-items:center;gap:10px;';\n document.body.appendChild(wrapper);\n }\n return wrapper;\n}\nfunction showMessage(msg, type = 'error') {\n console.error(msg);\n const wrapper = ensureWrapper();\n if (!wrapper) return;\n const style = STYLES[type] || STYLES.error;\n const item = document.createElement('div');\n item.style.cssText = `display:flex;align-items:center;min-width:380px;max-width:90vw;padding:15px 20px;background-color:${style.bg};border:1px solid ${style.border};border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,0.1);color:${style.color};font-size:14px;line-height:1.4;pointer-events:none;transition:opacity .3s,transform .3s;`;\n const iconWrap = document.createElement('span');\n iconWrap.style.cssText = 'flex-shrink:0;margin-right:10px;display:flex;align-items:center;';\n iconWrap.innerHTML = ICONS[type] || ICONS.error;\n const content = document.createElement('p');\n content.style.cssText = 'margin:0;padding:0;word-break:break-all;';\n content.textContent = msg || '请求失败';\n item.appendChild(iconWrap);\n item.appendChild(content);\n wrapper.appendChild(item);\n clearTimeout(item._timer);\n item._timer = setTimeout(() => {\n item.style.opacity = '0';\n item.style.transform = 'translateY(-10px)';\n setTimeout(() => {\n if (item.parentNode) item.parentNode.removeChild(item);\n }, 300);\n }, 3000);\n}\nvar _default = exports.default = showMessage;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/utils/message.js?");
|
|
13480
|
+
|
|
13481
|
+
/***/ }),
|
|
13482
|
+
|
|
13317
13483
|
/***/ "./src/lib/utils/remoteLoad.js":
|
|
13318
13484
|
/*!*************************************!*\
|
|
13319
13485
|
!*** ./src/lib/utils/remoteLoad.js ***!
|
|
@@ -13334,7 +13500,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
13334
13500
|
/***/ (function(module, exports, __webpack_require__) {
|
|
13335
13501
|
|
|
13336
13502
|
"use strict";
|
|
13337
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.getAuth = getAuth;\nexports.setAuth = setAuth;\nexports.setBaseURL = setBaseURL;\nexports.setToken = setToken;\nexports.signQueryParams = signQueryParams;\
|
|
13503
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/_@babel_runtime@7.28.4@@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.getAuth = getAuth;\nexports.setAuth = setAuth;\nexports.setBaseURL = setBaseURL;\nexports.setToken = setToken;\nexports.signQueryParams = signQueryParams;\n__webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.error.cause.js\");\n__webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.array.push.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.constructor.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.filter.js\");\n__webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/_core-js@3.45.1@core-js/modules/es.iterator.map.js\");\nvar _axios = _interopRequireDefault(__webpack_require__(/*! axios */ \"./node_modules/_axios@0.27.2@axios/index.js\"));\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\nvar _message = __webpack_require__(/*! @lib/utils/message.js */ \"./src/lib/utils/message.js\");\n/*\r\n * @Author: 高瑞廷 2419056691@qq.com\r\n * @Date: 2026-06-04 11:27:13\r\n * @LastEditors: 高瑞廷 2419056691@qq.com\r\n * @LastEditTime: 2026-07-03 16:38:41\r\n * @FilePath: \\zjkj-nodejs-npm_customer-client\\src\\lib\\utils\\request.js\r\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r\n */\n\nlet runtimeAK = Object({\"NODE_ENV\":\"test\",\"VUE_APP_API\":\"https://api.qgbtech.cn\",\"VUE_APP_BASE_API\":\"https://ai.jybtech.cn\",\"VUE_APP_NAME\":\"development\",\"BASE_URL\":\"/\"}).VUE_APP_BASE_AK || '';\nlet runtimeSK = Object({\"NODE_ENV\":\"test\",\"VUE_APP_API\":\"https://api.qgbtech.cn\",\"VUE_APP_BASE_API\":\"https://ai.jybtech.cn\",\"VUE_APP_NAME\":\"development\",\"BASE_URL\":\"/\"}).VUE_APP_BASE_SK || '';\nlet runtimeToken = '';\nlet _user = '202007091611352';\nlet _companyNo = '201912241159840';\nlet runtimeBaseURL = \"https://ai.jybtech.cn\" || false;\nconst CryptoJS = __webpack_require__(/*! crypto-js */ \"./node_modules/_crypto-js@4.2.0@crypto-js/index.js\");\nconst service = _axios.default.create({\n baseURL: runtimeBaseURL,\n timeout: 15000\n});\nfunction hmacSha256Base64(rawSignStr, sk) {\n const hmac = CryptoJS.HmacSHA256(rawSignStr, sk);\n // 转为 Base64\n return CryptoJS.enc.Base64.stringify(hmac);\n}\nfunction setAuth(ak, sk, user, companyNo, token) {\n runtimeAK = ak || '';\n runtimeSK = sk || '';\n _user = user;\n _companyNo = companyNo;\n runtimeToken = token || '';\n}\nfunction setToken(token) {\n runtimeToken = token || '';\n}\nfunction getAuth() {\n return {\n ak: runtimeAK,\n sk: runtimeSK,\n token: runtimeToken,\n user: _user,\n companyNo: _companyNo\n };\n}\nfunction setBaseURL(url) {\n runtimeBaseURL = url || '';\n service.defaults.baseURL = runtimeBaseURL;\n}\nfunction signQueryParams(params, secretKey) {\n const keys = Object.keys(params).filter(k => k !== 'ak' && k !== 'sign').sort();\n const raw = keys.map(k => `${k}=${params[k] || ''}`).join('&');\n return hmacSha256Base64(raw, secretKey);\n}\nservice.interceptors.request.use(config => {\n // 流式接口跳过 Header 签名\n if (config.url.includes('/chat/stream')) {\n return config;\n }\n const ts = Date.now().toString();\n const token = runtimeToken || (0, _cookie.getToken)();\n const externalUser = _user || '';\n const signParts = [];\n // 1. 第一位:token(有值才加入)\n if (_companyNo) {\n signParts.push(`companyNo=${_companyNo}`);\n }\n if (token) {\n signParts.push(`token=${token}`);\n }\n // 2. 第二位:user(有值才加入)\n if (externalUser) {\n signParts.push(`user=${externalUser}`);\n }\n // 3. 第三位:ts(必选,永远存在)\n signParts.push(`ts=${ts}`);\n\n // 拼接最终待签字符串\n const signStr = signParts.join('&');\n console.log(signStr, 'signStr');\n // 计算签名\n const sign = hmacSha256Base64(signStr, runtimeSK);\n if (_companyNo) {\n config.headers['X-Company-No'] = _companyNo;\n }\n\n // 设置请求头\n config.headers['X-AK'] = runtimeAK;\n config.headers['X-Ts'] = ts;\n config.headers['X-Sign'] = sign;\n if (token) {\n config.headers['X-Auth-Token'] = `${token}`;\n config.headers.Authorization = `Bearer ${token}`;\n }\n config.headers['X-External-User'] = externalUser;\n config.headers['Content-Type'] = 'application/json';\n\n // console.log('排序后key:', sortedKeys)\n\n return config;\n}, error => Promise.reject(error));\nservice.interceptors.response.use(response => {\n const res = response.data;\n if (res.code === 200) {\n return res;\n } else if (res.code === 40101) {\n (0, _message.showMessage)('登录已过期,请重新登录');\n return Promise.reject(new Error(res.message));\n } else {\n (0, _message.showMessage)(res.message || '请求失败');\n return Promise.reject(new Error(res.message));\n }\n}, error => {\n (0, _message.showMessage)(error.message || '网络异常');\n return Promise.reject(error);\n});\nvar _default = exports.default = service;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/utils/request.js?");
|
|
13338
13504
|
|
|
13339
13505
|
/***/ }),
|
|
13340
13506
|
|