From d142991eb0e8f5b808540c082bd8102421a12dd0 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Wed, 18 Sep 2024 14:29:32 +0700 Subject: [PATCH] refactor: full address on table --- src/components/shared/SelectInput.vue | 52 +++++++++++++++++ src/pages/01_branch-management/MainPage.vue | 58 ++++++++++++++----- src/pages/03_customer-management/MainPage.vue | 10 ++-- src/stores/branch/types.ts | 12 ++++ 4 files changed, 112 insertions(+), 20 deletions(-) create mode 100644 src/components/shared/SelectInput.vue diff --git a/src/components/shared/SelectInput.vue b/src/components/shared/SelectInput.vue new file mode 100644 index 00000000..480af59a --- /dev/null +++ b/src/components/shared/SelectInput.vue @@ -0,0 +1,52 @@ + + diff --git a/src/pages/01_branch-management/MainPage.vue b/src/pages/01_branch-management/MainPage.vue index c8fbc23b..80ec32ad 100644 --- a/src/pages/01_branch-management/MainPage.vue +++ b/src/pages/01_branch-management/MainPage.vue @@ -348,6 +348,12 @@ const defaultFormData = { subDistrictId: '', districtId: '', provinceId: '', + moo: '', + mooEN: '', + soi: '', + soiEN: '', + street: '', + streetEN: '', lineId: '', webUrl: '', virtual: false, @@ -450,6 +456,12 @@ async function fetchBranchById(id: string) { webUrl: res.webUrl, virtual: res.virtual, selectedImage: res.selectedImage, + moo: res.moo, + mooEN: res.mooEN, + soi: res.soi, + soiEN: res.soiEN, + street: res.street, + streetEN: res.streetEN, permitExpireDate: new Date(res.permitExpireDate), permitIssueDate: new Date(res.permitIssueDate), @@ -571,7 +583,6 @@ async function triggerEdit( currentId.value = id; - if (!currentRecord) return; currentEdit.value = { @@ -1296,7 +1307,7 @@ watch(currentHq, () => { () => { if ( props.row.isHeadOffice && - props.row._count.branch !== 0 + props.row._count?.branch !== 0 ) { fieldSelectedBranch.value = ''; inputSearch = ''; @@ -1408,19 +1419,25 @@ watch(currentHq, () => { {{ props.row.contact !== undefined - ? props.row.contact[0]?.telephoneNo + ? props.row.contact[0]?.telephoneNo || '-' : '-' }} - {{ props.row.contactName }} + {{ props.row.contactName || '-' }} - {{ props.row.address }} + {{ + locale === 'eng' + ? `${props.row.addressEN} ${props.row.mooEN && `Moo ${props.row.mooEN}`} ${props.row.soiEN && `Soi ${props.row.soiEN}`} ${props.row.streetEN && `${props.row.streetEN} Street`} ${props.row.subDistrict.nameEN} ${props.row.district.nameEN} ${props.row.province.nameEN} ${props.row.subDistrict.zipCode}` || + '-' + : `${props.row.address} ${props.row.moo && `หมู่ ${props.row.moo}`} ${props.row.soi && `ซอย ${props.row.soi}`} ${props.row.street && `ถนน ${props.row.street}`} ต.${props.row.subDistrict.name} อ.${props.row.district.name} จ.${props.row.province.name} ${props.row.subDistrict.zipCode}` || + '-' + }} { :virtual-branch="props.row.virtual" :id="`branch-card-${props.row.name}`" :class="{ - 'cursor-pointer': props.row._count.branch !== 0, + 'cursor-pointer': props.row._count?.branch !== 0, }" @click=" () => { if ( props.row.isHeadOffice && - props.row._count.branch !== 0 + props.row._count?.branch !== 0 ) { fieldSelectedBranch.value = ''; inputSearch = ''; @@ -1524,14 +1541,16 @@ watch(currentHq, () => { ? props.row.nameEN : props.row.name, taxNo: props.row.taxNo, - branchLabelTel: props.row.contact - .map((c: BranchContact) => c.telephoneNo) - .join(','), - contactName: props.row.contactName, + branchLabelTel: + props.row.contact && + props.row.contact + .map((c: BranchContact) => c.telephoneNo || '-') + .join(','), + contactName: props.row.contactName || '-', branchLabelAddress: $i18n.locale === 'eng' - ? `${props.row.addressEN || ''} ${props.row.subDistrict?.nameEN || ''} ${props.row.district?.nameEN || ''} ${props.row.province?.nameEN || ''}` - : `${props.row.address || ''} ${props.row.subDistrict?.name || ''} ${props.row.district?.name || ''} ${props.row.province?.name || ''}`, + ? `${props.row.addressEN} ${props.row.mooEN && `Moo ${props.row.mooEN}`} ${props.row.soiEN && `Soi ${props.row.soiEN}`} ${props.row.streetEN && `${props.row.streetEN} Street`} ${props.row.subDistrict.nameEN} ${props.row.district.nameEN} ${props.row.province.nameEN} ${props.row.subDistrict.zipCode}` + : `${props.row.address} ${props.row.moo && `หมู่ ${props.row.moo}`} ${props.row.soi && `ซอย ${props.row.soi}`} ${props.row.street && `ถนน ${props.row.street}`} ต.${props.row.subDistrict.name} อ.${props.row.district.name} จ.${props.row.province.name} ${props.row.subDistrict.zipCode}`, branchImgUrl: `/branch/${props.row.id}/branch`, }" :field-selected="fieldSelected" @@ -1876,7 +1895,12 @@ watch(currentHq, () => { v-model:province-id="formData.provinceId" v-model:district-id="formData.districtId" v-model:sub-district-id="formData.subDistrictId" - v-model:zip-code="formData.zipCode" + v-model:moo="formData.moo" + v-model:mooEN="formData.mooEN" + v-model:soi="formData.soi" + v-model:soiEN="formData.soiEN" + v-model:street="formData.street" + v-model:streetEN="formData.streetEN" :readonly="formType === 'view'" /> { v-model:province-id="formData.provinceId" v-model:district-id="formData.districtId" v-model:sub-district-id="formData.subDistrictId" + v-model:moo="formData.moo" + v-model:mooEN="formData.mooEN" + v-model:soi="formData.soi" + v-model:soiEN="formData.soiEN" + v-model:street="formData.street" + v-model:streetEN="formData.streetEN" v-model:zip-code="formData.zipCode" class="q-mb-xl" /> diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index ad02b9d8..5950094b 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -1269,11 +1269,9 @@ const emptyCreateDialog = ref(false); {{ - props.row.branch.length !== 0 - ? props.row.branch[0].address !== null - ? `${props.row.branch[0].address} ${props.row.branch[0].moo} ${props.row.branch[0].soi} ${props.row.branch[0].street} จ.${props.row.branch[0].province.name} อ.${props.row.branch[0].district.name} ต.${props.row.branch[0].subDistrict.name} ${props.row.branch[0].subDistrict.zipCode}` - : '-' - : '-' + locale === 'eng' + ? `${props.row.branch[0].addressEN} ${props.row.branch[0].mooEN} ${props.row.branch[0].soiEN} ${props.row.branch[0].streetEN} ${props.row.branch[0].subDistrict.nameEN} ${props.row.branch[0].district.nameEN} ${props.row.branch[0].province.nameEN} ${props.row.branch[0].subDistrict.zipCode}` + : `${props.row.branch[0].address} ${props.row.branch[0].moo} ${props.row.branch[0].soi} ${props.row.branch[0].street} ต.${props.row.branch[0].subDistrict.name} อ.${props.row.branch[0].district.name} จ.${props.row.branch[0].province.name} ${props.row.branch[0].subDistrict.zipCode}` }} @@ -1532,7 +1530,7 @@ const emptyCreateDialog = ref(false); props.row.branch[0].jobPosition, ) : key === 'officeTel' - ? props.row.branch[0].officeTel + ? props.row.branch[0].officeTel || '-' : '' }} diff --git a/src/stores/branch/types.ts b/src/stores/branch/types.ts index c5ab94e8..f11c72cd 100644 --- a/src/stores/branch/types.ts +++ b/src/stores/branch/types.ts @@ -41,6 +41,12 @@ export type Branch = { provinceId: string | null; addressEN: string; address: string; + moo?: string; + mooEN?: string; + soi?: string; + soiEN?: string; + street?: string; + streetEN?: string; nameEN: string; name: string; taxNo: string; @@ -70,6 +76,12 @@ export type BranchCreate = { name: string; addressEN: string; address: string; + moo?: string; + mooEN?: string; + soi?: string; + soiEN?: string; + street?: string; + streetEN?: string; zipCode: string; email: string; longitude: string;