From 9f6d972c910e22aafa3bb3300ae506f11fb64e0e Mon Sep 17 00:00:00 2001 From: puriphatt Date: Thu, 24 Apr 2025 15:16:09 +0700 Subject: [PATCH 001/237] feat: enhance AvatarGroup to display responsible groups alongside users --- src/components/shared/AvatarGroup.vue | 6 +- src/pages/08_request-list/RequestListView.vue | 12 ++- .../08_request-list/TableRequestList.vue | 80 ++++++++++++++----- 3 files changed, 74 insertions(+), 24 deletions(-) diff --git a/src/components/shared/AvatarGroup.vue b/src/components/shared/AvatarGroup.vue index a3f3d85e..ed8f63ef 100644 --- a/src/components/shared/AvatarGroup.vue +++ b/src/components/shared/AvatarGroup.vue @@ -25,7 +25,11 @@ withDefaults( alt="Image" /> -
+
{{ person.name }} diff --git a/src/pages/08_request-list/RequestListView.vue b/src/pages/08_request-list/RequestListView.vue index 4675b124..fc6e69c2 100644 --- a/src/pages/08_request-list/RequestListView.vue +++ b/src/pages/08_request-list/RequestListView.vue @@ -518,8 +518,8 @@ function toEmployee(employee: RequestData['employee']) { v-if="responsibleList[pageState.currentStep]?.user.length" > ({ name: $i18n.locale === 'eng' @@ -531,8 +531,12 @@ function toEmployee(employee: RequestData['employee']) { : `/no-img-female.png` : `${baseUrl}/user/${v.id}/profile-image/${v.selectedImage}`, }), - ) - " + ), + ...responsibleList[pageState.currentStep].group.map((g) => ({ + name: `${$t('general.group')} ${g}`, + imgUrl: '/img-group.png', + })), + ]" /> diff --git a/src/pages/08_request-list/TableRequestList.vue b/src/pages/08_request-list/TableRequestList.vue index 7b99bf78..fec64111 100644 --- a/src/pages/08_request-list/TableRequestList.vue +++ b/src/pages/08_request-list/TableRequestList.vue @@ -42,9 +42,14 @@ defineEmits<{ const selected = defineModel('selected'); -function responsiblePerson(quotation: QuotationFull): CreatedBy[] | undefined { +function responsiblePerson(quotation: QuotationFull) { const productServiceList = quotation.productServiceList; const tempPerson: CreatedBy[] = []; + const tempGroup: { + group: string; + id: string; + workflowTemplateStepId: string; + }[] = []; for (const v of productServiceList) { const tempStep = v.service?.workflow?.step; @@ -55,7 +60,18 @@ function responsiblePerson(quotation: QuotationFull): CreatedBy[] | undefined { tempPerson.push(rhs.user); } }); - return tempPerson; + tempStep.forEach((lhs) => { + const newGroup = lhs.responsibleGroup as unknown as { + group: string; + id: string; + workflowTemplateStepId: string; + }[]; + for (const rhs of newGroup) { + tempGroup.push(rhs); + } + }); + console.log({ user: tempPerson, group: tempGroup }); + return { user: tempPerson, group: tempGroup }; } } @@ -261,7 +277,7 @@ function handleCheckAll() { {{ props.row.quotation.code || '-' }} - + /> --> +
+ 0 || + (responsiblePerson(props.row.quotation).group ?? []).length > + 0 " + :data="[ + ...responsiblePerson(props.row.quotation).user.map((v) => ({ + name: + $i18n.locale === 'eng' + ? `${v.firstNameEN} ${v.lastNameEN}` + : `${v.firstName} ${v.lastName}`, + imgUrl: !v.selectedImage + ? v.gender === 'male' + ? `/no-img-man.png` + : `/no-img-female.png` + : `${baseUrl}/user/${v.id}/profile-image/${v.selectedImage}`, + })), + ...responsiblePerson(props.row.quotation).group.map((g) => ({ + name: `${$t('general.group')} ${g.group}`, + imgUrl: '/img-group.png', + })), + ]" /> -
From aac82ce4775f0d1efb4bca5e4ccf10b6aed1a67e Mon Sep 17 00:00:00 2001 From: puriphatt Date: Thu, 24 Apr 2025 15:17:46 +0700 Subject: [PATCH 002/237] refactor: remove unnecessary console log from responsiblePerson function --- src/pages/08_request-list/TableRequestList.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/08_request-list/TableRequestList.vue b/src/pages/08_request-list/TableRequestList.vue index fec64111..72278d4e 100644 --- a/src/pages/08_request-list/TableRequestList.vue +++ b/src/pages/08_request-list/TableRequestList.vue @@ -70,7 +70,6 @@ function responsiblePerson(quotation: QuotationFull) { tempGroup.push(rhs); } }); - console.log({ user: tempPerson, group: tempGroup }); return { user: tempPerson, group: tempGroup }; } } From 9a8363091d1036d48266fdfd0156ba3c9c1d4b72 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Thu, 24 Apr 2025 15:45:02 +0700 Subject: [PATCH 003/237] refactor: delete btn paste --- src/pages/04_product-service/MainPage.vue | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/pages/04_product-service/MainPage.vue b/src/pages/04_product-service/MainPage.vue index 98146be4..aebcc54e 100644 --- a/src/pages/04_product-service/MainPage.vue +++ b/src/pages/04_product-service/MainPage.vue @@ -33,7 +33,6 @@ import { SaveButton, UndoButton, ToggleButton, - PasteButton, ImportButton, } from 'components/button'; import TableProduct from 'src/components/04_product-service/TableProduct.vue'; @@ -4554,11 +4553,7 @@ watch( @click="serviceTreeView = false" />
- +
From 5c12bcbab78d666b013d47ddccab24b8af396876 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Thu, 24 Apr 2025 15:52:15 +0700 Subject: [PATCH 004/237] refactor: trim the last 3 characters from the code --- src/pages/04_product-service/MainPage.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/04_product-service/MainPage.vue b/src/pages/04_product-service/MainPage.vue index aebcc54e..d70b6b6a 100644 --- a/src/pages/04_product-service/MainPage.vue +++ b/src/pages/04_product-service/MainPage.vue @@ -1848,7 +1848,7 @@ async function copy(id: string) { const res = await fetchListServiceById(id); if (res) { formService.value = { - code: res.code, + code: res.code.slice(0, -3), name: res.name, detail: res.detail, attributes: res.attributes, From dfc17e962369b60dde14f1e94dcf78b39c9bab52 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Thu, 24 Apr 2025 17:58:48 +0700 Subject: [PATCH 005/237] feat: update importNationality to support multiple selections and adjust related logic --- .../02_personnel-management/FormByType.vue | 11 ++++++----- src/components/shared/SelectInput.vue | 2 +- src/pages/02_personnel-management/MainPage.vue | 14 +++++++++----- src/stores/user/types.ts | 4 ++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/components/02_personnel-management/FormByType.vue b/src/components/02_personnel-management/FormByType.vue index 7f850999..ec3619a1 100644 --- a/src/components/02_personnel-management/FormByType.vue +++ b/src/components/02_personnel-management/FormByType.vue @@ -29,7 +29,7 @@ const discountCondition = defineModel( const sourceNationality = defineModel( 'sourceNationality', ); -const importNationality = defineModel( +const importNationality = defineModel( 'importNationality', ); const trainingPlace = defineModel('trainingPlace'); @@ -179,18 +179,19 @@ function deleteFile(name: string) { (v) => (typeof v === 'string' ? (sourceNationality = v) : '') " /> + diff --git a/src/pages/02_personnel-management/MainPage.vue b/src/pages/02_personnel-management/MainPage.vue index b3ea5058..b0aa4f02 100644 --- a/src/pages/02_personnel-management/MainPage.vue +++ b/src/pages/02_personnel-management/MainPage.vue @@ -99,7 +99,7 @@ const userFileList = ref<{ name: string; url: string }[]>([]); const typeStats = ref(); const userStats = ref(); -const searchDate = ref([]); +const searchDate = ref<[]>([]); const urlProfile = ref(); const profileFileImg = ref(null); @@ -126,7 +126,7 @@ const defaultFormData = { streetEN: '', street: '', trainingPlace: null, - importNationality: null, + importNationality: [], sourceNationality: null, licenseExpireDate: null, licenseIssueDate: null, @@ -178,7 +178,7 @@ const formData = ref({ streetEN: '', street: '', trainingPlace: null, - importNationality: null, + importNationality: [], sourceNationality: null, licenseExpireDate: null, licenseIssueDate: null, @@ -555,6 +555,7 @@ async function triggerChangeStatus(id: string, status: string) { async function assignFormData(idEdit: string) { if (!userData.value) return; const foundUser = userData.value.result.find((user) => user.id === idEdit); + console.log(foundUser); if (foundUser) { currentUser.value = foundUser; @@ -576,7 +577,10 @@ async function assignFormData(idEdit: string) { street: foundUser.street, streetEN: foundUser.streetEN, trainingPlace: foundUser.trainingPlace, - importNationality: foundUser.importNationality, + importNationality: + typeof foundUser.importNationality === 'string' + ? [foundUser.importNationality] + : foundUser.importNationality, sourceNationality: foundUser.sourceNationality, licenseNo: foundUser.licenseNo, discountCondition: foundUser.discountCondition, @@ -750,7 +754,7 @@ watch( formData.value.responsibleArea = null; formData.value.discountCondition = null; formData.value.sourceNationality = null; - formData.value.importNationality = null; + formData.value.importNationality = []; formData.value.trainingPlace = null; formData.value.checkpoint = null; formData.value.checkpointEN = null; diff --git a/src/stores/user/types.ts b/src/stores/user/types.ts index 28dcfc8b..2f6daeb5 100644 --- a/src/stores/user/types.ts +++ b/src/stores/user/types.ts @@ -13,7 +13,7 @@ export type User = { createdBy: string; status: Status; trainingPlace: string | null; - importNationality: string | null; + importNationality: [] | null; sourceNationality: string | null; licenseExpireDate: Date | null; licenseIssueDate: Date | null; @@ -82,7 +82,7 @@ export type UserCreate = { streetEN: string; street: string; trainingPlace?: string | null; - importNationality?: string | null; + importNationality?: string[] | null; sourceNationality?: string | null; licenseExpireDate?: Date | null; licenseIssueDate?: Date | null; From ef815225611558fe6522a00109ee083011bca161 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Thu, 24 Apr 2025 17:59:11 +0700 Subject: [PATCH 006/237] feat: add QR code upload functionality and enhance bank management logic --- .../01_branch-management/FormBank.vue | 2 +- .../07_agencies-management/AgenciesDialog.vue | 95 ++++++++++++++++++- src/pages/07_agencies-management/MainPage.vue | 31 +++--- src/stores/institution/index.ts | 51 +++++++++- 4 files changed, 157 insertions(+), 22 deletions(-) diff --git a/src/components/01_branch-management/FormBank.vue b/src/components/01_branch-management/FormBank.vue index 66f4241b..8c2b53bd 100644 --- a/src/components/01_branch-management/FormBank.vue +++ b/src/components/01_branch-management/FormBank.vue @@ -177,7 +177,7 @@ watch(
('imageListOnCreate', { default: { selectedImage: '', list: [] } }); +const deletesStatusQrCodeBankImag = defineModel( + 'deletesStatusQrCodeBankImag', + { default: [] }, +); const imageState = reactive({ imageDialog: false, @@ -45,6 +50,14 @@ const imageState = reactive({ const imageFile = ref(null); const imageList = ref<{ selectedImage: string; list: string[] }>(); +const qrCodeDialog = ref(false); +const qrCodeImageUrl = ref(''); +const currentIndexQrCodeBank = ref(-1); +const statusQrCodeFile = ref(undefined); +const refQrCodeUpload = ref(); +const statusQrCodeUrl = ref(''); +const statusDeletesQrCode = ref(false); + const props = withDefaults( defineProps<{ readonly?: boolean; @@ -163,6 +176,35 @@ function clearImageState() { imageState.refreshImageState = false; } +function triggerEditQrCodeBank(opts?: { save?: boolean }) { + if (opts?.save === undefined) { + qrCodeDialog.value = true; + statusDeletesQrCode.value = false; + statusQrCodeUrl.value = + formBankBook.value[currentIndexQrCodeBank.value].bankUrl || ''; + statusDeletesQrCode.value = false; + } else { + formBankBook.value[currentIndexQrCodeBank.value].bankUrl = + statusQrCodeUrl.value; + + formBankBook.value[currentIndexQrCodeBank.value].bankQr = + statusQrCodeFile.value; + + if (statusDeletesQrCode.value === true) { + deletesStatusQrCodeBankImag.value.push(currentIndexQrCodeBank.value); + } + if (statusDeletesQrCode.value === false) { + deletesStatusQrCodeBankImag.value = + deletesStatusQrCodeBankImag.value.filter( + (item) => item !== currentIndexQrCodeBank.value, + ); + } + + currentIndexQrCodeBank.value = -1; + statusDeletesQrCode.value = false; + } +} + watch( () => imageFile.value, () => { @@ -177,7 +219,6 @@ watch( imageList.value ? (imageList.value.selectedImage = data.value.selectedImage || '') : ''; - console.log(imageState.imageUrl); imageState.refreshImageState = false; }, ); @@ -327,8 +368,19 @@ watch( title="agencies.bankInfo" class="q-pt-xl" dense - single v-model:bank-book-list="formBankBook" + @view-qr=" + (i) => { + currentIndexQrCodeBank = i; + triggerEditQrCodeBank(); + } + " + @edit-qr=" + (i) => { + currentIndexQrCodeBank = i; + refQrCodeUpload && refQrCodeUpload.browse(); + } + " />
@@ -518,9 +570,20 @@ watch( title="agencies.bankInfo" class="q-pt-xl" dense - single :readonly v-model:bank-book-list="formBankBook" + @view-qr=" + (i) => { + currentIndexQrCodeBank = i; + triggerEditQrCodeBank(); + } + " + @edit-qr=" + (i) => { + currentIndexQrCodeBank = i; + refQrCodeUpload && refQrCodeUpload.browse(); + } + " /> @@ -561,5 +624,31 @@ watch( + + + + diff --git a/src/pages/07_agencies-management/MainPage.vue b/src/pages/07_agencies-management/MainPage.vue index 9f40a0c4..13d6158e 100644 --- a/src/pages/07_agencies-management/MainPage.vue +++ b/src/pages/07_agencies-management/MainPage.vue @@ -81,7 +81,7 @@ const pageState = reactive({ isDrawerEdit: true, searchDate: [], }); - +const deletesStatusQrCodeBankImag = ref([]); const blankFormData: InstitutionPayload = { group: '', code: '', @@ -177,16 +177,15 @@ function assignFormData(data: Institution) { contactEmail: data.contactEmail, contactName: data.contactName, contactTel: data.contactTel, - bank: [ - { - bankName: data.bank[0]?.bankName, - accountNumber: data.bank[0]?.accountNumber, - bankBranch: data.bank[0]?.bankBranch, - accountName: data.bank[0]?.accountName, - accountType: data.bank[0]?.accountType, - currentlyUse: data.bank[0]?.currentlyUse, - }, - ], + bank: data.bank.map((v) => ({ + bankName: v.bankName, + accountNumber: v.accountNumber, + bankBranch: v.bankBranch, + accountName: v.accountName, + accountType: v.accountType, + currentlyUse: v.currentlyUse, + bankUrl: `${baseUrl}/institution/${data.id}/bank-qr/${v.id}?ts=${Date.now()}`, + })), }; } @@ -212,14 +211,10 @@ async function submit(opt?: { selectedImage: string }) { provinceId: formData.value.provinceId, status: formData.value.status, bank: formData.value.bank.map((v) => ({ - bankName: v.bankName, - accountNumber: v.accountNumber, - bankBranch: v.bankBranch, - accountName: v.accountName, - accountType: v.accountType, - currentlyUse: v.currentlyUse, + ...v, })), }; + console.log('payload', payload); if ( (pageState.isDrawerEdit && currAgenciesData.value?.id) || (opt?.selectedImage && currAgenciesData.value?.id) @@ -230,6 +225,7 @@ async function submit(opt?: { selectedImage: string }) { id: currAgenciesData.value.id, selectedImage: opt?.selectedImage || undefined, }), + { indexDeleteQrCodeBank: deletesStatusQrCodeBankImag.value }, ); if (ret) { @@ -982,6 +978,7 @@ watch( v-model:data="formData" v-model:form-bank-book="formData.bank" v-model:image-list-on-create="imageListOnCreate" + v-model:deletes-status-qr-code-bank-imag="deletesStatusQrCodeBankImag" /> From 84d3e0d7777af1c50f817ca7fc9646615b83dc69 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 25 Apr 2025 17:00:16 +0700 Subject: [PATCH 010/237] fix: dark mode manual table --- src/pages/00_manual/ViewPage.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/00_manual/ViewPage.vue b/src/pages/00_manual/ViewPage.vue index bac74c09..05e08147 100644 --- a/src/pages/00_manual/ViewPage.vue +++ b/src/pages/00_manual/ViewPage.vue @@ -339,12 +339,12 @@ async function scrollTo(id: string) { } .markdown :deep(:where(table th)) { - background: #f3f3f7; - border: 1px solid #e1e1e8; + background: var(--surface-2); + border: 1px solid var(--border-color); } .markdown :deep(:where(table td, table th)) { - border: 1px solid #e1e1e8; + border: 1px solid var(--border-color); padding: 0.25rem 1rem; } From d67b9b2f02a055736d5f484f9898e5d8dfcbec92 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Mon, 28 Apr 2025 10:32:50 +0700 Subject: [PATCH 011/237] refactor: edit i18n --- src/i18n/tha.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/tha.ts b/src/i18n/tha.ts index 31adb4c6..f01b2dca 100644 --- a/src/i18n/tha.ts +++ b/src/i18n/tha.ts @@ -587,7 +587,7 @@ export default { family: 'ข้อมูลครอบครัว', }, workerStatus: 'สถานะคนงาน', - previousPassportNumber: 'หมายเลขอันเก่าหนังสือเดินทาง', + previousPassportNumber: 'หมายเลขหนังสือเดินทางเล่มเก่า', employerBranch: 'สาขานายจ้าง', employeeCode: 'รหัสลูกจ้าง', nrcNo: 'เลขบัตรประจำตัวคนซึ่งไม่มีสัญชาติไทย (N.R.C No.)', From 93700a2b542ea1a07c5f9ee0608df19c5efb5209 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Mon, 28 Apr 2025 13:49:49 +0700 Subject: [PATCH 012/237] refactor: edit i18n --- src/i18n/tha.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/tha.ts b/src/i18n/tha.ts index f01b2dca..6bf8c591 100644 --- a/src/i18n/tha.ts +++ b/src/i18n/tha.ts @@ -616,7 +616,7 @@ export default { visa90Day: 'รายงานตัว 90 วัน ครั้งต่อไป', arrivalCardNo: 'บัตรขาเข้า หมายเลข TM', visaCheckpoint: 'เดินทางเข้ามาทางด่าน', - workerType: 'ประเภทคนงาน', + workerType: 'สถานะคนงาน', placeOfBirth: 'สถานที่เกิด', countryOfbirth: 'ประเทศที่เกิด', issueCountry: 'ประเทศที่ออก', From 02c7598aec12278813a023caa788d665baf40236 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Mon, 28 Apr 2025 13:57:04 +0700 Subject: [PATCH 013/237] refactor: edit label --- src/components/03_customer-management/FormEmployeePassport.vue | 2 +- src/i18n/tha.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/03_customer-management/FormEmployeePassport.vue b/src/components/03_customer-management/FormEmployeePassport.vue index 5fe21b52..c87f13dd 100644 --- a/src/components/03_customer-management/FormEmployeePassport.vue +++ b/src/components/03_customer-management/FormEmployeePassport.vue @@ -258,7 +258,7 @@ watch( :options="workerStatusOptions" :hide-dropdown-icon="readonly" :for="`${prefixId}-select-visa-type`" - :label="$t('customerEmployee.form.workerType')" + :label="$t('customerEmployee.form.workerStatus')" @filter="workerStatusFilter" :model-value="readonly ? workerStatus || '-' : workerStatus" @update:model-value=" diff --git a/src/i18n/tha.ts b/src/i18n/tha.ts index 6bf8c591..f01b2dca 100644 --- a/src/i18n/tha.ts +++ b/src/i18n/tha.ts @@ -616,7 +616,7 @@ export default { visa90Day: 'รายงานตัว 90 วัน ครั้งต่อไป', arrivalCardNo: 'บัตรขาเข้า หมายเลข TM', visaCheckpoint: 'เดินทางเข้ามาทางด่าน', - workerType: 'สถานะคนงาน', + workerType: 'ประเภทคนงาน', placeOfBirth: 'สถานที่เกิด', countryOfbirth: 'ประเทศที่เกิด', issueCountry: 'ประเทศที่ออก', From 46de2412dfd401401a6e18d1189530d2c683a8c3 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Tue, 29 Apr 2025 11:22:10 +0700 Subject: [PATCH 014/237] refactor: handle role --- src/pages/04_product-service/MainPage.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/04_product-service/MainPage.vue b/src/pages/04_product-service/MainPage.vue index d70b6b6a..88d6746c 100644 --- a/src/pages/04_product-service/MainPage.vue +++ b/src/pages/04_product-service/MainPage.vue @@ -2506,6 +2506,7 @@ watch( /> Date: Tue, 29 Apr 2025 13:07:55 +0700 Subject: [PATCH 015/237] feat: auto go into first entry if only one --- src/pages/00_manual/MainPage.vue | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/pages/00_manual/MainPage.vue b/src/pages/00_manual/MainPage.vue index a0b85ef8..33a19ebe 100644 --- a/src/pages/00_manual/MainPage.vue +++ b/src/pages/00_manual/MainPage.vue @@ -10,10 +10,11 @@ import { onMounted, watch } from 'vue'; import { useManualStore } from 'src/stores/manual'; import { useNavigator } from 'src/stores/navigator'; import { Icon } from '@iconify/vue/dist/iconify.js'; -import { useRoute } from 'vue-router'; +import { useRoute, useRouter } from 'vue-router'; // NOTE: Variable const route = useRoute(); +const router = useRouter(); const manualStore = useManualStore(); const navigatorStore = useNavigator(); const { dataManual, dataTroubleshooting } = storeToRefs(manualStore); @@ -33,6 +34,16 @@ watch( if (route.name === 'Troubleshooting') { const res = await manualStore.getTroubleshooting(); dataTroubleshooting.value = res ? res : []; + if ( + res.length && + res.length === 1 && + res[0].page && + res[0].page.length === 1 + ) { + router.replace( + `/troubleshooting/${res[0].category}/${res[0].page[0].name}`, + ); + } } }, { immediate: true }, From c4c4b76973aa1dd6fb32486c7531732e09f7f522 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Wed, 30 Apr 2025 10:23:40 +0700 Subject: [PATCH 016/237] refactor: adjust button sizes and padding for improved layout consistency --- src/pages/00_notification/MainPage.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pages/00_notification/MainPage.vue b/src/pages/00_notification/MainPage.vue index a3506813..a2a37e65 100644 --- a/src/pages/00_notification/MainPage.vue +++ b/src/pages/00_notification/MainPage.vue @@ -94,21 +94,21 @@ onMounted(async () => {