From 3bbacf78d6d468b89b986e4657e04a5fdb75d6fc Mon Sep 17 00:00:00 2001 From: net Date: Fri, 12 Jan 2024 13:44:22 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=B5update:=20=E0=B8=A3=E0=B8=B0=E0=B8=9A?= =?UTF-8?q?=E0=B8=9A=E0=B8=AD=E0=B8=B1=E0=B8=9B=E0=B9=82=E0=B8=AB=E0=B8=A5?= =?UTF-8?q?=E0=B8=94=20=E0=B8=96=E0=B9=89=E0=B8=B2=E0=B8=8A=E0=B8=B7?= =?UTF-8?q?=E0=B9=88=E0=B8=AD=E0=B9=84=E0=B8=9F=E0=B8=A5=E0=B9=8C=E0=B8=8B?= =?UTF-8?q?=E0=B9=89=E0=B8=B3=E0=B8=97=E0=B8=B5=E0=B9=88=E0=B8=A1=E0=B8=B2?= =?UTF-8?q?=E0=B8=88=E0=B8=B2=E0=B8=81=E0=B8=A3=E0=B8=B0=E0=B8=9A=E0=B8=9A?= =?UTF-8?q?=E0=B8=AD=E0=B8=B7=E0=B9=88=E0=B8=99=E0=B8=88=E0=B8=B0=E0=B9=84?= =?UTF-8?q?=E0=B8=A1=E0=B9=88=E0=B8=AA=E0=B8=B2=E0=B8=A1=E0=B8=B2=E0=B8=A3?= =?UTF-8?q?=E0=B8=96=20=E0=B8=AD=E0=B8=B1=E0=B8=9B=E0=B9=82=E0=B8=AB?= =?UTF-8?q?=E0=B8=A5=E0=B8=94=E0=B9=84=E0=B8=94=E0=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Services/client/src/components/FileForm.vue | 22 ++++++++----- .../client/src/components/FileFormWrapper.vue | 32 ++++++++++++++++++- .../src/components/UploadExistDialog.vue | 24 +++++++++++--- 3 files changed, 64 insertions(+), 14 deletions(-) diff --git a/Services/client/src/components/FileForm.vue b/Services/client/src/components/FileForm.vue index fb40252..a444aef 100644 --- a/Services/client/src/components/FileForm.vue +++ b/Services/client/src/components/FileForm.vue @@ -10,6 +10,7 @@ const props = withDefaults( defineProps<{ open: boolean error: { + fileExistMetadata?: boolean fileExist?: boolean fileName2Long?: boolean } @@ -187,15 +188,20 @@ const file = ref() ? undefined : 'เลือกไฟล์' " - :error="!!error.fileExist || !!error.fileName2Long" - :error-message=" - error.fileExist - ? 'พบไฟล์ชื่อซ้ำในระบบ ไฟล์ชื่อนี้ภายในระบบจะถูกเขียนทับ' - : error.fileName2Long - ? 'ไม่สามารถเพิ่มไฟล์ที่ชื่อยาวเกิน 85 ตัวอักษรได้' - : '' + :error=" + !!error.fileExistMetadata || + !!error.fileExist || + !!error.fileName2Long + " + :error-message=" + error.fileExistMetadata + ? 'พบไฟล์ชื่อซ้ำในระบบอื่น' + : error.fileExist + ? 'พบไฟล์ชื่อซ้ำในระบบ ไฟล์ชื่อนี้ภายในระบบจะถูกเขียนทับ' + : error.fileName2Long + ? 'ไม่สามารถเพิ่มไฟล์ที่ชื่อยาวเกิน 85 ตัวอักษรได้' + : '' " - :disable="disableFields?.includes('file')" id="inputFile" :rules="[ (v) => v !== undefined || mode === 'edit' || 'โปรดอัปโหลดไฟล์', diff --git a/Services/client/src/components/FileFormWrapper.vue b/Services/client/src/components/FileFormWrapper.vue index f1bf027..0baf18e 100644 --- a/Services/client/src/components/FileFormWrapper.vue +++ b/Services/client/src/components/FileFormWrapper.vue @@ -21,8 +21,13 @@ const fileFormData = ref<{ metadata?: Record }>({}) const fileFormType = ref<'edit' | 'create'>('create') -const fileFormError = ref<{ fileExist?: boolean; fileName2Long?: boolean }>({}) +const fileFormError = ref<{ + fileExistMetadata?: boolean + fileExist?: boolean + fileName2Long?: boolean +}>({}) const fileExistNotification = ref(false) +const errorState = ref<'fileExist' | 'fileExistMetadata'>('fileExist') const fileFormComponent = ref>() const fileNameLabel = ref() @@ -65,6 +70,18 @@ defineExpose({ const currentParam = ref[0]>() +function checkFileExistMetadata(name: string) { + const fileInfo = file.value[currentInfo.value.path].find( + (v) => v.fileName === name, + ) + + if (fileInfo?.metadata && Object.keys(fileInfo?.metadata).length > 0) { + return Boolean(true) + } + + return Boolean(false) +} + function checkFileExist(name: string, except?: string) { return Boolean( file.value[currentInfo.value.path].find( @@ -91,6 +108,16 @@ async function submitFileForm( ) { currentParam.value = value + const fileInfo = file.value[currentInfo.value.path].find( + (v) => v.fileName === value.file?.name, + ) + + if (fileInfo?.metadata && Object.keys(fileInfo.metadata).length > 0) { + fileExistNotification.value = true + errorState.value = 'fileExistMetadata' + return + } + if ( value.file && file.value[currentInfo.value.path].find( @@ -99,6 +126,7 @@ async function submitFileForm( !force ) { fileExistNotification.value = true + errorState.value = 'fileExist' return } @@ -150,6 +178,7 @@ async function submitFileForm( @reset="() => (fileFormError = {})" @filechange=" (name: string) => { + fileFormError.fileExistMetadata = checkFileExistMetadata(name) ;(fileFormError.fileExist = checkFileExist(name, fileNameLabel)), (fileFormError.fileName2Long = checkFileName2Long( name, @@ -161,6 +190,7 @@ async function submitFileForm( /> diff --git a/Services/client/src/components/UploadExistDialog.vue b/Services/client/src/components/UploadExistDialog.vue index 1d99ec1..a42b0e8 100644 --- a/Services/client/src/components/UploadExistDialog.vue +++ b/Services/client/src/components/UploadExistDialog.vue @@ -1,6 +1,7 @@