From 0ce0c41dac90e2c24e5d01b60dade678bd97c63c Mon Sep 17 00:00:00 2001 From: zhangyh Date: Tue, 28 Oct 2025 11:33:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20AI=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 121 +++++++++-- package.json | 2 +- src/api/workshop.ts | 11 +- src/assets/images/asistant.png | Bin 0 -> 7228 bytes src/stores/modules/userInfo.ts | 12 +- src/utils/request.ts | 9 +- src/utils/tools.ts | 18 ++ src/views/asistant/components/NoticeItem.vue | 60 ++++-- src/views/asistant/components/NoticeList.vue | 18 +- src/views/asistant/index.vue | 202 +++++++++++++------ src/views/stylist/index.vue | 12 +- src/views/stylist/sex.vue | 4 +- 12 files changed, 358 insertions(+), 111 deletions(-) create mode 100644 src/assets/images/asistant.png diff --git a/package-lock.json b/package-lock.json index 7b7b463..dddcc45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,9 @@ "version": "0.0.0", "hasInstallScript": true, "dependencies": { - "@microsoft/fetch-event-source": "^2.0.1", "axios": "^1.3.6", "gsap": "^3.13.0", + "markdown-it": "^14.1.0", "normalize.css": "^8.0.1", "pinia": "^2.0.32", "pinia-persistedstate-plugin": "^0.1.0", @@ -582,12 +582,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@microsoft/fetch-event-source": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", - "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==", - "license": "MIT" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1481,8 +1475,7 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/arr-diff": { "version": "4.0.0", @@ -4491,6 +4484,15 @@ "node": ">=10" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/lint-staged": { "version": "13.2.1", "resolved": "https://registry.npmmirror.com/lint-staged/-/lint-staged-13.2.1.tgz", @@ -4857,6 +4859,35 @@ "node": ">=0.10.0" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -4872,6 +4903,12 @@ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz", @@ -6024,6 +6061,15 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -7707,6 +7753,12 @@ "node": ">=4.2.0" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, "node_modules/ufo": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", @@ -8834,11 +8886,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@microsoft/fetch-event-source": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", - "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -9518,8 +9565,7 @@ "argparse": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-diff": { "version": "4.0.0", @@ -11762,6 +11808,14 @@ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, + "linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "requires": { + "uc.micro": "^2.0.0" + } + }, "lint-staged": { "version": "13.2.1", "resolved": "https://registry.npmmirror.com/lint-staged/-/lint-staged-13.2.1.tgz", @@ -12047,6 +12101,26 @@ "object-visit": "^1.0.0" } }, + "markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "requires": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + } + } + }, "math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -12059,6 +12133,11 @@ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, + "mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz", @@ -12918,6 +12997,11 @@ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, + "punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==" + }, "quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -14218,6 +14302,11 @@ "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "devOptional": true }, + "uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + }, "ufo": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", diff --git a/package.json b/package.json index c043098..727e0cf 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,9 @@ "postinstall": "husky install" }, "dependencies": { - "@microsoft/fetch-event-source": "^2.0.1", "axios": "^1.3.6", "gsap": "^3.13.0", + "markdown-it": "^14.1.0", "normalize.css": "^8.0.1", "pinia": "^2.0.32", "pinia-persistedstate-plugin": "^0.1.0", diff --git a/src/api/workshop.ts b/src/api/workshop.ts index 2816953..3e1fd36 100644 --- a/src/api/workshop.ts +++ b/src/api/workshop.ts @@ -100,6 +100,7 @@ export function getTryOnEffectStyleList(styleId: string | number) { } +// 选择顾客 interface CustomerInfo { name: string email: string @@ -110,4 +111,12 @@ export const customerCheckin = (data: CustomerInfo) => { method: 'get', params: data, }) -} \ No newline at end of file +} + +// AI对话 +interface AIConversation { + message: string + sessionId: string | number //用户ID + gender: 'male' | 'female' //性别 +} +export const streamChatAddress = '/api/llm/streamChat' \ No newline at end of file diff --git a/src/assets/images/asistant.png b/src/assets/images/asistant.png new file mode 100644 index 0000000000000000000000000000000000000000..218420054c771968026b4524b91ea9f28e77f48c GIT binary patch literal 7228 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 literal 0 HcmV?d00001 diff --git a/src/stores/modules/userInfo.ts b/src/stores/modules/userInfo.ts index d642325..42379f4 100644 --- a/src/stores/modules/userInfo.ts +++ b/src/stores/modules/userInfo.ts @@ -6,10 +6,9 @@ import { removeLocal, setLocal } from '@/utils/local' export const useUserInfoStore = defineStore('userInfo', () => { const state = ref({ userInfo: {}, - customerId: '', token: '', generateParams: { - stylistId: '', + stylist: '', sex: '' } }) @@ -22,10 +21,6 @@ export const useUserInfoStore = defineStore('userInfo', () => { state.value.userInfo = data } - const setCustomerId = (data: string) => { - state.value.customerId = data - } - const setToken = (data: string) => { state.value.token = data setLocal(data, 'token') @@ -40,9 +35,8 @@ export const useUserInfoStore = defineStore('userInfo', () => { } const resetGenerateParams = () => { - state.value.customerId = '' state.value.generateParams = { - stylistId: '', + stylist: '', sex: '' } } @@ -52,7 +46,6 @@ export const useUserInfoStore = defineStore('userInfo', () => { return new Promise((resolve) => { state.value.token = '' state.value.userInfo = {} - state.value.customerId = '' removeLocal('token') resetGenerateParams() resolve('') @@ -64,7 +57,6 @@ export const useUserInfoStore = defineStore('userInfo', () => { getUserInfo, setToken, setUserInfo, - setCustomerId, setGenerateParams, getGenerateParams, resetGenerateParams, diff --git a/src/utils/request.ts b/src/utils/request.ts index 0e552bd..8eca677 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -67,6 +67,11 @@ service.interceptors.response.use( * 如通过xmlhttprequest 状态码标识 逻辑可写在下面error中 */ (response: any) => { + // 如果是llm/streamChat这样的流式接口,不走这样的处理 + if (response.config.url.includes('llm/streamChat')) { + return response + } + // 已完成请求的删除请求中数组 removePending(response.config) // 关闭loading @@ -81,8 +86,8 @@ service.interceptors.response.use( message: res.errMsg || res.message, // type: 'fail', duration: 5000, - position:'top', - icon:'none' + position: 'top', + icon: 'none' }) return Promise.reject(new Error('error')) diff --git a/src/utils/tools.ts b/src/utils/tools.ts index 3251273..0f81fc0 100644 --- a/src/utils/tools.ts +++ b/src/utils/tools.ts @@ -42,6 +42,24 @@ const getMousePosition = (e: any, bor: any) => { } return event } +/** + * 生成UUID v4 + * @returns 返回一个标准的UUID v4字符串,格式:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx + */ +export function generateUUID(): string { + // 优先使用现代浏览器的crypto.randomUUID()方法 + if (typeof crypto !== 'undefined' && crypto.randomUUID) { + return crypto.randomUUID() + } + + // 备用方案:手动生成UUID v4 + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0 + const v = c === 'x' ? r : (r & 0x3 | 0x8) + return v.toString(16) + }) +} + export { getUniversalZoomLevel, getMousePosition, diff --git a/src/views/asistant/components/NoticeItem.vue b/src/views/asistant/components/NoticeItem.vue index 31fb18a..9a033cc 100644 --- a/src/views/asistant/components/NoticeItem.vue +++ b/src/views/asistant/components/NoticeItem.vue @@ -1,17 +1,15 @@