Files
salvato.newfreeplanet/src/components/CMyFieldDb/CMyFieldDb.ts
Surya Paolo 80610b3627 - Invia Ris a e Ricevi Ris
- Tutorial Guidato Passi da Compiere
- Provincia in cui vivi
- Policy aggiornata
2023-03-11 01:01:23 +01:00

195 lines
4.2 KiB
TypeScript
Executable File

import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useGlobalStore } from '@store/globalStore'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { tools } from '@store/Modules/tools'
import { costanti } from '@costanti'
import { CMyPopupEdit } from '@/components/CMyPopupEdit'
import { IColGridTable, IOperators, ISpecialField } from 'model'
import MixinBase from '@/mixins/mixin-base'
export default defineComponent({
name: 'CMyFieldDb',
emits: ['save'],
props: {
title: {
type: String,
required: true,
},
hint: {
type: String,
required: false,
default: '',
},
mykey: {
type: String,
required: true,
},
mysubkey: {
type: String,
required: false,
default: '',
},
specialField: {
type: Object as PropType<ISpecialField>,
required: false,
default: null,
},
filter: {
type: [String, Function],
required: false,
default: null,
},
indrec: {
type: Number,
required: false,
default: -1,
},
maxlength: {
type: Number,
required: false,
default: 0,
},
minlength: {
type: Number,
required: false,
default: 0,
},
mysubsubkey: {
type: String,
required: false,
default: '',
},
type: {
type: Number,
required: true,
},
serv: {
type: Boolean,
required: false,
default: false,
},
canModify: {
type: Boolean,
required: false,
default: true,
},
disable: {
type: Boolean,
required: false,
default: false,
},
jointable: {
type: String,
required: false,
default: '',
},
table: {
type: String,
required: false,
default: 'settings',
},
myimg: {
type: String,
required: false,
default: '',
},
rec: {
type: Object,
required: false,
default: null,
},
mycol: {
type: Object as PropType<IColGridTable> | undefined,
required: false,
default: () => {
return { }
},
},
id: {
type: String,
required: false,
default: '',
},
idmain: {
type: String,
required: false,
default: '',
},
tablesel: {
type: String,
required: false,
default: '',
},
pickup: {
type: Boolean,
required: false,
default: false,
},
},
components: { CMyPopupEdit },
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
const globalStore = useGlobalStore()
const col = ref(<IColGridTable>{
name: 'test', fieldtype: 0, showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView, visible: true, maxlength: props.maxlength, minlength: props.minlength
})
const row = ref({})
const { setValDb, getValDb } = MixinBase()
function showandsel(row: any, col: any, newval: any, valinitial: any) {
console.log('showandsel CMyFieldDb', row, col, newval)
if (newval !== valinitial) {
setValDb($q, props.mykey, newval, props.type, props.serv, props.table, props.mysubkey, props.id, props.indrec, props.mysubsubkey, props.specialField)
}
}
function save(newval: any) {
emit('save', newval)
}
function withBorder() {
if (col.value)
return col.value.fieldtype !== costanti.FieldType.onlydate && col.value.fieldtype !== costanti.FieldType.date
else
return false
}
function mounted() {
if (props.rec) {
row.value = props.rec
}
if (props.mycol && props.mycol.name !== '') {
col.value = props.mycol
} else {
// console.log('Tab = ', props.table, 'key=', props.mykey, 'mycolProp', props.mycol)
col.value = fieldsTable.getColByTable(props.table, props.mykey)
}
// console.log('COL = ', col.value, 'MyCol passed', props.mycol)
}
onMounted(mounted)
return {
tools,
costanti,
fieldsTable,
globalStore,
col,
row,
showandsel,
withBorder,
save,
}
},
})