[erupt 框架 ] erupt框架的基础使用 :多对多配置

多对多配置:
一个项目表,一个用户表,一个中间表

这里用户表 我用的jar 封装好的底层 EruptUser表

项目表:

package cn.bist.cdapp.backstage.model;


import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import xyz.erupt.annotation.Erupt;
import xyz.erupt.annotation.EruptField;
import xyz.erupt.annotation.sub_field.Edit;
import xyz.erupt.annotation.sub_field.EditType;
import xyz.erupt.annotation.sub_field.View;
import xyz.erupt.upms.model.EruptUser;

import javax.persistence.*;
import java.util.Set;

@Erupt(name = "项目管理")
@Table(name = "project_form")
@Entity
@Data
public class ProjectForm {


    /**
     * 项目编号
     */
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "native")
    @Column(name = "id")
    @EruptField
    private Long id;

    /**
     * 项目名称
     */
    @EruptField(
            views = @View(title = "项目名称"),
            edit = @Edit(title = "项目名称")
    )
    @Column(name = "project_name",  columnDefinition = "varchar(20) comment '项目名称'")
    private String projectName;


//这里的 二个关联id  是中间表的id  得让他自己生成

this_id   people_id   中间表我提前设置好的 project_id 和user_id  报错  只能使用它自己生成的这个

    @ManyToMany //多对多
    @JoinTable(name = "project_user_form", //定义多对多中间表
            joinColumns = @JoinColumn(name = "this_id", referencedColumnName = "id"),
            inverseJoinColumns = @JoinColumn(name = "people_id", referencedColumnName = "id"))
    @EruptField(
            views = @View(
                    title = "下属人员"
            ),
            edit = @Edit(
                    title = "下属人员",
                    type = EditType.CHECKBOX
            )
    )
    private Set<EruptUser> users; //Table对象定义如下👇






}

在这里插入图片描述

中间表

package cn.bist.cdapp.backstage.model;


import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import xyz.erupt.annotation.Erupt;
import xyz.erupt.annotation.EruptField;
import xyz.erupt.annotation.sub_field.Edit;
import xyz.erupt.annotation.sub_field.EditType;
import xyz.erupt.annotation.sub_field.View;
import xyz.erupt.annotation.sub_field.sub_edit.ChoiceType;
import xyz.erupt.annotation.sub_field.sub_edit.Search;
import xyz.erupt.upms.handler.SqlChoiceFetchHandler;

import javax.persistence.*;

@Erupt(name = "用户项目(关联)管理表")
@Table(name = "project_user_form")
@Entity
@Data
public class ProjectUserForm {

    /**
     * 项目编号
     */
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "native")
    @Column(name = "id")
    @EruptField
    private Long id;
 



    @EruptField(
            views = @View(title = "项目负责人"),
            edit = @Edit(
                    search = @Search,
                    title = "项目负责人下拉选择", type = EditType.CHOICE,
                    choiceType = @ChoiceType(fetchHandler = SqlChoiceFetchHandler.class,
                            fetchHandlerParams = "SELECT id,name FROM `e_upms_user`"
                    )
            )

    )
     private Long userId;

    @EruptField(
            views = @View(title = "项目绑定"),
            edit = @Edit(
                    search = @Search,
                    title = "项目下拉选择", type = EditType.CHOICE,
                    choiceType = @ChoiceType(fetchHandler = SqlChoiceFetchHandler.class,
                            fetchHandlerParams = "select id,project_name from project_form"
                    )
            )

    )
     private Long projectId;





}

关联表的id 获取关联表 对应表的 name属性

@EruptField(
        views = @View(title = "操作人"),
        edit = @Edit(
                search = @Search,
                title = "操作人", type = EditType.CHOICE,
                choiceType = @ChoiceType(fetchHandler = SqlChoiceFetchHandler.class,
                        fetchHandlerParams = "SELECT id,name FROM `e_upms_user`"
                )
        )
)
    @Column(name = "user_id",  columnDefinition = "varchar(20) comment '操作人'")
    private BigInteger userId;

https://www.yuque.com/erupts/erupt/cmzox9 ;
https://www.erupt.xyz/demo/#/tpl/magic-api.ftl ;guest guest ; ;https://www.erupt.xyz/#!/contrast

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Erupt 框架中,可以通过 `@Button` 注解来实现自定义按钮的功能。下面是一个简单的示例,以实现一个“清空数据”按钮为例: 1. 首先,在你要自定义按钮的实体类中,添加一个`@Button`注解,并且指定按钮的名称和图标: ```java @Entity @Table(name = "t_user") @Erupt(name = "用户管理") public class User { // 省略其他字段 @Button("清空数据") @Icon(value = "fa fa-trash", color = Icon.Color.RED) public void clearData() { // 清空数据的具体实现逻辑 } } ``` 2. 在 `EruptConfig` 中,需要添加一个 `EruptButtonModel` 来对按钮进行配置: ```java @Configuration public class EruptConfig { @Bean public EruptButtonModel clearDataButton() { return EruptButtonModel.builder() .setTitle("清空数据") .setFetchMethod("/erupt-api/user/clearData") .setType(EruptButtonModel.Type.TIPS) .setMessage("你确认要清空所有数据吗?此操作不可恢复!") .setIcon(new FontAwesomeIcon("fa fa-trash", Icon.Color.RED)) .build(); } } ``` 注意,这里的 `fetchMethod` 属性是指定了按钮点击后将会触发的请求的路径。在这个路径中,需要定义一个处理请求的控制器方法。 3. 在控制器中,添加一个处理按钮请求的方法: ```java @RestController @RequestMapping("/erupt-api/user") public class UserController { @Autowired private UserService userService; @PostMapping("/clearData") public void clearData() { userService.clearData(); } } ``` 这里的 `UserService` 是你自己定义的服务类,用于处理具体的业务逻辑。 4. 最后,在你的页面中,使用 `erupt-buttons` 标签来渲染按钮: ```html <erupt-buttons :buttons="buttons"></erupt-buttons> ``` 在对应的 Vue 实例中,需要定义一个 `buttons` 对象,来指定要显示的按钮。在这个对象中,可以引用前面在 `EruptConfig` 中定义的 `EruptButtonModel`: ```javascript data() { return { buttons: [ clearDataButton ] } } ``` 至此,一个简单的自定义按钮就实现了。当用户点击按钮时,将会弹出提示框,询问用户是否确认进行清空数据操作。如果用户确认操作,将会触发后台的 `clearData` 方法进行清空数据的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是汤圆丫

怎么 给1分?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值