vue下拉菜单 从后台获取数据

本文介绍如何在Vue项目中实现下拉菜单,并通过API从后台动态获取数据。详细讲解了vue和api.js的配置及Java后端的数据交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue下拉菜单 从后台获取数据:
在这里插入图片描述
vue:

<template>
    <section class="trendAnalysis">
        <el-form :inline="true" :model="water" style="margin-left: 10px;" size="small">
            <el-form-item label="站点名称">
                <el-select v-model="water.siteName" placeholder="请选择" style="width: 200px;">
                    <el-option
                            v-for="item in dataOptions"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                    </el-option>
                </el-select>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="loadWater" icon="el-icon-search">查询</el-button>
            </el-form-item>
        </el-form>
    </section>
</template>

<script>
    import {siteNameInfo} from '../../api/api.js'
    import echarts from 'echarts';

    export default {
        data() {
            return {
                water: {
                    siteName: '',
                },
                dataOptions: [],//下拉菜单
            }
        },
        methods: {
            //初始化下拉菜单
            siteNameInfo(){
                let _self = this;
                _self.dataOptions.push({value: '请选择', label: ''});
                siteNameInfo({}).then(response => {
                    response.data.forEach(item => {
                        let arr = {
                            value: item.siteName,
                            label: item.siteName
                        };
                        _self.dataOptions.push(arr);
                    });
                    _self.water.siteName = _self.dataOptions[0].value;
                    _self.loadWater();//调用其他方法,需要写在异步请求中
                });
            },

            loadWater: function () { //加载列表
            },
        },
        mounted(){
            this.siteNameInfo();
        }
    }
</script>
<style lang="less">
</style>

api.js:

/*** 站点名称信息*/
export const siteNameInfo = params => { return axios.post(`${basePath}water/siteNameInfo`, params).then(res => res.data); };

Java:

/*
* 站点名称信息
*/
@RequestMapping(value = "/siteNameInfo")
public ResponseVo<Object> siteNameInfo(){
   ResponseVo<Object> responseVo = new ResponseVo<>();
   QueryWrapper<WaterQuality> qw = new QueryWrapper<>();
   qw.select("siteName");
   qw.groupBy("siteName");
   responseVo.setData(waterQualityService.list(qw));
   return responseVo;
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值