Solucion a comentarios 17
gitea/salix-front/pipeline/pr-dev This commit looks good Details

This commit is contained in:
carlosfonseca 2024-02-22 05:11:02 -05:00
parent d06271b91d
commit 3bcd4984f5
8 changed files with 148 additions and 53 deletions

View File

@ -66,6 +66,10 @@ body.body--dark {
border-radius: 8px; border-radius: 8px;
} }
.card-width {
width: 800px;
}
.vn-card-list { .vn-card-list {
width: 100%; width: 100%;
max-width: 60em; max-width: 60em;

View File

@ -129,7 +129,7 @@ const updateData = () => {
<QSeparator class="q-mx-lg" vertical /> <QSeparator class="q-mx-lg" vertical />
<div class="flex"> <div class="flex">
<div class="flex items-center"> <div class="flex items-center" v-if="item?.insurances.length">
<div class="flex q-mr-xl"> <div class="flex q-mr-xl">
<div class="q-mr-sm color-vn-label"> <div class="q-mr-sm color-vn-label">
{{ t('Credit') }}: {{ t('Credit') }}:

View File

@ -1,17 +1,22 @@
<script setup> <script setup>
import { reactive, ref } from 'vue'; import { computed, reactive, ref } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { QBtn } from 'quasar';
import { toCurrency, toDateHourMin } from 'src/filters';
import FetchData from 'components/FetchData.vue'; import FetchData from 'components/FetchData.vue';
import FormModel from 'components/FormModel.vue'; import FormModel from 'components/FormModel.vue';
import VnRow from 'components/ui/VnRow.vue'; import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue'; import VnInput from 'src/components/common/VnInput.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
const { t } = useI18n(); const { t } = useI18n();
const route = useRoute(); const route = useRoute();
const informationOptions = ref([]); const rows = ref([]);
const filter = { const filter = {
include: [ include: [
@ -32,12 +37,64 @@ const initialData = reactive({
rating: null, rating: null,
recommendedCredit: null, recommendedCredit: null,
}); });
const tableColumnComponents = {
since: {
component: 'span',
props: () => {},
event: () => {},
},
employee: {
component: QBtn,
props: () => ({ flat: true, color: 'blue' }),
event: () => {},
},
rating: {
component: 'span',
props: () => {},
event: () => {},
},
recommendedCredit: {
component: 'span',
props: () => {},
event: () => {},
},
};
const columns = computed(() => [
{
align: 'left',
field: 'created',
format: (value) => toDateHourMin(value),
label: t('Since'),
name: 'since',
},
{
align: 'left',
field: (row) => row.worker.user.nickname,
label: t('Employee'),
name: 'employee',
},
{
align: 'left',
field: 'rating',
label: t('Rating'),
name: 'rating',
},
{
align: 'left',
field: 'recommendedCredit',
format: (value) => toCurrency(value),
label: t('Recommended credit'),
name: 'recommendedCredit',
},
]);
</script> </script>
<template> <template>
<FetchData <FetchData
:filter="filter" :filter="filter"
@on-fetch="(data) => (informationOptions = data)" @on-fetch="(data) => (rows = data)"
auto-load auto-load
url="ClientInformas" url="ClientInformas"
/> />
@ -68,10 +125,41 @@ const initialData = reactive({
</VnRow> </VnRow>
</template> </template>
</FormModel> </FormModel>
<QTable
:columns="columns"
:pagination="{ rowsPerPage: 0 }"
:rows="rows"
hide-bottom
row-key="id"
v-model:selected="selected"
class="q-pa-lg"
>
<template #body-cell="props">
<QTd :props="props">
<QTr :props="props" class="cursor-pointer">
<component
:is="tableColumnComponents[props.col.name].component"
class="col-content"
v-bind="tableColumnComponents[props.col.name].props(props)"
@click="tableColumnComponents[props.col.name].event(props)"
>
{{ props.value }}
<WorkerDescriptorProxy
:id="props.row.workerFk"
v-if="props.col.name === 'employee'"
/>
</component>
</QTr>
</QTd>
</template>
</QTable>
</template> </template>
<i18n> <i18n>
es: es:
Rating: Clasificación Rating: Clasificación
Recommended credit: Crédito recomendado Recommended credit: Crédito recomendado
Since: Desde
Employee: Empleado
</i18n> </i18n>

View File

@ -83,7 +83,7 @@ function handleLocation(data, location) {
:label="t('Sage transaction type')" :label="t('Sage transaction type')"
:options="typesTransactions" :options="typesTransactions"
hide-selected hide-selected
option-label="vat" option-label="transaction"
option-value="id" option-value="id"
v-model="data.sageTransactionTypeFk" v-model="data.sageTransactionTypeFk"
> >

View File

@ -287,3 +287,8 @@ const creditWarning = computed(() => {
</template> </template>
</CardSummary> </CardSummary>
</template> </template>
<i18n>
es:
Latest tickets: Últimos tickets
</i18n>

View File

@ -135,42 +135,47 @@ const onSubmit = async () => {
</QBtnGroup> </QBtnGroup>
</Teleport> </Teleport>
<QCard class="q-pa-lg"> <div class="full-width flex justify-center">
<QCardSection> <QCard class="card-width q-pa-lg">
<QForm> <QCardSection>
<VnRow class="row q-gutter-md q-mb-md"> <QForm>
<div class="col"> <VnRow class="row q-gutter-md q-mb-md">
<QCheckbox :label="t('Enable web access')" v-model="active" /> <div class="col">
</div> <QCheckbox :label="t('Enable web access')" v-model="active" />
</VnRow> </div>
</VnRow>
<VnRow class="row q-gutter-md q-mb-md"> <VnRow class="row q-gutter-md q-mb-md">
<div class="col"> <div class="col">
<VnInput :label="t('User')" clearable v-model="name" /> <VnInput :label="t('User')" clearable v-model="name" />
</div> </div>
<div class="col"> </VnRow>
<VnInput
:label="t('Recovery email')" <VnRow class="row q-gutter-md q-mb-md">
:rules="validate('client.email')" <div class="col">
clearable <VnInput
type="email" :label="t('Recovery email')"
v-model="email" :rules="validate('client.email')"
> clearable
<template #append> type="email"
<QIcon name="info" class="cursor-pointer"> v-model="email"
<QTooltip>{{ >
t( <template #append>
'This email is used for user to regain access their account' <QIcon name="info" class="cursor-pointer">
) <QTooltip>{{
}}</QTooltip> t(
</QIcon> 'This email is used for user to regain access their account'
</template> )
</VnInput> }}</QTooltip>
</div> </QIcon>
</VnRow> </template>
</QForm> </VnInput>
</QCardSection> </div>
</QCard> </VnRow>
</QForm>
</QCardSection>
</QCard>
</div>
</template> </template>
<i18n> <i18n>

View File

@ -69,7 +69,7 @@ const columns = computed(() => [
url="CreditInsurances" url="CreditInsurances"
/> />
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md" v-if="rows.length">
<QTable <QTable
:columns="columns" :columns="columns"
:pagination="{ rowsPerPage: 12 }" :pagination="{ rowsPerPage: 12 }"
@ -93,6 +93,10 @@ const columns = computed(() => [
</template> </template>
</QTable> </QTable>
</QPage> </QPage>
<h5 class="flex justify-center color-vn-label" v-else>
{{ t('globals.noResults') }}
</h5>
</template> </template>
<i18n> <i18n>

View File

@ -366,17 +366,6 @@ export default {
], ],
}, },
children: [ children: [
{
path: 'credit-contracts',
name: 'CustomerCreditContracts',
meta: {
title: 'creditContracts',
},
component: () =>
import(
'src/pages/Customer/Card/CustomerCreditContracts.vue'
),
},
{ {
path: 'credit-contracts', path: 'credit-contracts',
name: 'CreditContractsCard', name: 'CreditContractsCard',
@ -439,7 +428,7 @@ export default {
{ {
name: 'CustomerConsumption', name: 'CustomerConsumption',
title: 'consumption', title: 'consumption',
icon: 'vn:lines', icon: 'show_chart',
}, },
{ {
name: 'CustomerMandates', name: 'CustomerMandates',