B-JUI(Best jQuery UI),一个前端框架,适用于配置管理类的应用。借鉴DWZ,SPA
架构,ajax,基于Bootstrap,实现自适应(响应式)。与bootstrap不同,不需要提前把组件的ui写好并隐藏起来(也有一个好处,就是更加自主控制组件的ui)。
核心思想
data-api
data-toggle:目标组件,比如navtab,dialog等 data-options:参数,json格式
菜单
左侧菜单
json格式,支持多级,例如:
1 |
|
顶级父菜单格式如下,可以包含父菜单和菜单
1 |
|
父菜单格式,可以包含父菜单和菜单
1 |
|
菜单格式:
1 |
|
表单相关
按钮
文本框
下拉选择框
单选、复选框
日期选择器
tags、自动完成
Suggest
FindGrid
Spinner
基础组件
navtab
tab页
data-api
样例:
1 |
|
javascript
样例:
1 |
|
方法
方法名 | 参数类型 | 参数说明 | 描述 |
---|---|---|---|
switchTab(tabid) | string | 标签ID | 切换到某个标签。 |
refresh(tabid) | string | 标签ID,ID为空 则刷新当前标签 |
刷新某个标签。 |
reloadFlag(tabids) | string | 一个或多个标签ID,多个ID以, 分隔 |
为某(几)个标签设定重载标记(当切换到该标签时重新载入)。 |
reload(options) | object | 同navtab默认参数 | 重新载入某个标签,如果未指定ID,则默认重载入当前标签。 |
closeTab(tabid) | string | 标签ID | 关闭某个标签。 |
closeCurrentTab([tabid]) | string | 标签ID,可选。 | 关闭当前标签。 |
closeAllTab() | – | – | 关闭所有标签。 |
方法使用示例:
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
id | string | undefined | [必选] 标签的ID,如果指定重复,将覆盖现有的ID相同标签。 |
title | string | New tab | [可选] 标签打开后显示的名称。 |
url | string | undefined | [必选] D-Url 请求数据的url,a链接触发时可以将url定义在href属性。 |
external | boolean | false | [可选] 是否以iframe方式加载外部页面。 |
type | string | GET | [可选] Http请求方式,可选‘GET/POST’。 |
data | object | {} | [可选] 请求url时,需要发送的data数据。 |
loadingmask | boolean | true | [可选] ajax请求时是否显示数据加载遮罩。 |
fresh | boolean | false | [可选] 是否保持该navtab的新生状态,表现在重复打开该navtab时,是否重新载入内容。 |
reloadWarn | string | null | [可选] 当准备在已存在的navtab上加载内容时的确认提示信息。 |
autorefresh | boolean/int(秒) | false | [可选] 指定该navtab是否可自动刷新,为true时默认间隔15秒自动刷新,指定具体的秒数则以指定的间隔秒值自动刷新。 |
onLoad | function($navtab) | null | [可选] navtab加载完成后的事件回调,回调函数的参数$navtab 为该navtab内容区的jQuery对象。 |
beforeClose | function($navtab) | null | [可选] 返回值: boolean。 navtab关闭前的事件回调,返回true则关闭,返回false不关闭。 |
onClose | function() | null | [可选] navtab关闭后的事件回调。 |
dialog
对话框
data-api
1 |
|
javascript
1 |
|
方法
| 方法名 | 参数类型 | 参数说明 | 描述 |
| —————— | —— | ——————– | —————————– |
| switchDialog(id) | string | dialog ID | 切换到某个弹窗(模态弹窗无效)。 |
| refresh(id) | string | dialog ID | 刷新某个弹窗。 |
| reloadFlag(tabids) | string | 一个或多个标签ID,多个ID以,
分隔 | 为某(几)个标签设定重载标记(当切换到该标签时重新载入)。 |
| reload(options) | object | 同dialog默认参数 | 重新载入某个弹窗,如果未指定ID,则默认重载入当前弹窗。 |
| close(id) | string | dialog ID | 关闭某个弹窗。 |
| closeCurrent() | – | – | 关闭当前弹窗。 |
方法使用示例:
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
id | string | dialog | [必选] 弹窗的ID,如果指定重复,将覆盖现有的ID相同弹窗。 |
title | string | New Dialog | [可选] 弹窗打开后显示的名称,可从data-title属性获取或直接获取触发DOM的text值。 |
url | string | undefined | [可选] 参数url、image、html、target 必选一项,优先级url > image > html > target 。 D-Url 请求数据的url,a链接触发时可以将url定义在href属性。 |
image | string | null | [可选] 图片地址,让dialog显示该图片,image参数可以使用encodeURI函数编码。 |
html | string | null | [可选] 指定一段html内容加载到dialog。 |
target | selector | null | [可选] 从指定的jQuery容器中加载内容到dialog,请为该容器添加属性data-noinit="true" 以阻止容器中的内容提前初始化,为容器添加Class[hide ]以隐藏待加载内容。 |
type | string | GET | [可选] Http请求方式,可选‘GET/POST’。 |
data | object | {} | [可选] 请求url时,需要发送的data数据。 |
loadingmask | boolean | true | [可选] ajax请求时是否显示数据加载遮罩。 |
width | int | 500 | [可选] 弹窗的宽度。 |
height | int | 300 | [可选] 弹窗的高度。 |
max | boolean | false | [可选] 打开弹窗时直接最大化。 |
mask | boolean | false | [可选] 是否模态窗口。 |
resizable | boolean | true | [可选] 可以调整弹窗的大小。 |
drawable | boolean | true | [可选] 可以拖动弹窗。 |
maxable | boolean | true | [可选] 是否显示最大化按钮。 |
minable | boolean | true | [可选] 是否显示最小化按钮(模态弹窗无效)。 |
fresh | boolean | false | [可选] 是否保持该dialog的新生状态,表现在重复打开该dialog时,是否重新载入内容。 |
reloadWarn | string | null | [可选] 当准备在已存在的dialog上加载内容时的确认提示信息。 |
onLoad | function($dialog) | null | [可选] dialog加载完成后的事件回调,回调函数的参数$dialog 为该dialog的jQuery对象。 |
beforeClose | function($dialog) | null | [可选] 返回值: boolean。 dialog关闭前的事件回调,返回true则关闭,返回false不关闭。 |
onClose | function() | null | [可选] dialog关闭后的事件回调。 |
alertmsg
信息提示组件,6种
data-api
1 |
|
javascript
1 |
|
样例:
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string | null | [必选] 信息提示方式,参数有[‘ok’ | ‘correct’ | ‘info’ | ‘warn’ | ‘error’ | ‘confirm’ | ‘prompt’ ],其中ok为correct的别名,confirm为确认提示,prompt为输入信息提示。 |
msg | string | null | [必选] 提示的内容。 |
displayPosition | string | topcenter | [可选] 提示框显示位置,参数有[‘topleft’ | ‘topcenter’ | ‘topright’ | ‘middleleft’ | ‘middlecenter’ | ‘middleright’ | ‘bottomleft’ | ‘bottomcenter’ | ‘bottomright’],本参数可以覆盖全局设置 。 |
displayMode | string | slide | [可选] 提示框显示动画(无动画、渐显渐隐、滑动),参数[‘none’ | ‘fade’ | ‘slide’],本参数可以覆盖全局设置 。 |
autoClose | boolean | null | [可选] 是否自动关闭提示框,默认在type为[‘ok’ | ‘correct’ | ‘info’]三种方式时参数值为true。 |
alertTimeout | int | null | [可选] 自动关闭提示框的时间(毫秒),autoClose参数为true时生效,本参数可以覆盖全局设置 。 |
mask | boolean | null | [可选] 是否模态显示提示框,默认在type为[‘warn’ | ‘error’ | ‘confirm’ | ‘prompt’]方式时参数值为true。 |
title | string | 见bjui-regional.zh-CN.js中alertmsg | [可选] 信息提示框的标题,设置本参数将会覆盖bjui-regional.zh-CN.js中alertmsg的对应设置。 |
okName | string | 确定 | [可选] 确定按钮的名称,设置本参数将会覆盖bjui-regional.zh-CN.js中alertmsg的对应设置。 |
cancelName | string | 取消 | [可选] 仅type为'confirm'时有效 取消按钮的名称,设置本参数将会覆盖bjui-regional.zh-CN.js中alertmsg的对应设置。 |
okCall | function() | null | [可选] 确定按钮的回调方法,支持字符串类型的方法名,该方法会在提示框关闭后被调用 。 |
cancelCall | function() | null | [可选] 仅type为'confirm'时有效 取消按钮的回调方法,支持字符串类型的方法名,该方法会在提示框关闭后被调用 。 |
promptRequired | string | required | [可选] 仅type为'prompt'时有效 ,输入提示框的验证规则。 |
promptname | object | prompt | [可选] 仅type为'prompt'时有效 ,输入提示框的name属性。 |
promptval | string | null | [可选] 仅type为'prompt'时有效 ,输入提示框的默认值。 |
prompt | object | null | [可选] 仅type为'prompt'时有效 。该参数是点击确定后的ajax提交参数,详细参数配置参考bjuiajax的doajax 一节。示例:{url:'ajaxDone.json', type:'post', loadingmask:true} 。注意:如果有自定义okCall参数,则该参数无效。 |
ajax相关(bjuiajax)
bjuiajax是B-JUI封装的一系列ajax异步请求。
设置了okCallback等回调则target就不刷新,否则target会刷新?
B-JUI消息JSON
当ajax请求时,服务端可以仅返回一个消息JSON告知前端框架处理的结果,这个JSON的格式如下:
1 |
|
消息JSON的参数:key(statusCode、message
)可以在框架初始化时通过参数keys
更改,statusCode
的状态值有ok、error、timeout,代表成功、失败、超时三种类型【当statusCode没有或无法匹配上时取成功信息
】,可以通过参数statusCode
更改。【message不能为空】
doajax
Ajax提交,异步请求
data-api
样例:
1 |
|
javascript
样例:
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
url | string | null | [必选] D-Url ajax处理的URL ,a链接 触发时可以将url 定义在href 属性。 |
type | string | POST | [可选] ajax请求方式。 |
data | object | null | [可选] ajax请求发送到服务器的数据。 |
confirmMsg | string | null | [可选] 执行动作前的确认提示 。 |
okalert | boolean | true | [可选] 请求正常返回后,是否弹出相应的信息提示 【alertmsg】,当返回内容不是B-JUI消息JSON 时,建议关闭【即使为true也不会弹出】。【如果配置了callback则无效】 |
callback | function(json) | null | [可选] 自定义回调函数。 |
okCallback | function(json, options) | null | [可选] 请求成功时的回调函数,该函数会覆盖B-JUI默认的成功回调函数,函数的options 参数即是该doajax的options参数。 |
okAfterCallback | function(json, options) | null | [可选] 请求成功时的回调函数,该函数会在B-JUI默认的成功函数后执行,函数的options 参数即是该doajax的options参数。 |
errCallback | function(json, options) | null | [可选] 请求失败时的回调函数,函数的options 参数即是该doajax的options参数。 |
failCallback | function(msg, options) | null | [可选] ajax请求出错时的回调函数,函数的msg 参数是服务端返回的出错信息,options 参数即是该doajax的options参数。 |
loadingmask | boolean | false | [可选] ajax请求时是否显示数据加载遮罩。 |
target | selector | null | [可选] 数据加载遮罩的父容器,值为空时默认是当前Navtab或Dialog。 |
reload | boolean | false | [可选] 请求返回成功状态后,是否重新加载当前target。 |
forward | string | null | [可选] 跳转地址,请求返回成功状态后,加载forward地址对应的内容到当前target。 |
forwardConfirm | boolean | false | [可选] 请求返回成功状态后,是否重新加载当前target。 |
closeCurrent | boolean | false | [可选] 请求返回成功状态后,是否关闭当前target(仅navtab或dialog)。 |
tabid | string | null | [可选] 请求返回成功状态后,需要刷新的navtab的id集合,多个id以, 分隔。 |
dialogid | string | null | [可选] 请求返回成功状态后,需要刷新的dialog的id集合,多个id以, 分隔。 |
divid | string | null | [可选] 请求返回成功状态后,需要刷新的div(仅限通过doload加载的div)的id集合,多个id以, 分隔。 |
datagrids | string | null | [可选] 请求返回成功状态后,需要刷新的datagrid的id集合,多个id以, 分隔。 |
gridrefreshflag | boolean | true | [可选] 刷新datagrid时保留其快速筛选、排序、分页信息。 |
ajaxTimeout | int | BJUI.ajaxTimeout | [可选] 请求超时设置,即$.ajax的timeout属性。 |
请求返回成功状态:服务端返回B-JUI的消息JSON并在json[BJUI.keys.statusCode] == BJUI.statusCode.ok
时有效。【成功(ok alertmsg):statusCode没有或为200,失败:statusCode为300(error alertmsg)或非200(但是却为ok alertmsg)】
貌似还有一个支持跨域请求的参数:dataType:’jsonp’
ajaxform
异步提交表单。
data-rule
:定义域校验规则,比如required
data-api
1 |
|
javascript
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
url | string | null | [必选] 提交的URL,未指定时将取form的action属性。 |
type | string | POST | [可选] ajax请求方式,未指定该参数时会取form的method属性值。 |
confirmMsg | string | null | [可选] 提交表单前的确认提示。 |
beforeSubmit | function(form) | null | [可选] 执行动作前的确认函数,返回false时不提交表单。 |
validate1.31 | boolean | true | [可选] 提交表单前是否需要验证(需要验证插件nicevalidate支持)。 |
alertmsg | boolean | false | [可选] 是否弹出验证未通过的信息提示 【alertmsg】。 |
okalert | boolean | true | [可选] 请求正常返回后,是否弹出相应的信息提示。 |
callback | function(json) | null | [可选] 自定义回调函数。 |
okCallback | function(json, options) | null | [可选] 请求成功时的回调函数,该函数会覆盖B-JUI默认的成功回调函数,函数的options 参数即是该doajax的options参数。 |
okAfterCallback | function(json, options) | null | [可选] 请求成功时的回调函数,该函数会在B-JUI默认的成功函数后执行,函数的options 参数即是该doajax的options参数。 |
errCallback | function(json, options) | null | [可选] 请求失败时的回调函数,函数的options 参数即是该doajax的options参数。 |
failCallback | function(msg, options) | null | [可选] ajax请求出错时的回调函数,函数的msg 参数是服务端返回的出错信息,options 参数即是该doajax的options参数。 |
form | selector | null | [可选] 要提交的表单,通过JS API使用时需要。 |
loadingmask | boolean | true | [可选] ajax请求时是否显示数据加载遮罩。 |
target | selector | null | [可选] 数据加载遮罩的父容器,值为空时默认是当前Navtab或Dialog。 |
reload | boolean | false | [可选] 请求返回成功状态后,是否重新加载当前target。 |
forward | string | null | [可选] 跳转地址,请求返回成功状态后,加载forward地址对应的内容到当前target。 |
forwardConfirm | boolean | false | [可选] 请求返回成功状态后,是否重新加载当前target。 |
closeCurrent | boolean | false | [可选] 请求返回成功状态后,是否关闭当前target(仅navtab或dialog)。 |
tabid | string | null | [可选] 请求返回成功状态后,需要刷新的navtab的id集合,多个id以, 分隔。 |
dialogid | string | null | [可选] 请求返回成功状态后,需要刷新的dialog的id集合,多个id以, 分隔。 |
divid | string | null | [可选] 请求返回成功状态后,需要刷新的div(仅限通过doload加载的div)的id集合,多个id以, 分隔。 |
datagrids | string | null | [可选] 请求返回成功状态后,需要刷新的datagrid的id集合,多个id以, 分隔。 |
gridrefreshflag | boolean | true | [可选] 刷新datagrid时保留其快速筛选、排序、分页信息。 |
ajaxTimeout | int | BJUI.ajaxTimeout | [可选] 请求超时设置,即$.ajax的timeout属性。 |
doload
Ajax载入(ajaxload),异步加载内容到指定目标
data-api
1 |
|
javascript
- doload(options)
载入指定目标
1 |
|
方法
- reloadlayout(options)
重新载入制定目标,跟doload没有区别,只是不能首次调用,不然会报错如下:
BJUI.ajax: 'refreshlayout' method: This target(DIV) is not initialized!
1 |
|
-
refreshdiv(id)
刷新指定目标
1 |
|
- refreshlayout(selector)
刷新指定目标
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
target | selector | null | [必选] 目标容器的 jQuery选择器表达式 或 DOM对象。 |
url | string | null | [必选] D-Url 远程加载的URL ,a链接 触发时可以将url 定义在href 属性。 |
type | string | GET | [可选] ajax请求方式。 |
data | object | null | [可选] ajax请求发送到服务器的数据。 |
autorefresh | boolean/int(秒) | null | [必选] 指定该div容器是否可自动刷新,为true时默认间隔15秒自动刷新,指定具体的秒数则以指定的间隔秒值自动刷新。 |
callback | function(json) | null | [可选] 加载成功后的回调函数。 |
loadingmask | boolean | true | [可选] ajax请求时是否显示数据加载遮罩。 |
ajaxTimeout | int | BJUI.ajaxTimeout | [可选] 请求超时设置,即$.ajax的timeout属性。 |
ajaxdownload
异步下载,需要依赖插件$.fileDownload
data-api
1 |
|
javascript
1 |
|
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
url | string | null | [必选] D-Url 下载的URL。 |
type | string | GET | [可选] ajax请求方式。 |
data | object | null | [可选] 发送到服务器的数据。 |
target | selector | null | [可选] 数据加载遮罩的父容器,值为空时默认是当前Navtab或Dialog。 |
loadingmask | boolean | false | [可选] ajax请求时是否显示数据加载遮罩。 |
confirmMsg | string | null | [可选] 下载前的确认提示。 |
failCallback | function(responseHtml, url) | B-JUI框架提示及取消loadingmask遮罩效果。 | [可选] ajax请求失败时的回调函数。 |
prepareCallback | function(url) | 根据loadingmask参数加载遮罩。 | [可选] ajax请求中的回调函数。 |
successCallback | function(url) | 取消loadingmask遮罩效果。 | [可选] ajax请求成功的回调函数。 |
ajaxsearch
data-api
javascript
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
url | string | null | [必选] 提交的URL,未指定时将取form的action属性。 |
type | string | POST | [可选] ajax请求方式,未指定该参数时会取form的method属性值。 |
beforeSubmit | function(form) | null | [可选] 执行动作前的确认函数,返回false时不提交表单。 |
validate | boolean | true | [可选] 提交表单前是否需要验证(需要验证插件nicevalidate支持)。 |
alertmsg | boolean | false | [可选] 是否弹出验证未通过的信息提示。 |
searchDatagrid | selector | null | [可选] 将form域中的信息用来搜索指定datagrid,如果有该参数,则参数okalert 之后的参数都无效。 |
form | selector | null | [可选] 要提交的表单,通过JS API使用时需要。 |
loadingmask | boolean | true | [可选] ajax请求时是否显示数据加载遮罩。 |
target | selector | null | [可选] 数据加载遮罩的父容器,值为空时默认是当前Navtab或Dialog。 |
okalert | boolean | true | [可选] 请求正常返回后,是否弹出相应的信息提示。 |
callback | function(json) | null | [可选] 自定义回调函数。 |
okCallback | function(json, options) | null | [可选] 请求成功时的回调函数,该函数会覆盖B-JUI默认的成功回调函数,函数的options 参数即是该doajax的options参数。 |
okAfterCallback | function(json, options) | null | [可选] 请求成功时的回调函数,该函数会在B-JUI默认的成功函数后执行,函数的options 参数即是该doajax的options参数。 |
errCallback | function(json, options) | null | [可选] 请求失败时的回调函数,函数的options 参数即是该doajax的options参数。 |
failCallback | function(msg, options) | null | [可选] ajax请求出错时的回调函数,函数的msg 参数是服务端返回的出错信息,options 参数即是该doajax的options参数。 |
reload | boolean | false | [可选] 请求返回成功状态后,是否重新加载当前target。 |
forward | string | null | [可选] 跳转地址,请求返回成功状态后,加载forward地址对应的内容到当前target。 |
forwardConfirm | boolean | false | [可选] 请求返回成功状态后,是否重新加载当前target。 |
closeCurrent | boolean | false | [可选] 请求返回成功状态后,是否关闭当前target(仅navtab或dialog)。 |
tabid | string | null | [可选] 请求返回成功状态后,需要刷新的navtab的id集合,多个id以, 分隔。 |
dialogid | string | null | [可选] 请求返回成功状态后,需要刷新的dialog的id集合,多个id以, 分隔。 |
divid | string | null | [可选] 请求返回成功状态后,需要刷新的div(仅限通过doload加载的div)的id集合,多个id以, 分隔。 |
datagrids | string | null | [可选] 请求返回成功状态后,需要刷新的datagrid的id集合,多个id以, 分隔。 |
gridrefreshflag | boolean | true | [可选] 刷新datagrid时保留其快速筛选、排序、分页信息。 |
ajaxTimeout | int | BJUI.ajaxTimeout | [可选] 请求超时设置,即$.ajax的timeout属性。 |
分页
数据表格
datagrid
数据表格,ui和data分离处理
data-api
1 |
|
javascript
1 |
|
参数
貌似dataType还有一个支持跨域请求的可取值:dataType:’jsonp’,会自动回调填充表格。
1 |
|
http://b-jui.com/demo是支持jsonp的服务,例如:请求:http://b-jui.com/demo?callback=abc,返回:abc(json)