Files
salvato.newfreeplanet/src/components/CMyFieldDb/CMyFieldDb.ts

269 lines
6.9 KiB
TypeScript
Raw Normal View History

2021-09-16 21:08:02 +02:00
import { defineComponent, PropType, ref, watch } from 'vue'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { IColGridTable } from 'model'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { tools } from '@store/Modules/tools'
import { toolsext } from '@store/Modules/toolsext'
import { costanti } from '@costanti'
2021-09-04 15:05:34 +02:00
import MixinBase from '../../mixins/mixin-base'
2021-10-28 00:37:48 +02:00
import MixinUsers from '../../mixins/mixin-users'
2021-09-19 02:59:24 +02:00
import { CMyEditor } from '@/components/CMyEditor'
import { CMySelect } from '@/components/CMySelect'
import { CMyChipList } from '@/components/CMyChipList'
import { CMyToggleList } from '@/components/CMyToggleList'
import { CDateTime } from '@/components/CDateTime'
2021-10-28 00:37:48 +02:00
import { CGallery } from '@/components/CGallery'
2021-09-04 15:05:34 +02:00
2021-10-01 03:08:43 +02:00
2021-09-16 21:08:02 +02:00
export default defineComponent({
name: 'CMyFieldDb',
props: {
title: {
type: String,
required: true,
},
mykey: {
type: String,
required: true,
},
mysubkey: {
type: String,
required: false,
default: '',
},
2021-10-08 00:38:22 +02:00
indrec: {
type: Number,
required: false,
default: -1,
},
mysubsubkey: {
type: String,
required: false,
default: '',
},
2021-09-16 21:08:02 +02:00
type: {
type: Number,
required: true,
},
serv: {
type: Boolean,
required: false,
default: false,
},
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: '',
},
id: {
type: String,
required: false,
default: '',
},
idmain: {
type: String,
required: false,
default: '',
},
},
2021-10-28 00:37:48 +02:00
components: { CMyEditor, CMySelect, CMyChipList, CMyToggleList, CDateTime, CGallery },
2021-09-16 21:08:02 +02:00
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
const globalStore = useGlobalStore()
const myvalue = ref('')
const col: IColGridTable = { name: 'test' }
const canEdit = ref(true)
const countryname = ref('')
const { setValDb, getValDb } = MixinBase()
2021-10-28 00:37:48 +02:00
const { getMyUsername } = MixinUsers()
2021-09-16 21:08:02 +02:00
function crea() {
myvalue.value = getValDb(props.mykey, props.serv, '', props.table, props.mysubkey, props.id, props.idmain)
col.jointable = props.jointable
col.fieldtype = props.type
col.label = props.title
// console.log('CMyFieldDb crea', myvalue)
2021-09-04 15:05:34 +02:00
}
2021-09-16 21:08:02 +02:00
watch(() => props.id, (newval, oldval) => {
crea()
})
function getclassCol(col: any) {
if (col) {
let mycl = (props.disable || col.disable) ? '' : 'colmodif '
mycl += ((col.fieldtype === costanti.FieldType.date) || (col.fieldtype === costanti.FieldType.onlydate)) ? ' coldate flex flex-container ' : ''
return mycl
2021-09-04 15:05:34 +02:00
} else {
2021-09-16 21:08:02 +02:00
return ''
2021-09-04 15:05:34 +02:00
}
2021-09-16 21:08:02 +02:00
}
function visuValByType(val: any) {
if (col.fieldtype === costanti.FieldType.date) {
if (val === undefined) {
return '[]'
} else {
return tools.getstrDateTime(val)
}
} else if (col.fieldtype === costanti.FieldType.onlydate) {
if (val === undefined) {
return '[]'
} else {
return tools.getstrDate(val)
}
} else if (col.fieldtype === costanti.FieldType.boolean) {
return (val) ? t('dialog.yes') : t('dialog.no')
} else if (col.fieldtype === costanti.FieldType.binary) {
if (val === undefined)
return '[---]'
else
return globalStore.getArrStrByValueBinary(col, val)
} else if (col.fieldtype === costanti.FieldType.select) {
if (val === undefined)
return '[---]'
else
return globalStore.getValueByTable(col, val)
} else if (col.fieldtype === costanti.FieldType.multiselect) {
if (val === undefined)
return '[---]'
else
return globalStore.getMultiValueByTable(col, val)
} else if (col.fieldtype === costanti.FieldType.multioption) {
if (val === undefined)
return '[---]'
else
return globalStore.getMultiValueByTable(col, val)
} else if (col.fieldtype === costanti.FieldType.password) {
if (val === undefined)
return '[---]'
else
return '***************'
2021-09-04 15:05:34 +02:00
} else {
2021-09-16 21:08:02 +02:00
if (val === undefined)
return ' <span class="text-grey">(' + t('reg.select') + ')</span> '
else if (val === '') {
return ' <span class="text-grey">(' + t('reg.select') + ')</span> '
2021-09-04 15:05:34 +02:00
} else {
2021-09-16 21:08:02 +02:00
let mystr = tools.firstchars(val, 5000)
if (val) {
if (val.length > 5000)
mystr += '...'
} else {
return val
}
return mystr
2021-09-04 15:05:34 +02:00
}
}
}
2021-09-16 21:08:02 +02:00
function mycl() {
if (props.disable) {
return 'cldisable'
}
}
function myvalprinted() {
2021-09-19 02:59:24 +02:00
return visuValByType(myvalue.value)
2021-09-16 21:08:02 +02:00
}
function savefield(value: any, initialval: any, myq: any) {
2021-09-16 21:08:02 +02:00
myvalue.value = value
2021-10-08 00:38:22 +02:00
setValDb(myq, props.mykey, myvalue.value, props.type, props.serv, props.table, props.mysubkey, props.id, props.indrec, props.mysubsubkey)
2021-09-04 15:05:34 +02:00
}
2021-10-01 03:08:43 +02:00
function savefieldboolean(value: any) {
2021-09-16 21:08:02 +02:00
if (myvalue.value === undefined)
myvalue.value = 'true'
else
myvalue.value = value
2021-09-04 15:05:34 +02:00
2021-10-08 00:38:22 +02:00
setValDb($q, props.mykey, myvalue, props.type, props.serv, props.table, props.mysubkey, props.id, props.indrec, props.mysubsubkey)
2021-09-16 21:08:02 +02:00
}
2021-09-04 15:05:34 +02:00
2021-09-16 21:08:02 +02:00
function selectcountry({ name, iso2, dialCode }: { name: string, iso2: string, dialCode: string }) {
// console.log(name, iso2, dialCode)
myvalue.value = iso2
countryname.value = name
}
2021-09-04 15:05:34 +02:00
2021-09-16 21:08:02 +02:00
function intcode_change(coderec: any) {
myvalue.value = '+' + coderec.dialCode
}
2021-09-04 15:05:34 +02:00
2021-09-16 21:08:02 +02:00
function onInput(phone: any, phoneObject: any, input: any) {
if (phoneObject?.formatted) {
myvalue.value = phoneObject.formatted
}
}
2021-09-04 15:05:34 +02:00
2021-10-28 00:37:48 +02:00
function uploaded(info: any) {
if (info.files) {
myvalue.value = tools.geturlrelativeprofile()+ '/' + getMyUsername() + '/' + info.files[0].name
console.log('uploaded', myvalue.value)
savefield(myvalue.value, '', $q)
}
// info.files[0].name
}
function removephoto() {
myvalue.value = ''
savefield(myvalue.value, '', $q)
}
2021-09-16 21:08:02 +02:00
crea()
return {
mycl,
intcode_change,
selectcountry,
savefieldboolean,
savefield,
myvalprinted,
getclassCol,
canEdit,
myvalue,
col,
countryname,
onInput,
2021-09-19 02:59:24 +02:00
tools,
costanti,
myq: $q,
2021-10-01 03:08:43 +02:00
fieldsTable,
globalStore,
2021-10-28 00:37:48 +02:00
uploaded,
getMyUsername,
removephoto,
2021-09-16 21:08:02 +02:00
}
},
})
2021-09-04 15:05:34 +02:00