- add categories: skills and subskills.
This commit is contained in:
@@ -111,6 +111,8 @@ export const shared_consts = {
|
|||||||
PROVINCE: 1,
|
PROVINCE: 1,
|
||||||
COMUNI: 2,
|
COMUNI: 2,
|
||||||
CITIES_SERVER: 3,
|
CITIES_SERVER: 3,
|
||||||
|
CAT_TXT: 4,
|
||||||
|
CAT_NO_SPAZI: 5,
|
||||||
},
|
},
|
||||||
|
|
||||||
BotType: [
|
BotType: [
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { colmySkills } from '@store/Modules/fieldsTable'
|
|||||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||||
import { IMySkill, ISearchList, ISkill } from 'model'
|
import { IMySkill, ISearchList, ISkill } from 'model'
|
||||||
import { shared_consts } from '@/common/shared_vuejs'
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CFinder',
|
name: 'CFinder',
|
||||||
@@ -26,6 +27,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
setup(props, { attrs, slots, emit }) {
|
setup(props, { attrs, slots, emit }) {
|
||||||
const mytable = 'users'
|
const mytable = 'users'
|
||||||
|
const { t } = useI18n();
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
@@ -33,6 +35,8 @@ export default defineComponent({
|
|||||||
const filtercustom: any = ref([])
|
const filtercustom: any = ref([])
|
||||||
const searchList = ref(<ISearchList[]>[])
|
const searchList = ref(<ISearchList[]>[])
|
||||||
|
|
||||||
|
const search = ref('')
|
||||||
|
|
||||||
const idSector = computed(() => {
|
const idSector = computed(() => {
|
||||||
let myval: any = null
|
let myval: any = null
|
||||||
myval = searchList.value.find((rec) => (rec.table === 'sectors'))
|
myval = searchList.value.find((rec) => (rec.table === 'sectors'))
|
||||||
@@ -114,9 +118,9 @@ export default defineComponent({
|
|||||||
label: 'Specializzazione',
|
label: 'Specializzazione',
|
||||||
table: 'subskills',
|
table: 'subskills',
|
||||||
key: 'idSubSkill',
|
key: 'idSubSkill',
|
||||||
value: 0,
|
value: tools.getCookie(tools.COOK_SEARCH + 'subskills' + '_' + tools.getCookie(tools.COOK_SEARCH + 'skills', costanti.FILTER_TUTTI), costanti.FILTER_TUTTI),
|
||||||
type: costanti.FieldType.multiselect,
|
type: costanti.FieldType.select,
|
||||||
arrvalue: [costanti.FILTER_TUTTI],
|
arrvalue: [],
|
||||||
addall: true,
|
addall: true,
|
||||||
filter: getFilterSubSkills,
|
filter: getFilterSubSkills,
|
||||||
showcount: true,
|
showcount: true,
|
||||||
@@ -302,9 +306,14 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function doSearch() {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(mounted)
|
onMounted(mounted)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
t,
|
||||||
tools,
|
tools,
|
||||||
costanti,
|
costanti,
|
||||||
colmySkills,
|
colmySkills,
|
||||||
@@ -314,6 +323,8 @@ export default defineComponent({
|
|||||||
filtercustom,
|
filtercustom,
|
||||||
searchList,
|
searchList,
|
||||||
idSector,
|
idSector,
|
||||||
|
search,
|
||||||
|
doSearch,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,6 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="bi-border-all">
|
<div class="bi-border-all">
|
||||||
<div class="q-ma-xs q-gutter-xs q-pa-xs">
|
<div class="q-ma-xs q-gutter-xs q-pa-xs">
|
||||||
|
|
||||||
|
<div v-if="true" class="q-mr-sm">
|
||||||
|
<q-input
|
||||||
|
v-model="search" filled dense type="search" debounce="500" :hint="t('finder.search_skill')"
|
||||||
|
v-on:keyup.enter="doSearch">
|
||||||
|
<template v-slot:after>
|
||||||
|
<q-btn dense label="" color="primary" @click="doSearch" icon="search"></q-btn>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
<CGridTableRec
|
<CGridTableRec
|
||||||
v-if="searchList.length > 0"
|
v-if="searchList.length > 0"
|
||||||
prop_mytable="myskills"
|
prop_mytable="myskills"
|
||||||
|
|||||||
@@ -1,112 +0,0 @@
|
|||||||
<template>
|
|
||||||
<q-layout view="lHh Lpr lFf">
|
|
||||||
<q-header elevated>
|
|
||||||
<q-toolbar>
|
|
||||||
<q-btn
|
|
||||||
flat
|
|
||||||
dense
|
|
||||||
round
|
|
||||||
icon="menu"
|
|
||||||
aria-label="Menu"
|
|
||||||
@click="toggleLeftDrawer"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<q-toolbar-title>
|
|
||||||
Quasar App
|
|
||||||
</q-toolbar-title>
|
|
||||||
|
|
||||||
<div>Quasar v{{ $q.version }}</div>
|
|
||||||
</q-toolbar>
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-drawer
|
|
||||||
v-model="leftDrawerOpen"
|
|
||||||
show-if-above
|
|
||||||
bordered
|
|
||||||
class="bg-grey-1"
|
|
||||||
>
|
|
||||||
<q-list>
|
|
||||||
<q-item-label
|
|
||||||
header
|
|
||||||
class="text-grey-8"
|
|
||||||
>
|
|
||||||
Essential Links
|
|
||||||
</q-item-label>
|
|
||||||
|
|
||||||
<EssentialLink
|
|
||||||
v-for="link in essentialLinks"
|
|
||||||
:key="link.title"
|
|
||||||
v-bind="link"
|
|
||||||
/>
|
|
||||||
</q-list>
|
|
||||||
</q-drawer>
|
|
||||||
|
|
||||||
<q-page-container>
|
|
||||||
<router-view />
|
|
||||||
</q-page-container>
|
|
||||||
</q-layout>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import EssentialLink from 'components/EssentialLink.vue'
|
|
||||||
|
|
||||||
const linksList = [
|
|
||||||
{
|
|
||||||
title: 'Docs',
|
|
||||||
caption: 'quasar.dev',
|
|
||||||
icon: 'school',
|
|
||||||
link: 'https://quasar.dev',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Github',
|
|
||||||
caption: 'github.com/quasarframework',
|
|
||||||
icon: 'code',
|
|
||||||
link: 'https://github.com/quasarframework',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Discord Chat Channel',
|
|
||||||
caption: 'chat.quasar.dev',
|
|
||||||
icon: 'chat',
|
|
||||||
link: 'https://chat.quasar.dev',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Forum',
|
|
||||||
caption: 'forum.quasar.dev',
|
|
||||||
icon: 'record_voice_over',
|
|
||||||
link: 'https://forum.quasar.dev',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Twitter',
|
|
||||||
caption: '@quasarframework',
|
|
||||||
icon: 'rss_feed',
|
|
||||||
link: 'https://twitter.quasar.dev',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Facebook',
|
|
||||||
caption: '@QuasarFramework',
|
|
||||||
icon: 'public',
|
|
||||||
link: 'https://facebook.quasar.dev',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Quasar Awesome',
|
|
||||||
caption: 'Community Quasar projects',
|
|
||||||
icon: 'favorite',
|
|
||||||
link: 'https://awesome.quasar.dev',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
import { Vue, Options } from 'vue-class-component'
|
|
||||||
|
|
||||||
@Options({
|
|
||||||
components: { EssentialLink },
|
|
||||||
})
|
|
||||||
export default class MainLayout extends Vue {
|
|
||||||
leftDrawerOpen = false;
|
|
||||||
|
|
||||||
essentialLinks = linksList;
|
|
||||||
|
|
||||||
toggleLeftDrawer() {
|
|
||||||
this.leftDrawerOpen = !this.leftDrawerOpen
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@@ -1,8 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
Mia Pagina 404
|
<q-banner rounded class="bg-negative text-white">
|
||||||
|
<div class="text-h6 text-center">
|
||||||
|
Pagina non Trovata
|
||||||
|
</div>
|
||||||
|
</q-banner>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" src="./My404page.ts">
|
<script lang="ts" src="./My404page.ts">
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
im
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { useI18n } from '@src/boot/i18n'
|
|||||||
import { useUserStore } from '@store/UserStore'
|
import { useUserStore } from '@store/UserStore'
|
||||||
import { useGlobalStore } from '@store/globalStore'
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
|
import { IParamsQuery } from 'model'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'Sendpushnotif',
|
name: 'Sendpushnotif',
|
||||||
@@ -18,6 +19,9 @@ export default defineComponent({
|
|||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
|
|
||||||
|
const arrSector = ref(<any[]>[])
|
||||||
|
const arrSkill = ref(<any[]>[])
|
||||||
|
|
||||||
|
|
||||||
const incaricamento = ref(false)
|
const incaricamento = ref(false)
|
||||||
|
|
||||||
@@ -40,11 +44,186 @@ export default defineComponent({
|
|||||||
label: 'Tabella Cities',
|
label: 'Tabella Cities',
|
||||||
value: shared_consts.Cmd.CITIES_SERVER
|
value: shared_consts.Cmd.CITIES_SERVER
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Importa Categorie da TXT',
|
||||||
|
value: shared_consts.Cmd.CAT_TXT
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'converti da TXT seperato senza spazi',
|
||||||
|
value: shared_consts.Cmd.CAT_NO_SPAZI
|
||||||
|
},
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
function created() {
|
function created() {
|
||||||
inputfile.value = ''
|
inputfile.value = ''
|
||||||
|
|
||||||
|
const sortBy = 'descr'
|
||||||
|
const descending = 1
|
||||||
|
const myobj: any = {}
|
||||||
|
if (descending)
|
||||||
|
myobj[sortBy] = -1
|
||||||
|
else
|
||||||
|
myobj[sortBy] = 1
|
||||||
|
|
||||||
|
const params: IParamsQuery = {
|
||||||
|
table: 'sectors',
|
||||||
|
startRow: 0,
|
||||||
|
endRow: 10000,
|
||||||
|
filter: '',
|
||||||
|
filterand: '',
|
||||||
|
filtersearch: '',
|
||||||
|
filtersearch2: '',
|
||||||
|
filtercustom: '',
|
||||||
|
sortBy: myobj,
|
||||||
|
descending,
|
||||||
|
userId: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
globalStore.loadTable(params).then((data) => {
|
||||||
|
arrSector.value = data.rows
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
params.table = 'skills'
|
||||||
|
globalStore.loadTable(params).then((data) => {
|
||||||
|
arrSkill.value = data.rows
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function createSector(cat: string) {
|
||||||
|
const myid = arrSector.value.length + 1
|
||||||
|
arrSector.value.push({_id: myid, descr: cat})
|
||||||
|
return myid
|
||||||
|
}
|
||||||
|
|
||||||
|
function findidSector(cat: string) {
|
||||||
|
const rec = arrSector.value.find((rec) => rec.descr === cat)
|
||||||
|
if (rec) {
|
||||||
|
return rec._id
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
function findidSkill(cat: string) {
|
||||||
|
const rec = arrSkill.value.find((rec) => rec.descr === cat)
|
||||||
|
if (rec) {
|
||||||
|
return rec._id
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createSkill(cat: string) {
|
||||||
|
const myid = arrSkill.value.length + 1
|
||||||
|
arrSkill.value.push({_id: myid, descr: cat})
|
||||||
|
return myid
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function importCmdTxt(cmd: number, testo: string) {
|
||||||
|
|
||||||
|
const delim = '\n';
|
||||||
|
const righe = 1;
|
||||||
|
let indrec = 0;
|
||||||
|
let myarr = tools.CSVToArray(testo, delim)
|
||||||
|
|
||||||
|
let sector = ''
|
||||||
|
let skill = ''
|
||||||
|
let sotto_cat = ''
|
||||||
|
let idSector = 0
|
||||||
|
let idSkill = 0
|
||||||
|
|
||||||
|
let strskills = '';
|
||||||
|
let strsubskills = '';
|
||||||
|
let strsectors = '';
|
||||||
|
|
||||||
|
let indrecsub = 1;
|
||||||
|
|
||||||
|
myarr = myarr[0]
|
||||||
|
let arrstr = []
|
||||||
|
|
||||||
|
// debugger;
|
||||||
|
for (let i = 0; i < myarr.length; i = i + righe) {
|
||||||
|
arrstr = myarr[i].split(',')
|
||||||
|
sector = arrstr[0]
|
||||||
|
skill = arrstr[1]
|
||||||
|
sotto_cat = arrstr[2]
|
||||||
|
// sotto_cat = myarr[i].replace('\'', '\\\'')
|
||||||
|
// sector = myarr[i+2]
|
||||||
|
if (skill)
|
||||||
|
skill = skill.replace('\'', '\\\'')
|
||||||
|
if (sector)
|
||||||
|
sector = sector.replace('\'', '\\\'')
|
||||||
|
|
||||||
|
idSector = findidSector(sector)
|
||||||
|
if (!idSector) {
|
||||||
|
idSector = createSector(sector)
|
||||||
|
|
||||||
|
// sectors
|
||||||
|
strsectors += '{ \n'
|
||||||
|
strsectors += ' _id:' + idSector + ','
|
||||||
|
strsectors += ' descr:\'' + sector + '\','
|
||||||
|
strsectors += '}, \n'
|
||||||
|
}
|
||||||
|
|
||||||
|
idSkill = findidSkill(skill)
|
||||||
|
if (!idSkill) {
|
||||||
|
idSkill = createSkill(skill)
|
||||||
|
|
||||||
|
// skills
|
||||||
|
strskills += '{ \n'
|
||||||
|
strsectors += ' _id:' + idSkill + ','
|
||||||
|
strskills += ' idSector: [' + idSector + '],'
|
||||||
|
strskills += ' descr:\'' + skill + '\','
|
||||||
|
strskills += '}, \n'
|
||||||
|
}
|
||||||
|
|
||||||
|
// subskills
|
||||||
|
strsubskills += '{ \n'
|
||||||
|
strsubskills += ' idSkill: ' + idSkill + ','
|
||||||
|
strsubskills += ' descr:\'' + sotto_cat + '\','
|
||||||
|
strsubskills += '}, \n'
|
||||||
|
|
||||||
|
indrecsub++
|
||||||
|
}
|
||||||
|
|
||||||
|
let ris = 'module.exports = {\n' +
|
||||||
|
' list: [' + strsectors + ']'
|
||||||
|
ris += '<br><br><br><br>'
|
||||||
|
ris += 'module.exports = {\n' +
|
||||||
|
' list: [' + strskills + ']'
|
||||||
|
ris += '<br><br><br><br>'
|
||||||
|
ris += 'module.exports = {\n' +
|
||||||
|
' list: [' + strsubskills + ']'
|
||||||
|
|
||||||
|
return ris
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function importNoSpazi(cmd: number, testo: string) {
|
||||||
|
|
||||||
|
const delim = '\n';
|
||||||
|
const righe = 3;
|
||||||
|
let indrec = 0;
|
||||||
|
let myarr = tools.CSVToArray(testo, delim)
|
||||||
|
|
||||||
|
let sector = ''
|
||||||
|
let sotto_cat = ''
|
||||||
|
|
||||||
|
myarr = myarr[0]
|
||||||
|
|
||||||
|
let txt = ''
|
||||||
|
|
||||||
|
// debugger;
|
||||||
|
for (let i = 0; i < myarr.length; i = i + righe) {
|
||||||
|
sotto_cat = myarr[i].replace('\'', '\\\'')
|
||||||
|
sector = myarr[i+2]
|
||||||
|
|
||||||
|
txt += sotto_cat + ',' + sector + '<br>'
|
||||||
|
}
|
||||||
|
|
||||||
|
return txt
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function importCmd(cmd: number, testo: string) {
|
function importCmd(cmd: number, testo: string) {
|
||||||
@@ -56,6 +235,10 @@ export default defineComponent({
|
|||||||
delim = ','
|
delim = ','
|
||||||
} else if ((cmd === shared_consts.Cmd.COMUNI) || (cmd === shared_consts.Cmd.CITIES_SERVER)) {
|
} else if ((cmd === shared_consts.Cmd.COMUNI) || (cmd === shared_consts.Cmd.CITIES_SERVER)) {
|
||||||
delim = ';'
|
delim = ';'
|
||||||
|
} else if (cmd === shared_consts.Cmd.CAT_TXT) {
|
||||||
|
return importCmdTxt(cmd, testo);
|
||||||
|
} else if (cmd === shared_consts.Cmd.CAT_NO_SPAZI) {
|
||||||
|
return importNoSpazi(cmd, testo);
|
||||||
}
|
}
|
||||||
|
|
||||||
const myarr = tools.CSVToArray(testo, delim)
|
const myarr = tools.CSVToArray(testo, delim)
|
||||||
|
|||||||
@@ -17,6 +17,10 @@
|
|||||||
label="Esegui"
|
label="Esegui"
|
||||||
@click="eseguiCmd"></q-btn>
|
@click="eseguiCmd"></q-btn>
|
||||||
{{risultato}}
|
{{risultato}}
|
||||||
|
|
||||||
|
<br><br><br><br><br>
|
||||||
|
VERSIONE HTML:
|
||||||
|
<div v-html="risultato"></div>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -906,7 +906,10 @@ const msg_it = {
|
|||||||
cancel_ask_group_short: 'Annulla richiesta',
|
cancel_ask_group_short: 'Annulla richiesta',
|
||||||
refuse_ask_group_short: 'Rifiuta la richiesta',
|
refuse_ask_group_short: 'Rifiuta la richiesta',
|
||||||
pwd: 'Password per accedere',
|
pwd: 'Password per accedere',
|
||||||
}
|
},
|
||||||
|
finder: {
|
||||||
|
search_skill: 'Cerca una specializzazione'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user