131 lines
3.5 KiB
TypeScript
131 lines
3.5 KiB
TypeScript
|
|
import Vue from 'vue'
|
||
|
|
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||
|
|
import { tools } from '@src/store/Modules/tools'
|
||
|
|
import { toolsext } from '@src/store/Modules/toolsext'
|
||
|
|
|
||
|
|
import { date } from 'quasar'
|
||
|
|
import { CalendarStore } from '../../store/Modules'
|
||
|
|
import MixinBase from '../../mixins/mixin-base'
|
||
|
|
|
||
|
|
@Component({
|
||
|
|
name: 'CDateTime',
|
||
|
|
mixins: [MixinBase]
|
||
|
|
})
|
||
|
|
|
||
|
|
export default class CDateTime extends Vue {
|
||
|
|
public $q
|
||
|
|
public $t
|
||
|
|
@Prop({ required: false, default: null }) public value: Date
|
||
|
|
@Prop({ required: false, default: null }) public valueDate: Date
|
||
|
|
@Prop({ required: true, default: 'Val:' }) public label: string
|
||
|
|
@Prop({ required: false, default: '' }) public data_class!: string
|
||
|
|
@Prop({ required: false, default: true }) public canEdit!: boolean
|
||
|
|
@Prop({ required: false, default: false }) public disable!: boolean
|
||
|
|
@Prop({ required: false, default: '' }) public bgcolor!: string
|
||
|
|
@Prop({ required: false, default: false }) public dense: boolean
|
||
|
|
@Prop({ required: false, default: '5' }) public minuteinterval: boolean
|
||
|
|
@Prop({ required: false, default: 'date-time' }) public view: string
|
||
|
|
|
||
|
|
public mystyleicon: string = 'font-size: 1.5rem;'
|
||
|
|
public showDateTimeScroller: boolean = false
|
||
|
|
public saveit: boolean = false
|
||
|
|
public myvalue: Date = new Date()
|
||
|
|
public valueprec: Date = new Date()
|
||
|
|
|
||
|
|
get getclass() {
|
||
|
|
return 'calendar_comp ' + this.data_class
|
||
|
|
}
|
||
|
|
|
||
|
|
// @Watch('showDateTimeScroller')
|
||
|
|
|
||
|
|
public Opening() {
|
||
|
|
// console.log('Opening', 'myvalue', this.myvalue, 'value', this.value)
|
||
|
|
this.saveit = false
|
||
|
|
this.valueprec = this.myvalue
|
||
|
|
if (this.myvalue === undefined) {
|
||
|
|
this.valueDate = new Date()
|
||
|
|
this.myvalue = tools.getstrYYMMDDDateTime(this.valueDate)
|
||
|
|
}
|
||
|
|
// console.log('Opening', this.valueDate, this.myvalue)
|
||
|
|
this.$emit('show')
|
||
|
|
}
|
||
|
|
|
||
|
|
public Closing() {
|
||
|
|
// console.log('Closing')
|
||
|
|
if (!this.saveit) {
|
||
|
|
if (this.myvalue !== this.valueprec) {
|
||
|
|
this.myvalue = this.valueprec
|
||
|
|
tools.showNeutralNotif(this.$q, this.$t('db.reccanceled'))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@Watch('valueDate')
|
||
|
|
public changevalueDate() {
|
||
|
|
if (this.valueDate)
|
||
|
|
this.myvalue = tools.getstrYYMMDDDateTime(this.valueDate)
|
||
|
|
|
||
|
|
// console.log('changevalueDate myvalue', this.myvalue)
|
||
|
|
}
|
||
|
|
@Watch('value')
|
||
|
|
public changevalue() {
|
||
|
|
this.myvalue = this.value
|
||
|
|
// console.log('changevalue myvalue', this.myvalue)
|
||
|
|
}
|
||
|
|
|
||
|
|
public savetoclose() {
|
||
|
|
// console.log('Close')
|
||
|
|
this.saveit = true
|
||
|
|
this.showDateTimeScroller = false
|
||
|
|
this.$emit('savetoclose', this.myvalue, this.valueprec)
|
||
|
|
}
|
||
|
|
|
||
|
|
get scrollerPopupStyle280() {
|
||
|
|
if (this.$q.screen.lt.sm) {
|
||
|
|
return {
|
||
|
|
width: '100vw',
|
||
|
|
height: '100vh'
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
return {
|
||
|
|
maxHeight: '400px',
|
||
|
|
height: '400px',
|
||
|
|
width: '280px'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
get locale() {
|
||
|
|
return CalendarStore.state.locale
|
||
|
|
}
|
||
|
|
|
||
|
|
public created() {
|
||
|
|
if (this.value !== null)
|
||
|
|
this.myvalue = this.value
|
||
|
|
else
|
||
|
|
this.myvalue = tools.getstrYYMMDDDateTime(this.valueDate)
|
||
|
|
|
||
|
|
// console.log('created myvalue', this.myvalue)
|
||
|
|
}
|
||
|
|
|
||
|
|
public changeval(newval) {
|
||
|
|
// console.log('changeval', newval, 'value=', this.value, 'myvalue=', this.myvalue)
|
||
|
|
this.$emit('update:value', newval)
|
||
|
|
}
|
||
|
|
|
||
|
|
public mystyle() {
|
||
|
|
if (this.label !== '')
|
||
|
|
return ''
|
||
|
|
else
|
||
|
|
return ''
|
||
|
|
}
|
||
|
|
|
||
|
|
public getstrDate(mydate) {
|
||
|
|
if (this.view === 'date-time') {
|
||
|
|
return tools.getstrDateTime(mydate)
|
||
|
|
} else {
|
||
|
|
return tools.getstrDate(mydate)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|