refactor: edit ui show qrcode
This commit is contained in:
parent
f92d88ca27
commit
6279925564
2 changed files with 29 additions and 86 deletions
|
|
@ -8,10 +8,11 @@ import { QSelect } from 'quasar';
|
||||||
import { AddButton, DeleteButton } from 'components/button';
|
import { AddButton, DeleteButton } from 'components/button';
|
||||||
import ToggleButton from '../button/ToggleButton.vue';
|
import ToggleButton from '../button/ToggleButton.vue';
|
||||||
|
|
||||||
|
import ImageHover from '../ImageHover.vue';
|
||||||
|
|
||||||
const optionStore = useOptionStore();
|
const optionStore = useOptionStore();
|
||||||
|
|
||||||
const bankBookList = defineModel<BankBook[]>('bankBookList', { default: [] });
|
const bankBookList = defineModel<BankBook[]>('bankBookList', { default: [] });
|
||||||
const baseUrl = ref<string>(import.meta.env.VITE_API_BASE_URL);
|
|
||||||
|
|
||||||
const bankQrUrl = ref<string[]>([]);
|
const bankQrUrl = ref<string[]>([]);
|
||||||
const listIndex = ref(0);
|
const listIndex = ref(0);
|
||||||
|
|
@ -37,6 +38,11 @@ defineProps<{
|
||||||
view?: boolean;
|
view?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
defineEmits<{
|
||||||
|
(e: 'viewQr', index: number): void;
|
||||||
|
(e: 'editQr', index: number): void;
|
||||||
|
}>();
|
||||||
|
|
||||||
const bankBookOptions = ref<Record<string, unknown>[]>([]);
|
const bankBookOptions = ref<Record<string, unknown>[]>([]);
|
||||||
let bankBoookFilter: (
|
let bankBoookFilter: (
|
||||||
value: string,
|
value: string,
|
||||||
|
|
@ -168,51 +174,19 @@ watch(
|
||||||
<div
|
<div
|
||||||
class="bordered q-mr-sm rounded"
|
class="bordered q-mr-sm rounded"
|
||||||
:class="{ 'cursor-pointer': !readonly }"
|
:class="{ 'cursor-pointer': !readonly }"
|
||||||
style="width: 12vw; height: 12vw; overflow: hidden"
|
|
||||||
@click="
|
|
||||||
() => {
|
|
||||||
readonly ? '' : inputFile?.click(), (listIndex = i);
|
|
||||||
}
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<q-img
|
<ImageHover
|
||||||
v-if="bankQrUrl[i]"
|
:img="book.bankUrl"
|
||||||
fit="contain"
|
@view="() => $emit('viewQr', i)"
|
||||||
:ratio="1"
|
@edit="
|
||||||
:src="bankQrUrl[i]"
|
() => () => {
|
||||||
|
readonly ? '' : inputFile?.click(), (listIndex = i);
|
||||||
|
}
|
||||||
|
"
|
||||||
|
icon="mdi-qrcode"
|
||||||
|
color="gray"
|
||||||
|
bg-color="white"
|
||||||
/>
|
/>
|
||||||
<q-img
|
|
||||||
v-else
|
|
||||||
fit="contain"
|
|
||||||
:ratio="1"
|
|
||||||
:src="baseUrl + `/branch/${book.branchId}/bank-qr/${book.id}`"
|
|
||||||
>
|
|
||||||
<template #error>
|
|
||||||
<span
|
|
||||||
class="full-width full-height column items-center justify-center app-text-muted"
|
|
||||||
>
|
|
||||||
<q-icon name="mdi-qrcode" size="4vw" />
|
|
||||||
<span class="q-mt-sm">{{ $t('general.upload') }} QR code</span>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</q-img>
|
|
||||||
|
|
||||||
<!-- <q-img v-if="bankQrUrl[i]" fit="cover" :src="bankQrUrl[i]">
|
|
||||||
<template #error>
|
|
||||||
<div class="full-width full-height">
|
|
||||||
<q-icon name="mdi-qrcode" size="4vw" />
|
|
||||||
<span class="q-mt-sm">{{ $t('general.upload') }} QR code</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</q-img>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-else
|
|
||||||
class="full-width full-height column items-center justify-center app-text-muted bank-qr"
|
|
||||||
>
|
|
||||||
<q-icon name="mdi-qrcode" size="4vw" />
|
|
||||||
<span class="q-mt-sm">{{ $t('general.upload') }} QR code</span>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="row q-col-gutter-sm">
|
<div class="row q-col-gutter-sm">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Icon } from '@iconify/vue';
|
import ImageHover from '../ImageHover.vue';
|
||||||
|
|
||||||
const qr = defineModel<string | null>('qr');
|
const qr = defineModel<string | null>('qr');
|
||||||
|
|
||||||
|
|
@ -13,6 +13,8 @@ defineProps<{
|
||||||
|
|
||||||
defineEmits<{
|
defineEmits<{
|
||||||
(e: 'upload'): void;
|
(e: 'upload'): void;
|
||||||
|
(e: 'viewQr'): void;
|
||||||
|
(e: 'editQr'): void;
|
||||||
}>();
|
}>();
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -35,47 +37,14 @@ defineEmits<{
|
||||||
}"
|
}"
|
||||||
class="col-12 row branch-form-show-qr-code"
|
class="col-12 row branch-form-show-qr-code"
|
||||||
>
|
>
|
||||||
<div class="col-12 column flex-center q-py-md">
|
<div class="col-12 column flex-center text-center q-py-md">
|
||||||
<q-img
|
<ImageHover
|
||||||
v-if="qr"
|
:img="qr"
|
||||||
:src="qr as string"
|
@view="() => $emit('viewQr')"
|
||||||
style="width: 150px; height: 150px"
|
@edit="() => $emit('editQr')"
|
||||||
>
|
icon="mdi-qrcode"
|
||||||
<template #error>
|
color="gray"
|
||||||
<div
|
bg-color="white"
|
||||||
style="background: none"
|
|
||||||
class="full-width full-height items-center justify-center flex"
|
|
||||||
>
|
|
||||||
<q-img src="/no-data.png" width="5rem" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</q-img>
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
v-else
|
|
||||||
@click="$emit('upload')"
|
|
||||||
class="branch-form-btn-qr-code q-mb-md"
|
|
||||||
:class="{ 'dark-form-btn-qr-code': $q.dark.isActive }"
|
|
||||||
unelevated
|
|
||||||
:color="$q.dark.isActive ? 'black' : 'grey-2'"
|
|
||||||
:text-color="$q.dark.isActive ? 'white' : 'grey-5'"
|
|
||||||
>
|
|
||||||
<Icon icon="teenyicons:add-outline" width="30px" height="50px" />
|
|
||||||
</q-btn>
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
v-if="!readonly"
|
|
||||||
:text-color="$q.dark.isActive ? 'black' : 'white'"
|
|
||||||
style="
|
|
||||||
background: var(--blue-5);
|
|
||||||
color: var(--blue-0);
|
|
||||||
font-size: 12px;
|
|
||||||
"
|
|
||||||
unelevated
|
|
||||||
rounded
|
|
||||||
:label="$t('general.upload')"
|
|
||||||
@click="$emit('upload')"
|
|
||||||
id="btn-upload-qr-code"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue