我有两个下拉菜单 分别对应着站点信息和库房信息,我想做一个关联,在选择站点下来菜单时,库房的下来菜单只有站点内的信息 该怎么写用Vue或者elementUI,后端用java代码写,spingboot项目
时间: 2023-12-31 08:04:59 浏览: 67
JSP自定义标签(一)_树形下拉选择菜单
3星 · 编辑精心推荐
可以使用Vue和Element UI来实现下拉菜单的关联。
首先,在Vue中,你需要有两个变量来分别存储站点信息和库房信息。你可以使用Element UI中的Select组件来实现下拉菜单。在Select组件中,你可以使用v-model指令来绑定选中的值。
```html
<template>
<div>
<el-select v-model="selectedSite" placeholder="请选择站点">
<el-option v-for="site in sites" :key="site.value" :label="site.label" :value="site.value"></el-option>
</el-select>
<el-select v-model="selectedWarehouse" placeholder="请选择库房">
<el-option v-for="warehouse in warehouses" :key="warehouse.value" :label="warehouse.label" :value="warehouse.value"></el-option>
</el-select>
</div>
</template>
```
在上面的代码中,你需要在Vue的data中定义sites和warehouses变量,并且在methods中定义一个方法来获取库房信息。在页面加载时,你可以调用该方法来获取所有的库房信息。
```javascript
<script>
export default {
data() {
return {
selectedSite: '',
selectedWarehouse: '',
sites: [
{
label: '站点1',
value: 'site1'
},
{
label: '站点2',
value: 'site2'
}
],
warehouses: []
}
},
mounted() {
this.getWarehouses();
},
methods: {
getWarehouses() {
// 在这里调用后端接口获取库房信息
// 你可以使用axios来发送请求
axios.get('/warehouses?site=' + this.selectedSite)
.then(response => {
this.warehouses = response.data;
})
.catch(error => {
console.log(error);
});
}
}
}
</script>
```
在getWarehouses方法中,你需要使用后端接口来获取与选中站点相关的库房信息。因此,你需要在后端编写一个接口来返回库房信息。在Spring Boot中,你可以使用@RestController注解来定义一个RESTful风格的API接口。
```java
@RestController
public class WarehouseController {
@GetMapping("/warehouses")
public List<Warehouse> getWarehouses(@RequestParam String site) {
// 在这里根据站点信息查询库房信息
return warehouseService.getWarehousesBySite(site);
}
}
```
在getWarehouses方法中,你需要使用@RequestParam注解来获取前端传递的站点参数,并且调用WarehouseService中的方法来查询库房信息。你需要根据实际情况来编写WarehouseService中的方法。
这样,你就可以使用Vue和Element UI来实现下拉菜单的关联了。当你选择站点时,会自动获取对应的库房信息并且更新库房下拉菜单的选项。
阅读全文