Aggiornamento APP RISO:

 Inviando i RIS, deve comparire prima il Circuito della Provincia, e poi quello Nazionale
 Risolto problema per vecchie registrazioni, la provincia compariva "undefined".
This commit is contained in:
Surya Paolo
2024-06-19 00:21:06 +02:00
parent 2d9c178c1f
commit 49d51712bd
155 changed files with 2510 additions and 5296 deletions

View File

@@ -151,7 +151,7 @@ export default defineComponent({
})
watch(() => globalStore.myselector.data, (newval, oldval) => {
const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
if (rec) {
rec.value = globalStore.myselector.data
}
@@ -201,9 +201,9 @@ export default defineComponent({
item.value = costanti.FILTER_TUTTI
}
}
} else if (item.table === toolsext.TABCITIES) {
} else if (item.table === shared_consts.TAB_CITIES) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + item.table + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
let trovato = false
let arrvalues = []
if (rec) {

View File

@@ -3,7 +3,6 @@
:class="$q.screen.lt.sm ? `` : `q-pa-xs`"
v-if="isfinishLoading && mycolumns"
>
<div :class="`shadow-2 rounded-borders`">
<div>
<div v-if="prop_search || canEdit" class="q-my-xs text-right">
@@ -16,7 +15,9 @@
></q-btn>
</div>
<q-slide-transition>
<div class="row no-wrap shadow-1" style="height: 40px;">
<div
class="row no-wrap shadow-1"
style="height: 40px">
<div v-if="$q.screen.gt.xs" class="col-1">
<q-avatar @click="toHome" class="imglink">
<img
@@ -84,7 +85,9 @@
: labelcombo(item)
"
v-model:value="item.value"
@update:value="searchval(item.value, item.table, tablesel)"
@update:value="
searchval(item.value, item.table, tablesel)
"
:addall="item.addall"
:addnone="item.addnone"
:addlast="true"
@@ -127,7 +130,9 @@
:multiselect_by_server="true"
:label="labelcombo(item)"
v-model:arrvalue="item.arrvalue"
@update:arrvalue="searchval(item.arrvalue, item.table, tablesel)"
@update:arrvalue="
searchval(item.arrvalue, item.table, tablesel)
"
:addall="item.addall"
:addnone="item.addnone"
dark
@@ -153,7 +158,9 @@
v-model="item.arrvalue"
label-color="primary"
:label="labelcombo(item)"
@update:model-value="searchval(item.arrvalue, item.table, tablesel)"
@update:model-value="
searchval(item.arrvalue, item.table, tablesel)
"
rounded
dark
dense

View File

@@ -25,16 +25,16 @@
<br />
</q-banner>
<div class="text-center">
<div class="text-center" v-if="to_user">
<q-btn
glossy
size="md"
:label="$t('circuit.invia_msg_dest', {name: to_user.username})"
:label="$t('circuit.invia_msg_dest', {name: to_user ? to_user.username : ''})"
icon="fas fa-paper-plane"
color="blue"
text-color="white"
rounded
@click="tools.SendMsgRisItalia($q, to_user.username)"
@click="tools.SendMsgRisItalia($q, to_user ? to_user.username : '')"
></q-btn>
</div>
</div>

View File

@@ -57,7 +57,7 @@
<q-btn
outline
icon="fas fa-envelope"
:color="$q.dark.isActive ? `shite` : `black`"
:color="$q.dark.isActive ? `white` : `black`"
:type="tools.isUserOk() ? 'a' : 'btn'"
size="md"
:label="$t('msgs.send_email')"

View File

@@ -0,0 +1,90 @@
.box_1 {
color: #0dceec;
}
.box_2 {
color: #fe434f;
}
.box_3 {
color: #15ca20;
}
.box_4 {
color: #ff9700;
}
.shadow {
-webkit-box-shadow: 0 0 10px #bfbfbf !important;
box-shadow: 0 0 10px #bfbfbf !important;
}
.progress-base {
height: 5px;
border-radius: 3px;
background-color: #e9ecef;
}
.progress-bar-1 {
height: 8px;
border-radius: 3px;
background: #17ead9;
background: -webkit-linear-gradient(45deg, #17ead9, #6078ea) !important;
background: linear-gradient(45deg, #17ead9, #6078ea) !important;
}
.progress-bar-2 {
height: 8px;
border-radius: 3px;
background: #f54ea2;
background: -webkit-linear-gradient(45deg, #f54ea2, #ff7676) !important;
background: linear-gradient(45deg, #f54ea2, #ff7676) !important;
}
.progress-bar-3 {
height: 8px;
border-radius: 3px;
background: #42e695;
background: -webkit-linear-gradient(45deg, #42e695, #3bb2b8) !important;
background: linear-gradient(45deg, #42e695, #3bb2b8) !important;
}
.progress-bar-4 {
height: 8px;
border-radius: 3px;
background: #ffdf40;
background: -webkit-linear-gradient(45deg, #ffdf40, #ff8359) !important;
background: linear-gradient(45deg, #ffdf40, #ff8359) !important;
}
.progress-bar-5 {
height: 8px;
border-radius: 3px;
background: #ffdf40;
background: -webkit-linear-gradient(45deg, #ffdf40, #ff8359) !important;
background: linear-gradient(45deg, #ffdf40, #ff8359) !important;
}
.progress-bar-6 {
height: 8px;
border-radius: 3px;
background: #ffdf40;
background: -webkit-linear-gradient(45deg, #ffdf40, #ff8359) !important;
background: linear-gradient(45deg, #ffdf40, #ff8359) !important;
}
.border-top {
border-top: 1px solid #efefef;
}
.chip_pending {
background: #ffdf40;
background: -webkit-linear-gradient(45deg, #ffdf40, #ff8359) !important;
background: linear-gradient(45deg, #ffdf40, #ff8359) !important;
}
.chip_completed {
background: #42e695;
background: -webkit-linear-gradient(45deg, #42e695, #3bb2b8) !important;
background: linear-gradient(45deg, #42e695, #3bb2b8) !important;
}

View File

@@ -0,0 +1,48 @@
import { computed, defineComponent, PropType, ref } from 'vue'
import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useI18n } from '../../boot/i18n'
import { shared_consts } from '@src/common/shared_vuejs'
import { costanti, IMainCard } from '@store/Modules/costanti'
import { tools } from '@store/Modules/tools'
export default defineComponent({
name: 'CDashGroup',
props: {},
setup(props) {
const userStore = useUserStore()
const $router = useRouter()
const globalStore = useGlobalStore()
const { t } = useI18n()
const calcstat = computed(() => userStore.my.calcstat ? userStore.my.calcstat : {
numUsersReg: 0,
numByTab: {},
})
const visustat = computed(() => {
// @ts-ignore
return costanti.GROUPCARDS.filter((rec: IMainCard) => rec.visuonstat)
})
const visulinks = computed(() => {
// @ts-ignore
return costanti.GROUPCARDS.filter((rec: IMainCard) => rec.link)
})
return {
userStore,
tools,
calcstat,
shared_consts,
visustat,
visulinks,
}
},
})

View File

@@ -0,0 +1,161 @@
<template>
<div class="q-ma-xs">
<div
v-if="tools.visualizzaHomeApp()"
class="row q-my-xs shadow"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
>
<!--<div class="col-md-3 col-lg-3 col-sm-12 col-xs-12 box_4" style="border-left: 1px solid #efefef;"
v-bind:class="{'border-top': $q.platform.is.mobile}">
<q-card class="no-shadow q-pa-sm">
<q-item class="q-pb-none q-pt-xs">
<q-item-section>
<q-item-label class="text-h4" style="font-weight: 500;letter-spacing: 3px;">{{
calcstat.numUsersReg
}}
</q-item-label>
<q-item-label :class="!$q.dark.isActive? 'text-grey-7':'text-white'" style="letter-spacing: 1px;">Persone Iscritte
</q-item-label>
</q-item-section>
<q-item-section side>
<q-icon name="o_people" class="box_4" size="60px"></q-icon>
</q-item-section>
</q-item>
<q-item class="q-py-xs" style="min-height: unset">
<q-item-section>
<div class="progress-base q-my-sm">
<div class="progress-bar-4" style="width:100%"></div>
</div>
</q-item-section>
</q-item>
</q-card>
</div>-->
<div
v-for="(rec, index) of visustat"
:class="`col-md-3 col-lg-3 col-sm-6 col-xs-6 text-` + rec.color"
style="border-left: 1px solid #efefef"
:key="index"
>
<q-card class="no-shadow q-pa-xs">
<q-item
class="q-pb-none q-pt-xs cursor-pointer"
:to="tools.updateLink(rec.to)"
>
<q-item-section>
<q-item-label
:class="
(!$q.dark.isActive ? 'text-grey-9' : 'text-white') +
` title_view_shadow`
"
style="letter-spacing: 1px"
>
{{ rec.title }}
</q-item-label>
<q-item-label
lines="3"
no-wrap
v-if="rec.subtitle"
:class="
(!$q.dark.isActive ? 'text-grey-8' : 'text-white') +
` title_view_subtitle`
"
>
<span v-html="rec.subtitle"></span>
</q-item-label>
</q-item-section>
<q-item-section
side
class="small_side"
style="right: 4px; position: absolute"
>
<q-img
v-if="rec.image"
:src="rec.image"
style="width: 27px"
></q-img>
<q-icon
v-else
:name="rec.icon"
:class="`text-` + rec.color"
size="27px"
></q-icon>
</q-item-section>
</q-item>
<q-item class="q-py-xs" style="min-height: unset">
<q-item-section>
<div class="progress-base q-my-sm">
<div
class="progress-base"
:style="tools.getbackgroundGradient(rec.color, 45)"
></div>
</div>
</q-item-section>
</q-item>
</q-card>
</div>
</div>
<div class="row shadow">
<div
v-for="(rec, index) of visulinks"
:class="`col-md-3 col-lg-3 col-sm-6 col-xs-6 text-` + rec.color"
style="border-left: 1px solid #efefef"
:key="index"
>
<q-card class="no-shadow q-pa-xxs">
<q-item
class="q-pb-none q-pt-xs cursor-pointer"
:to="tools.updateLink(rec.to)"
>
<q-item-section>
<q-item-label
lines="3"
:class="
(!$q.dark.isActive ? 'text-grey-9' : 'text-white') +
` title_view_small_shadow`
"
style="letter-spacing: 0.5px"
>
{{ rec.title }}
</q-item-label>
<q-item-label
v-if="rec.subtitle"
:class="
(!$q.dark.isActive ? 'text-grey-8' : 'text-white') +
` title_view_subtitle`
"
style="letter-spacing: 0.2px"
>
<span v-html="rec.subtitle"></span>
</q-item-label>
</q-item-section>
<q-item-section side>
<q-img
v-if="rec.image"
:src="rec.image"
style="width: 35px"
></q-img>
<q-icon
v-else
:name="rec.icon"
:class="`text-` + rec.color"
size="20px"
></q-icon>
</q-item-section>
</q-item>
</q-card>
</div>
</div>
</div>
</template>
<script lang="ts" src="./CDashGroup.ts">
</script>
<style lang="scss" scoped>
@import './CDashGroup.scss';
</style>

View File

@@ -0,0 +1 @@
export {default as CDashGroup} from './CDashGroup.vue'

View File

@@ -68,6 +68,7 @@ export default defineComponent({
const searchList_MyCircuits = ref(<ISearchList[]>[])
const searchList_Events = ref(<ISearchList[]>[])
const searchList_Hosp = ref(<ISearchList[]>[])
const searchList_Attivita = ref(<ISearchList[]>[])
const search = ref('')
const myrecfiltertoggle = ref(tools.FILTER_ALL)
@@ -101,13 +102,13 @@ export default defineComponent({
function updatefilter(value: any) {
if (value === tools.FILTER_MYREC) {
if (props.table === toolsext.TABMYGROUPS) {
if (props.table === shared_consts.TABLES_MYGROUPS) {
filtercustom.value = [{
'admins': {
$elemMatch: { username: { $eq: userStore.my.username } }
},
}]
} else if (props.table === toolsext.TABCIRCUITS) {
} else if (props.table === shared_consts.TABLES_CIRCUITS) {
filtercustom.value = [{
'admins': {
$elemMatch: { username: { $eq: userStore.my.username } }
@@ -119,7 +120,7 @@ export default defineComponent({
}
} else if (value === tools.FILTER_MYFOLLOW) {
if (props.table === toolsext.TABMYGROUPS) {
if (props.table === shared_consts.TABLES_MYGROUPS) {
}
} else {
@@ -140,13 +141,13 @@ export default defineComponent({
)
const mypagination = computed(() => {
if (props.table === toolsext.TABMYBACHECAS)
if (props.table === shared_consts.TABLES_MYBACHECAS)
return { sortBy: 'dateTimeStart', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 }
else if (props.table === toolsext.TABMYGROUPS)
else if (props.table === shared_consts.TABLES_MYGROUPS)
return { sortBy: 'date_created', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 10 }
else if (props.table === toolsext.TABMOVEMENTS)
return { sortBy: 'transactionDate', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 20 }
else if (props.table === toolsext.TABCIRCUITS)
else if (props.table === shared_consts.TABLES_CIRCUITS)
return { sortBy: 'numMembers', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 20 }
else if (props.table === toolsext.TABUSER)
return userStore.getMypaginationMembers()
@@ -159,78 +160,75 @@ export default defineComponent({
})
const searchList = computed(() => {
if (props.table === toolsext.TABMYGOODS)
if (props.table === shared_consts.TABLES_MYGOODS)
return searchList_Beni.value
else if (props.table === toolsext.TABMYSKILLS)
else if (props.table === shared_consts.TABLES_MYSKILLS)
return searchList_Servizi.value
else if (props.table === toolsext.TABMYGROUPS)
else if (props.table === shared_consts.TABLES_MYGROUPS)
return searchList_MyGroups.value
else if (props.table === toolsext.TABCIRCUITS)
else if (props.table === shared_consts.TABLES_CIRCUITS)
return searchList_MyCircuits.value
else if (props.table === toolsext.TABMYBACHECAS)
else if (props.table === shared_consts.TABLES_MYBACHECAS)
return searchList_Events.value
else if (props.table === toolsext.TABMYHOSPS)
else if (props.table === shared_consts.TABLES_MYHOSPS)
return searchList_Hosp.value
else if (props.table === shared_consts.TABLES_ATTIVITAS)
return searchList_Attivita.value
return searchList_Servizi.value
})
const showType = computed(() => {
if (props.table === toolsext.TABMYGOODS)
return costanti.SHOW_MYCARD
else if (props.table === toolsext.TABMYSKILLS)
return costanti.SHOW_MYCARD
else if (props.table === toolsext.TABMYGROUPS)
return costanti.SHOW_MYCARD
else if (props.table === toolsext.TABCIRCUITS)
return costanti.SHOW_MYCARD
return costanti.SHOW_MYCARD
})
const hint = computed(() => {
if (props.table === toolsext.TABMYGOODS)
if (props.table === shared_consts.TABLES_MYGOODS)
return 'digita il nome del Bene o del settore'
else if (props.table === toolsext.TABMYSKILLS)
else if (props.table === shared_consts.TABLES_MYSKILLS)
return 'digita il nome del Servizio o del settore'
else if (props.table === toolsext.TABMYGROUPS)
else if (props.table === shared_consts.TABLES_MYGROUPS)
return 'digita il nome del Gruppo'
else if (props.table === toolsext.TABCIRCUITS)
else if (props.table === shared_consts.TABLES_CIRCUITS)
return 'digita il nome della provincia'
else if (props.table === toolsext.TABMYBACHECAS)
else if (props.table === shared_consts.TABLES_MYBACHECAS)
return 'digita il nome dell\'Evento'
else if (props.table === toolsext.TABMYHOSPS)
else if (props.table === shared_consts.TABLES_MYHOSPS)
return 'digita delle parole da cercare nella descrizione dell\'Ospitalità'
else if (props.table === shared_consts.TABLES_ATTIVITAS)
return 'digita un\'attività da cercare nella descrizione dell\'Ospitalità'
return 'digita una parola da cercare'
})
const visuType = computed(() => {
if (props.table === toolsext.TABMYGOODS)
if (props.table === shared_consts.TABLES_MYGOODS)
return false
else if (props.table === toolsext.TABMYSKILLS)
else if (props.table === shared_consts.TABLES_MYSKILLS)
return false
else if (props.table === toolsext.TABMYGROUPS)
else if (props.table === shared_consts.TABLES_MYGROUPS)
return false
else if (props.table === toolsext.TABMYBACHECAS)
else if (props.table === shared_consts.TABLES_MYBACHECAS)
return false
return false // $q.screen.gt.xs
})
const noMsgRecord = computed(() => {
if (props.table === toolsext.TABMYGOODS)
if (props.table === shared_consts.TABLES_MYGOODS)
return 'Nessun Bene trovato con i filtri selezionati'
else if (props.table === toolsext.TABMYSKILLS)
else if (props.table === shared_consts.TABLES_MYSKILLS)
return 'Nessun Servizio trovato con i filtri selezionati'
else if (props.table === toolsext.TABMYGROUPS)
else if (props.table === shared_consts.TABLES_MYGROUPS)
return 'Nessun Gruppo trovato con i filtri selezionati'
else if (props.table === toolsext.TABCIRCUITS)
else if (props.table === shared_consts.TABLES_CIRCUITS)
return 'Nessun Circuito trovato con i filtri selezionati'
else if (props.table === toolsext.TABMYBACHECAS)
else if (props.table === shared_consts.TABLES_MYBACHECAS)
return 'Nessun Evento trovato con i filtri selezionati'
else if (props.table === toolsext.TABMYHOSPS)
else if (props.table === shared_consts.TABLES_MYHOSPS)
return 'Nessuna Ospitalità trovata con i filtri selezionati'
else if (props.table === shared_consts.TABLES_ATTIVITAS)
return 'Nessuna Attività trovata con i filtri selezionati'
return 'Nessun dato trovato con i filtri selezionati'
})
@@ -251,14 +249,14 @@ export default defineComponent({
col_footer.value = obj.col_footer
col_tabfooter.value = obj.col_tabfooter
if (props.table === toolsext.TABMYGROUPS) {
if (props.table === shared_consts.TABLES_MYGROUPS) {
myoptions.value = [
{ label: '🌎 Tutti', value: tools.FILTER_ALL },
{ label: '👤 Gruppi che Gestisci', value: tools.FILTER_MYREC },
// {label: 'Seguo', value: tools.FILTER_MYFOLLOW},
]
} else if (props.table === toolsext.TABCIRCUITS) {
} else if (props.table === shared_consts.TABLES_CIRCUITS) {
myoptions.value = [
{ label: '🌎 Tutti', value: tools.FILTER_ALL },
{ label: '👤 Circuiti che Gestisci', value: tools.FILTER_MYREC },
@@ -913,6 +911,47 @@ export default defineComponent({
},
]
searchList_Attivita.value = [
{
label: 'Regione',
table: 'regions',
key: 'idReg',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'regions', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
{
label: 'Provincia',
table: 'provinces',
key: 'idProvince',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'provinces', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: getFilterProvinceByRegion,
useinput: true,
icon: 'flag',
},
{
label: 'Comune',
table: 'cities',
key: 'idCity',
type: costanti.FieldType.select_by_server,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'cities', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
useinput: true,
filter: null,
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
},
]
searchList_MyGroups.value = [
{
label: 'Regione',

View File

@@ -154,7 +154,7 @@
<q-tooltip v-if="!maximizedToggle" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Maximize</q-tooltip>
</q-btn>
<q-btn dense flat icon="close" v-close-popup>
<q-tooltip :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Close</q-tooltip>
<q-tooltip :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">{{t('dialog.close')}}</q-tooltip>
</q-btn>
</q-bar>

View File

@@ -560,9 +560,9 @@ export default defineComponent({
item.value = costanti.FILTER_TUTTI
}
}
} else if (item.table === toolsext.TABCITIES) {
} else if (item.table === shared_consts.TAB_CITIES) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + item.table + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
let trovato = false
let arrvalues = []
if (rec) {
@@ -595,13 +595,13 @@ export default defineComponent({
keycookie += myrecfilt.keycookie
tools.setCookie(keycookie, newval)
if (table === toolsext.TABSKILLS) {
if (table === shared_consts.TABLES_MYSKILLS) {
const recSector = searchList.value.find((rec) => rec.table === 'sectors')
if (recSector) {
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + recSector.value, newval)
}
} else if (table === toolsext.TABSECTORS) {
setCategBySector(toolsext.TABSKILLS, table, newval)
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval)
} else if (table === toolsext.TABSECTORGOODS) {
setCategBySector(toolsext.TABGOODS, table, newval)
} else if (table === toolsext.TABREGIONS) {
@@ -612,8 +612,8 @@ export default defineComponent({
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
}
// setCategBySector('sectorgoods', table, newval)
} else if (table === toolsext.TABCITIES) {
const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist
} else if (table === shared_consts.TAB_CITIES) {
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
if (rec) {
if (rec.value === costanti.FILTER_TUTTI) {
globalStore.myselector.data = { _id: 0, comune: '' }
@@ -763,7 +763,7 @@ export default defineComponent({
}
if (searchList.value) {
recSkill = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSKILLS)
recSkill = searchList.value.find((item: ISearchList) => item.table === shared_consts.TABLES_MYSKILLS)
idSkill = recSkill ? recSkill.value : 0
// console.log('recSkill', idSkill)
}
@@ -891,7 +891,7 @@ export default defineComponent({
}
} else {
if ((item.table === toolsext.TABSKILLS) && item.value === costanti.FILTER_TUTTI) {
if ((item.table === shared_consts.TABLES_MYSKILLS) && item.value === costanti.FILTER_TUTTI) {
const obj2: any = {}
if (idSector > 0) {
@@ -1919,7 +1919,7 @@ export default defineComponent({
if (col.showonlyif_dipersona) {
const valori = myrec['idStatusSkill']
if (valori.length === 1 && valori.includes(shared_consts.STATUSSKILL_ONLINE)) {
if (valori && (valori.length === 1) && valori.includes(shared_consts.STATUSSKILL_ONLINE)) {
col.required = false
} else {
col.required = true

View File

@@ -348,7 +348,7 @@
<!--<q-radio v-if="mytable === toolsext.TAB" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP"
label="Scheda"
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
<q-radio v-else-if="mytable !== toolsext.TABMYGROUPS && !finder" v-model="myvertical"
<q-radio v-else-if="mytable !== shared_consts.TABLES_MYGROUPS && !finder" v-model="myvertical"
:val="costanti.VISUTABLE_SCHEDA_USER" slabel="Scheda"
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>-->
<q-radio
@@ -409,14 +409,14 @@
</div>
<CMyRecGrpCard
v-if="tablesel === toolsext.TABMYGROUPS"
v-if="tablesel === shared_consts.TABLES_MYGROUPS"
:table="tablesel"
:prop_myrec="row"
@cmdext="cmdExt"
>
</CMyRecGrpCard>
<CMyRecCircuitCard
v-else-if="tablesel === toolsext.TABCIRCUITS"
v-else-if="tablesel === shared_consts.TABLES_CIRCUITS"
:table="tablesel"
:prop_myrec="row"
@cmdext="cmdExt"
@@ -894,7 +894,7 @@
<!--<q-radio v-if="mytable === toolsext.TAB" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP"
label="Scheda"
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
<q-radio v-else-if="mytable !== toolsext.TABMYGROUPS && !finder" v-model="myvertical"
<q-radio v-else-if="mytable !== shared_consts.TABLES_MYGROUPS && !finder" v-model="myvertical"
:val="costanti.VISUTABLE_SCHEDA_USER" slabel="Scheda"
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>-->
<q-radio
@@ -1120,13 +1120,13 @@
class="dialog_annunci"
>
<CMyCardGrpPopup
v-if="mytable === toolsext.TABMYGROUPS"
v-if="mytable === shared_consts.TABLES_MYGROUPS"
:table="mytable"
:prop_myrec="myrecdialog"
>
</CMyCardGrpPopup>
<CMyCardCircuitPopup
v-else-if="mytable === toolsext.TABCIRCUITS"
v-else-if="mytable === shared_consts.TABLES_CIRCUITS"
:table="mytable"
:prop_myrec="myrecdialog"
>

View File

@@ -540,9 +540,9 @@ export default defineComponent({
item.value = costanti.FILTER_TUTTI
}
}
} else if (item.table === toolsext.TABCITIES) {
} else if (item.table === shared_consts.TAB_CITIES) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + item.table + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
let trovato = false
let arrvalues = []
if (rec) {
@@ -575,13 +575,13 @@ export default defineComponent({
keycookie += myrecfilt.keycookie
tools.setCookie(keycookie, newval)
if (table === toolsext.TABSKILLS) {
if (table === shared_consts.TABLES_MYSKILLS) {
const recSector = searchList.value.find((rec) => rec.table === 'sectors')
if (recSector) {
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
}
} else if (table === toolsext.TABSECTORS) {
setCategBySector(toolsext.TABSKILLS, table, newval)
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval)
} else if (table === toolsext.TABSECTORGOODS) {
setCategBySector(toolsext.TABGOODS, table, newval)
} else if (table === toolsext.TABREGIONS) {
@@ -592,8 +592,8 @@ export default defineComponent({
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
}
// setCategBySector('sectorgoods', table, newval)
} else if (table === toolsext.TABCITIES) {
const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist
} else if (table === shared_consts.TAB_CITIES) {
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
if (rec) {
if (rec.value === costanti.FILTER_TUTTI) {
globalStore.myselector.data = { _id: 0, comune: '' }
@@ -743,7 +743,7 @@ export default defineComponent({
}
if (searchList.value) {
recSkill = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSKILLS)
recSkill = searchList.value.find((item: ISearchList) => item.table === shared_consts.TABLES_MYSKILLS)
idSkill = recSkill ? recSkill.value : 0
// console.log('recSkill', idSkill)
}
@@ -856,7 +856,7 @@ export default defineComponent({
}
} else {
if ((item.table === toolsext.TABSKILLS) && item.value === costanti.FILTER_TUTTI) {
if ((item.table === shared_consts.TABLES_MYSKILLS) && item.value === costanti.FILTER_TUTTI) {
const obj2: any = {}
if (idSector > 0) {

View File

@@ -74,7 +74,7 @@
</div>
<CMyRecGrpCard
v-if="tablesel === toolsext.TABMYGROUPS"
v-if="tablesel === shared_consts.TABLES_MYGROUPS"
:table="tablesel"
:prop_myrec="row"
@cmdext="cmdExt"

View File

@@ -52,7 +52,7 @@ export default defineComponent({
const circuitStore = useCircuitStore()
const table = ref(toolsext.TABMYGROUPS)
const table = ref(shared_consts.TABLES_MYGROUPS)
const loadSaldo = ref(false)
const circuit = ref(<ICircuit | null | undefined>null)

View File

@@ -315,6 +315,17 @@ export default defineComponent({
return obj
}
function getTipodiAttivita() {
let obj = null
if (myrec.value.tipodiAttivita) {
obj = globalStore.getRecordByTableSingle(toolsext.TABTIPODIATTIVITA, myrec.value.tipodiAttivita)
if (obj)
return obj.label
}
return obj
}
function hasModifiedBooking() {
return (bookEventpage.value.bookedevent.numpeople !== bookEventForm.value.numpeople) ||
(bookEventpage.value.bookedevent.numpeopleLunch !== bookEventForm.value.numpeopleLunch) ||
@@ -645,6 +656,7 @@ export default defineComponent({
filter,
extraparams,
condividi,
getTipodiAttivita,
}
}
})

View File

@@ -29,7 +29,7 @@
@click.stop="tools.copyToClip($q, getlinkpage(), true)"
>
<q-item-section avatar>
<q-icon color="blue" name="fas fa-share" />
<q-icon color="blue" name="fas fa-share" />
</q-item-section>
<q-item-section>
{{ $t('reaction.condividi') }}
@@ -193,13 +193,7 @@
@click.stop="tools.copyToClip($q, getlinkpage(), true)"
>
</q-btn>
<q-btn
flat
round
color="blue"
icon="far fa-eye"
style="z-index: 1"
>
<q-btn flat round color="blue" icon="far fa-eye" style="z-index: 1">
<q-badge
v-if="myrec"
text-color="primary"
@@ -292,7 +286,19 @@
<q-separator />
<q-list style="z-index: 5">
<q-item>
<q-item v-if="myrec.tipodiAttivita">
<q-item-section avatar>
<q-icon color="blue" name="fas fa-balance-scale" />
</q-item-section>
<q-item-section>
<q-item-label class="text-bold text-h7">
<q-chip dense color="green" text-color="white"
>{{ getTipodiAttivita() }}
</q-chip>
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.adType">
<q-item-section avatar>
<div v-if="showBadge()" class="text-center">
<q-chip
@@ -305,17 +311,29 @@
</q-chip>
</div>
</q-item-section>
</q-item>
<q-item v-if="myrec.typeHosp">
<q-item-section avatar>
<q-icon color="blue" name="fas fa-balance-scale" />
</q-item-section>
<q-item-section>
<q-item-label v-if="myrec.typeHosp" class="text-bold text-h7">
<q-item-label class="text-bold text-h7">
<q-chip dense color="green" text-color="white"
>{{ getTypeHosps() }}
</q-chip>
</q-item-label>
<q-item-label class="text-bold text-h7">{{
myrec.descr
}}</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.nome_attivita">
<q-item-section>
<q-item-label class="text-bold text-h7">
{{ myrec.nome_attivita }}
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.descr">
<q-item-section>
<q-item-label class="text-h7">{{ myrec.descr }}</q-item-label>
</q-item-section>
</q-item>
<q-item
@@ -489,7 +507,9 @@
class="my-card clBorderUser"
bordered
@click="
naviga(tools.getPathByGroup(myrec.mygrp, toolsext.TABMYGROUPS))
naviga(
tools.getPathByGroup(myrec.mygrp, shared_consts.TABLES_MYGROUPS)
)
"
>
<CMyGroup
@@ -500,7 +520,10 @@
</CMyGroup>
</q-card>
<q-card
v-else-if="!myrec.organisedBy"
v-else-if="
!myrec.organisedBy &&
shared_consts.TABLES_VISU_LISTA_USER.includes(table)
"
class="my-card clBorderUser"
bordered
>
@@ -548,7 +571,13 @@
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.mycities && myrec.mycities.length > 0 && myrec.mycities[0].comune">
<q-item
v-if="
myrec.mycities &&
myrec.mycities.length > 0 &&
myrec.mycities[0].comune
"
>
<q-item-section avatar>
<q-icon color="amber" name="fas fa-map-marker-alt" />
</q-item-section>
@@ -591,11 +620,61 @@
<q-item-label lines="1">
<span
v-html="
tools.getlinkhref(myrec.website, 'Visita il Sito Web')
tools.getlinkhref(
myrec.website,
t('services.visit_website')
)
"
/></q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-if="myrec.email">
<q-item-section avatar>
<q-icon color="blue-grey-6" name="fas fa-envelope" />
</q-item-section>
<q-item-section>
<q-item-label lines="1">
<span
v-html="tools.getlinkEmail(myrec.email, t('services.email'))"
/></q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.telegram_username" clickable>
<q-item-section avatar>
<q-icon color="blue" name="telegram" />
</q-item-section>
<q-item-section>
<a
v-if="myrec.telegram_username"
:href="tools.getHttpForTelegram(myrec.telegram_username)"
target="_blank"
>@{{ myrec.telegram_username }}</a
>
</q-item-section>
</q-item>
<q-item clickable v-if="myrec.whatsapp">
<q-item-section avatar>
<q-icon color="green" name="fab fa-whatsapp" />
</q-item-section>
<q-item-section>
<q-item-label lines="1">
{{ myrec.whatsapp }}
</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-if="myrec.cell_phone">
<q-item-section avatar>
<q-icon color="green" name="fas fa-mobile-alt" />
</q-item-section>
<q-item-section>
<q-item-label lines="1">
<span> {{ myrec.cell_phone }}: </span>
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-if="
@@ -715,6 +794,12 @@
}}</a></span
></span
>
<span v-if="myrec.createdBy"
><br />{{ $t('services.createdBy') }}
<span class="text-bold"
><a :href="'my/' + createdBy">{{ createdBy }}</a></span
></span
>
</q-item-label>
</q-item-section>
</q-item>

View File

@@ -69,7 +69,7 @@ export default defineComponent({
const saldo_pend = computed(() => account.value ? account.value.saldo_pend : 0)
const saldo = computed(() => account.value ? account.value.saldo : 0)
const table = ref(toolsext.TABCIRCUITS)
const table = ref(shared_consts.TABLES_CIRCUITS)
const showingtooltip = ref(false)
const showrules = ref(false)

View File

@@ -31,6 +31,7 @@ import { CMainView } from '@src/components/CMainView'
import { CMyProfileTutorial } from '@src/components/CMyProfileTutorial'
import { CSendRISTo } from '@src/components/CSendRISTo'
import { CDashboard } from '@src/components/CDashboard'
import { CDashGroup } from '@src/components/CDashGroup'
import { CCheckAppRunning } from '@src/components/CCheckAppRunning'
import { CStatusReg } from '@src/components/CStatusReg'
import { CTitleBanner } from '@src/components/CTitleBanner'
@@ -60,7 +61,7 @@ export default defineComponent({
CMyProfileTutorial, CSendRISTo,
CTitleBanner, CShareSocial, CCheckAppRunning, CRegistration,
CVisuVideoPromoAndPDF, CECommerce, CCatalogo, CAITools,
CMapComuni, CMapUsers,
CMapComuni, CMapUsers, CDashGroup,
// , //CMapMarker,
},
emits: ['selElemClick'],

View File

@@ -464,6 +464,10 @@
<div v-if="editOn" class="elemEdit">CDashboard</div>
<CDashboard></CDashboard>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.DASHGROUP">
<div v-if="editOn" class="elemEdit">CDashGroup</div>
<CDashGroup></CDashGroup>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CSENDRISTO">
<div v-if="editOn" class="elemEdit">CSendRISTo</div>
<CSendRISTo></CSendRISTo>

View File

@@ -63,7 +63,7 @@ export default defineComponent({
const grp = ref(<IMyGroup | null>null)
const table = ref(toolsext.TABMYGROUPS)
const table = ref(shared_consts.TABLES_MYGROUPS)
const circuit = ref(<ICircuit | null | undefined>null)

View File

@@ -1,5 +1,6 @@
<template>
<div v-if="tools.isUserOk()">
<div v-if="grp">
<q-item class="q-my-sm" clickable>
<q-item-section

View File

@@ -62,7 +62,7 @@ export default defineComponent({
const grp = ref(<IMyGroup | null>null)
const table = ref(toolsext.TABMYGROUPS)
const table = ref(shared_consts.TABLES_MYGROUPS)
const circuit = ref(<ICircuit | null | undefined>null)

View File

@@ -399,7 +399,8 @@
>
</CAccomodation>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.image">
<div v-else-if="col.fieldtype === costanti.FieldType.image"
style="text-align: center">
<div v-if="canEdit">
{{ $t('reg.photo') }}
<CGallery

View File

@@ -131,9 +131,9 @@ export default defineComponent({
indstep: 0,
step: STEP_CITY,
title: t('tutorial.step_residence_title'),
extratitle: function () { return ': ' + contact.value!.profile.resid_province },
extratitle: function () { return ': ' + (contact.value!.profile.resid_province ? contact.value!.profile.resid_province : '') },
label: t('tutorial.step_residence'),
checkOk: function (): boolean { return contact.value ? contact.value.profile.resid_province !== '' && contact.value.profile.resid_province !== '0' : false },
checkOk: function (): boolean { return contact.value ? !!contact.value!.profile.resid_province && contact.value.profile.resid_province !== '' && contact.value.profile.resid_province !== '0' : false },
checkOkReal: function (): boolean { return this.checkOk() },
icon: 'house',
required: true,
@@ -158,7 +158,7 @@ export default defineComponent({
checkOk: function () {
if (mycircuit.value) {
return ((userStore.IsMyCircuitByName(mycircuit.value.name) ||
userStore.IsAskedCircuitByName(mycircuit.value.name))) || userStore.my.profile.noCircuit
userStore.IsAskedCircuitByName(mycircuit.value.name))) || (userStore.my.profile.noCircuit)
}
return false
},
@@ -199,6 +199,7 @@ export default defineComponent({
])
const numindstep = computed(() => arrStep.value.length)
watch(() => indstep.value, (newval: number, oldval: number) => {
if (indstep.value >= 0)
@@ -356,6 +357,8 @@ export default defineComponent({
if (indstep.value > numindstep.value)
indstep.value = numindstep.value
console.log('indstep.value', indstep.value)
// circuit.value = circuitStore.getCircuitByName(props.circuitname)
if (!userStore.my.profile.stepTutorial || userStore.my.profile.stepTutorial === 0) {

View File

@@ -460,7 +460,7 @@ export default defineComponent({
let myarr: any = []
// console.log(props.col.jointable, props.filter)
if (props.col.jointable) {
if (props && props.col && props.col.jointable) {
optionsreal.value = globalStore.getTableJoinByName(props.col.jointable, props.col.addall, props.col.addnone, props.filter)
// console.log('optionsreal.value', optionsreal.value)
} else {
@@ -547,8 +547,8 @@ export default defineComponent({
function filterFn(val: any, update: any, abort: any) {
update(
async () => {
// console.log('Filter val', val, val.length)
// console.log('props.filter_extra', props.filter_extra)
console.log('Filter val', val, val.length)
console.log('props.filter_extra', props.filter_extra)
let myarr: any = []

View File

@@ -81,7 +81,7 @@
table="users"
mykey="profile"
mysubkey="notif_cities"
:jointable="toolsext.TABCITIES"
:jointable="shared_consts.TAB_CITIES"
:type="costanti.FieldType.multiselect_by_server">
</CMyFieldDb>-->

View File

@@ -53,6 +53,15 @@
font-size: 0.75rem;
color: gray;
}
.subcat {
font-size: 1rem;
@media (max-width: 718px) {
font-size: 0.85rem;
}
}
.subcat_color {
color: green;
}
.label-qta{
font-size: 1.15rem;

View File

@@ -424,6 +424,15 @@ export default defineComponent({
$router.push(path)
}
function hasImage(): boolean {
if (!myproduct.value || !myproduct.value.productInfo) {
return false;
}
const { img, image_link } = myproduct.value.productInfo;
return ((!!img && img !== '') || (!!image_link && image_link !== ''))
}
onMounted(mounted)
onBeforeUnmount(beforeDestroy)
@@ -474,6 +483,7 @@ export default defineComponent({
isOrdineChiuso,
ricarica,
apriSchedaPDF,
hasImage,
}
}
})

View File

@@ -25,8 +25,8 @@
t('ecomm.not_active')
}}</span>
</div>
<q-card-section horizontal class="image-section">
<div class="image-container">
<q-card-section horizontal :class="'image-section'">
<div v-if="hasImage()" :class="hasImage() ? 'image-container' : ''">
<q-img
:src="myproduct.productInfo.img ? `` + myproduct.productInfo.img : myproduct.productInfo.image_link"
:alt="myproduct.productInfo.name"
@@ -217,6 +217,9 @@
<div class="product_code">
&nbsp; {{ t('ecomm.codice') }}: {{ myproduct.productInfo.code }}
</div>
<div v-if="myproduct.productInfo.subcatprods && myproduct.productInfo.subcatprods.length > 0" class="subcat">
<span style="color: #333333;">{{ t('ecomm.subcat') }}:</span> <span class="subcat_color">{{ myproduct.productInfo.subcatprods[0].name }}</span>
</div>
</div>
</q-card-section>
<q-card-section v-if="complete && myproduct.productInfo.description">

View File

@@ -150,7 +150,7 @@
<q-tooltip v-if="!maximizedToggle" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Maximize</q-tooltip>
</q-btn>
<q-btn dense flat icon="close" v-close-popup>
<q-tooltip :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Close</q-tooltip>
<q-tooltip :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">{{t('dialog.close')}}</q-tooltip>
</q-btn>
</q-bar>

View File

@@ -18,6 +18,7 @@
>
</CCheckCircuitsEnabled>
<q-select
v-if="!circuitname"
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"

View File

@@ -64,7 +64,7 @@ export default defineComponent({
const globalStore = useGlobalStore()
const userStore = useUserStore()
const table = ref(toolsext.TABMYSKILLS)
const table = ref(shared_consts.TABLES_MYSKILLS)
const col = ref(<IColGridTable>{})

View File

@@ -62,7 +62,7 @@ export default defineComponent({
const circuitStore = useCircuitStore()
const table = ref(toolsext.TABMYGROUPS)
const table = ref(shared_consts.TABLES_MYGROUPS)
const circuitsnational = ref(<any[]>[])

View File

@@ -13,7 +13,7 @@
img-class="imgprofile"
height="30px"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circuit))
naviga(tools.getPathByTableAndRec(shared_consts.TABLES_CIRCUITS, circuit))
"
/>
</q-avatar>
@@ -22,7 +22,7 @@
color="primary"
rounded
size="sm"
@click="naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circuit))"
@click="naviga(tools.getPathByTableAndRec(shared_consts.TABLES_CIRCUITS, circuit))"
>
{{ circuit.name }}
</q-btn>
@@ -50,7 +50,7 @@
img-class="imgprofile"
height="30px"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circnaz))
naviga(tools.getPathByTableAndRec(shared_consts.TABLES_CIRCUITS, circnaz))
"
/>
</q-avatar>
@@ -60,7 +60,7 @@
rounded
size="sm"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circnaz))
naviga(tools.getPathByTableAndRec(shared_consts.TABLES_CIRCUITS, circnaz))
"
>
{{ circnaz.name }}