Files
newfreeplanet_OLD/src/components/CMyFieldDb/CMyFieldDb.vue

288 lines
10 KiB
Vue
Raw Normal View History

2021-09-04 15:05:34 +02:00
<template>
<div class="text-center">
<div class="row items-center justify-center q-gutter-md q-ma-xs">
<div class="q-ma-xs">
<q-field rounded outlined bg-color="blue-1" dense style="min-width:110px;">
<template v-slot:control>
<div class="centermydiv">
<div v-if="myimg" class="text-center">
<q-img
2021-09-19 02:59:24 +02:00
:src="myimg"
class="text-center"
style="height: 50px; width: 50px;"
:alt="title">
2021-09-04 15:05:34 +02:00
</q-img>
</div>
<div class="self-center full-width no-outline text-center" tabindex="0">{{ title }}</div>
</div>
</template>
</q-field>
</div>
<div :class="getclassCol(col) + ` q-ma-sm q-pa-sm col-grow rounded-borders`" style="border: 1px solid #bbb">
2021-09-19 02:59:24 +02:00
<div v-if="type === costanti.FieldType.date">
2021-10-01 19:42:21 +02:00
Date10:
2021-09-04 15:05:34 +02:00
<CDateTime
:label="col.label"
class="cursor-pointer"
2021-09-16 21:08:02 +02:00
v-model:value="myvalue"
2021-09-04 15:05:34 +02:00
:readonly="false"
:dense="true"
:canEdit="canEdit"
>
</CDateTime>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.onlydate">
2021-10-01 19:42:21 +02:00
Date11:
2021-09-04 15:05:34 +02:00
<CDateTime
:label="col.label"
class="cursor-pointer"
2021-09-16 21:08:02 +02:00
v-model:value="myvalue"
2021-09-04 15:05:34 +02:00
:readonly="false"
:dense="true"
:canEdit="canEdit"
view="date"
>
</CDateTime>
</div>
<div v-else :class="mycl">
2021-09-19 02:59:24 +02:00
<div v-if="type === costanti.FieldType.binary">
2021-09-04 15:05:34 +02:00
<CMyChipList
2021-09-19 02:59:24 +02:00
:type="costanti.FieldType.binary"
2021-09-04 15:05:34 +02:00
:value="myvalue"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:opticon="fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
2021-09-04 15:05:34 +02:00
</div>
<!-- Show Value -->
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.nationality">
2021-09-04 15:05:34 +02:00
<q-input
input-class="cursor-pointer text-center"
:readonly="true"
v-model="countryname"
rounded
dense
debounce="1000"
>
<div class="hidden">
2021-09-19 02:59:24 +02:00
<!--<vue-country-code
2021-09-04 15:05:34 +02:00
:defaultCountry="myvalue"
:disabledFetchingCountry="true"
@onSelect="selectcountry"
:preferredCountries="tools.getprefCountries"
:dropdownOptions="{ disabledDialCode: true }">
2021-09-19 02:59:24 +02:00
</vue-country-code>-->
2021-09-04 15:05:34 +02:00
</div>
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.intcode">
2021-09-04 15:05:34 +02:00
2021-09-19 02:59:24 +02:00
<div v-html="myvalprinted()"></div>
2021-09-04 15:05:34 +02:00
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="((type === costanti.FieldType.multiselect) || (type === costanti.FieldType.multioption))">
2021-09-04 15:05:34 +02:00
<CMyChipList
:type="type"
:value="myvalue"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:opticon="fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
2021-09-04 15:05:34 +02:00
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.select">
2021-09-04 15:05:34 +02:00
<CMyChipList
myclass="text-center"
2021-09-19 02:59:24 +02:00
:type="costanti.FieldType.select"
2021-09-04 15:05:34 +02:00
:value="myvalue"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:opticon="fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
2021-09-04 15:05:34 +02:00
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.html">
<div v-html="myvalprinted()">
2021-09-04 15:05:34 +02:00
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.boolean">
2021-09-16 21:08:02 +02:00
<q-toggle
2021-09-19 02:59:24 +02:00
dark color="green" v-model="myvalue" :label="col.title"
2021-10-01 03:08:43 +02:00
@update:model-value="savefieldboolean"></q-toggle>
2021-09-04 15:05:34 +02:00
</div>
<div v-else>
2021-09-19 02:59:24 +02:00
<div v-html="myvalprinted()"></div>
2021-09-04 15:05:34 +02:00
</div>
<q-popup-edit
2021-09-19 02:59:24 +02:00
v-if="(canEdit && type !== costanti.FieldType.boolean) && !disable"
2021-09-04 15:05:34 +02:00
v-model="myvalue"
:disable="col.disable"
:title="col.title"
@save="(val, initialValue) => savefield(val, initialValue, myq)"
2021-09-04 15:05:34 +02:00
buttons
v-slot="scope"
2021-09-04 15:05:34 +02:00
>
2021-09-19 02:59:24 +02:00
<div v-if="type === costanti.FieldType.boolean">
<q-checkbox v-model="scope.value" :label="col.title">
2021-09-04 15:05:34 +02:00
</q-checkbox>
<div v-html="visuValByType(myvalue)">
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.string">
2021-09-16 21:08:02 +02:00
<q-input
v-model="scope.value"
2021-09-19 02:59:24 +02:00
autogrow
@keyup.enter.stop
autofocus>
2021-09-04 15:05:34 +02:00
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.password">
2021-09-16 21:08:02 +02:00
<q-input
v-model="scope.value"
2021-09-19 02:59:24 +02:00
type="password"
@keyup.enter="scope.set"
2021-09-19 02:59:24 +02:00
autofocus>
2021-09-04 15:05:34 +02:00
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.number">
2021-09-16 21:08:02 +02:00
<q-input
v-model="scope.value" type="number"
@keyup.enter="scope.set"
2021-09-19 02:59:24 +02:00
autofocus>
2021-09-04 15:05:34 +02:00
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.hours">
2021-09-16 21:08:02 +02:00
<CMySelect
2021-09-19 02:59:24 +02:00
label="Ore" v-model:value="myvalue"
optval="_id" optlab="label"
:useinput="false"
o :options="tools.SelectHours">
2021-09-04 15:05:34 +02:00
</CMySelect>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.binary">
2021-09-16 21:08:02 +02:00
<CMyToggleList
2021-09-19 02:59:24 +02:00
:label="col.title"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
2021-09-19 02:59:24 +02:00
v-model:value="myvalue"
2021-10-01 03:08:43 +02:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)">
2021-09-04 15:05:34 +02:00
</CMyToggleList>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.html">
2021-09-16 21:08:02 +02:00
<CMyEditor v-model:value="myvalue" :title="title" @keyup.enter.stop>
2021-09-04 15:05:34 +02:00
</CMyEditor>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.select">
2021-09-16 21:08:02 +02:00
<CMySelect
2021-09-19 02:59:24 +02:00
:label="col.title"
v-model:value="myvalue"
2021-10-01 03:08:43 +02:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:options="globalStore.getTableJoinByName(col.jointable)"
2021-09-19 02:59:24 +02:00
:useinput="false">
2021-09-04 15:05:34 +02:00
</CMySelect>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.nationality">
2021-09-04 15:05:34 +02:00
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
<q-input
v-model="countryname"
:readonly="true"
rounded dense
debounce="1000"
@keyup.enter="scope.set"
2021-09-04 15:05:34 +02:00
:label="title">
<template v-slot:prepend>
<div style="font-size: 1rem;">
2021-09-19 02:59:24 +02:00
<!--<vue-country-code
2021-09-04 15:05:34 +02:00
:defaultCountry="myvalue"
:disabledFetchingCountry="true"
@onSelect="selectcountry"
:preferredCountries="tools.getprefCountries"
:dropdownOptions="{ disabledDialCode: true }">
2021-09-19 02:59:24 +02:00
</vue-country-code>-->
2021-09-04 15:05:34 +02:00
</div>
</template>
</q-input>
<div style="height: 180px;">
</div>
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.intcode">
2021-09-04 15:05:34 +02:00
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
2021-09-19 02:59:24 +02:00
<!--<vue-tel-input
2021-09-04 15:05:34 +02:00
@country-changed="intcode_change"
2021-09-16 21:08:02 +02:00
:value="myvalue"
@input="onInput"
2021-09-04 15:05:34 +02:00
:disabledFetchingCountry="true"
:preferredCountries="tools.getprefCountries"
:placeholder="$t('reg.cell')"
:enabledCountryCode="true"
inputClasses="clCell"
wrapperClasses="clCellCode">
2021-09-19 02:59:24 +02:00
</vue-tel-input>-->
2021-09-04 15:05:34 +02:00
<div style="height: 180px;">
</div>
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect">
2021-09-16 21:08:02 +02:00
<CMyToggleList
2021-09-19 02:59:24 +02:00
:label="col.title"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
2021-09-19 02:59:24 +02:00
v-model:value="myvalue"
2021-10-01 03:08:43 +02:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2021-09-19 02:59:24 +02:00
:isarray="true">
2021-09-04 15:05:34 +02:00
</CMyToggleList>
<!--
<q-select
v-model="scope.value"
2021-09-04 15:05:34 +02:00
rounded
dense
outlined
multiple
options-dense
2021-10-01 03:08:43 +02:00
:display-value="fieldsTable.getTitleByTable(col.jointable)"
2021-09-04 15:05:34 +02:00
emit-value
map-options
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:option-label="fieldsTable.getLabelByTable(col.jointable)"
:option-value="fieldsTable.getKeyByTable(col.jointable)"
2021-09-04 15:05:34 +02:00
style="min-width: 150px"
>
</q-select>
-->
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.multioption">
2021-09-04 15:05:34 +02:00
</div>
</q-popup-edit>
</div>
</div>
</div>
</div>
</template>
<script lang="ts" src="./CMyFieldDb.ts">
</script>
<style lang="scss" scoped>
@import './CMyFieldDb.scss';
</style>