router.yml是整个UI描述的入口:
- title: 菜单标题
- path: 菜单URL,需要斜杠开头
- component: 类全称
- roles: 权限
- icon: 菜单图标
其中component标识的便是一个菜单的入口页面,也是我们一个UI功能的基本单元,任何component类的需要加上component注解
@Component
public class MyComponent {
private MyForm myForm;
get()...
set()...
}
在component中所包含的属性必须是一个Form,你需要在Form类中加上Form注解:
@Form
public class MyForm {
...
}
另外在component中的属性可以有以下几种修饰注解:
- Card
- Dialog
- Carousel
@Component
public class MyComponent {
//myForm将以一个弹出层的形式展现
@Dialog
private MyForm myForm;
get()...
set()...
}
Form类就是我们Restful service对应的request body和response body了
@Form
public class MyForm {
@Input
private String username;
@Input
private String password;
}
注意1: 一定要符合Javabean的规范,生成相应的get、set方法
注意2: Form中的属性类型可以任意指定,并不一定非得是String
- Alert 警告
- Autocomplete 自动补齐输入框
- Badge 标记
- Breadcrumb 面包屑
- Button 按钮
- Card 卡片
- Carousel 走马灯
- Cascader 级联选择器
- Checkbox 多选框
- CheckboxButton 多选按钮
- CheckboxButtonGroup 多选按钮组
- CheckboxGroup 多选组
- Collapse 折叠面板
- ColorPicker 颜色选择器
- Component 组件
- DatePicker 日期选择器
- Dialog 弹出层
- Dropdown 下拉菜单
- Element Dom元素
- Form 表单
- FormItem 表单元素
- IgnoreData 忽略渲染
- Input 输入框
- InputNumber 数字选择器
- Loading 加载
- MessageBox 消息框
- NavMenu 导航菜单
- Notification 通知
- Pagination 分页
- Popover 弹出框
- Progress 进度条
- Radio 单选框
- RadioButton 单选按钮
- RadioButtonGroup 单选按钮组
- RadioGroup 单选组
- Rate 评分
- Select 选择器
- Slider 滑块
- Steps 步凑条
- Subplot 分栏布局
- Switch 开关
- Table 表格
- TableColum 表格列
- Tabs 标签页
- Tag 标签
- TimePicker 时间选择器
- Tooltip 文字提示
- Transfer 穿梭框
- Tree 树
- Upload 上传
- I18N 国际化
@Alert
private String alert;
@Autocomplete
private String autocomplete;
@Badge
@Input
private String input;
@Breadcrumb
private String Breadcrumb;
@Button(text = "save")
private String button;
@Card(title = "title")
private MyForm myForm;
@Carousel(data = {"$myForm1", "$myForm2"})
private String carousel;
private MyForm myForm1;
private MyForm myForm2;
@Cascader
private String cascader;
@Checkbox
private String checkbox;
@CheckboxButton
private String checkboxButton;
@CheckboxButtonGroup(data = "$checkboxButtonGroupData")
private String checkboxButtonGroup;
private List<CheckboxButtonGroup.CheckboxButton> checkboxButtonGroupData
@CheckboxGroup(data = "checkboxGroupData")
private String checkboxGroup;
private List<CheckboxGroup.Checkbox> checkboxGroupData
@Collapse
private String Collapse;
@ColorPicker
private String colorPicker;
@Component
public class MyComponent {
}
@DatePicker
private Date datePicker;
@Component
public class MyComponent {
@Dialog(title = "MyDialog")
private MyForm myForm;
}
@Dropdown(data = "$dropdownData")
private String dropdown;
private List<Dropdown.Item> dropdownData;
//订制标签元素,以下代码相当于在页面建立了一个div标签
@Element(tag = "div")
private String element;
@Form
public class MyForm {
}
//在Form中使用,默认可以不写,一般当使用表单规则校验,以及需要将元素定位在同一行中才使用
@FormItem(prop = "g1")
private String input1;
@FormItem(prop = "g1")
private String input2;
//添加该标签后,这个属性将不会渲染到页面上
@IgnoreData
private String ignoreData;
@Input
private String input;
@InputNumber
private String inputNumber;
@Loading
@Input
private String input;
//unimplemented
//unimplemented
//unimplemented
@Pagination
private String pagination;
@Popover
private String popover;
@Progress
private String progress;
@Radio
private String radio;
@RadioButton
private String radioButton;
@RadioButtonGroup(data = "$radioButtonGroupData")
private String radioButtonGroup;
private List<RadioButtonGroup.RadioButton> radioButtonGroupData;
@RadioGroup(data = "radioGroupData")
private String radioGroup;
private List<RadioGroup.Radio> radioGroupData;
@Rate
private int radioButton;
@Select(data = "options")
private String radioGroup;
private List<Select.Option> options;
@Slider
private int slider;
@Steps
private int steps;
// 取自Matlab的subplot函数,三个数字分别代表:行, 列, 序号 @Component public class MyComponent { @Subplot({1, 2, 1}) private MyForm myForm1; @Subplot({1, 2, 2}) private MyForm myForm2; }
@Switch
private boolean switch;
@Table
private List<MyRow> myTabel;
public class MyRow {
@TableColum
private String col1;
}
//unimplemented
@Tag
private String tag;
@TimePicker
private Date timePicker;
@Tooltip(content = "MyTooltip")
@TimePicker
private Date timePicker;
@Transfer
private String transfer;
//unimplemented
@Upload
private File upload;
//支持多国语言切换,只需要在属性上加入i18n注解即可
@I18N(en = "username", zh_CN = "用户名")
@Input
private String input;