From e880af6f1e237729825e88b60b61dfaac3db326e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E8=BE=89?= Date: Mon, 2 Dec 2024 19:53:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=80=89=E6=8B=A9=E5=99=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=B3=BB=E7=BB=9F=E5=86=85=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=AD=9B=E9=80=89=EF=BC=88=E5=8A=9F=E8=83=BD=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E5=96=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/file_list.py | 9 +++++ web/src/components/fileSelector/index.vue | 48 +++++++++++++++++------ web/src/views/system/fileList/index.vue | 4 +- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/backend/dvadmin/system/views/file_list.py b/backend/dvadmin/system/views/file_list.py index 9841dab..660964d 100644 --- a/backend/dvadmin/system/views/file_list.py +++ b/backend/dvadmin/system/views/file_list.py @@ -100,3 +100,12 @@ class FileViewSet(CustomModelViewSet): @action(methods=['GET'], detail=False) def get_all(self, request): return DetailResponse(data=self.get_serializer(self.get_queryset(), many=True).data) + + def get_queryset(self): + if self.request.query_params.get('system', 'False') == 'True' and dispatch.is_tenants_mode(): + from django_tenants.utils import tenant_context, get_tenant_model + with tenant_context(get_tenant_model().objects.filter(schema_name='public').first()): + print('系统内置文件') + return super().get_queryset() + print('常规文件') + return super().get_queryset() diff --git a/web/src/components/fileSelector/index.vue b/web/src/components/fileSelector/index.vue index fe13d5c..68553e8 100644 --- a/web/src/components/fileSelector/index.vue +++ b/web/src/components/fileSelector/index.vue @@ -64,22 +64,32 @@ -
- - - - - - +
+ + + + + + + + + + + + +
-
@@ -93,7 +103,7 @@ - 上传{{ TypeLabel[tabsActived] }} + 上传{{ TypeLabel[tabsActived % 4] }} @@ -126,14 +136,19 @@ import { getBaseURL } from '/@/utils/baseUrl'; import { request } from '/@/utils/service'; import { SHOW } from './types'; import FileItem from './fileItem.vue'; +import { pluginsAll } from '/@/views/plugins/index'; +import { storeToRefs } from "pinia"; +import { useUserInfo } from "/@/stores/userInfo"; +const isTenentMode = true || pluginsAll && pluginsAll.length && pluginsAll.indexOf('dvadmin3-tenents-web') >= 0; +const isSuperTenent = true || (storeToRefs(useUserInfo())).userInfos.schema_name === 'public'; const TypeLabel = ['图片', '视频', '音频', '文件'] const AcceptList = ['image/*', 'video/*', 'audio/*', '']; const props = defineProps({ modelValue: {}, class: { type: String, default: '' }, - style: { type: Object, default: {} }, - inputStyle: { type: Object, default: {} }, + style: { type: Object as PropType, default: {} }, + inputStyle: { type: Object as PropType, default: {} }, disabled: { type: Boolean, default: false }, tabsType: { type: Object as PropType<'' | 'card' | 'border-card'>, default: '' }, @@ -177,7 +192,14 @@ const pageForm = reactive({ page: 1, limit: 10, total: 0 }); const listData = ref([]); const listAllData = ref([]); const listRequest = async () => { - let res = await fileApi.GetList({ page: pageForm.page, limit: pageForm.limit, file_type: tabsActived.value, upload_method: 1, ...filterForm }); + let res = await fileApi.GetList({ + page: pageForm.page, + limit: pageForm.limit, + file_type: isTenentMode ? tabsActived.value % 4 : tabsActived.value, + system: tabsActived.value > 3, + upload_method: 1, + ...filterForm + }); listData.value = res.data; pageForm.total = res.total; pageForm.page = res.page; @@ -276,6 +298,8 @@ onMounted(() => { if (props.multiple && props.inputType !== 'selector') throw new Error('FileSelector组件属性multiple为true时inputType必须为selector'); listRequestAll(); + console.log('tenentmdoe', isTenentMode); + console.log('supertenent', isSuperTenent); }); diff --git a/web/src/views/system/fileList/index.vue b/web/src/views/system/fileList/index.vue index 8d3fd01..c507281 100644 --- a/web/src/views/system/fileList/index.vue +++ b/web/src/views/system/fileList/index.vue @@ -42,8 +42,8 @@ - +