Update branch
gitea/hedera-web/pipeline/pr-4922-vueMigration This commit looks good Details

This commit is contained in:
William Buezas 2024-08-30 18:06:37 -03:00
commit c77c2e6648
26 changed files with 205 additions and 69 deletions

View File

@ -200,7 +200,10 @@ defineExpose({
</script>
<template>
<QCard class="form-container" v-bind="$attrs">
<QCard
class="form-container"
v-bind="$attrs"
>
<QForm
v-if="!loading"
ref="addressFormRef"
@ -210,7 +213,14 @@ defineExpose({
<span v-if="title" class="text-h6 text-bold">
{{ title }}
</span>
<slot name="form" :data="formData" />
<slot
name="form"
:data="formData"
/>
<slot
name="extraForm"
:data="formData"
/>
<component
v-if="isHeaderMounted"
:is="showBottomActions ? 'div' : Teleport"
@ -244,11 +254,20 @@ defineExpose({
<slot name="actions" :data="formData" />
</component>
</QForm>
<QSpinner v-else color="primary" size="3em" :thickness="2" />
<QSpinner
v-else
color="primary"
size="3em"
:thickness="2"
/>
</QCard>
</template>
<style lang="scss" scoped>
.no-form-container {
padding: 0 !important;
box-shadow: none;
border: none;
}
.form-container {
width: 100%;
height: max-content;

View File

@ -85,11 +85,17 @@ const inputRules = [
hide-bottom-space
@keyup.enter="emit('keyup.enter')"
>
<template v-if="$slots.prepend" #prepend>
<template
v-if="$slots.prepend"
#prepend
>
<slot name="prepend" />
</template>
<template #append>
<slot v-if="$slots.append && !$attrs.disabled" name="append" />
<slot
v-if="$slots.append && !$attrs.disabled"
name="append"
/>
<QIcon
v-if="hover && value && !$attrs.disabled && props.clearable"
name="close"
@ -101,7 +107,10 @@ const inputRules = [
}
"
/>
<QIcon v-if="info" name="info">
<QIcon
v-if="info"
name="info"
>
<QTooltip max-width="350px">
{{ info }}
</QTooltip>

View File

@ -162,7 +162,10 @@ async function filterHandler(val, update) {
:rules="$attrs.required ? [requiredFieldRule] : null"
virtual-scroll-slice-size="options.length"
>
<template v-if="isClearable" #append>
<template
v-if="isClearable"
#append
>
<QIcon
v-show="value"
name="close"
@ -176,7 +179,11 @@ async function filterHandler(val, update) {
#[slotName]="slotData"
:key="slotName"
>
<slot :name="slotName" v-bind="slotData ?? {}" :key="slotName" />
<slot
:name="slotName"
v-bind="slotData ?? {}"
:key="slotName"
/>
</template>
</QSelect>
</template>

View File

@ -73,8 +73,8 @@ async function confirm() {
/>
</QCardSection>
<QCardSection class="row items-center">
<span v-html="message"></span>
<slot name="customHTML"></slot>
<span v-html="message" />
<slot name="customHTML" />
</QCardSection>
<QCardActions align="right">
<QBtn

View File

@ -10,7 +10,7 @@ const props = defineProps({
},
hideBottom: {
type: Boolean,
default: true
default: false
},
rowsPerPageOptions: {
type: Array,
@ -22,12 +22,12 @@ const props = defineProps({
<template>
<QTable
v-bind="$attrs"
:no-data-label="props.noDataLabel || t('noInvoicesFound')"
:no-data-label="props.noDataLabel || t('noData')"
:hide-bottom="props.hideBottom"
:rows-per-page-options="props.rowsPerPageOptions"
table-header-class="vntable-header-default"
>
<template v-for="(_, slotName) in $slots" v-slot:[slotName]="slotProps">
<template v-for="(_, slotName) in $slots" #[slotName]="slotProps">
<slot :name="slotName" v-bind="slotProps" />
</template>
</QTable>

View File

@ -45,3 +45,12 @@ a.link {
.no-padding {
padding: 0 !important;
}
input[type='number'] {
-moz-appearance: textfield;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}

View File

@ -66,5 +66,6 @@ export default {
at: 'a les',
back: 'Tornar',
remove: 'Esborrar',
agency: 'Agència'
agency: 'Agència',
noData: 'Sense dades'
};

View File

@ -79,6 +79,7 @@ export default {
back: 'Back',
remove: 'Remove',
agency: 'Agency',
noData: 'No data',
orders: 'Orders',
order: 'Pending order',

View File

@ -86,6 +86,7 @@ export default {
back: 'Volver',
remove: 'Borrar',
agency: 'Agencia',
noData: 'Sin datos',
orders: 'Pedidos',
order: 'Pedido pendiente',

View File

@ -66,5 +66,6 @@ export default {
at: 'à',
back: 'Retour',
remove: 'Effacer',
agency: 'Agence'
agency: 'Agence',
noData: 'Aucune donnée'
};

View File

@ -66,5 +66,6 @@ export default {
at: 'às',
back: 'Voltar',
remove: 'Eliminar',
agency: 'Agência'
agency: 'Agência',
noData: 'Sem dados'
};

View File

@ -17,6 +17,7 @@ const appStore = useAppStore();
const { isHeaderMounted } = storeToRefs(appStore);
const vnFormRef = ref(null);
const vnFormRef2 = ref(null);
const changePasswordFormDialog = ref(null);
const showChangePasswordForm = ref(false);
const langOptions = ref([]);
@ -101,6 +102,26 @@ onMounted(() => fetchLanguagesSql());
@update:model-value="vnFormRef.submit()"
/>
</template>
<template #extraForm>
<VnForm
class="no-form-container"
ref="vnFormRef2"
:pks="pks"
table="myClient"
schema="hedera"
:fetch-form-data-sql="fetchConfigDataSql"
:default-actions="false"
>
<template #form="{ data }">
<QCheckbox
v-model="data.isToBeMailed"
:label="t('isToBeMailed')"
@update:model-value="vnFormRef2.submit()"
dense
/>
</template>
</VnForm>
</template>
</VnForm>
</QPage>
<QDialog
@ -117,6 +138,7 @@ onMounted(() => fetchLanguagesSql());
<i18n lang="yaml">
en-US:
personalInformation: Personal Information
isToBeMailed: Receive invoices by email
name: Name
email: Email
nickname: Display name
@ -126,6 +148,7 @@ en-US:
changePassword: Change password
es-ES:
personalInformation: Datos personales
isToBeMailed: Recibir facturas por correo electrónico
name: Nombre
email: Correo electrónico
nickname: Nombre a mostrar
@ -135,6 +158,7 @@ es-ES:
changePassword: Cambiar contraseña
ca-ES:
personalInformation: Dades personals
isToBeMailed: Rebre factures per correu electrònic
name: Nom
email: Correu electrònic
nickname: Nom a mostrar
@ -144,6 +168,7 @@ ca-ES:
changePassword: Canviar contrasenya
fr-FR:
personalInformation: Informations personnelles
isToBeMailed: Recevoir des factures par e-mail
name: Nom
email: E-mail
nickname: Nom à afficher
@ -153,6 +178,7 @@ fr-FR:
changePassword: Changer le mot de passe
pt-PT:
personalInformation: Dados pessoais
isToBeMailed: Receber facturas por e-mail
name: Nome
email: E-mail
nickname: Nom à afficher

View File

@ -90,10 +90,22 @@ onMounted(() => getCountries());
@on-data-saved="goBack()"
>
<template #form="{ data }">
<VnInput v-model="data.nickname" :label="t('name')" />
<VnInput v-model="data.street" :label="t('address')" />
<VnInput v-model="data.city" :label="t('city')" />
<VnInput v-model="data.postalCode" :label="t('postalCode')" />
<VnInput
v-model="data.nickname"
:label="t('name')"
/>
<VnInput
v-model="data.street"
:label="t('address')"
/>
<VnInput
v-model="data.city"
:label="t('city')"
/>
<VnInput
v-model="data.postalCode"
:label="t('postalCode')"
/>
<VnSelect
v-model="data.countryFk"
:label="t('country')"
@ -122,7 +134,6 @@ onMounted(() => getCountries());
<i18n lang="yaml">
en-US:
accept: Accept
addEditAddress: Add or edit address
name: Consignee
address: Address
city: City
@ -134,7 +145,6 @@ en-US:
editAddress: Edit address
es-ES:
accept: Aceptar
addEditAddress: Añadir o modificar dirección
name: Consignatario
address: Dirección
city: Ciudad
@ -146,7 +156,6 @@ es-ES:
editAddress: Modificar dirección
ca-ES:
accept: Acceptar
addEditAddress: Afegir o modificar adreça
name: Consignatari
address: Direcció
city: Ciutat
@ -158,7 +167,6 @@ ca-ES:
editAddress: Modificar adreça
fr-FR:
accept: Accepter
addEditAddress: Ajouter ou modifier l'adresse
name: Destinataire
address: Numéro Rue
city: Ville
@ -170,7 +178,6 @@ fr-FR:
editAddress: Modifier adresse
pt-PT:
accept: Aceitar
addEditAddress: Adicionar ou modificar morada
name: Consignatario
address: Morada
city: Concelho

View File

@ -104,7 +104,10 @@ onMounted(async () => {
</QBtn>
</Teleport>
<QPage class="vn-w-sm">
<QList class="rounded-borders shadow-1 shadow-transition" separator>
<QList
class="rounded-borders shadow-1 shadow-transition"
separator
>
<CardList
v-for="(address, index) in addresses"
:key="index"

View File

@ -93,31 +93,26 @@ const supplantUser = async user => {
<i18n lang="yaml">
en-US:
noData: No data
User management: User management
Disabled: Disabled
Impersonate user: Impersonate user
Access log: Access log
es-ES:
noData: Sin datos
User management: Gestión de usuarios
Disabled: Desactivado
Impersonate user: Suplantar usuario
Access log: Registro de accesos
ca-ES:
noData: Sense dades
User management: Gestió d'usuaris
Disabled: Deshabilitat
Impersonate user: Suplantar usuari
Access log: Registre d'accessos
fr-FR:
noData: Aucune donnée
User management: Gestion des utilisateurs
Disabled: Désactivé
Impersonate user: Accès utilisateur
Access log: Journal des accès
pt-PT:
noData: Sem dados
User management: Gestão de usuarios
Disabled: Desativado
Impersonate user: Suplantar usuario

View File

@ -20,15 +20,27 @@ onMounted(async () => await fetchData());
<template>
<div style="padding: 0">
<div class="q-pa-sm row items-start">
<div class="new-card q-pa-sm" v-for="myNew in news" :key="myNew.id">
<div
class="new-card q-pa-sm"
v-for="myNew in news"
:key="myNew.id"
>
<QCard>
<VnImg :id="myNew.image" storage="news" />
<VnImg
:id="myNew.image"
storage="news"
/>
<QCardSection>
<div class="text-h5">{{ myNew.title }}</div>
<div class="text-h5">
{{ myNew.title }}
</div>
</QCardSection>
<QCardSection class="new-body">
<div v-html="myNew.text" class="card-text" />
<div
v-html="myNew.text"
class="card-text"
/>
</QCardSection>
</QCard>
</div>
@ -43,7 +55,10 @@ onMounted(async () => await fetchData());
/>
</QPageSticky>
</div>
<QDialog v-model="showPreview" @hide="selectedImageSrc = ''">
<QDialog
v-model="showPreview"
@hide="selectedImageSrc = ''"
>
<QImg :src="selectedImageSrc" />
</QDialog>
</template>

View File

@ -175,8 +175,7 @@
:disable="disableScroll"
>
<div class="q-pa-md row justify-center q-gutter-md">
<QSpinner v-if="isLoading" color="primary" size="50px">
</QSpinner>
<QSpinner v-if="isLoading" color="primary" size="50px" />
<div
v-if="items && !items.length"
class="text-subtitle1 text-grey-7 q-pa-md"
@ -189,19 +188,21 @@
>
{{ $t('pleaseSetFilter') }}
</div>
<QCard class="my-card" v-for="item in items" :key="item.id">
<img :src="`${$imageBase}/catalog/200x200/${item.image}`" />
<QCard class="my-card" v-for="_item in items" :key="_item.id">
<img
:src="`${$imageBase}/catalog/200x200/${_item.image}`"
/>
<QCardSection>
<div class="name text-subtitle1">
{{ item.longName }}
{{ _item.longName }}
</div>
<div
class="sub-name text-uppercase text-subtitle1 text-grey-7 ellipsize q-pt-xs"
>
{{ item.subName }}
{{ _item.subName }}
</div>
<div class="tags q-pt-xs">
<div v-for="tag in item.tags" :key="tag.tagFk">
<div v-for="tag in _item.tags" :key="tag.tagFk">
<span class="text-grey-7">{{
tag.tag.name
}}</span>
@ -212,20 +213,19 @@
<QCardActions class="actions justify-between">
<div class="q-pl-sm">
<span class="available bg-green text-white">{{
item.available
_item.available
}}</span>
{{ $t('from') }}
<span class="price">{{
currency(item.buy?.price3)
currency(_item.buy?.price3)
}}</span>
</div>
<QBtn
icon="add_shopping_cart"
:title="$t('buy')"
@click="showItem(item)"
@click="showItem(_item)"
flat
>
</QBtn>
/>
</QCardActions>
</QCard>
</div>

View File

@ -441,7 +441,6 @@ onMounted(async () => {
</QStepperNavigation>
</QStep>
</QStepper>
<pre>{{ orderForm }}</pre>
</QPage>
</template>

View File

@ -40,6 +40,7 @@ const columns = computed(() => [
label: t('amount'),
field: 'amount',
align: 'right',
sortable: true,
format: val => currency(val)
},
{
@ -62,6 +63,7 @@ const fetchInvoices = async () => {
LIMIT 100`,
params
);
console.log(invoices.value);
};
onMounted(async () => {

View File

@ -84,9 +84,11 @@ onMounted(async () => {
:to="{ name: 'basket', params: { id: order.id } }"
>
<template #content>
<QItemLabel class="text-bold q-mb-sm">{{
<QItemLabel class="text-bold q-mb-sm">
{{
formatDateTitle(order.sent)
}}</QItemLabel>
}}
</QItemLabel>
<QItemLabel> #{{ order.id }} </QItemLabel>
<QItemLabel>{{ order.nickname }}</QItemLabel>
<QItemLabel>{{ order.agency }}</QItemLabel>

View File

@ -25,9 +25,14 @@ const lineSubtotal = line =>
</script>
<template>
<QCard class="vn-w-sm" style="padding: 32px">
<QCard
class="vn-w-sm"
style="padding: 32px"
>
<QCardSection class="no-padding q-mb-md">
<div class="text-h6">#{{ ticket.id }}</div>
<div class="text-h6">
#{{ ticket.id }}
</div>
</QCardSection>
<QCardSection class="no-padding q-mb-md q-gutter-y-xs">
<div class="text-subtitle1 text-bold">
@ -69,7 +74,10 @@ const lineSubtotal = line =>
</span>
</QCardSection>
<QSeparator inset />
<QList v-for="row in rows" :key="row.itemFk">
<QList
v-for="row in rows"
:key="row.itemFk"
>
<QItem>
<QItemSection avatar>
<VnImg
@ -83,16 +91,25 @@ const lineSubtotal = line =>
<QItemLabel lines="1">
{{ row.concept }}
</QItemLabel>
<QItemLabel lines="1" caption>
<QItemLabel
lines="1"
caption
>
{{ row.value5 }} {{ row.value6 }} {{ row.value7 }}
</QItemLabel>
<QItemLabel lines="1">
{{ row.quantity }} x {{ currency(row.price) }}
</QItemLabel>
</QItemSection>
<QItemSection side class="total">
<QItemSection
side
class="total"
>
<QItemLabel>
<span class="discount" v-if="row.discount">
<span
class="discount"
v-if="row.discount"
>
{{ currency(lineDiscountSubtotal(row)) }} -
{{ currency(row.discount) }} =
</span>

View File

@ -60,7 +60,10 @@ const onPrintClick = () => {
/>
</Teleport>
<QPage>
<TicketDetails :rows="rows" :ticket="ticket" />
<TicketDetails
:rows="rows"
:ticket="ticket"
/>
</QPage>
</template>

View File

@ -3,9 +3,14 @@
class="fullscreen bg-accent text-white text-center q-pa-md flex flex-center"
>
<div>
<div style="font-size: 30vh">404</div>
<div style="font-size: 30vh">
404
</div>
<div class="text-h2" style="opacity: 0.4">
<div
class="text-h2"
style="opacity: 0.4"
>
Oops. Nothing here...
</div>

View File

@ -49,7 +49,7 @@ async function onLogin() {
:label="$t('password')"
:type="!showPwd ? 'password' : 'text'"
>
<template v-slot:append>
<template #append>
<QIcon
:name="showPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer"

View File

@ -8,7 +8,10 @@
/>
</div>
<div>
<QForm @submit="onSend" class="q-gutter-y-md text-grey-8">
<QForm
@submit="onSend"
class="q-gutter-y-md text-grey-8"
>
<div class="text-h5">
<div>
{{ $t('dontWorry') }}
@ -37,7 +40,10 @@
unelevated
/>
<div class="text-center q-mt-md">
<router-link to="/login" class="link">
<router-link
to="/login"
class="link"
>
{{ $t('return') }}
</router-link>
</div>

View File

@ -8,7 +8,11 @@
/>
</QCard-section>
<QCard-section>
<QForm @submit="onRegister" ref="form" class="q-gutter-y-md">
<QForm
@submit="onRegister"
ref="form"
class="q-gutter-y-md"
>
<div class="text-grey-8 text-h5 text-center">
{{ $t('fillData') }}
</div>
@ -21,7 +25,7 @@
hint=""
filled
>
<template v-slot:append>
<template #append>
<QIcon
:name="
showPwd ? 'visibility_off' : 'visibility'
@ -42,7 +46,7 @@
hint=""
filled
>
<template v-slot:append>
<template #append>
<QIcon
:name="
showRpPwd ? 'visibility_off' : 'visibility'
@ -61,7 +65,10 @@
color="primary"
/>
<div class="text-center q-mt-xs">
<router-link to="/login" class="link">
<router-link
to="/login"
class="link"
>
{{ $t('return') }}
</router-link>
</div>