Init config #68
|
@ -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 }],
|
||||||
|
|
|
@ -13,5 +13,5 @@
|
||||||
"javascriptreact",
|
"javascriptreact",
|
||||||
"typescript",
|
"typescript",
|
||||||
"vue"
|
"vue"
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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') }}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue