fix(projects): 修复导出查询参数问题
This commit is contained in:
parent
031b7f698a
commit
ffa47c37fa
@ -1,6 +1,7 @@
|
||||
import { errorCodeRecord } from '@/constants/common';
|
||||
import { localStg } from '@/utils/storage';
|
||||
import { getServiceBaseURL } from '@/utils/service';
|
||||
import { transformToURLSearchParams } from '@/utils/common';
|
||||
|
||||
export function useDownload() {
|
||||
const isHttpProxy = import.meta.env.DEV && import.meta.env.VITE_HTTP_PROXY === 'Y';
|
||||
@ -24,26 +25,20 @@ export function useDownload() {
|
||||
window.URL.revokeObjectURL(blobURL);
|
||||
}
|
||||
|
||||
function download(url: string, params: any, fileName: string) {
|
||||
function download(url: string, params: Record<string, any>, fileName: string) {
|
||||
window.$loading?.startLoading('正在下载数据,请稍候...');
|
||||
const token = localStg.get('token');
|
||||
const clientId = import.meta.env.VITE_APP_CLIENT_ID;
|
||||
const now = Date.now();
|
||||
const searchParams = new FormData();
|
||||
if (params) {
|
||||
Object.keys(params).forEach(key => {
|
||||
if (params[key] !== null && params[key] !== undefined) {
|
||||
searchParams.append(key, params[key]);
|
||||
}
|
||||
});
|
||||
}
|
||||
const searchParams = transformToURLSearchParams(params);
|
||||
|
||||
fetch(`${baseURL}${url}?t=${now}`, {
|
||||
method: 'post',
|
||||
body: searchParams,
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
Clientid: clientId!,
|
||||
'Content-Type': 'application/octet-stream'
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
})
|
||||
.then(async response => {
|
||||
|
@ -163,3 +163,31 @@ export const handleTree = <T extends Record<string, any>>(data: T[], config: Com
|
||||
|
||||
return tree;
|
||||
};
|
||||
|
||||
/**
|
||||
* 将对象转换为 URLSearchParams
|
||||
*
|
||||
* @param obj
|
||||
*/
|
||||
export function transformToURLSearchParams(obj: Record<string, any>, excludeKeys: string[] = []) {
|
||||
const searchParams = new URLSearchParams();
|
||||
if (!isNotNull(obj)) {
|
||||
return searchParams;
|
||||
}
|
||||
Object.entries(obj).forEach(([key, value]) => {
|
||||
if (excludeKeys.includes(key)) {
|
||||
return;
|
||||
}
|
||||
if (typeof value === 'object') {
|
||||
transformToURLSearchParams(value).forEach((v, k) => {
|
||||
searchParams.append(`${key}[${k}]`, v);
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!isNotNull(value)) {
|
||||
return;
|
||||
}
|
||||
searchParams.append(key, value);
|
||||
});
|
||||
return searchParams;
|
||||
}
|
||||
|
@ -18,7 +18,6 @@ const { formRef, validate, restoreValidation } = useNaiveForm();
|
||||
const model = defineModel<Api.Demo.DemoSearchParams>('model', { required: true });
|
||||
|
||||
async function reset() {
|
||||
Object.assign(model.value.params!, {});
|
||||
await restoreValidation();
|
||||
emit('reset');
|
||||
}
|
||||
|
@ -25,7 +25,6 @@ const { formRef, validate, restoreValidation } = useNaiveForm();
|
||||
const model = defineModel<Api.Demo.TreeSearchParams>('model', { required: true });
|
||||
|
||||
async function reset() {
|
||||
Object.assign(model.value.params!, {});
|
||||
await restoreValidation();
|
||||
emit('reset');
|
||||
}
|
||||
|
@ -20,6 +20,13 @@ const dateRangeLoginTime = ref<[string, string] | null>(null);
|
||||
|
||||
const model = defineModel<Api.Monitor.LoginInforSearchParams>('model', { required: true });
|
||||
|
||||
function onDateRangeLoginTimeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginTime = value[0];
|
||||
model.value.params!.endTime = value[1];
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
dateRangeLoginTime.value = null;
|
||||
await restoreValidation();
|
||||
@ -28,10 +35,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRangeLoginTime.value?.length) {
|
||||
model.value.params!.beginTime = dateRangeLoginTime.value[0];
|
||||
model.value.params!.endTime = dateRangeLoginTime.value[1];
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -62,6 +65,7 @@ async function search() {
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeLoginTimeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24" class="pr-24px">
|
||||
|
@ -20,6 +20,13 @@ const dateRangeOperTime = ref<[string, string] | null>(null);
|
||||
|
||||
const model = defineModel<Api.Monitor.OperLogSearchParams>('model', { required: true });
|
||||
|
||||
function onDateRangeOperTimeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginTime = value[0];
|
||||
model.value.params!.endTime = value[1];
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
dateRangeOperTime.value = null;
|
||||
await restoreValidation();
|
||||
@ -28,10 +35,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRangeOperTime.value?.length) {
|
||||
model.value.params!.beginTime = dateRangeOperTime.value[0];
|
||||
model.value.params!.endTime = dateRangeOperTime.value[1];
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -73,6 +76,7 @@ async function search() {
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeOperTimeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:8" class="pr-24px">
|
||||
|
@ -20,6 +20,13 @@ const dateRangeCreateTime = ref<[string, string] | null>(null);
|
||||
|
||||
const model = defineModel<Api.System.ConfigSearchParams>('model', { required: true });
|
||||
|
||||
function onDateRangeCreateTimeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginTime = value[0];
|
||||
model.value.params!.endTime = value[1];
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
dateRangeCreateTime.value = null;
|
||||
await restoreValidation();
|
||||
@ -28,10 +35,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRangeCreateTime.value?.length) {
|
||||
model.value.params!.beginTime = dateRangeCreateTime.value[0];
|
||||
model.value.params!.endTime = dateRangeCreateTime.value[1];
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -80,6 +83,7 @@ async function search() {
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeCreateTimeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:12" class="pr-24px">
|
||||
|
@ -20,6 +20,13 @@ const dateRangeCreateTime = ref<[string, string] | null>(null);
|
||||
|
||||
const model = defineModel<Api.System.OssSearchParams>('model', { required: true });
|
||||
|
||||
function onDateRangeCreateTimeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginCreateTime = value[0];
|
||||
model.value.params!.endCreateTime = value[1];
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
dateRangeCreateTime.value = null;
|
||||
await restoreValidation();
|
||||
@ -28,10 +35,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRangeCreateTime.value?.length) {
|
||||
model.value.params!.beginCreateTime = dateRangeCreateTime.value[0];
|
||||
model.value.params!.endCreateTime = dateRangeCreateTime.value[1];
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -60,6 +63,7 @@ async function search() {
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeCreateTimeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:12" class="pr-24px">
|
||||
|
@ -23,6 +23,13 @@ const model = defineModel<Api.System.RoleSearchParams>('model', { required: true
|
||||
|
||||
const { options: sysNormalDisableOptions } = useDict('sys_normal_disable');
|
||||
|
||||
function onDateRangeCreateTimeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginTime = `${value[0]} 00:00:00`;
|
||||
model.value.params!.endTime = `${value[1]} 23:59:59`;
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
dateRangeCreateTime.value = null;
|
||||
await restoreValidation();
|
||||
@ -31,10 +38,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRangeCreateTime.value?.length) {
|
||||
model.value.params!.beginTime = `${dateRangeCreateTime.value[0]} 00:00:00`;
|
||||
model.value.params!.endTime = `${dateRangeCreateTime.value[1]} 23:59:59`;
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -67,6 +70,7 @@ async function search() {
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeCreateTimeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24" class="pr-24px">
|
||||
|
@ -21,7 +21,6 @@ const model = defineModel<Api.System.TenantPackageSearchParams>('model', { requi
|
||||
const { options: sysNormalDisableOptions } = useDict('sys_normal_disable');
|
||||
|
||||
async function reset() {
|
||||
Object.assign(model.value.params!, {});
|
||||
await restoreValidation();
|
||||
emit('reset');
|
||||
}
|
||||
|
@ -23,6 +23,13 @@ const datePickerRef = ref<InstanceType<typeof NDatePicker>>();
|
||||
|
||||
const model = defineModel<Api.System.UserSearchParams>('model', { required: true });
|
||||
|
||||
function onDateRangeCreateTimeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginTime = value[0];
|
||||
model.value.params!.endTime = value[1];
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
dateRangeCreateTime.value = null;
|
||||
await restoreValidation();
|
||||
@ -31,10 +38,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRangeCreateTime.value?.length) {
|
||||
model.value.params!.beginTime = dateRangeCreateTime.value[0];
|
||||
model.value.params!.endTime = dateRangeCreateTime.value[1];
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -82,6 +85,7 @@ async function search() {
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeCreateTimeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:12" class="pr-24px">
|
||||
|
@ -26,6 +26,13 @@ const model = defineModel<Api.Tool.GenTableSearchParams>('model', { required: tr
|
||||
|
||||
const dateRange = ref<[string, string]>();
|
||||
|
||||
function onDateRangeUpdate(value: [string, string] | null) {
|
||||
if (value?.length) {
|
||||
model.value.params!.beginTime = value[0];
|
||||
model.value.params!.endTime = value[1];
|
||||
}
|
||||
}
|
||||
|
||||
async function reset() {
|
||||
await restoreValidation();
|
||||
emit('reset');
|
||||
@ -33,10 +40,6 @@ async function reset() {
|
||||
|
||||
async function search() {
|
||||
await validate();
|
||||
if (dateRange.value?.length) {
|
||||
model.value.params!.beginTime = dateRange.value[0];
|
||||
model.value.params!.endTime = dateRange.value[0];
|
||||
}
|
||||
emit('search');
|
||||
}
|
||||
</script>
|
||||
@ -62,6 +65,7 @@ async function search() {
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="daterange"
|
||||
clearable
|
||||
@update:formatted-value="onDateRangeUpdate"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi :show-feedback="false" span="24" class="pb-6px pr-24px">
|
||||
|
Loading…
Reference in New Issue
Block a user