November 28, 2019
By: Elbert

管理后台模板使用总结

  1. 管理后台页面模板
    1. 一、概述
    2. 二、使用
      1. 1. 页面功能及Rest接口
      2. 2. 创建列表页面
    3. 三、模板参数说明
    4. 四、接口注意事项
  2. 欢迎大家使用模板,提需求和提Bug

管理后台页面模板

一、概述

  • 模板现存文件路径:customplatform/custombackend/src/cljs/utils/目录下的table_curd.cljstables.cljs
  • 模板包含功能:
  • 多列列表页面(包括自定义列表展示,包含编辑、可选的删除、自定义弹框的操作,可选的新增,首列是图片的树形列表)
  • 列表页面按照接口关键字检索
  • 详情页面(动态判断新增还是编辑、Form表单常用控件的编辑及提交)
  • 动态路由

二、使用

首先建议参考裁圣管理后台中的基础数据菜单下的刺绣位置等。

下面将用裁圣管理后台中刺绣字体菜单及功能为示例,介绍使用流程。

1. 页面功能及Rest接口

明确页面功能及需要的数据来源,肯定是所有前端工作的起始。

这里将使用裁圣管理后台中已经完成的刺绣字体页面进行改造,相对应的页面和接口都是很完备的。而如果是新页面,也是类似的,不过需要明确需求和用Swagger等工具提前调试好接口。

刺绣字体列表页cixiuliebiaoye

2. 创建列表页面

根据上面刺绣字体的需求,需要提供路由、标题、表头字段及接口字段

在刚才的文件里,添加代码

;;; 刺绣字体页面
(def ^:private embroidery-font-route
  (gen-page-routes {:father "/base-data"
                    :name "embroidery-font"
                    :title "刺绣字体"
                    :row-id "font_id"
                    :meta-list-data {:title ["图片" "名称" "编码" "排序"]
                                     :input-type [:img :txt :txt :txt]
                                     :key [:font_image :font_name :font_code :show_order]}
                    :meta-detail-data {:title ["名称" "编码" "排序" "图片"]
                                       :key [:font_name :font_code :show_order :font_image]
                                       :input-type [:txt :txt :num :img]
                                       :required [true false true true]}
                    :urls {:query-list {:method :get :api "/admin/embroidery/font/list"}
                           :delete-item {:method :delete :api "/admin/embroidery/font/remove/"}
                           :update-item {:method :post :api "/admin/embroidery/font/post_font"}
                           :add-item {:method :post :api "/admin/embroidery/font/post_font"}}}))

说明:

  • :fater——制定刺绣字体页面的路由路径的父级是基础数据,/base-data
  • :name——指定刺绣字体列表页面的路由路径
  • :title——指定标题刺绣字体
  • :row-id—— 列表数据中,每一条数据的id,一般也是数据库主键,单独指定是因为他并不需要显示在列表上
  • :meta-list-data—— map数据类型,用于定义列表页表头及显示
  • :title—— vector类型,包含表头除操作的所有
  • :input-type—— vector类型,每一列显示的数据的展示形式,:img是图片,:txt是文本
  • :key—— vector类型,每一列数据对应接口的字段名的keyword形式
  • :meta-detail-data—— map类型,用于定义详情页面
  • :title :input-type :key—— 跟meta-list-data一样
  • :required—— vector类型,是否必填
  • :urls—— map类型,包含页面需要的增删改查接口
  • :query-list—— 列表查询接口
  • :delete-item—— 列表项删除接口
  • :updata-item—— 详情更新接口
  • :add-item—— 详情页新增接口

定义好了刺绣字体页面,接下来就可以查看页面了

应用模板的刺绣字体页面cixiuliebiaoye-new

应用模板的刺绣字体详情页面cixiuxiangqingye-new

这里测试了增删改查,还遗留一个问题,就是不能编辑,因为接口定义的编辑时所需的id在body里,不在路径。

所有的接口相关的注意事项,在后面的章节会统一介绍。

!!!以上就完成了模板应用,成功完成了刺绣字体页面!!!

三、模板参数说明

  • :father String,上级路由,父路由
  • :name String,路由字段
  • :title String,页面标题
  • :row-id String,主键id
  • :search-condition Vector,在列表页面添加搜索功能,目前仅支持按照关键字检索接口字段;每个item都是一个检索条件;其他待开发
  • :key Vector,接口字段的keyword
  • :title String,检索框内hit
  • :meta-list-data Map,列表页数据结构
  • :title String,表头列名
  • :key Vector,接口对应的keyword形式
  • :input-type 列表项类型
  • :img 图片,只有该类型,在列表第一列时,才支持树形列表结构
  • :txt 文字
  • :time 时间(格式:"YYYY/MM/DD")
  • :meta-detail-data Map,详情页数据结构
  • :title String,FormItem显示标签
  • :input-type Vector,列表项类型
  • :img 图片
  • :txt 文字
  • :num 数字(最小值0,最大值1000,暂时不支持自定义范围)
  • :txtarea textarea
  • :switch 开关
  • :cascader 单选级联,使用select-data-coll里的数据作为数据源
  • :tree-select 多选级联,使用select-data-coll里的数据作为数据源
  • :select 单选列表非级联,,使用select-data-coll里的数据作为数据源
  • :required Vector,是否必填
  • :format-key Map,针对接口数据进行数据转换,以适应展示需求
  • 每个k是接口字段的关键字;每个对应的value 是一个函数,用于提供转化逻辑
  • :select-data-coll Vector类型,级联单选数据源列表
  • :key 数据源关键字与meta-detail-data里key字段对应
  • :type 数据来源
  • :net 需要网络获取,此时:value字段是接口地址;
  • :local 直接从:value里面取
  • :value 数据
  • :type是:net时,是一个String,表示接口地址
  • :type是:local时,是一个Vector
  • :value 提交值,后台定义
  • :lable 标签,列表显示
  • :modal-window Map,列表操作弹窗数据,有该字段时在列表的操作列里增加一个弹窗选项
  • :btn-name String,按钮title
  • :open-event Keyword,弹出弹窗时需要的event
  • :modal-view 组件,弹窗视图
  • :urls Map,接口;每项的value都包含接口地址(:api)和接口Method(:method),目前支持三种Method(:get/:post/:delete)
  • :query-list 查询接口
  • :delete-item 删除接口, 该字段控制是否显示删除按钮
  • :update-item 更新接口
  • :add-item 新增接口

四、接口注意事项

  1. 列表查询接口返回的数据中,data字段可以直接返回数组,或者包裹在 list 字段里.如
data: [...]
或
data: {
    list:[...]
}
  1. 接口类型支持:GET/POST/DELETE
  2. 单选级联和多选级联数据结构接口数据,需要按照如下格式:
[
    {lable:
     value:
     children: [{lable: value:}...]}
]
  1. 表单提交接口参数字段类型,需要跟表单输入控件类型一致
  2. 提交和删除等需要指定id的接口,id需要在路径里
  3. 增删改查等每个接口干特定的事儿,不混用
  4. switch开关的值,使用"1"表示开(true),"0"表示关(false)

欢迎大家使用模板,提需求和提Bug

Tags: clojure clojurescript