下载中心优化

This commit is contained in:
阿辉
2024-12-16 15:39:13 +08:00
parent 0c38343aca
commit a36dcfa1e5
5 changed files with 12 additions and 12 deletions

View File

@@ -41,6 +41,9 @@ class DownloadCenterViewSet(CustomModelViewSet):
serializer_class = DownloadCenterSerializer serializer_class = DownloadCenterSerializer
filter_class = DownloadCenterFilterSet filter_class = DownloadCenterFilterSet
permission_classes = [] permission_classes = []
extra_filter_class = []
def get_queryset(self): def get_queryset(self):
if self.request.user.is_superuser:
return super().get_queryset()
return super().get_queryset().filter(creator=self.request.user) return super().get_queryset().filter(creator=self.request.user)

View File

@@ -34,10 +34,6 @@ class FileSerializer(CustomModelSerializer):
model = FileList model = FileList
fields = "__all__" fields = "__all__"
class Meta:
model = FileList
fields = "__all__"
def create(self, validated_data): def create(self, validated_data):
file_engine = dispatch.get_system_config_values("fileStorageConfig.file_engine") or 'local' file_engine = dispatch.get_system_config_values("fileStorageConfig.file_engine") or 'local'
file_backup = dispatch.get_system_config_values("fileStorageConfig.file_backup") file_backup = dispatch.get_system_config_values("fileStorageConfig.file_backup")

View File

@@ -305,11 +305,10 @@ class ExportSerializerMixin:
assert self.export_serializer_class, "'%s' 请配置对应的导出序列化器。" % self.__class__.__name__ assert self.export_serializer_class, "'%s' 请配置对应的导出序列化器。" % self.__class__.__name__
data = self.export_serializer_class(queryset, many=True, request=request).data data = self.export_serializer_class(queryset, many=True, request=request).data
try: try:
from dvadmin3_celery import settings
async_export_data.delay( async_export_data.delay(
data, data,
str(f"导出{get_verbose_name(queryset)}-{datetime.datetime.now().strftime('%Y%m%d%H%M%S')}.xlsx"), str(f"导出{get_verbose_name(queryset)}-{datetime.datetime.now().strftime('%Y%m%d%H%M%S')}.xlsx"),
DownloadCenter.objects.create(creator=request.user, task_name=f'{get_verbose_name(queryset)}数据导出任务').pk, DownloadCenter.objects.create(creator=request.user, task_name=f'{get_verbose_name(queryset)}数据导出任务', dept_belong_id=request.user.dept).pk,
self.export_field_label self.export_field_label
) )
return SuccessResponse(msg="导入任务已创建,请前往‘下载中心’等待下载") return SuccessResponse(msg="导入任务已创建,请前往‘下载中心’等待下载")

View File

@@ -66,7 +66,7 @@
</div> </div>
</div> </div>
</slot> </slot>
<el-dialog v-model="selectVisiable" :draggable="false" width="50%" :align-center="false" :append-to-body="true" <el-dialog v-model="selectVisiable" :draggable="true" width="50%" :align-center="false" :append-to-body="true"
@open="if (listData.length === 0) listRequest();" @close="onClose" @closed="onClosed" modal-class="_overlay"> @open="if (listData.length === 0) listRequest();" @close="onClose" @closed="onClosed" modal-class="_overlay">
<template #header> <template #header>
<span class="el-dialog__title">文件选择</span> <span class="el-dialog__title">文件选择</span>
@@ -248,7 +248,7 @@ const listRequest = async () => {
}); });
listData.value = []; listData.value = [];
await nextTick(); await nextTick();
listData.value = res.data; listData.value = (res.data as any[]).map((item: any) => ({ ...item, url: getBaseURL(item.url) }));
pageForm.total = res.total; pageForm.total = res.total;
pageForm.page = res.page; pageForm.page = res.page;
pageForm.limit = res.limit; pageForm.limit = res.limit;
@@ -277,8 +277,10 @@ const onItemClick = async (e: MouseEvent) => {
if (target.classList.contains('active')) { target.classList.remove('active'); flat = -1; } if (target.classList.contains('active')) { target.classList.remove('active'); flat = -1; }
else { target.classList.add('active'); flat = 1; } else { target.classList.add('active'); flat = 1; }
if (data.value.length) { if (data.value.length) {
if (flat === 1) data.value.push(fileId); let _l = JSON.parse(JSON.stringify(data.value));
else data.value.splice(data.value.indexOf(fileId), 1); if (flat === 1) _l.push(fileId);
else _l.splice(_l.indexOf(fileId), 1);
data.value = _l;
} else data.value = [fileId]; } else data.value = [fileId];
// 去重排序,<降序,>升序 // 去重排序,<降序,>升序
data.value = Array.from(new Set(data.value)).sort(); data.value = Array.from(new Set(data.value)).sort();
@@ -378,7 +380,7 @@ const data = ref<any>(null);
const emit = defineEmits(['update:modelValue', 'onSave', 'onClose', 'onClosed']); const emit = defineEmits(['update:modelValue', 'onSave', 'onClose', 'onClosed']);
watch( watch(
() => props.modelValue, () => props.modelValue,
(val) => data.value = val, (val) => data.value = props.multiple ? JSON.parse(JSON.stringify(val)) : val,
{ immediate: true } { immediate: true }
); );
const { ui } = useUi(); const { ui } = useUi();

View File

@@ -1,7 +1,7 @@
<template> <template>
<fs-page> <fs-page>
<FileSelector v-model="selected" :showInput="false" ref="fileSelectorRef" :tabsShow="SHOW.ALL" :itemSize="120" <FileSelector v-model="selected" :showInput="false" ref="fileSelectorRef" :tabsShow="SHOW.ALL" :itemSize="120"
:multiple="true" :selectable="false"> :multiple="false" :selectable="true" valueKey="url" inputType="image">
<!-- <template #input="scope"> <!-- <template #input="scope">
input{{ scope }} input{{ scope }}
</template> --> </template> -->