提交 a38a371c 编写于 作者: ibizdev's avatar ibizdev

zhanghengfeng 发布系统代码 [TrainSys,网页端]

上级 139f2863
...@@ -20,6 +20,43 @@ ...@@ -20,6 +20,43 @@
"id" : "engine" "id" : "engine"
} }
} ], } ],
"getPSDEFormItems" : [ {
"id" : "n_reginfoname_like",
"dataType" : 25,
"getPSAppDEField" : {
"name" : "REGINFONAME",
"codeName" : "ReginfoName"
}
}, {
"id" : "n_studentid_eq",
"hidden" : true,
"dataType" : 25,
"getPSAppDEField" : {
"name" : "STUDENTID",
"codeName" : "StudentId"
}
}, {
"id" : "n_address_eq",
"dataType" : 25,
"getPSAppDEField" : {
"name" : "ADDRESS",
"codeName" : "Address"
}
}, {
"id" : "n_department_eq",
"dataType" : 25,
"getPSAppDEField" : {
"name" : "DEPARTMENT",
"codeName" : "DepartMent"
}
}, {
"id" : "n_age_gtandeq",
"dataType" : 9,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
}
} ],
"getPSDEFormPages" : [ { "getPSDEFormPages" : [ {
"caption" : "常规条件", "caption" : "常规条件",
"codeName" : "formpage1", "codeName" : "formpage1",
...@@ -27,8 +64,155 @@ ...@@ -27,8 +64,155 @@
"detailType" : "FORMPAGE", "detailType" : "FORMPAGE",
"mOSFilePath" : "psdeformdetail_formpages/formpage1", "mOSFilePath" : "psdeformdetail_formpages/formpage1",
"name" : "formpage1", "name" : "formpage1",
"getPSDEFormDetails" : [ {
"caption" : "学员登记信息名称",
"codeName" : "n_reginfoname_like",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_reginfoname_like",
"name" : "n_reginfoname_like",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "REGINFONAME",
"codeName" : "ReginfoName"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_reginfoname_like"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_reginfoname_like",
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "学生标识",
"codeName" : "n_studentid_eq",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_studentid_eq",
"name" : "n_studentid_eq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "STUDENTID",
"codeName" : "StudentId"
},
"getPSEditor" : {
"editorType" : "HIDDEN",
"name" : "n_studentid_eq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_studentid_eq",
"allowEmpty" : true,
"hidden" : true,
"showCaption" : true
}, {
"caption" : "家庭住址",
"codeName" : "n_address_eq",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_address_eq",
"name" : "n_address_eq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "ADDRESS",
"codeName" : "Address"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_address_eq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_address_eq",
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "单位",
"codeName" : "n_department_eq",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_department_eq",
"name" : "n_department_eq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "DEPARTMENT",
"codeName" : "DepartMent"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_department_eq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_department_eq",
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "年龄",
"codeName" : "n_age_gtandeq",
"dataType" : 9,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_age_gtandeq",
"name" : "n_age_gtandeq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_age_gtandeq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_age_gtandeq",
"allowEmpty" : true,
"showCaption" : true
} ],
"getPSLayout" : { "getPSLayout" : {
"childColLG" : -1, "childColLG" : 8,
"childColMD" : 24, "childColMD" : 24,
"childColSM" : -1, "childColSM" : -1,
"childColXS" : -1, "childColXS" : -1,
......
...@@ -37,6 +37,124 @@ ...@@ -37,6 +37,124 @@
} }
} ], } ],
"getPSDEFormItemVRs" : [ { "getPSDEFormItemVRs" : [ {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule8",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"name" : "field7值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "OR",
"condType" : "GROUP",
"name" : "[条件组]OR",
"getPSDEFVRConditions" : [ {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 20.0,
"minValue" : 10.0,
"name" : "[数值范围] 大于等于 10.0 且 小于等于 20.0",
"ruleInfo" : "数值必须大于等于[10.0]且小于等于[20.0]",
"includeMaxValue" : true,
"includeMinValue" : true
}, {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 40.0,
"minValue" : 30.0,
"name" : "[数值范围] 大于等于 30.0 且 小于等于 40.0",
"ruleInfo" : "数值必须大于等于[30.0]且小于等于[40.0]",
"includeMaxValue" : true,
"includeMinValue" : true
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
"getPSDEFValueRule" : { "getPSDEFValueRule" : {
...@@ -169,37 +287,6 @@ ...@@ -169,37 +287,6 @@
}, },
"getPSDEFormItemName" : "field2", "getPSDEFormItemName" : "field2",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, { }, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
...@@ -304,93 +391,6 @@ ...@@ -304,93 +391,6 @@
}, },
"getPSDEFormItemName" : "field6", "getPSDEFormItemName" : "field6",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule8",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"name" : "field7值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "OR",
"condType" : "GROUP",
"name" : "[条件组]OR",
"getPSDEFVRConditions" : [ {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 20.0,
"minValue" : 10.0,
"name" : "[数值范围] 大于等于 10.0 且 小于等于 20.0",
"ruleInfo" : "数值必须大于等于[10.0]且小于等于[20.0]",
"includeMaxValue" : true,
"includeMinValue" : true
}, {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 40.0,
"minValue" : 30.0,
"name" : "[数值范围] 大于等于 30.0 且 小于等于 40.0",
"ruleInfo" : "数值必须大于等于[30.0]且小于等于[40.0]",
"includeMaxValue" : true,
"includeMinValue" : true
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
} ], } ],
"getPSDEFormItems" : [ { "getPSDEFormItems" : [ {
"id" : "srfupdatedate", "id" : "srfupdatedate",
......
...@@ -297,6 +297,43 @@ ...@@ -297,6 +297,43 @@
"showBusyIndicator" : true, "showBusyIndicator" : true,
"id" : "SEARCHFORM" "id" : "SEARCHFORM"
}, },
"getPSDEFormItems" : [ {
"id" : "n_reginfoname_like",
"dataType" : 25,
"getPSAppDEField" : {
"name" : "REGINFONAME",
"codeName" : "ReginfoName"
}
}, {
"id" : "n_studentid_eq",
"hidden" : true,
"dataType" : 25,
"getPSAppDEField" : {
"name" : "STUDENTID",
"codeName" : "StudentId"
}
}, {
"id" : "n_address_eq",
"dataType" : 25,
"getPSAppDEField" : {
"name" : "ADDRESS",
"codeName" : "Address"
}
}, {
"id" : "n_department_eq",
"dataType" : 25,
"getPSAppDEField" : {
"name" : "DEPARTMENT",
"codeName" : "DepartMent"
}
}, {
"id" : "n_age_gtandeq",
"dataType" : 9,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
}
} ],
"getPSDEFormPages" : [ { "getPSDEFormPages" : [ {
"caption" : "常规条件", "caption" : "常规条件",
"codeName" : "formpage1", "codeName" : "formpage1",
...@@ -304,8 +341,155 @@ ...@@ -304,8 +341,155 @@
"detailType" : "FORMPAGE", "detailType" : "FORMPAGE",
"mOSFilePath" : "psdeformdetail_formpages/formpage1", "mOSFilePath" : "psdeformdetail_formpages/formpage1",
"name" : "formpage1", "name" : "formpage1",
"getPSDEFormDetails" : [ {
"caption" : "学员登记信息名称",
"codeName" : "n_reginfoname_like",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_reginfoname_like",
"name" : "n_reginfoname_like",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "REGINFONAME",
"codeName" : "ReginfoName"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_reginfoname_like"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_reginfoname_like",
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "学生标识",
"codeName" : "n_studentid_eq",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_studentid_eq",
"name" : "n_studentid_eq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "STUDENTID",
"codeName" : "StudentId"
},
"getPSEditor" : {
"editorType" : "HIDDEN",
"name" : "n_studentid_eq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_studentid_eq",
"allowEmpty" : true,
"hidden" : true,
"showCaption" : true
}, {
"caption" : "家庭住址",
"codeName" : "n_address_eq",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_address_eq",
"name" : "n_address_eq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "ADDRESS",
"codeName" : "Address"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_address_eq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_address_eq",
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "单位",
"codeName" : "n_department_eq",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_department_eq",
"name" : "n_department_eq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "DEPARTMENT",
"codeName" : "DepartMent"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_department_eq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_department_eq",
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "年龄",
"codeName" : "n_age_gtandeq",
"dataType" : 9,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"mOSFilePath" : "psdeformdetail_formitems/n_age_gtandeq",
"name" : "n_age_gtandeq",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "n_age_gtandeq"
},
"getPSLayoutPos" : {
"colLG" : 8,
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"rTMOSFilePath" : "psdeformdetail_formitems/n_age_gtandeq",
"allowEmpty" : true,
"showCaption" : true
} ],
"getPSLayout" : { "getPSLayout" : {
"childColLG" : -1, "childColLG" : 8,
"childColMD" : 24, "childColMD" : 24,
"childColSM" : -1, "childColSM" : -1,
"childColXS" : -1, "childColXS" : -1,
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册