From 62460bba90e765562e84b67c9aebc6e0e2d689bd Mon Sep 17 00:00:00 2001 From: xlsea Date: Thu, 8 May 2025 17:47:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advanced/table-header-operation.vue | 2 +- src/components/custom/file-upload.vue | 23 ++- src/service/api/system/user.ts | 26 +++ src/store/modules/auth/index.ts | 11 +- src/typings/api/system.api.d.ts | 8 +- src/typings/components.d.ts | 2 + src/utils/service.ts | 2 +- .../user-center/modules/social-card.vue | 12 +- src/views/system/user/index.vue | 21 ++- .../system/user/modules/user-import-modal.vue | 153 ++++++++++++++++++ .../user/modules/user-operate-drawer.vue | 9 +- 11 files changed, 243 insertions(+), 26 deletions(-) create mode 100644 src/views/system/user/modules/user-import-modal.vue diff --git a/src/components/advanced/table-header-operation.vue b/src/components/advanced/table-header-operation.vue index c1f5cad1..5c7a4643 100644 --- a/src/components/advanced/table-header-operation.vue +++ b/src/components/advanced/table-header-operation.vue @@ -75,7 +75,7 @@ function handleExport() { 导出 diff --git a/src/components/custom/file-upload.vue b/src/components/custom/file-upload.vue index d5693fd7..ba0dd975 100644 --- a/src/components/custom/file-upload.vue +++ b/src/components/custom/file-upload.vue @@ -11,6 +11,8 @@ defineOptions({ interface Props { action?: string; + data?: Record; + defaultUpload?: boolean; showTip?: boolean; max?: number; accept?: string; @@ -20,6 +22,8 @@ interface Props { const props = withDefaults(defineProps(), { action: `/resource/oss/upload`, + data: undefined, + defaultUpload: true, showTip: true, max: 5, accept: '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.pdf', @@ -29,6 +33,8 @@ const props = withDefaults(defineProps(), { const attrs: UploadProps = useAttrs(); +const value = defineModel('value', { required: false, default: [] }); + let fileNum = 0; const fileList = ref([]); const needRelaodData = defineModel('needRelaodData', { @@ -39,6 +45,7 @@ watch( () => fileList.value, newValue => { needRelaodData.value = newValue.length > 0; + value.value = newValue.map(item => item.id); } ); @@ -126,11 +133,13 @@ async function handleRemove(file: UploadFileInfo) { v-bind="attrs" v-model:file-list="fileList" :action="`${baseURL}${action}`" + :data="data" :headers="headers" :max="max" :accept="accept" - multiple + :multiple="max > 1" directory-dnd + :default-upload="defaultUpload" :list-type="uploadType === 'image' ? 'image-card' : 'text'" :is-error-state="isErrorState" @finish="handleFinish" @@ -145,12 +154,12 @@ async function handleRemove(file: UploadFileInfo) { 点击或者拖动文件到该区域来上传 请上传 -