1. 功能介绍

    实现部门树的选择,让用户灵活选择他可以访问到的部门,可以和区域树,员工查询组件组合使用来实现权限控制,也可以自定义部门树,而不用该组件方式。

  2. 参数说明

    参数名 参数类型 是否必须 默认值 描述
    value java.lang.String   默认为当前登录区域 地区编码
    textName java.lang.String   默认是POP_控件名 描述值名称,默认是POP_控件名
    root java.lang.String   当前登陆部门 如果没填areaName属性弹出部门树形控件时指定的部门根结点
    areaName java.lang.String     弹出部门树形控件指定的根接点来源
    staffName java.lang.String     弹出区域树形控件绑定的员工|客户经理组件名称
    mode java.lang.String     可选项area|dept,如果部门树不依赖区域组件(即areaName没有),可以用mode指定弹出树的根接点
    beforeAction java.lang.String     弹出窗口前执行的javascript方法;
    afterAction java.lang.String     弹出窗口后执行的javascript方法;
    open boolean   按权限获取数据 是否开放权限,默认按权限获取数据
    readOnly boolean     如果是true,则为只读,不能修改,如果是false,则可以修改
    disabled boolean     如果是true,则不能修改,不能修改,如果是false,则可以修改
    fieldName java.lang.String     自定义控件名,若设置了该参数,jwcid=name@..的名称不生效,适合在foreach自定义名称或重名组件使用
    skin java.lang.String     风格定义,默认通过统一配置风格
    editable boolean     是否可编辑,默认控件的显示框是只读的,虽然是可编辑,但该组件还是会有隐藏框和显示框
    enterAction java.lang.String     绑定回车事件,一般需要editable="true"时,在输入框输入值回车后触发的事件,如enterAction="alert('keydown')"
    showImg boolean   true 是否加载图标
    holdAction boolean   false 是否保留图标的动作,通过点击输入框触发
    dataMode java.lang.String simple|sqlstore simple 数据模式,默认为框架提供.若指定为sqlstore,则通过TD_S_SQLSTORE表执行相应的SQL来生成部门树数据
    sqlRef java.lang.String   false 当dataMode为sqlstore时,该参数有效.该值为TD_S_SQLSTORE里的SQL_REF字段;SQL_STMT字段值需参数后面的示例
    source java.lang.Object(目前支持IData|List对象)     参数集,如执行sqlRef所需的参数
  3. 注意事项

    1. 与弹出控件无关的弹出窗口或单独的树形控件页面(调用org.DeptTree的loadDeptTree方法即可)
      如:<input type="text" jwcid="DEPART_ID@wade:PopupField" value="ognl:info.DEPART_ID" text="ognl:info.DEPART_NAME" action="popupPage('component.org.DeptTree', 'loadDeptTree', null, '部门选择', '400', '400')"/>,
      注:
      1. 如果需要指定root_id,可以在popupPage方法中写上'&root_id=xxx'
      2. 如果需要指定root_id的类型是区域编码(查询指定区域的部门)还是部门编码(查询指定部门的子部门),可以写参数&root_id=xxx&mode=area|dept (区域|部门)
    2. 支持部门树数据自定义,用dataMode=sqlstore + sqlRef的方式即可实现
  4. 代码片段

    1. HTML写法

      1. 写法一:

        <input type="text"
        	jwcid="DEPART_ID@component:DeptField"
        	value="ognl:info.SCHE_CONTENT"
        />
        
      2. 写法二:

        <input 
        	type="text" 
        	jwcid="DEPT_FIELD1@component:DeptField" 
        	value="ognl:info.DEPT_FIELD1" 
        	source="ognl:pageData.getData()"
        	dataMode="sqlstroe" 
        	sqlRef="QRY_DEPT_BYPARENT_ID"
        	desc="部门选择" 
        	class="e_input"
        />
        
    2. SQL写法(仅做参考)

      select distinct (dept.DEPART_ID) DEPART_ID,
             dept.DEPART_CODE,
             dept.DEPART_NAME,
             dept.ORDER_NO,
             dept.DEPART_CODE || '|' || dept.DEPART_NAME DEPART_TEXT,
             dept.PARENT_DEPART_ID,
             dept.DEPART_FRAME,
             dept.AREA_CODE,
             decode(childs.NODE_COUNT, null, 0, childs.NODE_COUNT) NODE_COUNT,
             decode(childs.NODE_COUNT, null, 0, 1) EXPAND_NODE
        from TD_M_DEPART dept,
             TD_M_STAFF staff,
               (select PARENT_DEPART_ID, count(DEPART_ID) NODE_COUNT
               from TD_M_DEPART
               where 1 = 1
               and DEPART_KIND_CODE = '100'
               group by PARENT_DEPART_ID) childs
       where dept.DEPART_ID = childs.PARENT_DEPART_ID(+)
         and dept.DEPART_ID = staff.DEPART_ID
         and staff.DIMISSION_TAG = '0'
         and dept.DEPART_KIND_CODE = '100'
         and dept.VALIDFLAG = '0'
         and dept.PARENT_DEPART_ID = :DEPART_CODE
       order by EXPAND_NODE desc, dept.DEPART_CODE
      
  5. 效果演示