0hi猿团提供了移动跨平台开发视频,包括html5,apicloud appcan,dcloud,具体请看http://www.9y.cm
!用递归实现不同效果:
/**
* 要求打印如下效果:
*
* <pre>
* 传智播客
* 市场部
* 市场1部
* 市场2部
* 开发部
* 开发1部
* 开发2部
* </pre>
*/
package cn.itcast.oa.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.junit.Test;
import cn.itcast.oa.entities.Department;
public class WebTreeViewUtilsTest {
效果1:
/**
* 要求打印如下效果:
*
* <pre>
* 传智播客
* 市场部
* 市场1部
* 市场2部
* 开发部
* 开发1部
* 开发2部
* </pre>
*/
效果2:
/**
* 要求打印如下效果:
*
* <pre>
* ┠传智播客
* ┠市场部
* ┠市场1部
* ┠市场2部
* ┠开发部
* ┠开发1部
* ┠开发2部
*
* </pre>
*/
@Test
public void printAllDepts_1() {
List<Department> depts = findTopLevelDepartments();
for (Department dept : depts) {
printDeptInfo_1(dept);
}
}
// 打印出部门的信息
public void printDeptInfo_1(Department dept) {
// 1,名称
System.out.println(dept.getName());
// 2,子部门
for (Department d : dept.getChildren()) {
printDeptInfo_1(d);
}
}
/**
* 要求打印如下效果:
*
* <pre>
* ┠传智播客
* ┠市场部
* ┠市场1部
* ┠市场2部
* ┠开发部
* ┠开发1部
* ┠开发2部
*
* </pre>
*/
@Test
public void printAllDepts_2() {
List<Department> depts = findTopLevelDepartments();
for (Department dept : depts) {
printDeptInfo_2(dept, "");
}
}
public void printDeptInfo_2(Department dept, String prefix) {
// 1,名称
System.out.println(prefix + "┠" + dept.getName());
// 2,子部门
for (Department d : dept.getChildren()) {
printDeptInfo_2(d, prefix + " ");
}
}
/**
* 要求打印如下效果:
*
* <pre>
* ┠传智播客
* ┠市场部
* ┠市场1部
* ┠市场2部
* ┠开发部
* ┠开发1部
* ┠开发2部
*
* </pre>
*/
@Test
public void printAllDepts_3() {
List<Department> topLevelDepts = findTopLevelDepartments();
List<Department> allDepts = getAllDepts_3(topLevelDepts, "");
for (Department dept : allDepts) {
System.out.println(dept.getName());
}
}
// 返回当前所有部门及其子孙部门的集合
public List<Department> getAllDepts_3(Collection<Department> depts, String prefix) {
List<Department> list = new ArrayList<Department>();
for (Department dept : depts) {
dept.setName(prefix + "┠" + dept.getName());
list.add(dept);
List<Department> subDepts = getAllDepts_3(dept.getChildren(), prefix + " ");
list.addAll(subDepts);
}
return list;
}
// ---
@Test
public void printAllDepts_3_2() {
List<Department> topLevelDepts = findTopLevelDepartments();
List<Department> allDepts = new ArrayList<Department>();
preAllDepts_3_2(topLevelDepts, "", allDepts);
for (Department dept : allDepts) {
System.out.println(dept.getName());
}
}
public void preAllDepts_3_2(Collection<Department> depts, String prefix, List<Department> allDepts) {
for (Department dept : depts) {
dept.setName(prefix + "┠" + dept.getName());
allDepts.add(dept);
preAllDepts_3_2(dept.getChildren(), prefix + " ", allDepts);
}
}
// ---
/**
* @return 所有最顶层的部门的列表
*/
public static List<Department> findTopLevelDepartments() {
Department dept11 = new Department();
dept11.setId(11);
dept11.setName("市场1部");
Department dept12 = new Department();
dept12.setId(12);
dept12.setName("市场2部");
Department dept1 = new Department();
dept1.setId(1);
dept1.setName("市场部");
dept1.getChildren().add(dept11);
dept1.getChildren().add(dept12);
Department dept21 = new Department();
dept21.setId(21);
dept21.setName("开发1部");
Department dept22 = new Department();
dept22.setId(22);
dept22.setName("开发2部");
Department dept2 = new Department();
dept2.setId(2);
dept2.setName("开发部");
dept2.getChildren().add(dept21);
dept2.getChildren().add(dept22);
Department itcast = new Department();
itcast.setId(1000);
itcast.setName("传智播客");
itcast.getChildren().add(dept1);
itcast.getChildren().add(dept2);
List<Department> depts = new ArrayList<Department>();
depts.add(itcast);
return depts;
}
}
实现一个窗口选择后数据跑到另一个页面并自动关闭的例题:
main.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!--
<script type="text/javascript" src="script.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
-->
<script type="text/javascript">
function openSelDept(){
var url="selDept.html";
window.showModalDialog(url,window,"dialogwidth:350px;dialogHeight:350px");
// var win= window.open(url,"selDept","menubar=no,toolbar=no");
//win.focus();
}
</script>
</head>
<body>
<form>
所属部门<input type="text" name="deptName" readonly="true"/>
<input type="button" value="选择部门" οnclick="openSelDept()"/>
</form>
<script type="text/javascript">
</script>
</body>
</html>
<html>
<head>
<base target="_self"/>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<!--
<script type="text/javascript" src="script.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
-->
<script type="text/javascript">
function selMe(deptName){
var mainWindow =window.dialogArguments;
mainWindow.document.forms[0].deptName.value=deptName;
// window.close();
}
</script>
</head>
<body>
<a href="javascript:selMe('市场部')"> 市场部</a>
<a href="javascript:selMe('开发部门')"> 开发部门</a>
</body>
</html>