refactor: img dialog => remove img function

This commit is contained in:
puriphatt 2024-09-12 16:41:09 +07:00
parent 42bb43f618
commit 7ab9f69ef8
6 changed files with 82 additions and 78 deletions

View file

@ -61,6 +61,7 @@ const inputFile = (() => {
})(); })();
const selectedImg = ref(''); const selectedImg = ref('');
const currentImag = ref('');
const tempImage = ref<string | null>(''); const tempImage = ref<string | null>('');
reader.addEventListener('load', () => { reader.addEventListener('load', () => {
@ -130,20 +131,17 @@ function selectImg(name: string) {
function closeCheckToDefault() { function closeCheckToDefault() {
let imgNameList: string[]; let imgNameList: string[];
let currentSelected: string;
let inList: boolean; let inList: boolean;
if (props.onCreate) { if (props.onCreate) {
imgNameList = onCreateData.value.list.map((v) => v.url || ''); imgNameList = onCreateData.value.list.map((v) => v.url || '');
currentSelected = imageUrl.value;
} else { } else {
imgNameList = dataList.value.list.map((v) => v.split('/').pop() || ''); imgNameList = dataList.value.list.map((v) => v.split('/').pop() || '');
currentSelected = dataList.value.selectedImage;
} }
inList = imgNameList.includes(currentSelected); inList = imgNameList.includes(currentImag.value);
if (!inList && currentSelected !== '') { if (!inList && currentImag.value !== '') {
selectImg(''); selectImg('');
emit('submit', selectedImg.value); emit('submit', selectedImg.value);
} }
@ -159,6 +157,7 @@ watch(
} else { } else {
tempImage.value = `${imageUrl.value}?ts=${Date.now()}`; tempImage.value = `${imageUrl.value}?ts=${Date.now()}`;
selectedImg.value = dataList.value.selectedImage; selectedImg.value = dataList.value.selectedImage;
currentImag.value = dataList.value.selectedImage;
} }
} else { } else {
tempImage.value = ''; tempImage.value = '';
@ -185,7 +184,7 @@ watch(
<div style="width: 38.61px" /> <div style="width: 38.61px" />
<div style="flex: 1"><slot name="title" /></div> <div style="flex: 1"><slot name="title" /></div>
<div> <div>
<CancelButton v-close-popup icon-only @click="closeCheckToDefault" /> <CancelButton icon-only v-close-popup @click="closeCheckToDefault" />
</div> </div>
</div> </div>
@ -378,7 +377,7 @@ watch(
<SaveButton <SaveButton
id="btn-save-img" id="btn-save-img"
outlined outlined
:disabled="dataList.selectedImage === selectedImg" :disabled="currentImag === selectedImg"
:label="$t('general.apply')" :label="$t('general.apply')"
@click="$emit('submit', selectedImg)" @click="$emit('submit', selectedImg)"
/> />

View file

@ -1817,66 +1817,66 @@ watch(currentHq, () => {
</template> </template>
<template v-if="currentTab === 'attachment'"> <template v-if="currentTab === 'attachment'">
<AddressForm <AddressForm
id="form-address" id="form-address"
dense dense
outlined outlined
separator separator
prefix-id="default" prefix-id="default"
:title="'form.address'" :title="'form.address'"
v-model:address="formData.address" v-model:address="formData.address"
v-model:addressEN="formData.addressEN" v-model:addressEN="formData.addressEN"
v-model:province-id="formData.provinceId" v-model:province-id="formData.provinceId"
v-model:district-id="formData.districtId" v-model:district-id="formData.districtId"
v-model:sub-district-id="formData.subDistrictId" v-model:sub-district-id="formData.subDistrictId"
v-model:zip-code="formData.zipCode" v-model:zip-code="formData.zipCode"
/> />
<FormLocation <FormLocation
id="form-location" id="form-location"
:readonly="formType === 'view'" :readonly="formType === 'view'"
:separator="true" :separator="true"
v-model:latitude="formData.latitude" v-model:latitude="formData.latitude"
v-model:longitude="formData.longitude" v-model:longitude="formData.longitude"
outlined outlined
dense dense
title="branch.form.group.location" title="branch.form.group.location"
/> />
<FormQr <FormQr
id="form-qr" id="form-qr"
title="QR Code" title="QR Code"
:separator="true" :separator="true"
:qr="qrCodeimageUrl" :qr="qrCodeimageUrl"
:readonly="formType === 'view'" :readonly="formType === 'view'"
@view-qr=" @view-qr="
() => { () => {
triggerEditQrCodeLine(); triggerEditQrCodeLine();
} }
" "
@edit-qr="() => refQrCodeUpload && refQrCodeUpload.browse()" @edit-qr="() => refQrCodeUpload && refQrCodeUpload.browse()"
/> />
<FormBank <FormBank
id="form-bank" id="form-bank"
title="branch.form.group.bankAccount" title="branch.form.group.bankAccount"
dense dense
v-model:bank-book-list="formBankBook" v-model:bank-book-list="formBankBook"
@view-qr=" @view-qr="
(i) => { (i) => {
currentIndexQrCodeBank = i; currentIndexQrCodeBank = i;
triggerEditQrCodeBank(); triggerEditQrCodeBank();
} }
" "
@edit-qr=" @edit-qr="
(i) => { (i) => {
currentIndexQrCodeBank = i; currentIndexQrCodeBank = i;
refQrCodeUpload && refQrCodeUpload.browse(); refQrCodeUpload && refQrCodeUpload.browse();
} }
" "
/> />
<FormBranchAdmin <FormBranchAdmin
id="form-branch-admin-view" id="form-branch-admin-view"
:admin="currentBranchAdmin" :admin="currentBranchAdmin"
/> />
<!-- <FormImage <!-- <FormImage
:readonly="formType === 'view'" :readonly="formType === 'view'"
v-model:image="imageUrl" v-model:image="imageUrl"
@upload=" @upload="
@ -2355,7 +2355,7 @@ watch(currentHq, () => {
if (!currentId) return; if (!currentId) return;
const name = v.split('/').pop() || ''; const name = v.split('/').pop() || '';
await branchStore.deleteImageByName(currentId, name); await branchStore.deleteImageByName(currentId, name);
await fetchImageList(currentId, name); await fetchImageList(currentId, formData.selectedImage || '');
} }
" "
@submit=" @submit="

View file

@ -1972,10 +1972,9 @@ watch(
async (v) => { async (v) => {
if (!v) return; if (!v) return;
if (!currentUser) return; if (!currentUser) return;
const name = v.split('/').pop() || ''; const name = v.split('/').pop() || '';
await userStore.deleteImageByName(currentUser?.id, name); await userStore.deleteImageByName(currentUser?.id, name);
await fetchImageList(currentUser?.id, name); await fetchImageList(currentUser?.id, currentUser.selectedImage || '');
} }
" "
@submit=" @submit="

View file

@ -2739,7 +2739,7 @@ const emptyCreateDialog = ref(false);
); );
await fetchImageList( await fetchImageList(
customerFormState.editCustomerId, customerFormState.editCustomerId,
name, customerFormData.selectedImage || '',
'customer', 'customer',
); );
} }
@ -2844,7 +2844,11 @@ const emptyCreateDialog = ref(false);
if (!currentFromDataEmployee.id) return; if (!currentFromDataEmployee.id) return;
const name = v.split('/').pop() || ''; const name = v.split('/').pop() || '';
await employeeStore.deleteImageByName(currentFromDataEmployee.id, name); await employeeStore.deleteImageByName(currentFromDataEmployee.id, name);
await fetchImageList(currentFromDataEmployee.id, name, 'employee'); await fetchImageList(
currentFromDataEmployee.id,
currentFromDataEmployee.selectedImage || '',
'employee',
);
} }
" "
@submit=" @submit="

View file

@ -4280,15 +4280,15 @@ watch(
@add-image=" @add-image="
async (v) => { async (v) => {
if (!v) return; if (!v) return;
if (!currentIdProduct) return; if (!currentIdProduct && !currentIdService) return;
const res = await productServiceStore.addImageList( const res = await productServiceStore.addImageList(
v, v,
currentIdProduct, dialogProductEdit ? currentIdProduct : currentIdService,
Date.now(), Date.now(),
dialogProductEdit ? 'product' : 'service', dialogProductEdit ? 'product' : 'service',
); );
await fetchImageList( await fetchImageList(
currentIdProduct, dialogProductEdit ? currentIdProduct : currentIdService,
res, res,
dialogProductEdit ? 'product' : 'service', dialogProductEdit ? 'product' : 'service',
); );
@ -4308,7 +4308,9 @@ watch(
); );
await fetchImageList( await fetchImageList(
dialogProductEdit ? currentIdProduct : currentIdService, dialogProductEdit ? currentIdProduct : currentIdService,
name, dialogProductEdit
? formDataProduct.selectedImage || ''
: formDataProductService.selectedImage || '',
type, type,
); );
} }

View file

@ -586,12 +586,12 @@ const useProductServiceStore = defineStore('api-product-service', () => {
async function addImageList( async function addImageList(
file: File, file: File,
userId: string, id: string,
name: string, name: string,
type: 'product' | 'service', type: 'product' | 'service',
) { ) {
await api await api
.put(`/${type}/${userId}/image/${name}`, file, { .put(`/${type}/${id}/image/${name}`, file, {
headers: { 'Content-Type': file.type }, headers: { 'Content-Type': file.type },
onUploadProgress: (e) => console.log(e), onUploadProgress: (e) => console.log(e),
}) })