众联BreezeCMS实现思路(三)

        Decorate是页面组件,当前管理台的页面都是由这些页面组成的。另外既然是Decorate模式,decorate可以做成类似的容器模式,在decorate中套decorate。

CMSMgrDecorate

        在CMSMgrDecorate中有三类方法:

        显示方法,模型定制方法,页面交互方法。

        显示方法是Decorate主方法,这些方法包括:

        processingData是第一个重要方法,该方法传入的是由Control由processorShowData处理后的数据(其结构,参见《control定制》中关于数据定制相关的方法。),然后将数据转换成本Decorator进行处理所需要的数据return回去。

        setData方法,这是对外调用方法,调用该方法进行数据设置,该方法调用processingData,同时,他还会调用被嵌套的子组件的对应的setData,这样一口气可以把自己以及所有儿子的组件的数据全部设置好。该方法一般不要重载和改变。要处理数据重新定制processingData
即可。

        getDisplayData是第二个非常重要的主方法,这个方法也亦是对外方法,该方法将根据本组件的视图,返回对应的html片段信息。

        childrenData是第三个方法,该方法是一个辅助方法。被tpl视图反向调用,目的是如果Decorate是个容器,有子内容(子内容也是一个或若干个组件)那么可以在视图中反向调用这个方法,以获取子组件部分的html片段。

        例如现在的几个组件,就是多层的套用关系:左边菜单树有子组件tag分栏,tag分栏又有子组件list列表(或者single表单),list表单又有子组件分页。

       

        模型定制相关的方法主要是在alias模型定义中的扩展设定如下:


在这个页面中,扩展配置页面的每个按钮,就是有Decorate独立定制的,模型设定页面会扫描所有的Decorate内容,Decorate中有一个特殊接口,当这个接口被模型页面扫描到后,便会将数据结构返回,模型设定会根据这些信息显示按钮以及相关的配置页面。

模型定制接口如下:

getCfgInfo 这是一个被模型管理扫描过的函数,获取系统配置的信息,默认返回是null,即没有配置,若有返回,其值为:

{
        name: "列表页按钮",
        sig: "listOperBtns"
    }


getDisplayCfg 这个方法用于模型设置时,点击对应的按钮后,返回本设定特定的html片段


getCfgSetting该方法可以返回配置设置页面后填写完表单,从表单中获取用户的设置信息,并转化成json格式返回。该方法在基类中有一个默认方法,可以实现默认的表单处理,不过有一个前提,可以参考默认方法的提示。


第三类方法就和组件本身相关,是不同组件的自有方法,这里不一一描述。

当前的decorate介绍

        CMSMgrDefaultHeaderDecorate该Decorate是用于头部部分的组件,如下:

        
        CMSMgrDefaultListFilterDecorate用于特殊过滤器组件,效果如下:



CMSMgrDefaultListPaginationDecorate 这是个分页组件


CMSMgrDefaultListViewDecorate  这是列表页组件


CMSMgrDefaultNodeDecorate 这是左边节点数组件


CMSMgrDefaultSingleViewDecorate 这是左边菜单树组件


CMSMgrDefaultTagDecorate 这是tag分页栏组件,效果如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值