Aggiornamenti Flotta, Nave, Dashboard, Tabelle, Popupmenu
This commit is contained in:
@@ -145,6 +145,12 @@ export default class CGridTableRec extends Vue {
|
||||
this.colsel = col
|
||||
this.idsel = row._id
|
||||
this.SaveValue(newval, valinitial)
|
||||
|
||||
// this.rowclicksel = null
|
||||
}
|
||||
|
||||
public annulla(val) {
|
||||
// this.rowclicksel = null
|
||||
}
|
||||
|
||||
public SaveValue(newVal, valinitial) {
|
||||
|
||||
@@ -185,7 +185,8 @@
|
||||
:subfield="mycol.subfield"
|
||||
@save="SaveValdb"
|
||||
@show="selItem(rowclicksel, mycol)"
|
||||
@showandsave="showandsel">
|
||||
@showandsave="showandsel"
|
||||
@annulla="annulla">
|
||||
|
||||
</CMyPopupEdit>
|
||||
</div>
|
||||
|
||||
@@ -61,6 +61,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
public ind_order_ingr: number = -1
|
||||
public myrigaattuale: number = 0
|
||||
public mycolattuale: number = 0
|
||||
public upgrade_graduatorie: boolean = false
|
||||
public dashboard: IDashboard = {
|
||||
myself: DefaultUser,
|
||||
aportador: DefaultUser,
|
||||
@@ -136,6 +137,8 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
this.loading = true
|
||||
|
||||
this.upgrade_graduatorie = tools.getValDb('UPDATE_GRAD', false, false)
|
||||
|
||||
UserStore.actions.getDashboard({ username: this.myusername })
|
||||
.then((ris) => {
|
||||
this.dashboard = ris
|
||||
@@ -144,7 +147,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
this.invitante_username = this.dashboard.myself.username
|
||||
|
||||
this.myrigaattuale = this.dashboard.lastnave.riga
|
||||
this.mycolattuale = this.dashboard.lastnave.col
|
||||
this.mycolattuale = this.dashboard.lastnave.col + 8
|
||||
|
||||
this.loading = false
|
||||
})
|
||||
@@ -250,11 +253,13 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public colordono(mianave) {
|
||||
if (mianave.made_gift) {
|
||||
if (mianave.made_gift)
|
||||
return 'green'
|
||||
} else {
|
||||
else if (!!mianave.date_made_gift)
|
||||
return 'blue'
|
||||
else
|
||||
return 'grey'
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public getposizioneattuale(mianave, totali) {
|
||||
@@ -273,7 +278,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
})
|
||||
this.shownuovoviaggio = false
|
||||
}
|
||||
|
||||
|
||||
public addNuovoImbarco() {
|
||||
this.NuovoImbarco(this.dashboard.myself.username, this.invitante_username)
|
||||
}
|
||||
@@ -288,7 +293,15 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
public getnuminvperc(index, myrec) {
|
||||
|
||||
return myrec.invattivi / 2 * 100
|
||||
let val1 = Math.round((myrec.numinvitatiattiviTot - myrec.numNaviEntrato * 2) - (myrec.indimbarco - 1) * 2)
|
||||
if (val1 < 0)
|
||||
val1 = 0
|
||||
|
||||
let valmax = val1;
|
||||
if (valmax < 2)
|
||||
valmax = 2
|
||||
|
||||
return val1 / valmax * 100
|
||||
}
|
||||
|
||||
public getcolorinvitati(index, myrec) {
|
||||
@@ -355,7 +368,14 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public getvalstrinv(posiz) {
|
||||
return Math.round((posiz.numinvitatiattiviTot - posiz.numNaviEntrato * 2) - (posiz.indimbarco - 1) * 2) + '/' + Math.round((posiz.numinvitatiTot - posiz.numNaviEntrato * 2) - (posiz.indimbarco - 1) * 2)
|
||||
let val1 = Math.round((posiz.numinvitatiattiviTot - posiz.numNaviEntrato * 2) - (posiz.indimbarco - 1) * 2)
|
||||
let val2 = Math.round((posiz.numinvitatiTot - posiz.numNaviEntrato * 2) - (posiz.indimbarco - 1) * 2)
|
||||
if (val1 < 0)
|
||||
val1 = 0
|
||||
if (val2 < 0)
|
||||
val2 = 0
|
||||
|
||||
return val1 + '/' + val2
|
||||
}
|
||||
|
||||
public isprovvisoria(mianave) {
|
||||
@@ -379,6 +399,14 @@ export default class CMyDashboard extends MixinUsers {
|
||||
tools.saveFieldToServer(this, 'navi', mianave._id, mydata)
|
||||
}
|
||||
|
||||
public change_mynote_imbarco(mioimbarco) {
|
||||
|
||||
const mydata = {
|
||||
note: mioimbarco.note
|
||||
}
|
||||
tools.saveFieldToServer(this, 'listaingressos', mioimbarco._id, mydata)
|
||||
}
|
||||
|
||||
public getNaveSognatoreStr(mianave) {
|
||||
const mynavedest = tools.getfirstnaveSognatore(mianave.riga, mianave.col)
|
||||
const ris = mynavedest.riga + '.' + mynavedest.col
|
||||
@@ -440,7 +468,19 @@ export default class CMyDashboard extends MixinUsers {
|
||||
return val - tools.getRiganave(mianave.riga) + 1
|
||||
}
|
||||
|
||||
public getposiz(posiz) {
|
||||
|
||||
if (posiz.posiz === 100000) {
|
||||
return '-----'
|
||||
} else {
|
||||
return posiz.posiz + ' su ' + posiz.totposiz + '°'
|
||||
}
|
||||
}
|
||||
|
||||
public getcolornave(mianave) {
|
||||
if (this.isprovvisoria(mianave)) {
|
||||
return 'grey'
|
||||
}
|
||||
if (mianave.num_tess % 2 !== 0)
|
||||
return 'blue'
|
||||
else
|
||||
|
||||
@@ -159,8 +159,15 @@
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<div v-if="upgrade_graduatorie">
|
||||
<CRequisiti :statebool="false"
|
||||
msgTrue=""
|
||||
msgFalse="Aggiornamento in Corso - Updating in Progress - Reload Page Please">
|
||||
</CRequisiti>
|
||||
|
||||
<div v-if="!!dashboard && dashboard.myself && !loading">
|
||||
</div>
|
||||
|
||||
<div v-if="!!dashboard && dashboard.myself && !loading & !upgrade_graduatorie">
|
||||
<div>
|
||||
<div v-if="!Completato9Req && !HasNave">
|
||||
<CTitleBanner icon="person" :canopen="true" class="q-pa-xs text-center"
|
||||
@@ -183,11 +190,14 @@
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
<div class="row justify-between items-center" style="text-align: center;">
|
||||
<div class="col-3 ">
|
||||
<div class="col-2 ">
|
||||
{{ $t('dashboard.posizione') }}
|
||||
</div>
|
||||
<div class="col-1 ">
|
||||
<q-icon color="blue" name="fas fa-ship"></q-icon>
|
||||
</div>
|
||||
<div class="col-2 ">
|
||||
{{ $t('dashboard.data') }}
|
||||
{{ $t('dashboard.data_rich') }}
|
||||
</div>
|
||||
<div class="col-3 ">
|
||||
{{ $t('dashboard.invitante') }}
|
||||
@@ -206,12 +216,13 @@
|
||||
<!--<div class="col-2">
|
||||
<div class="posizione_imbarco">{{ index }}</div>
|
||||
</div>-->
|
||||
<div class="col-3">
|
||||
<div class="posizione_imbarco">{{ mioimbarco.posiz.posiz }}° su {{
|
||||
mioimbarco.posiz.totposiz }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="posizione_imbarco">{{getposiz(mioimbarco.posiz) }}</div>
|
||||
</div>
|
||||
<div class="col-1 text-center">
|
||||
<div class="boldhigh">{{ mioimbarco.navestr }}</div>
|
||||
</div>
|
||||
<div class="col-2 text-center">
|
||||
<div>{{ tools.getstrshortDate(mioimbarco.date_added) }}</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
@@ -247,6 +258,26 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-width">
|
||||
<q-item>
|
||||
<q-item-section avatar>
|
||||
<q-icon size="sm" name="fas fa-heart" color="red"></q-icon>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-item-label>
|
||||
|
||||
<q-input v-model="mioimbarco.note" :label="$t('reg.my_dream')"
|
||||
rounded outlined
|
||||
debounce="1000"
|
||||
autogrow
|
||||
dense
|
||||
style="font-size:0.75rem;"
|
||||
@input="change_mynote_imbarco(mioimbarco)">
|
||||
</q-input>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -339,7 +370,8 @@
|
||||
icon="fas fa-ship">
|
||||
{{ $t('dashboard.nave_in_partenza') + ' ' + datagiftchat(mianave) }}
|
||||
</q-chip>
|
||||
<q-chip v-if="datagiftchat(mianave) !== datanave(mianave)" class="glossy q-mx-md" color="blue" text-color="white"
|
||||
<q-chip v-if="datagiftchat(mianave) !== datanave(mianave)" class="glossy q-mx-md" color="blue"
|
||||
text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ $t('dashboard.nave_in_chiusura') + ' ' + datanave(mianave) }}
|
||||
</q-chip>
|
||||
@@ -417,7 +449,16 @@
|
||||
<div v-if="mianave.made_gift">
|
||||
<q-chip class="glossy"
|
||||
size="md"
|
||||
text-color="green"
|
||||
color="green"
|
||||
text-color="white"
|
||||
icon="fas fa-gift">
|
||||
{{ $t('steps.dono') + ' ' + $t('dashboard.dono_ricevuto_2') }} !
|
||||
</q-chip>
|
||||
</div>
|
||||
<div v-else-if="!!mianave.date_made_gift">
|
||||
<q-chip class=""
|
||||
size="md"
|
||||
text-color="blue"
|
||||
color="white"
|
||||
icon="fas fa-gift">
|
||||
{{ $t('dashboard.ho_effettuato_il_dono') }}
|
||||
@@ -426,7 +467,7 @@
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="mianave.num_tess % 2 !== 0">
|
||||
<q-item v-if="(mianave.num_tess % 2 !== 0) && !isprovvisoria(mianave)">
|
||||
<q-item-section avatar>
|
||||
<q-icon size="sm" name="fas fa-heart" color="red"></q-icon>
|
||||
</q-item-section>
|
||||
@@ -546,7 +587,8 @@
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="getIfregalareInvitati(seluser, showregalainv)"
|
||||
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser"
|
||||
:showregalainv="getIfregalareInvitati(seluser, showregalainv)"
|
||||
:mydashboard="dashboard" :mydownline="downline" :notitle="false" @aggiorna="aggiorna"
|
||||
:ind_order_ingr="ind_order_ingr">
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ export default class CMyEditor extends Vue {
|
||||
public myvalue = ''
|
||||
public mycolor = ''
|
||||
|
||||
public showeditor: boolean = true
|
||||
|
||||
public myfonts = {
|
||||
arial: 'Arial',
|
||||
arial_black: 'Arial Black',
|
||||
@@ -98,6 +100,20 @@ export default class CMyEditor extends Vue {
|
||||
this.$emit('update:value', newval)
|
||||
}
|
||||
|
||||
public annulla() {
|
||||
this.$emit('annulla', true)
|
||||
}
|
||||
public saveval() {
|
||||
// Converti i <b> in <strong>
|
||||
|
||||
this.myvalue = tools.convertiTagHTMLPerBOT(this.myvalue)
|
||||
|
||||
console.log('saveval', this.myvalue)
|
||||
this.$emit('showandsave', this.myvalue)
|
||||
// this.$emit('update:value', this.myvalue)
|
||||
this.showeditor = false
|
||||
}
|
||||
|
||||
public mounted() {
|
||||
this.myvalue = this.value
|
||||
this.editor = this.$refs.editor_ref
|
||||
|
||||
@@ -1,39 +1,56 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner :title="title"></CTitleBanner>
|
||||
<form
|
||||
autocorrect="off"
|
||||
autocapitalize="off"
|
||||
autocomplete="off"
|
||||
spellcheck="false">
|
||||
<div>
|
||||
<q-dialog v-model="showeditor">
|
||||
<q-card :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
|
||||
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
|
||||
<q-toolbar-title>
|
||||
Editor
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup @click="showeditor=false"></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
|
||||
<CTitleBanner :title="title"></CTitleBanner>
|
||||
<form
|
||||
autocorrect="off"
|
||||
autocapitalize="off"
|
||||
autocomplete="off"
|
||||
spellcheck="false">
|
||||
|
||||
<q-btn rounded size="sm" color="primary">
|
||||
<q-icon name="colorize" class="cursor-pointer">
|
||||
<q-popup-proxy>
|
||||
<q-color v-model="mycolor" @change="setcolor"></q-color>
|
||||
</q-popup-proxy>
|
||||
</q-icon>
|
||||
<q-icon name="colorize" class="cursor-pointer">
|
||||
<q-popup-proxy>
|
||||
<q-color v-model="mycolor" @change="setcolor"></q-color>
|
||||
</q-popup-proxy>
|
||||
</q-icon>
|
||||
</q-btn>
|
||||
<q-editor
|
||||
ref="editor_ref"
|
||||
toolbar-text-color="white"
|
||||
toolbar-toggle-color="yellow-8"
|
||||
toolbar-bg="primary"
|
||||
:toolbar="toolbarcomp"
|
||||
debounce="500"
|
||||
:fonts="myfonts"
|
||||
@input="changeval"
|
||||
@paste.native="evt => pasteCapture(evt)"
|
||||
@keyup.enter.stop
|
||||
v-model="myvalue">
|
||||
ref="editor_ref"
|
||||
toolbar-text-color="white"
|
||||
toolbar-toggle-color="yellow-8"
|
||||
toolbar-bg="primary"
|
||||
:toolbar="toolbarcomp"
|
||||
debounce="500"
|
||||
:fonts="myfonts"
|
||||
@input="changeval"
|
||||
@paste.native="evt => pasteCapture(evt)"
|
||||
@keyup.enter.stop
|
||||
v-model="myvalue">
|
||||
</q-editor>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn flat :label="$t('dialog.ok')" color="primary" @click="saveval"></q-btn>
|
||||
<q-btn flat :label="$t('dialog.cancel')" color="primary" v-close-popup @click="annulla"></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMyEditor.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CMyEditor.scss';
|
||||
@import './CMyEditor.scss';
|
||||
</style>
|
||||
|
||||
12
src/components/CMyFlotta/CMyFlotta-validate.ts
Executable file
12
src/components/CMyFlotta/CMyFlotta-validate.ts
Executable file
@@ -0,0 +1,12 @@
|
||||
import { ISignupOptions } from 'model'
|
||||
import { email, minLength, required, sameAs } from 'vuelidate/lib/validators'
|
||||
// import { ValidationRuleset } from 'vuelidate'
|
||||
import { aportadorexist } from '../../validation'
|
||||
|
||||
export const validations = {
|
||||
|
||||
username_sostituire: {
|
||||
aportadorexist,
|
||||
required
|
||||
}
|
||||
}
|
||||
174
src/components/CMyFlotta/CMyFlotta.scss
Executable file
174
src/components/CMyFlotta/CMyFlotta.scss
Executable file
@@ -0,0 +1,174 @@
|
||||
|
||||
.title-nave {
|
||||
padding: 2px 4px;
|
||||
margin: 2px 4px;
|
||||
color: white;
|
||||
font-size: 1rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.donatore, .mediatore, .sognatore, .intermedio1, .intermedio2, .intermedio4, .intermedio5{
|
||||
color: white;
|
||||
background-color: lightblue;
|
||||
padding: 1px 2px;
|
||||
margin: 1px 2px;
|
||||
font-size: 0.8rem;
|
||||
border-radius: 32px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
max-width: 200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.intermedio1{
|
||||
background-color: indigo;
|
||||
}
|
||||
.intermedio2{
|
||||
background-color: blue;
|
||||
}
|
||||
.intermedio4{
|
||||
background-color: yellow;
|
||||
color: black;
|
||||
}
|
||||
.intermedio5{
|
||||
background-color: orange;
|
||||
}
|
||||
|
||||
.tutor{
|
||||
|
||||
}
|
||||
|
||||
.selezione:hover {
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
.donatore {
|
||||
background-color: red;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.mediatore {
|
||||
background-color: green;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.sognatore {
|
||||
background-color: purple;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
||||
.cont_donatore, .cont_sognatore, .cont_mediatore, .cont_tragitto, .cont_pos, .cont_intestaz, .cont_pos_intest, .cont_intestaz_small {
|
||||
border: solid 2px #4198ef;
|
||||
padding: 2px 8px;
|
||||
margin: 2px 4px;
|
||||
font-size: 1rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.cont_donatore {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.you {
|
||||
background-color: yellow;
|
||||
}
|
||||
.issognatore {
|
||||
background-color: orangered;
|
||||
color: white;
|
||||
font-size: 1.10rem;
|
||||
border-radius: 64px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.cont_tragitto{
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.cont_pos, .cont_pos_intest{
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
border-radius: 64px !important;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.cont_pos_intest {
|
||||
width: 37px;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.extra{
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.passo{
|
||||
font-weight: bold;
|
||||
width: 110px;
|
||||
}
|
||||
.passoint{
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.gift{
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.cont_intestaz, .cont_intestaz_small{
|
||||
font-size: 0.75rem;
|
||||
margin: 4px;
|
||||
border-radius: 16px !important;
|
||||
|
||||
}
|
||||
|
||||
.cont_intestaz_small{
|
||||
margin: 0;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.title-nave {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.titlenave{
|
||||
width: 75px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.datanave{
|
||||
width: 80px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.datanave_int{
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dati {
|
||||
color: blue;
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.mancanti {
|
||||
color: red;
|
||||
|
||||
}
|
||||
.inviati {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.pan_sognatore {
|
||||
padding: 0px 0px;
|
||||
}
|
||||
|
||||
.ricevuti{
|
||||
color: green;
|
||||
}
|
||||
|
||||
.title-nave {
|
||||
font-size: 1.25rem;
|
||||
color: blue;
|
||||
}
|
||||
166
src/components/CMyFlotta/CMyFlotta.ts
Executable file
166
src/components/CMyFlotta/CMyFlotta.ts
Executable file
@@ -0,0 +1,166 @@
|
||||
import Vue from 'vue'
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import MixinBase from '@src/mixins/mixin-base'
|
||||
import MixinNave from '../../mixins/mixin-nave'
|
||||
import { CTitleBanner } from '../CTitleBanner'
|
||||
import { GlobalStore, UserStore } from '../../store/Modules'
|
||||
import { lists } from '../../store/Modules/lists'
|
||||
import translate from '../../globalroutines/util'
|
||||
import { CMyChipList } from '../CMyChipList'
|
||||
import { CVideo } from '../CVideo'
|
||||
import { validations } from './CMyFlotta-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
|
||||
@Component({
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: { CTitleBanner, CMyChipList, CVideo }
|
||||
})
|
||||
|
||||
export default class CMyFlotta extends MixinNave {
|
||||
@Prop({ required: false, default: null }) public flottaprop
|
||||
public $t
|
||||
public $v
|
||||
public flotta: any = null
|
||||
public flotta_completa: any = null
|
||||
public arrdonatori: any[] = []
|
||||
public loading: boolean = false
|
||||
public seluser = null
|
||||
public showmsguser: boolean = false
|
||||
public username_sostituire: string = ''
|
||||
public userfreestr: string = ''
|
||||
public MyPagination: {
|
||||
sortBy: string,
|
||||
descending: boolean,
|
||||
page: number,
|
||||
rowsNumber: number, // specifying this determines pagination is server-side
|
||||
rowsPerPage: number
|
||||
} = { sortBy: 'index', descending: false, page: 1, rowsNumber: 10, rowsPerPage: 10 }
|
||||
public colflotte: any[] = [
|
||||
{
|
||||
name: 'index',
|
||||
required: true,
|
||||
label: 'Num',
|
||||
align: 'left',
|
||||
field: '',
|
||||
sortable: true
|
||||
},
|
||||
{ name: 'flotta', align: 'center', label: 'Flotta', field: 'flotta', sortable: true }, // da 8.1 a 8.8
|
||||
{
|
||||
name: 'date_gift_chat_open', align: 'center',
|
||||
label: '⏰ Gift Chat', field: 'date_gift_chat_open', sortable: true
|
||||
},
|
||||
{ name: 'date_start', align: 'center', label: '⏰ Chiusura', field: 'date_start', sortable: true }, // 4/6/2020
|
||||
{ name: 'sognatore', align: 'center', label: 'Sognatore', field: 'sognatore_nomecognome', sortable: true }, // Username Sognatore
|
||||
{ name: 'provvisoria', align: 'center', label: 'Temp.', field: 'provvisoria', sortable: true }, // Flotta Provvisoria
|
||||
// { name: 'tutor', align: 'left', label: 'Tutor', field: 'tutor', sortable: true },
|
||||
// { name: 'mediatore', align: 'center', label: '🌀 Mediatore', field: '', sortable: true },
|
||||
{ name: 'DoniConfermati', align: 'center', label: '🎁 OK', field: 'DoniConfermati', sortable: true },
|
||||
{ name: 'DoniAttesaDiConferma', align: 'center', label: '🎁 Wait', field: 'DoniAttesaDiConferma', sortable: true },
|
||||
{ name: 'DoniMancanti', align: 'center', label: '🎁 Miss', field: 'DoniMancanti', sortable: true },
|
||||
{ name: 'msg_inviato', align: 'center', label: 'Msg Sent', field: 'msg_inviato', sortable: true },
|
||||
]
|
||||
|
||||
public coldonatori: any[] = [
|
||||
{
|
||||
name: 'index',
|
||||
required: true,
|
||||
label: 'Num',
|
||||
align: 'left',
|
||||
field: 'index',
|
||||
sortable: true
|
||||
},
|
||||
{ name: 'rigacol', align: 'center', label: 'Posizione', field: '', sortable: true },
|
||||
{ name: 'name', align: 'center', label: 'Nome', field: 'name', sortable: true },
|
||||
{ name: 'num_tess', align: 'center', label: 'Tessitura', field: 'num_tess', sortable: true },
|
||||
{ name: 'date_made_gift', align: 'center', label: 'Inviato', field: 'date_made_gift', sortable: true },
|
||||
{ name: 'made_gift', align: 'center', label: 'Dono', field: 'made_gift', sortable: true },
|
||||
]
|
||||
|
||||
get getcol() {
|
||||
// if (tools.isMobile())
|
||||
// return this.coldonatori_cell
|
||||
// else
|
||||
return this.coldonatori
|
||||
}
|
||||
|
||||
public mounted() {
|
||||
this.flotta = this.flottaprop
|
||||
this.aggiorna()
|
||||
}
|
||||
|
||||
public aggiorna() {
|
||||
|
||||
}
|
||||
|
||||
public getflottastr() {
|
||||
if (!!this.flotta)
|
||||
return 'Da ' + this.flotta.riga + '.' + this.flotta.col_prima + ' a ' + this.flotta.riga + '.' + this.flotta.col_ultima
|
||||
else
|
||||
return ''
|
||||
}
|
||||
|
||||
public gettitoloflotta() {
|
||||
return 'Flotta ' + this.getflottastr()
|
||||
}
|
||||
|
||||
public getcolorflotta() {
|
||||
return 'bg-blue'
|
||||
}
|
||||
|
||||
public async apriflotta() {
|
||||
|
||||
console.log('apriflotta')
|
||||
|
||||
this.loading = true
|
||||
this.arrdonatori = await GlobalStore.actions.GetFlotta({ riga: this.flotta.riga, col_prima: this.flotta.col_prima, col_ultima: this.flotta.col_ultima })
|
||||
|
||||
this.aggiorna()
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
public getnavestr(row) {
|
||||
return tools.getRiganave(row.riga) + '.' + tools.getColnave(row.col)
|
||||
}
|
||||
|
||||
public getlinkchat(row) {
|
||||
return row.link_superchat
|
||||
}
|
||||
|
||||
public clickseluser(rec) {
|
||||
this.seluser = rec
|
||||
this.showmsguser = true
|
||||
this.username_sostituire = ''
|
||||
this.userfreestr = ''
|
||||
}
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.username_sostituire === this.seluser.username_sostituire)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
public async InviaMsgAFlotta(inviareale) {
|
||||
|
||||
const msgtitle = translate('dialog.sendmsg')
|
||||
|
||||
let msg = 'TEST msg alla Flotta ?';
|
||||
|
||||
if (inviareale) {
|
||||
msg = 'Inviare a Tutta la Flotta il messaggio ?'
|
||||
}
|
||||
|
||||
tools.askConfirm(this.$q, msgtitle, msg , translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.INVIA_MSG_A_FLOTTA, 0, {
|
||||
param1: this.flotta,
|
||||
param2: inviareale,
|
||||
param3: tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
213
src/components/CMyFlotta/CMyFlotta.vue
Executable file
213
src/components/CMyFlotta/CMyFlotta.vue
Executable file
@@ -0,0 +1,213 @@
|
||||
<template>
|
||||
<div class="text-center">
|
||||
<CTitleBanner class=""
|
||||
:title="gettitoloflotta()"
|
||||
:bgcolor="getcolorflotta()"
|
||||
clcolor="text-white"
|
||||
:visible="false" mystyle="" myclass="myshad" canopen="true" @apri="apriflotta">
|
||||
|
||||
<div>
|
||||
|
||||
<div class="row q-pa-sm q-ma-sm">
|
||||
<div>TEST messaggio Flotta:
|
||||
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
|
||||
label="TEST MESSAGGIO"
|
||||
@click="InviaMsgAFlotta(false)"></q-btn>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
Invia messaggio a TUTTA la Flotta:
|
||||
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
|
||||
:label="$t('dialog.sendmsg')"
|
||||
@click="InviaMsgAFlotta(true)"></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-table
|
||||
dense
|
||||
color="primary"
|
||||
dense
|
||||
flat
|
||||
table-style="padding: 0px;"
|
||||
:title="$t('dashboard.donatori')"
|
||||
:data="arrdonatori"
|
||||
:columns="getcol"
|
||||
:nodataLabel="$t('grid.nodata')"
|
||||
:Pagination.sync="MyPagination"
|
||||
row-key="index">
|
||||
<template v-slot:body="props">
|
||||
<q-tr :props="props">
|
||||
<q-td v-if="!tools.isMobile()" key="index" :props="props">
|
||||
{{ props.row.index }}
|
||||
</q-td>
|
||||
<q-td v-if="!tools.isMobile()" key="nave" :props="props">
|
||||
<div style="font-size:1rem;"><a :href="getlinkchat(props.row)" target="_blank">{{
|
||||
getnavestr(props.row)}}</a></div>
|
||||
</q-td>
|
||||
<q-td key="name" :props="props">
|
||||
<q-btn v-if="!!props.row.profile" flat rounded color="blue"
|
||||
:size="tools.getsize()"
|
||||
:label="props.row.name + ' ' + props.row.surname"
|
||||
@click="clickseluser(props.row)">
|
||||
</q-btn>
|
||||
<div v-if="tools.isMobile()">
|
||||
<br>
|
||||
{{'(' + getnavestr(props.row) + ')'}} - {{ tools.getstrshortDateTime(props.row.date_made_gift)
|
||||
}}
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td v-if="!tools.isMobile()" key="posizione" :props="props">
|
||||
{{ props.row.riga }}.{{ props.row.col }}
|
||||
</q-td>
|
||||
<q-td v-if="!tools.isMobile()" key="date_made_gift" :props="props">
|
||||
{{ tools.getstrshortDateTime(props.row.date_made_gift) }}
|
||||
</q-td>
|
||||
<q-td key="made_gift" :props="props">
|
||||
|
||||
<div class="row justify-center">
|
||||
<q-btn v-if="!props.row.made_gift"
|
||||
push
|
||||
rounded
|
||||
color="primary"
|
||||
size="md"
|
||||
:label="$t('dashboard.dono_ricevuto_3', {donatore: props.row.name })"
|
||||
|
||||
@click="HoRicevutoIlDono(props.row)">
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-if="props.row.made_gift">
|
||||
<q-chip class="glossy"
|
||||
text-color="white"
|
||||
color="positive"
|
||||
icon="fas fa-gift">
|
||||
{{ $t('dialog.ok')
|
||||
}}
|
||||
</q-chip>
|
||||
</div>
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
</q-table>
|
||||
</div>
|
||||
|
||||
<q-dialog v-model="showmsguser">
|
||||
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
|
||||
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
|
||||
<q-toolbar-title>
|
||||
<div v-if="!!seluser">
|
||||
{{ seluser.name }} {{ seluser.surname }}
|
||||
</div>
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup clickable
|
||||
@click="Chiudi"></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<div class="row justify-center q-gutter-md">
|
||||
<div>
|
||||
<div v-if="!!seluser.profile">
|
||||
<div v-if="!!seluser.profile.cell" class="q-ma-sm text-center clBorderWarning">
|
||||
Whatsapp: {{seluser.profile.cell}}
|
||||
<q-btn
|
||||
|
||||
fab-mini
|
||||
icon="fab fa-whatsapp"
|
||||
color="white" text-color="green" type="a"
|
||||
size="sm"
|
||||
:href="tools.getHttpForWhatsapp(seluser.profile.cell)"
|
||||
target="__blank">
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div class="q-ma-sm text-center clBorderSteps">
|
||||
<div>TELEGRAM {{$t('ws.sitename')}} BOT {{$t('dialog.sendmsg')}} ->
|
||||
{{seluser.name }} {{ seluser.surname }}:
|
||||
</div>
|
||||
<q-input type="textarea"
|
||||
autogrow
|
||||
v-model="msg_tosend_user" :label="$t('cal.msgbooking')"
|
||||
input-class="myinput-area">
|
||||
|
||||
</q-input>
|
||||
|
||||
<div class="row justify-center centermydiv q-gutter-sm"
|
||||
style="max-width: 420px;">
|
||||
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
|
||||
:label="$t('dialog.sendmsg') + ` -> ` + seluser.name + ` ` + seluser.surname"
|
||||
@click="InviaMsgAUser()"></q-btn>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="isManager || isTutor">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" title="Sostituisci"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="username_sostituire"
|
||||
rounded outlined
|
||||
@blur="$v.username_sostituire.$touch"
|
||||
:error="$v.username_sostituire.$error"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
label="Username Nuova Persona:">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-btn rounded color="warning" icon="fab fa-find"
|
||||
text-color="black"
|
||||
label="Cerca il primo Disponibile"
|
||||
@click="TrovaUserFree()"></q-btn>
|
||||
<div v-if="!!userfreestr">
|
||||
<q-field
|
||||
stack-label
|
||||
dense
|
||||
>
|
||||
<template v-slot:control>
|
||||
<div class="text-center" tabindex="0">{{userfreestr}}</div>
|
||||
</template>
|
||||
|
||||
</q-field>
|
||||
</div>
|
||||
|
||||
<q-toggle v-model="deleteUser"
|
||||
:label="'Elimina ' + seluser.name + ' ' + seluser.surname"></q-toggle>
|
||||
<q-toggle v-model="AddImbarco"
|
||||
label="Aggiungi Destinatario (senza spostarlo da altre Navi)"></q-toggle>
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"></q-toggle>
|
||||
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white"
|
||||
icon="fas fa-gift"
|
||||
label="Sostituisci"
|
||||
:disabled='!allowSubmit'
|
||||
@click="SostituisciUtente(seluser, username_sostituire, getnotifBotTxt)"></q-btn>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMyFlotta.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CMyFlotta.scss';
|
||||
</style>
|
||||
1
src/components/CMyFlotta/index.ts
Executable file
1
src/components/CMyFlotta/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CMyFlotta} from './CMyFlotta.vue'
|
||||
@@ -198,6 +198,14 @@ export default class CMyNave extends MixinNave {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.sonoDonatore()) {
|
||||
this.tabnave = 'donatore'
|
||||
} else if (this.sonoMediatore()) {
|
||||
this.tabnave = 'mediatore'
|
||||
} else if (this.sonoSognatore()) {
|
||||
this.tabnave = 'sognatore'
|
||||
}
|
||||
}
|
||||
|
||||
public getListaDonatoriDaConfermare() {
|
||||
@@ -676,7 +684,8 @@ export default class CMyNave extends MixinNave {
|
||||
const navemediatore = {
|
||||
id: this.mediatore._id,
|
||||
riga: this.mediatore.riga,
|
||||
col: this.mediatore.col
|
||||
col: this.mediatore.col,
|
||||
username: this.mediatore.username
|
||||
}
|
||||
|
||||
this.InviaMsgANave(msgobj, navemediatore)
|
||||
@@ -1076,5 +1085,8 @@ export default class CMyNave extends MixinNave {
|
||||
})
|
||||
}
|
||||
|
||||
get rendivisibile() {
|
||||
return !this.FattoDono && !this.sonoSecondaTessituraDonatore() && !this.listanavi
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
<template>
|
||||
<div class="text-center">
|
||||
<div v-if="!!nave" class="text-center">
|
||||
|
||||
<CTitleBanner v-if="!!getpartenza()" class=""
|
||||
:title="gettitolonave"
|
||||
:bgcolor="getcolortitle()"
|
||||
clcolor="text-white"
|
||||
:visible="!!nave && !FattoDono && !sonoSecondaTessituraDonatore() && !listanavi"
|
||||
:visible="rendivisibile"
|
||||
mystyle="" myclass="myshad" canopen="true" @apri="apri">
|
||||
<div class="">
|
||||
<q-chip class="glossy q-ma-sm" color="orange" text-color="white" icon="star">
|
||||
@@ -123,6 +124,20 @@
|
||||
<CVideo myvideokey="5rp_XEV6Mzg">
|
||||
|
||||
</CVideo>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<CTitleBanner class="q-pa-xs"
|
||||
:title="$t('dashboard.come_inviare_regalo_con_paypal') + '.me'"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<CVideo myvideokey="VzCy4BxQKhM">
|
||||
|
||||
</CVideo>
|
||||
|
||||
https://youtu.be/VzCy4BxQKhM
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
@@ -151,8 +166,8 @@
|
||||
<div v-else>
|
||||
<div class="row justify-center q-ma-sm">
|
||||
<q-chip class="glossy"
|
||||
text-color="white"
|
||||
color="positive"
|
||||
text-color="green"
|
||||
color="white"
|
||||
icon="fas fa-gift">
|
||||
{{ $t('dashboard.ho_effettuato_il_dono') }}
|
||||
</q-chip>
|
||||
@@ -274,6 +289,7 @@
|
||||
<div v-if="isDefinitivaMediatore()" class="q-my-md">
|
||||
<div class="text-left" v-html="gettesto()"></div>
|
||||
|
||||
<!--
|
||||
<div>
|
||||
<q-input v-model="link_chat" :label="$t('dashboard.link_chat')"
|
||||
debounce="1000"
|
||||
@@ -293,7 +309,7 @@
|
||||
@click="InviaLinkChatADonatori(true)"></q-btn>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ export default class CMyPopupEdit extends Vue {
|
||||
public myvalue = ''
|
||||
public myvalueprec = 'false'
|
||||
public countryname = ''
|
||||
public visueditor : boolean = false
|
||||
|
||||
get tools() {
|
||||
return tools
|
||||
@@ -45,6 +46,7 @@ export default class CMyPopupEdit extends Vue {
|
||||
}
|
||||
|
||||
public changeval(newval) {
|
||||
console.log('changeval update:row', newval)
|
||||
this.$emit('update:row', newval)
|
||||
}
|
||||
|
||||
@@ -117,6 +119,10 @@ export default class CMyPopupEdit extends Vue {
|
||||
this.$emit('save', newVal, valinitial)
|
||||
}
|
||||
|
||||
public annulla(val) {
|
||||
this.$emit('annulla', true)
|
||||
}
|
||||
|
||||
public Savedb(newVal, valinitial) {
|
||||
|
||||
if (this.col.fieldtype === tools.FieldType.boolean) {
|
||||
@@ -132,6 +138,7 @@ export default class CMyPopupEdit extends Vue {
|
||||
// console.log('Savedb', newVal)
|
||||
|
||||
this.$emit('showandsave', this.row, this.col, newVal, valinitial)
|
||||
this.visueditor = false
|
||||
}
|
||||
|
||||
public visuValByType(val, col: IColGridTable, row) {
|
||||
|
||||
@@ -1,219 +1,219 @@
|
||||
<template>
|
||||
<div :class="getclassCol(col)">
|
||||
<div v-if="col.fieldtype === tools.FieldType.listimages">
|
||||
<CGallery :gall="row" :listimages="myvalue" :edit="isviewfield"
|
||||
@showandsave="Savedb">
|
||||
<div :class="getclassCol(col)">
|
||||
<div v-if="col.fieldtype === tools.FieldType.listimages">
|
||||
<CGallery :gall="row" :listimages="myvalue" :edit="isviewfield"
|
||||
@showandsave="Savedb">
|
||||
|
||||
</CGallery>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.image">
|
||||
<CGallery :gall="row" :listimages="myvalue" :edit="isviewfield"
|
||||
@showandsave="Savedb">
|
||||
</CGallery>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.image">
|
||||
<CGallery :gall="row" :listimages="myvalue" :edit="isviewfield"
|
||||
@showandsave="Savedb">
|
||||
|
||||
</CGallery>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.nationality">
|
||||
<div>
|
||||
{{myvalue}}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.intcode">
|
||||
<div>
|
||||
{{myvalue}}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- Edit Value -->
|
||||
<span v-if="col.fieldtype === tools.FieldType.date">
|
||||
</CGallery>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.nationality">
|
||||
<div>
|
||||
{{myvalue}}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.intcode">
|
||||
<div>
|
||||
{{myvalue}}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- Edit Value -->
|
||||
<span v-if="col.fieldtype === tools.FieldType.date">
|
||||
<CDateTime
|
||||
:label="col.label"
|
||||
class="cursor-pointer"
|
||||
:valueDate="myvalue"
|
||||
:readonly="false"
|
||||
:minuteinterval="minuteinterval"
|
||||
:dense="true"
|
||||
:canEdit="canEdit"
|
||||
@savetoclose="SaveValueInt"
|
||||
@show="OpenEdit">
|
||||
:label="col.label"
|
||||
class="cursor-pointer"
|
||||
:valueDate="myvalue"
|
||||
:readonly="false"
|
||||
:minuteinterval="minuteinterval"
|
||||
:dense="true"
|
||||
:canEdit="canEdit"
|
||||
@savetoclose="SaveValueInt"
|
||||
@show="OpenEdit">
|
||||
</CDateTime>
|
||||
</span>
|
||||
<div v-if="col.fieldtype !== tools.FieldType.date">
|
||||
<div>
|
||||
<div v-if="col.fieldtype === tools.FieldType.binary">
|
||||
<CMyChipList
|
||||
:type="tools.FieldType.binary"
|
||||
:value="myvalue"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<!-- Show Value -->
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.multiselect">
|
||||
<CMyChipList
|
||||
:type="tools.FieldType.multiselect"
|
||||
:value="myvalue"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.select">
|
||||
<CMyChipList
|
||||
myclass="text-center"
|
||||
:type="tools.FieldType.select"
|
||||
:value="myvalue"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.boolean">
|
||||
<q-toggle dark color="green" v-model="myvalue" :label="col.title" :disable="disable && col.name !== 'profile.saw_zoom_presentation'"
|
||||
@input="Savedb"></q-toggle>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.html">
|
||||
<div v-html="visuValByType(myvalue, col, row)">
|
||||
<div v-if="col.fieldtype !== tools.FieldType.date">
|
||||
<div>
|
||||
<div v-if="col.fieldtype === tools.FieldType.binary">
|
||||
<CMyChipList
|
||||
:type="tools.FieldType.binary"
|
||||
:value="myvalue"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<!-- Show Value -->
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.multiselect">
|
||||
<CMyChipList
|
||||
:type="tools.FieldType.multiselect"
|
||||
:value="myvalue"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.select">
|
||||
<CMyChipList
|
||||
myclass="text-center"
|
||||
:type="tools.FieldType.select"
|
||||
:value="myvalue"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.boolean">
|
||||
<q-toggle dark color="green" v-model="myvalue" :label="col.title"
|
||||
:disable="disable && col.name !== 'profile.saw_zoom_presentation'"
|
||||
@input="Savedb"></q-toggle>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.html">
|
||||
<div v-html="visuValByType(myvalue, col, row)" @click="visueditor = true">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
{{ visuValByType(myvalue, col, row) }}
|
||||
</div>
|
||||
</div>
|
||||
<q-popup-edit
|
||||
v-if="canEdit"
|
||||
v-model="myvalue"
|
||||
:disable="col.disable"
|
||||
:title="col.title"
|
||||
buttons
|
||||
persistent
|
||||
@save="SaveValueInt"
|
||||
@show="OpenEdit">
|
||||
|
||||
<div v-if="col.fieldtype === tools.FieldType.boolean">
|
||||
<q-checkbox v-model="myvalue" :label="col.title">
|
||||
</q-checkbox>
|
||||
{{ visuValByType(myvalue, col, row) }}
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.string">
|
||||
<q-input v-model="myvalue"
|
||||
autogrow
|
||||
@keyup.enter.stop
|
||||
autofocus>
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.password">
|
||||
<q-input v-model="myvalue"
|
||||
type="password"
|
||||
@keyup.enter.stop
|
||||
autofocus>
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.number">
|
||||
<q-input v-model="myvalue" type="number"
|
||||
autofocus>
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.binary">
|
||||
<CMyToggleList :label="col.title"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:value.sync="myvalue"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)">
|
||||
</CMyToggleList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.html">
|
||||
<CMyEditor :value.sync="myvalue" :title="col.title" @keyup.enter.stop>
|
||||
|
||||
</CMyEditor>
|
||||
<!--<q-input v-model="myvalue"-->
|
||||
<!--autofocus-->
|
||||
<!--@keyup.enter.stop-->
|
||||
<!--type="textarea"></q-input>-->
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.select">
|
||||
<CMySelect :label="col.title"
|
||||
:value.sync="myvalue"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:useinput="false">
|
||||
</CMySelect>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.nationality">
|
||||
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
|
||||
<q-input
|
||||
v-model="countryname"
|
||||
:readonly="true"
|
||||
rounded dense
|
||||
debounce="1000"
|
||||
>
|
||||
|
||||
<template v-slot:prepend>
|
||||
<div style="font-size: 1rem;">
|
||||
<vue-country-code
|
||||
:defaultCountry="myvalue"
|
||||
:disabledFetchingCountry="true"
|
||||
@onSelect="selectcountry"
|
||||
:preferredCountries="tools.getprefCountries"
|
||||
:dropdownOptions="{ disabledDialCode: true }">
|
||||
|
||||
</vue-country-code>
|
||||
</div>
|
||||
</template>
|
||||
</q-input>
|
||||
<div style="height: 180px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.intcode">
|
||||
|
||||
<vue-tel-input
|
||||
@country-changed="intcode_change"
|
||||
v-model="myvalue"
|
||||
:placeholder="$t('reg.cell')"
|
||||
:enabledCountryCode="true"
|
||||
inputClasses="clCell"
|
||||
wrapperClasses="clCellCode">
|
||||
</vue-tel-input>
|
||||
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.multiselect">
|
||||
<div>join: {{col.jointable}}</div>
|
||||
|
||||
<q-select
|
||||
v-model="myvalue"
|
||||
rounded
|
||||
outlined
|
||||
multiple
|
||||
dense
|
||||
options-dense
|
||||
:display-value="db_fieldsTable.getTitleByTable(col.jointable)"
|
||||
emit-value
|
||||
map-options
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:option-label="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:option-value="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
style="min-width: 150px"
|
||||
@input="changeCol">
|
||||
|
||||
</q-select>
|
||||
</div>
|
||||
|
||||
</q-popup-edit>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
{{ visuValByType(myvalue, col, row) }}
|
||||
</div>
|
||||
|
||||
<div v-if="col.fieldtype === tools.FieldType.html">
|
||||
|
||||
<CMyEditor v-if="visueditor" :value.sync="myvalue" :title="col.title" @keyup.enter.stop
|
||||
@showandsave="Savedb" @annulla="visueditor=false">
|
||||
|
||||
</CMyEditor>
|
||||
</div>
|
||||
<q-popup-edit
|
||||
v-if="canEdit && col.fieldtype !== tools.FieldType.html"
|
||||
v-model="myvalue"
|
||||
:disable="col.disable"
|
||||
:title="col.title"
|
||||
buttons
|
||||
persistent
|
||||
@save="SaveValueInt"
|
||||
@show="OpenEdit">
|
||||
|
||||
<div v-if="col.fieldtype === tools.FieldType.boolean">
|
||||
<q-checkbox v-model="myvalue" :label="col.title">
|
||||
</q-checkbox>
|
||||
{{ visuValByType(myvalue, col, row) }}
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.string">
|
||||
<q-input v-model="myvalue"
|
||||
autogrow
|
||||
@keyup.enter.stop
|
||||
autofocus>
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.password">
|
||||
<q-input v-model="myvalue"
|
||||
type="password"
|
||||
@keyup.enter.stop
|
||||
autofocus>
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.number">
|
||||
<q-input v-model="myvalue" type="number"
|
||||
autofocus>
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.binary">
|
||||
<CMyToggleList :label="col.title"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:value.sync="myvalue"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)">
|
||||
</CMyToggleList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.select">
|
||||
<CMySelect :label="col.title"
|
||||
:value.sync="myvalue"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:useinput="false">
|
||||
</CMySelect>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.nationality">
|
||||
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
|
||||
<q-input
|
||||
v-model="countryname"
|
||||
:readonly="true"
|
||||
rounded dense
|
||||
debounce="1000"
|
||||
>
|
||||
|
||||
<template v-slot:prepend>
|
||||
<div style="font-size: 1rem;">
|
||||
<vue-country-code
|
||||
:defaultCountry="myvalue"
|
||||
:disabledFetchingCountry="true"
|
||||
@onSelect="selectcountry"
|
||||
:preferredCountries="tools.getprefCountries"
|
||||
:dropdownOptions="{ disabledDialCode: true }">
|
||||
|
||||
</vue-country-code>
|
||||
</div>
|
||||
</template>
|
||||
</q-input>
|
||||
<div style="height: 180px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.intcode">
|
||||
|
||||
<vue-tel-input
|
||||
@country-changed="intcode_change"
|
||||
v-model="myvalue"
|
||||
:placeholder="$t('reg.cell')"
|
||||
:enabledCountryCode="true"
|
||||
inputClasses="clCell"
|
||||
wrapperClasses="clCellCode">
|
||||
</vue-tel-input>
|
||||
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.multiselect">
|
||||
<div>join: {{col.jointable}}</div>
|
||||
|
||||
<q-select
|
||||
v-model="myvalue"
|
||||
rounded
|
||||
outlined
|
||||
multiple
|
||||
dense
|
||||
options-dense
|
||||
:display-value="db_fieldsTable.getTitleByTable(col.jointable)"
|
||||
emit-value
|
||||
map-options
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:option-label="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:option-value="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
style="min-width: 150px"
|
||||
@input="changeCol">
|
||||
|
||||
</q-select>
|
||||
</div>
|
||||
|
||||
</q-popup-edit>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMyPopupEdit.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CMyPopupEdit.scss';
|
||||
@import './CMyPopupEdit.scss';
|
||||
</style>
|
||||
|
||||
@@ -4,6 +4,7 @@ import { CSignIn } from '../../components/CSignIn'
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
|
||||
@Component({
|
||||
name: 'CSigninNoreg',
|
||||
components: { CSignIn }
|
||||
})
|
||||
|
||||
|
||||
@@ -165,6 +165,20 @@
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
|
||||
<CMyFieldDb :title="$t('reg.link_payment')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="link_payment"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
|
||||
<CMyFieldDb :title="$t('reg.note_payment')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="note_payment"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -59,3 +59,4 @@ export * from './CVideoPromo'
|
||||
export * from './CMyRequirement'
|
||||
export * from './CSigninNoreg'
|
||||
export * from './CMyNave'
|
||||
export * from './CMyFlotta'
|
||||
|
||||
Reference in New Issue
Block a user