Browse Source

批量归档

user5 4 năm trước cách đây
mục cha
commit
7da86a3f4f

+ 7 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/dao/ProjectFilingBatchDao.java

@@ -25,4 +25,11 @@ public interface ProjectFilingBatchDao extends CrudDao<ProjectFilingBatch> {
      * @return
      */
     ProjectFilingBatch findByFilingBatchOnProject(@Param("filingBatch") String filingBatch);
+
+    /**
+     * 根据批次id查询项目信息
+     * @param childrenBatch
+     * @return
+     */
+    List<ProjectFilingbatchRelation> getRelationList(ProjectFilingBatch childrenBatch);
 }

+ 136 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/entity/ProjectFilingBatchTree.java

@@ -0,0 +1,136 @@
+package com.jeeplus.modules.projectFilingBatch.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+
+/**
+ * @author: 大猫
+ * @create: 2021-03-29 19:55
+ **/
+public class ProjectFilingBatchTree extends DataEntity<ProjectFilingBatchTree> {
+    private String filingBatch ;//档次批号
+    private String filingName ;//批次归档名称
+    private String projectId; //项目id
+    private String projectNum; //项目编号
+    private String boxNum; //案卷号
+    private String reBoxNum;//确认案卷号
+    private String number;//报告号
+    private String information; //归档批次信息
+    private Integer status;//归档状态
+    private String createName;
+    private String pid;
+    private String url;
+    private Integer flag;
+    private String statusStr;
+
+    public String getFilingBatch() {
+        return filingBatch;
+    }
+
+    public void setFilingBatch(String filingBatch) {
+        this.filingBatch = filingBatch;
+    }
+
+    public String getFilingName() {
+        return filingName;
+    }
+
+    public void setFilingName(String filingName) {
+        this.filingName = filingName;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public String getBoxNum() {
+        return boxNum;
+    }
+
+    public void setBoxNum(String boxNum) {
+        this.boxNum = boxNum;
+    }
+
+    public String getReBoxNum() {
+        return reBoxNum;
+    }
+
+    public void setReBoxNum(String reBoxNum) {
+        this.reBoxNum = reBoxNum;
+    }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public String getInformation() {
+        return information;
+    }
+
+    public void setInformation(String information) {
+        this.information = information;
+    }
+
+    public String getPid() {
+        return pid;
+    }
+
+    public void setPid(String pid) {
+        this.pid = pid;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getProjectNum() {
+        return projectNum;
+    }
+
+    public void setProjectNum(String projectNum) {
+        this.projectNum = projectNum;
+    }
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getStatusStr() {
+        return statusStr;
+    }
+
+    public void setStatusStr(String statusStr) {
+        this.statusStr = statusStr;
+    }
+}

+ 36 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/entity/ProjectFilingbatchRelation.java

@@ -15,6 +15,10 @@ public class ProjectFilingbatchRelation extends DataEntity<ProjectFilingbatchRel
     private Integer status;//归档状态
     private String boxNum; //盒号
     private String reBoxNum;//确认盒号
+    private String projectNum;//项目编号
+    private String projectName;//项目名称
+    private String createName;//项目创建人
+    private String number;//报告号
 
     public String getFilingBatch() {
         return filingBatch;
@@ -63,4 +67,36 @@ public class ProjectFilingbatchRelation extends DataEntity<ProjectFilingbatchRel
     public void setFilingBatchStr(String filingBatchStr) {
         this.filingBatchStr = filingBatchStr;
     }
+
+    public String getProjectNum() {
+        return projectNum;
+    }
+
+    public void setProjectNum(String projectNum) {
+        this.projectNum = projectNum;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
 }

+ 190 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java

@@ -10,16 +10,21 @@ import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingBatchDao;
 import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingbatchRelationDao;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
+import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatchTree;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordsDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.SubProjectInfo;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.serialnum.service.SerialNumTplService;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.service.OfficeService;
+import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workactivity.dao.WorkActivityProcessDao;
 import com.jeeplus.modules.workactivity.entity.Activity;
@@ -28,6 +33,8 @@ import com.jeeplus.modules.workactivity.service.ActivityService;
 import com.jeeplus.modules.workactivity.service.WorkActivityProcessService;
 import com.jeeplus.modules.workactivitymenu.entity.WorkActivityMenu;
 import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
@@ -41,6 +48,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -75,6 +84,8 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
     private ActivityService activityService;
     @Autowired
     private SerialNumTplService serialNumTplService;
+    @Autowired
+    private WorkattachmentService workattachmentService;
     @Override
     public ProjectFilingBatch get(String id) {
         return super.get(id);
@@ -102,6 +113,185 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
         page.setList(projectGuidangList);
         return page;
     }
+
+
+    @Transactional(readOnly = false)
+    public Map<String,List> getList(ProjectFilingBatch projectFilingBatch, HttpServletRequest request, HttpServletResponse response) {
+        //添加查询类型(工程咨询)
+        Page<ProjectFilingBatch> page = this.findPage(new Page<ProjectFilingBatch>(request, response), projectFilingBatch);
+        //无合同状态下,获取委托方的名称
+        List<ProjectFilingBatch> list = page.getList();
+        List<ProjectFilingBatchTree> dataList = new ArrayList<>();
+        Map<String,List> map = new HashMap<>();
+        for (int i = 0; i < list.size(); i++) {
+            ProjectFilingBatchTree batchData = new ProjectFilingBatchTree();
+            ProjectFilingBatch batch = list.get(i);
+
+            batchData = getParentInfo(batch);
+            dataList.add(batchData);
+            //获取子项目信息
+            ProjectFilingBatch childrenBatch = new ProjectFilingBatch();
+            childrenBatch.setId(batch.getId());
+            //查询对应子项目数据
+            List<ProjectFilingbatchRelation> relationList = dao.getRelationList(childrenBatch);
+
+            //项目名称不为空则进行所有项目的查询和处理
+            for (ProjectFilingbatchRelation relation: relationList) {
+                ProjectFilingBatchTree treeData = getSubInfo(relation);
+                dataList.add(treeData);
+
+            }
+        }
+
+        map.put("data",dataList);
+        return map;
+    }
+
+
+    private ProjectFilingBatchTree getParentInfo(ProjectFilingBatch info){
+        ProjectFilingBatchTree treeData = new ProjectFilingBatchTree();
+        //将界面需要展示数据放入类中
+        //id
+        treeData.setId(info.getId());
+        treeData.setFilingBatch(info.getFilingBatch());
+        if(StringUtils.isNotBlank(info.getFilingName())){
+            treeData.setFilingName(info.getFilingName());
+        }else{
+            treeData.setFilingName("");
+        }
+        treeData.setCreateName(info.getCreateBy().getName());
+        treeData.setStatus(info.getFilingStatus());
+        treeData.setCreateDate(info.getCreateDate());
+        //父节点的pid设置为0
+        treeData.setPid("0");
+
+        //判断当前登陆人是否有操作权限
+        if(UserUtils.getUser().getId().equals(info.getCreateBy().getId())){
+            treeData.setFlag(1);
+        }else {
+            treeData.setFlag(0);
+        }
+        return treeData;
+    }
+
+    private ProjectFilingBatchTree getSubInfo(ProjectFilingbatchRelation relation){
+
+        ProjectFilingBatchTree treeData = new ProjectFilingBatchTree();
+
+        //将界面需要展示数据放入类中
+        //项目id
+        treeData.setId(relation.getId());
+        //项目id
+        treeData.setProjectId(relation.getProjectId());
+        //项目编号
+        treeData.setFilingBatch(relation.getProjectNum());
+        //项目名称
+        treeData.setFilingName(relation.getProjectName());
+        //项目创建人
+        treeData.setCreateName(relation.getCreateName());
+        //状态
+        treeData.setStatus(relation.getStatus());
+        treeData.setPid(relation.getFilingBatch());
+        treeData.setCreateDate(relation.getCreateDate());
+        treeData.setFlag(0);
+        return treeData;
+    }
+
+
+    @Transactional(readOnly = false)
+    public Map<String,List> getFilingBatchById(ProjectFilingBatch projectFilingBatch, HttpServletRequest request, HttpServletResponse response) {
+        //查询批次项目信息
+        List<ProjectFilingbatchRelation> relationList = dao.getRelationList(projectFilingBatch);
+
+        List<ProjectFilingBatchTree> dataList = new ArrayList<>();
+        Map<String,List> map = new HashMap<>();
+        for (int i = 0; i < relationList.size(); i++) {
+            ProjectFilingBatchTree batchData = new ProjectFilingBatchTree();
+            ProjectFilingbatchRelation batch = relationList.get(i);
+
+            batchData = getRelationInfo(batch,projectFilingBatch);
+            dataList.add(batchData);
+            //获取子项目信息
+            Workattachment workattachment = new Workattachment();
+            workattachment.setAttachmentId(batch.getProjectId());
+            workattachment.setDivIdType("_filingBatch");
+            //查询对应子项目数据
+            List<Workattachment> attachmentList = workattachmentService.findList(workattachment);
+
+            //项目名称不为空则进行所有项目的查询和处理
+            for (Workattachment attachment: attachmentList) {
+                ProjectFilingBatchTree treeData = getAttachmentInfo(attachment,batch.getProjectId());
+                dataList.add(treeData);
+
+            }
+        }
+
+        map.put("data",dataList);
+        return map;
+    }
+
+    private ProjectFilingBatchTree getRelationInfo(ProjectFilingbatchRelation relation,ProjectFilingBatch filingBatch){
+        ProjectFilingBatchTree treeData = new ProjectFilingBatchTree();
+        //将界面需要展示数据放入类中
+        //项目id
+        treeData.setId(relation.getId());
+        //项目id
+        treeData.setProjectId(relation.getProjectId());
+        //项目编号
+        treeData.setProjectNum(relation.getProjectNum());
+        //项目名称
+        treeData.setFilingName(relation.getProjectName());
+        //报告号
+        treeData.setNumber(relation.getNumber());
+        //案卷号
+        if(7 == filingBatch.getFilingStatus()){
+            treeData.setBoxNum("");
+            treeData.setStatusStr("已作废");
+        }else{
+            if(2 == filingBatch.getFilingStatus()){
+                treeData.setBoxNum("");
+                treeData.setStatusStr("审批中");
+            }else if(5 == filingBatch.getFilingStatus() || 4 == filingBatch.getFilingStatus()){
+                if("1" == filingBatch.getDelFlag()){
+                    treeData.setBoxNum("");
+                    treeData.setStatusStr("驳回");
+                }else{
+                    if(StringUtils.isNotBlank(relation.getBoxNum())){
+                        treeData.setBoxNum(relation.getBoxNum());
+                    }else{
+                        treeData.setBoxNum("");
+                    }
+                    treeData.setStatusStr("通过");
+                }
+            }
+        }
+        //状态
+        treeData.setStatus(relation.getStatus());
+        treeData.setPid("0");
+        return treeData;
+    }
+
+    private ProjectFilingBatchTree getAttachmentInfo(Workattachment attachment,String pId){
+        ProjectFilingBatchTree treeData = new ProjectFilingBatchTree();
+        //将界面需要展示数据放入类中
+        //项目编号
+        treeData.setProjectNum(attachment.getRemarks());
+        //报告号
+        treeData.setNumber(attachment.getAttachmentName());
+        //文件路径
+        treeData.setUrl(attachment.getUrl());
+        //项目名称
+        treeData.setFilingName("");
+        //案卷号
+        treeData.setBoxNum("");
+        treeData.setStatusStr("");
+        treeData.setPid(pId);
+        return treeData;
+    }
+
+
+
+
     public List<ProjectFilingBatch> findProjectIdByFiling(String id){
         return projectFilingBatchDao.findProjectIdByFiling(id);
     }

+ 24 - 4
src/main/java/com/jeeplus/modules/projectFilingBatch/web/ProjectFilingBatchController.java

@@ -48,8 +48,6 @@ public class ProjectFilingBatchController extends BaseController {
     private RuralProjectRecordsService ruralProjectRecordsService;
     @Autowired
     private ActTaskService actTaskService;
-    @Autowired
-    private UserService userService;
     @ModelAttribute
     public ProjectFilingBatch get(@RequestParam(required = false) String id) {
         ProjectFilingBatch entity = null;
@@ -63,8 +61,7 @@ public class ProjectFilingBatchController extends BaseController {
     }
 
     @RequestMapping(value = "getProcess")
-    public String getProcess(ProjectFilingBatch projectFilingBatch, Model model, HttpServletRequest request) {
-//       projectFilingBatch=projectFilingBatchService.get(projectFilingBatch.getId());
+    public String getProcess(ProjectFilingBatch projectFilingBatch, Model model) {
         model.addAttribute("processInstanceId", projectFilingBatch.getProcessinstanceId());
         return "modules/projectFilingBatch/projectFilingBacthTask";
     }
@@ -89,6 +86,19 @@ public class ProjectFilingBatchController extends BaseController {
         return "modules/projectFilingBatch/projectFilingBatchList";
     }
 
+    /**
+     * 项目列表页面
+     */
+    @RequestMapping(value = "getFilingBatchList")
+    @ResponseBody
+    public Map<String,List> getFilingBatchList(ProjectFilingBatch projectFilingBatch, HttpServletRequest request, HttpServletResponse response) {
+        if(StringUtils.isNotBlank(projectFilingBatch.getCreateName())){
+            projectFilingBatch.setCreateNameStr(projectFilingBatch.getCreateName());
+        }
+        Map<String, List> map = projectFilingBatchService.getList(projectFilingBatch, request, response);
+        return map;
+    }
+
 
     /**
      * 查看
@@ -147,6 +157,16 @@ public class ProjectFilingBatchController extends BaseController {
     }
 
     /**
+     * 项目列表页面
+     */
+    @RequestMapping(value = "getFilingBatchById")
+    @ResponseBody
+    public Map<String,List> getFilingBatchById(ProjectFilingBatch projectFilingBatch, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, List> map = projectFilingBatchService.getFilingBatchById(projectFilingBatch, request, response);
+        return map;
+    }
+
+    /**
      * 添加
      *
      * @param projectFilingBatch

+ 28 - 0
src/main/resources/mappings/modules/projectGuidang/ProjectFilingBatchDao.xml

@@ -222,4 +222,32 @@
 			filing_status= 7
 		WHERE id = #{id}
 	</delete>
+
+
+	<select id="getRelationList" resultType="com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation">
+		SELECT
+		  a.id as "id",
+		  a.create_by as "createBy.id",
+		  r.create_date as "createDate",
+		  a.update_by as "updateBy.id",
+		  a.update_date as "updateDate",
+		  a.del_flag as "delFlag",
+		  a.filing_batch as "filingBatch",
+		  a.project_id as "projectId",
+		  a.status as "status",
+		  a.box_num as "boxNum",
+		  a.re_box_num as "reBoxNum",
+		  r.project_name as "projectName",
+		  r.project_id as "projectNum",
+		  r.project_id as "projectRecordsId",
+		  prd.number as "number",
+		  su.name as "createName"
+		FROM project_flingbatch_relation a
+		LEFT JOIN project_filingbatch f on a.id=f.filing_batch
+		LEFT JOIN rural_project_records r on a.project_id=r.id
+		LEFT JOIN project_report_data prd on prd.project_id=r.id
+		LEFT JOIN sys_user su on r.create_by=su.id
+		WHERE a.filing_batch = #{id}
+		order by a.create_date desc
+	</select>
 </mapper>

+ 17 - 0
src/main/webapp/static/common/jeeplus.js

@@ -555,6 +555,23 @@ function getAuditRecordState(id)
     return result;
 }
 
+function getFilingBatchRelationStatus(id)
+{
+    var result ={};
+    result.action = true;
+    switch(id)
+    {
+        case "1":result.label = "tempstore";result.status="暂存"; result.action = false;break;
+        case "2":result.label = "auditing";result.status="归档中";break;
+        case "3":result.label = "cancel";result.status="撤回";break;
+        case "4":result.label = "reject";result.status="驳回";break;
+        case "5":result.label = "signed";result.status="已归档";break;
+        default:
+            result.label = "unknown";result.status="未知";break;
+    }
+    return result;
+}
+
 function getAuditChangeState(id)
 {
     var result ={};

+ 284 - 100
src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchList.jsp

@@ -238,11 +238,15 @@
                     <shiro:hasPermission name="project:projectRecords:export">
                         <table:exportExcel url="${ctx}/project/projectRecords/export"></table:exportExcel><!-- 导出按钮 -->
                     </shiro:hasPermission>
+
+                    <button class="nav-btn layui-btn" id="btn-expand">全部展开</button>
+                    <button class="nav-btn layui-btn-warm" id="btn-fold">全部折叠</button>
                     <button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
 
                     <div style="clear: both;"></div>
                 </div>
-                <table class="oa-table layui-table" id="contentTable1"></table>
+                <table id="permissionTable" class="layui-table" lay-filter="permissionTable"></table>
+                <!-- 分页代码 -->
                 <table:page page="${page}"></table:page>
                 <div style="clear: both;"></div>
             </div>
@@ -250,114 +254,294 @@
     </div>
     <div id="changewidth"></div>
 </div>
-
 <script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
 <script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+<script>
+    /*使用模块加载的方式 加载文件*/
+    layui.config({
+        base: '${ctx}/resoueces/css/layui/module/'
+    }).extend({
+        treetable: 'treetable-lay/treetable'
+    }).use(['layer', 'table', 'treetable'], function () {
+        var $ = layui.jquery;
+        var table = layui.table;
+        var layer = layui.layer;
+        var treetable = layui.treetable;
 
-    layui.use('table', function(){
-        layui.table.render({
-            limit:${ page.pageSize }
-            ,elem: '#contentTable1'
-            ,page: false
-            ,cols: [[
-                // {checkbox: true, fixed: true},
-                {field:'index',align:'center', title: '序号',width:"5%"}
-                ,{field:'filingBatch',align:'center',width:'20%', title: '归档批次号',templet:function(d){
-                        return "<a class=\"attention-info\" title=\"" + d.filingBatch + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看批次', '${ctx}/projectFilingBatch/projectFilingBatchInfo/view?id=" + d.id +"','95%', '95%')\">" + d.filingBatch + "</a>";
-                    }}
-                ,{field:'createName',align:'center', title: '创建人',  width:'20%'}
-                ,{field:'createDate',align:'center', title: '创建日期',  width:'20%'}
-                ,{align:'center', title: '状态',  width:'20%',templet:function(d){
-                        var st = getAuditState(d.filingStatus);
-                        if(st.action)
-                            var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/projectFilingBatch/projectFilingBatchInfo/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-                        else
-                            var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-                        return xml;
-                    }}
-                ,{field:'op',align:'center',title:"操作",width:'15%',templet:function(d){
-                        ////对操作进行初始化
-                        var xml="";
-                        if(d.canedit1 != undefined && d.canedit1 =="1")
-                        {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('修改项目', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form?id=" + d.id +"','95%', '95%','','送审,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
-                        }
-                        if(d.canedit2 != undefined && d.canedit2 =="1")
-                        {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('调整项目', '${ctx}/projectFilingBatch/projectFilingBatchInfo/modify?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
-                        }
-                        if(d.canrecall != undefined && d.canrecall =="1")
-                        {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('调整项目', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
-                        }
-                        if(d.candel != undefined && d.candel =="1")
-                        {
-                            xml+="<a href=\"${ctx}/projectFilingBatch/projectFilingBatchInfo/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";
-                        }
-                        if(d.cancancel != undefined && d.cancancel =="1")
-                        {
-                            xml+="<a href=\"${ctx}/projectFilingBatch/projectFilingBatchInfo/revoke?id=" + d.id + "&processInstanceId=" + d.procId + "&filingStatus="+d.filingStatus+ "\" onclick=\"return confirmx('确认要撤回该项目审批吗?', this.href)\" class=\"op-btn op-btn-cancel\" ><i class=\"glyphicon glyphicon-share-alt\"></i> 撤回</a>";
-                        }
-                        if(d.canedit3 != undefined && d.canedit3 =="1")
-                        {
-                            <%--xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogre('项目变更管理', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form?alterBeforeRecords.id='+encodeURIComponent('" + d.id + "'),'95%','95%','','送审,暂存,关闭')\" style=\"color: white;background: darkseagreen\" class=\"op-btn op-btn-op-btn-revert\" ><i class=\"fa fa-edit\"></i> 变更</a>";--%>
-                        }
-                        // if(d.deleteAdmin != undefined && d.deleteAdmin =="1")
-                        // {
-                            <%--xml+="<a href=\"#\" onclick=\"openDialogre('修改项目', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form?id=" + d.id + "','95%', '95%','','提交,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改4</a>";--%>
-                            <%--xml+="<a href=\"${ctx}/projectFilingBatch/projectFilingBatchInfo/adminDelete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";--%>
-                        // }
-                        return xml;
+        // 渲染表格
+        var renderTable = function () {
+            var filingName = $("#filingName").val();
+            var filingStatus = $("#filingStatus").val();
 
-                    }}
-            ]]
-            ,data: [
-                <c:if test="${ not empty page.list}">
-                <c:forEach items="${page.list}" var="projectFilingBatch" varStatus="index">
-                <c:if test="${index.index != 0}">,</c:if>
-                {
-                    "index":"${index.index+1}"
-                    ,"id":"${projectFilingBatch.id}"
-                    ,"filingBatch":"${projectFilingBatch.filingBatch}"
-                    ,"createName":"${projectFilingBatch.createBy.name}"
-                    ,"createDate":"<fmt:formatDate value="${projectFilingBatch.createDate}" pattern="yyyy-MM-dd"/>"
-                    ,"filingStatus":"${projectFilingBatch.filingStatus}"
-                    ,"procId":"${projectFilingBatch.processinstanceId}"
-                    <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectFilingBatch.createBy.id}">
-                    <shiro:hasPermission name="projectFilingBatch:projectFilingBatchInfo:del">,"candel":	<c:choose><c:when test="${projectFilingBatch.filingStatus == 1 or projectFilingBatch.filingStatus == 3 or projectFilingBatch.filingStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
-                    <shiro:hasPermission name="projectFilingBatch:projectFilingBatchInfo:edit">,"canedit1":	<c:choose><c:when test="${projectFilingBatch.filingStatus == 1 }">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
-                    ,"canedit2":<c:choose><c:when test="${projectFilingBatch.filingStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
-                    ,"canrecall":<c:choose><c:when test="${projectFilingBatch.filingStatus == 3}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
-                    </shiro:hasPermission>
-                    ,"cancancel":<c:choose><c:when test="${projectFilingBatch.filingStatus == 2 && fns:getUser().id == projectFilingBatch.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
-                    ,"deleteAdmin":<c:choose><c:when test="${projectFilingBatch.filingStatus == 5}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
-                    </c:when>
-                    <c:otherwise>
-                    ,"candel":"0"
-                    ,"canedit1":"0"
-                    ,"canedit2":"0"
-                    ,"canrecall":"0"
-                    ,"cancancel":"0"
-                    </c:otherwise>
-                    </c:choose>
-                    <shiro:hasPermission name="projectFilingBatch:projectFilingBatchInfo:edit">,"canedit3":<c:choose><c:when test="${projectFilingBatch.filingStatus == 5 }">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+            var beginDate = $("#beginDate").val();
+            var endDate = $("#endDate").val();
+            var createId = $("#createId").val();
+            var createName = $("#createName").val();
+            layer.load(2);
+            treetable.render({
+                treeColIndex: 0,//树形图标显示在第几列
+                treeSpid: 0,//最上级的父级id
+                treeIdName: 'permissionId',//id字段的名称
+                treePidName: 'pid',//pid字段的名称
+                treeDefaultClose: true,//是否默认折叠
+                treeLinkage: true,//父级展开时是否自动展开所有子级
+                elem: '#permissionTable',
+                url: '${ctx}/projectFilingBatch/projectFilingBatchInfo/getFilingBatchList?filingName='+filingName+'&pageNo=${page.pageNo}&filingStatus='+filingStatus+'&beginDate='+beginDate+'&endDate='+endDate+'&createId='+createId+'&createName='+createName,
+                page: false,
+                cols: [[
+                    /*{type: 'numbers', align:'center', title: '序号' ,width:80},*/
+                    {field: 'filingBatch', title: '归档批次号/项目编号',templet:function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.filingBatch+"</font>";
+                            }else{
+                                return "<font>"+d.filingBatch+"</font>";
+                            }
+                        }},
+                    {field: 'filingName', align:'center', title: '批次名称/项目名称',templet:function(d){
+                            if(0 == d.pid){
+                                return "<a class=\"attention-info pid\" title=\"" + d.filingName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看批次信息', '${ctx}/projectFilingBatch/projectFilingBatchInfo/view?id=" + d.id +"','95%', '95%')\">" + d.filingName + "</a>";
+                            }else{
+                                return "<a class=\"attention-info\" title=\"" + d.filingName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.projectId +"','95%', '95%')\">" + d.filingName + "</a>";
+                            }
+                        }},
+                    {field: 'createName', align:'center', title: '创建人',width:80,templet: function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.createName+"</font>";
+                            }else{
+                                return "<font>"+d.createName+"</font>";
+                            }
+                        }},
+                    {field: 'createDate', align:'center', title: '创建日期',width:100,templet: function(d){
+                            var date=d.createDate;
+
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+layui.util.toDateString(date,'yyyy-MM-dd')+"</font>";
+                            }else{
+                                return "<font>"+layui.util.toDateString(date,'yyyy-MM-dd')+"</font>";
+                            }
+                        }},
+                    {align:'center', title: '状态',  width:80,templet:function(d){
+                            if(d.pid ==0){
+                                var st = getAuditState(""+d.status);
+                                if(st.action)
+                                    var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/projectFilingBatch/projectFilingBatchInfo/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                                else
+                                    var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                                return xml;
+                            }else{
+                                var st = getFilingBatchRelationStatus(""+d.status);
+                                var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                                return xml;
+                            }
+                        }},
+                    {templet: complain, align:'center', title: '操作' ,width:200}
+                ]],
+                done: function () {
+                    layer.closeAll('loading');
+                }
+            });
+        };
+
+        renderTable();
+
+        //触发三个button按钮
+        $('#btn-expand').click(function () {
+            treetable.expandAll('#permissionTable');
+        });
+
+        $('#btn-fold').click(function () {
+            treetable.foldAll('#permissionTable');
+        });
+
+        $('#btn-refresh').click(function () {
+            renderTable();
+        });
+
+
+        function complain(d){//操作中显示的内容
+            var xml = '';
+            if(d.pid=="0") {
+                if(d.flag == 1){
+                    if(d.status == 1){
+                        xml+="<a href=\"#\" onclick=\"openDialogre('修改批次信息', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form?id=" + d.id +"','95%', '95%','','送审,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
+                    }
+                    if(d.status == 2){
+                        xml+="<a href=\"${ctx}/projectFilingBatch/projectFilingBatchInfo/revoke?id=" + d.id + "&filingStatus="+d.status+ "\" onclick=\"return confirmx('确认要撤回该项目审批吗?', this.href)\" class=\"op-btn op-btn-cancel\" ><i class=\"glyphicon glyphicon-share-alt\"></i> 撤回</a>";
+                    }
+                    if(d.status == 3){
+                        //撤回操作
+                        xml+="<a href=\"#\" onclick=\"openDialogre('调整批次信息', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
+                    }
+                    if(d.status == 4){
+                        //驳回操作
+                        xml+="<a href=\"#\" onclick=\"openDialogre('调整批次信息', '${ctx}/projectFilingBatch/projectFilingBatchInfo/modify?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
+                    }
+                    if(d.status == 1 || d.status == 3 || d.status == 4){
+                        xml+="<a href=\"${ctx}/projectFilingBatch/projectFilingBatchInfo/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";
+                    }
+                }
+                return[xml].join('');
+            }else{
+                var xml = '';
+                return[xml].join('');
+            }
+        }
+        //监听工具条
+        table.on('tool(permissionTable)', function (obj) {
+            var data = obj.data;
+            var layEvent = obj.event;
+            if(data.permissionName!=null){
+                if (layEvent === 'del') {
+                    layer.msg('删除' + data.id);
+                } else if (layEvent === 'edit') {
+                    layer.msg('修改' + data.id);
                 }
-                </c:forEach>
-                </c:if>
-            ]
+            }
         });
-    })
+    });
 
-    resizeListTable();
-    $("a").on("click",addLinkVisied);
 </script>
 <script>
-    resizeListWindow2();
-    $(window).resize(function(){
-        resizeListWindow2();
-    });
+    function openDialogres(title,url,width,height,target){
+
+        if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+            width='auto';
+            height='auto';
+        }else{//如果是PC端,根据用户设置的width和height显示。
+
+        }
+        top.layer.open({
+            type: 2,
+            area: [width, height],
+            title: title,
+            skin: 'three-btns',
+            maxmin: true, //开启最大化最小化按钮
+            content: url ,
+            btn: ['提交','暂存','关闭'],
+            btn1: function(index, layero){
+                var body = top.layer.getChildFrame('body', index);
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                var inputForm = body.find('#inputForm');
+                var top_iframe;
+                if(target){
+                    top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                }else{
+                    top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                }
+                inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                if(iframeWin.contentWindow.doSubmit(1) ){
+                    //top.layer.close(index);//关闭对话框。
+                    setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                }
+            },
+            btn2:function(index,layero){
+                var body = top.layer.getChildFrame('body', index);
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                var inputForm = body.find('#inputForm');
+                var top_iframe;
+                if(target){
+                    top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                }else{
+                    top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                }
+                inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                if(iframeWin.contentWindow.doSubmit(2) ){
+                    // top.layer.close(index);//关闭对话框。
+                    setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                }
+                return false;
+            },
+            btn3: function(index){
+            }
+        });
+    }
+    function openDialogreAudit(title,url,width,height,target){
+
+        if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+            width='auto';
+            height='auto';
+        }else{//如果是PC端,根据用户设置的width和height显示。
+
+        }
+        top.layer.open({
+            type: 2,
+            area: [width, height],
+            title: title,
+            skin: 'three-btns',
+            maxmin: true, //开启最大化最小化按钮
+            content: url ,
+            btn: ['提交','关闭'],
+            btn1: function(index, layero){
+                var body = top.layer.getChildFrame('body', index);
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                var inputForm = body.find('#inputForm');
+                var top_iframe;
+                if(target){
+                    top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                }else{
+                    top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                }
+                inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                if(iframeWin.contentWindow.doSubmit(1) ){
+                    top.layer.close(index);//关闭对话框。
+                    setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                }
+            },
+            btn2: function(index){
+            }
+        });
+    }
+    // 确认对话框
+    function confirmxRefresh(mess, href){
+        top.layer.confirm(mess, {icon: 3, title:'系统提示'}, function(index){
+            //do something
+            if (typeof href == 'function') {
+                href();
+            }else{
+                resetTip(); //loading();
+                $.ajax({
+                    url:href,
+                    data:$('#loginForm').serialize(),
+                    type:"post",
+                    success:function(data){
+                        if(data.status){
+                            parent.layer.msg(data.msg,{icon:1});
+                        }else {
+                            parent.layer.msg(data.msg,{icon:2});
+                        }
+                        //parent.refreshTrees();
+                        location = '${ctx}/project/projectRecords/list';
+                    }
+                });
+            }
+            top.layer.close(index);
+        });
+        return false;
+    }
+
+    // 确认对话框
+    function confirmxHintContent(mess, href){
+        $.ajax({
+            url:href,
+            data:$('#loginForm').serialize(),
+            type:"post",
+            success:function(data){
+                parent.layer.open({
+                    title: '提示内容'
+                    ,shade: 0
+                    ,maxmin: true
+                    ,content: data.msg
+                });
+            }
+        });
+    }
 </script>
-<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
-<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
 </body>
 </html>

+ 112 - 62
src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchView.jsp

@@ -229,76 +229,126 @@
                         <form:hidden path="createBy.id" htmlEscape="false"   readonly="true"  class="form-control  layui-input"/>
                     </div>
                 </div>
-                <div class="layui-item layui-col-sm12 lw7">
-                    <label class="layui-form-label">归档信息:</label>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">归档名称:</label>
                     <div class="layui-input-block">
-                        <form:textarea path="information" htmlEscape="false" readonly="true" rows="4" maxlength="200" class="form-control "/>
+                        <form:input path="filingName" htmlEscape="false" readonly="true"  class="form-control layui-input"/>
                     </div>
                 </div>
-            </div>
-
-            <div class="form-group layui-row">
-                <div class="form-group-label"><h2>归档项目信息</h2></div>
-<%--                <div class="layui-item nav-btns">--%>
-<%--                    <sys:gridselectClientLink url="${ctx}/workclientinfo/workClientInfo/clientInfolist" id="constructionOrgList"   title="选择项目"--%>
-<%--                                              cssClass="form-control required" fieldLabels="${fns:urlEncode('项目编号')}" fieldKeys="name"  searchLabel="${fns:urlEncode('客户名称')}" searchKey="name"></sys:gridselectClientLink>--%>
-<%--                </div>--%>
-                <div class="layui-item layui-col-xs12 form-table-container">
-                    <table id="contentTable2" class="table table-bordered table-condensed details">
-                        <thead>
-                        <tr>
-                            <th class="hide"></th>
-                            <th style="text-align: center" width="16%">归档项目编号</th>
-                            <th style="text-align: center" width="16%">归档项目名称</th>
-                            <th style="text-align: center" width="16%">报告号</th>
-                            <th style="text-align: center" width="16%">案卷号</th>
-                            <th style="text-align: center" width="16%">确认案卷号</th>
-                            <th style="text-align: center" width="16%">状态</th>
-<%--                            <th width="20%">操作</th>--%>
-                        </tr>
-                        </thead>
-                        <tbody id="workConstructionLinkmanList">
-                        <c:choose>
-                            <c:when test="${not empty projectFilingBatch}">
-                                <c:forEach items="${projectFilingBatch.project}" var="project" varStatus="index">
-                                    <tr>
-                                        <td>
-                                                ${project.projectId}
-                                        </td>
-                                        <td>
-                                                ${project.projectName}
-                                        </td>
-                                        <td>
-                                                ${project.projectReportNumber}
-                                        </td>
-                                        <td>
-                                                ${project.boxNum}
-                                        </td>
-                                        <td>
-                                                ${project.reBoxNum}
-                                        </td>
-                                        <td>
-                                                ${project.delFlag}
-                                        </td>
-                                    </tr>
-                                </c:forEach>
-                            </c:when>
-                            <c:otherwise>
-                                <tr>
-                                    <td colspan="7">
-                                        暂无数据
-                                    </td>
-                                </tr>
-                            </c:otherwise>
-                        </c:choose>
-                        </tbody>
-                    </table>
-
+                <div class="layui-item layui-col-sm12 lw7 with-textarea">
+                    <label class="layui-form-label">归档说明:</label>
+                    <div class="layui-input-block">
+                        <form:textarea path="information" htmlEscape="false" readonly="true" rows="4" maxlength="255" class="form-control "/>
+                    </div>
                 </div>
             </div>
 
+        <div class="form-group layui-row">
+            <div class="form-group-label"><h2>归档项目信息</h2></div>
+            <table id="permissionTable" class="layui-table" lay-filter="permissionTable"></table>
+        </div>
         </form:form>
     </div>
 </div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+<script>
+    /*使用模块加载的方式 加载文件*/
+    layui.config({
+        base: '${ctx}/resoueces/css/layui/module/'
+    }).extend({
+        treetable: 'treetable-lay/treetable'
+    }).use(['layer', 'table', 'treetable'], function () {
+        var $ = layui.jquery;
+        var table = layui.table;
+        var layer = layui.layer;
+        var treetable = layui.treetable;
+        var id =$("#id").val();
+        // 渲染表格
+        var renderTable = function () {
+            layer.load(2);
+            treetable.render({
+                treeColIndex: 0,//树形图标显示在第几列
+                treeSpid: 0,//最上级的父级id
+                treeIdName: 'permissionId',//id字段的名称
+                treePidName: 'pid',//pid字段的名称
+                treeDefaultClose: false,//是否默认折叠
+                treeLinkage: true,//父级展开时是否自动展开所有子级
+                elem: '#permissionTable',
+                url: '${ctx}/projectFilingBatch/projectFilingBatchInfo/getFilingBatchById?id='+id,
+                page: false,
+                cols: [[
+                    {field: 'projectNum', title: '项目编号/文件类型',templet:function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.projectNum+"</font>";
+                            }else{
+                                return "<font>"+d.projectNum+"</font>";
+                            }
+                        }},
+                    {field: 'number', align:'center', title: '报告号/文件名',templet:function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.number+"</font>";
+                            }else{
+                                return "<font>"+d.number+"</font>";
+                            }
+                        }},
+                    {field: 'filingName', align:'center', title: '项目名称',templet:function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.filingName+"</font>";
+                            }else{
+                                return "<font>"+d.filingName+"</font>";
+                            }
+                        }},
+                    {field: 'boxNum', align:'center', title: '案卷号',templet: function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.boxNum+"</font>";
+                            }else{
+                                return "<font>"+d.boxNum+"</font>";
+                            }
+                        }},
+                    {field: 'statusStr', align:'center', title: '状态',width:120,templet: function(d){
+                            if(0 == d.pid){
+                                return "<font style = 'font-size:14px;font-weight:500;'>"+d.statusStr+"</font>";
+                            }else{
+                                return "<font>"+d.statusStr+"</font>";
+                            }
+                        }}
+                ]],
+                done: function () {
+                    layer.closeAll('loading');
+                }
+            });
+        };
+
+        renderTable();
+
+        //触发三个button按钮
+        $('#btn-expand').click(function () {
+            treetable.expandAll('#permissionTable');
+        });
+
+        $('#btn-fold').click(function () {
+            treetable.foldAll('#permissionTable');
+        });
+
+        $('#btn-refresh').click(function () {
+            renderTable();
+        });
+
+        //监听工具条
+        table.on('tool(permissionTable)', function (obj) {
+            var data = obj.data;
+            var layEvent = obj.event;
+            if(data.permissionName!=null){
+                if (layEvent === 'del') {
+                    layer.msg('删除' + data.id);
+                } else if (layEvent === 'edit') {
+                    layer.msg('修改' + data.id);
+                }
+            }
+        });
+    });
+
+</script>
 </body>
 </html>