Riso: Ris Italia, altre modifiche grafiche

Lista Utenti da Verificare
This commit is contained in:
Surya Paolo
2023-11-30 01:48:29 +01:00
parent fdf232b351
commit ee5235549e
42 changed files with 863 additions and 197 deletions

View File

@@ -34,6 +34,11 @@ export default defineComponent({
required: false,
default: false
},
flat: {
type: Boolean,
required: false,
default: false
},
numcol: {
type: Number,
required: false,

View File

@@ -1,7 +1,7 @@
<template>
<div class="q-ma-xs">
<div
class="row q-my-sm shadow"
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;"
@@ -85,13 +85,8 @@
</div>
</div>
<div class="row" style="margin-top: 4px important; font-size: 0.75rem">
&nbsp;
</div>
<div
class="row q-my-md shadow"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
class="row shadow"
>
<div
v-for="(rec, index) of visulinks"

View File

@@ -1,8 +1,7 @@
<template>
<div v-if="tools.isUserOk()">
<div
v-if="cardsbig.length > 0"
class="row q-ma-sm shadow justify-center"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
>
@@ -22,6 +21,7 @@
</CBigBtn>
</div>
<div
v-if="cardssmall.length > 0"
class="row shadow justify-center"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
>

View File

@@ -498,6 +498,7 @@ export default defineComponent({
name: 1,
surname: 1,
username: 1,
verified_by_aportador: 1,
'profile.handshake': 1,
'profile.img': 1,
'profile.mygroups': 1,

View File

@@ -1,10 +1,10 @@
<template>
<div>
<div v-if="mypathin && !!rec">
<q-toggle
<q-toggle
v-if="tools.isManager()"
style=" position:absolute;"
v-model="editOn"
dense
color="green"
size="sm"
@update:model-value="changeVisuDrawer(mypathin, editOn)"
@@ -41,7 +41,7 @@
</CMyEditElem>
</q-drawer>
<div class="q-ma-xs q-gutter-xs q-pa-xs">
<div class="q-gutter-xs" style="margin-left: 1px; margin-right: 1px;">
<div v-if="!!rec.img1" class="text-center">
<q-img :src="`` + rec.img1" class="img"></q-img>
</div>

View File

@@ -148,6 +148,13 @@
color="green"
>online</q-badge
>
<q-badge
v-if="!tools.isVerifiedByUser(row)"
align="bottom"
floating
color="red"
>Da Abilitare</q-badge
>
</q-avatar>
</q-item-section>
<q-item-section class="">

View File

@@ -15,6 +15,7 @@ import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CMyCircuit } from '@/components/CMyCircuit'
import { CMySelect } from '@/components/CMySelect'
import { CMyUserOnlyView } from '@/components/CMyUserOnlyView'
import { CMyUser } from '@/components/CMyUser'
import { CUserInfoAccount } from '@/components/CUserInfoAccount'
import { useI18n } from '@/boot/i18n'
import { useRoute, useRouter } from 'vue-router'
@@ -31,7 +32,8 @@ export default defineComponent({
name: 'CMyProfileTutorial',
components: {
CSendCoins, CSaldo, CUserInfoAccount,
CMySelectCity, CMyFieldRec, CSkill, CMyUserOnlyView, CTitleBanner, CMySelect, CMyFieldDb, CMyCircuit
CMySelectCity, CMyFieldRec, CMyUser,
CSkill, CMyUserOnlyView, CTitleBanner, CMySelect, CMyFieldDb, CMyCircuit
},
emits: ['setCmd'],
props: {
@@ -72,6 +74,8 @@ export default defineComponent({
const filtroutente = ref(<any[]>[])
const usersList = ref({ show: false, title: '', list: [] })
const stepTut = computed(() => userStore.my.profile.stepTutorial)
const noNameSurname = computed(() => userStore.my.profile.noNameSurname)
@@ -79,6 +83,10 @@ export default defineComponent({
return costanti.MAINCARDS.filter((rec: any) => shared_consts.TABLES_INSERT_ALMOST_ONE_TO_ENABLE_CIRCUIT.includes(rec.table))
})
const userstoverify = computed(() => {
return userStore.my.profile.userstoverify
})
const strProv = computed(() => {
if (contact.value && contact.value.profile.resid_province) {
@@ -542,6 +550,8 @@ export default defineComponent({
card,
askToConfirmSkipItalia,
circuititalia,
usersList,
userstoverify,
}
},
})

View File

@@ -206,9 +206,12 @@
<q-btn
:flat="isSalta(recstep.step)"
:disabled="isNextDisable()"
@click="(isSalta(recstep.step))
? askToConfirmSkip(recstep.step) :
((recstep.indstep === numindstep) ? clickFinish() : $refs.stepper.next())
@click="
isSalta(recstep.step)
? askToConfirmSkip(recstep.step)
: recstep.indstep === numindstep
? clickFinish()
: $refs.stepper.next()
"
:color="isSalta(recstep.step) ? 'negative' : 'primary'"
:label="
@@ -239,6 +242,27 @@
>
</q-btn>
<q-banner
inline-actions
class="bg-blue text-white"
v-if="userstoverify.length > 0"
>
<span v-html="$t('tutorial.utenti_da_verificare')"></span>
<template v-slot:action>
<q-btn
:label="userstoverify.length + ' ' + $t('tutorial.utenti_da_verif_btn')"
class="q-my-sm"
rounded
icon="fas fa-users"
@click="
usersList.show = true;
usersList.title = $t('tutorial.utenti_da_verif_btn');
"
>
</q-btn>
</template>
</q-banner>
<q-banner
inline-actions
class="bg-red text-white"
@@ -258,6 +282,27 @@
</q-banner>
</div>
</div>
<q-dialog v-model="usersList.show">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>
{{ usersList.title }}
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="inset-shadow">
<div v-for="(rec, i) in userstoverify" :key="i">
<CMyUser
:mycontact="rec"
:visu="costanti.ASK_TRUST"
@setCmd="tools.setCmd"
>
</CMyUser>
</div>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-model="showAccountInfo" full-height full-width>
<q-card v-if="true">
<q-toolbar class="bg-primary">

View File

@@ -779,12 +779,14 @@
v-if="contact.username !== userStore.my.username"
rounded
dense
:icon="
icon="fas fa-ellipsis-h"
:color="!contact.verified_by_aportador ? 'red' : 'white'"
>
<!-- </q-btn></q-btn>:icon="
userStore.IsMyFriendByUsername(contact.username)
? `fas fa-ellipsis-h`
: `fas fa-user`
"
>
"-->
<q-menu>
<q-list style="min-width: 200px">
<q-item

View File

@@ -511,11 +511,7 @@
<q-btn
v-if="contact.username !== userStore.my.username"
rounded
:icon="
userStore.IsMyFriendByUsername(contact.username)
? `fas fa-ellipsis-h`
: `fas fa-user`
"
icon="fas fa-ellipsis-h"
>
<q-menu>
<q-list style="min-width: 200px">

View File

@@ -31,13 +31,23 @@ export default defineComponent({
const circuitStore = useCircuitStore()
const $router = useRouter()
const shownotif = ref(false)
const { getImgByNotif, getNotifText, getTypeDirNotif, getTypeIdNotif } = MixinUsers()
const lasts_notifs_req = computed(() => notifStore.getnotifs_coinsreq())
const num_notifs = computed(() => lasts_notifs_req.value.length)
watch(() => num_notifs.value, (newval, oldval) => {
if (num_notifs.value === 1)
shownotif.value = true
else if (num_notifs.value === 0)
shownotif.value = false
})
function mounted() {
//
shownotif.value = num_notifs.value === 1
}
function clickNotif(notif: INotif) {
@@ -70,6 +80,7 @@ export default defineComponent({
num_notifs,
clickNotif,
userStore,
shownotif,
}
},
})

View File

@@ -1,55 +1,102 @@
<template>
<q-banner
v-if="num_notifs > 0"
rounded
dense
class="bg-primary text-white"
color="primary q-title"
style="text-align: center;">
<template v-slot:avatar>
<q-icon name="fas fa-exclamation-triangle" color="yellow" size="xs"/>
</template>
<q-item v-for="(notif, index) in lasts_notifs_req" :key="index">
<div class="q-ma-sm text-center">
<q-btn
v-if="num_notifs > 0"
:label="t('circuit.ris_in_arrivo') + (num_notifs > 1 ? (' (' + num_notifs + ' ' + t('circuit.transaz') + ')') : '')"
@click="shownotif = true"
icon="fas fa-coins"
rounded
color="primary"
></q-btn>
</div>
<!--<q-item-section avatar>
<q-dialog v-model="shownotif" :maximized="$q.screen.lt.sm">
<q-card class="dialog_card">
<q-bar class="bg-primary text-white">
{{ $t('circuit.receive_coins') }}
<q-space />
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-bar>
<q-card-section class="q-px-xs inset-shadow">
<q-banner
v-if="num_notifs > 0"
rounded
dense
class="bg-light-blue text-black"
color="primary q-title"
style="text-align: center"
>
<q-item v-for="(notif, index) in lasts_notifs_req" :key="index">
<!--<q-item-section avatar>
<q-avatar>
<q-item-label lines="1">{{ getTypeDirNotif(notif) }}</q-item-label>
</q-avatar>
</q-item-section>-->
<q-item-section avatar>
<q-avatar>
<img :src="notif.myimgsender" :alt="notif.sender">
</q-avatar>
</q-item-section>
<q-item-section avatar>
<q-avatar>
<img :src="notif.myimgsender" :alt="notif.sender" />
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label lines="5" :class="(!notif.read) ? 'unread' : 'read'" @click="clickNotif(notif)">
<div v-html="getNotifText($t, notif, false)"></div>
</q-item-label>
<q-item-label caption lines="18"
v-if="notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS && notif.status === shared_consts.CircuitsNotif.STATUS_NONE && notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ"
>
<div class="row no-wrap justify-evenly q-pa-sm">
<q-btn
size="md"
icon="fas fa-coins"
:disable="notif.disablecoinclick"
color="positive" :label="$t('circuit.accept_coins_qty', {qty: notif.extrarec.qty, symbol: notif.extrarec.symbol})"
@click="notif.disablecoinclick = true; tools.acceptCoins(q, notif.sender, notif)"
/>
<q-btn
size="md"
:disable="notif.disablecoinclick"
color="negative" :label="$t('circuit.refuse_coins_qty', {qty: notif.extrarec.qty, symbol: notif.extrarec.symbol})"
@click="notif.disablecoinclick = true; tools.refuseCoins(q, notif.sender, notif)"
/>
</div>
</q-item-label>
</q-item-section>
</q-item>
</q-banner>
<q-item-section>
<q-item-label
lines="5"
:class="!notif.read ? 'unread' : 'read'"
@click="clickNotif(notif)"
>
<div v-html="getNotifText($t, notif, false)"></div>
</q-item-label>
<q-item-label
caption
lines="18"
v-if="
notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS &&
notif.status === shared_consts.CircuitsNotif.STATUS_NONE &&
notif.typeid ===
shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ
"
>
<div class="row no-wrap justify-evenly q-pa-sm">
<q-btn
size="md"
icon="fas fa-coins"
:disable="notif.disablecoinclick"
color="positive"
:label="
$t('circuit.accept_coins_qty', {
qty: notif.extrarec.qty,
symbol: notif.extrarec.symbol,
})
"
@click="
notif.disablecoinclick = true;
tools.acceptCoins(q, notif.sender, notif);
"
/>
<q-btn
size="md"
:disable="notif.disablecoinclick"
color="negative"
:label="
$t('circuit.refuse_coins_qty', {
qty: notif.extrarec.qty,
symbol: notif.extrarec.symbol,
})
"
@click="
notif.disablecoinclick = true;
tools.refuseCoins(q, notif.sender, notif);
"
/>
</div>
</q-item-label>
</q-item-section>
</q-item>
</q-banner>
</q-card-section>
</q-card>
</q-dialog>
</template>
<script lang="ts" src="./CNotifAtTop.ts">

View File

@@ -4,6 +4,7 @@ import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useCircuitStore } from '../../store/CircuitStore'
import { useI18n } from '../../boot/i18n'
import { shared_consts } from '@src/common/shared_vuejs'
@@ -23,6 +24,7 @@ export default defineComponent({
const userStore = useUserStore()
const globalStore = useGlobalStore()
const circuitStore = useCircuitStore()
const { t } = useI18n()
const $q = useQuasar()
const $router = useRouter()
@@ -34,7 +36,10 @@ export default defineComponent({
const tipoConto = ref(costanti.AccountType.USER)
const loading = ref(false)
const circuitpath = computed(() => userStore.my.profile.last_circuitpath)
const circuitpath = computed(() => {
const circ = circuitStore.getCircuitByProvinceAndCard(userStore.my.profile.resid_province, userStore.my.profile.resid_card)
return circ && circ.path ? circ.path : ''
})
const contact = computed(() => userStore.my)

View File

@@ -1,15 +1,9 @@
<template>
<div class="row text-center justify-evenly items-center">
<CUserInfoAccount
:user="contact"
:circuitpath="circuitpath"
:admin="false"
:onlysaldo="true"
/>
<div class="q-mb-sm">
<q-btn
icon="fas fa-upload"
color="primary"
color="positive"
size="md"
rounded
:label="$t('circuit.sendcoins_toso')"
@@ -19,13 +13,21 @@
&nbsp;
<q-btn
icon="fas fa-download"
color="primary"
color="accent"
size="md"
rounded
:label="$t('circuit.receive_coins')"
@click="tools.receiveRis($q, $t)"
>
</q-btn>
<div class="q-mb-sm"></div>
<CUserInfoAccount
:user="contact"
:circuitpath="circuitpath"
:admin="false"
:onlysaldo="true"
/>
</div>
</div>
<q-dialog v-model="usersList.show">
@@ -83,7 +85,6 @@
<div
v-else-if="tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT"
>
<div v-for="(grp, i) in usersList.listgroup" :key="i">
<CMyGroup :mygrp="grp" :visu="costanti.USER_GROUPS" :noaut="true">
</CMyGroup>

View File

@@ -64,6 +64,8 @@ export default defineComponent({
const table = ref(toolsext.TABMYGROUPS)
const circuitsnational = ref(<any[]>[])
const circuit = ref(<ICircuit | null | undefined>null)
watch(() => props.user, (newval, oldval) => {
@@ -83,6 +85,8 @@ export default defineComponent({
circuit.value = circuitStore.getCircuitByPath(props.circuitpath)
}
circuitsnational.value = circuitStore.getCircuitsNational()
if (props.account) {
myaccount.value = props.account
} else {
@@ -138,6 +142,7 @@ export default defineComponent({
myaccount,
save,
toolsext,
circuitsnational,
}
},
})

View File

@@ -6,14 +6,22 @@
<q-separator />
<q-avatar v-if="userStore.getImgByCircuit(circuit)" size="30px">
<q-img
:src="userStore.getImgByCircuit(circuit)"
:alt="circuit.name"
img-class="imgprofile"
height="30px"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circuit))
"
/>
</q-avatar>
<q-btn
text-color="blue"
color="white"
class="shadow-5 q-mb-xs"
dense
flat
class="shadow-1 q-mb-xs q-mt-xs"
color="primary"
rounded
size="md"
size="sm"
@click="naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circuit))"
>
{{ circuit.name }}
@@ -29,6 +37,47 @@
>
</CSaldo>
<div v-if="onlysaldo">
<div v-for="(circnaz, ind) of circuitsnational" :key="ind">
<q-avatar v-if="userStore.getImgByCircuit(circnaz)" size="30px">
<q-img
:src="userStore.getImgByCircuit(circnaz)"
:alt="circuit.name"
img-class="imgprofile"
height="30px"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circnaz))
"
/>
</q-avatar>
<q-btn
class="shadow-1 q-mb-xs q-mt-xs"
color="primary"
rounded
size="sm"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circnaz))
"
>
{{ circnaz.name }}
</q-btn>
<CSaldo
v-if="tools.isUserOk() && circnaz.account"
:account="circnaz.account"
:symbol="circnaz.symbol"
:color="circnaz.color"
:saldo="circnaz.account.saldo_pend"
:qtarem="
myaccount
? circuitStore.getRemainingCoinsToSend(circnaz.account)
: 0
"
>
</CSaldo>
</div>
</div>
<q-card-section v-if="!onlysaldo">
<div v-if="myaccount.date_created" class="container">
<q-icon name="fas fa-lightbulb" class="iconcirc"></q-icon>