贴代码框架PasteForm特性介绍之button,bitch,menu,ifmenu

news/2024/11/25 21:25:22/

简介

PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管理端只有Html+js版本的,后续将支持小程序,Vue等

案例源码

案例源码在

https://gitee.com/pastecode/paste-template

不定期升级

AllInDto!

通过引入PasteForm,一个项目哪怕100个数据表,一般的管理页面也才不到10个,除非有非常多的特殊功能,否则都能用PasteForm中的表格和表单来实现!

在这里插入图片描述

本次的特性介绍,涉及的东西会多一些,你可以下载源码后,看看详细的,我们先来查看下各个特性的信息

button

用于表单中,的按钮,用意是让用户点击后触发函数,global_form_button_click(this,className,name);
注意按钮的value为当前字段的value,比如当前页面的path=nginxRoute
如果这个特性标注在model上,比如adddto,则表示form表单的按钮的文字

        /// <summary>/// Http模板 表示使用Http模式的模板的内容/// </summary>[ColumnDataType("button")]public string Temp1 { get; set; } = "点击导入";

则上面会生成的页面内容为

Http模板:点击导入

点击导入点击后,会调用global_form_button_click(this,‘nginxRoute’,‘temp1’);
注意由于返回的首单次会小写,所以是temp1而不是Temp1

字段类型示例说明
args1字符点击新增表示按钮显示的文字
args2字符global_func_btn(this)表示要执行的函数,如果为空,则使用上面的模式

menu

用于列表后面的菜单 比如<a href=“javascript:;” οnclick=“args2”><i class=“Hui-iconfont args3”>\args1

字段类型示例说明
args1字符编辑按钮的名称
args2字符open_view(<%:=item.id%>);onclick事件的代码
args3字符Hui-iconfont-menu样式名称
args4字符box默认不写,如果写box表示要放入到menubox中

ifmenu

基于条件模式的菜单,使用于Listdto中
示例: [ColumnDataType(“ifmenu”, “item.age==8”, “<a href=“javascript:;” οnclick=“open_window(222,./index.html?path=userInfo&goid={{:=item.id}})”>条件2”, “box”)]
数据对象就是item表示当前这行数据

字段类型示例说明
args1字符item.isReady == trueif的表达式中()内的内容
args2字符<a hreaf=“javascript:;” οnclick=“open({{:=item.id}})”>这里填写条件后的菜单代码,注意引用需要使用{{}}
args3字符box默认不写,如果写box表示要方入到menubox中

bitch

用户表格数据中的批量操作,示例
适用于Class的特性

字段类型示例说明
args1字符编辑按钮的名称
args2字符open_view(<%:=item.id%>);onclick事件的代码
args3字符Hui-iconfont-menu暂未实现,预留给图标用
args4字符预留字段

UI

在这里插入图片描述
如上图,在案例项目的testTable中有完整的关于button,bitch,menu,ifmenu的使用示例,基于不同的配置实现按钮的显示

Dto

我们来看下对应的Dto是如何写的,由于这个是表格页面,那么对应的Dto应该是List

    ///<summary>///测试表 用于测试CURD的表///</summary>[PasteBitch("批量启用", "global_bitch_state(this,1)")][PasteBitch("批量禁用", "global_bitch_state(this,0)")]public class TestTableListDto : EntityDto<int>{///<summary>///其他干扰字段,这里隐藏不显示///</summary>/// <summary>/// 普通菜单/// </summary>[ColumnDataType("menu", "菜单一", "open_window('查阅用户带参','./index.html?path=userInfo&xxid={{:=item.id}}');", "Hui-iconfont-menu")]public string Menu2 { get; set; }/// <summary>/// 普通条件菜单/// </summary>[ColumnDataType("ifmenu", "item.age==7", "<a href=\"javascript:;\" οnclick=\"open_window(`111`,`./index.html?path=userInfo&goid={{:=item.id}}`)\">条件1</a>", "")]public string Menu3 { get; set; }/// <summary>/// 菜单盒子菜单/// </summary>[ColumnDataType("menu", "菜单二", "open_window('查阅用户带参','./index.html?path=userInfo&xxid={{:=item.id}}');", "Hui-iconfont-menu", "box")]public string Menu5 { get; set; }/// <summary>/// 菜单盒子中的条件菜单/// </summary>[ColumnDataType("ifmenu", "item.age==8", "<a href=\"javascript:;\" οnclick=\"open_window(`222`,`./index.html?path=userInfo&goid={{:=item.id}}`)\">条件2</a>", "box")]public string Menu4 { get; set; }/// <summary>/// 详细/// </summary>[ColumnDataType("menu", "详细", "open_window('查看{{:=item.id}}详细','./detail.html?path=testTable&id={{:=item.id}}');", "Hui-iconfont-menu")]public string Menu6 { get; set; }}

由上可知,当为字段配置menu或者ifmenu的时候,对应的字段在表格中将不再以普通字段的模式显示,转化成最后的菜单了,如果要在中途的字段显示按钮如何操作???

button.UI

在这里插入图片描述
button一般用于表单中,一般为了引入其他的操作而定,上图对应的Dto为

    ///<summary>///案例Dto///</summary>public class XXXAddDto{/// <summary>/// 排序 小的排在前面/// </summary>public int Sort { get; set; }/// <summary>/// 访问正则 命中这个的则返回/// </summary>[MaxLength(128)]public string Hit_url { get; set; } = "(.*)";/// <summary>/// 来源正则 命中这个的则返回/// </summary>[MaxLength(128)]public string Hit_referrer { get; set; } = "(.*)";/// <summary>/// IP正则 命中这个的则返回/// </summary>[MaxLength(128)]public string Hit_ip { get; set; } = "(.*)";/// <summary>/// 地区正则 命中这个的则返回/// </summary>[MaxLength(128)]public string Hit_area { get; set; } = "(.*)";/// <summary>/// 标题正则 命中这个正则的则返回/// </summary>[MaxLength(128)]public string Hit_title { get; set; } = "(.*)";/// <summary>/// 操作/// </summary>[ColumnDataType("button", "正则校验", "open_window('正则测试','./view.html?path=regexMatch')")]public string RegexMatch { get; set; } = "正则校验";}

后话

后面在开发小程序端的时候发现类似vue的写法没法绑定事件,所以后面估计会对函数进行扩展,思路就是调用公共函数,比如表名,字段,传递参数等传递给一个公共函数,这样各个项目可以在公共函数中去自定义实现!

更多特性见

贴代码PasteForm专题介绍

我们下期见!


http://www.ppmy.cn/news/1549921.html

相关文章

功能齐全,支持协作 | Docker部署一款支持多人共享的私密浏览器『n.eko』

功能齐全&#xff0c;支持协作 | Docker部署一款支持多人共享的私密浏览器『n.eko』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 玩NAS的朋友基本都会在本地部署一款浏览器用来远程访问内网的网络设备&#xff0c;或者偶尔拿来浏览一些私密网站都是很方便的。 今天为大家分享的…

python成绩分级 2024年6月python二级真题 青少年编程电子学会编程等级考试python二级真题解析

目录 python成绩分级 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python成绩分级 2024年6月 python编程等级考试二级编程题 一、题目要求 …

litepal proguardFiles android studio

Step1&#xff1a;settings.gradle.kts or settings.gradle 添加阿里源 dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {maven(url "https://jitpack.io")maven (url "https://maven.aliyu…

wordpress二开-WordPress新增页面模板-说说微语

微语说说相当于一个简单的记事本&#xff0c;使用还是比较方便的。这个版本的说说微语CSS样式不兼容&#xff0c;可能有些主题无法适配&#xff0c;但是后台添加内容&#xff0c;前端显示的逻辑已经实现。可以当作Word press二开中自定义页面模板学习~ 一、后台添加说说微语模…

Java基础-内部类与异常处理

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 一、Java 内部类 什么是内部类&#xff1f; 使用内部类的优点 访问局部变量的限制 内部类和继承 内部…

沸蛇鼠标,多功能智慧AI,重新定义生产力

随着人工智能的快速发展,AI的应用落地已成为当下除大模型外竞争最为激烈的红海之一。手机、汽车、家居等产品都在AI加持下,衍生出了更多使用场景。AI鼠标便是其中一项热门产品。 云决科技作为在互联网数据领域的领军者,始终将用户需求作为首位,为用户提供全方位、高价值的AIGC…

java多线程 1

看看多线程的实现方式和区别&#xff0c;面试常见的&#xff0c;

ajax (一)

什么是 AJAX [ˈeɪdʒks] &#xff1f; 概念&#xff1a;AJAX是浏览器与服务器进行 数据通信 的技术&#xff0c;动态数据交互 怎么用AJAX? 1. 先使用 axios [k‘sio ʊ s] 库&#xff0c; 与服务器进行 数据通信 ⚫ 基于 XMLHttpRequest 封装、代码简单、月下载量在 1…