『PasteSpider』
最新文章
贴代码出品
热门话题
用户问答
lao人言
「搜索」
【本期话题】更多
三人寄语更多
对于答案来说,更重要的是找到答案的这个过程而不是答案本身!
点赞:0
能通过内网IP访问的,尽量不要使用域名访问!
点赞:0
实际遇到的问题往往在那些视频课程中是不会出现的!
点赞:0
逻辑注解清晰的代码优于那些一眼看不明白的语法糖
点赞:0
抛开需求讲架构,和纸上谈兵无差!
点赞:1
时好时坏的结果,往往是多线程引起的逻辑混乱导致的!
点赞:0
抛开需求谈架构是无意义的事情!
点赞:0
谋而后动,往往会让你对自己的代码更具信心!
点赞:1
测试没问题的不一定没问题,测试有问题的那肯定有问题!
点赞:2
没有最好的语言,只有更合适的语言!
点赞:0
PasteForm字段的属性一览(持续升级)
清风挽心 2024-10-28 379 38 0
PasteForm的试图由Dto来控制,而每一个字段各有什么属性,又是由官方的属性和自定义属性ColumnDataTypeAttribute决定,各个属性是如何定义的,然后是使用案例将在本文逐步更新,如果你有新的需求,也可以添加页尾的QQ群进行提交!

ColumnDataType的配置说明

图片alt

image

相对于后面的 head 来说,这里是大图模式,在ListDto中表示使用图片的模式渲染

字段 类型 示例 说明
args1 数字 1 图片数量
args2 字符 cate 存放在什么位置,上传图片的时候会附带到参数type中
args3 字符 60*60 图片是否需要压缩,压缩的宽高,不压缩的设置为0,比如60*0
args4 字符 small small,normal,big表示图片的大小三个规格,默认normal,如果要返回格式,则由dataFrom决定

head 弃用,使用image

使用方式同 image 这里表示的是小图标模式

字段 类型 示例 说明
args1 数字 1 图片数量
args2 字符 cate 存放在什么位置,上传图片的时候会附带到参数type中
args3 字符 60*60 图片是否需要压缩,压缩的宽高,不压缩的设置为0,比如60*0
args4 字符 arr或str 默认值str对应字段的类型,是array类型还是string类型,如果是string类型多个之间用,隔开

file

其实可以使用image的接口,他们2个的返回格式都是一样的,wangEditor的返回格式,主要是UI上不一样,毕竟文件没法预览
存放文件夹?路径?

字段 类型 示例 说明
args1 字符 /api/app/Upload/UpImage 表示上传的路径,默认是/api/app/Upload/UpFile,你也可以自己修改他,args1或者args3必填其中一个
args2 字符 file datadir
args3 字符 global_upload_file(this); onchange函数
args4 字符 待定 为后续扩展做准备

region

小程序中的地区选择,可以配置精确度,到区还是到县

字段 类型 示例 说明
args1 字符 region 表示地址选择的层级,可选region和sub-district
args2 字符 str 可用值str或者arr 表示返回的数据类型,str的时候用,隔开

outer

表示一个值需要从外表获取,编辑的时候如何显示? 比如fatherId,extendRole

字段 类型 示例 说明
args1 字符 cateInfo 外表的名称,对应模板的path,或者路径,路径一定附带了/字符示例./abc.html
args2 字符 extendCates 表示显示的数据,需要和下面2个配合,是一个当前的扩展,目标数组要配置hidden
args3 字符 id 获取返回对象的属性,一般为id
args4 字符 name id的友好名称显示,这里指的是外表,比如cateId,需要打开catelist页面,选择后,返回cate,则name作为友好显示,id作为实际值

outers

outer的复数版本,表示可以从外部列表中选择多个,比如在创建账号的时候给他绑定多个角色,就用这个!

字段 类型 示例 说明
args1 字符 cateInfo 外表的名称,对应模板的path,或者路径,路径一定附带了/字符示例./abc.html
args2 字符 extendCates 表示显示的数据,需要和下面2个配合,是一个数组,目标数组要配置hidden
args3 字符 id 获取返回对象的属性,一般为id
args4 字符 name id的友好名称显示,这里指的是外表,比如cateId,需要打开catelist页面,选择后,返回cate,则name作为友好显示,id作为实际值

outerdisplay

ListDto中用于外表的显示,比如有字段cateInfoId,对应的ExtendCateInfo要标记为outerdisplay,args2配置为extendCateInfo?.name || ‘’,否则会显示为[object object]

字段 类型 示例 说明
args1 字符 cateInfoId 表示这个字段的值,一般不显示
args2 字符 extendCateInfo?.name 表示显示的名称,友好名称,需要后端支持,在前端会处理成.display

datetime

默认的yyyy-MM-dd HH:mm:ss的格式

字段 类型 示例 说明
args1 字符 yyyy-MM-dd HH:mm:ss 表示时间使用的格式

hidden

表示隐藏这个字段,一般是主键ID,或者外表链接过来的会这配置,比如需要给cate添加子项,则添加由cate那边过来
这个也适用于ListDto

字段 类型 示例 说明
args1 字符 bind 如果不填表示隐藏,如果填写了表示页面的query中model=xxx的时候不隐藏,表示非xxx的时候隐藏,xxx的时候不隐藏

password

密码框模式

query

如果从query中获取到了数据,则对应的字段隐藏,注意不要配置hidden,因为查询的时候是从表单读取数据的,hidden的话是不写入到form中的,那样查询就没法获取query来的值了

字段 类型 示例 说明
args1 字符 cateid 表示使用url中的哪个参数读取值

readyonly

表示这个字段是只读的,一般是编辑的时候生效

richtext

如果是字符串,没有设置maxlength,默认就会变更成richtext,也可以手动强制配置

textarea

如果是字符串,设置maxlength,且设置的值大于128,默认就会变更成textarea,也可以手动强制配置

text

对于一些长度过长的,会被判定为textarea,或者richtext的可以使用这个强制换行成text

fentoyuan

这个是指后台单位为分,又需要前端进行元输入的,注意小数位数为2位小数,也就是分的格式为int

select

表示单选,比如权限类型,一般是指固定类型的,一般不修改的那种情况,也可以表示状态等,value的值要基于这个对象的类型来确定,比如string和int

字段 类型 示例 说明
args1 字符 [{“name”:”大”,”value”:”1”},{“name”:”小”,”value”:”2”}] 表示单选的可选值,name是显示 value是值
args2 字符 表示值得类型,这里是单个,跟随主类型走

selects

表示多选,这个表示的是页面上的多选,需要列表显示,然后是可以多选!关键在于最后读取数据的时候,需要判断是什么格式的!

字段 类型 示例 说明
args1 字符 [{“name”:”大”,”value”:”1”},{“name”:”小”,”value”:”2”}] 表示单选的可选值,name是显示 value是值
args2 字符 , 如果值类型不是数组,则返回字符串,用这个字符拼接,也就是分割字符

sort

表示排序,表示字段的顺序,一般表格比较会使用这个

字段 类型 示例 说明
args1 数字 0 小的排在前面,默认为0

这个用于表格显示,一般表示用于显示外表的数据,这个将弃用,使用outerdisplay替换

字段 类型 示例 说明
args1 字符 extendCate.name 显示的外表链接,示例extendCate?.name表示显示cate.name或者空这个一般用于ListDto中

width

表示这个字段在表格得宽度,可以为*或者对应得数字,是表格得列的宽度的权重,这个适用于ListDto

字段 类型 示例 说明
args1 字符 60 表示这个列的宽度,可以为数字也可以是*比如3*这样

orderby

表示基于哪个字段进行排序,这个一般是ListDto表示表格中,可以基于哪个字段进行排序查询

字段 类型 示例 说明
args1 字符 id 表示使用id正序排序
args2 字符 id desc 表示使用倒叙排序

datalist

前端表示使用datalist作为选择数据源,前端需要把datalist的id赋值给datalistid,默认为字段name,这个规则适用于表单和QueryDto

字段 类型 示例 说明
args1 字符 [{“name”:”正常”,”value”:”1”,”selected”:true}] JSON的字符串,也可以为空
args2 字符 data_pro 表示调用哪个datalist数据,表示datalist的id,和args1互斥
args3 字符 read_pro_datalist() 表示需要使用eval执行哪个函数,一般和args2配合使用,和args1互斥

daterange

主字段需要设置为daterange,其他字段需要设置hidden,在最后组合数据的时候,会基于参数生成对应的,应该要设置为可null格式

字段 类型 示例 说明
args1 字符 sdate 表示开始时间,最后会传送yyyy-MM-dd 00:00:00的格式数据
args2 字符 edate 表示结束时间,如果你选择2024-08-31,最后上送的会是2024-08-31 00:00:00
args3 字符 yyyy-MM-dd 00:00:00 表示时间的格式化,默认使用yyyy-MM-dd 00:00:00

disable

特殊限定,限定于class的,表示禁用这个模型的哪些功能,这个一般用于ListDto,因为这些功能都在列表页面

字段 类型 示例 说明
args1 字符 add 表示忽略新增,也就是不显示新增按钮
args2 字符 edit 表示忽略编辑,表示列表中没有编辑的这个选项,有些数据只能看,不需要新增和编辑
args3 字符 del 表示这个表没有删除,页面UI中不需要删除按钮

menu

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

字段 类型 示例 说明
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:;\" onclick=\"open_window(`222`,`./index.html?path=userInfo&goid={{:=item.id}}`)\">条件2</a>“, “box”)]
数据对象就是item表示当前这行数据

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

bitch

用户表格数据中的批量操作,示例<input type="button" class="btn btntool" value="args1" onclick="args2">

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

htmltemplate

已抛弃,使用下方的html替代,如果要显示自定义的表格,则使用这个,表示直接显示信息模板注意里面的带参使用{{:=item.name}}这样的形式

字段 类型 示例 说明
args1 字符 <div><span>{{:=item.name}}</span><span>{{:=item.desc}}</span></div> 需要在td中显示的html代码,支持模板的写法

html

如果要显示自定义的表格,则使用这个,表示直接显示信息模板注意里面的带参使用{{:=item.name}}这样的形式

字段 类型 示例 说明
args1 字符 <div><span>{{:=item.name}}</span><span>{{:=item.desc}}</span></div> 需要在td中显示的html代码,支持模板的写法

linkquery

表示把某些参数穿透给子页面,比如服务->文件,则可以在服务A页的时候查看文件列表B页,在文件列表中可以直接新增文件C页,这个时候我们希望对应的服务ID直接由参数传入
也就是在打开C的时候,希望把B的参数传递给C,注意这个linkquery是放在ListDto中的Class上的,也就是和disable一样

字段 类型 示例 说明
args1 字符 需要传递的参数 多个之间用,隔开,比如serviceid,ftype

object

适用于表单页面,表示从另外一个表单新增数据,比如用户的收货地址,在表单的时候,打开一个新的表单,进行信息填写后,返回一个obj,这个时候是没有写入数据库的,所以在返回的时候需要显示
和outer有点像,不过回传的是一个object类型!如果是编辑的时候?需不需要上传到API表示编辑了?打开表单的时候会传递model=object这个参数过去,表示叫子表单不要做API入库操作
注意这个子模型也是需要建立对应的API的,不过不需要建立新增和编辑的接口,因为被上一级涵盖了!

字段 类型 示例 说明
args1 字符 roleInfo 一般使用path也可以使用页面的路径
args2 字符 id 新增的时候无用,主要是编辑的时候,基于这个id和path去数据库查询新的数据
args3 字符 name 表示显示的是这个object的哪个字段,一般在编辑的时候可见

objects

object的复数版本,表示一个集合,比如一个会员有多个爱好,新增的时候,打开子表单,填写多个爱好的object信息体返回,在显示的时候,如果一个字段不足以显示???是否支持多个字段联动显示?

字段 类型 示例 说明
args1 字符 roleInfo 一般使用path也可以使用页面的路径
args2 字符 id 新增的时候无效,编辑的时候表示从数据库查询信息,也作为删除的key使用
args3 字符 name 表示显示的是这个object的哪个字段,一般在编辑的时候可见

mark

字段详细说明,或者是文档,这里是做一个描点,需要使用公共函数自己实现具体的要求,一般的是项目下面的模块的某一个字段的说明,一个项目往往这个是一样的,然后就是哪个模块的哪个字段,所以有2个字段
会在title后面生成一个span class=”tapmark” onclick=”global_tap_mark(_modek,_code)”;

字段 类型 示例 说明
args1 字符 product 一般作为模块使用,比如商品的这个模块
args2 字符 code 模块下的一个字段的说明,比如code这个字段的用法,案例说明等

template

作为有些表的特殊布局,就是自定义布局表格部分的内容,包括表头和表身2个部分,注意需要实现选择的功能,除非这个表用不到选择这个功能
文件存放于pasteform/template.html,就只有一个template.html页面,里面的都是模板代码

字段 类型 示例 说明
args1 字符 template_user_head 表格的表头部分的script的id
args2 字符 template_user_body 表格的表身部分的模板的script的id

style

针对一些特殊的设定,比如textarea,有些地方我们要设置高一些

字段 类型 示例 说明
args1 字符 height:500px; 就是style里面的内容

switch

用于表格中显示switch,否则显示true/false

字段 类型 示例 说明
args1 字符 view 当model==args1的时候才生效,如果全部要生效则标记为空

class

针对一些自定义的class,可以通过这个来配置

字段 类型 示例 说明
args1 字符 btngo 表示这个对象要添加的class

button

用于表单中,的按钮,用意是让用户点击后触发函数,global_form_button_click(this,className,name);
注意按钮的value为当前字段的value,比如当前页面的path=nginxRoute

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

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

Http模板:点击导入

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

unit

用于显示单位,比如MB,KG,个等,一般在Int Long Double等Number地方后显示,也可以作为表格中显示?

字段 类型 示例 说明
args1 字符 MB 表示这个对象的单位

splitarray

用于文本的拆分,比如int[] long[] string[]等的显示和编辑

字段 类型 示例 说明
args1 字符 , 表示使用什么来分割,分割后的类型看数据本身
args2 预留
args3 预留
args4 预留

待处理

1.列表中可编辑的对象 比如switch?
handler_switch_change(elc){
// className columnName id state
}

2.外表选择的时候,是否支持多选模式?
多选模式的时候,如何加载已经选中的,已经选中的如何删除?难不成要搞一个选定区域?

3.Int32[] Int64[] String[]
这种数据的显示和最后更新

4.表单数据的提交前的数据格式的校验!

5.daterange如何设定
单个变成多个!

6.有些数据不需要新增,和编辑 ,虽然可以使用API控制,但是在前端有这么个按钮存在,也是很突兀的,所以得处理

7.管理员拥有多个角色,这个多个角色的显示和编辑问题!
selects 可以设定返回多个
list设定显示的方式 关键在于如何每次编辑的时候不是覆盖!还是写一个单个删除的接口?

8.enum类型的显示问题?其实就是enmu变种到attribute的select!!!

9.从角色绑定权限来说,角色列表,点击权限(给这个角色绑定权限),打开的权限列表是所有的,需要绑定的勾选,不要的取消勾选
model=bind 则有一些字段这个模式下才显示
hidden.args1表示某一个模式,如果为空表示都隐藏

待确认问题

1.必填,如果是int的类型的,是不是只能非0,还是不生效?

2.对于menu的支持,参数因该是{{}}控制的,而不是<%%>

3.enum类型的返回,是返回值,还是对应的名称?是否支持enum转select?

4.有时候表单只是为了新增一个数据,不入库那种!outform model=outform 返回组合的 …待定

5.比如查看某一个列表—子项列表—子项添加
linkquery cateid,abcid

6.单位转化,比如后台是分,前端需要输入元 那么就是在输入的时候是元,显示是元 提交的时候是分!!!
fentoyuan 分转元 默认2位小数点

7.关于是否需要显示详情页面的问题,因为有时候表格数据是显示不全的,比如richtext,这个时候可能需要一个detail.html页面
如果要呈现,则需要对应的模型Dto的属性,生成器默认是去除的,则需要自己在Domain中添加/template/dto.html作为生成模型替换生成器默认的模型!
页面的呈现上和表单类型,把输入框等渲染成直接显示的即可!
然后再由ListDto中,添加菜单detail的支持!

8.在列表页面中,如果一个对象被标记为query,如果从参数中获取到了值,则这个查询项进行隐藏操作

9.如果列表页面的当前状态为model,则上方的搜索区域默认隐藏

10.关于引入字段说明的事情,比如一个表单100个字段,各个字段表示什么意思,一般的做法是点击对应的?然后弹出或者是跳转到某一个站点,显示这个介绍
mark由此而来

11.是否加入自模型,就是表格数据展示的样式,是否引入自定义的模板???
默认是使用内置的二次模板,如果是引用外部的化,则需要整个,也就是表头和表身都需要!
需要外部写一个html的template页面,然后使用Jquery的load加载进去!
在ListDto中,使用template进行标注,标注args1为表头样式的模板 args2为表身部分的内容

12.添加对自定义样式的支持 style class

13.添加对menubox的支持,针对很多按钮的情况

14.表单中需要特意操作的,添加函数支持 把表单的数据传递过去 由自定义函数决定执行结果!global_form_action(elc,className,name,location.search);
项目路由中的 载入模板 模板测试等!

15.搞一个占位的?有时候的排版等,需要空开一个位置

16.可以搞一个属性继承于基础属性,这样在输入的时候会好些,比如PasteMarkAttribute:ColumnDataTypeAttribute;

17.窗口的弹出大小问题,有些情况需要大的 有些情况小的 有些情况要动态的!

18.查询的select和表格的select冲突的问题!!!

19.表格的不同模式下,不同字段的显示问题!

新的需求

1.添加对全选模式的支持
a.全部选择,反选,手动选择!
b.多种按钮,至于上方!还是冒出来一行新的?
c.批量操作的按钮在attributes中,率属于ListDto的Class中

批量操作的具体实现需要在公共函数中自定义实现!!!

2.是否添加前缀,比如$ ¥等!

3.path支持路径写法,比如原来的写法roleInfo
现在可以支持/api/task/roleInfo
表示不使用默认的路径/api/app/roleInfo

4.引入公共函数库,之前已经有style.less->style.css作为公共样式库
那么Js是否也需要,如果需要,那应该在pasteform文件夹之外,防止版本覆盖的问题,这个问题style.less应该也要遵守

5.index页面中,当model==bind的时候不再显示最后一列的操作,因为一般是空格的!!!

6.修改表格的外围border,解决滚动的时候表格上面和下面没有边框的问题

7.修复index页面中的select默认选中不生效的问题

24.10.22

1.修复Enum在Domainn内的时候找不到的情况
2.修复204返回的问题

24.10.25

1.添加对object的支持,也就是字段object的类型的支持
2.修复img[] 也就是多图的时候的问题

24.10.28

1.?是否添加splitarray,表示字符串转数组,至于转int[],long[],string[] 看类型!
2.object的编辑的时候的支持,由数据转sessionStrorge url+rand_db_key 页面打开后读取,渲染!!!
3.添加对object的默认值的支持,包括UI的显示,和向外打开的数据呈现(object可以看成是另外一个对象,包含多个属性)
评论列表
清风挽心
38 379 0
快捷注册
热门推荐更多
PasteSpiderFile文件同步客户端
PasteSpider的项目文件客户端,开发中能够快速发布!;
最新动态
  • 120.****.201 正在查看 PasteSpider之--路由列表-私有仓库-环境配置-的介绍 !
  • 61.****.144 正在查看 PasteSpider更新摘要,持续更新 !
  • 201.****.216 正在查看 PasteForm中,表格的不一样的样式的设定? !
  • 170.****.57 正在查看 Redis的安装 !
  • 99.****.129 正在查看 贴代码框架PasteForm特性介绍之mark(标签,书签,字段说明)的支持 !
  • 189.****.205 正在查看 开发者专用Linux容器部署工具PasteSpider(K8S,Jenkins,CICD)介绍 !
  • 167.****.45 正在查看 贴代码框架PasteForm之特性select,lselect,selects的介绍 !
  • 45.****.97 正在查看 PasteSpider之占位符,宏,对象属性遍历的说明 !
  • 121.****.136 正在查看 贴代码框架PasteForm特性介绍之mark(标签,书签,字段说明)的支持 !
  • 113.****.142 正在查看 Serilog在appsettings.json中的配置 !
  • 135.****.15 正在查看 使用PasteSpider实现CI/CD持续部署,类似Jenkins的功能,让你的2G服务器也可以飞起 !
欢迎加入QQ讨论群 296245685 更新记录 [PasteSpider]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2