Files
newfreeplanet_OLD/src/components/CDateTime/CDateTime.ts

196 lines
4.4 KiB
TypeScript
Executable File

import { defineComponent, ref, toRef, watch } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { useQuasar } from 'quasar'
import { useCalendarStore } from '@store/CalendarStore'
import { useI18n } from '@/boot/i18n'
import { toolsext } from '@store/Modules/toolsext'
export default defineComponent({
name: 'CDate',
props: {
value: {
type: String,
required: false,
default: '',
},
valueDate: {
type: String,
required: false,
default: '',
},
data_class: {
type: String,
required: false,
default: '',
},
canEdit: {
type: Boolean,
required: false,
default: true,
},
label: {
type: String,
required: true,
default: 'Val:',
},
disable: {
type: Boolean,
required: false,
default: false,
},
bgcolor: {
type: String,
required: false,
default: '',
},
dense: {
type: Boolean,
required: false,
default: false,
},
minuteinterval: {
type: String,
required: false,
default: '5',
},
view: {
type: String,
required: false,
default: 'date-time',
},
},
components: {},
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n();
const showDateTimeScroller = ref(false)
const saveit = ref(false)
const myvalue = ref('')
const mydate = ref(false)
const mytime = ref(false)
const valueprec = ref('')
// const myvalueDate = toRef(props, 'valueDate')
function getclass() {
return 'calendar_comp ' + props.data_class
}
function Opening() {
console.log('Opening', 'myvalue', myvalue.value)
saveit.value = false
valueprec.value = myvalue.value
if (myvalue.value === '') {
// myvalueDate.value = tools.getstrYYMMDDDateTime(new Date())
myvalue.value = tools.getstrYYMMDDDateTime(new Date())
}
// console.log('Opening', myvalueDate, myvalue)
emit('show')
}
function Closing() {
mydate.value = false
mytime.value = false
// console.log('Closing')
if (!saveit.value) {
if (myvalue.value !== valueprec.value) {
myvalue.value = valueprec.value
tools.showNeutralNotif($q, t('db.reccanceled'))
}
}
}
watch(() => props.value, (value, oldval) => {
if (value) {
myvalue.value = tools.getstrYYMMDDDateTime(value)
// myvalueDate.value = myvalue.value
console.log('myvalue Date = ', myvalue.value)
}
})
function savetoclose() {
// console.log('Close')
saveit.value = true
showDateTimeScroller.value = false
emit('savetoclose', myvalue.value, valueprec.value)
}
function scrollerPopupStyle280() {
if ($q.screen.lt.sm) {
return {
width: '100vw',
height: '100vh',
}
} else {
return {
maxHeight: '400px',
height: '400px',
width: '280px',
}
}
}
function created() {
if (props.value !== null) {
myvalue.value = tools.getstrYYMMDDDateTime(props.value)
}
// console.log('created myvalue', myvalue)
}
function changeval(newval: Date) {
// console.log('changeval', newval, 'value=', value, 'myvalue=', myvalue)
emit('update:value', newval)
saveit.value = true
emit('savetoclose', myvalue.value, valueprec.value)
}
function replacevalue() {
// console.log('changeval', newval, 'value=', value, 'myvalue=', myvalue)
if (valueprec.value) {
emit('update:value', valueprec.value)
saveit.value = true
showDateTimeScroller.value = false
emit('savetoclose', valueprec.value, valueprec.value)
}
}
function mystyle() {
if (props.label !== '')
return ''
else
return ''
}
function getstrDate(mydate: Date) {
if (props.view === 'date-time') {
return tools.getstrDateTime(mydate)
} else {
return tools.getstrDate(mydate)
}
}
created()
return {
toolsext,
changeval,
scrollerPopupStyle280,
mystyle,
getstrDate,
savetoclose,
Closing,
Opening,
getclass,
myvalue,
showDateTimeScroller,
replacevalue,
mydate,
mytime,
tools,
}
},
})