Просмотр исходного кода

工程咨询、造价审核 项目成员管理模块

user5 4 лет назад
Родитель
Сommit
fab69d4858

+ 209 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsUserController.java

@@ -0,0 +1,209 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.ruralprojectrecords.web;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.ruralprojectrecords.dao.RuralWorkProjectUserDao;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.utils.DictUtils;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
+import com.jeeplus.modules.workstaff.dao.WorkStaffAchivesDao;
+import com.jeeplus.modules.workstaff.entity.WorkStaffBasicInfo;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 造价审核项目成员管理Controller
+ * @author ppt
+ * @version 2018-05-02
+ */
+@Controller
+	@RequestMapping(value = "${adminPath}/ruralProject/ruralCostProjectRecordUsers")
+public class RuralCostProjectRecordsUserController extends BaseController {
+
+	@Autowired
+	private RuralProjectRecordsService projectRecordsService;
+	@Autowired
+	private WorkStaffAchivesDao workStaffAchivesDao;
+
+	@Autowired
+	private WorkContractInfoService contractInfoService;
+	@Autowired
+	private RuralWorkProjectUserDao workProjectUserDao;
+	
+	@ModelAttribute
+	public RuralProjectRecords get(@RequestParam(required=false) String id) {
+		RuralProjectRecords entity = null;
+		if (StringUtils.isNotBlank(id)){
+			entity = projectRecordsService.get(id);
+		}
+		if (entity == null){
+			entity = new RuralProjectRecords();
+		}
+		return entity;
+	}
+	
+	/**
+	 * 项目列表页面
+	 */
+	@RequiresPermissions("ruralProject:ruralCostProjectRecordUsers:list")
+	@RequestMapping(value = {"list", ""})
+	public String list(RuralProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
+		projectRecords.setProjectStatus(5);
+		//添加查询类型(造价审核)
+		projectRecords.setProjectType("2");
+		Page<RuralProjectRecords> page = projectRecordsService.findPageByStatus(new Page<RuralProjectRecords>(request, response), projectRecords);
+		model.addAttribute("page", page);
+		return "modules/ruralprojectrecords/cost/ruralCostProjectRecordUsersList";
+	}
+
+	/**
+	 * 查看,增加,编辑项目表单页面
+	 */
+	@RequestMapping(value = "form")
+	public String form(RuralProjectRecords projectRecords, Model model) {
+		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
+			//设置合同信息
+			WorkContractInfo workContractInfo = contractInfoService.get(projectRecords.getWorkContractInfo().getId());
+			workContractInfo.setConstructionProjectTypeStr(DictUtils.getDictLabel(String.valueOf(workContractInfo.getConstructionProjectType()), "construction_project_type", ""));
+			projectRecords.setWorkContractInfo(workContractInfo);
+			//设置项目组成员
+			projectRecordsService.queryUserNames(projectRecords);
+			//设置委托方联系人信息
+			projectRecordsService.queryLinkmanInfos(projectRecords);
+			List<User> users = workProjectUserDao.isDelFalg(projectRecords.getId(),"");
+			String userIds = "";
+			String delUserIds = "";
+			for (User user :users){
+				if (user.getDelFlag().equals("0")){
+					userIds += user.getId()+",";
+				}else {
+					delUserIds += user.getId()+",";
+				}
+			}
+			projectRecords.setUserIds(userIds);
+			projectRecords.setDelUserIds(delUserIds);
+			model.addAttribute("users", users);
+		}
+
+		model.addAttribute("projectRecords", projectRecords);
+		return "modules/ruralprojectrecords/cost/ruralCostProjectRecordUsersForm";
+	}
+	/**
+	 * 查看,增加,编辑项目表单页面
+	 */
+	@RequestMapping(value = "getProjectRecordUsers")
+	@ResponseBody
+	@Transactional(readOnly = false)
+	public List<Map<String,Object>> getProjectRecordUsers(@RequestParam(required=false) String projectId,@RequestParam(required=false) String ids) {
+		List<Map<String,Object>> list = new ArrayList<>();
+		String[] idArr = ids.split(",");
+		List<User> users = workProjectUserDao.isDelFalg(projectId,"");
+		List<User> userList = new ArrayList<>();
+		String userIds = "";
+		String delUserIds = "";
+		for (User user :users){
+			if (user.getDelFlag().equals("0")){
+				userIds += user.getId()+",";
+			}else {
+				if (ids.contains(user.getId())){
+					delUserIds += user.getId()+",";
+				}
+			}
+		}
+		String names = "";
+		for (String id : idArr){
+			User user = UserUtils.get(id);
+			Map<String,Object> map = new HashMap<>();
+			if (!userIds.contains(id) && !delUserIds.contains(id)){
+				userList.add(new User(id));
+				map.put("id",StringUtils.isBlank(user.getId())?"":user.getId());
+				map.put("name",StringUtils.isBlank(user.getName())?"":user.getName());
+				map.put("officeId",StringUtils.isBlank(user.getOffice().getTopCompany())?"":user.getOffice().getTopCompany());
+				map.put("no",StringUtils.isBlank(user.getNo())?"":user.getNo());
+				map.put("mobile",StringUtils.isBlank(user.getMobile())?"":user.getMobile());
+				map.put("email",StringUtils.isBlank(user.getEmail())?"":user.getEmail());
+				map.put("msg","msg");
+				WorkStaffBasicInfo workStaffBasicInfo=workStaffAchivesDao.getJob(id);
+				if(workStaffBasicInfo!=null&&workStaffBasicInfo.getJobGrade()!=null){
+					map.put("jobName",StringUtils.isBlank(workStaffBasicInfo.getJobGrade().getName())?"":workStaffBasicInfo.getJobGrade().getName());
+				}
+				list.add(map);
+			}else if(delUserIds.contains(id)){
+				map.put("id",StringUtils.isBlank(user.getId())?"":user.getId());
+				map.put("msg","del");
+				list.add(map);
+			}else {
+				names += StringUtils.isBlank(user.getName())?"":(user.getName()+",");
+			}
+		}
+
+		if (userList!=null && userList.size()!=0){
+			RuralProjectRecords projectRecords = new RuralProjectRecords();
+			projectRecords.setId(projectId);
+			projectRecords.setUsers(userList);
+			workProjectUserDao.insertUsers(projectRecords);
+		}
+		if (delUserIds!=null){
+			RuralProjectRecords projectRecords = new RuralProjectRecords();
+			projectRecords.setId(projectId);
+			for (String id :delUserIds.split(",")){
+				projectRecords.setUserId(id);
+				projectRecords.setDelFlag("0");
+//				workProjectUserDao.deleteUsers(projectRecords);
+				workProjectUserDao.reInsertUser(projectRecords);
+			}
+
+		}
+		if (StringUtils.isNotBlank(names)){
+			Map<String,Object> map = new HashMap<>();
+			names = names.substring(0,names.length()-1);
+			names += "已在成员明细中!";
+			map.put("msg",names);
+			list.add(map);
+		}
+		return list;
+	}
+
+	/**
+	 * 查看,增加,编辑项目表单页面
+	 */
+	@RequestMapping(value = "removeProjectRecordUsers")
+	@ResponseBody
+	@Transactional(readOnly = false)
+	public Map<String,Object> removeProjectRecordUsers(@RequestParam(required=false) String projectId,@RequestParam(required=false) String userId) {
+		RuralProjectRecords projectRecords = new RuralProjectRecords();
+		projectRecords.setId(projectId);
+		projectRecords.setUserId(userId);
+		projectRecords.setDelFlag("1");
+		int count = workProjectUserDao.deleteUsers(projectRecords);
+		Map<String,Object> map = new HashMap<>();
+		if (count == 1){
+			map.put("msg",true);
+		}else {
+			map.put("msg",false);
+		}
+		return map;
+	}
+}

+ 6 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -268,6 +268,9 @@
 			<if test="leaderNameStr !=null and leaderNameStr !=''">
 				AND su.name like concat(concat('%',#{leaderNameStr}),'%')
 			</if>
+			<if test="projectType !=null and projectType !=''">
+				AND a.project_type = #{projectType}
+			</if>
 			AND w.is_master = '1' AND  a.status  = '5' AND a.del_flag='0'
 			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
                 AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND (s.id = #{currentUser.company.id} or find_in_set( #{currentUser.company.id}, s.parent_ids ) ))${sqlMap.dsf} )
@@ -312,6 +315,9 @@
             <if test="leaderNameStr !=null and leaderNameStr !=''">
                 AND su.name like concat(concat('%',#{leaderNameStr}),'%')
             </if>
+            <if test="projectType !=null and projectType !=''">
+                AND a.project_type = #{projectType}
+            </if>
             AND w.is_master = '1' AND  a.status  = '5' AND a.del_flag='0'
             <if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
                 AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND (s.id = #{currentUser.company.id} or find_in_set( #{currentUser.company.id}, s.parent_ids ) ))${sqlMap.dsf} )

+ 253 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordUsersForm.jsp

@@ -0,0 +1,253 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+
+		function changeUser(ids,names) {
+		    var projectId = $("#id").val();
+            $.ajax({
+                type:'POST',
+                dataType:'json',
+                url:'${ctx}/ruralProject/ruralCostProjectRecordUsers/getProjectRecordUsers',
+                data:{"ids":ids,"projectId":projectId},
+                cache:false,
+                success: function(data) {
+                    var str = "";
+                    var userIds = $("#userIds").val();
+                    var msgInfo = "";
+                    for (var i=0; i<data.length; i++) {
+                        var msg = data[i].msg;
+                        if(msg == "del") {
+                            var id = data[i].id;
+                            $("#delFlag"+id).val("正常");
+                            $("#del"+id).css("display","inline-block");
+                        } else if (msg == "msg") {
+                            var id = data[i].id;
+                            var name = data[i].name;
+                            var office = data[i].officeId;
+                            var no = data[i].no;
+                            var mobile = data[i].mobile;
+                            var email = data[i].email;
+                            var jobName = data[i].jobName;
+                            userIds += id + ",";
+                            str += '<tr id="'+id+'">' +
+                                '<td>' +
+                                no +
+                                '</td>' +
+                                '<td>' +
+                                name +
+                                '</td>' +
+                                '<td>' +
+                                office +
+                                '</td>' +
+                                '<td>' +
+                                jobName+
+                                '</td>' +
+                                '<td>' +
+                                mobile +
+                                '</td>' +
+                                '<td>' +
+                                email +
+                                '</td>' +
+                                '<td style="padding: 0px">' +
+                                '<input id="delFlag'+id+'" name="delFlag" type="text"  readonly="true" value="正常" class="form-control layui-input"/>' +
+                                '</td>' +
+                                '<td>' +
+                                '<span id="del'+id+'" onclick="delRow(this,\''+id+'\')" title="移除" class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;移除</span>' +
+                                '</td>' +
+                                '</tr>';
+                        } else {
+                            msgInfo = msg;
+                        }
+                    }
+                    $("#usersList").append(str);
+                    if (msgInfo!= null && msgInfo != '' && msgInfo!= undefined){
+                        parent.layer.msg("新增项目成员成功!"+msgInfo,{icon:1});
+                    }else {
+                        parent.layer.msg("新增项目成员成功!",{icon:1});
+                    }
+                },
+                error:function () {
+                    parent.layer.msg("获取用户信息失败!!!",{icon:2});
+                    parent.layer.close(loadingMessage);
+                }
+            });
+        }
+
+        function delRow(obj,id){
+            var projectId = $("#id").val();
+            $.ajax({
+                type:'POST',
+                dataType:'json',
+                url:'${ctx}/ruralProject/ruralCostProjectRecordUsers/removeProjectRecordUsers',
+                data:{"userId":id,"projectId":projectId},
+                cache:false,
+                success: function(data) {
+                    if (data!= null && data != '' && data!= undefined){
+                        var msg = data.msg;
+                        if (msg){
+                            parent.layer.msg("移除用户成功!!!",{icon:1});
+                        }else {
+                            parent.layer.msg("项目负责人不能被移除!!!",{icon:2});
+                        }
+                    }else {
+                        parent.layer.msg("移除用户失败!!!",{icon:2});
+                    }
+                },
+                error:function () {
+                    parent.layer.msg("移除用户失败!!!",{icon:2});
+                }
+            });
+		    $("#delFlag"+id).val("移除");
+		    $("#del"+id).css("display","none");
+        }
+        function getSelectUserIds() {
+            return "";
+        }
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="projectRecords" action="${ctx}/ruralProject/ruralCostProjectRecordUsers/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<form:hidden path="workContractInfo.client.id" id="contractClientId" value="${workContractInfo.client.id}"/>
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>项目成员信息</h2></div>
+				<div class="layui-item layui-col-sm12 lw6">
+					<label class="layui-form-label">项目名称:</label>
+					<div class="layui-input-block">
+						<input readonly="true" htmlEscape="false" class="form-control layui-input"  value="${projectRecords.projectName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目编号:</label>
+					<div class="layui-input-block">
+						<input readonly="true" htmlEscape="false" class="form-control layui-input"  value="${projectRecords.projectId}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目负责人:</label>
+					<div class="layui-input-block">
+						<input readonly="true" htmlEscape="false" class="form-control layui-input"  value="${projectRecords.leaderNameStr}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">合同名称:</label>
+					<div class="layui-input-block">
+						<input readonly="true" htmlEscape="false" class="form-control layui-input"  value="${projectRecords.workContractInfo.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">委托方:</label>
+					<div class="layui-input-block">
+						<input readonly="true" htmlEscape="false" class="form-control layui-input"  value="${projectRecords.workContractInfo.client.name}"/>
+					</div>
+				</div>
+			</div>
+
+	<div class="form-group layui-row">
+		<div class="form-group-label"><h2>成员明细</h2></div>
+		<div class="layui-item nav-btns">
+			<sys:treeselectusers id="members" name="projectMembers" value="${projectRecords.memberIds}" labelName="memberNameStr" labelValue="${projectRecords.memberNameStr}"
+								 title="用户" url="/sys/office/treeDataAll?type=3" checked="true" cssClass="form-control required" allowClear="true" notAllowSelectParent="true"/>
+			<%--<a class="nav-btn nav-btn-add" onclick="addRow('#workAccountList', workAccountListRowIdx, workAccountListTpl);workAccountListRowIdx = workAccountListRowIdx + 1;" title="新增"><i class="fa fa-plus"></i>&nbsp;新增</a>--%>
+		</div>
+		<div class="layui-item layui-col-xs12 form-table-container" >
+			<table  class="table table-bordered table-condensed no-bottom-margin details">
+				<thead>
+				<tr>
+					<th>工号</th>
+					<th>姓名</th>
+					<th>部门</th>
+					<th>职级</th>
+					<th>手机号</th>
+					<th>邮箱</th>
+					<th width="80px;">状态</th>
+					<th>操作</th>
+				</tr>
+				</thead>
+				<tbody id="usersList">
+				<c:if test="${not empty users}">
+					<c:forEach items="${users}" var="user">
+						<tr id="${user.id}">
+							<td>
+									${user.no}
+							</td>
+							<td>
+									${user.name}
+							</td>
+							<td>
+									${user.office.name}
+							</td>
+							<td>
+									${user.basicInfo.jobGrade.name}
+							</td>
+							<td>
+									${user.mobile}
+							</td>
+							<td>
+									${user.email}
+							</td>
+							<td style="padding:0px;">
+								<c:choose>
+									<c:when test="${user.delFlag == 0}">
+										<input id="delFlag${user.id}" name="delFlag" type="text"  readonly="true" value="正常" class="form-control layui-input"/>
+									</c:when>
+									<c:otherwise>
+										<input id="delFlag${user.id}" name="delFlag" type="text"  readonly="true" value="移除" class="form-control layui-input"/>
+									</c:otherwise>
+								</c:choose>
+							</td>
+							<td>
+								<c:if test="${user.delFlag == 0}">
+									<span id="del${user.id}" onclick="delRow(this,'${user.id}')" title="移除" class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;移除</span>
+								</c:if>
+								<c:if test="${user.delFlag != 0}">
+									<span id="del${user.id}" onclick="delRow(this,'${user.id}')" title="移除" style="display: none;" class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;移除</span>
+								</c:if>
+
+							</td>
+						</tr>
+					</c:forEach>
+				</c:if>
+				</tbody>
+			</table>
+		</div>
+		<div class="form-group layui-row page-end"></div>
+	</div>
+	</form:form>
+	</div>
+</div>
+</body>
+</html>

+ 184 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordUsersList.jsp

@@ -0,0 +1,184 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body >
+	<div class="wrapper wrapper-content">
+		<sys:message content="${message}"/>
+		<div class="layui-row">
+			<div class="full-width fl">
+				<div class="contentShadow layui-row" id="queryDiv">
+					<form:form id="searchForm" modelAttribute="ruralProjectRecords" action="${ctx}/ruralProject/ruralCostProjectRecordUsers/" method="post" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+
+						<div class="commonQuery">
+							<div class="layui-item query athird lw6">
+								<label class="layui-form-label">项目编号:</label>
+								<div class="layui-input-block with-icon">
+									<form:input path="projectId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+								</div>
+							</div>
+							<div class="layui-item query athird lw6">
+								<label class="layui-form-label">项目名称:</label>
+								<div class="layui-input-block">
+									<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+								</div>
+							</div>
+							<div class="layui-item athird">
+								<div class="input-group">
+									<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+									<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+									<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+								</div>
+							</div>
+							<div style="    clear:both;"></div>
+						</div>
+						<div id="moresees" style="clear:both;display:none;">
+							<div class="layui-item query athird lw6">
+								<label class="layui-form-label">项目负责人:</label>
+								<div class="layui-input-block">
+									<form:input path="leaderNameStr" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+								</div>
+							</div>
+							<div class="layui-item query athird lw6">
+								<label class="layui-form-label">合同名称:</label>
+								<div class="layui-input-block">
+									<form:input path="workContractInfo.name" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+								</div>
+							</div>
+							<div class="layui-item query athird lw6">
+								<label class="layui-form-label">委托方:</label>
+								<div class="layui-input-block">
+									<form:input path="workContractInfo.client.name" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+								</div>
+							</div>
+							<div style="clear:both;"></div>
+						</div>
+					</form:form>
+				</div>
+			</div>
+			<div class="full-width fl">
+				<div class="contentShadow layui-form contentDetails">
+					<div class="nav-btns">
+						<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:page page="${page}"></table:page>
+					<div style="clear: both;"></div>
+				</div>
+			</div>
+		</div>
+		<div id="changewidth"></div>
+	</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    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:40}
+                ,{field:'projId',align:'center', title: '项目编号',width:150,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projId + "</a>";
+                    }}
+                ,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
+                    }}
+                ,{field:'contract', align:'center',title: '合同名称',minWidth:200,templet:function(d){
+                        return "<span title='"+ d.contract +"'>" + d.contract + "</span>";
+                    }}
+                ,{field:'projMaster', align:'center',title: '负责人', width:65,templet:function(d){
+                        return "<span title='"+ d.projMaster +"'>" + d.projMaster + "</span>";
+                    }}
+                ,{field:'client',align:'center', title: '委托方',  width:150,templet:function(d){
+                        return "<span title='"+ d.client +"'>" + d.client + "</span>";
+                    }}
+                ,{field:'membercount',align:'center', title: '成员数量',  width:70}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:80}
+                ,{field:"op",align:'center',title:"操作",width:70,templet:function(d){
+                        ////对操作进行初始化
+                        var xml="";
+                        if(d.signature != undefined && d.signature =="1"){
+                            xml += "<a href=\"javascript:void(0)\" onclick=\"openDialogView('项目成员管理', '${ctx}/ruralProject/ruralCostProjectRecordUsers/form?id=" + d.id +"','95%', '95%')\" class=\"op-btn op-btn-edit\" > 进入</a>";
+                        }
+                        return xml;
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="projectRecords" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${projectRecords.id}"
+                    ,"projId":"${projectRecords.projectId}"
+                    ,"projName":"<c:out value="${projectRecords.projectName}" escapeXml="true"/>"
+                    ,"projMaster":"<c:forEach items="${projectRecords.projectLeaders}" var="leader" varStatus="status"><c:choose><c:when test="${status.last}">${leader.name}</c:when><c:otherwise>${leader.name},</c:otherwise></c:choose></c:forEach>"
+                    ,"contract":"<c:out value="${projectRecords.workContractInfo.name}" escapeXml="true"/>"
+                    ,"client":"<c:out value="${projectRecords.workContractInfo.client.name}" escapeXml="true"/>"
+                    ,"membercount":"${projectRecords.membercount}"
+                    ,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+                    <c:forEach items="${projectRecords.projectLeaders}" var="leader" varStatus="status">
+                    <c:if test="${fns:getUser().name == leader.name  }">,"signature":"1"</c:if>
+					</c:forEach>
+
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable(70);
+</script>
+<script>
+    resizeListWindow1();
+    $(window).resize(function(){
+        resizeListWindow1();
+    });
+</script>
+</body>
+</html>