195 lines
4.2 KiB
TypeScript
Executable File
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,
|
|
}
|
|
},
|
|
})
|
|
|