From 03aed85d86d19c9d87a86b33a554820ea3d05f42 Mon Sep 17 00:00:00 2001
From: chenjunyi <314298729@qq.com>
Date: Tue, 2 Dec 2025 18:09:17 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0AI=E9=97=AE=E7=AD=94=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E6=B5=8B=E8=AF=95=E9=A1=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cdTMP/.env.development | 2 +
cdTMP/.env.production | 2 +
cdTMP/.prettierrc | 2 +-
cdTMP/package-lock.json | 376 +++++++-----------
cdTMP/package.json | 18 +-
cdTMP/src/api/outs/aiApi.ts | 23 ++
cdTMP/src/components/ai-button/index.vue | 81 ++++
.../ma-form/Customs/ChenDemandList.vue | 2 +-
cdTMP/src/utils/tool.js | 11 +
.../views/project/design-demand/AiModal.vue | 219 ++++++++++
.../project/design-demand/OpeAndExpect.vue | 47 +++
.../src/views/project/design-demand/index.vue | 13 +
cdTMP/tsconfig.json | 3 +-
cdTMP/visualizer.html | 2 +-
14 files changed, 563 insertions(+), 238 deletions(-)
create mode 100644 cdTMP/src/api/outs/aiApi.ts
create mode 100644 cdTMP/src/components/ai-button/index.vue
create mode 100644 cdTMP/src/views/project/design-demand/AiModal.vue
create mode 100644 cdTMP/src/views/project/design-demand/OpeAndExpect.vue
diff --git a/cdTMP/.env.development b/cdTMP/.env.development
index 588e263..72a4359 100644
--- a/cdTMP/.env.development
+++ b/cdTMP/.env.development
@@ -4,3 +4,5 @@ VITE_APP_ENV = development
VITE_APP_BASE_URL = http://127.0.0.1:8000/api
VITE_APP_WS_URL = ws://127.0.0.1:8000/message.io
VITE_APP_PROXY_PREFIX = /api
+# AI
+VUE_APP_AI_API_BASE = http://192.168.0.63:8777
diff --git a/cdTMP/.env.production b/cdTMP/.env.production
index 665d210..70038f0 100644
--- a/cdTMP/.env.production
+++ b/cdTMP/.env.production
@@ -3,3 +3,5 @@ VITE_APP_ENV = production
VITE_APP_BASE_URL = http://127.0.0.1:8000/api
VITE_APP_WS_URL = ws://127.0.0.1:8000/message.io
VITE_APP_PROXY_PREFIX = /api
+# AI
+VUE_APP_AI_API_BASE = http://192.168.0.63:8777
diff --git a/cdTMP/.prettierrc b/cdTMP/.prettierrc
index d7eb1ed..3aed799 100644
--- a/cdTMP/.prettierrc
+++ b/cdTMP/.prettierrc
@@ -1,7 +1,7 @@
{
"useTabs": false,
"tabWidth": 4,
- "printWidth": 120,
+ "printWidth": 160,
"singleQuote": false,
"trailingComma": "none",
"semi": false
diff --git a/cdTMP/package-lock.json b/cdTMP/package-lock.json
index c3a850b..a25aa5c 100644
--- a/cdTMP/package-lock.json
+++ b/cdTMP/package-lock.json
@@ -10,9 +10,9 @@
"dependencies": {
"@arco-design/color": "^0.4.0",
"@arco-design/web-vue": "^2.57.0",
- "@tanstack/vue-query": "^5.91.2",
+ "@tanstack/vue-query": "^5.92.0",
"@tinymce/tinymce-vue": "^6.3.0",
- "@vueuse/core": "^14.0.0",
+ "@vueuse/core": "^14.1.0",
"axios": "^1.13.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -29,10 +29,10 @@
"tailwind-merge": "^3.4.0",
"tinymce": "^7.9.1",
"tw-animate-css": "^1.4.0",
- "vue": "^3.5.24",
+ "vue": "^3.5.25",
"vue-clipboard3": "^2.0.0",
"vue-color-kit": "^1.0.6",
- "vue-data-ui": "^3.7.6",
+ "vue-data-ui": "^3.7.14",
"vue-router": "^4.6.3",
"vuedraggable": "^2.24.3"
},
@@ -43,20 +43,20 @@
"@types/node": "^24.10.1",
"@types/nprogress": "^0.2.3",
"@types/qs": "^6.14.0",
- "@vitejs/plugin-vue": "^6.0.1",
- "@vitejs/plugin-vue-jsx": "^5.1.1",
+ "@vitejs/plugin-vue": "^6.0.2",
+ "@vitejs/plugin-vue-jsx": "^5.1.2",
"@vue/babel-plugin-jsx": "^2.0.1",
"browserslist": "^4.28.0",
"eslint": "^9.39.1",
- "eslint-plugin-vue": "^10.5.1",
+ "eslint-plugin-vue": "^10.6.2",
"less": "^4.4.2",
"less-loader": "^12.3.0",
"postcss": "^8.5.6",
- "prettier": "^3.6.2",
+ "prettier": "^3.7.3",
"rollup-plugin-visualizer": "^6.0.5",
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3",
- "vite": "^7.2.2",
+ "vite": "^7.2.6",
"vue-eslint-parser": "^10.2.0"
}
},
@@ -73,20 +73,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@arco-design/color": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/@arco-design/color/-/color-0.4.0.tgz",
@@ -142,23 +128,23 @@
}
},
"node_modules/@babel/core": {
- "version": "7.28.3",
- "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.28.3.tgz",
- "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.28.5.tgz",
+ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
- "@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.3",
+ "@babel/generator": "^7.28.5",
"@babel/helper-compilation-targets": "^7.27.2",
"@babel/helper-module-transforms": "^7.28.3",
- "@babel/helpers": "^7.28.3",
- "@babel/parser": "^7.28.3",
+ "@babel/helpers": "^7.28.4",
+ "@babel/parser": "^7.28.5",
"@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.3",
- "@babel/types": "^7.28.2",
+ "@babel/traverse": "^7.28.5",
+ "@babel/types": "^7.28.5",
+ "@jridgewell/remapping": "^2.3.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -174,14 +160,14 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.28.3",
- "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.28.3.tgz",
- "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.28.5.tgz",
+ "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.28.3",
- "@babel/types": "^7.28.2",
+ "@babel/parser": "^7.28.5",
+ "@babel/types": "^7.28.5",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
@@ -221,18 +207,18 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.28.3",
- "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz",
- "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz",
+ "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-member-expression-to-functions": "^7.27.1",
+ "@babel/helper-member-expression-to-functions": "^7.28.5",
"@babel/helper-optimise-call-expression": "^7.27.1",
"@babel/helper-replace-supers": "^7.27.1",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.28.3",
+ "@babel/traverse": "^7.28.5",
"semver": "^6.3.1"
},
"engines": {
@@ -253,14 +239,14 @@
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.27.1",
- "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz",
- "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
+ "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
+ "@babel/traverse": "^7.28.5",
+ "@babel/types": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -382,14 +368,14 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.28.3",
- "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.28.3.tgz",
- "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==",
+ "version": "7.28.4",
+ "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.28.4.tgz",
+ "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/template": "^7.27.2",
- "@babel/types": "^7.28.2"
+ "@babel/types": "^7.28.4"
},
"engines": {
"node": ">=6.9.0"
@@ -443,14 +429,14 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.28.0",
- "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz",
- "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz",
+ "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-create-class-features-plugin": "^7.27.1",
+ "@babel/helper-create-class-features-plugin": "^7.28.5",
"@babel/helper-plugin-utils": "^7.27.1",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
"@babel/plugin-syntax-typescript": "^7.27.1"
@@ -478,18 +464,18 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.28.4",
- "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.28.4.tgz",
- "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.28.5.tgz",
+ "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.3",
+ "@babel/generator": "^7.28.5",
"@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.4",
+ "@babel/parser": "^7.28.5",
"@babel/template": "^7.27.2",
- "@babel/types": "^7.28.4",
+ "@babel/types": "^7.28.5",
"debug": "^4.3.1"
},
"engines": {
@@ -1207,9 +1193,9 @@
}
},
"node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.29",
- "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz",
- "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==",
+ "version": "1.0.0-beta.50",
+ "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz",
+ "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==",
"dev": true,
"license": "MIT"
},
@@ -1796,9 +1782,9 @@
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.90.10",
- "resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.90.10.tgz",
- "integrity": "sha512-EhZVFu9rl7GfRNuJLJ3Y7wtbTnENsvzp+YpcAV7kCYiXni1v8qZh++lpw4ch4rrwC0u/EZRnBHIehzCGzwXDSQ==",
+ "version": "5.90.11",
+ "resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.90.11.tgz",
+ "integrity": "sha512-f9z/nXhCgWDF4lHqgIE30jxLe4sYv15QodfdPDKYAk7nAEjNcndy4dHz3ezhdUaR23BpWa4I2EH4/DZ0//Uf8A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1806,13 +1792,13 @@
}
},
"node_modules/@tanstack/vue-query": {
- "version": "5.91.2",
- "resolved": "https://registry.npmmirror.com/@tanstack/vue-query/-/vue-query-5.91.2.tgz",
- "integrity": "sha512-ReppmGrVLtiWhwHnhmGJftBbVMf0BrLWtfOk6rQs0qWrhgCei1oUiLsqTCyES/zeZVqaUTmAuUpBrLwQ4DmQTQ==",
+ "version": "5.92.0",
+ "resolved": "https://registry.npmmirror.com/@tanstack/vue-query/-/vue-query-5.92.0.tgz",
+ "integrity": "sha512-4DcB+vkYjYtrysrZLnoPTz2/N/1pPtJm9j1dat+/bp7lvMGAiedJIsIlnrusIlRVV2OeU5SKZy7PhwcX1U4stw==",
"license": "MIT",
"dependencies": {
"@tanstack/match-sorter-utils": "^8.19.4",
- "@tanstack/query-core": "5.90.10",
+ "@tanstack/query-core": "5.90.11",
"@vue/devtools-api": "^6.6.3",
"vue-demi": "^0.14.10"
},
@@ -1934,13 +1920,13 @@
"license": "MIT"
},
"node_modules/@vitejs/plugin-vue": {
- "version": "6.0.1",
- "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz",
- "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-6.0.2.tgz",
+ "integrity": "sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@rolldown/pluginutils": "1.0.0-beta.29"
+ "@rolldown/pluginutils": "1.0.0-beta.50"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
@@ -1951,17 +1937,17 @@
}
},
"node_modules/@vitejs/plugin-vue-jsx": {
- "version": "5.1.1",
- "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-5.1.1.tgz",
- "integrity": "sha512-uQkfxzlF8SGHJJVH966lFTdjM/lGcwJGzwAHpVqAPDD/QcsqoUGa+q31ox1BrUfi+FLP2ChVp7uLXE3DkHyDdQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-5.1.2.tgz",
+ "integrity": "sha512-3a2BOryRjG/Iih87x87YXz5c8nw27eSlHytvSKYfp8ZIsp5+FgFQoKeA7k2PnqWpjJrv6AoVTMnvmuKUXb771A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.28.3",
+ "@babel/core": "^7.28.5",
"@babel/plugin-syntax-typescript": "^7.27.1",
- "@babel/plugin-transform-typescript": "^7.28.0",
- "@rolldown/pluginutils": "^1.0.0-beta.34",
- "@vue/babel-plugin-jsx": "^1.5.0"
+ "@babel/plugin-transform-typescript": "^7.28.5",
+ "@rolldown/pluginutils": "^1.0.0-beta.50",
+ "@vue/babel-plugin-jsx": "^2.0.1"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
@@ -1971,66 +1957,6 @@
"vue": "^3.0.0"
}
},
- "node_modules/@vitejs/plugin-vue-jsx/node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.34",
- "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.34.tgz",
- "integrity": "sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitejs/plugin-vue-jsx/node_modules/@vue/babel-helper-vue-transform-on": {
- "version": "1.5.0",
- "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz",
- "integrity": "sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vitejs/plugin-vue-jsx/node_modules/@vue/babel-plugin-jsx": {
- "version": "1.5.0",
- "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz",
- "integrity": "sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-syntax-jsx": "^7.27.1",
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.0",
- "@babel/types": "^7.28.2",
- "@vue/babel-helper-vue-transform-on": "1.5.0",
- "@vue/babel-plugin-resolve-type": "1.5.0",
- "@vue/shared": "^3.5.18"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- }
- }
- },
- "node_modules/@vitejs/plugin-vue-jsx/node_modules/@vue/babel-plugin-resolve-type": {
- "version": "1.5.0",
- "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz",
- "integrity": "sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/parser": "^7.28.0",
- "@vue/compiler-sfc": "^3.5.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sxzz"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@vue/babel-helper-vue-transform-on": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-2.0.1.tgz",
@@ -2085,39 +2011,39 @@
}
},
"node_modules/@vue/compiler-core": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.24.tgz",
- "integrity": "sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.25.tgz",
+ "integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.28.5",
- "@vue/shared": "3.5.24",
+ "@vue/shared": "3.5.25",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.24.tgz",
- "integrity": "sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz",
+ "integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-core": "3.5.24",
- "@vue/shared": "3.5.24"
+ "@vue/compiler-core": "3.5.25",
+ "@vue/shared": "3.5.25"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.24.tgz",
- "integrity": "sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.25.tgz",
+ "integrity": "sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.28.5",
- "@vue/compiler-core": "3.5.24",
- "@vue/compiler-dom": "3.5.24",
- "@vue/compiler-ssr": "3.5.24",
- "@vue/shared": "3.5.24",
+ "@vue/compiler-core": "3.5.25",
+ "@vue/compiler-dom": "3.5.25",
+ "@vue/compiler-ssr": "3.5.25",
+ "@vue/shared": "3.5.25",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.21",
"postcss": "^8.5.6",
@@ -2125,13 +2051,13 @@
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.24.tgz",
- "integrity": "sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.25.tgz",
+ "integrity": "sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-dom": "3.5.24",
- "@vue/shared": "3.5.24"
+ "@vue/compiler-dom": "3.5.25",
+ "@vue/shared": "3.5.25"
}
},
"node_modules/@vue/devtools-api": {
@@ -2165,64 +2091,64 @@
}
},
"node_modules/@vue/reactivity": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.24.tgz",
- "integrity": "sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.25.tgz",
+ "integrity": "sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==",
"license": "MIT",
"dependencies": {
- "@vue/shared": "3.5.24"
+ "@vue/shared": "3.5.25"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.24.tgz",
- "integrity": "sha512-RYP/byyKDgNIqfX/gNb2PB55dJmM97jc9wyF3jK7QUInYKypK2exmZMNwnjueWwGceEkP6NChd3D2ZVEp9undQ==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.25.tgz",
+ "integrity": "sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==",
"license": "MIT",
"dependencies": {
- "@vue/reactivity": "3.5.24",
- "@vue/shared": "3.5.24"
+ "@vue/reactivity": "3.5.25",
+ "@vue/shared": "3.5.25"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.24.tgz",
- "integrity": "sha512-Z8ANhr/i0XIluonHVjbUkjvn+CyrxbXRIxR7wn7+X7xlcb7dJsfITZbkVOeJZdP8VZwfrWRsWdShH6pngMxRjw==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.25.tgz",
+ "integrity": "sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==",
"license": "MIT",
"dependencies": {
- "@vue/reactivity": "3.5.24",
- "@vue/runtime-core": "3.5.24",
- "@vue/shared": "3.5.24",
+ "@vue/reactivity": "3.5.25",
+ "@vue/runtime-core": "3.5.25",
+ "@vue/shared": "3.5.25",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.24.tgz",
- "integrity": "sha512-Yh2j2Y4G/0/4z/xJ1Bad4mxaAk++C2v4kaa8oSYTMJBJ00/ndPuxCnWeot0/7/qafQFLh5pr6xeV6SdMcE/G1w==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.25.tgz",
+ "integrity": "sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-ssr": "3.5.24",
- "@vue/shared": "3.5.24"
+ "@vue/compiler-ssr": "3.5.25",
+ "@vue/shared": "3.5.25"
},
"peerDependencies": {
- "vue": "3.5.24"
+ "vue": "3.5.25"
}
},
"node_modules/@vue/shared": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.24.tgz",
- "integrity": "sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.25.tgz",
+ "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==",
"license": "MIT"
},
"node_modules/@vueuse/core": {
- "version": "14.0.0",
- "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-14.0.0.tgz",
- "integrity": "sha512-d6tKRWkZE8IQElX2aHBxXOMD478fHIYV+Dzm2y9Ag122ICBpNKtGICiXKOhWU3L1kKdttDD9dCMS4bGP3jhCTQ==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-14.1.0.tgz",
+ "integrity": "sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==",
"license": "MIT",
"dependencies": {
"@types/web-bluetooth": "^0.0.21",
- "@vueuse/metadata": "14.0.0",
- "@vueuse/shared": "14.0.0"
+ "@vueuse/metadata": "14.1.0",
+ "@vueuse/shared": "14.1.0"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
@@ -2232,18 +2158,18 @@
}
},
"node_modules/@vueuse/metadata": {
- "version": "14.0.0",
- "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-14.0.0.tgz",
- "integrity": "sha512-6yoGqbJcMldVCevkFiHDBTB1V5Hq+G/haPlGIuaFZHpXC0HADB0EN1ryQAAceiW+ryS3niUwvdFbGiqHqBrfVA==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-14.1.0.tgz",
+ "integrity": "sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@vueuse/shared": {
- "version": "14.0.0",
- "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-14.0.0.tgz",
- "integrity": "sha512-mTCA0uczBgurRlwVaQHfG0Ja7UdGe4g9mwffiJmvLiTtp1G4AQyIjej6si/k8c8pUwTfVpNufck+23gXptPAkw==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-14.1.0.tgz",
+ "integrity": "sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/antfu"
@@ -2728,9 +2654,9 @@
}
},
"node_modules/csstype": {
- "version": "3.2.2",
- "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.2.tgz",
- "integrity": "sha512-D80T+tiqkd/8B0xNlbstWDG4x6aqVfO52+OlSUNIdkTvmNw0uQpJLeos2J/2XvpyidAFuTPmpad+tUxLndwj6g==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"license": "MIT"
},
"node_modules/dayjs": {
@@ -3053,16 +2979,16 @@
}
},
"node_modules/eslint-plugin-vue": {
- "version": "10.5.1",
- "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-10.5.1.tgz",
- "integrity": "sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==",
+ "version": "10.6.2",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-10.6.2.tgz",
+ "integrity": "sha512-nA5yUs/B1KmKzvC42fyD0+l9Yd+LtEpVhWRbXuDj0e+ZURcTtyRbMDWUeJmTAh2wC6jC83raS63anNM2YT3NPw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"natural-compare": "^1.4.0",
"nth-check": "^2.1.1",
- "postcss-selector-parser": "^6.0.15",
+ "postcss-selector-parser": "^7.1.0",
"semver": "^7.6.3",
"xml-name-validator": "^4.0.0"
},
@@ -4666,9 +4592,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4696,9 +4622,9 @@
}
},
"node_modules/prettier": {
- "version": "3.6.2",
- "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.6.2.tgz",
- "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
+ "version": "3.7.3",
+ "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.7.3.tgz",
+ "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -5420,9 +5346,9 @@
"license": "MIT"
},
"node_modules/vite": {
- "version": "7.2.2",
- "resolved": "https://registry.npmmirror.com/vite/-/vite-7.2.2.tgz",
- "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==",
+ "version": "7.2.6",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-7.2.6.tgz",
+ "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -5496,17 +5422,17 @@
}
},
"node_modules/vue": {
- "version": "3.5.24",
- "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.24.tgz",
- "integrity": "sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==",
+ "version": "3.5.25",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.25.tgz",
+ "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==",
"license": "MIT",
"peer": true,
"dependencies": {
- "@vue/compiler-dom": "3.5.24",
- "@vue/compiler-sfc": "3.5.24",
- "@vue/runtime-dom": "3.5.24",
- "@vue/server-renderer": "3.5.24",
- "@vue/shared": "3.5.24"
+ "@vue/compiler-dom": "3.5.25",
+ "@vue/compiler-sfc": "3.5.25",
+ "@vue/runtime-dom": "3.5.25",
+ "@vue/server-renderer": "3.5.25",
+ "@vue/shared": "3.5.25"
},
"peerDependencies": {
"typescript": "*"
@@ -5536,9 +5462,9 @@
}
},
"node_modules/vue-data-ui": {
- "version": "3.7.6",
- "resolved": "https://registry.npmmirror.com/vue-data-ui/-/vue-data-ui-3.7.6.tgz",
- "integrity": "sha512-nXd4uZ0SrP1Ch8L/AP81ncPN6xpy0qErQzxCh8dSuY3p1tooSQ1/Ugx3xT78+S7aYrUKlMgc91KXCutqn7TIkA==",
+ "version": "3.7.14",
+ "resolved": "https://registry.npmmirror.com/vue-data-ui/-/vue-data-ui-3.7.14.tgz",
+ "integrity": "sha512-MhEd3ZN0w1VVAnJPwo1xCcx1bg8owGm3+4Apn/kxO/dh+k3NqOXdGjaRrKOZdqc63l1GQ03hrAVknYxpILo9hA==",
"license": "MIT",
"peerDependencies": {
"jspdf": "^3.0.1",
diff --git a/cdTMP/package.json b/cdTMP/package.json
index a2f33dd..f57095a 100644
--- a/cdTMP/package.json
+++ b/cdTMP/package.json
@@ -13,9 +13,9 @@
"dependencies": {
"@arco-design/color": "^0.4.0",
"@arco-design/web-vue": "^2.57.0",
- "@tanstack/vue-query": "^5.91.2",
+ "@tanstack/vue-query": "^5.92.0",
"@tinymce/tinymce-vue": "^6.3.0",
- "@vueuse/core": "^14.0.0",
+ "@vueuse/core": "^14.1.0",
"axios": "^1.13.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -32,10 +32,10 @@
"tailwind-merge": "^3.4.0",
"tinymce": "^7.9.1",
"tw-animate-css": "^1.4.0",
- "vue": "^3.5.24",
+ "vue": "^3.5.25",
"vue-clipboard3": "^2.0.0",
"vue-color-kit": "^1.0.6",
- "vue-data-ui": "^3.7.6",
+ "vue-data-ui": "^3.7.14",
"vue-router": "^4.6.3",
"vuedraggable": "^2.24.3"
},
@@ -46,20 +46,20 @@
"@types/node": "^24.10.1",
"@types/nprogress": "^0.2.3",
"@types/qs": "^6.14.0",
- "@vitejs/plugin-vue": "^6.0.1",
- "@vitejs/plugin-vue-jsx": "^5.1.1",
+ "@vitejs/plugin-vue": "^6.0.2",
+ "@vitejs/plugin-vue-jsx": "^5.1.2",
"@vue/babel-plugin-jsx": "^2.0.1",
"browserslist": "^4.28.0",
"eslint": "^9.39.1",
- "eslint-plugin-vue": "^10.5.1",
+ "eslint-plugin-vue": "^10.6.2",
"less": "^4.4.2",
"less-loader": "^12.3.0",
"postcss": "^8.5.6",
- "prettier": "^3.6.2",
+ "prettier": "^3.7.3",
"rollup-plugin-visualizer": "^6.0.5",
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3",
- "vite": "^7.2.2",
+ "vite": "^7.2.6",
"vue-eslint-parser": "^10.2.0"
}
}
diff --git a/cdTMP/src/api/outs/aiApi.ts b/cdTMP/src/api/outs/aiApi.ts
new file mode 100644
index 0000000..b5377fc
--- /dev/null
+++ b/cdTMP/src/api/outs/aiApi.ts
@@ -0,0 +1,23 @@
+import { request } from "@/api/request"
+
+const AI_API_BASE = import.meta.env.VUE_APP_AI_API_BASE || "http://192.168.0.63:8777"
+
+interface DataRowType {
+ question: string
+ stream: boolean
+}
+
+export default {
+ /**
+ * 请求AI生成测试项
+ * @returns 可流式或一次性
+ */
+ getAiTestItem(data: DataRowType) {
+ return request({
+ url: `${AI_API_BASE}/api/local_doc_qa/testing_item`,
+ timeout: 20000,
+ method: "post",
+ data
+ })
+ }
+}
diff --git a/cdTMP/src/components/ai-button/index.vue b/cdTMP/src/components/ai-button/index.vue
new file mode 100644
index 0000000..ae25beb
--- /dev/null
+++ b/cdTMP/src/components/ai-button/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
diff --git a/cdTMP/src/components/ma-form/Customs/ChenDemandList.vue b/cdTMP/src/components/ma-form/Customs/ChenDemandList.vue
index 5241e49..6d11bf0 100644
--- a/cdTMP/src/components/ma-form/Customs/ChenDemandList.vue
+++ b/cdTMP/src/components/ma-form/Customs/ChenDemandList.vue
@@ -85,7 +85,7 @@
|
- |
diff --git a/cdTMP/src/utils/tool.js b/cdTMP/src/utils/tool.js
index 7cf143e..41b5a44 100644
--- a/cdTMP/src/utils/tool.js
+++ b/cdTMP/src/utils/tool.js
@@ -91,4 +91,15 @@ tool.chnRoundNameArray = [
"第十六轮"
]
+// 将html变为纯文本
+tool.htmlToTextWithDOM = (htmlString) => {
+ // 1. 创建一个临时的div元素
+ const tempDiv = document.createElement("div")
+ // 2. 将HTML字符串设置为临时div的内容
+ tempDiv.innerHTML = htmlString
+ // 3. 使用innerText属性获取纯文本,这会自动忽略所有HTML标签
+ const text = tempDiv.innerText || tempDiv.textContent
+ return text
+}
+
export default tool
diff --git a/cdTMP/src/views/project/design-demand/AiModal.vue b/cdTMP/src/views/project/design-demand/AiModal.vue
new file mode 100644
index 0000000..3adcb4c
--- /dev/null
+++ b/cdTMP/src/views/project/design-demand/AiModal.vue
@@ -0,0 +1,219 @@
+
+
+
+ AI生成测试项
+
+
{{
+ generateLoading ? "AI正在生成测试项中..." : "点击生成测试项"
+ }}
+
+
+ 设计需求:{{ designObj?.name ?? "暂无内容" }}
+
+
+
+
+ {{ indexTu[index] }}
+ 测试项:
+
+
+
+ 高
+ 中
+ 低
+
+
+
+ {{ type.title }}
+
+
+
+
+ {{ method.title }}
+
+
+
+
+
+
+
+
+
+ |
+
+ 子项序号
+
+ |
+
+
+ 测试子项描述
+
+ |
+
+
+ 测试子项步骤
+
+ |
+
+
+
+
+
+ |
+
+ {{ idx + 1 }}
+
+ |
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/project/design-demand/OpeAndExpect.vue b/cdTMP/src/views/project/design-demand/OpeAndExpect.vue
new file mode 100644
index 0000000..ebe2983
--- /dev/null
+++ b/cdTMP/src/views/project/design-demand/OpeAndExpect.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ |
+
+ 操作
+
+ |
+
+
+ 预期
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/project/design-demand/index.vue b/cdTMP/src/views/project/design-demand/index.vue
index 72cd079..b14b288 100644
--- a/cdTMP/src/views/project/design-demand/index.vue
+++ b/cdTMP/src/views/project/design-demand/index.vue
@@ -26,6 +26,8 @@
批量替换
批量修改优先级
+
+
@@ -66,6 +68,8 @@
/>
+
+
@@ -74,6 +78,8 @@ import { ref } from "vue"
import commonApi from "@/api/common"
import { useRoute } from "vue-router"
import { Message } from "@arco-design/web-vue"
+import AiButton from "@/components/ai-button/index.vue"
+import AiModal from "./AiModal.vue"
// hooks
import useCrudOpMore from "./hooks/useCrudOpMore"
import useColumn from "./hooks/useColumns"
@@ -106,6 +112,7 @@ const handleOpenReplacePriority = () => {
// 根据传参获取key,分别为轮次、设计需求的key
const { projectId, crudOptions, handleBeforeCancel } = useCrudOpMore(crudRef)
const crudColumns = useColumn(crudRef)
+
// 关联弹窗、关联的事件处理
const { visible, relatedData, options, cascaderLoading, computedRelatedData, handleOpenRelationCSX, handleRelatedOk } =
useRalateDemand(projectId)
@@ -127,6 +134,12 @@ const showType = (record) => {
}
}
+// AI-MODAL
+const ai_modal_visible = ref(false)
+const handleAiButtonClick = () => {
+ ai_modal_visible.value = true
+}
+
// 暴露给route-view的刷新表格函数
const refreshCrudTable = () => {
crudRef.value.refresh()
diff --git a/cdTMP/tsconfig.json b/cdTMP/tsconfig.json
index ec7ffac..5d72526 100644
--- a/cdTMP/tsconfig.json
+++ b/cdTMP/tsconfig.json
@@ -47,7 +47,8 @@
],
"types": [
"vite/client",
- "@arco-design/web-vue"
+ "@arco-design/web-vue",
+ "@types/node"
]
},
"include": [
diff --git a/cdTMP/visualizer.html b/cdTMP/visualizer.html
index 20192e9..315d1a6 100644
--- a/cdTMP/visualizer.html
+++ b/cdTMP/visualizer.html
@@ -4929,7 +4929,7 @@ var drawChart = (function (exports) {