⬆️ 升级 axios 版本.

This commit is contained in:
lijiahang
2025-01-14 10:09:07 +08:00
parent 956c34176d
commit 8d71d64d49
17 changed files with 67 additions and 56 deletions

View File

@@ -30,10 +30,10 @@
]
},
"dependencies": {
"@arco-design/web-vue": "^2.55.3",
"@arco-design/web-vue": "^2.56.3",
"@dangojs/a-query-header": "^0.0.31",
"@sanqi377/arco-vue-icon-picker": "^1.0.7",
"@vueuse/core": "^9.3.0",
"@vueuse/core": "^12.3.0",
"@xterm/addon-canvas": "^0.7.0",
"@xterm/addon-fit": "^0.10.0",
"@xterm/addon-image": "^0.8.0",
@@ -42,24 +42,25 @@
"@xterm/addon-web-links": "^0.11.0",
"@xterm/addon-webgl": "^0.18.0",
"@xterm/xterm": "^5.5.0",
"axios": "^0.24.0",
"axios": "^1.7.9",
"cron-parser": "^4.9.0",
"dayjs": "^1.11.5",
"echarts": "^5.4.0",
"dayjs": "^1.11.13",
"echarts": "^5.6.0",
"file-saver": "^2.0.5",
"html2canvas": "^1.4.1",
"jsencrypt": "^3.3.2",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
"monaco-editor": "^0.44.0",
"monaco-editor": "^0.52.2",
"nprogress": "^0.2.0",
"pinia": "^2.0.23",
"query-string": "^8.0.3",
"sortablejs": "^1.15.0",
"pinia": "^2.3.0",
"query-string": "^9.1.1",
"sortablejs": "^1.15.6",
"ts-md5": "^1.3.1",
"vue": "^3.2.40",
"vue-echarts": "^6.2.3",
"vue-i18n": "^9.2.2",
"vue-router": "^4.0.14"
"vue": "^3.5.13",
"vue-echarts": "^7.0.3",
"vue-i18n": "^11.0.1",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@arco-plugins/vite-vue": "^1.4.5",
@@ -77,7 +78,7 @@
"@vue/babel-plugin-jsx": "^1.1.1",
"consola": "^2.15.3",
"cross-env": "^7.0.3",
"eslint": "^8.25.0",
"eslint": "^8.56.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.5.0",
"eslint-import-resolver-typescript": "^3.5.1",
@@ -92,12 +93,12 @@
"rollup": "^3.9.1",
"rollup-plugin-visualizer": "^5.8.2",
"sass": "^1.69.4",
"stylelint": "^14.14.0",
"stylelint-config-prettier": "^9.0.3",
"stylelint": "^16.12.0",
"stylelint-config-prettier": "^9.0.5",
"stylelint-config-rational-order": "^0.1.2",
"stylelint-config-recommended-vue": "^1.4.0",
"stylelint-config-standard": "^29.0.0",
"stylelint-order": "^5.0.0",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^36.0.1",
"stylelint-order": "^6.0.4",
"typescript": "^4.8.4",
"unplugin-vue-components": "^0.24.1",
"vite": "^3.2.5",

View File

@@ -1,4 +1,4 @@
import type { AxiosRequestConfig, AxiosResponse } from 'axios';
import type { AxiosResponse, InternalAxiosRequestConfig } from 'axios';
import axios from 'axios';
import { Message } from '@arco-design/web-vue';
import { useUserStore } from '@/store';
@@ -6,12 +6,6 @@ import { getToken } from '@/utils/auth';
import { httpBaseUrl } from '@/utils/env';
import { reLoginTipsKey } from '@/types/symbol';
export interface HttpResponse<T = unknown> {
msg: string;
code: number;
data: T;
}
axios.defaults.timeout = 10000;
axios.defaults.setAuthorization = true;
axios.defaults.promptBizErrorMessage = true;
@@ -19,17 +13,12 @@ axios.defaults.promptRequestErrorMessage = true;
axios.defaults.baseURL = httpBaseUrl;
axios.interceptors.request.use(
(config: AxiosRequestConfig) => {
(config: InternalAxiosRequestConfig) => {
// 获取 token
const token = getToken();
if (token) {
if (!config.headers) {
config.headers = {};
}
// 设置 Authorization 头
if (config.setAuthorization === true) {
config.headers.Authorization = `Bearer ${token}`;
}
// 设置 Authorization 头
if (token && config.setAuthorization === true) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
@@ -39,7 +28,7 @@ axios.interceptors.request.use(
);
axios.interceptors.response.use(
(response: AxiosResponse<HttpResponse>) => {
(response: AxiosResponse) => {
// 不转换
if (response.config.unwrap) {
return response;

View File

@@ -50,7 +50,7 @@
</template>
</a-button>
</a-tooltip>
<a-dropdown trigger="click" @select="(s: string) => changeLocale(s)">
<a-dropdown trigger="click" @select="(s) => changeLocale(s as string)">
<div ref="localeRef" class="trigger-btn" />
<template #content>
<a-doption v-for="item in locales"
@@ -176,7 +176,7 @@
<template #content>
<!-- 个人中心 -->
<a-doption>
<a-space @click="$router.push({ name: 'userInfo' })">
<a-space @click="router.push({ name: 'userInfo' })">
<icon-user />
<span>个人中心</span>
</a-space>

View File

@@ -3,7 +3,7 @@
:popup-max-height="false"
@select="actionSelect">
<span class="arco-tag arco-tag-size-medium arco-tag-checked"
:class="{ 'link-activated': itemData?.path === $route.path }"
:class="{ 'link-activated': itemData?.path === route.path }"
@click="goto(itemData as TagProps)">
<span class="tag-link">
{{ itemData.title }}
@@ -69,8 +69,8 @@
itemData: TagProps;
}>();
const router = useRouter();
const route = useRoute();
const router = useRouter();
const tabBarStore = useTabBarStore();
const goto = (tag: TagProps) => {

View File

@@ -1,5 +1,5 @@
import type { AxiosResponse } from 'axios';
import type { HttpResponse } from '@/api/interceptor';
import type { HttpResponse } from '@/types/global';
import type { UnwrapRef } from 'vue';
import { ref } from 'vue';
import useLoading from './loading';

View File

@@ -13,6 +13,12 @@ export interface NodeOptions extends Options {
children?: NodeOptions[];
}
export interface HttpResponse<T = unknown> {
msg: string;
code: number;
data: T;
}
export interface GetParams {
body: null;
type: string;

View File

@@ -3,7 +3,7 @@
<a-result class="result" status="403" subtitle="您没有访问该资源的权限" />
<a-space>
<a-button type="primary" @click="() => logout()">重新登录</a-button>
<a-button type="primary" @click="() => $router.push(DEFAULT_ROUTE_NAME)">返回工作台</a-button>
<a-button type="primary" @click="router.push(DEFAULT_ROUTE_NAME)">返回工作台</a-button>
</a-space>
</div>
</template>
@@ -16,8 +16,10 @@
<script lang="ts" setup>
import useUser from '@/hooks/user';
import { useRouter } from 'vue-router';
import { DEFAULT_ROUTE_NAME } from '@/router/constants';
const router = useRouter();
const { logout } = useUser();
</script>

View File

@@ -3,7 +3,7 @@
<a-result class="result" status="404" subtitle="糟糕! 页面不见了!" />
<a-space>
<a-button type="primary" @click="() => logout()">重新登录</a-button>
<a-button type="primary" @click="() => $router.push(DEFAULT_ROUTE_NAME)">返回工作台</a-button>
<a-button type="primary" @click="router.push(DEFAULT_ROUTE_NAME)">返回工作台</a-button>
</a-space>
</div>
</template>
@@ -16,8 +16,10 @@
<script lang="ts" setup>
import useUser from '@/hooks/user';
import { useRouter } from 'vue-router';
import { DEFAULT_ROUTE_NAME } from '@/router/constants';
const router = useRouter();
const { logout } = useUser();
</script>

View File

@@ -6,7 +6,7 @@
<!-- 跳转 -->
<span class="pointer span-blue"
title="详情"
@click="$router.push({ name: 'execCommandLog', query: { action: 'self' } })">
@click="router.push({ name: 'execCommandLog', query: { action: 'self' } })">
详情
</span>
</div>
@@ -36,7 +36,7 @@
<a-button v-permission="['asset:exec-command:exec']"
type="text"
size="mini"
@click="() => $router.push({ name: 'execCommand', query: { id: record.id } })">
@click="router.push({ name: 'execCommand', query: { id: record.id } })">
日志
</a-button>
</div>
@@ -57,6 +57,7 @@
import type { WorkplaceStatisticsData } from '@/views/dashboard/workplace/types/const';
import { batchExecColumns } from '../types/table.columns';
import { useDictStore } from '@/store';
import { useRouter } from 'vue-router';
import { execHostStatusKey } from '@/components/exec/log/const';
const props = defineProps<{
@@ -64,6 +65,7 @@
data: WorkplaceStatisticsData;
}>();
const router = useRouter();
const { getDictValue } = useDictStore();
</script>

View File

@@ -6,7 +6,7 @@
<!-- 跳转 -->
<span class="pointer span-blue"
title="详情"
@click="$router.push({ name: 'userInfo', query: { tab: 'operatorLog' } })">
@click="router.push({ name: 'userInfo', query: { tab: 'operatorLog' } })">
详情
</span>
</div>
@@ -27,12 +27,15 @@
<script lang="ts" setup>
import type { WorkplaceStatisticsData } from '@/views/dashboard/workplace/types/const';
import { createLineSeries, LineSeriesColors } from '@/types/chart';
import { useRouter } from 'vue-router';
import useChartOption from '@/hooks/chart-option';
const props = defineProps<{
data: WorkplaceStatisticsData;
}>();
const router = useRouter();
// 数量图表配置
const { chartOption } = useChartOption((dark, themeTextColor, themeLineColor) => {
return {
@@ -92,6 +95,7 @@
],
};
});
</script>
<style lang="less" scoped>

View File

@@ -6,7 +6,7 @@
<!-- 跳转 -->
<span class="pointer span-blue"
title="详情"
@click="$router.push({ name: 'connectLog', query: { action: 'self' } })">
@click="router.push({ name: 'connectLog', query: { action: 'self' } })">
详情
</span>
</div>
@@ -70,6 +70,7 @@
import { copy } from '@/hooks/copy';
import { terminalLogColumns } from '../types/table.columns';
import { terminalConnectTypeKey } from '../types/const';
import { useRouter } from 'vue-router';
import { useDictStore } from '@/store';
import { openNewRoute } from '@/router';
@@ -78,6 +79,7 @@
data: WorkplaceStatisticsData;
}>();
const router = useRouter();
const { getDictValue } = useDictStore();
</script>

View File

@@ -6,7 +6,7 @@
<!-- 跳转 -->
<span class="pointer span-blue"
title="详情"
@click="$router.push({ name: 'userInfo', query: { tab: 'loginHistory' } })">
@click="router.push({ name: 'userInfo', query: { tab: 'loginHistory' } })">
详情
</span>
</div>
@@ -44,6 +44,7 @@
import type { WorkplaceStatisticsData } from '@/views/dashboard/workplace/types/const';
import { userLoginColumns } from '../types/table.columns';
import { operatorLogResultKey } from '../types/const';
import { useRouter } from 'vue-router';
import { useDictStore } from '@/store';
const props = defineProps<{
@@ -51,6 +52,7 @@
data: WorkplaceStatisticsData;
}>();
const router = useRouter();
const { getDictValue } = useDictStore();
</script>

View File

@@ -64,7 +64,7 @@
<!-- 执行命令 -->
<a-button v-permission="['asset:exec-command:exec']"
type="primary"
@click="$router.push({ name: 'execCommand' })">
@click="router.push({ name: 'execCommand' })">
执行命令
<template #icon>
<icon-thunderbolt />
@@ -217,7 +217,7 @@
getExecCommandLogStatus
} from '@/api/exec/exec-command-log';
import { Message } from '@arco-design/web-vue';
import { useRoute } from 'vue-router';
import { useRoute, useRouter } from 'vue-router';
import useLoading from '@/hooks/loading';
import { tableColumns } from '../types/table.columns';
import { ExecStatus, execStatusKey } from '@/components/exec/log/const';
@@ -232,6 +232,7 @@
const emits = defineEmits(['viewCommand', 'viewParams', 'viewLog', 'openClear']);
const route = useRoute();
const router = useRouter();
const pagination = useTablePagination();
const rowSelection = useRowSelection();
const expandable = useExpandable();

View File

@@ -124,7 +124,7 @@
:unchecked-text="getDictValue(execJobStatusKey, ExecJobStatus.DISABLED)"
:checked-value="ExecJobStatus.ENABLED"
:unchecked-value="ExecJobStatus.DISABLED"
:before-change="(s: number) => updateStatus(record.id, s)" />
:before-change="(s) => updateStatus(record.id, s as number)" />
<!-- 状态 不可编辑 -->
<a-tag v-else :color="getDictValue(execJobStatusKey, record.status, 'color')">
{{ getDictValue(execJobStatusKey, record.status) }}

View File

@@ -64,7 +64,7 @@
<!-- 上传 -->
<a-button v-permission="['asset:upload-task:upload']"
type="primary"
@click="$router.push({ name: 'batchUpload' })">
@click="router.push({ name: 'batchUpload' })">
上传
<template #icon>
<icon-upload />
@@ -140,7 +140,7 @@
<a-button v-permission="['asset:upload-task:query']"
type="text"
size="mini"
@click="$router.push({ name: 'batchUpload', query: { id: record.id } })">
@click="router.push({ name: 'batchUpload', query: { id: record.id } })">
详情
</a-button>
<!-- 取消 -->
@@ -190,10 +190,12 @@
import { useTablePagination, useRowSelection } from '@/hooks/table';
import { useDictStore } from '@/store';
import { copy } from '@/hooks/copy';
import { useRouter } from 'vue-router';
import UserSelector from '@/components/user/user/selector/index.vue';
const emits = defineEmits(['openClear']);
const router = useRouter();
const pagination = useTablePagination();
const rowSelection = useRowSelection();
const { loading, setLoading } = useLoading();

View File

@@ -6,7 +6,7 @@
position="left"
:lazy-load="true"
:destroy-on-hide="true"
@tab-click="(k: string) => clickTab(k)">
@tab-click="(k) => clickTab(k as string)">
<!-- 个人信息 -->
<a-tab-pane key="mineInfo"
v-if="!user || hasPermission('infra:system-user:update')"

View File

@@ -1,5 +1,3 @@
-- replace regexp 'AUTO_INCREMENT = .*' to 'AUTO_INCREMENT = 1' --
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;