diff --git a/package.json b/package.json index a84010a..1cc2d1c 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@arco-design/color": "^0.4.0", "@visactor/vchart": "^1.11.0", "@visactor/vchart-arco-theme": "^1.11.0", + "axios": "^1.6.8", "dc-admin": "link:", "nprogress": "^0.2.0", "pinia": "^2.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3743f61..1f6caf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ dependencies: '@visactor/vchart-arco-theme': specifier: ^1.11.0 version: 1.11.0(@visactor/vchart@1.11.0) + axios: + specifier: ^1.6.8 + version: 1.6.8 dc-admin: specifier: 'link:' version: 'link:' @@ -2160,6 +2163,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + /atob@2.1.2: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} @@ -2182,6 +2189,16 @@ packages: postcss-value-parser: 4.2.0 dev: true + /axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + /b-tween@0.3.3: resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} dev: true @@ -2428,6 +2445,13 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + /commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -2745,6 +2769,11 @@ packages: isobject: 3.0.1 dev: true + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3248,11 +3277,30 @@ packages: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + /for-in@1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} dev: true + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true @@ -4061,6 +4109,18 @@ packages: picomatch: 2.3.1 dev: true + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4902,6 +4962,10 @@ packages: resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} dev: false + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..ba40802 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,50 @@ +import axios from "axios"; +import { useRouter } from "vue-router"; +const router = useRouter(); +// 创建axios实例 +const service = axios.create({ + baseURL: "https://mock.apifox.com/m1/4457302-4103374-default", + timeout: 5000 +}); +// 请求拦截器 +service.interceptors.request.use( + function (config: any) { + // 发送请求之前做什么 + // 获取token鉴权 + console.log("token?", localStorage.getItem("user-info")); + let userInfo: any = {}; + if (localStorage.getItem("user-info")) { + userInfo = JSON.parse(localStorage.getItem("user-info") as string); + } + if (userInfo.token) { + // 有token,在请求头中携带token + config.headers.Authorization = userInfo.token; + } else { + // 如果没有token,则不允许发送请求,并且跳转至登录页要求登录,获取对应的token + if (config.url !== "/login") { + router.push("/login"); + Promise.reject("未登录"); + } + } + return config; + }, + function (error: any) { + // 请求错误 + return Promise.reject(error); + } +); + +// 响应拦截器 +service.interceptors.response.use( + function (response: any) { + return response.data; + }, + function (error: any) { + console.log("响应拦截", error, router); + console.log("身份信息过期"); + localStorage.removeItem("user-info"); + router.push("/login"); + return Promise.reject(error); + } +); +export default service; diff --git a/src/api/modules/home.ts b/src/api/modules/home.ts new file mode 100644 index 0000000..86e8813 --- /dev/null +++ b/src/api/modules/home.ts @@ -0,0 +1,4 @@ +import axios from "@/api"; + +// 第三板指标 +export const getTargetAPI = () => axios.get("/notice-list"); diff --git a/src/views/home/components/monthly-analysis.vue b/src/views/home/components/monthly-analysis.vue index b01869e..54d6d35 100644 --- a/src/views/home/components/monthly-analysis.vue +++ b/src/views/home/components/monthly-analysis.vue @@ -65,10 +65,7 @@ const init = () => { } } }; - let dom = monthlyAnalysis.value; - console.log("dom", dom); - - const vchart = new VChart(spec as any, { dom: dom }); + const vchart = new VChart(spec as any, { dom: monthlyAnalysis.value }); vchart.renderSync(); }; diff --git a/src/views/home/components/sell-histogram.vue b/src/views/home/components/sell-histogram.vue index 0c72c53..b8ec690 100644 --- a/src/views/home/components/sell-histogram.vue +++ b/src/views/home/components/sell-histogram.vue @@ -36,10 +36,7 @@ const init = () => { barWidth: 10, barGapInGroup: 0 }; - let dom = sellHistogram.value; - console.log("dom", dom); - - const vchart = new VChart(spec as any, { dom: dom }); + const vchart = new VChart(spec as any, { dom: sellHistogram.value }); vchart.renderSync(); };