有两个下拉菜单,分别是所属站点下拉菜单、所属库房下拉菜单,库房是存在站点下面的,我想把这两个下拉菜单关联,选择站点菜单时,,库房下拉菜单只会出现该站点下的库房信息,数据由后端java提供,后端采用springboot,前端采用vue或elementUi 教我怎么写
时间: 2023-10-08 11:07:38 浏览: 47
基于jquery实现三级下拉菜单
可以通过Vue的计算属性来实现所属库房下拉菜单的动态更新。
假设你已经有了以下数据结构:
```javascript
// 站点列表
const sites = [
{ id: 1, name: '站点1' },
{ id: 2, name: '站点2' },
{ id: 3, name: '站点3' }
]
// 库房列表,每个库房都有一个 siteId 属性表示所属站点的id
const warehouses = [
{ id: 1, name: '库房1', siteId: 1 },
{ id: 2, name: '库房2', siteId: 1 },
{ id: 3, name: '库房3', siteId: 2 },
{ id: 4, name: '库房4', siteId: 3 },
{ id: 5, name: '库房5', siteId: 3 }
]
// Vue组件
export default {
data() {
return {
selectedSiteId: null, // 所选站点的id
selectedWarehouseId: null // 所选库房的id
}
},
computed: {
// 根据所选站点的id筛选出符合条件的库房列表
filteredWarehouses() {
if (this.selectedSiteId) {
return warehouses.filter(warehouse => warehouse.siteId === this.selectedSiteId)
} else {
return []
}
}
}
}
```
然后在模板中,可以这样写:
```html
<template>
<div>
<!-- 所属站点下拉菜单 -->
<select v-model="selectedSiteId">
<option value="">请选择站点</option>
<option v-for="site in sites" :value="site.id">{{ site.name }}</option>
</select>
<!-- 所属库房下拉菜单 -->
<select v-model="selectedWarehouseId">
<option value="">请选择库房</option>
<option v-for="warehouse in filteredWarehouses" :value="warehouse.id">{{ warehouse.name }}</option>
</select>
</div>
</template>
```
这样,当选择站点时,所属库房下拉菜单的选项会自动更新为该站点下的库房。
阅读全文