『贴代码』
PasteSpider
PasteApeart
精选作品
优选问答
成长笔记
【本期话题】更多
                                    我们在开发中经常遇到对方的接口请求有频率限制,比如当前接口每秒的请求不能大于100,不能大于1000,对于这样的,我们作为请求方,如何做限定?
                    
[PasteApeart]表格中的菜单要按照不同权限,数据显示,咋处理?
世事无常本无罪 2026-07-31 5 0 0
开发中会经常遇到的一个问题,就是操作区域的可见性,和可控性,会基于权限(用户),状态(数据)等实现菜单的显示和隐藏等,一起来看看PasteAepart(PasteForm)是如何解决这个问题的!

--------------------------------------------------------------------------------------------------------------

PasteForm的升级版PasteApeart,享受极致简洁的框架的魅力,点击查看文档

--------------------------------------------------------------------------------------------------------------

先来看一下效果
图片alt
可以看到上方的菜单中,中间这一行只有2个菜单,在实际开发中,我们主要遇到这样的几种情况

普通菜单

        /// <summary>
        /// 
        /// </summary>
        [PasteMenu("绑定权限", "open_window('绑定权限','pasteform/index.html?path=roleInfo&model=bind&grade_id={{:=item.id}}','80%','80%')")]
        public int Menu1 { get; }

普通菜单很简单,直接这样写就可以了,这个的写法和前端有关,注意数据字段到前端的时候,默认首单词小写,你也可以用另外一种写法

        /// <summary>
        /// 
        /// </summary>
        [PasteMenuhtml]
        public string Menu11 => $"<a href=\"javascript:;\" onclick=\"open_window('绑定权限','pasteform/index.html?path=roleInfo&model=bind&grade_id={Id}','80%','80%')\">绑定权限</a>";

上面这两种写法是等效的,不过要注意内容不一样,你要是注意看的话会发现,比如他们的特性不一样,一个是[PasteMenu]一个是[PasteMenuhtml]

基于权限

有时候,我们要基于权限来显示,也就是不同人登录,看到不一样的数据


        /// <summary>
        /// 权限模式
        /// </summary>
        [PasteHidden]
        [PasteMenu("绑定权限", "open_window('绑定权限','pasteform/index.html?path=roleInfo&model=bind&grade_id={{:=item.id}}','80%','80%')", btnCode: "bind")]
        public int Menu3 { get; }

        /// <summary>
        /// 条件权限模式
        /// </summary>
        [PasteHidden]
        [PasteIfMenu("item.id == 2", "绑定权限", "open_window('绑定权限','pasteform/index.html?path=roleInfo&model=bind&grade_id={{:=item.id}}','80%','80%')", btnCode: "bind")]
        public int Menu32 { get; }

自信观察,会发觉就是加了一个参数btnCode,这个字段要启用,在读取模板的时候,需要读取当前用户的按钮权限列表!

千呼万唤始出来,按钮控制终于来了!!!PasteApeart实现权限按钮就是这么简单

注意,使用了btnCode一定要配置特性[PasteHidden]

基于数据

基于数据,就是和数据有关,啥时候显示,啥时候不显示


        /// <summary>
        /// 条件模式
        /// </summary>
        [PasteIfMenu("item.id == 2", "绑定权限", "open_window('绑定权限','pasteform/index.html?path=roleInfo&model=bind&grade_id={{:=item.id}}','80%','80%')")]
        public int Menu31 { get; }

        /// <summary>
        /// 条件权限模式
        /// </summary>
        [PasteHidden]
        [PasteIfMenu("item.id == 2", "绑定权限", "open_window('绑定权限','pasteform/index.html?path=roleInfo&model=bind&grade_id={{:=item.id}}','80%','80%')", btnCode: "bind")]
        public int Menu32 { get; }

        /// <summary>
        /// 直接渲染UI 
        /// </summary>
        [PasteMenuhtml]
        public string Menu2 => IsEnable ? $"<a href=\"javascript:;\" onclick=\"open_window('{Name}的详细','./pasteform/detail.html?path=gradeInfo&id={Id}','','90%')\">{IsEnable}</a>" : $"";

可以看到上面的,一个是基于id是否=2来判断,你也可以基于其他字段判断,不过有一点要注意!
当字段的类型是枚举类型的时候,不能直接这样判断,你要get一个int值得字段出来

图片alt

上面说的是后端得代码
前端部分,还有一个关键点,就是菜单区域得宽度,这个有一个默认值,你也可以配置

_config.menu_max_width
这个默认值是500宽度,也就是最大菜单宽度多少,超过就换行了!
你也可以通过query来配置
比如

./pasteform/index.html?path=userInfo&menu_max_width=600

熟记这几个,那么菜单问题你就能搞定了!!

评论列表
世事无常本无罪
0 5 0
快捷注册
用户问答更多
PasteForm,神奇了啊!都说低代码,低代码,那个是对于非开发者来说的,感觉PasteForm就是开发者的低代码啊!只要配置好Model,就有对应的CRUD操作,还带一些逻辑,和生成代码是两码事了!!!问题来了,有什么局限性,或者适用哪些场景?
07月份版本的内存占用比以前大了,也没有泄漏,啥情况?以前200MB,这个版本能到300MB
  • 应该和之前的PasteForm引入有关,之前的版本引入了大量的API,看看10月份或者11月份的版本,新版本的PasteForm极大的优化了API接口量,可以说直接从4N优化到了N个(N代表数据表数量)

文档中的组织归属有些问题,啥时候看看,更新更新!
  • 已经升级了,主要是left join的查询的时候没有过滤,其实这个问题,多租户也是一样的!

最新动态
  • 110.****.77 正在查看 Document:spider !
  • 52.****.175 正在查看 使用Obfuscar混淆(加密)你的程序源码并一键发布! !
  • 66.****.45 正在查看 Serilog在appsettings.json中的配置 !
  • 40.****.51 正在查看 文章列表页 !
  • 54.****.79 正在查看 Serilog的全局处理,发生异常后,如何统一处理?只要引入一个ILogEventSink即可,一起瞧瞧去 !
  • 100.****.9 正在查看 Serilog的全局处理,发生异常后,如何统一处理?只要引入一个ILogEventSink即可,一起瞧瞧去 !
  • 59.****.35 正在查看 主页pastespider !
  • 59.****.35 正在查看 主页pastespider !
  • 59.****.35 正在查看 主页pastespider !
  • 59.****.35 正在查看 主页pastespider !
  • 59.****.35 正在查看 主页pastespider !
欢迎加入QQ讨论群 296245685 [PasteSpider]介绍 [PasteForm]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2