6336-refactor-claimSummary #227
|
@ -1046,7 +1046,7 @@ es:
|
||||||
tooltips:
|
tooltips:
|
||||||
search: Buscar por identificador o concepto
|
search: Buscar por identificador o concepto
|
||||||
changes: Buscar por cambios. Los atributos deben buscarse por su nombre interno, para obtenerlo situar el cursor sobre el atributo.
|
changes: Buscar por cambios. Los atributos deben buscarse por su nombre interno, para obtenerlo situar el cursor sobre el atributo.
|
||||||
Audit logs: Registros de auditoría
|
Audit logs: Historial
|
||||||
Property: Propiedad
|
Property: Propiedad
|
||||||
Before: Antes
|
Before: Antes
|
||||||
After: Después
|
After: Después
|
||||||
|
|
|
@ -46,7 +46,7 @@ watch(props, async () => {
|
||||||
<QCard class="cardSummary">
|
<QCard class="cardSummary">
|
||||||
<SkeletonSummary v-if="!entity" />
|
<SkeletonSummary v-if="!entity" />
|
||||||
<template v-if="entity">
|
<template v-if="entity">
|
||||||
<div class="summaryHeader bg-primary q-pa-md text-weight-bolder">
|
<div class="summaryHeader bg-primary q-pa-sm text-weight-bolder">
|
||||||
<slot name="header-left">
|
<slot name="header-left">
|
||||||
<span></span>
|
<span></span>
|
||||||
</slot>
|
</slot>
|
||||||
|
@ -85,8 +85,8 @@ watch(props, async () => {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
gap: 15px;
|
gap: 10px;
|
||||||
padding: 15px;
|
padding: 10px;
|
||||||
background-color: var(--vn-gray);
|
background-color: var(--vn-gray);
|
||||||
|
|
||||||
> .q-card.vn-one {
|
> .q-card.vn-one {
|
||||||
|
@ -105,14 +105,14 @@ watch(props, async () => {
|
||||||
> .q-card {
|
> .q-card {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: var(--vn-gray);
|
background-color: var(--vn-gray);
|
||||||
padding: 15px;
|
padding: 7px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
min-width: 275px;
|
min-width: 275px;
|
||||||
|
|
||||||
.vn-label-value {
|
.vn-label-value {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
margin-top: 5px;
|
margin-top: 2px;
|
||||||
.label {
|
.label {
|
||||||
color: var(--vn-label);
|
color: var(--vn-label);
|
||||||
width: 8em;
|
width: 8em;
|
||||||
|
@ -131,7 +131,7 @@ watch(props, async () => {
|
||||||
.header {
|
.header {
|
||||||
color: $primary;
|
color: $primary;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 10px;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@ import VnPaginate from './VnPaginate.vue';
|
||||||
import VnUserLink from '../ui/VnUserLink.vue';
|
import VnUserLink from '../ui/VnUserLink.vue';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
id: { type: String, required: true },
|
|
||||||
url: { type: String, default: null },
|
url: { type: String, default: null },
|
||||||
filter: { type: Object, default: () => {} },
|
filter: { type: Object, default: () => {} },
|
||||||
body: { type: Object, default: () => {} },
|
body: { type: Object, default: () => {} },
|
||||||
|
@ -28,7 +27,7 @@ async function insert() {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="column items-center full-height">
|
<div class="column items-center full-height full-width">
|
||||||
<VnPaginate
|
<VnPaginate
|
||||||
:data-key="$props.url"
|
:data-key="$props.url"
|
||||||
:url="$props.url"
|
:url="$props.url"
|
||||||
|
@ -39,12 +38,21 @@ async function insert() {
|
||||||
ref="vnPaginateRef"
|
ref="vnPaginateRef"
|
||||||
>
|
>
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<QCard class="q-pa-xs q-mb-md" v-for="(note, index) in rows" :key="index">
|
<div class="column items-center full-width">
|
||||||
|
<QCard
|
||||||
|
class="q-pa-xs q-mb-sm full-width"
|
||||||
|
v-for="(note, index) in rows"
|
||||||
|
:key="index"
|
||||||
alexm marked this conversation as resolved
|
|||||||
|
>
|
||||||
<QCardSection horizontal>
|
<QCardSection horizontal>
|
||||||
<slot name="picture">
|
<slot name="picture">
|
||||||
<VnAvatar :descriptor="false" :worker-id="note.workerFk" />
|
<VnAvatar
|
||||||
|
:descriptor="false"
|
||||||
|
:worker-id="note.workerFk"
|
||||||
|
size="md"
|
||||||
|
/>
|
||||||
</slot>
|
</slot>
|
||||||
<QItem class="full-width justify-between items-start">
|
<div class="full-width row justify-between q-pa-xs">
|
||||||
<VnUserLink
|
<VnUserLink
|
||||||
:name="`${note.worker.user.nickname}`"
|
:name="`${note.worker.user.nickname}`"
|
||||||
:worker-id="note.worker.id"
|
:worker-id="note.worker.id"
|
||||||
|
@ -53,14 +61,15 @@ async function insert() {
|
||||||
<slot name="actions">
|
<slot name="actions">
|
||||||
{{ toDateHour(note.created) }}
|
{{ toDateHour(note.created) }}
|
||||||
</slot>
|
</slot>
|
||||||
</QItem>
|
</div>
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QCardSection class="q-pa-sm">
|
<QCardSection class="q-pa-xs q-my-none q-py-none">
|
||||||
<slot name="text">
|
<slot name="text">
|
||||||
{{ note.text }}
|
{{ note.text }}
|
||||||
</slot>
|
</slot>
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
</QCard>
|
</QCard>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</VnPaginate>
|
</VnPaginate>
|
||||||
<QPageSticky position="bottom-right" :offset="[25, 25]" v-if="addNote">
|
<QPageSticky position="bottom-right" :offset="[25, 25]" v-if="addNote">
|
||||||
|
@ -108,8 +117,10 @@ async function insert() {
|
||||||
</template>
|
</template>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.q-card {
|
.q-card {
|
||||||
max-width: 80em;
|
width: 90%;
|
||||||
|
@media (max-width: $breakpoint-sm) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
&__section {
|
&__section {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ async function onLoad(...params) {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="full-width">
|
||||||
<div
|
<div
|
||||||
v-if="!props.autoLoad && !store.data && !isLoading"
|
v-if="!props.autoLoad && !store.data && !isLoading"
|
||||||
class="info-row q-pa-md text-center"
|
class="info-row q-pa-md text-center"
|
||||||
|
@ -175,6 +175,7 @@ async function onLoad(...params) {
|
||||||
@load="onLoad"
|
@load="onLoad"
|
||||||
:offset="offset"
|
:offset="offset"
|
||||||
class="full-width full-height"
|
class="full-width full-height"
|
||||||
|
v-bind="$attrs"
|
||||||
>
|
>
|
||||||
<slot name="body" :rows="store.data"></slot>
|
<slot name="body" :rows="store.data"></slot>
|
||||||
<div v-if="isLoading" class="info-row q-pa-md text-center">
|
<div v-if="isLoading" class="info-row q-pa-md text-center">
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
import { useQuasar } from 'quasar';
|
||||||
|
|
||||||
|
export default function() {
|
||||||
|
const quasar = useQuasar();
|
||||||
|
return quasar.screen.gt.xs ? 'q-pa-md': 'q-pa-xs';
|
||||||
|
|
||||||
|
}
|
|
@ -82,6 +82,7 @@ export default {
|
||||||
file: 'File',
|
file: 'File',
|
||||||
selectFile: 'Select a file',
|
selectFile: 'Select a file',
|
||||||
copyClipboard: 'Copy on clipboard',
|
copyClipboard: 'Copy on clipboard',
|
||||||
|
salesPerson: 'SalesPerson',
|
||||||
},
|
},
|
||||||
errors: {
|
errors: {
|
||||||
statusUnauthorized: 'Access denied',
|
statusUnauthorized: 'Access denied',
|
||||||
|
@ -529,6 +530,8 @@ export default {
|
||||||
ticketId: 'Ticket ID',
|
ticketId: 'Ticket ID',
|
||||||
customerSummary: 'Customer summary',
|
customerSummary: 'Customer summary',
|
||||||
claimedTicket: 'Claimed ticket',
|
claimedTicket: 'Claimed ticket',
|
||||||
|
saleTracking: 'Sale tracking',
|
||||||
|
ticketTracking: 'Ticket tracking',
|
||||||
commercial: 'Commercial',
|
commercial: 'Commercial',
|
||||||
province: 'Province',
|
province: 'Province',
|
||||||
zone: 'Zone',
|
zone: 'Zone',
|
||||||
|
|
|
@ -82,6 +82,7 @@ export default {
|
||||||
file: 'Fichero',
|
file: 'Fichero',
|
||||||
selectFile: 'Seleccione un fichero',
|
selectFile: 'Seleccione un fichero',
|
||||||
copyClipboard: 'Copiar en portapapeles',
|
copyClipboard: 'Copiar en portapapeles',
|
||||||
|
salesPerson: 'Comercial',
|
||||||
},
|
},
|
||||||
errors: {
|
errors: {
|
||||||
statusUnauthorized: 'Acceso denegado',
|
statusUnauthorized: 'Acceso denegado',
|
||||||
|
@ -502,7 +503,7 @@ export default {
|
||||||
rma: 'RMA',
|
rma: 'RMA',
|
||||||
development: 'Trazabilidad',
|
development: 'Trazabilidad',
|
||||||
photos: 'Fotos',
|
photos: 'Fotos',
|
||||||
log: 'Registros de auditoría',
|
log: 'Historial',
|
||||||
notes: 'Notas',
|
notes: 'Notas',
|
||||||
action: 'Acción',
|
action: 'Acción',
|
||||||
},
|
},
|
||||||
|
@ -528,6 +529,8 @@ export default {
|
||||||
ticketId: 'ID ticket',
|
ticketId: 'ID ticket',
|
||||||
customerSummary: 'Resumen del cliente',
|
customerSummary: 'Resumen del cliente',
|
||||||
claimedTicket: 'Ticket reclamado',
|
claimedTicket: 'Ticket reclamado',
|
||||||
|
saleTracking: 'Líneas preparadas',
|
||||||
|
ticketTracking: 'Estados del ticket',
|
||||||
commercial: 'Comercial',
|
commercial: 'Comercial',
|
||||||
province: 'Provincia',
|
province: 'Provincia',
|
||||||
zone: 'Zona',
|
zone: 'Zona',
|
||||||
|
@ -725,7 +728,7 @@ export default {
|
||||||
create: 'Crear',
|
create: 'Crear',
|
||||||
summary: 'Resumen',
|
summary: 'Resumen',
|
||||||
basicData: 'Datos básicos',
|
basicData: 'Datos básicos',
|
||||||
log: 'Registros de auditoría',
|
log: 'Historial',
|
||||||
},
|
},
|
||||||
list: {
|
list: {
|
||||||
parking: 'Parking',
|
parking: 'Parking',
|
||||||
|
@ -757,7 +760,7 @@ export default {
|
||||||
dueDay: 'Vencimiento',
|
dueDay: 'Vencimiento',
|
||||||
intrastat: 'Intrastat',
|
intrastat: 'Intrastat',
|
||||||
corrective: 'Rectificativa',
|
corrective: 'Rectificativa',
|
||||||
log: 'Registros de auditoría',
|
log: 'Historial',
|
||||||
},
|
},
|
||||||
list: {
|
list: {
|
||||||
ref: 'Referencia',
|
ref: 'Referencia',
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { useStateStore } from 'stores/useStateStore';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import ClaimDescriptor from './ClaimDescriptor.vue';
|
import ClaimDescriptor from './ClaimDescriptor.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -28,7 +29,9 @@ const { t } = useI18n();
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
jsegarra marked this conversation as resolved
Outdated
jsegarra
commented
Demasiados remplazos, lo vemos con un composable. Demasiados remplazos, lo vemos con un composable.
Que ya tengo hecho
alexm
commented
Subelo Subelo
|
|||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -176,6 +176,7 @@ onMounted(async () => {
|
||||||
color="primary"
|
color="primary"
|
||||||
:href="salixUrl + 'ticket/' + entity.ticketFk + '/sale-tracking'"
|
:href="salixUrl + 'ticket/' + entity.ticketFk + '/sale-tracking'"
|
||||||
>
|
>
|
||||||
|
<QTooltip>{{ t('claim.card.saleTracking') }}</QTooltip>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
<QBtn
|
<QBtn
|
||||||
size="md"
|
size="md"
|
||||||
|
@ -183,6 +184,7 @@ onMounted(async () => {
|
||||||
color="primary"
|
color="primary"
|
||||||
:href="salixUrl + 'ticket/' + entity.ticketFk + '/tracking/index'"
|
:href="salixUrl + 'ticket/' + entity.ticketFk + '/tracking/index'"
|
||||||
>
|
>
|
||||||
|
<QTooltip>{{ t('claim.card.ticketTracking') }}</QTooltip>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
</QCardActions>
|
</QCardActions>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { computed } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { useState } from 'src/composables/useState';
|
import { useState } from 'src/composables/useState';
|
||||||
import VnNotes from 'src/components/ui/VnNotes.vue';
|
import VnNotes from 'src/components/ui/VnNotes.vue';
|
||||||
|
@ -6,14 +7,15 @@ import VnNotes from 'src/components/ui/VnNotes.vue';
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const state = useState();
|
const state = useState();
|
||||||
const user = state.getUser();
|
const user = state.getUser();
|
||||||
const id = route.params.id;
|
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
|
id: { type: Number, default: null },
|
||||||
addNote: { type: Boolean, default: true },
|
addNote: { type: Boolean, default: true },
|
||||||
});
|
});
|
||||||
|
const claimId = computed(() => $props.id || route.params.id);
|
||||||
|
|
||||||
const claimFilter = {
|
const claimFilter = {
|
||||||
where: { claimFk: id },
|
where: { claimFk: claimId.value },
|
||||||
fields: ['created', 'workerFk', 'text'],
|
fields: ['created', 'workerFk', 'text'],
|
||||||
include: {
|
include: {
|
||||||
relation: 'worker',
|
relation: 'worker',
|
||||||
|
@ -30,19 +32,16 @@ const claimFilter = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const body = {
|
const body = {
|
||||||
claimFk: id,
|
claimFk: claimId.value,
|
||||||
workerFk: user.value.id,
|
workerFk: user.value.id,
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="column items-center">
|
|
||||||
<VnNotes
|
<VnNotes
|
||||||
style="overflow-y: scroll"
|
style="overflow-y: auto"
|
||||||
:add-note="$props.addNote"
|
:add-note="$props.addNote"
|
||||||
:id="id"
|
|
||||||
url="claimObservations"
|
url="claimObservations"
|
||||||
:filter="claimFilter"
|
:filter="claimFilter"
|
||||||
:body="body"
|
:body="body"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref, computed, watch } from 'vue';
|
import { onMounted, ref, computed } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { toDate, toCurrency } from 'src/filters';
|
import { toDate, toCurrency } from 'src/filters';
|
||||||
|
@ -70,7 +70,7 @@ const detailsColumns = ref([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'description',
|
name: 'description',
|
||||||
label: 'claim.summary.description',
|
label: 'globals.description',
|
||||||
field: (row) => row.sale.concept,
|
field: (row) => row.sale.concept,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -194,19 +194,19 @@ function openDialog(dmsId) {
|
||||||
</QChip>
|
</QChip>
|
||||||
</template>
|
</template>
|
||||||
</VnLv>
|
</VnLv>
|
||||||
<VnLv :label="t('claim.summary.assignedTo')">
|
<VnLv :label="t('globals.salesPerson')">
|
||||||
<template #value>
|
<template #value>
|
||||||
<VnUserLink
|
<VnUserLink
|
||||||
:name="claim.worker?.user?.nickname"
|
:name="claim.client?.salesPersonUser?.name"
|
||||||
:worker-id="claim.workerFk"
|
:worker-id="claim.client?.salesPersonFk"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</VnLv>
|
</VnLv>
|
||||||
<VnLv :label="t('claim.summary.attendedBy')">
|
<VnLv :label="t('claim.summary.attendedBy')">
|
||||||
<template #value>
|
<template #value>
|
||||||
<VnUserLink
|
<VnUserLink
|
||||||
:name="claim.client?.salesPersonUser?.name"
|
:name="claim.worker?.user?.nickname"
|
||||||
:worker-id="claim.client?.salesPersonFk"
|
:worker-id="claim.workerFk"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</VnLv>
|
</VnLv>
|
||||||
|
@ -218,26 +218,37 @@ function openDialog(dmsId) {
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</VnLv>
|
</VnLv>
|
||||||
<VnLv :label="t('claim.summary.returnOfMaterial')" :value="claim.rma" />
|
|
||||||
<QCheckbox
|
<QCheckbox
|
||||||
:label="t('claim.basicData.picked')"
|
:label="t('claim.basicData.picked')"
|
||||||
v-model="claim.hasToPickUp"
|
v-model="claim.hasToPickUp"
|
||||||
:disable="true"
|
:disable="true"
|
||||||
/>
|
/>
|
||||||
</QCard>
|
</QCard>
|
||||||
<QCard class="vn-three claimVnNotes full-height">
|
<QCard class="vn-three">
|
||||||
<a class="header header-link" :href="`#/claim/${entityId}/notes`">
|
<a class="header" :href="`#/claim/${entityId}/notes`">
|
||||||
{{ t('claim.summary.notes') }}
|
{{ t('claim.summary.notes') }}
|
||||||
<QIcon name="open_in_new" />
|
<QIcon name="open_in_new" />
|
||||||
</a>
|
</a>
|
||||||
<ClaimNotes :add-note="false" style="height: 350px" order="created ASC" />
|
<ClaimNotes
|
||||||
|
:id="entityId"
|
||||||
|
:add-note="false"
|
||||||
|
style="max-height: 300px"
|
||||||
|
order="created ASC"
|
||||||
|
/>
|
||||||
</QCard>
|
</QCard>
|
||||||
<QCard class="vn-two" v-if="salesClaimed.length > 0">
|
<QCard class="vn-two" v-if="salesClaimed.length > 0">
|
||||||
<a class="header header-link" :href="`#/claim/${entityId}/lines`">
|
<a class="header header-link" :href="`#/claim/${entityId}/lines`">
|
||||||
{{ t('claim.summary.details') }}
|
{{ t('claim.summary.details') }}
|
||||||
<QIcon name="open_in_new" />
|
<QIcon name="open_in_new" />
|
||||||
</a>
|
</a>
|
||||||
<QTable :columns="detailsColumns" :rows="salesClaimed" flat>
|
<QTable
|
||||||
|
:columns="detailsColumns"
|
||||||
|
:rows="salesClaimed"
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
:rows-per-page-options="[0]"
|
||||||
|
hide-bottom
|
||||||
|
>
|
||||||
<template #header="props">
|
<template #header="props">
|
||||||
<QTr :props="props">
|
<QTr :props="props">
|
||||||
<QTh v-for="col in props.cols" :key="col.name" :props="props">
|
<QTh v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
@ -272,7 +283,15 @@ function openDialog(dmsId) {
|
||||||
{{ t('claim.summary.development') }}
|
{{ t('claim.summary.development') }}
|
||||||
<QIcon name="open_in_new" />
|
<QIcon name="open_in_new" />
|
||||||
</a>
|
</a>
|
||||||
<QTable :columns="developmentColumns" :rows="developments" flat>
|
|
||||||
|
<QTable
|
||||||
|
:columns="developmentColumns"
|
||||||
|
:rows="developments"
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
:rows-per-page-options="[0]"
|
||||||
|
hide-bottom
|
||||||
|
>
|
||||||
<template #header="props">
|
<template #header="props">
|
||||||
<QTr :props="props">
|
<QTr :props="props">
|
||||||
<QTh v-for="col in props.cols" :key="col.name" :props="props">
|
<QTh v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
@ -390,13 +409,7 @@ function openDialog(dmsId) {
|
||||||
</template>
|
</template>
|
||||||
</CardSummary>
|
</CardSummary>
|
||||||
</template>
|
</template>
|
||||||
<style lang="scss">
|
|
||||||
.claimVnNotes {
|
|
||||||
.q-card {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.q-dialog__inner--minimized > div {
|
.q-dialog__inner--minimized > div {
|
||||||
max-width: 80%;
|
max-width: 80%;
|
||||||
|
@ -406,7 +419,6 @@ function openDialog(dmsId) {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 15px;
|
gap: 15px;
|
||||||
flex-basis: 30%;
|
|
||||||
}
|
}
|
||||||
.multimedia-container {
|
.multimedia-container {
|
||||||
flex: 1 0 21%;
|
flex: 1 0 21%;
|
||||||
|
|
|
@ -115,12 +115,6 @@ function navigate(event, id) {
|
||||||
</VnLv>
|
</VnLv>
|
||||||
</template>
|
</template>
|
||||||
<template #actions>
|
<template #actions>
|
||||||
<QBtn
|
|
||||||
:label="t('components.smartCard.openCard')"
|
|
||||||
@click.stop="navigate(row.id)"
|
|
||||||
class="bg-vn-dark"
|
|
||||||
outline
|
|
||||||
/>
|
|
||||||
<QBtn
|
<QBtn
|
||||||
:label="t('globals.description')"
|
:label="t('globals.description')"
|
||||||
@click.stop
|
@click.stop
|
||||||
|
|
|
@ -6,6 +6,7 @@ import CustomerDescriptor from './CustomerDescriptor.vue';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
@ -30,7 +31,9 @@ const { t } = useI18n();
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -7,6 +7,7 @@ import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
import EntryDescriptor from './EntryDescriptor.vue';
|
import EntryDescriptor from './EntryDescriptor.vue';
|
||||||
|
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
|
@ -33,7 +34,9 @@ const stateStore = useStateStore();
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
|
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -8,6 +8,7 @@ import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
import { useArrayData } from 'src/composables/useArrayData';
|
import { useArrayData } from 'src/composables/useArrayData';
|
||||||
import { onMounted, watch } from 'vue';
|
import { onMounted, watch } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -74,7 +75,9 @@ watch(
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import InvoiceOutDescriptor from './InvoiceOutDescriptor.vue';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
import VnSearchbar from 'components/ui/VnSearchbar.vue';
|
import VnSearchbar from 'components/ui/VnSearchbar.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -28,7 +29,9 @@ const { t } = useI18n();
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -4,6 +4,7 @@ import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
import ItemDescriptor from './ItemDescriptor.vue';
|
import ItemDescriptor from './ItemDescriptor.vue';
|
||||||
|
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
</script>
|
</script>
|
||||||
|
@ -19,7 +20,9 @@ const stateStore = useStateStore();
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
|
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
import SupplierDescriptor from './SupplierDescriptor.vue';
|
import SupplierDescriptor from './SupplierDescriptor.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -30,7 +31,9 @@ const { t } = useI18n();
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import TicketDescriptor from './TicketDescriptor.vue';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -29,7 +30,9 @@ const { t } = useI18n();
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
|
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { useStateStore } from 'stores/useStateStore';
|
||||||
import TravelDescriptor from './TravelDescriptor.vue';
|
import TravelDescriptor from './TravelDescriptor.vue';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
</script>
|
</script>
|
||||||
|
@ -17,7 +18,9 @@ const stateStore = useStateStore();
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { useI18n } from 'vue-i18n';
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
@ -17,7 +18,9 @@ const { t } = useI18n();
|
||||||
</QDrawer>
|
</QDrawer>
|
||||||
<QPageContainer>
|
<QPageContainer>
|
||||||
<QPage>
|
<QPage>
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import WorkerDescriptor from './WorkerDescriptor.vue';
|
||||||
import LeftMenu from 'components/LeftMenu.vue';
|
import LeftMenu from 'components/LeftMenu.vue';
|
||||||
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
|
import useCardSize from 'src/composables/useCardSize';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -29,7 +30,9 @@ const { t } = useI18n();
|
||||||
<QPage>
|
<QPage>
|
||||||
<VnSubToolbar />
|
<VnSubToolbar />
|
||||||
|
|
||||||
<div class="q-pa-md"><RouterView></RouterView></div>
|
<div :class="useCardSize()">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
</QPage>
|
</QPage>
|
||||||
</QPageContainer>
|
</QPageContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -16,10 +16,10 @@ export default {
|
||||||
'ClaimLines',
|
'ClaimLines',
|
||||||
'ClaimRma',
|
'ClaimRma',
|
||||||
'ClaimPhotos',
|
'ClaimPhotos',
|
||||||
'ClaimLog',
|
|
||||||
'ClaimNotes',
|
'ClaimNotes',
|
||||||
'ClaimDevelopment',
|
'ClaimDevelopment',
|
||||||
'ClaimAction',
|
'ClaimAction',
|
||||||
|
'ClaimLog',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
@ -103,6 +103,15 @@ export default {
|
||||||
},
|
},
|
||||||
component: () => import('src/pages/Claim/Card/ClaimPhoto.vue'),
|
component: () => import('src/pages/Claim/Card/ClaimPhoto.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'ClaimNotes',
|
||||||
|
path: 'notes',
|
||||||
|
meta: {
|
||||||
|
title: 'notes',
|
||||||
|
icon: 'draft',
|
||||||
|
},
|
||||||
|
component: () => import('src/pages/Claim/Card/ClaimNotes.vue'),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'ClaimDevelopment',
|
name: 'ClaimDevelopment',
|
||||||
path: 'development',
|
path: 'development',
|
||||||
|
@ -113,24 +122,6 @@ export default {
|
||||||
},
|
},
|
||||||
component: () => import('src/pages/Claim/Card/ClaimDevelopment.vue'),
|
component: () => import('src/pages/Claim/Card/ClaimDevelopment.vue'),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: 'ClaimLog',
|
|
||||||
path: 'log',
|
|
||||||
meta: {
|
|
||||||
title: 'log',
|
|
||||||
icon: 'history',
|
|
||||||
},
|
|
||||||
component: () => import('src/pages/Claim/Card/ClaimLog.vue'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'ClaimNotes',
|
|
||||||
path: 'notes',
|
|
||||||
meta: {
|
|
||||||
title: 'notes',
|
|
||||||
icon: 'draft',
|
|
||||||
},
|
|
||||||
component: () => import('src/pages/Claim/Card/ClaimNotes.vue'),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: 'ClaimAction',
|
name: 'ClaimAction',
|
||||||
path: 'action',
|
path: 'action',
|
||||||
|
@ -140,6 +131,15 @@ export default {
|
||||||
},
|
},
|
||||||
component: () => import('src/pages/Claim/Card/ClaimAction.vue'),
|
component: () => import('src/pages/Claim/Card/ClaimAction.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'ClaimLog',
|
||||||
|
path: 'log',
|
||||||
|
meta: {
|
||||||
|
title: 'log',
|
||||||
|
icon: 'history',
|
||||||
|
},
|
||||||
|
component: () => import('src/pages/Claim/Card/ClaimLog.vue'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in New Issue
Sugenrencia, veo que el texzto está pegado al borde o que el contenido de la card no respira.
Podemos añadirle a este div padding:7px como lo está haciendo Basic Data
Tiene exactamente el mismo padding total que Salix (8px)