Pomenene vytvaranie, multiselectu

This commit is contained in:
2023-02-02 10:49:48 +01:00
parent 760a37a9af
commit b09863b98f
6 changed files with 76 additions and 18 deletions

View File

@@ -21,7 +21,7 @@ defineProps({
v-html="link.label" />
<Link v-else
class="mr-1 mb-1 px-4 py-3 text-sm leading-4 border rounded hover:bg-white focus:border-indigo-500 focus:text-indigo-500"
:class="{ 'bg-blue-700 text-white': link.active }" method="post" :data="data" :href="link.url" v-html="link.label" />
:class="{ 'bg-blue-700 text-white': link.active }" method="post" :data="data" :href="link.url" v-html="link.label" as="button" />
</template>
</div>
</div>

View File

@@ -64,9 +64,9 @@ function subRpo(val,kz,i) {
class="row-data m-2 d-flex"
>
<div class="key p-2 d-inline-block">
<div class="text-capitalize ">
<!-- <div class="text-capitalize "> -->
{{ printRpoName(row) }}
</div>
<!-- </div> -->
</div>
<div v-if="['string', 'number'].includes(checkValueType(data[row]))">
<div class="value p-2 d-inline-block">{{ data[row] }}</div>

View File

@@ -1,5 +1,6 @@
let rpoFields =
[{name: 'identifiers.value', desc: 'Identifikátor' , type: 'String'},
[
{name: 'identifiers.value', desc: 'Identifikátor' , type: 'String'},
{name: 'identifiers.validFrom', desc: 'Identifikátor, platnosť od', type: 'Date'},
{name: 'fullNames.value', desc: 'Plné meno', type: 'String' },
{name: 'fullNames.validFrom', desc: 'Plné meno, platnosť od', type: 'Date' },

View File

@@ -97,7 +97,8 @@
"codelistCode": {
"name": "legalForms.codelistCode",
"desc": "kód zoznamu"
"desc": "CL",
"type": "List"
},
"code": {
"name": "legalForms.code",
@@ -137,10 +138,17 @@
}
},
"statutoryBodies": {
"name" : "statutoryBodies",
"desc" : "Štatutárny orgán",
"type" : "Object",
"stakeholderType": {
"name": "statutoryBodies.stakeholderType",
"desc": "Zainteresovaná osoba",
"type": "Object",
"codelistCode": {
"name": "statutoryBodies.stakeholderType.codelistCode",
"desc": "zoznam kód"
"desc": "CL",
"type": "List"
},
"code": {
"name": "statutoryBodies.stakeholderType.code",
@@ -149,7 +157,7 @@
},
"value": {
"name": "statutoryBodies.stakeholderType.value",
"desc": "Partneri v podnikaní",
"desc": "Hodnota",
"type": "String"
}
},
@@ -159,6 +167,9 @@
"type": "Date"
},
"address": {
"name": "statutoryBodies.address.street",
"desc": "Adresa",
"type": "Object",
"street": {
"name": "statutoryBodies.address.street",
"desc": "ulica",
@@ -193,7 +204,8 @@
"codelistCode": {
"name": "statutoryBodies.address.country.codelistCode",
"desc": "krajina CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "statutoryBodies.address.country.code",
@@ -232,7 +244,7 @@
"stakeholders": {
"name": "stakeholders",
"desc": "Zainteresovana osoba",
"type": "Number",
"type": "Object",
"stakeholderType": {
"name": "stakeholders",
@@ -241,7 +253,8 @@
"codelistCode": {
"name": "stakeholders.stakeholderType.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "stakeholders.stakeholderType.code",
@@ -298,7 +311,8 @@
"codelistCode": {
"name": "stakeholders.address.country.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "stakeholders.address.country.code",
@@ -367,6 +381,11 @@
"desc": "platné od",
"type": "Date"
},
"validTo": {
"name": "equities.validTo",
"desc": "platné do",
"type": "Date"
},
"value": {
"name": "equities.value",
"desc": "Hodnota",
@@ -379,7 +398,8 @@
"codelistCode": {
"name": "equities.currency.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "equities.currency.code",
@@ -438,7 +458,8 @@
"codelistCode": {
"name": "deposits.currency.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "deposits.currency.code",
@@ -465,7 +486,8 @@
"codelistCode": {
"name": "sourceRegister.value.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "sourceRegister.value.code",
@@ -520,7 +542,8 @@
"mainActivity": {
"codelistCode": {
"name": "statisticalCodes.mainActivity.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "statisticalCodes.mainActivity.code",
@@ -536,7 +559,8 @@
"esa2010": {
"codelistCode": {
"name": "statisticalCodes.esa2010.codelistCode",
"desc": "CL"
"desc": "CL",
"type": "List"
},
"code": {
"name": "statisticalCodes.esa2010.code",

View File

@@ -13,9 +13,10 @@ import QueryBuilder from '@phongthien/vue3-query-builder';
import Input from '@/Components/Input.vue';
import Number from '@/Components/Number.vue';
import JsonQueryBuilder from '@/Components/JsonQueryBuilder.vue';
import { onMounted, ref } from 'vue';
import { onMounted, ref, computed } from 'vue';
import { defineEmits } from 'vue'
import { Inertia } from '@inertiajs/inertia';
import rpoJsonData from '../Data/RpoTree.json';
const query = ref({
condition: 'and',
@@ -44,6 +45,37 @@ const submit = () => {
Inertia.post(`/search`, query.value);
};
function createRPOmulti(tree,flatListRpo, level = 0, fullPathRpo = []) {
console.log('keys=',Object.keys(tree));
console.log('TT=',typeof tree);
let fullPath = [ ...fullPathRpo ] ;
if (tree.desc != undefined) fullPath.push(tree.desc);
if (level == 0 || tree.type == "Object" || tree.type == "Array" || tree.type == undefined) {
Object.keys(tree).forEach(k => {
console.log('k=',k);
console.log('obj=',tree[k]);
console.log(typeof tree[k]);
console.log('t=',tree[k].type);
console.log('rec=',k);
if (typeof tree[k] != 'string') {
console.log('DESC=',tree[k].desc);
createRPOmulti(tree[k], flatListRpo, level + 1, fullPath );
}
});
} else {
flatListRpo.push({"name":tree.name, "type": tree.type, "desc": fullPath.join(' => ') });
}
}
const rpoMultiselect = computed(() => {
console.log('Rpo Multiselect');
var flatList = [];
createRPOmulti(rpoJsonData, flatList);
return flatList;
});
</script>
<template>
@@ -51,7 +83,7 @@ const submit = () => {
<Head title="Register" />
<JsonQueryBuilder :query="query" :queryOptions="rpoFields" @run-query="submit" ></JsonQueryBuilder>
<JsonQueryBuilder :query="query" :queryOptions="rpoMultiselect" @run-query="submit" ></JsonQueryBuilder>
</GuestLayout>
</template>

View File

@@ -21,6 +21,7 @@ defineProps({
<Head title="Register výsledky" />
<Pagination :links="result.links" :data="query"/>
<div v-for="r in result.data" :key="r.id">
<h2 class="mt-5 bg-black text-white font-semibold text-xl">{{ r["fullNames"][0]["value"] }}</h2>
<RpoRecord2 :data="r"/>
</div>
<Pagination :links="result.links" :data="query"/>