實體類java
public class TreeVO {node
private String id;
private String text;
private String state;
private String parentId;
private Map<String, Object> attributes;// 其餘參數
private List<TreeVO> children = new ArrayList<TreeVO>();
private boolean checked;sql
Action :數據庫
public String companyUI(){
List list = new ArrayList();
list = findOrgTreeList();
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(list.toString()+"====="+jsonArray);
request.setAttribute("orgTreeList", jsonArray.toString());
return "companyUI";
}json
public List findOrgTreeList() {
List<TreeVO> tree = new ArrayList<TreeVO>();
try {
String puuid = UserUtil.getPersonUuid();
Map person = getPersonOrg(puuid);
String unitCode = "";
String unitName = "";
unitCode = (String) person.get("UNIT_CODE");
unitName = (String) person.get("UNIT_NAME");
TreeVO vo = new TreeVO();
vo.setId(unitCode);
vo.setText(unitName);
vo.setChecked(false);
List<TreeVO> children = findOrgTreeChildList(unitCode);
if (children!=null&&children.size() > 0) {
vo.setState("closed");
vo.setChildren(children);
} else {
vo.setState("opened");
}
tree.add(vo);
} catch (Exception e) {
LogUtil.error(e);
e.printStackTrace();
}
return tree;
}jsp
private List<TreeVO> findOrgTreeChildList(String orgCode) {
List<Map> list = getOrg(orgCode);
List<TreeVO> tree = new ArrayList<TreeVO>();
for (Map m : list) {
String c_orgCode = m.get("ORG_CODE").toString();
String c_orgName = m.get("ORG_NAME").toString();
TreeVO vo = new TreeVO();
vo.setId(c_orgCode);
vo.setText(c_orgName);
vo.setChecked(false);
List<TreeVO> children = findOrgTreeChildList(c_orgCode);
if (children!=null&&children.size() > 0) {
vo.setState("closed");
vo.setChildren(children);
} else {
vo.setState("opened");
}
tree.add(vo);
}
return tree;
}ui
BaseAction:code
/** 調用例子:
List list = getOrg("10340001");
*/
public List getOrg(String parentOrgCode){
List list = null;
try{
list = sqlSessionTemplate.selectList("BaseBean.getOrg",parentOrgCode);
}catch(Exception ex){
LogUtil.error(ex);
}
return list;
}get
jspinput
<!-- 組織機構樹選擇 -->
<textarea id="orgTreeList" style="display:none;">${orgTreeList }</textarea>
<input type="hidden" id="orgCode" />
<input type="hidden" id="orgName" />
<td align="left" width="210px;" > 省(市):
<input id="orgTree" style="width:150px;height:32px;vertical-align: middle;"/>
</td>
js
/*組織結構樹*/
function _initOrgTree(data) {
//alert(data);
var isFirst = true;
$('#orgTree').combotree({
panelHeight:'160',
panelWidth:'160',
data:data,
onLoadSuccess:function(node, data) {
if(isFirst){
var root = $("#orgTree").combotree('tree').tree('getRoot');
$('#orgTree').combotree('setValue',root.id);
isFirst = false;
_initDataGrid();
}
},
onSelect:function(node) {
$('#orgCode').val(node.id);
$('#orgName').val(node.text);
}
});
}
function _initDataGrid(){
//初始化datagrid數據
$('#tt').datagrid({
queryParams: {
orgCode:$('#orgCode').val(),
companyName:$('#companyName').val(),
companyClassify:$('#companyClassify').combobox('getValue')
//companyType:$('#companyType').combobox('getValue')
}
});
}
數據庫
<select id="getOrg" parameterType="string" resultType="java.util.HashMap">
select org_code,parent_org_code, org_name,org_type, org_type_name,orgLevelCode
from n_m_org
where parent_org_code = #{parentOrgCode} AND ORG_TYPE = '1' and org_level in ('0','1','2')
order by org_code
</select>
效果圖:http://pan.baidu.com/s/1kVnv5pP