++Strette di Mano
This commit is contained in:
0
src/components/CContactUser/CContactUser.scss
Executable file
0
src/components/CContactUser/CContactUser.scss
Executable file
73
src/components/CContactUser/CContactUser.ts
Executable file
73
src/components/CContactUser/CContactUser.ts
Executable file
@@ -0,0 +1,73 @@
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from '@src/boot/i18n'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { defineComponent, PropType, ref } from 'vue'
|
||||
import { IUserFields } from 'model'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { CLabel } from '@/components/CLabel'
|
||||
import { CSendCoins } from '@/components/CSendCoins'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CContactUser',
|
||||
props: {
|
||||
myuser: {
|
||||
type: Object as PropType<IUserFields>,
|
||||
required: true,
|
||||
},
|
||||
showBtnActivities: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
components: { CLabel, CSendCoins },
|
||||
setup(props) {
|
||||
const $q = useQuasar()
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
const showsendCoinTo = ref(false)
|
||||
const showingtooltip = ref(false)
|
||||
|
||||
function myusername() {
|
||||
return userStore.my.username
|
||||
}
|
||||
|
||||
function getLinkUserTelegram() {
|
||||
|
||||
if (props.myuser) {
|
||||
if (!!props.myuser.profile.username_telegram) {
|
||||
return 'https://t.me/' + props.myuser.profile.username_telegram
|
||||
}
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
function getLinkWebSite() {
|
||||
if (props.myuser) {
|
||||
let mysite = props.myuser.profile.website!
|
||||
if (mysite) {
|
||||
if (!mysite.startsWith('http')) {
|
||||
mysite = 'https://' + mysite
|
||||
}
|
||||
}
|
||||
return mysite
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
tools,
|
||||
userStore,
|
||||
shared_consts,
|
||||
showsendCoinTo,
|
||||
getLinkUserTelegram,
|
||||
getLinkWebSite,
|
||||
myusername,
|
||||
showingtooltip,
|
||||
}
|
||||
},
|
||||
})
|
||||
119
src/components/CContactUser/CContactUser.vue
Executable file
119
src/components/CContactUser/CContactUser.vue
Executable file
@@ -0,0 +1,119 @@
|
||||
<template>
|
||||
<div class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
|
||||
<q-btn
|
||||
v-if="getLinkUserTelegram()"
|
||||
icon="fab fa-telegram"
|
||||
color="blue"
|
||||
:type="tools.isUserOk() ? 'a' : 'btn'"
|
||||
size="md"
|
||||
rounded
|
||||
:label="$t('msgs.telegrammsg')"
|
||||
:href="tools.isUserOk() ? getLinkUserTelegram() : null"
|
||||
@click="!tools.isUserOk() ? showingtooltip = !showingtooltip : false"
|
||||
target="__blank"
|
||||
>
|
||||
</q-btn>
|
||||
<div v-else-if="myuser.email" class="row">
|
||||
<CLabel
|
||||
v-bind="$attrs"
|
||||
:copy="true"
|
||||
:value="tools.isUserOk() ? myuser.email :''"
|
||||
:label="$t('reg.email')"
|
||||
/>
|
||||
|
||||
<q-btn
|
||||
outline
|
||||
icon="fas fa-envelope"
|
||||
:color="$q.dark.isActive ? `shite` : `black`"
|
||||
:type="tools.isUserOk() ? 'a' : 'btn'"
|
||||
size="md"
|
||||
:label="$t('msgs.send_email')"
|
||||
:href="tools.isUserOk() ? tools.getemailto(myuser.email) : null"
|
||||
@click="!tools.isUserOk() ? showingtooltip = !showingtooltip : false"
|
||||
target="__blank"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
|
||||
<q-btn
|
||||
v-if="
|
||||
userStore.getMyCircuitsInCommonByUser(myuser).length > 0 &&
|
||||
myuser.username !== myusername() &&
|
||||
userStore.my.profile.calc.numGoodsAndServices > 0
|
||||
"
|
||||
icon="fas fa-coins"
|
||||
color="green"
|
||||
size="md"
|
||||
rounded
|
||||
:label="$t('circuit.sendcoins')"
|
||||
@click="showsendCoinTo = true"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-if="myuser._id" class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
|
||||
<q-btn
|
||||
v-if="getLinkWebSite()"
|
||||
icon="fas fa-globe"
|
||||
color="blue"
|
||||
type="a"
|
||||
size="md"
|
||||
rounded
|
||||
:label="$t('reg.website')"
|
||||
:href="tools.isUserOk() ? getLinkWebSite() : null"
|
||||
@click="!tools.isUserOk() ? showingtooltip = !showingtooltip : false"
|
||||
target="__blank"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||
<div v-if="myuser._id" class="col-12">
|
||||
<q-btn
|
||||
v-if="myuser.username === myusername()"
|
||||
icon="fas fa-share-alt"
|
||||
color="blue"
|
||||
size="md"
|
||||
rounded
|
||||
:label="$t('reg.link_reg_and_msg')"
|
||||
@click="
|
||||
tools.sendMsgTelegramCmd(
|
||||
$q,
|
||||
$t,
|
||||
shared_consts.MsgTeleg.SHARE_MSGREG,
|
||||
true
|
||||
)
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-if="showBtnActivities" class="col-md-6 col-sm-6 q-ma-xs col-xs-12 text-center">
|
||||
|
||||
<q-btn
|
||||
icon="fas fa-house-user"
|
||||
size="md"
|
||||
color="orange"
|
||||
:label="$t('profile.myactivities')"
|
||||
:to="`/attivita/` + myuser.username"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<q-tooltip :offset="[10, 10]" v-model="showingtooltip">Per contattare la persona:<br>Accedi a RISO o Registrati</q-tooltip>
|
||||
<div v-if="showsendCoinTo">
|
||||
<CSendCoins
|
||||
:showprop="showsendCoinTo"
|
||||
:to_user="myuser"
|
||||
@close="showsendCoinTo = false"
|
||||
>
|
||||
</CSendCoins>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CContactUser.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CContactUser.scss';
|
||||
</style>
|
||||
1
src/components/CContactUser/index.ts
Executable file
1
src/components/CContactUser/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CContactUser} from './CContactUser.vue'
|
||||
@@ -8,6 +8,7 @@ import { CSkill } from '@/components/CSkill'
|
||||
import { CDateTime } from '@/components/CDateTime'
|
||||
import { CMyGroup } from '@/components/CMyGroup'
|
||||
import { CMyCircuit } from '@/components/CMyCircuit'
|
||||
import { CContactUser } from '@src/components/CContactUser'
|
||||
import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
||||
import { CTimeAgo } from '@src/components/CTimeAgo'
|
||||
import { CSendCoins } from '@/components/CSendCoins'
|
||||
@@ -36,7 +37,7 @@ export default defineComponent({
|
||||
components: {
|
||||
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
|
||||
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop, CCheckIfIsLogged,
|
||||
CTimeAgo
|
||||
CTimeAgo, CContactUser
|
||||
},
|
||||
props: {
|
||||
},
|
||||
@@ -59,7 +60,6 @@ export default defineComponent({
|
||||
const filtroutente = ref(<any[]>[])
|
||||
const showPic = ref(false)
|
||||
const caricato = ref(false)
|
||||
const showsendCoinTo = ref(false)
|
||||
|
||||
const myuser = ref(<IUserFields | null>null)
|
||||
|
||||
@@ -90,7 +90,7 @@ export default defineComponent({
|
||||
// Carica il profilo di quest'utente
|
||||
if (username.value) {
|
||||
await userStore.loadUserProfile({ username: username.value, idnotif: idnotif.value }).then((ris) => {
|
||||
console.log('loadUserProfile = ', ris)
|
||||
// console.log('loadUserProfile = ', ris)
|
||||
myuser.value = ris
|
||||
if (myuser.value) {
|
||||
filtroutente.value = [{ userId: myuser.value._id }]
|
||||
@@ -201,7 +201,6 @@ export default defineComponent({
|
||||
caricato,
|
||||
listgroupsfiltered,
|
||||
idnotif,
|
||||
showsendCoinTo,
|
||||
site,
|
||||
listcircuitsfiltered,
|
||||
optionsMainCards,
|
||||
|
||||
@@ -80,6 +80,8 @@
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<CContactUser :myuser="myuser" :showBtnActivities="false"/>
|
||||
|
||||
<CTitleBanner
|
||||
v-if="site.confpages.showCompetenze"
|
||||
class=""
|
||||
@@ -148,14 +150,6 @@
|
||||
<img :src="getImgUser()" :alt="username" class="full-width" />
|
||||
</q-dialog>
|
||||
|
||||
<div v-if="showsendCoinTo">
|
||||
<CSendCoins
|
||||
:showprop="showsendCoinTo"
|
||||
:to_user="myuser"
|
||||
@close="showsendCoinTo = false"
|
||||
>
|
||||
</CSendCoins>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -234,9 +234,9 @@
|
||||
@click="clickOnElem"
|
||||
>
|
||||
<q-video
|
||||
v-if="rec && !!rec.container"
|
||||
:src="rec.container"
|
||||
:ratio="rec.ratio"
|
||||
v-if="myel && !!myel.container"
|
||||
:src="myel.container"
|
||||
:ratio="myel.ratio"
|
||||
>
|
||||
</q-video>
|
||||
</div>
|
||||
|
||||
@@ -186,7 +186,7 @@ export default defineComponent({
|
||||
// Carica il profilo di quest'utente
|
||||
if (username.value) {
|
||||
spinner_visible.value = true
|
||||
userStore.loadFriends(username.value).then((ris) => {
|
||||
userStore.loadFriends().then((ris) => {
|
||||
// console.log('ris', ris)
|
||||
if (ris) {
|
||||
listTrusted.value = ris.listTrusted ? ris.listTrusted : []
|
||||
|
||||
Reference in New Issue
Block a user