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

@ -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),
}) })