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 @@ \ 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"