Fixed CDateTime component and CMyChipList

This commit is contained in:
Paolo Arena
2019-10-28 22:01:47 +01:00
parent 6c9f97c716
commit f288ace2a7
7 changed files with 95 additions and 46 deletions

View File

@@ -4,17 +4,20 @@ export const shared_consts = {
Admin: { Admin: {
value: 1, value: 1,
label: 'pages.Admin', label: 'pages.Admin',
icon: 'fas fa-user-shield' icon: 'fas fa-user-shield',
color: 'red'
}, },
Manager: { Manager: {
value: 2, value: 2,
label: 'otherpages.manage.manager', label: 'otherpages.manage.manager',
icon: 'fas fa-tools' icon: 'fas fa-tools',
color: 'green'
}, },
Teacher: { Teacher: {
value: 4, value: 4,
label: 'event.teacher', label: 'event.teacher',
icon: 'fas fa-user-tie' icon: 'fas fa-user-tie',
color: 'blue'
} }
}, },

View File

@@ -4,3 +4,7 @@
max-width: 400px; max-width: 400px;
} }
} }
.calendar_comp {
vertical-align: center;
}

View File

@@ -5,18 +5,20 @@ import { toolsext } from '@src/store/Modules/toolsext'
import { date } from 'quasar' import { date } from 'quasar'
import { CalendarStore } from '../../store/Modules' import { CalendarStore } from '../../store/Modules'
import MixinBase from '../../mixins/mixin-base'
@Component({ @Component({
name: 'CDateTime' name: 'CDateTime',
mixins: [MixinBase]
}) })
export default class CDateTime extends Vue { export default class CDateTime extends Vue {
public $q public $q
public $t public $t
@Prop() public value!: Date @Prop() public value!: Date
@Prop({ required: false, default: '' }) public label: string @Prop({ required: true, default: 'Val:' }) public label: string
@Prop({ required: false, default: '' }) public data_class!: string @Prop({ required: false, default: '' }) public data_class!: string
@Prop({ required: false, default: false }) public readonly!: boolean @Prop({ required: false, default: true }) public canEdit!: boolean
@Prop({ required: false, default: false }) public disable!: boolean @Prop({ required: false, default: false }) public disable!: boolean
@Prop({ required: false, default: '' }) public bgcolor!: string @Prop({ required: false, default: '' }) public bgcolor!: string
@Prop({ required: false, default: false }) public dense: boolean @Prop({ required: false, default: false }) public dense: boolean
@@ -74,10 +76,18 @@ export default class CDateTime extends Vue {
public mounted() { public mounted() {
this.myvalue = this.value this.myvalue = this.value
console.log('myvalue', this.myvalue)
} }
public changeval(newval) { public changeval(newval) {
// console.log('changeval', newval) // console.log('changeval', newval)
this.$emit('update:value', newval) this.$emit('update:value', newval)
} }
public mystyle() {
if (this.label !== '')
return ''
else
return ''
}
} }

View File

@@ -1,41 +1,65 @@
<template> <template>
<q-input v-model="myvalue" <div class="" :style="mystyle">
color="blue-6" <q-input v-model="myvalue"
outlined v-show="false"
:label="label" color="blue-6"
:bg-color="bgcolor" hide-bottom-space
:readonly="readonly" outlined
:disable="disable" borderless
:dense="dense" :label="label"
mask="####-##-## ##:##" :bg-color="bgcolor"
debounce="500" :disable="disable"
@input="changeval" :dense="dense"
:class="getclass"> mask="####-##-## ##:##"
debounce="500"
@input="changeval"
:input-class="getclass"
>
</q-input>
<template #append> <q-field
<q-icon name="event" class="cursor-pointer"> :label="label"
<q-popup-proxy v-model="showDateTimeScroller"> stack-label
:value="myvalue"
outlined
:dense="dense"
color="blue-6"
:bg-color="bgcolor"
debounce="500"
:input-class="getclass">
<q-date-time-scroller <template v-slot:control>
v-model="myvalue" <div style="">
:locale="locale" <div class="self-center full-width no-outline" :style="mystyle" tabindex="0">
:hour24-format="true" {{ tools.getstrDateTime(myvalue) }}
:rounded-borders="true" </div>
border-color="#2196f3" </div>
bar-color="#2196f3" </template>
color="white" <template v-slot:append>
background-color="primary" <q-icon v-if="canEdit" name="event" class="cursor-pointer">
inner-color="primary" <q-popup-proxy v-model="showDateTimeScroller">
inner-background-color="white"
:style="scrollerPopupStyle280"
@input="changeval"
@close="() => { savetoclose(); }"
/>
</q-popup-proxy> <q-date-time-scroller
</q-icon> v-model="myvalue"
</template> :locale="locale"
</q-input> :hour24-format="true"
:rounded-borders="true"
border-color="#2196f3"
bar-color="#2196f3"
color="white"
background-color="primary"
inner-color="primary"
inner-background-color="white"
:style="scrollerPopupStyle280"
@input="changeval"
@close="() => { savetoclose(); }"
/>
</q-popup-proxy>
</q-icon>
</template>
</q-field>
</div>
</template> </template>
<script lang="ts" src="./CDateTime.ts"> <script lang="ts" src="./CDateTime.ts">

View File

@@ -92,11 +92,11 @@
<div v-if="col.fieldtype === tools.FieldType.date"> <div v-if="col.fieldtype === tools.FieldType.date">
<div :class="getclassCol(col)"> <div :class="getclassCol(col)">
<CDateTime <CDateTime
:label="col.label"
class="cursor-pointer" class="cursor-pointer"
:value.sync="props.row[col.name]" :value.sync="props.row[col.name]"
:label="col.title"
:dense="true" :dense="true"
:readonly="true" :canEdit="canEdit"
@savetoclose="SaveValue" @savetoclose="SaveValue"
@show="selItem(props.row, col)" @show="selItem(props.row, col)"
> >

View File

@@ -25,10 +25,15 @@ export default class CMyChipList extends Vue {
return tools return tools
} }
public mounted() { @Watch('value', { immediate: true, deep: true })
public valchange() {
this.refreshval()
}
public refreshval() {
this.myarrvalues = [] this.myarrvalues = []
console.table(this.options) // console.table(this.options)
this.options.forEach((rec, index) => { this.options.forEach((rec, index) => {
if (tools.isBitActive(this.value, rec[this.optval])) { if (tools.isBitActive(this.value, rec[this.optval])) {
const mydata = { const mydata = {
@@ -51,7 +56,10 @@ export default class CMyChipList extends Vue {
if (this.myarrvalues.length === 0) if (this.myarrvalues.length === 0)
this.myarrvalues.push({ label: this.$t('otherpages.manage.nessuno'), color: 'gray' }) this.myarrvalues.push({ label: this.$t('otherpages.manage.nessuno'), color: 'gray' })
console.log('arrvalues=', this.myarrvalues) // console.log('arrvalues=', this.myarrvalues)
}
public mounted() {
this.refreshval()
} }
} }

View File

@@ -36,7 +36,7 @@ export default class CMyToggleList extends Vue {
public mounted() { public mounted() {
this.myarrvalues = [] this.myarrvalues = []
console.table(this.options) // console.table(this.options)
this.options.forEach((rec) => { this.options.forEach((rec) => {
const mydata = { const mydata = {
label: this.$t(rec[this.optlab]), label: this.$t(rec[this.optlab]),