Dic扩展模块
Dic数据字典模块是v-ci的核心之一,为解决大数据量下拉字典效率及操作问题,特推出通用的数据字典模块,所有字典数据可在数据库维护,在大数据量时采用分页下拉的展示方式,同时支持拼音简拼搜索,代码项、代码值搜索等,支持无限层级级联,支持多选、过滤等等、自定义数据表,只要你能想到的,几乎都可以实现,兼容全部主流浏览器(IE5/6/7除外)。
查看演示
模块加载名称:dic
基础参数
dic数据字典模块通过定义input的class属性为DMinput,来自动加载代码,id定义规则为code_加上数据库代码表里代码类别字段,如code_XZQH,其中XZQH为数据库中定义行政区划的代码类别。name定义规则为code_加该字段的自定义名字。
引用文件:
引用js和css文件
- dwr/engine.js
- dwr/util.js
- dwr/interface/SysCodeInfoService.js
- js/plugins/code/mootools.js
- js/plugins/code/dic.js
- js/plugins/code/EWSelect.css
使用效果
larryMS code
可以实现翻页、拼音简拼搜索、代码项和代码值的快速搜索,支持百万级的字典表下拉检索。
使用方法
字段定义
- 定义下拉字典项字段:
- input type="text" class="DMinput layui-input" id="code1_XZQH" name="code_xzqh1"
- class需要添加DMinput,id定义需为code开头,之后为数据库中代码表的代码类型,这里示例为XZQH,name定义为code开头,之后为该字段定义的名字。
前缀过滤方法
前缀过滤
- input type="text" class="DMinput layui-input" id="code2_XZQH" name="code_xzqh2" filterDM="42____"
- 前缀过滤只需要增加filterDM属性,过滤规则参考sql规则,这里42____标示检索前两位为42开头的数据,这样可以实现下拉户籍为湖北省的行政区划。
- 过滤效果如下:
后缀过滤方法
后缀过滤
- input type="text" class="DMinput layui-input" id="code2_XZQH" name="code_xzqh2" filterDM="42____"
- 前缀过滤只需要增加filterDM属性,过滤规则参考sql规则,这里__0000标示检索后四位为0000的数据,这样根据行政区划的规则可以实现下拉所有省份信息。
- 过滤效果如下:
多选
多选
- input type="text" class="DMinput layui-input" id="code4_XZQH" name="code_xzqh4" Multi="true"
- 多选只需要增加Multi="true"属性。
- 多选效果如下:
默认
默认
- input type="hidden" id="xzqh5" value="330000"
- 页面加载完给默认值时需要定义一个隐藏域,id为需要赋值的文本框的name并去掉code_。上面为给name为code_xzqh5的下拉框赋代码值为330000。
- 默认赋值效果如下:
多级级联
级联
- 多级级联这里以行政区划省、市、县三级为例,行政区划代码一共6位,前两位代码省份、中间两位代码市、最后两位代码县,如420105里以42开头代表湖北省、以4201开头代表湖北省武汉市、420105代表湖北省武汉市的汉阳区。级联的原理为选中省份后通过js动态为市增加filterDM属性,filterDM值为所选择省份的前两位+“__00”,这样市文本框就会根据filterDM过滤出该省份下所有市级地区。
- 县级级联同样的道理,当选择市级区划后,通过js动态为县增加filterDM属性,filterDM值为所选择市的前四位+“__”,这样市文本框就会根据filterDM过滤出该市下所有县级地区。js如下,在省、市文本框失去焦点时调用。
- window.getShi =function(){
- if($("#EW_xzqh6").val()!=''){
- $("#code7_XZQH").attr("filterDM",($("#EW_xzqh6").val()).substring(0,2)+"__00");
- }else{
- $("#code7_XZQH").attr("filterDM",'a');
- }
- };
- window.getXian =function(){
- if($("#EW_xzqh7").val()!=''){
- $("#code8_XZQH").attr("filterDM",($("#EW_xzqh7").val()).substring(0,4)+"__");
- }else{
- $("#code8_XZQH").attr("filterDM",'a');
- }
- };
- 级联效果如下:
自定义数据源表
默认
- 以上效果都是基于特定的代码表里获取数据的,现在演示的是可自定义代码表及码值字段等信息。
- input type="text" class="DMinput layui-input" id="code10_org_info~superiororg =-00001- and orgname like -%派出所-~orgno~orgname" name="code_xzqh10"
- 在定义ID的时候将表名、字段、条件等信息,定义规则为以code开头,后面跟着的org_info为表名,表名后面以 ~为分隔符, superiororg =-00001- and orgname like -%派出所-为sql条件,表示查询org_info的条件为superiororg='00001'并且orgname为派出所的,这里用-代替单引号,后面orgno是作为code值的字段,orgname为代码名的字段。
- 级联后台数据获取如下:
- 前端展示如下: