修改请求逻辑处理
parent
d9462a946d
commit
9126b65e28
|
|
@ -2,7 +2,7 @@
|
||||||
<div :class="props.direction == 'vertical' ? 'flex-col gap-x-18' : 'flex-row gap-y-20 jc-e'">
|
<div :class="props.direction == 'vertical' ? 'flex-col gap-x-18' : 'flex-row gap-y-20 jc-e'">
|
||||||
<div v-for="(item, index) in props.filterData" :key="index" class="filter-style flex-row gap-12">
|
<div v-for="(item, index) in props.filterData" :key="index" class="filter-style flex-row gap-12">
|
||||||
<div v-if="!isEmpty(item.title)" :class="['title text-line-1', props.direction == 'vertical' ? '' : 'horizontal-title']" :style="`width: ${ Number(props.titleWidth) > 0 ? props.titleWidth + 'px;' : '100%' }`">{{ item.title }}</div>
|
<div v-if="!isEmpty(item.title)" :class="['title text-line-1', props.direction == 'vertical' ? '' : 'horizontal-title']" :style="`width: ${ Number(props.titleWidth) > 0 ? props.titleWidth + 'px;' : '100%' }`">{{ item.title }}</div>
|
||||||
<div class="w h flex-1">
|
<div class="w h flex-1 vertical-style">
|
||||||
<template v-if="item.type == 'select'">
|
<template v-if="item.type == 'select'">
|
||||||
<template v-if="item.config.is_level.toString() == '1'">
|
<template v-if="item.config.is_level.toString() == '1'">
|
||||||
<div class="flex-row gap-10">
|
<div class="flex-row gap-10">
|
||||||
|
|
@ -164,6 +164,22 @@ const contains_value = (list: any[], config: any, result: any[], children?: stri
|
||||||
min-height: 3.2rem;
|
min-height: 3.2rem;
|
||||||
min-width: 20rem;
|
min-width: 20rem;
|
||||||
}
|
}
|
||||||
|
.vertical-style {
|
||||||
|
min-width: 20rem;
|
||||||
|
}
|
||||||
|
// 输入框超出隐藏,不换行
|
||||||
|
:deep(.el-cascader) {
|
||||||
|
height: 3.2rem;
|
||||||
|
.el-input {
|
||||||
|
height: 3.2rem;
|
||||||
|
}
|
||||||
|
.el-cascader__tags {
|
||||||
|
flex-wrap: nowrap !important;
|
||||||
|
}
|
||||||
|
.el-tag {
|
||||||
|
max-width: 10rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
.horizontal-title {
|
.horizontal-title {
|
||||||
flex-basis: max-content;
|
flex-basis: max-content;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -188,8 +188,10 @@ const default_data = () => {
|
||||||
form.value.data_source_carousel_col = show_number[0];
|
form.value.data_source_carousel_col = show_number[0];
|
||||||
}
|
}
|
||||||
// 如果存在默认数据类型的时候, 并且跟当前的不一致时,默认选中第一个
|
// 如果存在默认数据类型的时候, 并且跟当前的不一致时,默认选中第一个
|
||||||
if (!isEmpty(data_type) && isEmpty(data_source_content.data_type) && !data_type.includes(data_source_content.data_type)) {
|
if (!isEmpty(data_type) && isEmpty(data_source_content.data_type) && !data_type.includes(Number(data_source_content.data_type))) {
|
||||||
form.value.data_source_content.data_type = data_type[0];
|
form.value.data_source_content.data_type = data_type[0];
|
||||||
|
} else if (!isEmpty(data_source_content.data_type) && typeof data_source_content.data_type == 'string') { // 老数据使用的是字符串类型,需要转换一下
|
||||||
|
form.value.data_source_content.data_type = Number(form.value.data_source_content.data_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 处理显示的图片和传递到下去的数据结构
|
// 处理显示的图片和传递到下去的数据结构
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,9 @@ const message_error = (info: string) => {
|
||||||
// 创建一个状态变量来跟踪是否已经弹出了退出登录的弹窗
|
// 创建一个状态变量来跟踪是否已经弹出了退出登录的弹窗
|
||||||
const isLogoutModalShown = ref(true);
|
const isLogoutModalShown = ref(true);
|
||||||
|
|
||||||
|
// 用于存储每个请求的CancelToken
|
||||||
|
const pendingRequests = new Map();
|
||||||
|
|
||||||
// 创建 axios 实例
|
// 创建 axios 实例
|
||||||
const index = window.location.href.lastIndexOf('?s=');
|
const index = window.location.href.lastIndexOf('?s=');
|
||||||
const pro_url = window.location.href.substring(0, index);
|
const pro_url = window.location.href.substring(0, index);
|
||||||
|
|
@ -43,6 +46,17 @@ service.interceptors.request.use(
|
||||||
config.url = config.url + '&token=' + (JSON.parse(cookie) !== 'null' ? JSON.parse(cookie)?.token : '');
|
config.url = config.url + '&token=' + (JSON.parse(cookie) !== 'null' ? JSON.parse(cookie)?.token : '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 检查是否有相同请求正在进行,如果有则取消, 防止重复请求导致返回数据有误
|
||||||
|
if (pendingRequests.has(config.url)) {
|
||||||
|
const cancelToken = pendingRequests.get(config.url);
|
||||||
|
cancelToken.cancel('canceled');
|
||||||
|
pendingRequests.delete(config.url);
|
||||||
|
}
|
||||||
|
// 创建一个新的 CancelToken
|
||||||
|
const source = axios.CancelToken.source();
|
||||||
|
config.cancelToken = source.token;
|
||||||
|
pendingRequests.set(config.url, source);
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
(error: any) => {
|
(error: any) => {
|
||||||
|
|
@ -52,6 +66,9 @@ service.interceptors.request.use(
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
(response: AxiosResponse) => {
|
(response: AxiosResponse) => {
|
||||||
|
// 请求完成后,从pendingRequests中移除
|
||||||
|
pendingRequests.delete(response.config.url);
|
||||||
|
|
||||||
const { code, msg, message, data } = response.data;
|
const { code, msg, message, data } = response.data;
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
return response.data;
|
return response.data;
|
||||||
|
|
@ -74,9 +91,12 @@ service.interceptors.response.use(
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(error: any) => {
|
(error: any) => {
|
||||||
|
console.log(error);
|
||||||
if (error.response && error.response.data) {
|
if (error.response && error.response.data) {
|
||||||
const { msg, message } = error.response.data;
|
const { msg, message } = error.response.data;
|
||||||
message_error(msg || message || '系统出错');
|
message_error(msg || message || '系统出错');
|
||||||
|
} else if (error.message == 'canceled') {
|
||||||
|
console.log('请求已取消');
|
||||||
} else {
|
} else {
|
||||||
message_error(error.message);
|
message_error(error.message);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue