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;
}