用vue设计一个列表,包括下拉框,日期范围查询
时间: 2024-02-19 14:59:25 浏览: 70
用vue设计一个日历表
好的,下面是一个简单的示例,演示如何使用 Vue 来设计一个包括下拉框和日期范围查询的列表。
HTML 代码:
```
<div id="app">
<div class="filters">
<select v-model="selectedStatus">
<option value="all">全部</option>
<option value="open">进行中</option>
<option value="closed">已关闭</option>
</select>
<input type="date" v-model="startDate">
<span>~</span>
<input type="date" v-model="endDate">
<button v-on:click="filter">查询</button>
</div>
<table>
<thead>
<tr>
<th>编号</th>
<th>名称</th>
<th>状态</th>
<th>开始时间</th>
<th>结束时间</th>
</tr>
</thead>
<tbody>
<tr v-for="item in filteredItems">
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
<td>{{ item.status }}</td>
<td>{{ item.startDate }}</td>
<td>{{ item.endDate }}</td>
</tr>
</tbody>
</table>
</div>
```
Vue.js 代码:
```
new Vue({
el: "#app",
data: {
items: [
{ id: 1, name: "任务1", status: "open", startDate: "2022-01-01", endDate: "2022-01-31" },
{ id: 2, name: "任务2", status: "closed", startDate: "2022-02-01", endDate: "2022-02-28" },
{ id: 3, name: "任务3", status: "open", startDate: "2022-03-01", endDate: "2022-03-31" },
{ id: 4, name: "任务4", status: "closed", startDate: "2022-04-01", endDate: "2022-04-30" }
],
selectedStatus: "all",
startDate: "",
endDate: ""
},
computed: {
filteredItems: function () {
var self = this;
return this.items.filter(function (item) {
if (self.selectedStatus !== "all" && item.status !== self.selectedStatus) {
return false;
}
if (self.startDate && item.startDate < self.startDate) {
return false;
}
if (self.endDate && item.endDate > self.endDate) {
return false;
}
return true;
});
}
},
methods: {
filter: function () {
// 执行查询操作
}
}
});
```
在这个示例中,我们首先定义了一个包含四个任务的列表,每个任务都有一个编号、名称、状态、开始时间和结束时间。然后,我们使用 Vue.js 来实现了一个包含下拉框和日期范围查询的列表。当用户选择状态、输入起始日期和结束日期后,点击查询按钮,Vue.js 会根据用户的选择过滤出符合条件的任务,并在表格中显示出来。
阅读全文