- miglioramenti ricerca titoli e modifica del trafiletto

- miglior visualizzazione delle liste
This commit is contained in:
Surya Paolo
2025-04-30 13:27:47 +02:00
parent 493ebf51f3
commit 358f0d6816
40 changed files with 1093 additions and 148 deletions

View File

@@ -15,6 +15,7 @@ import { CCurrencyValue } from '../CCurrencyValue'
import { CMapEditAddressByCoord } from '../CMapEditAddressByCoord'
import { CInput } from '../CInput'
import { CMyEditor } from '../CMyEditor'
import { CMyEditorAI } from '../CMyEditorAI'
import { CGallery } from '../CGallery'
import { CSelectImage } from '../CSelectImage'
import { CAccomodation } from '../CAccomodation'
@@ -219,7 +220,7 @@ export default defineComponent({
},
},
components: {
CMyChipList, CDateTime, CDate, CMyToggleList, CMySelect, CMyEditor, CGallery,
CMyChipList, CDateTime, CDate, CMyToggleList, CMySelect, CMyEditor, CGallery, CMyEditorAI,
CCurrencyValue, CLabel, CAccomodation, CSelectImage, CMapEditAddressByCoord, CInput,
},
setup(props, { emit }) {
@@ -254,6 +255,27 @@ export default defineComponent({
minlength: props.mycol ? props.mycol.minlength : undefined
})
const copyToClipboard = (text) => {
navigator.clipboard.writeText(text)
.then(() => {
$q.notify({
message: 'Testo copiato negli appunti!',
color: 'positive',
icon: 'check',
position: 'top'
});
})
.catch(err => {
console.error('Errore durante la copia:', err);
$q.notify({
message: 'Errore nella copia',
color: 'negative',
icon: 'error',
position: 'top'
});
});
};
const { setValDb, getValDb } = MixinBase()
const { getMyUsername } = MixinUsers()
@@ -414,7 +436,7 @@ export default defineComponent({
}
function changevalRecOrig(newval: any, subcol: string = '') {
console.log('changevalRec', newval)
// console.log('changevalRec', newval)
// if (!props.insertMode || (props.insertMode && col.value.fieldtype !== costanti.FieldType.multioption)) {
if (col.value && col.value.allowchar === costanti.ALLOWCHAR_CODE) {
newval = tools.removespaces_slash(newval)
@@ -481,8 +503,7 @@ export default defineComponent({
}
function mounted() {
console.log('mounted CMyPopupEdit')
//console.log('mounted CMyPopupEdit')
myrow.value = props.rec && props.isrec ? { ...props.rec } : { ...props.row }
@@ -928,6 +949,7 @@ export default defineComponent({
}
}
onBeforeMount(mounted)
@@ -975,6 +997,7 @@ export default defineComponent({
handleKeydown,
handleCancel,
popupEditRef,
copyToClipboard,
}
}
})

View File

@@ -183,6 +183,36 @@
</div>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.op_andor">
<div>
<q-select
v-if="isInModif"
v-model="myvalue"
:label="t('dialog.condition')"
:options="[
{ label: $t('dialog.conditionAND'), value: costanti.OP_ANDOR.OP_AND },
{ label: $t('dialog.conditionOR'), value: costanti.OP_ANDOR.OP_OR },
]"
emit-value
map-options
@update:model-value="changevalRec"
>
</q-select>
<span v-else>
<div class="text-subtitle2 text-primary text-weight-medium">
{{ $t('dialog.condition') }}
</div>
<q-chip
class="q-ma-md q-pa-sm"
:color="myvalue === costanti.OP_ANDOR.OP_AND ? 'red' : 'green'"
text-color="white"
:icon="myvalue === costanti.OP_ANDOR.OP_AND ? 'fas fa-filter' : 'fas fa-sliders-h'"
:label="myvalue === costanti.OP_ANDOR.OP_AND ? $t('dialog.conditionAND') : $t('dialog.conditionOR')"
></q-chip>
</span>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.string || col.fieldtype === costanti.FieldType.crypted">
<div
v-if="isInModif"
@@ -1072,6 +1102,22 @@
</q-checkbox>
<span v-html="visuValByType(myvalue, col, row)"></span>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.op_andor">
<q-select
v-model="scope.value"
:label="t('dialog.condition')"
:options="[
{ label: 'Filtra se Tutti i criteri sono veri (AND)', value: costanti.OP_ANDOR.OP_AND },
{ label: 'Filtra se almeno uno dei criteri è vero (OR)', value: costanti.OP_ANDOR.OP_OR },
]"
emit-value
map-options
:color="scope.value === costanti.OP_ANDOR.OP_AND ? 'red' : 'green'"
:icon="scope.value === costanti.OP_ANDOR.OP_AND ? 'fas fa-filter' : 'fas fa-sliders-h'"
@update:model-value="changevalRec"
>
</q-select>
</div>
<div
v-else-if="col.fieldtype === costanti.FieldType.string || col.fieldtype === costanti.FieldType.crypted"
>
@@ -1097,6 +1143,25 @@
</template>
</q-input>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.editor_nohtml">
<div
class="q-pa-md"
style="min-width: 600px;"
>
<CMyEditorAI
v-model:value="scope.value"
:title="col.visulabel ? t(col.label_trans) : visulabel ? addstrrequired + col.label : undefined"
@keyup.enter.stop
:showButtons="false"
:canModify="canModify"
:hideTools="true"
@update:value="changevalRec"
@showandsave="Savedb"
:maxlength="col.maxlength"
>
</CMyEditorAI>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.number">
<div v-if="visulabel">
<q-input