【发布时间】:2022-01-17 20:15:18
【问题描述】:
我有一个 vuetify 日期范围选择器,如图所示:
<v-menu ref="effectiveDateMenu"
v-model="effectiveDateMenu"
:close-on-content-click="false"
transition="scale-transition"
offset-y
max-width="290px"
min-width="auto">
<template v-slot:activator="{ on, attrs }">
<v-text-field label="Time Period"
v-model="effectiveDateRange"
filled
dense
rounded
@*:rules="[v => !!(v && v.length) || 'Rating period is required']"*@
v-bind="attrs"
v-on="on"
range
required
:class="toggleEdit ? 'locked' : 'editable'"
:readonly="toggleEdit"></v-text-field>
</template>
<v-date-picker v-model="dates"
no-title
@@input="datesPicked()"
range></v-date-picker>
</v-menu>
然后使用以下计算属性将值返回到文本字段,但是我无法按顺序排列日期。您只能选择两个日期,如果您首先选择较新的日期,它会首先使用该值填充文本字段,即使我在日期选择器的 v-model 上使用排序功能也是如此。任何帮助将不胜感激。
computed: {
effectiveDateRange: function () {
// `this` points to the vm instance
return this.dates.map((element) => {
var d = new Date(element);
return `${d.getUTCMonth() + 1}/${d.getUTCDate()}/${d.getUTCFullYear()}`;
}).sort(function (a, b) {
// Turn your strings into dates, and then subtract them
// to get a value that is either negative, positive, or zero.
return new Date(b.date) - new Date(a.date);
}).join(' - ')
}
}
【问题讨论】:
标签: javascript vue.js vuejs2 vuetify.js