- aggiunto anche nei beni, servizi e ospitalità la possibilità di aggiungerli come "Gruppo"

This commit is contained in:
Surya Paolo
2025-01-14 18:34:58 +01:00
parent 37970c5c91
commit 08a089881c
23 changed files with 484 additions and 94 deletions

View File

@@ -30,7 +30,7 @@ export default defineComponent({
name: 'mygroup',
components: {
CProfile, CTitleBanner, CMyFieldRec,
CInfoAccount, CSkill, CDateTime, CMyFriends, CGridTableRec, CMyUser, CCheckIfIsLogged,
CInfoAccount, CSkill, CDateTime, CMyFriends, CGridTableRec, CMyUser, CCheckIfIsLogged,
CNotifAtTop, CSendCoins
},
props: {},
@@ -43,6 +43,11 @@ export default defineComponent({
const { t } = useI18n()
const animation = ref('fade')
const tabevents = ref('new')
const mycards = computed(() => {
return costanti.MAINCARDS.filter((rec: any) => rec.table && rec.showinprofile)
})
const groupname = computed(() => $route.params.groupname ? $route.params.groupname.toString() : '')
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
@@ -53,6 +58,7 @@ export default defineComponent({
const showsendCoinTo = ref(false)
const tabcircuit = ref('info')
const filtro_eventi = ref(<any[]>[])
const mygrp = ref(<IMyGroup | null>{})
const mystatus = ref(<number>0)
@@ -106,7 +112,7 @@ export default defineComponent({
if (circuitslist.value) {
circuitslistOpt.value = []
for (let i = 0; i < circuitslist.value.length; i++) {
circuitslistOpt.value.push({label: circuitslist.value[i].name, value: i })
circuitslistOpt.value.push({ label: circuitslist.value[i].name, value: i })
let myc = data.mygroup.mycircuits.find((circ: IMyCircuit) => circ.circuitname === circuitslist.value[i].name)
if (myc) {
circuitslist.value[i].account = myc.account
@@ -140,6 +146,7 @@ export default defineComponent({
arrfilterand.value = []
filtercustom_rich.value = []
//++TODO: sistemare la filtercustom ... richieste...
}
@@ -213,11 +220,34 @@ export default defineComponent({
}
}
function filtroeventsgroup() {
function filtrotables(table: string, quale: string) {
let out = []
if (mygrp.value)
return [{ groupname: mygrp.value.groupname }]
else
return null
out.push({ groupname: mygrp.value.groupname })
if (table === shared_consts.TABLES_MYBACHECAS) {
let mydate = tools.addDays(tools.getDateNow(), -1)
let mydateend = tools.addDays(mydate, 180)
mydate = tools.getstrYYMMDDDate(mydate)
mydateend = tools.getstrYYMMDDDate(mydateend)
if (quale === 'new') {
filtro_eventi.value = [{ dateTimeStart: { $gte: mydate, $lte: mydateend } }]
} else {
mydate = tools.addDays(tools.getDateNow(), -365)
mydateend = tools.addDays(tools.getDateNow(), 0)
mydate = tools.getstrYYMMDDDate(mydate)
mydateend = tools.getstrYYMMDDDate(mydateend)
filtro_eventi.value = [{ dateTimeStart: { $gte: mydate, $lte: mydateend } }]
}
filtro_eventi.value.forEach((rec: any) => [
out.push({ ...rec })
])
}
return out
}
function getlinkpage() {
@@ -270,9 +300,11 @@ export default defineComponent({
tabcircuit,
circuitIndex,
circuitslistOpt,
filtroeventsgroup,
filtrotables,
getlinkpage,
showsendCoinTo,
mycards,
tabevents,
}
}
})

View File

@@ -204,6 +204,11 @@
name="members"
icon="fas fa-users"
></q-tab>
<q-tab
:label="t('profile.annunci')"
name="annunci"
icon="fas fa-pencil-alt"
></q-tab>
<q-tab
v-if="
tools.iCanShowGroupsMember(mygrp) ||
@@ -213,11 +218,6 @@
name="circuits"
icon="img: images/1ris_rosso_100.png"
></q-tab>
<q-tab
:label="t('groups.events')"
name="events"
icon="fas fa-bullhorn"
></q-tab>
</q-tabs>
<q-tab-panels v-model="tabgrp" animated keep-alive>
@@ -511,7 +511,7 @@
></q-tab>
</q-tabs>
</q-tab-panel>
<q-tab-panel name="events"></q-tab-panel>
<q-tab-panel name="annunci"></q-tab-panel>
</q-tab-panels>
<div v-if="tabgrp === 'circuits' && tabcircuit === 'info'">
@@ -604,17 +604,59 @@
></CGridTableRec>
</div>
</div>
<div v-if="tabgrp === 'events'">
<CSkill
v-if="filtroeventsgroup()"
:groupname="mygrp.groupname"
:table="shared_consts.TABLES_MYBACHECAS"
:filtercustom="filtroeventsgroup()"
:butt_modif_new="tools.iAmAdminGroup(groupname)"
:visuinpage="true"
:noaut="false"
:title="$t('groups.events')"
/>
<div v-if="tabgrp === 'annunci'">
<div v-for="(card, ind) of mycards" :key="ind" :name="card.table">
<div
v-if="card.table !== 'mygroups' && card.table !== 'circuits'"
>
<div
v-if="card.table !== 'mygroups' && card.table !== 'circuits'"
>
<div v-if="card.table === shared_consts.TABLES_MYBACHECAS">
<q-tabs v-model="tabevents" class="text-teal">
<q-tab label="Eventi Passati" name="past"></q-tab>
<q-tab label="Prossimi Eventi" name="new"></q-tab>
</q-tabs>
<q-tab-panels v-model="tabevents" animated>
<q-tab-panel name="past">
<CSkill
:groupname="mygrp.groupname"
:table="card.table"
:filtercustom="filtrotables(card.table, tabevents)"
:butt_modif_new="tools.iAmAdminGroup(groupname)"
:visuinpage="true"
:noaut="false"
:title="card.title"
/>
</q-tab-panel>
<q-tab-panel name="new">
<CSkill
:groupname="mygrp.groupname"
:table="card.table"
:filtercustom="filtrotables(card.table, tabevents)"
:butt_modif_new="tools.iAmAdminGroup(groupname)"
:visuinpage="true"
:noaut="false"
:title="card.title"
/>
</q-tab-panel>
</q-tab-panels>
</div>
<div v-else>
<CSkill
:groupname="mygrp.groupname"
:table="card.table"
:filtercustom="filtrotables(card.table, '')"
:butt_modif_new="tools.iAmAdminGroup(groupname)"
:visuinpage="true"
:noaut="false"
:title="card.title"
/>
</div>
</div>
</div>
</div>
</div>
<div v-if="tabgrp === 'members' && tabmembers === 'all'">
<CGridTableRec
@@ -687,7 +729,7 @@
</q-dialog>
</div>
</div>
<div v-if="showsendCoinTo">
<div v-if="showsendCoinTo">
<CSendCoins
:showprop="showsendCoinTo"
:to_group="mygrp"
@@ -695,9 +737,7 @@
@close="showsendCoinTo = false"
>
</CSendCoins>
</div>
</div>
</template>
<script lang="ts" src="./mygroup.ts">