要求图:
实现前端代码:
<div class="container query">
<div class="subcontainer">
<div>
<span class="querycaption">当前城市:</span>
<el-button type="text">进入济南站</el-button>
</div>
<div>
<span class="querycaption">热门城市:</span>
<el-radio-group class="selectone" v-model="radioSelectone">
<el-radio-button style="border: 0px;" v-for="(item,index) of radiolist" :key="index" :label="item.cityName"></el-radio-button>
</el-radio-group>
</div>
<div>
<br/>
<span class="querycaption">搜索:</span>
<el-input placeholder="输入城市中文名称或拼音,寻找当地心仪工作" v-model="input3" class="input-with-select" style="width: 320px;">
</el-input>
</div>
<div>
<br/><br/>
<span class="querycaption">按省份首字母选择:</span>
<el-radio-group class="selectone" v-model="radioSelectone">
<el-radio-button v-for="(item,index) of letterList" :key="index" :label="item"></el-radio-button>
</el-radio-group>
</div>
</div>
</div>
后端代码:
/**
* @Description: 城市搜索组件(按字母排序)
* @author:榴莲豆包
* @date:2021年5月26日14:55:26
* @param []
* @return java.util.List<com.qiyuan.qyframe.base.entity.SysCity>
**/
@ReadDataSource(description = "READ")
public JSONArray querySysCityListDist() throws BusiException {
JSONArray sysCityArrayS = new JSONArray();
String[] strings = new String[]{
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","I","S","T","U","V","W","X","Y","Z"
};
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("state", SystemConst.CONST_COMMON_STATUS_OK);
List<SysCity> sysCityList = sysCityMapper.querySysCityList(paramMap);
for(String i:strings){
//获取A字母开头城市
Stream<SysCity> tableNames = sysCityList.stream().filter(sysCity -> i.equals(sysCity.getCityInitial()));
List<SysCity> collection = tableNames.collect(Collectors.toList());
JSONArray sysCityArray = new JSONArray();
JSONObject sysCityobjs = new JSONObject();
for(SysCity sysCity:collection){
JSONObject sysCityobj = new JSONObject();
sysCityobj.put("cityCode",sysCity.getCityCode());
sysCityobj.put("cityName",sysCity.getCityName());
sysCityArray.add(sysCityobj);
}
sysCityobjs.put("alphabet",i);
sysCityobjs.put("cityList",sysCityArray);
if(collection.size()>0){
sysCityArrayS.add(sysCityobjs);
}
}
return sysCityArrayS;
}
下边这段代码是使用java8中的新特性。
Stream<SysCity> tableNames = sysCityList.stream().filter(sysCity -> i.equals(sysCity.getCityInitial()));