zj-plugin-intelligent 1.2.5-beta.22 → 1.2.5-beta.23
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.
|
@@ -963,7 +963,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@
|
|
|
963
963
|
/***/ (function(module, exports, __webpack_require__) {
|
|
964
964
|
|
|
965
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 loading: {\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
|
|
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 loading: {\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 touchHandled: false,\n touchStartX: 0,\n touchStartY: 0,\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 // touchHandled → 触摸事件已处理(短按/长按),跳过 click 避免重复导航\n if (this.touchHandled) return;\n this.$emit('switch-session', s);\n },\n onSessionTouchStart(s, e) {\n if (!this.isMobile) return;\n this.touchHandled = true;\n // 记录触摸起点,用于 touchmove 容差判断\n this.touchStartX = e.touches[0].clientX;\n this.touchStartY = e.touches[0].clientY;\n // 不调用 e.preventDefault(),避免部分安卓 WebView 阻塞后续 touchend 事件\n // 默认长按菜单由 CSS -webkit-touch-callout:none 和 @contextmenu.prevent 阻止\n this.longPressed = false;\n this.longPressTimer = setTimeout(() => {\n this.longPressed = true;\n this.$emit('delete-session', s);\n }, 600);\n },\n onSessionTouchEnd(e, s) {\n if (!this.isMobile) return;\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n if (this.longPressed) {\n // 长按完成 → 阻止后续 click 事件\n e.preventDefault();\n // 延迟释放 touchHandled,确保 click 被拦截\n setTimeout(() => {\n this.touchHandled = false;\n }, 500);\n return;\n }\n // 短按(非长按)进入会话\n e.preventDefault();\n this.$emit('switch-session', s);\n // 延迟释放 touchHandled,确保 click 被拦截\n setTimeout(() => {\n this.touchHandled = false;\n }, 500);\n },\n onSessionTouchMove(e) {\n if (!this.longPressTimer) return;\n // 只有移动超过 10px 才取消长按(容忍手指自然抖动)\n const moveX = e.touches[0].clientX;\n const moveY = e.touches[0].clientY;\n const diffX = Math.abs(moveX - this.touchStartX);\n const diffY = Math.abs(moveY - this.touchStartY);\n if (diffX > 10 || diffY > 10) {\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
967
|
|
|
968
968
|
/***/ }),
|
|
969
969
|
|
|
@@ -1047,7 +1047,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
1047
1047
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1048
1048
|
|
|
1049
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 touchend: function ($event) {\n $event.preventDefault();\n return _vm.onSearchClear.apply(null, arguments);\n }\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
|
|
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 touchend: function ($event) {\n $event.preventDefault();\n return _vm.onSearchClear.apply(null, arguments);\n }\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: function ($event) {\n return _vm.onSessionTouchEnd($event, s);\n },\n touchmove: _vm.onSessionTouchMove,\n contextmenu: function ($event) {\n $event.preventDefault();\n }\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) : _vm.loading ? _c(\"div\", {\n staticClass: \"sidebar-loading\"\n }, [_c(\"div\", {\n staticClass: \"loading-spinner\"\n }), _c(\"div\", [_vm._v(\"加载中...\")])]) : _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
1051
|
|
|
1052
1052
|
/***/ }),
|
|
1053
1053
|
|
|
@@ -3401,7 +3401,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../.
|
|
|
3401
3401
|
/*! no static exports found */
|
|
3402
3402
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3403
3403
|
|
|
3404
|
-
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[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\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}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\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[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n min-height: 100%;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./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");
|
|
3404
|
+
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[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\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}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\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[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n /* 兜底 */\\n height: -webkit-fill-available;\\n /* iOS Safari / Android Chrome 填充可见区域 */\\n height: 100dvh;\\n /* 现代浏览器动态视口 */\\n min-height: 100%;\\n min-height: -webkit-fill-available;\\n min-height: 100dvh;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./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");
|
|
3405
3405
|
|
|
3406
3406
|
/***/ }),
|
|
3407
3407
|
|
|
@@ -12608,7 +12608,7 @@ eval("module.exports = function(originalModule) {\n\tif (!originalModule.webpack
|
|
|
12608
12608
|
/*! exports provided: name, version, main, private, scripts, dependencies, devDependencies, browserslist, directories, keywords, license, default */
|
|
12609
12609
|
/***/ (function(module) {
|
|
12610
12610
|
|
|
12611
|
-
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.23\\\",\\\"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
12612
|
|
|
12613
12613
|
/***/ }),
|
|
12614
12614
|
|
|
@@ -13500,7 +13500,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
13500
13500
|
/***/ (function(module, exports, __webpack_require__) {
|
|
13501
13501
|
|
|
13502
13502
|
"use strict";
|
|
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-15
|
|
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-15 19:36:23\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 = '';\nlet _companyNo = '';\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 // 计算签名\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?");
|
|
13504
13504
|
|
|
13505
13505
|
/***/ }),
|
|
13506
13506
|
|
|
@@ -972,7 +972,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@
|
|
|
972
972
|
/***/ (function(module, exports, __webpack_require__) {
|
|
973
973
|
|
|
974
974
|
"use strict";
|
|
975
|
-
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 loading: {\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
|
|
975
|
+
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 loading: {\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 touchHandled: false,\n touchStartX: 0,\n touchStartY: 0,\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 // touchHandled → 触摸事件已处理(短按/长按),跳过 click 避免重复导航\n if (this.touchHandled) return;\n this.$emit('switch-session', s);\n },\n onSessionTouchStart(s, e) {\n if (!this.isMobile) return;\n this.touchHandled = true;\n // 记录触摸起点,用于 touchmove 容差判断\n this.touchStartX = e.touches[0].clientX;\n this.touchStartY = e.touches[0].clientY;\n // 不调用 e.preventDefault(),避免部分安卓 WebView 阻塞后续 touchend 事件\n // 默认长按菜单由 CSS -webkit-touch-callout:none 和 @contextmenu.prevent 阻止\n this.longPressed = false;\n this.longPressTimer = setTimeout(() => {\n this.longPressed = true;\n this.$emit('delete-session', s);\n }, 600);\n },\n onSessionTouchEnd(e, s) {\n if (!this.isMobile) return;\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n if (this.longPressed) {\n // 长按完成 → 阻止后续 click 事件\n e.preventDefault();\n // 延迟释放 touchHandled,确保 click 被拦截\n setTimeout(() => {\n this.touchHandled = false;\n }, 500);\n return;\n }\n // 短按(非长按)进入会话\n e.preventDefault();\n this.$emit('switch-session', s);\n // 延迟释放 touchHandled,确保 click 被拦截\n setTimeout(() => {\n this.touchHandled = false;\n }, 500);\n },\n onSessionTouchMove(e) {\n if (!this.longPressTimer) return;\n // 只有移动超过 10px 才取消长按(容忍手指自然抖动)\n const moveX = e.touches[0].clientX;\n const moveY = e.touches[0].clientY;\n const diffX = Math.abs(moveX - this.touchStartX);\n const diffY = Math.abs(moveY - this.touchStartY);\n if (diffX > 10 || diffY > 10) {\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");
|
|
976
976
|
|
|
977
977
|
/***/ }),
|
|
978
978
|
|
|
@@ -1056,7 +1056,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
1056
1056
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1057
1057
|
|
|
1058
1058
|
"use strict";
|
|
1059
|
-
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 touchend: function ($event) {\n $event.preventDefault();\n return _vm.onSearchClear.apply(null, arguments);\n }\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
|
|
1059
|
+
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 touchend: function ($event) {\n $event.preventDefault();\n return _vm.onSearchClear.apply(null, arguments);\n }\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: function ($event) {\n return _vm.onSessionTouchEnd($event, s);\n },\n touchmove: _vm.onSessionTouchMove,\n contextmenu: function ($event) {\n $event.preventDefault();\n }\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) : _vm.loading ? _c(\"div\", {\n staticClass: \"sidebar-loading\"\n }, [_c(\"div\", {\n staticClass: \"loading-spinner\"\n }), _c(\"div\", [_vm._v(\"加载中...\")])]) : _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");
|
|
1060
1060
|
|
|
1061
1061
|
/***/ }),
|
|
1062
1062
|
|
|
@@ -3410,7 +3410,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../.
|
|
|
3410
3410
|
/*! no static exports found */
|
|
3411
3411
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3412
3412
|
|
|
3413
|
-
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[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\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}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\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[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n min-height: 100%;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./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");
|
|
3413
|
+
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[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\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}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\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[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n /* 兜底 */\\n height: -webkit-fill-available;\\n /* iOS Safari / Android Chrome 填充可见区域 */\\n height: 100dvh;\\n /* 现代浏览器动态视口 */\\n min-height: 100%;\\n min-height: -webkit-fill-available;\\n min-height: 100dvh;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./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");
|
|
3414
3414
|
|
|
3415
3415
|
/***/ }),
|
|
3416
3416
|
|
|
@@ -12617,7 +12617,7 @@ eval("module.exports = function(originalModule) {\n\tif (!originalModule.webpack
|
|
|
12617
12617
|
/*! exports provided: name, version, main, private, scripts, dependencies, devDependencies, browserslist, directories, keywords, license, default */
|
|
12618
12618
|
/***/ (function(module) {
|
|
12619
12619
|
|
|
12620
|
-
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.5-beta.
|
|
12620
|
+
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.5-beta.23\\\",\\\"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?");
|
|
12621
12621
|
|
|
12622
12622
|
/***/ }),
|
|
12623
12623
|
|
|
@@ -13509,7 +13509,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
13509
13509
|
/***/ (function(module, exports, __webpack_require__) {
|
|
13510
13510
|
|
|
13511
13511
|
"use strict";
|
|
13512
|
-
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-15
|
|
13512
|
+
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-15 19:36:23\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 = '';\nlet _companyNo = '';\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 // 计算签名\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?");
|
|
13513
13513
|
|
|
13514
13514
|
/***/ }),
|
|
13515
13515
|
|
|
@@ -972,7 +972,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/_@
|
|
|
972
972
|
/***/ (function(module, exports, __webpack_require__) {
|
|
973
973
|
|
|
974
974
|
"use strict";
|
|
975
|
-
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 loading: {\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
|
|
975
|
+
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 loading: {\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 touchHandled: false,\n touchStartX: 0,\n touchStartY: 0,\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 // touchHandled → 触摸事件已处理(短按/长按),跳过 click 避免重复导航\n if (this.touchHandled) return;\n this.$emit('switch-session', s);\n },\n onSessionTouchStart(s, e) {\n if (!this.isMobile) return;\n this.touchHandled = true;\n // 记录触摸起点,用于 touchmove 容差判断\n this.touchStartX = e.touches[0].clientX;\n this.touchStartY = e.touches[0].clientY;\n // 不调用 e.preventDefault(),避免部分安卓 WebView 阻塞后续 touchend 事件\n // 默认长按菜单由 CSS -webkit-touch-callout:none 和 @contextmenu.prevent 阻止\n this.longPressed = false;\n this.longPressTimer = setTimeout(() => {\n this.longPressed = true;\n this.$emit('delete-session', s);\n }, 600);\n },\n onSessionTouchEnd(e, s) {\n if (!this.isMobile) return;\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n if (this.longPressed) {\n // 长按完成 → 阻止后续 click 事件\n e.preventDefault();\n // 延迟释放 touchHandled,确保 click 被拦截\n setTimeout(() => {\n this.touchHandled = false;\n }, 500);\n return;\n }\n // 短按(非长按)进入会话\n e.preventDefault();\n this.$emit('switch-session', s);\n // 延迟释放 touchHandled,确保 click 被拦截\n setTimeout(() => {\n this.touchHandled = false;\n }, 500);\n },\n onSessionTouchMove(e) {\n if (!this.longPressTimer) return;\n // 只有移动超过 10px 才取消长按(容忍手指自然抖动)\n const moveX = e.touches[0].clientX;\n const moveY = e.touches[0].clientY;\n const diffX = Math.abs(moveX - this.touchStartX);\n const diffY = Math.abs(moveY - this.touchStartY);\n if (diffX > 10 || diffY > 10) {\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");
|
|
976
976
|
|
|
977
977
|
/***/ }),
|
|
978
978
|
|
|
@@ -1056,7 +1056,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
1056
1056
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1057
1057
|
|
|
1058
1058
|
"use strict";
|
|
1059
|
-
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 touchend: function ($event) {\n $event.preventDefault();\n return _vm.onSearchClear.apply(null, arguments);\n }\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
|
|
1059
|
+
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 touchend: function ($event) {\n $event.preventDefault();\n return _vm.onSearchClear.apply(null, arguments);\n }\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: function ($event) {\n return _vm.onSessionTouchEnd($event, s);\n },\n touchmove: _vm.onSessionTouchMove,\n contextmenu: function ($event) {\n $event.preventDefault();\n }\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) : _vm.loading ? _c(\"div\", {\n staticClass: \"sidebar-loading\"\n }, [_c(\"div\", {\n staticClass: \"loading-spinner\"\n }), _c(\"div\", [_vm._v(\"加载中...\")])]) : _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");
|
|
1060
1060
|
|
|
1061
1061
|
/***/ }),
|
|
1062
1062
|
|
|
@@ -3410,7 +3410,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../.
|
|
|
3410
3410
|
/*! no static exports found */
|
|
3411
3411
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3412
3412
|
|
|
3413
|
-
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[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\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}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\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[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n min-height: 100%;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./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");
|
|
3413
|
+
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[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\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}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: '020';\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\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[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n /* 兜底 */\\n height: -webkit-fill-available;\\n /* iOS Safari / Android Chrome 填充可见区域 */\\n height: 100dvh;\\n /* 现代浏览器动态视口 */\\n min-height: 100%;\\n min-height: -webkit-fill-available;\\n min-height: 100dvh;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./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");
|
|
3414
3414
|
|
|
3415
3415
|
/***/ }),
|
|
3416
3416
|
|
|
@@ -12617,7 +12617,7 @@ eval("module.exports = function(originalModule) {\n\tif (!originalModule.webpack
|
|
|
12617
12617
|
/*! exports provided: name, version, main, private, scripts, dependencies, devDependencies, browserslist, directories, keywords, license, default */
|
|
12618
12618
|
/***/ (function(module) {
|
|
12619
12619
|
|
|
12620
|
-
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.5-beta.
|
|
12620
|
+
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.5-beta.23\\\",\\\"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?");
|
|
12621
12621
|
|
|
12622
12622
|
/***/ }),
|
|
12623
12623
|
|
|
@@ -13509,7 +13509,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
13509
13509
|
/***/ (function(module, exports, __webpack_require__) {
|
|
13510
13510
|
|
|
13511
13511
|
"use strict";
|
|
13512
|
-
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-15
|
|
13512
|
+
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-15 19:36:23\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 = '';\nlet _companyNo = '';\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 // 计算签名\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?");
|
|
13513
13513
|
|
|
13514
13514
|
/***/ }),
|
|
13515
13515
|
|