diff --git a/package-lock.json b/package-lock.json
index f350584..dcee048 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,6 +15,8 @@
"core-js": "^3.8.3",
"echarts": "^5.5.1",
"element-plus": "^2.8.3",
+ "marked": "^15.0.6",
+ "openai": "^4.83.0",
"sass": "^1.79.2",
"sass-loader": "^16.0.1",
"svg-sprite-loader": "^6.0.11",
@@ -2378,11 +2380,19 @@
"version": "22.5.5",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.5.tgz",
"integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
- "devOptional": true,
"dependencies": {
"undici-types": "~6.19.2"
}
},
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmmirror.com/@types/node-fetch/-/node-fetch-2.6.12.tgz",
+ "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^4.0.0"
+ }
+ },
"node_modules/@types/node-forge": {
"version": "1.3.11",
"resolved": "https://registry.npmmirror.com/@types/node-forge/-/node-forge-1.3.11.tgz",
@@ -3372,6 +3382,17 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"devOptional": true
},
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
@@ -3427,6 +3448,17 @@
"node": ">= 10.0.0"
}
},
+ "node_modules/agentkeepalive": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz",
+ "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==",
+ "dependencies": {
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@@ -5969,6 +6001,14 @@
"node": ">=4.0.0"
}
},
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -6352,6 +6392,23 @@
"node": ">= 6"
}
},
+ "node_modules/form-data-encoder": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
+ "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A=="
+ },
+ "node_modules/formdata-node": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/formdata-node/-/formdata-node-4.4.1.tgz",
+ "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
+ "dependencies": {
+ "node-domexception": "1.0.0",
+ "web-streams-polyfill": "4.0.0-beta.3"
+ },
+ "engines": {
+ "node": ">= 12.20"
+ }
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
@@ -7074,6 +7131,14 @@
"node": ">=10.17.0"
}
},
+ "node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -8164,6 +8229,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/marked": {
+ "version": "15.0.6",
+ "resolved": "https://registry.npmmirror.com/marked/-/marked-15.0.6.tgz",
+ "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
"node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
@@ -8485,8 +8561,7 @@
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/multicast-dns": {
"version": "7.2.5",
@@ -8615,11 +8690,28 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "dev": true,
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -8911,6 +9003,48 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/openai": {
+ "version": "4.83.0",
+ "resolved": "https://registry.npmmirror.com/openai/-/openai-4.83.0.tgz",
+ "integrity": "sha512-fmTsqud0uTtRKsPC7L8Lu55dkaTwYucqncDHzVvO64DKOpNTuiYwjbR/nVgpapXuYy8xSnhQQPUm+3jQaxICgw==",
+ "dependencies": {
+ "@types/node": "^18.11.18",
+ "@types/node-fetch": "^2.6.4",
+ "abort-controller": "^3.0.0",
+ "agentkeepalive": "^4.2.1",
+ "form-data-encoder": "1.7.2",
+ "formdata-node": "^4.3.2",
+ "node-fetch": "^2.6.7"
+ },
+ "bin": {
+ "openai": "bin/cli"
+ },
+ "peerDependencies": {
+ "ws": "^8.18.0",
+ "zod": "^3.23.8"
+ },
+ "peerDependenciesMeta": {
+ "ws": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/openai/node_modules/@types/node": {
+ "version": "18.19.75",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.75.tgz",
+ "integrity": "sha512-UIksWtThob6ZVSyxcOqCLOUNg/dyO1Qvx4McgeuhrEtHTLFTf7BBhEazaE4K806FGTPtzd/2sE90qn4fVr7cyw==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/openai/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ },
"node_modules/opener": {
"version": "1.5.2",
"resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz",
@@ -12034,8 +12168,7 @@
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/traverse": {
"version": "0.6.10",
@@ -12186,8 +12319,7 @@
"node_modules/undici-types": {
"version": "6.19.8",
"resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "devOptional": true
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
@@ -12635,11 +12767,18 @@
"defaults": "^1.0.3"
}
},
+ "node_modules/web-streams-polyfill": {
+ "version": "4.0.0-beta.3",
+ "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
+ "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/webpack": {
"version": "5.94.0",
@@ -12734,6 +12873,27 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/webpack-bundle-analyzer/node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/webpack-chain": {
"version": "6.5.1",
"resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz",
@@ -12936,27 +13096,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.10.0.tgz",
@@ -13037,7 +13176,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -13151,16 +13289,16 @@
"dev": true
},
"node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "dev": true,
+ "version": "8.18.0",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "devOptional": true,
"engines": {
- "node": ">=8.3.0"
+ "node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
+ "utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
diff --git a/package.json b/package.json
index 230efe3..58b9e1d 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,8 @@
"core-js": "^3.8.3",
"echarts": "^5.5.1",
"element-plus": "^2.8.3",
+ "marked": "^15.0.6",
+ "openai": "^4.83.0",
"sass": "^1.79.2",
"sass-loader": "^16.0.1",
"svg-sprite-loader": "^6.0.11",
diff --git a/src/main.js b/src/main.js
index 56c3821..d6321d3 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,4 +1,4 @@
-import { createApp } from 'vue'
+import {createApp, ref} from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
@@ -14,4 +14,18 @@ axios.defaults.withCredentials=true
// 意思是携带cookie信息,保持session的一致性
-createApp(App).use(store).use(router).use(ElementPlus).use(SvgIcon).mount('#app');
+
+const editableTabs = ref([
+ {
+ title: '首页',
+ name: 'home'
+ }
+])
+const editableTabsValue = ref('')
+
+// 挂载到全局属性
+
+const app=createApp(App);
+app.config.globalProperties.$editableTabs = editableTabs;
+app.config.globalProperties.$editableTabsValue = editableTabsValue;
+app.use(store).use(router).use(ElementPlus).use(SvgIcon).mount('#app');
diff --git a/src/router/index.js b/src/router/index.js
index a4eaf56..a998af0 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -75,6 +75,21 @@ const routes = [
name: '审核美甲师',
component: () => import('../views/employee/verify/index.vue'),
},
+ {
+ path: '/nocontractemployee',
+ name: '未签约美甲师',
+ component: () => import('../views/employee/NoContract/index.vue'),
+ },
+ {
+ path: '/ai',
+ name: 'AI',
+ component: () => import('../views/AI/index.vue'),
+ },
+ {
+ path: '/contractemployee',
+ name: '签约美甲师',
+ component: () => import('../views/employee/contract/index.vue'),
+ },
{
path: '/qiangdan',
name: '抢单',
@@ -91,8 +106,13 @@ const routes = [
component: () => import('../views/order/index')
},
{
- path: '/orderReservation',
+ path: '/userReservation',
name: '上门预约',
+ component: () => import('../views/order/useRreservation/index.vue')
+ },
+ {
+ path: '/orderReservation',
+ name: '个人预约详情',
component: () => import('../views/order/reservation/index.vue')
},
{
diff --git a/src/util/axios.js b/src/util/axios.js
index 1cc3083..f9aea16 100644
--- a/src/util/axios.js
+++ b/src/util/axios.js
@@ -3,8 +3,8 @@ import axios from 'axios';
-// let baseUrl='http://localhost:8081/api/';
- let baseUrl='http://154.8.193.216:1107/api/';
+let baseUrl='http://localhost:8081/api/';
+ let baseUrl2='http://154.8.193.216:1107/api/';
// 创建axios实例
const httpService = axios.create({
// url前缀-'http:xxx.xxx'
@@ -98,10 +98,14 @@ export function fileUpload(url, params = {}) {
export function getServerUrl(){
return baseUrl;
}
+export function getServerUrl2(){
+ return baseUrl2;
+}
export default {
get,
post,
fileUpload,
- getServerUrl
+ getServerUrl,
+ getServerUrl2
}
diff --git a/src/util/marked.js b/src/util/marked.js
new file mode 100644
index 0000000..d373560
--- /dev/null
+++ b/src/util/marked.js
@@ -0,0 +1,104 @@
+import {marked} from 'marked';
+const parseMarkdown = (content) => {
+ return marked.parse(content) // 使用 marked 解析 Markdown
+}
+
+const menua=[
+ {
+ path: 'home',
+ name: '首页',
+ },
+ {
+ path: 'user',
+ name: '用户管理',
+ },
+ {
+ path: 'business',
+ name: '商家列表',
+
+ },
+ {
+ path: 'businesVerify',
+ name: '审核商家入驻',
+ },
+ {
+ path: 'businessProduct',
+ name: '商家商品',
+ },
+ {
+ path: 'product',
+ name: '商品列表',
+ },
+ {
+ path: 'productCategory',
+ name: '商品分类',
+ },
+
+ {
+ path: 'message',
+ name: '消息通知',
+ },
+
+ {
+ path: 'permission',
+ name: '星级评优',
+ },
+ {
+ path: 'employee',
+ name: '美甲师列表',
+ },
+ {
+ path: 'employeeVerify',
+ name: '审核美甲师认证',
+ },
+ {
+ path: 'nocontractemployee',
+ name: '未签约美甲师',
+ },
+ {
+ path: 'contractemployee',
+ name: '签约美甲师',
+ },
+ {
+ path: 'qiangdan',
+ name: '抢单',
+ },
+ {
+ path: 'modifyPassword',
+ name: '修改密码',
+ },
+ {
+ path: 'order',
+ name: '订单列表',
+ },
+ {
+ path: 'userReservation',
+ name: '上门预约',
+ },
+ {
+ path: 'orderReservation',
+ name: '到店服务',
+ },
+ {
+ path: 'personal',
+ name: '个人中心',
+ },
+
+ {
+ path: 'rating',
+ name: '评价操作',
+
+ },
+ {
+ path: 'profile',
+ name: '详情',
+
+ }]
+
+
+export function getMenu(temp){
+ const t=menua.filter(tab=>tab.path==temp)
+ return t[0].name
+}
+
+
diff --git a/src/util/time.js b/src/util/time.js
index 697095c..cef0e17 100644
--- a/src/util/time.js
+++ b/src/util/time.js
@@ -29,4 +29,11 @@ export function verifyPerson(){
return false;
}
//console.log(ax.value)
+}
+
+
+export function getBusinessID(){
+ let JS=window.sessionStorage.getItem("BUSINESS_STATE");
+ const id=JSON.parse(JS).id
+ return id;
}
\ No newline at end of file
diff --git a/src/views/AI/index.vue b/src/views/AI/index.vue
new file mode 100644
index 0000000..e6b327d
--- /dev/null
+++ b/src/views/AI/index.vue
@@ -0,0 +1,269 @@
+
+ 欢迎使用DeepSeek的拓展AI
+
+
+
+
+