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(
+
+ {
+ qrCodeDialog = false;
+ if (currentIndexQrCodeBank !== -1) {
+ triggerEditQrCodeBank({ save: true });
+ }
+ }
+ "
+ @clear="statusDeletesQrCode = true"
+ clearButton
+ >
+
+
+
+
+
+
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"
/>