在项目开发中,我们经常会面临这样的情况:当前按钮的显示与隐藏需要根据后端某个接口返回的数据来决定,而无法通过权限配置进行处理。为了解决这个问题,我们可以通过自定义的方式来处理这一功能。
首先,我们需要知道当前动作是什么类型的动作,例如「服务端动作、跳转动作、打开弹窗的动作、打开抽屉的动作」。
ServerActionWidget
-> 服务端动作
DialogViewActionWidget
-> 打开弹窗动作
DrawerViewActionWidget
-> 打开抽屉动作
RouterViewActionWidget
-> 路由跳转动作
下面是一个示例代码,演示了如何通过自定义的方式处理按钮的显示与隐藏逻辑。
import { ActionType, ActionWidget, SPI, ServerActionWidget, Widget, http } from '@kunlun/dependencies';
@SPI.ClassFactory(
ActionWidget.Token({ actionType: ActionType.Server, model: 'resource.k2.Model0000000100', name: 'create' })
)
export class MyAction extends ServerActionWidget { // 当前动作是服务端动作,继承的是 ServerActionWidget
@Widget.Reactive()
private needInvisible = false;
@Widget.Reactive()
public get invisible(): boolean {
return this.needInvisible;
}
protected mounted(): void {
super.mounted();
// 模拟接口
http.query(模块名, `graphql`).then(res => {
if(res) {
this.needInvisible = true
}
})
}
}
在实际应用中,我们可以调用后端接口,根据返回的数据动态修改 needInvisible 这个值,从而实现按钮的动态显示与隐藏效果。这样的设计使得按钮的显示状态更加灵活,并且能够根据后端数据动态调整,提高了系统的可定制性。
Oinone社区 作者:汤乾华原创文章,如若转载,请注明出处:https://doc.oinone.top/frontend/4734.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验