⬆️ 升级 axios 版本.
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) }}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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')"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
-- replace regexp 'AUTO_INCREMENT = .*' to 'AUTO_INCREMENT = 1' --
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user