other components...
This commit is contained in:
1
src/views/admin/TableOnlyView/index.ts
Executable file
1
src/views/admin/TableOnlyView/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as tableOnlyView} from './tableOnlyView.vue'
|
||||
0
src/views/admin/TableOnlyView/tableOnlyView.scss
Executable file
0
src/views/admin/TableOnlyView/tableOnlyView.scss
Executable file
59
src/views/admin/TableOnlyView/tableOnlyView.ts
Executable file
59
src/views/admin/TableOnlyView/tableOnlyView.ts
Executable file
@@ -0,0 +1,59 @@
|
||||
|
||||
@Component({})
|
||||
export default class TableOnlyView extends Vue {
|
||||
public loading: boolean = false
|
||||
|
||||
public serverPagination: {
|
||||
page: number,
|
||||
rowsNumber: number // specifying this determines pagination is server-side
|
||||
} = {page: 1, rowsNumber: 10}
|
||||
|
||||
public serverData: any [] = []
|
||||
|
||||
public columns: any[] = [
|
||||
{
|
||||
name: 'chiave',
|
||||
required: true,
|
||||
label: 'Chiave',
|
||||
align: 'left',
|
||||
field: 'chiave',
|
||||
sortable: true,
|
||||
},
|
||||
{ name: 'valore', label: 'Valore', field: 'valore', sortable: false },
|
||||
]
|
||||
|
||||
public filter: string = ''
|
||||
|
||||
public selected: any[] = []
|
||||
|
||||
public request(props) {
|
||||
this.loading = true
|
||||
setTimeout(() => {
|
||||
this.serverPagination = props.pagination
|
||||
let table = this.$refs.table,
|
||||
rows = GlobalStore.state.cfgServer.slice(),
|
||||
{ page, rowsPerPage, sortBy, descending } = props.pagination
|
||||
|
||||
// if (props.filter) {
|
||||
// rows = table.filterMethod(rows, props.filter)
|
||||
// }
|
||||
// if (sortBy) {
|
||||
// rows = table.sortMethod(rows, sortBy, descending)
|
||||
// }
|
||||
|
||||
this.serverPagination.rowsNumber = rows.length
|
||||
if (rowsPerPage) {
|
||||
rows = rows.slice((page - 1) * rowsPerPage, page * rowsPerPage)
|
||||
}
|
||||
this.serverData = rows
|
||||
this.loading = false
|
||||
}, 1500)
|
||||
}
|
||||
|
||||
public mounted() {
|
||||
this.request({
|
||||
pagination: this.serverPagination,
|
||||
filter: this.filter,
|
||||
})
|
||||
}
|
||||
}
|
||||
29
src/views/admin/TableOnlyView/tableOnlyView.vue
Executable file
29
src/views/admin/TableOnlyView/tableOnlyView.vue
Executable file
@@ -0,0 +1,29 @@
|
||||
<template>
|
||||
<q-page padding class="docs-table">
|
||||
<p class="caption">TableOnlyView</p>
|
||||
<q-table
|
||||
ref="table"
|
||||
color="primary"
|
||||
title="Parametri di Configurazione Server"
|
||||
:data="serverData"
|
||||
:columns="columns"
|
||||
:filter="filter"
|
||||
selection="multiple"
|
||||
v-model:selected="selected"
|
||||
row-key="chiave"
|
||||
v-model:pagination="serverPagination"
|
||||
@request="request"
|
||||
:loading="loading"
|
||||
>
|
||||
<template v-slot:top-right="props" >
|
||||
<q-search hide-underline v-model="filter" />
|
||||
</template>
|
||||
</q-table>
|
||||
</q-page>
|
||||
</template>
|
||||
<script lang="ts" src="tableOnlyView.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import 'tableOnlyView';
|
||||
</style>
|
||||
0
src/views/admin/cfgServer/cfgServer.scss
Executable file
0
src/views/admin/cfgServer/cfgServer.scss
Executable file
104
src/views/admin/cfgServer/cfgServer.ts
Executable file
104
src/views/admin/cfgServer/cfgServer.ts
Executable file
@@ -0,0 +1,104 @@
|
||||
import { computed, defineComponent, PropType, ref } from 'vue'
|
||||
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { ICfgServer } from 'model'
|
||||
|
||||
interface IPageSrv {
|
||||
page: number,
|
||||
rowsPerPage: number // specifying this determines pagination is server-side
|
||||
}
|
||||
interface IPageS {
|
||||
page: number,
|
||||
}
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CfgServer',
|
||||
props: {
|
||||
loading: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: true,
|
||||
},
|
||||
paginationControl: {
|
||||
type: Object as PropType<IPageSrv>,
|
||||
required: true,
|
||||
default() {
|
||||
return { page: 1, rowsPerPage: 20 }
|
||||
},
|
||||
},
|
||||
pagination: {
|
||||
type: Object as PropType<IPageS>,
|
||||
required: true,
|
||||
default() {
|
||||
return { page: 1 }
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
setup() {
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
const serverData = computed(() => globalStore.cfgServer.slice()) // [{ chiave: 'chiave1', valore: 'valore 1' }]
|
||||
const columns = ref([
|
||||
{
|
||||
name: 'chiave',
|
||||
required: true,
|
||||
label: 'Chiave',
|
||||
align: 'left',
|
||||
field: 'chiave',
|
||||
sortable: true,
|
||||
},
|
||||
{ name: 'idapp', label: 'idapp', field: 'idapp', sortable: true },
|
||||
{ name: 'userid', label: 'UserId', field: 'userid', sortable: false },
|
||||
{ name: 'valore', label: 'Valore', field: 'valore', sortable: false },
|
||||
])
|
||||
|
||||
const colVisib = ref(['chiave', 'idapp', 'userid', 'valore'])
|
||||
const separator = ref('horizontal')
|
||||
const filter = ref('')
|
||||
const selected = ref([])
|
||||
const dark = ref(true)
|
||||
|
||||
const keysel = ref('')
|
||||
const userIdsel = ref('')
|
||||
|
||||
function tableClass() {
|
||||
if (dark.value) {
|
||||
return 'bg-black'
|
||||
}
|
||||
}
|
||||
|
||||
function selItem(item: any) {
|
||||
console.log('item', item)
|
||||
keysel.value = item.chiave
|
||||
userIdsel.value = item.userId
|
||||
console.log('this.keysel', keysel.value)
|
||||
}
|
||||
|
||||
function SaveValue(newVal: any, valinitial: any) {
|
||||
// console.log('SaveValue', newVal, 'selected', this.selected)
|
||||
|
||||
const mydata: ICfgServer = {
|
||||
chiave: keysel.value,
|
||||
userId: userIdsel.value,
|
||||
valore: newVal,
|
||||
idapp: process.env.APP_ID!,
|
||||
}
|
||||
|
||||
// Save on Server
|
||||
globalStore.saveCfgServerKey(mydata)
|
||||
}
|
||||
|
||||
return {
|
||||
selItem,
|
||||
SaveValue,
|
||||
serverData,
|
||||
columns,
|
||||
filter,
|
||||
}
|
||||
},
|
||||
})
|
||||
52
src/views/admin/cfgServer/cfgServer.vue
Executable file
52
src/views/admin/cfgServer/cfgServer.vue
Executable file
@@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<q-table
|
||||
:data="serverData"
|
||||
:columns="columns"
|
||||
:filter="filter"
|
||||
title="Configurazione Server"
|
||||
row-key="chiave"
|
||||
>
|
||||
<template v-slot:body="props">
|
||||
<q-tr :props="props">
|
||||
<q-td key="chiave" :props="props">
|
||||
{{ props.row.chiave }}
|
||||
<q-popup-edit v-model="props.row.chiave" disable>
|
||||
<q-field count>
|
||||
<q-input v-model="props.row.chiave"/>
|
||||
</q-field>
|
||||
</q-popup-edit>
|
||||
</q-td>
|
||||
<q-td key="idapp" :props="props">
|
||||
{{ props.row.idapp }}
|
||||
<q-popup-edit v-model="props.row.idapp" disable>
|
||||
<q-field count>
|
||||
<q-input v-model="props.row.idapp"/>
|
||||
</q-field>
|
||||
</q-popup-edit>
|
||||
</q-td>
|
||||
<q-td key="userid" :props="props">
|
||||
{{ props.row.userId }}
|
||||
<q-popup-edit v-model="props.row.userId" disable>
|
||||
<q-field count>
|
||||
<q-input v-model="props.row.userId"/>
|
||||
</q-field>
|
||||
</q-popup-edit>
|
||||
</q-td>
|
||||
<q-td key="valore" :props="props">
|
||||
{{ props.row.valore }}
|
||||
<q-popup-edit
|
||||
v-model="props.row.valore" title="Aggiorna Valore" buttons @save="SaveValue"
|
||||
@show="selItem(props.row)">
|
||||
<q-input v-model="props.row.valore"/>
|
||||
</q-popup-edit>
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
</q-table>
|
||||
</template>
|
||||
<script lang="ts" src="./cfgServer.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './cfgServer';
|
||||
</style>
|
||||
1
src/views/admin/cfgServer/index.ts
Executable file
1
src/views/admin/cfgServer/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as cfgServer} from './cfgServer.vue'
|
||||
0
src/views/admin/dbop/dbop.scss
Executable file
0
src/views/admin/dbop/dbop.scss
Executable file
80
src/views/admin/dbop/dbop.ts
Executable file
80
src/views/admin/dbop/dbop.ts
Executable file
@@ -0,0 +1,80 @@
|
||||
import { defineComponent, ref } from 'vue'
|
||||
|
||||
import { CTitleBanner } from '../../../components/CTitleBanner'
|
||||
import { CDateTime } from '../../../components/CDateTime'
|
||||
import { CMyFieldDb } from '../../../components/CMyFieldDb'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
import { useUserStore } from '@store/userStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Dbop',
|
||||
components: { CTitleBanner, CDateTime, CMyFieldDb },
|
||||
props: {},
|
||||
setup() {
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
|
||||
const ris = ref('')
|
||||
const riga = ref(0)
|
||||
const numpersone = ref(7)
|
||||
const date_start = ref(new Date())
|
||||
const col = ref(0)
|
||||
const placca = ref('')
|
||||
const incaricamento = ref(false)
|
||||
|
||||
async function EseguiFunz(miafunz: string) {
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
$q.dialog({
|
||||
message: t('dialog.continue') + ' ' + miafunz + ' ?',
|
||||
cancel: {
|
||||
label: t('dialog.cancel'),
|
||||
},
|
||||
ok: {
|
||||
label: t('dialog.yes'),
|
||||
push: true,
|
||||
},
|
||||
title: 'Funzione:',
|
||||
}).onOk(async () => {
|
||||
const mydata = {
|
||||
dbop: miafunz,
|
||||
riga: riga,
|
||||
col: col,
|
||||
date_start: date_start,
|
||||
numpersone: numpersone,
|
||||
}
|
||||
|
||||
incaricamento.value = true
|
||||
$q.loading.show({ message: t('otherpages.update') })
|
||||
|
||||
const risfunz = await userStore.execDbOp({ mydata })
|
||||
|
||||
$q.loading.hide()
|
||||
await globalStore.loadSite()
|
||||
|
||||
incaricamento.value = false
|
||||
|
||||
console.log('risfunz', risfunz)
|
||||
|
||||
ris.value = ''
|
||||
|
||||
if (miafunz === 'visuPlacca') {
|
||||
placca.value = risfunz.placca
|
||||
} else if (miafunz === 'visuListaIngresso' || miafunz === 'visuListaIngressoNuovi' || miafunz === 'visuNaviUtentiEliminati'
|
||||
|| miafunz === 'visuListaNave' || miafunz === 'visuNave' || miafunz === 'creaNavi'
|
||||
|| (miafunz === 'visuStat')) {
|
||||
placca.value = risfunz.mystr
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
EseguiFunz,
|
||||
tools,
|
||||
}
|
||||
},
|
||||
})
|
||||
229
src/views/admin/dbop/dbop.vue
Executable file
229
src/views/admin/dbop/dbop.vue
Executable file
@@ -0,0 +1,229 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner title="Operazioni su DB:"></CTitleBanner>
|
||||
<div class="row justify-center q-gutter-sm q-list--bordered center_img" style="max-width: 600px">
|
||||
<CMyFieldDb
|
||||
title="SITO_ONLINE"
|
||||
mykey="SITO_ONLINE"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
<br>
|
||||
|
||||
<CMyFieldDb
|
||||
title="ABILITA CRONTAB (1 ora)"
|
||||
mykey="CRONTAB"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
<br>
|
||||
|
||||
|
||||
<!--
|
||||
<div class="row">
|
||||
<q-btn label="Crea Utenti Test" color="primary" @click="EseguiFunz('creaUtentiTest')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Passa i codici Telefoni sul campo cell" color="primary"
|
||||
@click="EseguiFunz('changeCellInt')"></q-btn>
|
||||
<br></div>
|
||||
<div class="row">
|
||||
<q-btn label="Trasforma le email tutte in minuscolo" color="primary"
|
||||
@click="EseguiFunz('changeEmailLowerCase')"></q-btn>
|
||||
<br></div>
|
||||
<div class="row">
|
||||
<q-btn label="IMPOSTARE A TUTTI PAYPAL" color="primary" @click="EseguiFunz('ImpostaATuttiPaypal')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="NUM_TESS A 1" color="primary" @click="EseguiFunz('numtessUno')"></q-btn><br>
|
||||
</div>
|
||||
|
||||
-->
|
||||
|
||||
<div class="row">
|
||||
<!--<q-btn label="CORREGGI NUM_TESS" color="primary" @click="EseguiFunz('Corregginumtess')"></q-btn>
|
||||
<br>-->
|
||||
<!--<q-btn label="CORREGGI DATA GIFT CHAT" color="primary" @click="EseguiFunz('CorreggiDataGiftChat')"></q-btn>
|
||||
<br>-->
|
||||
</div>
|
||||
<div class="row">
|
||||
<!--<q-btn label="Inizializza ListaIngresso" color="negative"
|
||||
@click="EseguiFunz('initListaIngresso')"></q-btn>
|
||||
<br>-->
|
||||
</div>
|
||||
<!--
|
||||
<div class="row">
|
||||
<q-btn label="Elimina Navi" color="negative" @click="EseguiFunz('delNavi')"></q-btn><br>
|
||||
</div>
|
||||
-->
|
||||
<!--<div class="row">
|
||||
<q-btn label="Elimina Navi non Partite" color="negative"
|
||||
@click="EseguiFunz('delNaviNoStarted')"></q-btn>
|
||||
<br>
|
||||
</div>-->
|
||||
|
||||
<!--
|
||||
<div class="row">
|
||||
<q-btn label="Rigenera (Elim, Genera Graduat, Add Navi Temp" color="positive" size="lg"
|
||||
@click="EseguiFunz('rigeneraTutto')"></q-btn>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<q-btn label="Elimina Navi Provvisorie" color="negative"
|
||||
@click="EseguiFunz('delNaviProvvisorie')"></q-btn>
|
||||
|
||||
</div>
|
||||
<q-btn label="Genera Graduatoria" color="primary"
|
||||
@click="EseguiFunz('GeneraGraduatoria')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="1) Aggiungi in Navi Temporanee" color="primary" @click="EseguiFunz('creaNavi')"></q-btn>
|
||||
<br>
|
||||
<div class="q-pa-sm row">
|
||||
<CDateTime
|
||||
:value.sync="date_start"
|
||||
:label="$t('cal.eventstartdatetime')"
|
||||
:readonly="false">
|
||||
</CDateTime>
|
||||
<q-input v-model="numpersone" type="number" autofocus label="Num Persone to Add"
|
||||
style="width: 100px;"></q-input>
|
||||
<q-btn label="2) CREA NAVI PERSISTENTI" color="primary" @click="EseguiFunz('CreaNaviPersistenti')"></q-btn>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
<div v-if="!incaricamento" class="row">
|
||||
<CMyFieldDb title="Riga"
|
||||
mykey="riga"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Col"
|
||||
mykey="col"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Visu_TEST"
|
||||
mykey="VISU_TEST"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="VISU_NAVE_BOT"
|
||||
mykey="VISU_NAVE_BOT"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Statistiche" color="warning" @click="EseguiFunz('visuStat')"></q-btn>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Pulisci chi non è presente in Nave" color="positive"
|
||||
@click="EseguiFunz('pulisciNonPresenzeInNave')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="Visualizza Lista Nave" color="primary" @click="EseguiFunz('visuListaNave')"></q-btn>
|
||||
|
||||
</div>
|
||||
|
||||
<q-btn label="Aggiorna Indice Graduatoria" color="primary"
|
||||
@click="EseguiFunz('AggiornaIndiceGraduatoria')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="Visu Navi con utenti Eliminati" color="primary"
|
||||
@click="EseguiFunz('visuNaviUtentiEliminati')"></q-btn>
|
||||
<br>
|
||||
<div class="row">
|
||||
<q-btn label="0) ELIMINA VECCHI LISTEINGRESSO !" color="negative"
|
||||
@click="EseguiFunz('eliminaListeIngressoNascoste')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="CONVERTI SUBACCOUNT !" color="negative"
|
||||
@click="EseguiFunz('convSubAccount')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="FLAGGA GLI UTENTI CON NAVI NON PRESENTI!" color="primary"
|
||||
@click="EseguiFunz('flagUtentiNaviNonPresenti')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="GENERA FLOTTE!" color="primary"
|
||||
@click="EseguiFunz('generaFlotte')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="METTI SOGNO E PAYPAL (SOLO VISU)" color="primary"
|
||||
@click="EseguiFunz('mettiSognoePaypalView')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="METTI SOGNO E PAYPAL" color="primary"
|
||||
@click="EseguiFunz('mettiSognoePaypal')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="1) CONVERTI TUTTA LA STRUTTURA NEL NUOVO SISTEMA !" color="negative"
|
||||
@click="EseguiFunz('creaTessituraeConv')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="2) CONVERTI Navi Num_Tess 3 e 5 in Record di ListaIngresso" color="negative"
|
||||
@click="EseguiFunz('convNaviTessinListaIngressoRec')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="3) Rendi Visibile i Record Nascosti di ListaINGRESSO" color="negative"
|
||||
@click="EseguiFunz('RendiVisibileIrecordNascosti')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<q-input v-model="riga" type="number" autofocus label="Riga" style="width: 50px;"></q-input>
|
||||
<q-input v-model="col" type="number" autofocus label="Col" style="width: 50px;"></q-input>
|
||||
<q-btn label="Visualizza Nave da 8" color="primary" @click="EseguiFunz('visuPlacca')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="Visualizza Nave" color="primary" @click="EseguiFunz('visuNave')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-input v-model="placca" type="textarea" autofocus label="Placca" autogrow
|
||||
style="width: 500px; height: 400px;"></q-input>
|
||||
<br>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Correggi Tabella Hours con userId" color="negative"
|
||||
@click="EseguiFunz('CorreggiTabHours')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
|
||||
<q-field
|
||||
stack-label
|
||||
dense
|
||||
>
|
||||
<template v-slot:control>
|
||||
<div class="self-center full-width no-outline text-center" tabindex="0">{{ris}}</div>
|
||||
</template>
|
||||
|
||||
</q-field>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./dbop.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './dbop';
|
||||
</style>
|
||||
1
src/views/admin/dbop/index.ts
Executable file
1
src/views/admin/dbop/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as dbop} from './dbop.vue'
|
||||
0
src/views/admin/extralist/extralist.scss
Executable file
0
src/views/admin/extralist/extralist.scss
Executable file
74
src/views/admin/extralist/extralist.ts
Executable file
74
src/views/admin/extralist/extralist.ts
Executable file
@@ -0,0 +1,74 @@
|
||||
import { defineComponent, PropType, ref } from 'vue'
|
||||
import { useQuasar } from 'quasar'
|
||||
import CTitleBanner from '@/components/CTitleBanner/CTitleBanner'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Extralist',
|
||||
components: { CTitleBanner },
|
||||
props: {
|
||||
mystr: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: '',
|
||||
},
|
||||
myval: {
|
||||
type: Number,
|
||||
required: true,
|
||||
default: 0,
|
||||
},
|
||||
mybool: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
setup() {
|
||||
const userStore = useUserStore()
|
||||
|
||||
const users_imported = ref('')
|
||||
const myloadingImport = ref(false)
|
||||
const errimport = ref(false)
|
||||
const okimport = ref(false)
|
||||
const myrisimport = ref('')
|
||||
|
||||
async function importExtraList() {
|
||||
myloadingImport.value = true
|
||||
errimport.value = false
|
||||
okimport.value = false
|
||||
|
||||
const mydata = {
|
||||
strdata: users_imported,
|
||||
locale: tools.getLocale(),
|
||||
}
|
||||
|
||||
const res: any = await userStore.importExtraList(mydata)
|
||||
|
||||
let esistiti = ''
|
||||
if (res.data.numalreadyexisted > 0)
|
||||
esistiti = ` ${res.data.numalreadyexisted} email già esistenti`
|
||||
|
||||
if (res.data.numadded > 0) {
|
||||
okimport.value = true
|
||||
myrisimport.value = `(${res.data.numadded} / ${res.data.numtot}) utenti extra importati !` + esistiti
|
||||
} else {
|
||||
errimport.value = true
|
||||
myrisimport.value = `Nessun utente extra importato (trovate ${res.data.numtot})` + esistiti
|
||||
}
|
||||
|
||||
myloadingImport.value = false
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
users_imported,
|
||||
myloadingImport,
|
||||
errimport,
|
||||
okimport,
|
||||
myrisimport,
|
||||
importExtraList,
|
||||
}
|
||||
},
|
||||
})
|
||||
46
src/views/admin/extralist/extralist.vue
Executable file
46
src/views/admin/extralist/extralist.vue
Executable file
@@ -0,0 +1,46 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner title="Importa Lista Utenti Extra:"></CTitleBanner>
|
||||
<div class="q-ma-md q-pa-sm text-center rounded-borders q-list--bordered">
|
||||
|
||||
<q-input
|
||||
v-model="users_imported"
|
||||
autofocus
|
||||
filled
|
||||
bordered
|
||||
color="blue-12"
|
||||
@keyup.enter.stop
|
||||
type="textarea"
|
||||
>
|
||||
</q-input>
|
||||
<div class="q-ma-md q-pa-sm text-center">
|
||||
<q-btn
|
||||
:loading="myloadingImport" rounded outline :disable="users_imported === ''"
|
||||
@click="importExtraList" color="primary" icon="email">
|
||||
Importa Lista Utenti Extra
|
||||
<template v-slot:loading>
|
||||
<q-spinner-hourglass class="on-left"/>
|
||||
Importazione Utenti in corso ...
|
||||
</template>
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<transition
|
||||
enter-active-class="animated fadeIn"
|
||||
leave-active-class="animated fadeOut"
|
||||
appear
|
||||
|
||||
>
|
||||
<CTitleBanner v-if="errimport" bgcolor="bg-warning" :title="myrisimport"></CTitleBanner>
|
||||
<CTitleBanner v-if="okimport" :title="myrisimport"></CTitleBanner>
|
||||
</transition>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./extralist.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './extralist';
|
||||
</style>
|
||||
1
src/views/admin/extralist/index.ts
Executable file
1
src/views/admin/extralist/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as extralist} from './extralist.vue'
|
||||
Reference in New Issue
Block a user