[关闭]
@moshangxc 2019-02-27T16:22:14.000000Z 字数 25258 阅读 747

Reasy-UI

Form表单组件库

项目中直接引用src/lib下的文件即可

组件使用说明书


原子组件:文本框,下拉框,开关,checkBoxList,radioList,日历
功能组件:自定义下拉框,消息提示框,弹出框,纯文本信息展示,table

注:所有组件兼容到IE8,jQuery版本使用1.X兼容IE8的版本

BaseComponent

所有的原子组件都继承自该基类,拥有该基类的所有属性和方法。支持自定义事件的绑定,解绑,实现自身的业务逻辑。以下为所有原子组件都拥有的属性和方法。

1. 公共配置参数

属性名称既可以通过标签属性配置也可以通过参数传递。当以标签属性形式配置时,需要用驼峰法配置属性名称(例如:dataKey 对应属性名称 data-key),同时在标签和参数里面配置相同属性时,标签属性的优先级较低

属性名称 描述 值类型 默认值
dataKey 组件类型(必填) string --
dataField 组件对应的数据字段 string --
dataTitle 组件左侧显示标题(为空则表示不显示标题) string --
editable 是否可编辑,为false则自动加上disabled属性 bool true
visible 是否可见 bool true
ignore 是否忽略, bool false
sync ignore与visible的值是否是同步设置 bool true
css 自定义样式皮肤 string --
errorType 错误信息显示样式,目前提供两种 枚举[1,2]
required 是否必填 bool true
autoChange componentManager在setValue时,是否自动执行change事件 bool true
needWrap 是否需要生成外层包裹容器 bool false
autoValidate 数据修改后是否自动调用数据校验 bool true
defaultValue 默认值/初始值 取决于组件 ""
dataValueType 组件的值类型 基础数据类型 --
description 组件尾部描述信息 string --
desClass 描述信息css类 string --
changeCallBack 组件数据改变回调 function --
validateCallBack 组件数据校验回调 function --
validateCustom(text) 自定义错误信息显示方式 function --
renderedCallBack 组件渲染完成后回调 function --
afterChangeCallBack 所有changeCallBack执行完成后的回调 function --

强调说明
1. dataValueType: 设置组件返回值类型,比如设置为num则返回整型数据
2. visible:控制组件的显示和隐藏,设置为false,则该控件不会进行数据校验等操作,但是在componentManage中进行getValue()操作不会被忽略
3. ignore:组件是否被忽略,不控制组件的显示和隐藏状态,设置为false,则在componentManage中进行getValue()操作时会忽略该组件,不会进行取值数据提交操作
4. validateCustom(text):自定义错误信息提示方式,定义了该参数则不会显示默认的错误提示样式,参数为需要显示的错误信息,当text为空时不显示任何错误信息或者移除已显示的错误信息。
5. changeCallBack:组件值改变回调函数,只有数据校验成功的情况下才执行该回调,函数内部this指向当前组件实例
6. validateCallBack:数据校验回调函数,有错则返回出错语句,否则为校验成功,函数内部this指向当前组件实例
7. renderedCallBack:组件渲染完成后的回调函数,函数内部this指向当前组件实例
8. dataKey:以组件名称显示调用的情况下可不填
9. sync: 为true时代表,将组建隐藏设置visiblefalse时,同步设置ignoretrue,即组建隐藏就不进行数据校验,syncfalse则表示visibleignore两者是独立的没有关联关系

2. 公共方法

方法名称 描述 参数 返回值
getValue() 取值 -- --
setValue(v, change) 赋值 V:组件的值,change:是否执行change回调,默认false --
setEditable(v) 编辑只读状态切换 true:可写,false:只读
setVisible(v) 可见切换 true:可见,false:隐藏 --
setIgnore(v) 忽略切换 true:忽略,false:不忽略 --
reset() 重置组件的值 -- --
show() 显示该组件 -- --
hide() 隐藏组件 -- --
toggle() 显示/隐藏 -- --
valChange() 触发组件的数据校验onValidate,当校验成功后触发handleChangeEvents -- --
onValidate 执行自定义数据校验逻辑和基础数据校验 -- --
handleChangeEvents 执行组件数据改变后的自定义逻辑 -- --
addValidateText(text) 显示错误信息 string --
removeValidateText() 移除错误提示信息 -- --
bindValidateEvent(fc) 绑定自定义校验 function --
bindChangeEvent(fc) 绑定自定义change事件 function --
unBindEvent(key) 解绑事件 事件对应的key --
其它方法 -- --

强调说明:
1. show,hide,toggle只做组件的显示隐藏处理,对组件的其它功能属性没有任何影响
2. bindValidateEvent,bindChangeEvent参数的返回值同上面属性的介绍

3. 调用形式(以FormInput为例)

  1. <div id="demo1" data-key="FormInput"></div>
  2. ...
  3. $("#demo1").Rcomponent({
  4. dataTitle:'传递参数形式',
  5. dataField:'demo',
  6. ......
  7. });

属性写在调用参数里面,推荐使用这种形式

  1. <div id="demo1" data-key="FormInput" data-field="name" type="email"></div>
  2. ......
  3. $("#demo1").Rcomponent();

属性全部写在标签属性里面,框架去解析所有的配置属性

  1. <div id="demo1" ></div>
  2. ...
  3. $("#demo1").FormInput({
  4. dataKey:'FormInput',
  5. dataField:'input',
  6. placeholder:'XXXXX',
  7. ......
  8. });

通过组件名称形式条用,配置参数同第一种形式
以上三种调用形式为常用的调用形式,其它调用形式暂不列出,仅供框架内部调用

4. 公共属性方法使用demo

  1. <!-- html模板 -->
  2. <div id="tk" data-key="FormInput"></div>
  1. $("#tk").Rcomponent({
  2. dataField:'username',
  3. placeholder:"普通文本测试"
  4. });
  1. $("#tk").Rcomponent({
  2. dataField:'username',
  3. dataTitle:"普通文本",
  4. placeholder:"普通文本测试"
  5. });
  1. $("#tk").Rcomponent({
  2. dataField:'username',
  3. dataTitle:"普通文本",
  4. description:'介个是描述信息',
  5. placeholder:"普通文本测试"
  6. });
  1. $("#tk").Rcomponent({
  2. dataField:'username',
  3. dataTitle:"普通文本",
  4. placeholder:"请输入大于100的数字",
  5. type:"number",
  6. validateCallBack:function(){
  7. var value = this.getValue();
  8. if(value < 100){
  9. alert("请输入大于100的数字");
  10. }
  11. }
  12. });
  1. $("#tk").Rcomponent({
  2. dataField:'username',
  3. dataTitle:"普通文本",
  4. placeholder:"随意",
  5. type:"text",
  6. changeCallBack:function(){
  7. var value = this.getValue();
  8. alert(value);
  9. }
  10. });
  1. var $tk = $("#tk").Rcomponent({
  2. dataField:'username',
  3. dataTitle:"普通文本",
  4. placeholder:"大于100",
  5. type:"number"
  6. });
  7. $tk.bindValidateEvent("change",function(){
  8. var value = this.getValue();
  9. if(value < 100){
  10. alert("请输入大于100的数字");
  11. }
  12. }).bindChangeEvent("change",function(){
  13. alert("change啦!");
  14. })

文本框组件

支持普通文本,密码文本,指定的文本校验格式,只读状态与编辑状态切换

  1. <!-- html模板 -->
  2. <input id="forminput" data-key="FormInput">

特有的属性,方法

属性名称 描述 值类型/范围 默认值
type 文本框类型 string text
maxLength 输入框可输入长度限制 number --
placeholder 提示语句 string --
regExp 允许输入项匹配的正则 正则表达式 见强调说明
maxLength 文本框最大字符数限制 Number --
displayMode 显示类型 readonly,edit,readEdit edit
removeSpace getValue时是否移除首尾空格 bool false
hasEyes 是否有眼睛图标显示,只有在type为password的情况下才有效 bool false
defaultText displayMode:readEidt时值为空显示的默认文本 string --
dataOptions 数据校验格式例如:[{type:"num",args:[1,32]}] object --
maxCallBack 输入满长度后回调 function --
switchCallBack displayMode:readEidt时,切换显示模式回调函数,this指向当前组件实例 function --
focusCallBack 文本框获取焦点回调,this指向当前组件实例 function --

强调说明:
1. regExp 文本框可输入项对应的正则,配置后禁止未被正则匹配到字符的输入,当dataValueType或dataOptions配置为numfloat时有默认的正则,num:[0-9\-],float:[0-9\.\-];

使用

1. 普通文本

  1. $("#formInput1").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"普通文本",
  5. placeholder:"普通文本测试"
  6. });

2. 密码输入框

  1. $("#formInput2").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"密码文本",
  5. placeholder:"密码文本测试",
  6. type:"password"
  7. });

3. 密码输入框 - hasEyes:true

  1. $("#formInput3").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"密码文本",
  5. placeholder:"密码文本测试",
  6. type:"password",
  7. hasEyes:true
  8. });

4. 只读模式

  1. $("#formInput4").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"只读模式",
  5. displayMode:"readonly",
  6. defaultValue:"只读"
  7. });

5. 切换模式, defaultText,switchCallBack

  1. $("#formInput5").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"切换模式",
  5. placeholder:"切换模式测试",
  6. displayMode:"readEdit",
  7. required:false,
  8. defaultText:"未知数据",
  9. switchCallBack:function(){
  10. console.log("切换显示模式为:" + this.displayMode);
  11. }
  12. });

6. 数据校验模式

  1. $("#formInput6").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"普通文本",
  5. placeholder:"请输入1-6位整数",
  6. dataOptions:[{type:"num",args:[1,6]}]
  7. });

7. removeSpace,focusCallBack

  1. $("#formInput7").Rcomponent({
  2. dataKey:"FormInput",
  3. dataField:'username',
  4. dataTitle:"去除首尾空格",
  5. placeholder:"removeSpace",
  6. removeSpace: true,
  7. focusCallBack:function(){
  8. console.log("focus");
  9. console.log(this.value);
  10. }
  11. });

8. regExp, maxLength

  1. $("#formInput8").Rcomponent({
  2. dataKey: "FormInput",
  3. dataField: 'username',
  4. maxLength: 5,
  5. regExp: /[0-9a-zA-Z]/,
  6. dataTitle: "正则限制输入",
  7. placeholder: "输入数字和字母"
  8. });

其它API遵循BaseComponent的API进行使用


下拉框组件(FormSelect)

支持下拉框选项的添加,删除,修改等操作

  1. <!-- html模板 -->
  2. <select id="formselect" data-key="FormSelect"></select>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
selectArray 下拉可选项 array或object []
hasNullItem 是否包含空选择项 bool false
nullText 空选择项显示文本 string --
方法名称 描述 参数说明
removeItem(key) 移除下拉项 string或array
addItem(key) 增加下拉选项 string,array或object

使用

1. 基础使用-selectArray为array

  1. var $ts = $("#formselect1").Rcomponent({
  2. dataTitle:"selectArray为数组",
  3. dataField:"formselect1",
  4. defaultValue:"test2",
  5. selectArray:['test1', 'test2', 'test3', 'test4'],
  6. changeCallBack:function(){
  7. console.log(this.value);
  8. }
  9. });

2. selectArray为object

  1. $("#formselect2").Rcomponent({
  2. dataTitle:"selectArray为对象",
  3. dataField:"formselect2",
  4. defaultValue:3,
  5. selectArray:{1:'test1', 2:'test2', 3:'test3', 4:'test4'},
  6. changeCallBack:function(){
  7. console.log(this.value);
  8. }
  9. });

3. removeItem

  1. $ts.removeItem("test2");
  2. $ts.removeItem(["test3","test4"]);

4. addIem

  1. $ts.addItem("test5");
  2. $ts.addItem("test6","test哈哈");
  3. $ts.addItem({a:1,b:2});

其它API遵循BaseComponent的API进行使用


多文本输入框组件(FormMiltiInput)

根据不同的需求配置不同个数的文本输入框

  1. <!-- html模板 -->
  2. <div id="formMiltiInput" data-key="FormMiltiInput"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
text 文本输入框前的可写信息 array或object []
inputCount 文本输入框的个数 Number 0
maxLength 单个文本框最大可输入字符长度 Number 0
regExp 文本框可输入字符正则 正则 同FormInput组件
inputCfg 各文本输入框的配置信息 Array []
joiner 各文本框之间的连接符 String .

强调说明:
1. maxLength: 设置该属性值后,当输入满限定的字符数后,自动跳入下一个输入框
2. 若配置inputCfg则inputCount的值会被inputCfg的length覆盖,无需再对inputCount的值进行配置,两个字段至少有一个是必填项,若只配置inputCount则显示默认的普通文本

使用

1. 基础使用

  1. $("#formMultiInpit").Rcomponent({
  2. dataKey: "FormMultiInput",
  3. inputCount:4
  4. });

2. text

  1. $("#formMultiInpit1").Rcomponent({
  2. dataKey: "FormMultiInput",
  3. inputCount:2,
  4. text: "192.168.",
  5. validateCallBack:function(){
  6. console.log(1);
  7. },
  8. changeCallBack:function(){
  9. console.log(this.value);
  10. }
  11. });

3. inputCount,joiner

  1. $("#formMultiInpit2").Rcomponent({
  2. dataKey: "FormMultiInput",
  3. inputCount:4,
  4. defaultValue:"8545-2345-3445-5676",
  5. joiner:"-"
  6. });

4. inputCfg

  1. $("#formMultiInpit3").Rcomponent({
  2. dataKey: "FormMultiInput",
  3. inputCfg:[
  4. {dataValueType:'num', dataOptions: {type:"num",args:[192,255]}},
  5. {dataValueType:'num', dataOptions: {type:"num",args:[1,255]}},
  6. {dataValueType:'num', dataOptions: {type:"num",args:[1,255]}},
  7. {dataValueType:'num', dataOptions: {type:"num",args:[1,255]}}
  8. ]
  9. });

5. regExp,maxLength

  1. $("#formMultiInpit5").Rcomponent({
  2. dataKey: "FormMultiInput",
  3. dataTitle:"FormMultiInput:",
  4. dataField: "formMultiInpit",
  5. inputCount:4,
  6. regExp: '[a-zA-Z0-9]',
  7. maxLength: 4
  8. });

其它API遵循BaseComponent的API进行使用


百分比组件(FormPercent)

拖拽进行百分值的设定

  1. <!-- html模板 -->
  2. <div id="formPercent" data-key="FormPercent"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
start 起始值 Number 0
end 结束值 Number 100
showInput 显示文本输入框 bool true
fixed 结果保留几位有效数字 Number 0

使用

1. 基础使用

  1. $("#formPercent").Rcomponent({
  2. dataKey: "FormPercent",
  3. start:100,
  4. end:220,
  5. fixed: 0
  6. });

2. 设定默认值

  1. $("#formPercent1").Rcomponent({
  2. dataKey: "FormPercent",
  3. end:220,
  4. fixed: 1,
  5. showInput: false,
  6. defaultValue: 200
  7. });

3. 起始值大于结束值

  1. $("#formPercent2").Rcomponent({
  2. dataKey: "FormPercent",
  3. start:160,
  4. end:0,
  5. fixed: 0
  6. });

其它API遵循BaseComponent的API进行使用


上传组件(FormUpload)

文件上传组件

  1. <!-- html模板 -->
  2. <select id="formselect" data-key="FormSelect"></select>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
submitUrl 提交地址 String --
showFileText 是否显示上传文件名框 bool true
browseText 文件浏览按钮文本 String 浏览...
uploadText 上传按钮文本 String 上传
beforeUpload 上传文件前的操作 Function --
success 上传文件返回成功的回调 Function --

beforeUpload: 可进行格式检查之类的操作,若取消上传,返回false。通过this.value可取到上传文件的文件名,若有相应的数据需要提交,则返回对应的数据对象{}

使用

1. 基础使用

  1. $("#formUpload").Rcomponent({
  2. dataKey: "FormUpload",
  3. submitUrl:"xxx",
  4. success: function(){
  5. alert("success");
  6. }
  7. });

2. showFileText

  1. $("#formUpload").Rcomponent({
  2. dataKey: "FormUpload",
  3. submitUrl:"xxx",
  4. showFileText: false
  5. });

3. beforeUpload

  1. $("#formUpload1").Rcomponent({
  2. dataKey: "FormUpload",
  3. submitUrl:"xxx",
  4. showFileText: false,
  5. uploadText: _("Upload File"),
  6. beforeUpload:function(){ return false;},
  7. success: function(){
  8. alert("success");
  9. }
  10. });

其它API遵循BaseComponent的API进行使用


checkboxlist组件(FormCheckList)

多个checkbox排列显示,支持添加和删除项

  1. <!-- html模板 -->
  2. <div id="formchecklist" data-key="FormCheckList"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
selectArray check列表 array或object []
方法名称 描述 参数说明
removeItem 移除可选项 string或array
addItem 增加可选项 string,array或object

使用

1. 基础使用-selectArray为array

  1. var $tc = $("#formchecklist").Rcomponent({
  2. dataTitle:"formchecklist",
  3. dataField:"formchecklist",
  4. defaultValue:"test1",
  5. selectArray:['test1', 'test2', 'test3', 'test4'],
  6. changeCallBack:function(){
  7. console.log(this.value);
  8. }
  9. });

2. selectArray为object

  1. var $tc = $("#formchecklist").Rcomponent({
  2. dataTitle:"formchecklist",
  3. dataField:"formchecklist",
  4. defaultValue:"test1",
  5. selectArray:{test1:"test1", test2:"test2", test3:"test3", test4:"test4"},
  6. changeCallBack:function(){
  7. console.log(this.value);
  8. }
  9. });

3. removeItem(key)

  1. $tc.removeItem("test2");
  2. $tc.removeItem(["test3","test4"]);

4. addItem(key)

  1. $tc.addItem("test5");
  2. $tc.addItem("test6","test哈哈");

其它API遵循BaseComponent的API进行使用


radiolist组件(FormRadioList)

支持下拉框选项的添加,删除,修改等操作

  1. <!-- html模板 -->
  2. <div id="formradiolist" data-key="FormRadioList"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
selectArray check列表 array/object []
方法名称 描述 参数说明
removeItem 移除可选项 string或array
addItem 增加可选项 string,array或object

使用

1. 基础使用-selectArray为array

  1. var $tr = $("#formradiolist").Rcomponent({
  2. dataTitle:"FormRadioList",
  3. dataField:"FormRadioList",
  4. defaultValue:"test1",
  5. selectArray:['test1', 'test2', 'test3', 'test4'],
  6. changeCallBack:function(){
  7. console.log(this.value);
  8. }
  9. });

2. selectArray为object

  1. var $tr = $("#formradiolist").Rcomponent({
  2. dataTitle:"FormRadioList",
  3. dataField:"FormRadioList",
  4. defaultValue:"test1",
  5. selectArray:{test1:"test1", test2:"test2", test3:"test3", test4:"test4"}
  6. });

3. removeItem(key)

  1. $tc.removeItem("test2");
  2. $tc.removeItem(["test3","test4"]);

4. addItem(key, value)

  1. $tc.addItem("test5");
  2. $tc.addItem("test6","test哈哈");

其它API遵循BaseComponent的API进行使用


开关组件(FormCheckbox)

支持on,off两种状态

  1. <!-- html模板 -->
  2. <div id="formcheckbox" data-key="FormCheckbox"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
text 显示文本 string null

使用

1. 基础使用--无文本

  1. var $tcb = $("#formcheckbox").Rcomponent({
  2. dataTitle:"FormCheckbox",
  3. dataField:"formcheckbox",
  4. changeCallBack:function(){
  5. // $("#getvalue").toggle();
  6. }
  7. });

2. 基础使用--有文本

  1. var $tcb = $("#formcheckbox").Rcomponent({
  2. dataTitle:"FormCheckbox",
  3. dataField:"formcheckbox",
  4. text:"this is text",
  5. changeCallBack:function(){
  6. // $("#getvalue").toggle();
  7. }
  8. });

> 其它API遵循BaseComponent的API进行使用


自定义下拉组件(FormDropDownList)

  1. <!-- html模板 -->
  2. <div id="formDropDownList" data-key="FormDropDownList"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
selectArray 可选配置项 array或object null
dataOptions 数据校验配置项(customText不为空时才有效) array或object null
clickCallBack 下拉框展开收起回调 function null
showSelfText 显示自定义的文本,与selectArray值无关,只做显示用 string null
customText 自定义选项文本,若该字段不为空,则表示有自定义选项 string null
focusCallBack 自定义情况下文本框获取焦点回调函数(customText不为空时才有效) function null

使用

1. selectArray

  1. var $tcb = $("#formDropDownList").Rcomponent({
  2. dataValueType:"num",
  3. showSelfText:QOSTEXT[qosPolicy],
  4. customText:_("Manual (Unit: KB/s)"),
  5. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  6. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"},
  7. clickCallBack:function(){
  8. //移除定时器
  9. switchQosTimeout(false);
  10. },
  11. focusCallBack:function(){
  12. switchQosTimeout(false);
  13. },
  14. changeCallBack:function(){
  15. },
  16. renderedCallBack:function(){
  17. }
  18. });

2. dataOptions

  1. var $tcb = $("#formDropDownList").Rcomponent({
  2. dataValueType:"num",
  3. customText:_("Manual (Unit: KB/s)"),
  4. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  5. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"}
  6. });

3. clickCallBack

  1. var $tcb = $("#formDropDownList").Rcomponent({
  2. dataValueType:"num",
  3. customText:_("Manual (Unit: KB/s)"),
  4. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  5. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"},
  6. clickCallBack:function(){
  7. //移除定时器
  8. switchQosTimeout(false);
  9. },
  10. focusCallBack:function(){
  11. switchQosTimeout(false);
  12. }
  13. });

4. showSelfText

  1. var $tcb = $("#formDropDownList").Rcomponent({
  2. dataValueType:"num",
  3. showSelfText:QOSTEXT[qosPolicy],
  4. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  5. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"}
  6. });

5. customText

  1. var $tcb = $("#formDropDownList").Rcomponent({
  2. customText:_("Manual (Unit: KB/s)"),
  3. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"},
  4. clickCallBack:function(){
  5. //移除定时器
  6. switchQosTimeout(false);
  7. }
  8. });

6. focusCallBack

  1. var $tcb = $("#formDropDownList").Rcomponent({
  2. dataValueType:"num",
  3. customText:_("Manual (Unit: KB/s)"),
  4. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  5. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"},
  6. focusCallBack:function(){
  7. switchQosTimeout(false);
  8. }
  9. });

> 其它API遵循BaseComponent的API进行使用


日历组件(FormCalendar)

  1. <!-- html模板 -->
  2. <input type="text" id="formCalendar" data-key="FormCalendar">

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
hasWeekday 是否显示星期 bool false
startYear 日历开始时间 num 1970
endYear 日历结束时间 num 2037
scanAble 是否可输入 bool true

使用

1. 基础使用

  1. var $tcb = $("#formCalendar").Rcomponent({
  2. dataTitle:"日历组件",
  3. dataField:"formCalendar",
  4. hasWeekday:true
  5. }
  6. });

> 其它API遵循BaseComponent的API进行使用


选项卡组件(FormTab)

  1. <!-- html模板 -->
  2. <div id="formTab" data-key="FormTab"></div>

特有配置属性,方法

属性名称 描述 值类型/范围 默认值
selectArray 按钮配置项 object或array false

使用

1. 基础使用

  1. var$("#formtab").Rcomponent({
  2. selectArray:{1:_("Online Devices"), 2:_("Blacklist")},
  3. dataValueType:"num",
  4. defaultValue:1, //默认选中的按钮项
  5. changeCallBack:function(){
  6. switch(this.value){
  7. case 1:{
  8. //xxx
  9. }break;
  10. case 2:{
  11. //xxx
  12. }break;
  13. }
  14. }
  15. });

> 其它API遵循BaseComponent的API进行使用

功能组件


消息提示框组件 ($.FormMessage)

消息提示框,几秒钟后自动消失

配置属性参数

属性名称 描述 值类型/范围 默认值
message 消息内容 string --
hideTime 消失淡出时间,毫秒 number 300
displayTime 展示时间,毫秒,为0表示不关闭 number 1000
opacity 消息框透明度 0~1 0.8
callback 消息框显示回调 function --

可使用方法

方法名称 描述 参数
setMess(mess) 设置消息内容 mess:字符串
hide 隐藏消息提示框,隐藏后对应的node节点会在整个文档流中移除 --

使用

1. 基础使用

  1. $.FormMessage({
  2. message:"消息",
  3. callbackfunction(){
  4. }
  5. })

弹出框组件($.modalDialog)

支持弹出框标题,内容,操作按钮,皮肤主题自定义

配置属性,方法

属性名称 描述 值类型/范围 默认值
title 消息框标题(必填) string --
content 消息体内容/iframe(必填) string/$对象 --
isIframe 当content为iframe时,值必为true bool false
skin 皮肤样式,添加到最外层容器 string --
height 高度 number --
width number --
autoClose 是否自动关闭 bool false
timeout autoClose为true时多少秒后自动关闭 num --
closeCallBack 关闭弹出框回调 funciton --
buttons 操作按钮 array([{}]) []
按钮参数
text 按钮文本值 string --
theme 按钮主题 按钮主题 --
autoHide 点击按钮后是否关闭弹出窗 bool true
callback 点击按钮的回调 t edit

使用

1. 基础使用

  1. $.modalDialog({
  2. title:'test',
  3. content:'<div style="height:200px;width:200px;"></div>',
  4. buttons:[
  5. {
  6. text:'ok'
  7. },
  8. {
  9. text:'cancel'
  10. }
  11. ]
  12. });

table组件(FormTable)

  1. <!-- html模板 -->
  2. <table id="FormTable"></table>

配置属性

属性名称 描述 值类型/范围 默认值
data 表格数据 array --
requestUrl 数据请求地址 string ""
requestOpt 请求参数 object {}
requestType 请求类型 get/post get
dataTarget 数据项的子项,请求或给定数据对象的某个子属性 string ""
perArray 每页显示条数数组 array [10, 20, 30, 50]
perNum 每页显示的数据数 number 10
pageIndex 当前起始页 number 0
showStyle 数据显示类型 1:分页,2:不分页 1
limit 最多显示的数据条数 Number 0(不限制)
filterProperty 过滤字段 array []
showIndex 显示序号 bool false
key 主键字段,数据的唯一标识在启用CheckBox的时候需要用到,当调用getSelected()获取选中数据时,返回的就是主键值的数组 string ID
sortFields 已排序字段规则优先级顺序 array []
sortOpt 排序字段对应的排序规则 1:升序,2:降序,例如{Age:1, Name:1} object {}
autoHighLight 高亮与查询字段匹配的字符 bool false
sortFunction 自定义排序函数,若设置自定义函数则配置的排序字段排序失效 function
showCheckbox 显示checkbox bool false
showPageLeftBar 显示底部左侧显示页数切换栏 bool true
showPageRightBar 显示分页按钮 bool true
maxIndex 分页栏最多显示按钮数 number 7
updateCallback 数据更新回调,this指向当前组件实例对象 function --
changePageNumCallBack 改变每页显示条数回调,this指向当前组件实例对象 function --
beforeUpdate 数据更新前操作,可进行数据的二次处理,若有返回值,则返回新的数据,this指向当前组件实例对象 funciton --
columns 配置列信息 array --
columns配置属性
field 单元格对应的字段 string --
title 列显示标题 string --
width 列宽 number、百分比字符串 --
sortable 设置字段是否可以排序 bool false
sortCallBack 自定义排序逻辑函数,默认在升序和降序间切换 function null
format 格式化单元格数据,必须有返回值 function(data) --
rendered 渲染完成后的回调(待更新) function --
actionColumn 按钮操作列 object --
actionColumn配置属性
columnName 列名称 string 操作
actions 按钮数组 array --
actions配置属性
type 按钮类型 edit,delete,other --
text 按钮文本 string --
icon 按钮图标 string --
callback 点击回调 function --

方法

方法名称 描述 参数说明
show() 显示组建 --
hide() 隐藏组件 --
getSelected() 获取选中的数据key对应的数组 --
goPage(index) 跳到制定的页 index从1开始
reLoad(data) 刷新表格数据 data可为空,为空时会根据填写的请求地址进行重新获取数据
getValue() 获取当前table过滤和排序后用于显示数据 --

使用

1. 基础使用

  1. <!--html-->
  2. <table id="formTablenormal">
  3. <thead>
  4. <tr>
  5. <th data-field="A">A</th>
  6. <th data-field="G">B</th>
  7. <th data-field="G2">C</th>
  8. <th data-field="D">D</th>
  9. <th data-field="G0">E</th>
  10. </tr>
  11. </thead>
  12. </table>
  13. <!--js-->
  14. var tableData = [
  15. {A:'1', D:"D1",G:"G1", G2:"G21", G0:"GO1"},
  16. ······
  17. ];
  18. $("#formTablenormal").TablePage({
  19. data:tableData
  20. });

2. 配置使用-配置信息加载 自定义列头显示,列宽设置

  1. <!--html-->
  2. <table id="formTable"></table>
  1. $("#formTable").TablePage({
  2. data:tableData,
  3. columns:[
  4. {field:'G2',title:"G2--2"},
  5. {field:'G',width:"100px"},
  6. {field:'D'},
  7. {field:'A'}
  8. ],
  9. perNum:10,
  10. pageIndex:0
  11. });

3. 重写列数据值

  1. $("#formTable").TablePage({
  2. data:tableData,
  3. columns:[
  4. {field:'G2',title:"G2 + cute", format:function(val){
  5. return val + "--cute";
  6. }},
  7. {field:'G'},
  8. {field:'D'},
  9. {field:'A'}
  10. ],
  11. perNum:10,
  12. pageIndex:0
  13. });

4. 显示复选框

  1. $("#formTable").TablePage({
  2. data:tableData,
  3. showCheckbox:true,
  4. columns:[
  5. {field:'G2',title:"G2--2"},
  6. {field:'G'},
  7. {field:'D'},
  8. {field:'A'}
  9. ],
  10. perNum:8,
  11. maxIndex:5,
  12. pageIndex:0
  13. });

5. 显示操作按钮

  1. $("#formTable").TablePage({
  2. data:tableData,
  3. showCheckbox:true,
  4. columns:[
  5. {field:'G2', title:"G2 + 哈哈", format:function(val){return "哈哈" + val;}},
  6. {field:'G'},
  7. {field:'D'},
  8. {field:'*_*', title:"", format:function(val){return "@_@";}}
  9. ],
  10. actionColumn:{
  11. columnName:"操作",
  12. actions:[
  13. {
  14. type:"edit",//delete,other
  15. text:"修改",
  16. icon:"",
  17. callback:function(index){
  18. console.log(index);
  19. tableData[index]["D"] = "修改后的值"
  20. }
  21. },
  22. {
  23. type:"delete",//delete,other
  24. text:"删除",
  25. icon:"",
  26. callback:function(index){
  27. console.log(index);
  28. }
  29. }
  30. ]
  31. },
  32. perNum:10,
  33. pageIndex:3
  34. });

6. FormTable排序

  1. $("#formTable").FormTable({
  2. data:tableData,
  3. sortFields:["sysLogTime","ID"],// 定义属性
  4. sortOpt:{sysLogTime:2, ID:2}, // 按时间降序排列
  5. columns:[
  6. {field:"sysLogTime", title:_("Time"), width:170},
  7. {
  8. field:"sysLogType", title:_("Type") , width:140,
  9. format:function(data){
  10. switch(data){
  11. case 1:
  12. return _("System Log");
  13. case 2:
  14. return _("Attack Log");
  15. case 3:
  16. return _("Error Log");
  17. }
  18. }
  19. },
  20. {field:"sysLogMsg", title:_("Log Content")}
  21. ],
  22. showIndex:true,
  23. updateCallback:function(){
  24. top.ResetHeight.resetHeight();
  25. },
  26. changePageNumCallBack:function () {
  27. top.ResetHeight.resetHeight();
  28. }
  29. });

7. FormTable与其他组件混合使用

  1. $("#customTable").FormTable({
  2. requestUrl:"/goform/module", //请求地址
  3. requestOpt:{getQosUserList:{type:1}, getQosPolicy:""}, //请求参数
  4. dataTarget:"getQosUserList", //table的data为请求到的数据的的getQosUserList属性值
  5. showStyle:2, //显示全部数据不分页
  6. filterProperty:["hostRemark#hostName", "hostIP", "hostMAC"],//数据过滤字段
  7. columns:[
  8. {
  9. field:"hostRemark",
  10. sortable:true,
  11. title:_("Host Name"),
  12. format: function(data, field, rowData){
  13. var nodes = '<div class="hostNameWrap"><input data-id="' + rowData.ID + '" class="hostName" data-key="FormInput" default-value="' + data + '" data-hostname="' + rowData["hostName"] + '" type="text"/></div>' +
  14. '</div>';
  15. return nodes;
  16. },
  17. sortCallBack:function(){
  18. var opt = {
  19. field: sortList[curSortIndex%3],
  20. sort:1
  21. };
  22. curSortIndex ++;
  23. return opt;
  24. },
  25. rendered:function(field){
  26. var _this = this;
  27. _this.$element.find(".hostName").each(function(){
  28. var hostname = $(this).attr("data-hostname");
  29. $(this).Rcomponent({
  30. displayMode:"readEdit",
  31. dataField:field,
  32. defaultText: hostname || _("Unknown"),
  33. required:false,
  34. dataOptions:[{type:"hostName"},{type:"byteLen",args:[1, 63]}],
  35. changeCallBack:function(){
  36. //xxxx
  37. },
  38. afterChangeCallBack:function(){
  39. //xxx
  40. },
  41. renderedCallBack:function () {
  42. //xxx
  43. }
  44. });
  45. });
  46. }
  47. },
  48. { field:"hostUploadSpeed", sortable:true, title:_("Upload Bandwidth"),
  49. format:function(data){
  50. return formatSpeed(data) + "/s";
  51. }
  52. },
  53. { field:"hostDownloadSpeed", sortable:true, title:_("Download Bandwidth"),
  54. format:function(data){
  55. return formatSpeed(data) + "/s";
  56. }
  57. },
  58. { field:"hostUploadLimit", title:_("Upload Limit"), format:function(data, field, rowData){
  59. return '<div class="UploadLimit" data-down="' + rowData["hostDownloadLimit"] + '" data-id="' + rowData.ID + '" data-field="'+field+'" default-value="'+data+'" data-key="FormDropDownList"></div>';
  60. },
  61. rendered:function(){
  62. this.$element.find(".UploadLimit").Rcomponent({
  63. dataValueType:"num",
  64. customText:_("Manual (Unit: KB/s)"),
  65. showSelfText:QOSTEXT[qosPolicy],
  66. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  67. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"},
  68. clickCallBack:function(){
  69. $("#allSettingModal").hide();
  70. },
  71. changeCallBack:function(){
  72. //xxx
  73. },
  74. renderedCallBack:function(){
  75. //xxx
  76. }
  77. });
  78. }
  79. },
  80. {
  81. field:"hostDownloadLimit", title:_("Download Limit"),
  82. format:function(data, field, rowData){
  83. return '<div class="DownloadLimit" data-up="' + rowData["hostUploadLimit"] + '" data-id="' + rowData.ID + '" data-field="'+field+'" default-value="'+data+'" data-key="FormDropDownList"></div>';
  84. },
  85. rendered:function(){
  86. this.$element.find(".DownloadLimit").Rcomponent({
  87. dataValueType:"num",
  88. customText:_("Manual (Unit: KB/s)"),
  89. showSelfText:QOSTEXT[qosPolicy],
  90. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  91. selectArray:{0:_("No limit"), 32:"32 KB/s", 64:"64 KB/s", 128:"128 KB/s"},
  92. clickCallBack:function(){
  93. $("#allSettingModal").hide();
  94. },
  95. changeCallBack:function(){
  96. //添加定时器
  97. },
  98. renderedCallBack:function(){
  99. //xxx
  100. }
  101. });
  102. }
  103. },
  104. {
  105. field:"forbiden", title:_("Blacklist"),
  106. format:function(data, field, rowData){
  107. return '<button type="button" data-id="' + rowData["ID"] + '" class="forbidden btn btn-default" >' + _("Blacklist ") + '</button>';
  108. },
  109. rendered:function(){
  110. this.$element.off("click.sysInfo").on("click.sysInfo", ".forbidden", function(){
  111. //xxxxx
  112. });
  113. }
  114. }
  115. ],
  116. showPageLeftBar: false,
  117. updateCallback:function(){
  118. //重置高度
  119. top.resetIframeHeight();
  120. },
  121. beforeUpdate:function(){
  122. qosPolicy = qosUserSettingTable.returnData["getQosPolicy"]["qosPolicy"];
  123. }
  124. });

其它API自行验证


ComponentManager

多个组件操作类,提供便捷的组件组群操作

配置参数

属性名称 描述 值类型/范围 默认值
requestUrl 数据请求地址 string --
requestData 请求数据 object --
submitUrl 数据提交地址 string --
formCfg 组件配置项{key:value} object,key为组件的dataField,value为组件对应的配置信息 --
container 组件群容器的选择器(必填) string
beforeUpdate 数据更新前操作,this指向当前ComponentManager实例对象 function true
afterUpdate 数据更新后的回调,this指向当前ComponentManager实例对象 function --
beforeSubmit 提交数据前,进行一些列自定义数据校验操作,当然基础的数据校验会在这之前进行调用,失败返回false, 成功返回true或者二次处理后需要提交的数据,this指向当前ComponentManager实例对象 function --
afterSubmit 数据提交后的回调,this指向当前ComponentManager实例对象 function --
renderedCallBack 模块组件加载完成后的回调,可用于实现组件加载完后的自定义逻辑,this指向当前ComponentManager实例对象 function --

方法

名称 描述 参数说明 返回值
getComponent(dataField) 根据组件字段获取对应的组件实例对象 dataField:组件字段名 组件实例化对象
reset() 重置每个组件的值为默认值 -- --
submit(type) 提交或者校验数据 type: 1(提交数据),2(数据校验,只做数据校验) 校验失败返回false,否则返回true
updateComponents(data) 更新组件的值-重置为上一次的值或者给定的值 组件群的值Object --
getComponentByNode(node) 根据标签节点获取对应的组件实例对象 html标签节点 组件实例化对象
setValue(val, dataField) 设置组件的值 val:值, dataFiled:字段 --
getValue(dataField) 获取组件的值 dataField: 组件字段, 为空则返回所有组件的值 根据组件的类型返回对应的值,若参数为空返回字段和值组成的对象

使用

1. 基础使用

  1. <!--html-->
  2. <div id="text"></div>
  3. <div id="authUserModal" class="form-wrap">
  4. <input type="text" data-key="FormInput" data-field="ID" data-value-type="num" visible="false">
  5. <input type="text" data-key="FormInput" data-field="index" data-value-type="num" visible="false">
  6. <input type="text" data-key="FormInput" data-field="type" visible="false">
  7. <input type="text" data-key="FormInput" data-field="authUserID">
  8. <input type="text" data-key="FormInput" data-field="authUserPwd">
  9. <input type="text" data-key="FormInput" data-field="authUserRemark">
  10. <input type="text" data-key="FormInput" maxlength="3" data-field="authUserMaxCount">
  11. <input type="text" data-key="FormInput" maxlength="4" data-field="authUserConnectCount">
  12. <div data-key="FormDropDownList" data-field="uploadSpeed"></div>
  13. <div data-key="FormDropDownList" data-field="downLoadSpeed"></div>
  14. </div>
  15. <!--js-->s
  16. authUserManage = $.componentManager({
  17. submitUrl:"/goform/module",
  18. container:"#authUserModal",
  19. formCfg:{
  20. authUserID:{dataTitle:_("Account:"), dataOptions:[{type:"pwd"},{type:"byteLen", args:[1,32]}]},
  21. authUserPwd:{dataTitle:_("Password:"), dataOptions:[{type:"pwd"},{type:"byteLen", args:[1,32]}]},
  22. authUserRemark:{dataTitle:_("Remark:"), placeholder:_("Optional"), removeSpace:true, required:false, dataOptions:[{type:"remarkTxt"},{type:"byteLen", args:[1,16]}]},
  23. authUserMaxCount:{dataTitle:_("Login User Number:"), dataValueType:"num", defaultValue:1, dataOptions:[{type:"num", args:[1,300]}]},
  24. authUserConnectCount:{dataTitle:_("Connection Number:"), dataValueType:"num", defaultValue:600, dataOptions:[{type:"num", args:[1,9999]}]},
  25. uploadSpeed:{
  26. dataTitle:_("Upload Rate:"), dataValueType:"num", description:"KB/s",
  27. defaultValue:0, customText:_("Manual"),
  28. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  29. selectArray:{0:_("No limit"), 32:"32", 64:"64", 128:"128"}
  30. },
  31. downLoadSpeed:{
  32. dataTitle:_("Download Rate:"),dataValueType:"num", description:"KB/s",
  33. defaultValue:0, customText:_("Manual"),
  34. dataOptions:[{type:"num", args:[0, MAX_SPEED]}],
  35. selectArray:{0:_("No limit"), 32:"32", 64:"64", 128:"128"}
  36. }
  37. },
  38. updateCallback:function(){
  39. },
  40. beforeSubmit:function(data){
  41. //增加数据校验
  42. },
  43. afterSubmit:function(data){
  44. }
  45. });

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注