72 Star 291 Fork 63

pelin0963 / layuiExtend

2021-07-22 16:29
pelin0963

1.新增“多选”操作对标 sql 的 in条件。这个需要后台配合才能实现多选功能。原理:多选操作对应in操作符,对应值用逗号分割,然后后台拼接sql。如:

else if(QueryConditionOption.in == qcop){
				if(val != null){
					String [] vals = val.split(",");
					if(vals.length > 0){
						for (String string : vals) {
							list.add(string);
						}
						sqlWhere += field +" in ("+getInParams(vals.length)+") ";
					}
				}
			}
/****
	 * 根据参数个数构造 字符串。如 2个参数 返回 ?,?
	 * @param num num必须大于0  如: 3
	 * @return ?,?,?
	 */
	public String getInParams(int num){
		StringBuffer sb = new StringBuffer("");
		for(int i=0;i<num;i++){
			if(i!=0){
				sb.append(",");
			}
			sb.append("?");
		}
		return sb.toString();
	}

2.新增复选框编辑器。复选框编辑器的templet既可以使用类似select编辑器的模板,也可以使用类似radio编辑器的模板templet="是:N|否:Y" 模式。
ps:多选对应的编辑器不一定非的是复选框编辑器,也可以是文本编辑器,如果是文本编辑器则需要用户主动输入逗号分割。比如“用户姓名”条件选择了多选,值中输入“张三,李四”一样可以实现多选。还可以自定义下拉样式的多选编辑器。
查看demo【政治面貌】

最后提交信息为: .
2020-12-31 17:27
pelin0963

升级setCondition功能。新增了getCondition方法和setHideCondition方法。并且setCondition支持传入json字符串作为参数。

可以参考嵌套查询页面。点击查看demo
使用方法:
1.按之前的方法设置好查询条件点击查询。
2.调用dc.getCondition()方法。
3.将上面的结果放入html模板中。

<script id="initCondtion" type="text/html">
				[{"logicalOperator":"and","groupname":"groupname2","subgroupname":"groupname41278259680340446","rowlevel":"0","conditionFieldVal":"DynamicCondition.province","conditionOptionVal":"equal","datatype":"string","conditionValueVal":{"value":"","text":""},"conditionValueLeftVal":{"value":"","text":""},"conditionValueRightVal":{"value":"","text":""}},{"logicalOperator":"and","groupname":"groupname2","subgroupname":"groupname4562658783588114","rowlevel":"0","conditionFieldVal":"DynamicCondition.city","conditionOptionVal":"equal","conditionValueVal":{"value":"","text":""},"conditionValueLeftVal":{"value":"","text":""},"conditionValueRightVal":{"value":"","text":""}},{"logicalOperator":"and","groupname":"groupname2","subgroupname":"groupname7145102822903624","rowlevel":"0","conditionFieldVal":"DynamicCondition.name","conditionOptionVal":"like","datatype":"string","conditionValueVal":{"value":"张三","text":"张三"},"conditionValueLeftVal":{"value":"","text":""},"conditionValueRightVal":{"value":"","text":""}}]
			</script>
			<script id="hideCondtion" type="text/html">
				[{"logicalOperator":"and","groupname":"groupname2","subgroupname":"groupname9181101668913314","rowlevel":"0","conditionFieldVal":"DynamicCondition.province","conditionOptionVal":"equal","datatype":"string","conditionValueVal":{"value":"","text":""},"conditionValueLeftVal":{"value":"","text":""},"conditionValueRightVal":{"value":"","text":""}},{"logicalOperator":"and","groupname":"groupname2","subgroupname":"groupname03241505926701782","rowlevel":"0","conditionFieldVal":"DynamicCondition.city","conditionOptionVal":"equal","conditionValueVal":{"value":"","text":""},"conditionValueLeftVal":{"value":"","text":""},"conditionValueRightVal":{"value":"","text":""}},{"logicalOperator":"and","groupname":"groupname2","subgroupname":"groupname46197182796385294","rowlevel":"0","conditionFieldVal":"DynamicCondition.sex","conditionOptionVal":"equal","conditionValueVal":{"value":"1","text":"男"},"conditionValueLeftVal":{"value":"","text":""},"conditionValueRightVal":{"value":"","text":""}}]
			</script>

4.调用setHideCondition和setCondition初始化条件

//即buildRequestData时会添加进去提交给服务器,但界面上不显示,用户不知道这些条件(或者知道但这些条件不需要改变)
dc.setHideCondition($("#hideCondtion").html());
dc.setCondition($("#initCondtion").html());
最后提交信息为: .
2020-12-09 15:15
pelin0963

修复自动选择默认选项问题。首选li中定义ops中第一个选项,没定义ops则,选config.opsList的第一个选项。
比如希望默认选项是包含而不是等于,可以修改dcConfig.js中的opsList,让like排第一位。
如果不希望改全局,只希望改一个页面,则可以修改dynamicCondition.create(config)中config.opsList的值。
如果只希望改某个选项,则可以修改li的ops属性。如:

<li field="name" title="姓名" edit="text" ops="like,equal"></li>

这样就只有姓名条件默认首选项是包含开始,其他的条件默认首选先还是等于

2020-07-30 17:34
pelin0963

修复07-23号引入的bug。解决选项切换不生效问题。
取消unpopupBtnswidth配置,页面自动适应宽度,不用手动配置。

2020-07-23 09:55
pelin0963

修复bug。当定义ops时,如果切换条件,会指定操作选项,option会自动选择ops第一个选项。

2020-07-07 15:27
pelin0963

li设置初始值属性改为init-val,init-left-val,init-right-val。
之前2019-04-27版本initVal,initLeftVal,initRightVal的大小写与浏览器不兼容。

2020-01-06 16:17
pelin0963
templet 选项用"|"符号分隔,title和value用":"号分隔。
2019-11-01 16:00
pelin0963

1.修复输入框按回车无法触发查询问题。
2.优化条件是否有效逻辑。between操作值为空时,应该判断条件为无效。

最后提交信息为: 修复升级引入的bug
2019-10-17 09:59
pelin0963

兼容性优化,兼容之前版本。
下一步准备实现嵌套查询的初始条件设置,以及简化 下拉框级联场景 使用方法。
目前虽然能实现下拉框级联,但不是很友好。

预览版本
2019-10-12 08:58
pelin0963

兼容v3版本。
新增支持嵌套条件查询,即条件可以通过括号以及逻辑链接符“或”和“且”拼接。
只需在config中配置nestedQuery:true。

2019-09-20 09:25
pelin0963

1.自定义操作选项
可以方便的扩展 操作选项中的 等于,包含,范围,开始字符,结束字符 选项,并且可以下拉框选择时的排列顺序。config相关配置如下:

//可以自定义操作选项,特例between会创建2个编辑控件;empty和notempty不会创建编辑控件
opsMap: {"greater_than":"大于","less_than":"小于"},//新增操作选项,
opsList:["equal","like","between","start","end","unequal","empty","greater_than"],//操作选项列表

2.请求添加附加参数
比如希望后台获取参数的类型,可以如下配置:
2.1.首先在config中配置:

//请求时会附带<li>标签定义的额外的参数
,extraParams:["datatype"]

2.2.然后在li中配置:

<li field="DynamicCondition.name" title="姓名" ops="equal,like,end" datatype="string" edit="text" placeholder="请输入姓名" layVerify=""></li>

这样后台就可以获取到DynamicCondition.name字段是string类型。
输入图片说明

2019-09-19 10:08
pelin0963

修复conditionOption切换操作条件后未重新渲染导致下拉框不显示问题。

2019-05-23 10:42
pelin0963

支持从dcConfig中扩展编辑器。新增下拉树编辑器treeSelect

2019-04-11 13:12
pelin0963

text和date编辑器支持placeholder特性。
修复select编辑器templet对应select的id重复导致不正常显示问题。
修复counts值大于条件数时显示异常问题。

JavaScript
1
https://gitee.com/pelin0963/layuiExtend.git
git@gitee.com:pelin0963/layuiExtend.git
pelin0963
layuiExtend
layuiExtend

搜索帮助