部分代码片段
{"id": "filterForm","className": " xysd-zbkb-pubquery","labelWidth": 130,"body": [{"type": "grid","className": "xysd-grid-query-input","columns": [{"md": 8,"body": [{"type": "input-group","className": "xysd-pubquery-searchKeyWords","body": [{"label": "","name": "keyWords","type": "input-text","placeholder": "请输入信息标题、内容相关的关键字检索。多关键词,、;隔开"},{"label": "查询","type": "button","icon": "fa fa-search","level": "primary","align": "right","size": "lg","onEvent": {"click": {"actions": [{"actionType": "submit","componentId": "filterForm"}]}}}]}]},{"md": 4,"body": [{"type": "tpl","tpl": "<div class='xysd-pubquery-moreQuery-btn' οnclick='handleCollapse(`xysd-pubquery-moreQuery`,`xysd-pubquery-moreQuery-ss`)'>更多查询</div>"}]}]},{"type": "wrapper","className": "xysd-pubquery-moreQuery xysd-pubquery-moreQuery-ss","body": [{"type": "group","mode": "horizontal","body": [{"type": "input-date-range","name": "reportTime","label": "首报时间","columnRatio": 3,"format": "YYYY-MM-DD"},{"initiallyOpen": false,"label": "首报单位","columnRatio": 3,"multiple": true,"name": "firstReportOrgIds","onlyLeaf": true,"searchable": true,"selectMode": "tree","showOutline": true,"hideNodePathLabel": true,"source": {"method": "get","url": "/zbxxgl/api/sysdatas/getptv/tree/open?ptvType=zbxtbsdw"},"type": "tree-select","hideNodePathLabel": true,"initiallyOpen": false,"unfoldedLevel": 1,"onlyChildren": true},{"label": "报送形式","columnRatio": 3,"type": "select","clearable": true,"name": "reportType","options": [{"label": "快报","value": "kb"},{"label": "短信","value": "dx"}]},{"format": "YYYY-MM-DD","label": "事发/接警时间","columnRatio": 3,"name": "incidentTime","type": "input-date-range","value": "${YEAR(NOW())}-1-1,${YEAR(NOW())}-12-31"}]},{"type": "group","mode": "horizontal","body": [{"label": "事件类型","columnRatio": 3,"multiple": true,"checkAll": true,"name": "eventTypeIds","source": {"method": "get","url": "/zbxxgl/api/sysdatas/get?dataKeys=dicZbxtKbSjlxList"},"type": "select"},{"columnRatio": 2,"initiallyOpen": false,"label": "事发地点","className": "xysd-grid-scroll-select","multiple": true,"name": "siteTypeIds","searchable": true,"selectMode": "tree","showOutline": true,"source": {"method": "get","url": "/zbxxgl/api/sysdatas/getdict/tree/bytype?dictType=zbxtshudi&hidden=0"},"type": "tree-select","unfoldedLevel": 2},{"label": "","columnRatio": 1,"name": "detailedSite","type": "input-text","className": "hiddenLabel"},{"label": "受伤人数","columnRatio": 2,"type": "select","clearable": true,"name": "injuredNumWay","options": [{"label": ">","value": ">"},{"label": "<","value": "<"},{"label": "=","value": "="},{"label": ">=","value": ">="},{"label": "<=","value": "<="}]},{"label": "","columnRatio": 1,"name": "injuredNum","type": "input-number","className": "hiddenLabel"},{"label": "亡人数","columnRatio": 2,"type": "select","clearable": true,"name": "deathNumWay","options": [{"label": ">","value": ">"},{"label": "<","value": "<"},{"label": "=","value": "="},{"label": ">=","value": ">="},{"label": "<=","value": "<="}]},{"label": "","columnRatio": 1,"name": "deathNum","type": "input-number","className": "hiddenLabel"}]},{"type": "group","mode": "horizontal","body": [{"label": "提出就医需求数","columnRatio": 2,"type": "select","clearable": true,"name": "medicineNumWay","options": [{"label": ">","value": ">"},{"label": "<","value": "<"},{"label": "=","value": "="},{"label": ">=","value": ">="},{"label": "<=","value": "<="}]},{"label": "","columnRatio": 1,"name": "medicineNum","type": "input-number","className": "hiddenLabel"},{"label": "涉事人数","columnRatio": 2,"type": "select","clearable": true,"name": "involveNumWay","options": [{"label": ">","value": ">"},{"label": "<","value": "<"},{"label": "=","value": "="},{"label": ">=","value": ">="},{"label": "<=","value": "<="}]},{"label": "","columnRatio": 1,"name": "involveNum","type": "input-number","className": "hiddenLabel"},{"label": "敏感身份","columnRatio": 3,"multiple": true,"checkAll": true,"name": "identityTypeIds","source": {"method": "get","url": "/zbxxgl/api/sysdatas/getdict/bytype?dictType=zbxtmgsf"},"type": "select"},{"initiallyOpen": false,"label": "报送单位","columnRatio": 3,"multiple": true,"name": "reportOrgIds","joinValues": true,"onlyLeaf": true,"searchable": true,"selectMode": "tree","showOutline": true,"hideNodePathLabel": true,"source": {"method": "get","url": "/zbxxgl/api/sysdatas/getptv/tree/open?ptvType=zbxtbsdw"},"type": "tree-select","unfoldedLevel": 1,"onlyChildren": true},{"type": "hidden","name": "ids","id": "ids"}]}]}],"title": "","submitText": "","actions": []
}
Wrapper
是一个包裹容器组件,相当于div。可以自定义样式
//项目种一般使用className
//样式单独定义在一个css文件,在html页面使用link标签引入即可
//当然如果是非常简单的样式,也可以使用style,两者选择其一即可
//建议项目中使用className
{"type": "wrapper","body": "内容","className": "xysd-pubquery-moreQuery xysd-pubquery-moreQuery-ss","style": {"color": "red","fontSize": "30px"}}
group
Group 组件用于在一行展示多个表单项
//同样支持className
{"type": "group","mode": "horizontal",//让label和后面的组件在同一行"body": [{"type": "input-date-range","name": "reportTime","label": "首报时间","columnRatio": 3,"format": "YYYY-MM-DD"},{"initiallyOpen": false,"label": "首报单位","columnRatio": 3,"multiple": true,"name": "firstReportOrgIds","onlyLeaf": true,"searchable": true,"selectMode": "tree","showOutline": true,"hideNodePathLabel": true,"source": {"method": "get","url": "/zbxxgl/api/sysdatas/getptv/tree/open?ptvType=zbxtbsdw"},"type": "tree-select","hideNodePathLabel": true,"initiallyOpen": false,"unfoldedLevel": 1,"onlyChildren": true},{"label": "报送形式","columnRatio": 3,"type": "select","clearable": true,"name": "reportType","options": [{"label": "快报","value": "kb"},{"label": "短信","value": "dx"}]},{"format": "YYYY-MM-DD","label": "事发/接警时间","columnRatio": 3,"name": "incidentTime","type": "input-date-range","value": "${YEAR(NOW())}-1-1,${YEAR(NOW())}-12-31"}]
}
tree-select
树形选择器
{"columnRatio": 2,//这个配置可以将当前行平分为12格(Group组件)"initiallyOpen": false,//默认是否展开所有子节点(InputTree)"label": "事发地点","className": "xysd-grid-scroll-select","multiple": true,//多选"name": "siteTypeIds",//这是后端接口参数名"searchable": true,//支持搜索,这里的搜索只是在后端返回值的基础上进行数据的查找,不会走后端接口(Select组件)"selectMode": "tree",//搜索之后下拉项按照属性结构展示(Select组件)"showOutline": true,//控制是否显示展开线(InputTree组件)"source": {//配置后端接口"method": "get","url": "/zbxxgl/api/sysdatas/getdict/tree/bytype?dictType=zbxtshudi&hidden=0"},"type": "tree-select","unfoldedLevel": 2,//层级比较多,可以指定展开指定的层级(InputTree组件)"hideNodePathLabel": true,//这个可以控制选中的节点是否已全层级的方式显示,true为只显示所选当前节点"onlyLeaf": true,//只能选择子节点"onlyChildren": true//只会显示最末层级节点
}
//其他一些通用属性参考InputTree组件
Select
选择器
{"label": "敏感身份","columnRatio": 3,"multiple": true,//多选"checkAll": true,//全选"name": "identityTypeIds",//后端接口参数"source": {//后端接口"method": "get","url": "/zbxxgl/api/sysdatas/getdict/bytype?dictType=zbxtmgsf"},"type": "select","selectMode":"tree",//下拉项展示格式tree是树形格式,group 分组形式,table表格格式"clearable":true//单选模式下是否可以清空
}{"label": "受伤人数","columnRatio": 2,"type": "select","clearable": true,"name": "injuredNumWay",//也可以通过options属性指定下拉项"options": [{"label": ">","value": ">"},{"label": "<","value": "<"},{"label": "=","value": "="},{"label": ">=","value": ">="},{"label": "<=","value": "<="}]
}
其他属性参考
属性表
InputDateRange
日期范围选择器
{"type": "input-date-range","name": "reportTime","label": "首报时间","columnRatio": 3,"format": "YYYY-MM-DD",//传参数据格式"displayFormat":"YYYY-MM-DD"//日期显示格式"placeholder":"请选择日期"//占位符
}
{"format": "YYYY-MM-DD","label": "事发/接警时间","columnRatio": 3,"name": "incidentTime","type": "input-date-range","value": "${YEAR(NOW())}-1-1,${YEAR(NOW())}-12-31"//value可以设置默认值,也可以通过函数设置默认值
}
属性表
inputGroup
输入框组合
{"type": "input-group","className": "xysd-pubquery-searchKeyWords","body": [{"label": "","name": "keyWords","type": "input-text","placeholder": "请输入信息标题、内容相关的关键字检索。多关键词,、;隔开"},{"label": "查询","type": "button","icon": "fa fa-search","level": "primary","align": "right","size": "lg","onEvent": {"click": {"actions": [{"actionType": "submit","componentId": "filterForm"}]}}}]
}
Grid
水平分栏
这里主要就是使用分栏 md 属性
{"type": "grid","className": "xysd-grid-query-input","columns": [{"md": 8,"body": [{"type": "input-group","className": "xysd-pubquery-searchKeyWords","body": [{"label": "","name": "keyWords","type": "input-text","placeholder": "请输入信息标题、内容相关的关键字检索。多关键词,、;隔开"},{"label": "查询","type": "button","icon": "fa fa-search","level": "primary","align": "right","size": "lg","onEvent": {"click": {"actions": [{"actionType": "submit","componentId": "filterForm"}]}}}]}]},{"md": 4,"body": [{"type": "tpl","tpl": "<div class='xysd-pubquery-moreQuery-btn' οnclick='handleCollapse(`xysd-pubquery-moreQuery`,`xysd-pubquery-moreQuery-ss`)'>更多查询</div>"}]}]
}
Page
Page 组件是 amis 页面 JSON 配置中顶级容器组件,是整个页面配置的入口组件
{"type": "page","title": "离京报备登记",//标题,在页面的左上角"body": {"type": "service",//引用外部的一个json文件"schemaApi": {"url": "/zbxxgl/amis/fetchSchema","data": {"path": "#/pc/html/ljbb/dj"},"method": "post"}},"id": "u:88fac01c5570","asideResizor": false,//页面的边栏区域宽度是否可调整"pullRefresh": {//下拉刷新配置(仅用于移动端)"disabled": true},"regions": [//定义页面整体分布 头,身体,底部"body","header","toolbar"],"toolbar": [//往页面的右上角加内容,需要注意的是,当有 title 时,该区域在右上角,没有时该区域在顶部{//这个是报备记录查询"label": "","type": "button","className": "btn-bbjlcx","icon": "","iconClassName": "text-white text-xl","onEvent": {"click": {"weight": 0,"actions": [{"args": {"url": "/zbxxgl/pc/index.html#/pc/html/ljbb/bsdw_ljcx"},"actionType": "url","blank": false}]}}},{//这个是点击跳转首页"label": "","type": "button","className": "btn-backhome","icon": "fa fa-times-circle","iconClassName": "text-white text-xl","onEvent": {"click": {"weight": 0,"actions": [{"args": {"url": "/zbxxgl/pc/index.html#/pc/bsdw/portal"},"actionType": "url","blank": false}]}}}]
}
效果图
Service 功能型容器
Service组件就是专门为该类组件而生,它的功能是:配置初始化接口,进行数据域的初始化,然后在Service内容器中配置子组件,这些子组件通过数据链的方法,获取Service所拉取到的数据
//这是在一个页面中嵌入service组件的定义
{"type": "service","schemaApi": {//用来获取远程 Schema 接口地址"url": "/zbxxgl/amis/fetchSchema","data": {"path": "#/pc/html/ljbb/dj"},"method": "post"}
}
//这个是上面service组件的实现
{"type": "service","api": {//初始化数据域接口地址"method": "get","url": "/zbxxgl/api/leaveStation/getCurrentIsSldParty"},"body": []
}
Form
主要作用是提交或者展示表单数据
{"type": "form","panelClassName": "form-dj","debug": false,//调试"id": "myForm","title": "","initApi": {//初始化数据"method": "get","url": "/zbxxgl/api/leaveStation/get?id=${id}"},"body": [{"type": "service","api": "/zbxxgl/api/leaveStation/getInfo?dataKeys=leaveUser","body": [{"type": "hidden","id": "sccg","name": "sccg","value": false},{"type": "grid","columns": [{"md": 4,"body": []},{"body": []}]}]}],"mode": "horizontal",//表单显示方式 normal inline horizontal"actions": [//表单行为 按钮{"type": "button","label": "上报","size": "lg","block": false,"actionType": "submit","api": {"url": "/zbxxgl/api/leaveStation/report","method": "post","messages": {"success": "成功","failed": "失败"}},"level": "primary","visibleOn": "${ privilegeDTO.report}","confirmText": "是否确认上报?上报后信息无法删除!"}]
}
属性表
Hidden
对于隐藏的字段同时又希望提交表单的时候带过去,可以使用 hidden 组件
{"type": "service","api": "/zbxxgl/api/leaveStation/getInfo?dataKeys=leaveUser","body": [{"type": "hidden","id": "sccg","name": "sccg","value": false}]
}
Tpl 模板
{"type": "tpl","className": "method-title-sub","tpl": "方式一:智能填写"
}{"type": "tpl","className": "method-content","style": {"margin-bottom": "10px"},"tpl": "填写电子版离京外出审批表(模板可通过本系统下载),履行线下请假审批程序,领导签批后,将已填写的电子版审批表上传至系统,系统自动识别表格内容至右侧在线表单,核对修改完善表单信息后,在审批信息处注明“X月X日由XX领导批准”(无需提交离京报备表及审批证明材料扫描件),提交上报。"
}
divider 分割线
{"type": "divider","title": "Text","titlePosition": "left","color": "red","lineStyle": "dashed","direction": "vertical"
}{"type": "divider","title": "Text","titlePosition": "center","color": "blue","lineStyle": "solid","direction": "horizontal","style": {"margin": "0px"}
}
button 按钮
button 实际上是 action 的别名,更多用法见 action
"actions":[{"type": "button","label": "导出审批表","hiddenOn": "${sccg}","visibleOn": "${oneIdentyQuery==1 || privilegeDTO.isDcztZBS}","id": "dcsb_button","size": "lg","level": "primary","actionType": "download","required": [],"api": {"method": "post","url": "/zbxxgl/api/leaveStation/export?orgIdentityTypeId=${oneOrgIdentityTypeId}","messages": {"success": "成功","failed": "失败"}}},{"type": "button","label": "导出审批表","visibleOn": "${oneIdentyQuery==0 && !privilegeDTO.isDcztZBS}","size": "lg","level": "primary","onEvent": {"click": {"actions": [{"actionType": "dialog","args": {"dialog": {"type": "dialog","id": "dialogSubmit","title": "请选择审批表模板","className": "xysd-dialog-padding","actions": [],"body": [{"type": "form","id": "mergeForm","body": [{"type": "select","name": "orgIdentityTypeId","source": "/zbxxgl/api/leaveStation/getMoreIdentity","required": true,"label": false},{"type": "wrapper","className": "flex justify-end xysd-handle-btn-margin","body": [{"type": "button","label": "确认","level": "primary","onEvent": {"click": {"actions": [{"actionType": "custom","script": "window.amisScoped.getComponentById('mergeForm').validate().then(function(res){if(res){console.log(event.data);doAction([{\t\"actionType\": \"download\",\t\"args\": {\"api\": {\t\"method\": \"post\",\t\"url\": \"/zbxxgl/api/leaveStation/export\",\t\"messages\": {\t\t\"success\": \"成功\",\t\t\"failed\": \"失败\"\t},\t\"data\": {\t\t...event.data.__super.__super\t,\t\t\"orgIdentityTypeId\": event.data.orgIdentityTypeId}}}},{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"actionType\": \"cancel\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"componentId\": \"dialogSubmit\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}])}})"}]}}},{"type": "button","label": "取消","onEvent": {"click": {"actions": [{"actionType": "cancel","componentId": "dialogSubmit"}]}}}]}]}]}}}]}}},{"type": "submit","label": "${privilegeDTO.isDcztZBS ? '保存': '暂存'}","size": "lg","visibleOn": "${ privilegeDTO.save}","api": {"url": "/zbxxgl/api/leaveStation/save","method": "post","dataType": "json","messages": {"success": "成功","failed": "失败"}},"level": "primary"},{"type": "button","label": "上报","size": "lg","block": false,"actionType": "submit","api": {"url": "/zbxxgl/api/leaveStation/report","method": "post","messages": {"success": "成功","failed": "失败"}},"level": "primary","visibleOn": "${ privilegeDTO.report}","confirmText": "是否确认上报?上报后信息无法删除!"}
]
Action 行为按钮
一般type都设置为button,所以这里就已type是button为例
{"type": "button","columnRatio": 12,"className": "method-btn","level":"success",//如果对于按钮的样式没有特别要求可以使用level 取值 primary secondary info success warning danger light"label": "下载离京外出审批表模板","icon": "fas fa-arrow-down",//图标"style": {//样式"margin-bottom": "15px"},"actionType": "download",//按钮行为 这里是下载"api": {//后端接口"url": "/zbxxgl/api/leaveStation/template","method": "get"}
}{"label": "","type": "button","className": "btn-backhome","icon": "fa fa-times-circle","iconClassName": "text-white text-xl","onEvent": {//click事件 可以跳转到首页 指定的页面"click": {"weight": 0,"actions": [{"args": {"url": "/zbxxgl/pc/index.html#/pc/bsdw/portal"},"actionType": "url","blank": false}]}}
}
更多操作