1. 配置说明

    1. 功能配置

      1. 图片验证码

        在 WEB-INF/web.xml 的 ImageServlet 做如下配置

        <servlet>
        	<servlet-name>image</servlet-name>
        		<servlet-class>com.ailk.web.servlet.file.ImageServlet</servlet-class>
        	<init-param>
        		<param-name>image-class</param-name>
        		<param-value>com.ailk.base.util.VerifyImage</param-value>
        	</init-param>
        	<load-on-startup>0</load-on-startup>
        </servlet>
        
      2. 登录

        1. 默认实现(无数据库接口)

          调用 com.ailk.base.service.impl.BaseAccess 的 login 方法,对验证码进行验证并保存响应的 cookie 信息,不做数据库信息校验。

        2. 接口 API 说明
          /**
          * 返回值为 null 时直接 return,不为 null 时会将返回值的 key,value 遍历写入 visit 中
          * 
          * @param cycle
          * @param context
          * @param homePage
          * @return
          */
          IData login(IRequestCycle cycle,BaseContext context,BasePage homePage) throws Exception;
          
          /**
          * 返回菜单数据,返回值的需遵循以下要求:
          * 	1:IDataset 中为 IData;
          *	2: IData 中需有以下 key:
          *  		PARENT_MENU_ID:父节点
          *  		MENU_ID:菜单节点
          *  		MENU_IMG:图标
          *  		MOD_NAME:url路径
          *  		MENU_NAME:菜单名
          *  		MENU_TITLE:菜单标题
          *  		CLASS_LEVEL:菜单级别
          * 
          * @param cycle
          * @return
          */
          IDataset loadMenu(IRequestCycle cycle,BaseContext context,BasePage basePage) throws Exception;
          
          /**
          * 返回快捷菜单数据,返回值的需遵循以下要求:
          * 	1:IDataset 中为 IData;
          *	2: IData 中需有以下 key:
          *  		MENU_ID:菜单节点
          *  		MENU_IMG:图标
          *  		MOD_NAME:url路径
          *  		MENU_NAME:菜单名
          *  		MENU_TITLE:菜单标题
          *  		CLASS_LEVEL:菜单级别
          * 
          * @param cycle
          * @return
          */
          IDataset loadShortCutMenu(IRequestCycle cycle,BaseContext context,BasePage basePage) throws Exception;
          
      3. 登出

        1. 默认实现(无数据库接口)

          采用 com.ailk.web.BasePage 的 logout 方法,不对数据库进行操作。

        2. 接口 API 说明
          /**
          * logout
          * @param cycle
          * @throws Exception
          */
          public void logout(IRequestCycle cycle) throws Exception 
          
        3. 定制开发

          后台:可在 com.ailk.base.view.Home 或其子类中重载 logout 方法;

          前台:可通过在 global.properties 中 dynamic.head.html.src=BaseHeader.html 中配置自定义的Head页面,修改登出的实现方式,BaseHeader.html 为默认 Head 区显示内容;

      4. 菜单

        1. 默认实现(无数据库接口)

          调用 com.ailk.base.service.impl.BaseAccess 的 loadMenu 方法,数据从 develop.xml 中获取。

        2. 接口 API 说明
          /**
          * 返回菜单数据,返回值的需遵循以下要求:
          * 	1:IDataset中为IData;
          *	2: IData中需有以下kay:
          *  		PARENT_MENU_ID:父节点
          *  		MENU_ID:菜单节点
          *  		MENU_IMG:图标
          *  		MOD_NAME:url路径
          *  		MENU_NAME:菜单名
          *  		MENU_TITLE:菜单标题
          *  		CLASS_LEVEL:菜单级别
          *	
          * @param cycle
          * @return
          */
          IDataset loadMenu(IRequestCycle cycle,BaseContext context,BasePage basePage) throws Exception;
          
          /**
          * 返回快捷菜单数据,返回值的需遵循以下要求:
          * 	1:IDataset中为IData;
          *	2: IData中需有以下kay:
          *  		MENU_ID:菜单节点
          *  		MENU_IMG:图标
          *  		MOD_NAME:url路径
          *  		MENU_NAME:菜单名
          *  		MENU_TITLE:菜单标题
          *  		CLASS_LEVEL:菜单级别
          * 
          * @param cycle
          * @return
          */
          IDataset loadShortCutMenu(IRequestCycle cycle,BaseContext context,BasePage basePage) throws Exception;
          
        3. 定制开发

          后台:可生成 com.ailk.base.service.interfaces.IAccess 的子类定制菜单及快捷菜单处理程序

          前台:可通过在 global.properties 中修改 dynamic.sidebar.html.src=com/ailk/base/view/jwcs/dynamic/basehtml/PersonStateSideBar.html,实现 SideBar 区自定义;com/ailk/base/view/jwcs/dynamic/basehtml/PersonStateSideBar.html 为系统默认显示内容

          注:
          quickstart 可配置为:
          dynamic.sidebar.html.src=com/ailk/base/view/jwcs/dynamic/basehtml/QuickstartSideBar.html
          若 Sidebar 区为快捷键,可配置为:
          dynamic.sidebar.html.src=com/ailk/base/view/jwcs/dynamic/basehtml/ShortcutSideBar.html
          若 Sidebar 区为个人信息,可配置为:
          dynamic.sidebar.html.src=com/ailk/base/view/jwcs/dynamic/basehtml/PersonStateSideBar.html

      5. 欢迎页/首页

        1. 默认实现

          采用 Base.Welcome,对应页面为 base/web/Welcome.html

        2. 定制开发

          可在 global.properties 中修改 welcome.page 对应的值来定制化开发欢迎页

          例:welcome.page=Base.Welcome,Base.Welcome 对应为 application 中配置的 page 的 name

    2. 区域配置

      1. 主界面区域划分方法

      2. 登录区

        可修改 application 中 Home 对应的页面文件,配置自定义页面。

      3. 标签页

        必选项,不可配置

      4. 工作区

        必选项,不可配置

      5. Header 区

        在 global.properties 中提供以下参数控制 Head 区

        1. dynamic.head.html.src 定义 Head 区显示的代码片段;
        2. main.show.header=true 或 false (默认)定义 Head 区显示或不显示;
        3. main.show.header.showmore=true 或 false (默认)定义 Head 区中“更多功能”按钮的显示或不显示(当 Head 区为默认的 BaseHeader.html 且 main.show.header=true 时有效)
        4. main.show.header.showsubsys=true 或 false (默认)定义 Head 区中子系统按钮的显示或不显示(当 Head 区为默认的 BaseHeader.html 且 main.show.header=true 时有效)
        5. main.show.header.showlocked=true 或 false (默认)定义 Head 区中“锁定”按钮显示或不显示(当 Head 区为默认的 BaseHeader.html 且 main.show.header=true 时有效)

        例:dynamic.head.html.src=BaseHeader.html,BaseHeader.html 写的是 Head 区的代码片段。

      6. 侧栏

        在 global.properties 中提供以下参数控制侧栏

        1. dynamic.sidebar.html.src 定义侧栏显示的代码片段
        2. main.show.sidebar=true 或 false (默认)定义侧栏显示或不显示
        3. main.show.shortcutmenus=true 或 false (默认)定义侧栏的快捷菜单显示或不显示

        注:main.show.shortcutmenus 依赖于 main.show.sidebar 的配置,当 main.show.sidebar 不等于 true 时 main.show.shortcutmenus 无效

      7. 主菜单区

        在 global.properties 中提供以下参数控制主菜单区

        1. main.show.mainmenus=true 或 false (默认)定义主菜单区显示或不显示
        2. main.show.mainmenus.showsearchmenu=true 或 false (默认)定义主菜单区“搜索菜单”按钮的显示或不显示
        3. ain.show.mainmenus.showfavmenu=true 或 false (默认)定义主菜单区“收藏”按钮的显示或不显示

        main.show.mainmenus 与 main.show.mainmenus.showfavmenu 要依赖于 main.show.mainmenus,当 main.show.mainmenus 不等于 true 时,main.show.mainmenus 与 main.show.mainmenus.showfavmenu 无效。

      8. 状态栏

        在 global.properties 中提供以下参数控制状态栏

        1. showcopyright=true 或 false (默认)定义状态栏显示或不显示

        注:默认样式不支持状态栏,需要自定义样式,否则状态栏将显示在不正常的位置。

      9. 快捷菜单区

        在 global.properties 中提供以下参数控制快捷菜单区

        1. main.show.shortcutmenus=true 或 false (默认)定义快捷菜单区显示或不显示

        注:配置要依赖于 main.show.sidebar 的配置,当 main.show.sidebar 不等于 true 时配置无效

      10. 侧栏显隐按钮

        在 global.properties 中提供以下参数控制侧栏显示状态控制按钮

        1. main.show.slip=true 或 false (默认)定义侧栏显示状态控制按钮显示或不显示

        注:配置要依赖于 main.show.sidebar 的配置,当 main.show.sidebar 不等于 true 时配置无效

  2. 常用 API

    1. 登录

      com.ailk.base.view.Home
      /**
      * 登录
      * @param cycle
      */
      public void loginHome(IRequestCycle cycle) throws Exception
      /**
      * 跳转主页面
      * @param cycle
      */
      public void excuteMain(IRequestCycle cycle) throws Exception
      
    2. 菜单

      com.ailk.base.service.interfaces.IAccess
      /**
      * 返回菜单数据,返回值的需遵循以下要求:
      * 	1:IDataset 中为 IData;
      *	2: IData 中需有以下 key:
      *  		PARENT_MENU_ID:父节点
      *  		MENU_ID:菜单节点
      *  		MENU_IMG:图标
      *  		MOD_NAME:url路径
      *  		MENU_NAME:菜单名
      *  		MENU_TITLE:菜单标题
      *  		CLASS_LEVEL:菜单级别
      * 
      * @param cycle
      * @return
      */
      IDataset loadMenu(IRequestCycle cycle,BaseContext context,BasePage basePage) throws Exception;
      
      /**
      * 返回快捷菜单数据,返回值的需遵循以下要求:
      * 	1:IDataset 中为 IData;
      *	2: IData 中需有以下 key:
      *  		MENU_ID:菜单节点
      *  		MENU_IMG:图标
      *  		MOD_NAME:url路径
      *  		MENU_NAME:菜单名
      *  		MENU_TITLE:菜单标题
      *  		CLASS_LEVEL:菜单级别
      * 
      * @param cycle
      * @return
      */
      IDataset loadShortCutMenu(IRequestCycle cycle,BaseContext context,BasePage basePage) throws Exception ;	
      
  3. JavaScript API

    1. 标签页

      1. window.openNav||$.nav.open(title,page,listener,params,subsys)
        在标签页中打开新的界面,title 和 page 参数为必传,且需为字符串;
      2. window.openNavByUrl||$.nav.openByUrl(title,url,subsys)
        根据URL在标签页打开新的界面,title 和 url 参数必传,且需为字符串
      3. window.closeNav||$.nav.close()
        关闭标签页中当前活动窗口
      4. window.closeNavByTitle||$.nav.closeByTitle(title)
        根据标题关闭标签页中对应的窗口,title 参数必传且为字符串
      5. $.nav.getContentWindow()
        获取标签页中的当前界面窗口
      6. window.getNavContent||$.nav.getContentWindowByTitle(title)
        根据标题从标签页中获取对应的窗口对象,title 参数必传且为字符串
      7. window.switchToNav||$.nav.switchByTitle(title)
        根据标题切换到对应的标签页,title 参数必传且为字符串
      8. $.navtabset.getCurrentItem()
        获取当前窗口的参数信息,目前支持获取一下内容:
        idx:窗口的唯一标识,不是 MENU_ID;
        title:窗口标题;
        url:窗口的路径
      9. $.navtabset.findItemByIdx(idx)
        根据窗口的唯一标识获取对应的参数信息
      10. $.navtabset.add(title,url,menu_id,cls,isWelcomePage)
        在标签页中添加新的窗口
        cls:标签页的样式
        isWelcomePage:是否为欢迎页
      11. $.navtabset.reLoad(idx,url)
        重新加载标签页中的窗口
      12. $.navtabset.switchTo(idx,switchFrame)
        切换到指定的标签页;在切换标签页时会先执行当前窗口的 unactive 事件方法,若方法返回为 false 则不切换窗口
        switchFrame 用于标识是否切换窗口及是否执行窗口切换后新窗口的 active 事件方法
      13. $.navtabset.switchToByTitle(title)
        切换到指定标题的窗口
      14. $.navtabset.close(idx);
        关闭指定的窗口,会先执行窗口定义的close事件方法
      15. $.navtabset.closeByTitle(title)
        关闭指定标题的窗口
      16. $.navtabset.closeCurrent()
        关闭当前窗口
      17. $.navtabset.closeAll()
        关闭所有窗口
      18. $.navtabset.getCurrentContentWindow()
        获取当前窗口
      19. $.navtabset.getContentWindow(idx)
        根据idx获取指定窗口
      20. $.navtabset.getContentWindowByTitle(title)
        根据标题获取指定窗口
      21. $.navtabset.onSwitchClick(e)
        切换窗口事件,e.data值为idx
      22. $.navtabset.onCloseClick(e)
        关闭窗口事件,e.data值为idx
    2. 窗口事件

      1. $.navtabset.frameMgr.add(idx,url,doSwitch)
        新增窗口,doSwitch标识是否切换窗口,true:切换,false:不切换
      2. $.navtabset.frameMgr.switchTo(idx)
        切换窗口
      3. $.navtabset.frameMgr.remove(idx)
        关闭窗口
      4. $.navtabset.frameMgr.reLoad(idx,url)
        刷新窗口
      5. $.navtabset.frameMgr.showLoading(idx)
        显示窗口加载遮罩层
      6. $.navtabset.frameMgr.showContent(idx)
        关闭窗口加载遮罩层
    3. 菜单操作

      1. $.navmenu.openMenu(title,url,menu_id)
        在标签页中打开菜单
      2. $.navmenu.findRootMenuID(menu_id)
        查找菜单对应的根节点
      3. $.navmenu.findSecondMenuID(menu_id)
        查找菜单对应的二级菜单
      4. $.navmenu.getMenuData(menu_id,field)
        获取菜单对应的参数信息,field 为改菜单对应的参数,如 url、CLASS_LEVEL 等
      5. $.navmenu.loadFastMenu()
        加载快捷菜单内容
      6. $.navmenu.loadMenu()
        加载菜单信息
      7. $.navmenu.onL1MenuClick(e)
        一级菜单 click 事件
      8. $.navmenu.onL2MouseEnter(e)
        二级菜单 mouseEnter 事件
      9. $.navmenu.onL2MouseMove(e)
        二级菜单 mouseMove 事件
      10. $.navmenu.onL2MouseLeave(e)
        二级菜单 mouseLeave 事件
      11. $.navmenu.onL2MenuClick(menu_title,url,menu_id)
        二级菜单 click 事件
      12. $.navmenu.onFastMenuClick(menu_title,url,menu_id)
        快捷菜单 click 事件
      13. $.navmenu.hideCurrentL2Menu()
        隐藏当前显示的二级菜单