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