Init config #68

Merged
jsegarra merged 6 commits from wbuezas/hedera-web-mindshore:feature/InitConfig into 4922-vueMigration 2024-07-19 11:13:56 +00:00
16 changed files with 204 additions and 206 deletions
Showing only changes of commit e0cc4e40ba - Show all commits

View File

@ -73,10 +73,8 @@ module.exports = {
}, },
overrides: [ overrides: [
{ {
extends: [ extends: ['plugin:vue/vue3-essential'],
'plugin:vue/vue3-essential', files: ['src/**/*.{js,vue,scss}'], // Aplica ESLint solo a archivos .js, .vue y .scss dentro de src (Proyecto de quasar)
],
files: ['src/**/*.{js,vue,scss}'], // Aplica ESLint solo a archivos .js y .vue dentro de src
rules: { rules: {
semi: 'off', semi: 'off',
indent: ['error', 4, { SwitchCase: 1 }], indent: ['error', 4, { SwitchCase: 1 }],

View File

@ -13,5 +13,5 @@
"javascriptreact", "javascriptreact",
"typescript", "typescript",
"vue" "vue"
] ],
} }

View File

@ -104,15 +104,14 @@ module.exports = configure(function (ctx) {
type: 'http' type: 'http'
}, },
port: 8080, port: 8080,
open: true, // opens browser window automatically open: false,
// static: __dirname, // static: __dirname,
headers: { 'Access-Control-Allow-Origin': '*' }, headers: { 'Access-Control-Allow-Origin': '*' },
// stats: { chunks: false }, // stats: { chunks: false },
proxy: { proxy: {
'/api': 'http://localhost:3000', '/api': 'http://localhost:3000',
'/': { '/': {
target: 'http://localhost/projects/hedera-web', target: 'http://localhost:3001',
bypass: (req) => req.path !== '/' ? req.path : null bypass: (req) => req.path !== '/' ? req.path : null
} }
} }
@ -121,7 +120,7 @@ module.exports = configure(function (ctx) {
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework
framework: { framework: {
config: {}, config: {},
autoImportComponentCase: 'pascal',
// iconSet: 'material-icons', // Quasar icon set // iconSet: 'material-icons', // Quasar icon set
// lang: 'en-US', // Quasar language pack // lang: 'en-US', // Quasar language pack

View File

@ -1,5 +1,5 @@
<template> <template>
<q-layout <QLayout
id="bg" id="bg"
class="fullscreen row justify-center items-center layout-view scroll" class="fullscreen row justify-center items-center layout-view scroll"
> >
@ -10,7 +10,7 @@
</transition> </transition>
</router-view> </router-view>
</div> </div>
</q-layout> </QLayout>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -1,8 +1,8 @@
<template> <template>
<q-layout view="lHh Lpr lFf"> <QLayout view="lHh Lpr lFf">
<q-header reveal> <QHeader>
<q-toolbar> <QToolbar>
<q-btn <QBtn
flat flat
dense dense
round round
@ -10,14 +10,14 @@
aria-label="Menu" aria-label="Menu"
@click="toggleLeftDrawer" @click="toggleLeftDrawer"
/> />
<q-toolbar-title> <QToolbarTitle>
{{ $app.title }} {{ $app.title }}
<div v-if="$app.subtitle" class="subtitle text-caption"> <div v-if="$app.subtitle" class="subtitle text-caption">
{{ $app.subtitle }} {{ $app.subtitle }}
</div> </div>
</q-toolbar-title> </QToolbarTitle>
<div id="actions" ref="actions"></div> <div id="actions" ref="actions"></div>
<q-btn <QBtn
v-if="$app.useRightDrawer" v-if="$app.useRightDrawer"
@click="$app.rightDrawerOpen = !$app.rightDrawerOpen" @click="$app.rightDrawerOpen = !$app.rightDrawerOpen"
aria-label="Menu" aria-label="Menu"
@ -25,54 +25,54 @@
dense dense
round round
> >
<q-icon name="menu" /> <QIcon name="menu" />
</q-btn> </QBtn>
</q-toolbar> </QToolbar>
</q-header> </QHeader>
<q-drawer v-model="leftDrawerOpen" :width="250" show-if-above> <QDrawer v-model="leftDrawerOpen" :width="250" show-if-above>
<q-toolbar class="logo"> <QToolbar class="logo">
<img src="statics/logo-dark.svg" /> <img src="statics/logo-dark.svg" />
</q-toolbar> </QToolbar>
<div class="user-info"> <div class="user-info">
<div> <div>
<span id="user-name">{{ user.nickname }}</span> <span id="user-name">{{ user.nickname }}</span>
<q-btn flat icon="logout" alt="_Exit" @click="logout()" /> <QBtn flat icon="logout" alt="_Exit" @click="logout()" />
</div> </div>
<div id="supplant" class="supplant"> <div id="supplant" class="supplant">
<span id="supplanted">{{ supplantedUser }}</span> <span id="supplanted">{{ supplantedUser }}</span>
<q-btn flat icon="logout" alt="_Exit" /> <QBtn flat icon="logout" alt="_Exit" />
</div> </div>
</div> </div>
<q-list v-for="item in essentialLinks" :key="item.id"> <QList v-for="item in essentialLinks" :key="item.id">
<q-item v-if="!item.childs" :to="`/${item.path}`"> <QItem v-if="!item.childs" :to="`/${item.path}`">
<q-item-section> <QItemSection>
<q-item-label>{{ item.description }}</q-item-label> <QItemLabel>{{ item.description }}</QItemLabel>
</q-item-section> </QItemSection>
</q-item> </QItem>
<q-expansion-item <QExpansionItem
v-if="item.childs" v-if="item.childs"
:label="item.description" :label="item.description"
expand-separator expand-separator
> >
<q-list> <QList>
<q-item <QItem
v-for="subitem in item.childs" v-for="subitem in item.childs"
:key="subitem.id" :key="subitem.id"
:to="`/${subitem.path}`" :to="`/${subitem.path}`"
class="q-pl-lg" class="q-pl-lg"
> >
<q-item-section> <QItemSection>
<q-item-label>{{ subitem.description }}</q-item-label> <QItemLabel>{{ subitem.description }}</QItemLabel>
</q-item-section> </QItemSection>
</q-item> </QItem>
</q-list> </QList>
</q-expansion-item> </QExpansionItem>
</q-list> </QList>
</q-drawer> </QDrawer>
<q-page-container> <QPageContainer>
<router-view /> <router-view />
</q-page-container> </QPageContainer>
</q-layout> </QLayout>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -2,26 +2,26 @@
<div style="padding: 0"> <div style="padding: 0">
<div class="q-pa-sm row items-start"> <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">
<q-card> <QCard>
<q-img :src="`${$app.imageUrl}/news/full/${myNew.image}`"> </q-img> <QImg :src="`${$app.imageUrl}/news/full/${myNew.image}`"> </QImg>
<q-card-section> <QCardSection>
<div class="text-h5">{{ myNew.title }}</div> <div class="text-h5">{{ myNew.title }}</div>
</q-card-section> </QCardSection>
<q-card-section class="new-body"> <QCardSection class="new-body">
<div v-html="myNew.text" /> <div v-html="myNew.text" />
</q-card-section> </QCardSection>
</q-card> </QCard>
</div> </div>
</div> </div>
<q-page-sticky> <QPageSticky>
<q-btn <QBtn
fab fab
icon="add_shopping_cart" icon="add_shopping_cart"
color="accent" color="accent"
to="/ecomerce/catalog" to="/ecomerce/catalog"
:title="$t('startOrder')" :title="$t('startOrder')"
/> />
</q-page-sticky> </QPageSticky>
</div> </div>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<Teleport :to="$actions"> <Teleport :to="$actions">
<q-input <QInput
:placeholder="$t('search')" :placeholder="$t('search')"
v-model="search" v-model="search"
debounce="500" debounce="500"
@ -11,16 +11,16 @@
standout standout
> >
<template v-slot:prepend> <template v-slot:prepend>
<q-icon v-if="search === ''" name="search" /> <QIcon v-if="search === ''" name="search" />
<q-icon <QIcon
v-else v-else
name="clear" name="clear"
class="cursor-pointer" class="cursor-pointer"
@click="search = ''" @click="search = ''"
/> />
</template> </template>
</q-input> </QInput>
<q-btn <QBtn
:icon="$t(viewMode == 'list' ? 'view_list' : 'grid_on')" :icon="$t(viewMode == 'list' ? 'view_list' : 'grid_on')"
:label="$t(viewMode == 'list' ? 'listView' : 'gridView')" :label="$t(viewMode == 'list' ? 'listView' : 'gridView')"
@click="onViewModeClick()" @click="onViewModeClick()"
@ -29,7 +29,7 @@
/> />
</Teleport> </Teleport>
<div style="padding-bottom: 5em"> <div style="padding-bottom: 5em">
<q-drawer v-model="$app.rightDrawerOpen" side="right" :width="250"> <QDrawer v-model="$app.rightDrawerOpen" side="right" :width="250">
<div class="q-pa-md"> <div class="q-pa-md">
<div class="basket-info"> <div class="basket-info">
<p>{{ date(new Date()) }}</p> <p>{{ date(new Date()) }}</p>
@ -37,14 +37,14 @@
{{ $t('warehouse') }} {{ $t('warehouse') }}
{{ 'Algemesi' }} {{ 'Algemesi' }}
</p> </p>
<q-btn flat rounded no-caps> <QBtn flat rounded no-caps>
{{ $t('modify') }} {{ $t('modify') }}
</q-btn> </QBtn>
</div> </div>
<div class="q-mt-md"> <div class="q-mt-md">
<div class="q-mb-xs text-grey-7"> <div class="q-mb-xs text-grey-7">
{{ $t('category') }} {{ $t('category') }}
<q-icon <QIcon
v-if="category" v-if="category"
style="font-size: 1.3em" style="font-size: 1.3em"
name="cancel" name="cancel"
@ -54,7 +54,7 @@
/> />
</div> </div>
<div class="categories"> <div class="categories">
<q-btn <QBtn
flat flat
round round
class="category q-pa-sm" class="category q-pa-sm"
@ -65,14 +65,14 @@
:to="{ params: { category: cat.id, type: null } }" :to="{ params: { category: cat.id, type: null } }"
> >
<img :src="`statics/category/${cat.code}.svg`" /> <img :src="`statics/category/${cat.code}.svg`" />
</q-btn> </QBtn>
</div> </div>
</div> </div>
<div class="q-mt-md" v-if="category || search"> <div class="q-mt-md" v-if="category || search">
<div class="q-mb-xs text-grey-7"> <div class="q-mb-xs text-grey-7">
{{ $t('filterBy') }} {{ $t('filterBy') }}
</div> </div>
<q-select <QSelect
v-model="type" v-model="type"
option-value="id" option-value="id"
option-label="name" option-label="name"
@ -83,7 +83,7 @@
@filter="filterType" @filter="filterType"
@input="$router.push({ params: { type: type && type.id } })" @input="$router.push({ params: { type: type && type.id } })"
/> />
<q-select <QSelect
v-model="order" v-model="order"
input-debounce="0" input-debounce="0"
:options="orderOptions" :options="orderOptions"
@ -95,7 +95,7 @@
<div class="q-mb-md" v-for="tag in tags" :key="tag.uid"> <div class="q-mb-md" v-for="tag in tags" :key="tag.uid">
<div class="q-mb-xs text-caption text-grey-7"> <div class="q-mb-xs text-caption text-grey-7">
{{ tag.name }} {{ tag.name }}
<q-icon <QIcon
v-if="tag.hasFilter" v-if="tag.hasFilter"
style="font-size: 1.3em" style="font-size: 1.3em"
name="cancel" name="cancel"
@ -109,7 +109,7 @@
v-for="value in tag.values.slice(0, tag.showCount)" v-for="value in tag.values.slice(0, tag.showCount)"
:key="value" :key="value"
> >
<q-checkbox <QCheckbox
v-model="tag.filter" v-model="tag.filter"
:dense="true" :dense="true"
:val="value" :val="value"
@ -122,7 +122,7 @@
class="cursor-pointer text-blue" class="cursor-pointer text-blue"
@click="tag.showCount = Infinity" @click="tag.showCount = Infinity"
> >
<q-icon name="keyboard_arrow_down" /> <QIcon name="keyboard_arrow_down" />
{{ $t('viewMore') }} {{ $t('viewMore') }}
</span> </span>
</div> </div>
@ -131,13 +131,13 @@
class="cursor-pointer text-blue" class="cursor-pointer text-blue"
@click="tag.showCount = tag.initialCount" @click="tag.showCount = tag.initialCount"
> >
<q-icon name="keyboard_arrow_up" /> <QIcon name="keyboard_arrow_up" />
{{ $t('viewLess') }} {{ $t('viewLess') }}
</span> </span>
</div> </div>
</div> </div>
<div class="q-mx-md"> <div class="q-mx-md">
<q-range <QRange
class="q-mt-lg" class="q-mt-lg"
v-if="tag.useRange" v-if="tag.useRange"
v-model="tag.filter" v-model="tag.filter"
@ -154,15 +154,15 @@
</div> </div>
</div> </div>
</div> </div>
</q-drawer> </QDrawer>
<q-infinite-scroll <QInfiniteScroll
@load="onLoad" @load="onLoad"
scroll-taget="html" scroll-taget="html"
:offset="800" :offset="800"
:disable="disableScroll" :disable="disableScroll"
> >
<div class="q-pa-md row justify-center q-gutter-md"> <div class="q-pa-md row justify-center q-gutter-md">
<q-spinner v-if="isLoading" color="primary" size="50px"> </q-spinner> <QSpinner v-if="isLoading" color="primary" size="50px"> </QSpinner>
<div <div
v-if="items && !items.length" v-if="items && !items.length"
class="text-subtitle1 text-grey-7 q-pa-md" class="text-subtitle1 text-grey-7 q-pa-md"
@ -175,9 +175,9 @@
> >
{{ $t('pleaseSetFilter') }} {{ $t('pleaseSetFilter') }}
</div> </div>
<q-card class="my-card" v-for="item in items" :key="item.id"> <QCard class="my-card" v-for="item in items" :key="item.id">
<img :src="`${$imageBase}/catalog/200x200/${item.image}`" /> <img :src="`${$imageBase}/catalog/200x200/${item.image}`" />
<q-card-section> <QCardSection>
<div class="name text-subtitle1"> <div class="name text-subtitle1">
{{ item.longName }} {{ item.longName }}
</div> </div>
@ -192,8 +192,8 @@
{{ tag.value }} {{ tag.value }}
</div> </div>
</div> </div>
</q-card-section> </QCardSection>
<q-card-actions class="actions justify-between"> <QCardActions class="actions justify-between">
<div class="q-pl-sm"> <div class="q-pl-sm">
<span class="available bg-green text-white">{{ <span class="available bg-green text-white">{{
item.available item.available
@ -201,25 +201,25 @@
{{ $t('from') }} {{ $t('from') }}
<span class="price">{{ currency(item.buy?.price3) }}</span> <span class="price">{{ currency(item.buy?.price3) }}</span>
</div> </div>
<q-btn <QBtn
icon="add_shopping_cart" icon="add_shopping_cart"
:title="$t('buy')" :title="$t('buy')"
@click="showItem(item)" @click="showItem(item)"
flat flat
> >
</q-btn> </QBtn>
</q-card-actions> </QCardActions>
</q-card> </QCard>
</div> </div>
<template v-slot:loading> <template v-slot:loading>
<div class="row justify-center q-my-md"> <div class="row justify-center q-my-md">
<q-spinner color="primary" name="dots" size="40px" /> <QSpinner color="primary" name="dots" size="40px" />
</div> </div>
</template> </template>
</q-infinite-scroll> </QInfiniteScroll>
<q-dialog v-model="showItemDialog"> <QDialog v-model="showItemDialog">
<q-card style="width: 25em"> <QCard style="width: 25em">
<q-img <QImg
:src="`${$imageBase}/catalog/200x200/${item.image}`" :src="`${$imageBase}/catalog/200x200/${item.image}`"
:ratio="5 / 3" :ratio="5 / 3"
> >
@ -228,38 +228,38 @@
{{ item.longName }} {{ item.longName }}
</div> </div>
</div> </div>
</q-img> </QImg>
<q-card-section> <QCardSection>
<div class="text-uppercase text-subtitle1 text-grey-7 ellipsize"> <div class="text-uppercase text-subtitle1 text-grey-7 ellipsize">
{{ item.subName }} {{ item.subName }}
</div> </div>
<div class="text-grey-7">#{{ item.id }}</div> <div class="text-grey-7">#{{ item.id }}</div>
</q-card-section> </QCardSection>
<q-card-section> <QCardSection>
<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> <span class="text-grey-7">{{ tag.tag.name }}</span>
{{ tag.value }} {{ tag.value }}
</div> </div>
</q-card-section> </QCardSection>
<q-card-actions align="right"> <QCardActions align="right">
<q-btn @click="showItemDialog = false" flat> <QBtn @click="showItemDialog = false" flat>
{{ $t('cancel') }} {{ $t('cancel') }}
</q-btn> </QBtn>
<q-btn @click="showItemDialog = false" flat> <QBtn @click="showItemDialog = false" flat>
{{ $t('accept') }} {{ $t('accept') }}
</q-btn> </QBtn>
</q-card-actions> </QCardActions>
</q-card> </QCard>
</q-dialog> </QDialog>
<q-page-sticky> <QPageSticky>
<q-btn <QBtn
fab fab
to="/ecomerce/basket" to="/ecomerce/basket"
icon="shopping_cart" icon="shopping_cart"
color="accent" color="accent"
:title="$t('shoppingCart')" :title="$t('shoppingCart')"
/> />
</q-page-sticky> </QPageSticky>
</div> </div>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<Teleport :to="$actions"> <Teleport :to="$actions">
<q-select <QSelect
v-model="year" v-model="year"
:options="years" :options="years"
color="white" color="white"
@ -17,8 +17,8 @@
> >
{{ $t('noInvoicesFound') }} {{ $t('noInvoicesFound') }}
</div> </div>
<q-card v-if="invoices?.length"> <QCard v-if="invoices?.length">
<q-table <QTable
:columns="columns" :columns="columns"
:pagination="pagination" :pagination="pagination"
:rows="invoices" :rows="invoices"
@ -27,18 +27,18 @@
hide-bottom hide-bottom
> >
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="props"> <QTr :props="props">
<q-td key="ref" :props="props"> <QTd key="ref" :props="props">
{{ props.row.ref }} {{ props.row.ref }}
</q-td> </QTd>
<q-td key="issued" :props="props"> <QTd key="issued" :props="props">
{{ date(props.row.issued, 'ddd, MMMM Do') }} {{ date(props.row.issued, 'ddd, MMMM Do') }}
</q-td> </QTd>
<q-td key="amount" :props="props"> <QTd key="amount" :props="props">
{{ currency(props.row.amount) }} {{ currency(props.row.amount) }}
</q-td> </QTd>
<q-td key="hasPdf" :props="props"> <QTd key="hasPdf" :props="props">
<q-btn <QBtn
v-if="props.row.hasPdf" v-if="props.row.hasPdf"
icon="download" icon="download"
:title="$t('downloadInvoicePdf')" :title="$t('downloadInvoicePdf')"
@ -47,18 +47,18 @@
flat flat
round round
/> />
<q-icon <QIcon
v-else v-else
name="warning" name="warning"
:title="$t('notDownloadable')" :title="$t('notDownloadable')"
color="warning" color="warning"
size="24px" size="24px"
/> />
</q-td> </QTd>
</q-tr> </QTr>
</template> </template>
</q-table> </QTable>
</q-card> </QCard>
</div> </div>
</template> </template>

View File

@ -5,16 +5,16 @@
<span class="amount" :class="{ negative: debt < 0 }"> <span class="amount" :class="{ negative: debt < 0 }">
{{ currency(debt || 0) }} {{ currency(debt || 0) }}
</span> </span>
<q-icon name="info" :title="$t('paymentInfo')" class="info" size="24px" /> <QIcon name="info" :title="$t('paymentInfo')" class="info" size="24px" />
</div> </div>
<q-btn <QBtn
icon="payments" icon="payments"
:label="$t('makePayment')" :label="$t('makePayment')"
@click="onPayClick()" @click="onPayClick()"
rounded rounded
no-caps no-caps
/> />
<q-btn <QBtn
to="/ecomerce/basket" to="/ecomerce/basket"
icon="shopping_cart" icon="shopping_cart"
:label="$t('shoppingCart')" :label="$t('shoppingCart')"
@ -29,36 +29,36 @@
> >
{{ $t('noOrdersFound') }} {{ $t('noOrdersFound') }}
</div> </div>
<q-card v-if="orders?.length"> <QCard v-if="orders?.length">
<q-list bordered separator padding> <QList bordered separator padding>
<q-item <QItem
v-for="order in orders" v-for="order in orders"
:key="order.id" :key="order.id"
:to="`ticket/${order.id}`" :to="`ticket/${order.id}`"
clickable clickable
v-ripple v-ripple
> >
<q-item-section> <QItemSection>
<q-item-label> <QItemLabel>
{{ date(order.landed, 'ddd, MMMM Do') }} {{ date(order.landed, 'ddd, MMMM Do') }}
</q-item-label> </QItemLabel>
<q-item-label caption>#{{ order.id }}</q-item-label> <QItemLabel caption>#{{ order.id }}</QItemLabel>
<q-item-label caption>{{ order.nickname }}</q-item-label> <QItemLabel caption>{{ order.nickname }}</QItemLabel>
<q-item-label caption>{{ order.agency }}</q-item-label> <QItemLabel caption>{{ order.agency }}</QItemLabel>
</q-item-section> </QItemSection>
<q-item-section side top> {{ order.total }} </q-item-section> <QItemSection side top> {{ order.total }} </QItemSection>
</q-item> </QItem>
</q-list> </QList>
</q-card> </QCard>
<q-page-sticky> <QPageSticky>
<q-btn <QBtn
fab fab
icon="add_shopping_cart" icon="add_shopping_cart"
color="accent" color="accent"
to="/ecomerce/catalog" to="/ecomerce/catalog"
:title="$t('startOrder')" :title="$t('startOrder')"
/> />
</q-page-sticky> </QPageSticky>
</div> </div>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<Teleport :to="$actions"> <Teleport :to="$actions">
<q-btn <QBtn
icon="print" icon="print"
:label="$t('printDeliveryNote')" :label="$t('printDeliveryNote')"
@click="onPrintClick()" @click="onPrintClick()"
@ -9,11 +9,11 @@
/> />
</Teleport> </Teleport>
<div> <div>
<q-card class="vn-w-sm"> <QCard class="vn-w-sm">
<q-card-section> <QCardSection>
<div class="text-h6">#{{ ticket.id }}</div> <div class="text-h6">#{{ ticket.id }}</div>
</q-card-section> </QCardSection>
<q-card-section> <QCardSection>
<div class="text-h6">{{ $t('shippingInformation') }}</div> <div class="text-h6">{{ $t('shippingInformation') }}</div>
<div> <div>
{{ $t('preparation') }} {{ date(ticket.shipped, 'ddd, MMMM Do') }} {{ $t('preparation') }} {{ date(ticket.shipped, 'ddd, MMMM Do') }}
@ -25,46 +25,46 @@
{{ $t(ticket.method != 'PICKUP' ? 'agency' : 'warehouse') }} {{ $t(ticket.method != 'PICKUP' ? 'agency' : 'warehouse') }}
{{ ticket.agency }} {{ ticket.agency }}
</div> </div>
</q-card-section> </QCardSection>
<q-card-section> <QCardSection>
<div class="text-h6">{{ $t('deliveryAddress') }}</div> <div class="text-h6">{{ $t('deliveryAddress') }}</div>
<div>{{ ticket.nickname }}</div> <div>{{ ticket.nickname }}</div>
<div>{{ ticket.street }}</div> <div>{{ ticket.street }}</div>
<div> <div>
{{ ticket.postalCode }} {{ ticket.city }} ({{ ticket.province }}) {{ ticket.postalCode }} {{ ticket.city }} ({{ ticket.province }})
</div> </div>
</q-card-section> </QCardSection>
<q-separator inset /> <QSeparator inset />
<q-list v-for="row in rows" :key="row.itemFk"> <QList v-for="row in rows" :key="row.itemFk">
<q-item> <QItem>
<q-item-section avatar> <QItemSection avatar>
<q-avatar size="68px"> <QAvatar size="68px">
<img :src="`${$app.imageUrl}/catalog/200x200/${row.image}`" /> <img :src="`${$app.imageUrl}/catalog/200x200/${row.image}`" />
</q-avatar> </QAvatar>
</q-item-section> </QItemSection>
<q-item-section> <QItemSection>
<q-item-label lines="1"> <QItemLabel lines="1">
{{ row.concept }} {{ row.concept }}
</q-item-label> </QItemLabel>
<q-item-label lines="1" caption> <QItemLabel lines="1" caption>
{{ row.value5 }} {{ row.value6 }} {{ row.value7 }} {{ row.value5 }} {{ row.value6 }} {{ row.value7 }}
</q-item-label> </QItemLabel>
<q-item-label lines="1"> <QItemLabel lines="1">
{{ row.quantity }} x {{ currency(row.price) }} {{ row.quantity }} x {{ currency(row.price) }}
</q-item-label> </QItemLabel>
</q-item-section> </QItemSection>
<q-item-section side class="total"> <QItemSection side class="total">
<q-item-label> <QItemLabel>
<span class="discount" v-if="row.discount"> <span class="discount" v-if="row.discount">
{{ currency(discountSubtotal(row)) }} - {{ currency(discountSubtotal(row)) }} -
{{ currency(row.discount) }} = {{ currency(row.discount) }} =
</span> </span>
{{ currency(subtotal(row)) }} {{ currency(subtotal(row)) }}
</q-item-label> </QItemLabel>
</q-item-section> </QItemSection>
</q-item> </QItem>
</q-list> </QList>
</q-card> </QCard>
</div> </div>
</template> </template>

View File

@ -7,7 +7,7 @@
<div class="text-h2" style="opacity: 0.4">Oops. Nothing here...</div> <div class="text-h2" style="opacity: 0.4">Oops. Nothing here...</div>
<q-btn <QBtn
class="q-mt-xl" class="q-mt-xl"
color="white" color="white"
text-color="accent" text-color="accent"

View File

@ -1,11 +1,11 @@
<template> <template>
<q-page class="flex flex-center"> <QPage class="flex flex-center">
<img <img
alt="Quasar logo" alt="Quasar logo"
src="~assets/quasar-logo-vertical.svg" src="~assets/quasar-logo-vertical.svg"
style="width: 200px; height: 200px" style="width: 200px; height: 200px"
/> />
</q-page> </QPage>
</template> </template>
<script> <script>

View File

@ -5,24 +5,24 @@
<img src="statics/logo.svg" alt="Verdnatura" class="block" /> <img src="statics/logo.svg" alt="Verdnatura" class="block" />
</router-link> </router-link>
</div> </div>
<q-form @submit="onLogin" class="q-gutter-y-md"> <QForm @submit="onLogin" class="q-gutter-y-md">
<div class="q-gutter-y-sm"> <div class="q-gutter-y-sm">
<q-input v-model="email" :label="$t('user')" autofocus /> <QInput v-model="email" :label="$t('user')" autofocus />
<q-input <QInput
v-model="password" v-model="password"
ref="password" ref="password"
:label="$t('password')" :label="$t('password')"
:type="showPwd ? 'password' : 'text'" :type="showPwd ? 'password' : 'text'"
> >
<template v-slot:append> <template v-slot:append>
<q-icon <QIcon
:name="showPwd ? 'visibility_off' : 'visibility'" :name="showPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer" class="cursor-pointer"
@click="showPwd = !showPwd" @click="showPwd = !showPwd"
/> />
</template> </template>
</q-input> </QInput>
<q-checkbox <QCheckbox
v-model="remember" v-model="remember"
:label="$t('remindMe')" :label="$t('remindMe')"
class="remember" class="remember"
@ -30,7 +30,7 @@
/> />
</div> </div>
<div class="justify-center"> <div class="justify-center">
<q-btn <QBtn
type="submit" type="submit"
:label="$t('logIn')" :label="$t('logIn')"
class="full-width" class="full-width"
@ -41,7 +41,7 @@
/> />
</div> </div>
<div class="justify-center"> <div class="justify-center">
<q-btn <QBtn
to="/" to="/"
:label="$t('logInAsGuest')" :label="$t('logInAsGuest')"
class="full-width" class="full-width"
@ -56,7 +56,7 @@
{{ $t('haveForgottenPassword') }} {{ $t('haveForgottenPassword') }}
</router-link> </router-link>
</p> </p>
</q-form> </QForm>
<div class="footer text-center"> <div class="footer text-center">
<p> <p>
{{ $t('notACustomerYet') }} {{ $t('notACustomerYet') }}

View File

@ -1,14 +1,14 @@
<template> <template>
<div class="text-center"> <div class="text-center">
<div> <div>
<q-icon <QIcon
name="contact_support" name="contact_support"
class="block q-mx-auto text-accent" class="block q-mx-auto text-accent"
style="font-size: 120px" style="font-size: 120px"
/> />
</div> </div>
<div> <div>
<q-form @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 class="text-h5">
<div> <div>
{{ $t('dontWorry') }} {{ $t('dontWorry') }}
@ -17,7 +17,7 @@
{{ $t('fillData') }} {{ $t('fillData') }}
</div> </div>
</div> </div>
<q-input <QInput
v-model="email" v-model="email"
:label="$t('user')" :label="$t('user')"
:rules="[(val) => !!val || $t('inputEmail')]" :rules="[(val) => !!val || $t('inputEmail')]"
@ -27,7 +27,7 @@
{{ $t('weSendEmail') }} {{ $t('weSendEmail') }}
</div> </div>
<div> <div>
<q-btn <QBtn
type="submit" type="submit"
:label="$t('send')" :label="$t('send')"
class="full-width q-mt-md" class="full-width q-mt-md"
@ -42,7 +42,7 @@
</router-link> </router-link>
</div> </div>
</div> </div>
</q-form> </QForm>
</div> </div>
</div> </div>
</template> </template>

View File

@ -1,19 +1,19 @@
<template> <template>
<div> <div>
<q-card-section> <QCard-section>
<q-icon <QIcon
name="check" name="check"
class="block q-mx-auto text-accent" class="block q-mx-auto text-accent"
style="font-size: 120px" style="font-size: 120px"
/> />
</q-card-section> </QCard-section>
<q-card-section> <QCard-section>
<q-form @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"> <div class="text-grey-8 text-h5 text-center">
{{ $t('fillData') }} {{ $t('fillData') }}
</div> </div>
<div class="q-gutter-y-sm"> <div class="q-gutter-y-sm">
<q-input <QInput
v-model="password" v-model="password"
:label="$t('password')" :label="$t('password')"
:type="showPwd ? 'password' : 'text'" :type="showPwd ? 'password' : 'text'"
@ -22,14 +22,14 @@
filled filled
> >
<template v-slot:append> <template v-slot:append>
<q-icon <QIcon
:name="showPwd ? 'visibility_off' : 'visibility'" :name="showPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer" class="cursor-pointer"
@click="showPwd = !showPwd" @click="showPwd = !showPwd"
/> />
</template> </template>
</q-input> </QInput>
<q-input <QInput
v-model="repeatPassword" v-model="repeatPassword"
:label="$t('repeatPassword')" :label="$t('repeatPassword')"
:type="showRpPwd ? 'password' : 'text'" :type="showRpPwd ? 'password' : 'text'"
@ -38,16 +38,16 @@
filled filled
> >
<template v-slot:append> <template v-slot:append>
<q-icon <QIcon
:name="showRpPwd ? 'visibility_off' : 'visibility'" :name="showRpPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer" class="cursor-pointer"
@click="showRpPwd = !showRpPwd" @click="showRpPwd = !showRpPwd"
/> />
</template> </template>
</q-input> </QInput>
</div> </div>
<div> <div>
<q-btn <QBtn
type="submit" type="submit"
:label="$t('resetPassword')" :label="$t('resetPassword')"
class="full-width" class="full-width"
@ -59,8 +59,8 @@
</router-link> </router-link>
</div> </div>
</div> </div>
</q-form> </QForm>
</q-card-section> </QCard-section>
</div> </div>
</template> </template>

View File

@ -10,7 +10,8 @@ export const userStore = defineStore('user', {
token, token,
id: null, id: null,
name: null, name: null,
nickname: null nickname: null,
isGuest: false
} }
}, },