Skip to content

Latest commit

 

History

History
491 lines (432 loc) · 7.28 KB

readme.md

File metadata and controls

491 lines (432 loc) · 7.28 KB

Beanui Core

控件结构

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

@Alert
private String alert;

Autocomplete

@Autocomplete
private String autocomplete;

Badge

@Badge
@Input
private String input;

Breadcrumb

@Breadcrumb
private String Breadcrumb;

Button

@Button(text = "save")
private String button;

Card

@Card(title = "title")
private MyForm myForm;

Carousel

@Carousel(data = {"$myForm1", "$myForm2"})
private String carousel;
private MyForm myForm1;
private MyForm myForm2;

Cascader

@Cascader
private String cascader;

Checkbox

@Checkbox
private String checkbox;

CheckboxButton

@CheckboxButton
private String checkboxButton;

CheckboxButtonGroup

@CheckboxButtonGroup(data = "$checkboxButtonGroupData")
private String checkboxButtonGroup;
private List<CheckboxButtonGroup.CheckboxButton> checkboxButtonGroupData

CheckboxGroup

@CheckboxGroup(data = "checkboxGroupData")
private String checkboxGroup;
private List<CheckboxGroup.Checkbox> checkboxGroupData

Collapse

@Collapse
private String Collapse;

ColorPicker

@ColorPicker
private String colorPicker;

Component

@Component
public class MyComponent {

}

DatePicker

@DatePicker
private Date datePicker;

Dialog

@Component
public class MyComponent {
    @Dialog(title = "MyDialog")
    private MyForm myForm;
}

Dropdown

@Dropdown(data = "$dropdownData")
private String dropdown;
private List<Dropdown.Item> dropdownData;

Element

//订制标签元素,以下代码相当于在页面建立了一个div标签
@Element(tag = "div")
private String element;

Form

@Form
public class MyForm {

}

FormItem

//在Form中使用,默认可以不写,一般当使用表单规则校验,以及需要将元素定位在同一行中才使用
@FormItem(prop = "g1")
private String input1;
@FormItem(prop = "g1")
private String input2;

IgnoreData

//添加该标签后,这个属性将不会渲染到页面上
@IgnoreData
private String ignoreData;

Input

@Input
private String input;

InputNumber

@InputNumber
private String inputNumber;

Loading

@Loading
@Input
private String input;

Messagebox

//unimplemented

Navmenu

//unimplemented

Notification

//unimplemented

Pagination

@Pagination
private String pagination;

Popover

@Popover
private String popover;

Progress

@Progress
private String progress;

Radio

@Radio
private String radio;

RadioButton

@RadioButton
private String radioButton;

RadioButtonGroup

@RadioButtonGroup(data = "$radioButtonGroupData")
private String radioButtonGroup;
private List<RadioButtonGroup.RadioButton> radioButtonGroupData;

RadioGroup

@RadioGroup(data = "radioGroupData")
private String radioGroup;
private List<RadioGroup.Radio> radioGroupData;

Rate

@Rate
private int radioButton;

Select

@Select(data = "options")
private String radioGroup;
private List<Select.Option> options;

Slider

@Slider
private int slider;

Steps

@Steps
private int steps;

Subplot

// 取自Matlab的subplot函数,三个数字分别代表:行, 列, 序号 @Component public class MyComponent { @Subplot({1, 2, 1}) private MyForm myForm1; @Subplot({1, 2, 2}) private MyForm myForm2; }

Switch

@Switch
private boolean switch;

Table

@Table
private List<MyRow> myTabel;

TableColum

public class MyRow {
    @TableColum
    private String col1;
}

Tabs

//unimplemented

Tag

@Tag
private String tag;

TimePicker

@TimePicker
private Date timePicker;

Tooltip

@Tooltip(content = "MyTooltip")
@TimePicker
private Date timePicker;

Transfer

@Transfer
private String transfer;

Tree

//unimplemented

Upload

@Upload
private File upload;

I18N

//支持多国语言切换,只需要在属性上加入i18n注解即可
@I18N(en = "username", zh_CN = "用户名")
@Input
private String input;