diff --git a/template/web/package.json b/template/web/package.json
index dcde2507c01173989a8195b0176991b2bdbaac7f..b3af3a20a7443685bff6c313afd9c433647436f2 100644
--- a/template/web/package.json
+++ b/template/web/package.json
@@ -9,6 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
+ "axios": "^1.7.2",
"vue": "^3.4.21"
},
"devDependencies": {
diff --git a/template/web/src/api/demo.ts b/template/web/src/api/demo.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a0bb67c996f400bcfe09afb907fe9676f9062551
--- /dev/null
+++ b/template/web/src/api/demo.ts
@@ -0,0 +1,9 @@
+import request from "./request";
+
+export function demoAPI(data?:Object) {
+ return request({
+ url: "/plugin/template/api/hello_world",
+ method: "get",
+ params:data
+ })
+}
\ No newline at end of file
diff --git a/template/web/src/api/request.ts b/template/web/src/api/request.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e8060ce2156bb29e0fd32fe4414a55e56e6d89c8
--- /dev/null
+++ b/template/web/src/api/request.ts
@@ -0,0 +1,34 @@
+import axios from 'axios';
+
+// 1.创建axios实例
+const request = axios.create({
+ baseURL: '',
+ timeout: 5000,
+ headers: {
+ 'Content-Type': 'application/json',
+ }
+});
+
+// 2.1添加请求拦截器
+request.interceptors.request.use(
+ (config) => {
+ return config;
+ },
+ (error) => {
+ return Promise.reject(error);
+ },
+);
+
+// 2.2添加响应拦截器
+request.interceptors.response.use(
+ (response: any) => {
+ return response;
+ },
+ (error) => {
+ if (error.response) {
+ return Promise.reject(error.response.data);
+ }
+ },
+);
+
+export default request;
diff --git a/template/web/src/view/demo.vue b/template/web/src/view/demo.vue
index 2b4c5f91fa91dafb53df698988b2ea7c813c3811..bb18acdc888231fdb7a368dcc5ab3f502f8e7250 100644
--- a/template/web/src/view/demo.vue
+++ b/template/web/src/view/demo.vue
@@ -1,11 +1,36 @@
- 一个简单的demo页面
+
+ 一个简单的demo页面
+
+
无参数请求接口结果:
+
+ {{ result }}
+
+
带参数请求接口结果:
+
+ {{ result_params }}
+
\ No newline at end of file
diff --git a/template/web/vite.config.ts b/template/web/vite.config.ts
index 05c17402a4a92b87397786592fc5135e13b7a666..bd0d1650c596c65719ad33753a3445759e84c3b3 100644
--- a/template/web/vite.config.ts
+++ b/template/web/vite.config.ts
@@ -4,4 +4,14 @@ import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
+ server: {
+ proxy: {
+ '/plugin/template/api': {
+ target: 'https://10.41.107.29:49151',
+ secure:false,
+ changeOrigin: true,
+ rewrite: path => path.replace(/^\//, '')
+ },
+ },
+ }
})
diff --git a/template/web/yarn.lock b/template/web/yarn.lock
index 77f5e372df8fd9b1e96ccb180dbc7143dd307a37..916dec108b8add255d333ead00d62e77f7f12992 100644
--- a/template/web/yarn.lock
+++ b/template/web/yarn.lock
@@ -333,6 +333,20 @@
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.29.tgz#84908c284e88a269f8bceee59707b14eb4b2d284"
integrity sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+axios@^1.7.2:
+ version "1.7.2"
+ resolved "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
+ integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
+ dependencies:
+ follow-redirects "^1.15.6"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -345,6 +359,13 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
computeds@^0.0.1:
version "0.0.1"
resolved "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e"
@@ -360,6 +381,11 @@ de-indent@^1.0.2:
resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
entities@^4.5.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
@@ -399,6 +425,20 @@ estree-walker@^2.0.2:
resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+follow-redirects@^1.15.6:
+ version "1.15.6"
+ resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
+ integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
@@ -416,6 +456,18 @@ magic-string@^0.30.10:
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+ version "2.1.35"
+ resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
minimatch@^9.0.3:
version "9.0.4"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
@@ -452,6 +504,11 @@ postcss@^8.4.38:
picocolors "^1.0.0"
source-map-js "^1.2.0"
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
rollup@^4.13.0:
version "4.18.0"
resolved "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda"