在后台管理项目中的表单输入经常需要通过下拉框来选择输入项,为防止用户录入错误,需要下拉框的选项可以维护,并能搜索。发现一个 layui 组件tableSelect组件正好可以实现下拉框列表进行选择的功能,正好可以满足需求。
效果如下图所示:
插件下载地址 /lolicode/layui_component_tableselect
使用方法
1、此组件是在layui的基础上开发的,所以前端页面引用, ,和
<head th:include="include :: header">
<link th:href="@{/ajax/libs/layui/css/}" rel="stylesheet"/>
</head>
<body class="white-bg">
<script th:src="@{/ajax/libs/layui/}"></script>
<script src="/ajax/libs/layui/"></script>
2、页面代码如下,后端调用api获取json数据,keyword是搜索关键字。组件支持多选,更多参数查看码云上的说明。
<script type="text/javascript">
var tableSelect = ;
(
{
elem: '#daibiaochu',
searchKey: 'keyword',
table: {
url: ctx + 'module/pianqu/PQ',
cols: [
[
{type: 'radio'},
{field: 'id', title: 'ID'},
{field: 'pianqu', title: '片区'},
{field: 'daibiaochu', title: '代表处'}
]
]
},
done: function (elem, data) {
var NEWJSON = []
(, function (index, item) {
()
})
((","))
}
})
</script>
3、url获取数据格式为GET方式 pianqu/PQ?page=1&limit=10 参数page ,limit 进行分页
返回消息格式如下:
4、后端代码采用SpringBoot 2.0 + mybaits
/**
* 查询片区下拉表
*/
@RequestMapping(value="/PQ",method=)
@ResponseBody
public Msg XH (@RequestParam Map<String, Object> paramMap)
{
Map<String, Object> data = new HashMap<>();
//页数
Integer Num = (("page").toString());
//每页数
Integer limit = (("limit").toString());
Integer page = (Num - 1) * limit ;
//查询关键字
String keyword =("keyword") == null ? "" : ("keyword") + "";
List<dPianqu> list = (page,limit,keyword);
//总数
Integer count = (keyword);
//组装消息
return (list,count);
}
返回消息组装类
public class ApiResultUtil {
/**
* 请求成功返回
* @param object
* @return
*/
public static Msg success(List<?> list,int count){
Msg msg=new Msg();
(0);
(count);
("");
(list);
return msg;
}
public static Msg error(Integer code,String resultmsg){
Msg msg=new Msg();
(code);
(resultmsg);
return msg;
}
}
mabaits的 代码
<resultMap type="dPianqu" >
<result property="id" column="id" />
<result property="pianqu" column="pianqu" />
<result property="daibiaochu" column="daibiaochu" />
</resultMap>
<sql >
select id, pianqu, daibiaochu from aps_pianqu
</sql>
<select resultMap="dPianquResult" >
<include ref/>
<where>
<if test="keyword != null and keyword!= ''"> and CONCAT(`pianqu`, `daibiaochu`) LIKE concat('%', #{keyword,jdbcType=VARCHAR}, '%')</if>
</where>
LIMIT #{page,jdbcType=INTEGER} , #{limit,jdbcType=INTEGER}
</select>