我创建了一个单独的组件。div标签的问题在于有括号的地方,这是组件不喜欢的地方,即模板。即问题出在模板中:
Vue.component('data-tag', {
data() {
return {
dataend: '',
days: ''
}
},
template: `
<div>
<input type="date" placeholder="дата окончания" v-model="dataend">
<div> {{days}} days</div>
<div :class="`tab ${сolorTag}`"></div>
</div>
`,
watch: {
dataend(){
this.deadline();
}
},
methods: {
deadline() {
const msPerDay = 8.64 * Math.pow(10, 7);
const abs = Date.parse(this.dataend) - Date.now();
this.days = Math.ceil(abs/msPerDay);
}
},
computed: {
сolorTag() {
switch(true) {
case this.days > 60: {
return 'blue'
}
case this.days < 60 && this.days>14: {
return 'yellow'
}
case this.days < 14: {
return 'red'
}
}
}
}
});
new Vue({
el: "#data-tag"
})
.tab {
width: 140px;
height: 80px;
background-color: #eee;
}
.red {background-color: red;}
.yellow {background-color: yellow;}
.blue {background-color: blue;}
<div id="data-tag">
<data-tag></data-tag>
</div>
根据 Vue 文档:
因此,在Template Strings的指导下,您可以轻松地将代码带到表单中:
另请注意