Procházet zdrojové kódy

项目部分代码提交

user5 před 3 roky
rodič
revize
58d9b56f6e

+ 16 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsDao.java

@@ -5,12 +5,11 @@ package com.jeeplus.modules.ruralprojectrecords.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportDataTwo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.statement.entity.StatementCompanyComprehensiveInfo;
-import com.jeeplus.modules.statement.entity.StatementDataInfo;
 import com.jeeplus.modules.sys.entity.User;
 import org.apache.ibatis.annotations.Param;
 
@@ -43,6 +42,14 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      * @param records
      */
     void adminUpdateProject(RuralProjectRecords records);
+
+    /**
+     * admin修改项目基本信息
+     * @param reportData
+     */
+    void adminUpdateReportData(ProjectReportData reportData);
+
+    Integer getProjectReportDataByNumber(String number);
     /**
      * admin删除项目信息
      * @param records
@@ -233,6 +240,13 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      * @return
      */
     Integer getProjectByName(String projectName);
+    /**
+     * 根据报告号查询数量
+     * @param number
+     * @param reportDataId
+     * @return
+     */
+    Integer reReportDataNumber(@Param("number") String number,@Param("id")String reportDataId);
 
     /**
      * 根据项目id查询项目创建人和责任人

+ 9 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java

@@ -323,6 +323,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private String reviewerPerson;//审核人名称
 	private String reviewerPersonId;//审核人
 	private Integer contractsNum; //合同数量
+	private String temporaryId; //临时id
 
 	public String getPrrId() {
 		return prrId;
@@ -2291,4 +2292,12 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setContractsNum(Integer contractsNum) {
 		this.contractsNum = contractsNum;
 	}
+
+	public String getTemporaryId() {
+		return temporaryId;
+	}
+
+	public void setTemporaryId(String temporaryId) {
+		this.temporaryId = temporaryId;
+	}
 }

+ 25 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -682,6 +682,19 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		projectRecords.setOffice(office);
 		projectRecords.preUpdate();
 		dao.adminUpdateProject(projectRecords);
+		//查询项目报告信息
+		//如果原报告编号和获取的报告编号不同,则进行查询更改
+
+		//查询项目报告信息
+		ProjectReportData oldProjectReportData = projectReportDataService.getReportDataByProjectId(projectRecords.getId());
+		ProjectReportData rojectReportData = projectRecords.getReportData();
+		if(null != rojectReportData && StringUtils.isNotBlank(rojectReportData.getNumber()) &&
+				!rojectReportData.getNumber().equals(oldProjectReportData.getNumber())){
+			projectRecords.getReportData().preUpdate();
+			//修改报告编号信息
+			dao.adminUpdateReportData(projectRecords.getReportData());
+		}
+
 	}
 
 
@@ -2717,6 +2730,11 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	 */
 	public String createReportNo(String bizCode){
 		String msg = projectReportNumService.saveNumber(bizCode);//保存
+		//判断报告号是否已存在,如果存在则重新获取新的报告号
+		Integer projectReportDataByNumber = dao.getProjectReportDataByNumber(msg);
+		if(projectReportDataByNumber>0){
+			msg = createReportNo(bizCode);
+		}
 		return msg;
 	}
 
@@ -2904,6 +2922,13 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		 Integer projectRecords = dao.getProjectByName(projectName);
 		 return projectRecords;
 	}
+	/**
+	 * 根据项目报告号查询数量
+	 */
+	public Integer reReportDataNumber(String number,String reportDataId){
+		 Integer reportDataNumberCount = dao.reReportDataNumber(number,reportDataId);
+		 return reportDataNumberCount;
+	}
 	@Transactional(readOnly = false)
 	public void projectUpgrade(RuralProjectRecords ruralProjectRecords){
 		//修改项目等级

+ 65 - 9
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java

@@ -7,18 +7,16 @@ import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.oss.OSSClientUtil;
 import com.jeeplus.common.persistence.Page;
-import com.jeeplus.common.utils.DateUtils;
-import com.jeeplus.common.utils.MyBeanUtils;
-import com.jeeplus.common.utils.StringUtils;
-import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
+import com.jeeplus.common.utils.*;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ActUtils;
-import com.jeeplus.modules.alterinfo.entity.AlterInfo;
 import com.jeeplus.modules.hr.service.UserInfoService;
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
+import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
 import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
@@ -26,7 +24,10 @@ import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
-import com.jeeplus.modules.ruralprojectrecords.entity.*;
+import com.jeeplus.modules.ruralprojectrecords.entity.ImportBRuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectContactPerson;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectContactPersonService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
@@ -49,7 +50,6 @@ import com.jeeplus.modules.workinvoice.service.WorkInvoiceService;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workreimbursement.service.WorkReimbursementService;
-import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
 import org.apache.shiro.authz.annotation.Logical;
@@ -63,14 +63,12 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.validation.ConstraintViolationException;
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * 造价审核项目登记Controller
@@ -112,6 +110,8 @@ public class RuralCostProjectRecordsController extends BaseController {
     private WorkReimbursementService workReimbursementService;
     @Autowired
     private UserInfoService userInfoService;
+    @Autowired
+    private ProjectTemplateService projectTemplateService;
 
     private static String template_path = Global.getProjectTemplatePath() + "咨询工作方案.xlsx";
     private static String template_name = "咨询工作方案.xlsx";
@@ -300,6 +300,7 @@ public class RuralCostProjectRecordsController extends BaseController {
             projectRecords.setCreateReportFlag(true);
             model.addAttribute("projectStartDate", "");
             model.addAttribute("projectEndDate", "");
+            //projectRecords.setProjectType("2");
             String belongingDepartmentName = UserUtils.getUser().getOffice().toString();
             String belongingDepartmentParentId = UserUtils.getUser().getOffice().getParentId();
             //如果父级id为工程五部则不予显示
@@ -310,6 +311,58 @@ public class RuralCostProjectRecordsController extends BaseController {
 
 
         model.addAttribute("ruralProjectRecords", projectRecords);
+        /*//创建临时id
+        if(StringUtils.isBlank(projectRecords.getTemporaryId())){
+            projectRecords.setTemporaryId(IdGen.uuid());
+        }
+        //查询“配农网”工程类型id
+        String engineeringId = engineeringService.getEngineeringId("202");
+        ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+        //添加项目类型
+        relateInfo.setAttachmentProjectType(projectRecords.getProjectType());
+        relateInfo.setAttachmentProjectSort(projectRecords.getAttachmentProjectSort());
+        //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+        String money=projectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+
+        //添加报告类型
+        relateInfo.setRequiredStage(1);
+        if(StringUtils.isNotBlank(projectRecords.getId())){
+            relateInfo.setId(projectRecords.getId());
+        }else{
+            relateInfo.setId(projectRecords.getTemporaryId());
+        }
+        RuralProjectcontentinfo projectcontentinfo = new RuralProjectcontentinfo();
+        if(StringUtils.isNotBlank(relateInfo.getAttachmentProjectType()) &&
+                StringUtils.isNotBlank(relateInfo.getAttachmentProjectSort()) &&
+                StringUtils.isNotBlank(relateInfo.getId())){
+            //查询报告文件、依据性文件、其他文件必填列表以及数据
+            List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+            projectTemplateService.disposeProjectTemplateFile(mainDictDetails,relateInfo,engineeringId,projectRecords,projectcontentinfo,"");
+        }
+
+        model.addAttribute("projectcontentinfo", projectcontentinfo);
+
+*/
         return "modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm";
     }
 
@@ -530,6 +583,9 @@ public class RuralCostProjectRecordsController extends BaseController {
         model.addAttribute("belongingDepartmentName", belongingDepartmentName);
 
         projectRecordsService.queryProjectDetail(projectRecords);
+        //查询项目报告信息
+        ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(projectRecords.getId());
+        projectRecords.setReportData(projectReportData);
         ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
         projectPlanInfo.setProjectId(projectRecords.getId());
         if (null != projectRecords.getWorkContractInfo()) {

+ 13 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java

@@ -20,7 +20,6 @@ import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectEngineering.entity.EngineeringTree;
 import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
-import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
@@ -33,7 +32,10 @@ import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectContactPersonService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
-import com.jeeplus.modules.sys.entity.*;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
+import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.sys.entity.Role;
+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.workactivity.entity.Activity;
@@ -47,13 +49,11 @@ import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
 import com.jeeplus.modules.workinvoice.service.WorkInvoiceService;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
-import com.jeeplus.modules.workreimbursement.entity.WorkReimbursement;
 import com.jeeplus.modules.workreimbursement.service.WorkReimbursementService;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.checkerframework.checker.units.qual.A;
 import org.json.JSONArray;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -64,7 +64,6 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
@@ -1306,4 +1305,13 @@ public class RuralProjectRecordsController extends BaseController {
 		Integer count = projectRecordsService.reProjectName(projectName);
 		return count;
 	}
+	/**
+	 * 查询项目报告好是否重复
+	 */
+	@RequestMapping(value = "reReportDataNumber")
+	@ResponseBody
+	public Integer reReportDataNumber(String number,String reportDataId){
+		Integer count = projectRecordsService.reReportDataNumber(number,reportDataId);
+		return count;
+	}
 }

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

@@ -997,6 +997,19 @@
 		WHERE id = #{id}
 	</update>
 
+	<update id="adminUpdateReportData">
+		update project_report_data
+		set
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			number = #{number}
+		where id = #{id}
+	</update>
+
+	<select id="getProjectReportDataByNumber" resultType="java.lang.Integer">
+		select count(number) from project_report_data where number = #{number} and del_flag = 0
+	</select>
+
 
 	<!--物理删除-->
 	<update id="delete">
@@ -2174,6 +2187,16 @@
 			</if>
 		</where>
 	</select>
+    <select id="reReportDataNumber"
+            resultType="java.lang.Integer">
+		select
+		count(a.id)
+		FROM project_report_data a
+		<where>
+			a.number=#{number}  and a.del_flag = 0
+			and a.id != #{id}
+		</where>
+	</select>
 
     <update id="updateReportDataTwo">
 		update project_report_data_two

+ 31 - 11
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsAdminModify.jsp

@@ -694,6 +694,28 @@
                 }
             })
         }
+        function reReportDataNumber(obj) {
+            var number=$(obj).val()
+            var reportDataId = $("#reportDataId").val();
+            var reportNumber='${projectRecords.reportData.number}'
+            $.ajax({
+                type : "POST",
+                url : "${ctx}/ruralProject/ruralProjectRecords/reReportDataNumber",
+                data : {'number':number,'reportDataId':reportDataId},
+                //请求成功
+                success : function(result) {
+                    if (result>0){
+                        if(reportNumber!=number){
+                            $(obj).val(reportNumber);
+                            parent.layer.msg("报告号已存在!",{icon:2});
+                        }
+                    }
+                }
+            })
+        }
+        function num(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); //清除"数字"以外的字符
+        }
     </script>
 </head>
 <body >
@@ -702,6 +724,7 @@
 		<form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/ruralProject/ruralCostProjectRecords/adminUpdate" method="post" class="form-horizontal layui-form">
 		    <form:hidden path="id"/>
             <form:hidden path="workContractInfo.client.id" id="contractClientId" value="${workContractInfo.client.id}"/>
+            <form:hidden path="reportData.id" id="reportDataId" value="${reportData.id}"/>
             <input type="hidden" id="flagFile" value="">
             <input type="hidden" id="emergencyProjectFlag" name="emergencyProject" value="${ruralProjectRecords.emergencyProject}">
 
@@ -819,15 +842,12 @@
                         </div>
                     </div>
                 </div>
-                <%--<div class="layui-item layui-col-sm6 lw7">--%>
-                    <%--<label class="layui-form-label">规模类型:</label>--%>
-                    <%--<div class="layui-input-block">--%>
-                        <%--<form:select path="scaleType" class="form-control editable-select layui-input" id="scaleType" value="${scaleType}">--%>
-                            <%--<form:option value=""/>--%>
-                            <%--<form:options items="${fns:getMainDictList('scale_type')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
-                        <%--</form:select>--%>
-                    <%--</div>--%>
-                <%--</div>--%>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>报告号:</label>
+                    <div class="layui-input-block">
+                        <form:input path="reportData.number" placeholder="请输入报告号" onchange="reReportDataNumber(this)" htmlEscape="false"  class="form-control layui-input required"/>
+                    </div>
+                </div>
                 <%--<div class="layui-item layui-col-sm6 lw7">--%>
                     <%--<label class="layui-form-label">规模单位:</label>--%>
                     <%--<div class="layui-input-block">--%>
@@ -979,9 +999,9 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
-                    <label class="layui-form-label"><span class="require-item">*</span>合同数量:</label>
+                    <label class="layui-form-label"><span class="require-item">*</span>登记数量:</label>
                     <div class="layui-input-block">
-                        <input htmlEscape="false" readonly="true"  style="background-color: #f1f1f1" class="form-control layui-input" value="${projectRecords.contractsNum}"/>
+                        <form:input path="contractsNum" placeholder="登记数量" htmlEscape="false" onkeyup="num(this)"  class="form-control number judgment layui-input" id="contractsNum"/>
                     </div>
                 </div>
                 <%--<div class="layui-item layui-col-sm6 lw7">

+ 811 - 66
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm.jsp

@@ -51,64 +51,7 @@
                 //     top.layer.alert('请至少上传一个项目计划表或者实施方案文档!', {icon: 0});
                 //     return;
                 // }
-                if($("#workClientLinkmanList tr").length==0){
-                    top.layer.msg("请选择委托方联系人!", {icon: 5});
-                    return;
-                }
-
 
-                var startDate = new Date($("#startDate").val());
-                var endingDate = new Date($("#endingDate").val());
-
-                var projectStartDate = new Date('${projectStartDate}');
-                var projectEndDate = new Date('${projectEndDate}');
-                if(null == startDate||undefined==startDate ||"Invalid Date"==startDate){
-                    parent.layer.msg("工作开始日期不能为空!", {icon: 5});
-                    return false;
-                }
-                if(null==endingDate||undefined==endingDate||"Invalid Date" == endingDate){
-                    parent.layer.msg("工作结束日期不能为空!", {icon: 5});
-                    return false;
-                }
-
-                if(startDate.getTime() > endingDate.getTime()){
-                    parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
-                    return false;
-                }
-                if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
-                    if(startDate.getTime() > projectStartDate.getTime()){
-                        parent.layer.msg("工作开始日期不得大于工作计划最早结束时间!", {icon: 5});
-                        return false;
-                    }
-                }
-                if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
-                    if(endingDate.getTime() < projectEndDate.getTime()){
-                        parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
-                        return false;
-                    }
-                }
-                var belongingDepartment = $("#belongingDepartmentName").val();
-                if(belongingDepartment == '' ){
-                    parent.layer.msg("项目归属部门未填写!", {icon: 5});
-                    return false;
-                }
-                var contractsNum = $("#contractsNum").val();
-                if(contractsNum==""||null==contractsNum||undefined==contractsNum||contractsNum.length==0){
-                    parent.layer.msg("合同数量不能为空!", {icon: 5});
-                    return false;
-                }
-                if(contractsNum<=0){
-                    parent.layer.msg("合同数量必须大于0!", {icon: 5});
-                    return false;
-                }
-                if(contractsNum%1!=0){
-                    parent.layer.msg("合同数量必须为整数!", {icon: 5});
-                    return false;
-                }
-                if(isNaN(contractsNum)){
-                    parent.layer.msg("请输入正确合同数量!", {icon: 5});
-                    return false;
-                }
 
                 $("#clientName").val($("#contractClientName").val());
 
@@ -170,6 +113,54 @@
                         }
                     }*/
 
+                    if($("#workClientLinkmanList tr").length==0){
+                        top.layer.msg("请选择委托方联系人!", {icon: 5});
+                        return;
+                    }
+
+
+                    var startDate = new Date($("#startDate").val());
+                    var endingDate = new Date($("#endingDate").val());
+
+                    var projectStartDate = new Date('${projectStartDate}');
+                    var projectEndDate = new Date('${projectEndDate}');
+                    if(null == startDate||undefined==startDate ||"Invalid Date"==startDate){
+                        parent.layer.msg("工作开始日期不能为空!", {icon: 5});
+                        return false;
+                    }
+                    if(null==endingDate||undefined==endingDate||"Invalid Date" == endingDate){
+                        parent.layer.msg("工作结束日期不能为空!", {icon: 5});
+                        return false;
+                    }
+
+                    if(startDate.getTime() > endingDate.getTime()){
+                        parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
+                        return false;
+                    }
+                    if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+                        if(startDate.getTime() > projectStartDate.getTime()){
+                            parent.layer.msg("工作开始日期不得大于工作计划最早结束时间!", {icon: 5});
+                            return false;
+                        }
+                    }
+                    if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+                        if(endingDate.getTime() < projectEndDate.getTime()){
+                            parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+                            return false;
+                        }
+                    }
+                    var belongingDepartment = $("#belongingDepartmentName").val();
+                    if(belongingDepartment == '' ){
+                        parent.layer.msg("项目归属部门未填写!", {icon: 5});
+                        return false;
+                    }
+                    var contractsNum = $("#contractsNum").val();
+                    if(contractsNum<=0){
+                        parent.layer.msg("登记数量必须大于0!", {icon: 5});
+                        return false;
+                    }
+
+
                     var flag = $("#flagFile").val();
                     if(flag == 'false'){
                         top.layer.msg('附件信息未上传完成,请等待!', {icon: 0});
@@ -907,6 +898,9 @@
                 }
             })
         }
+        function num(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); //清除"数字"以外的字符
+        }
     </script>
 </head>
 <body>
@@ -915,6 +909,8 @@
         <sys:message content="${message}"/>
         <form:form id="inputForm" modelAttribute="ruralProjectRecords" action="${ctx}/ruralProject/ruralCostProjectRecords/save" method="post" class="form-horizontal layui-form ">
             <form:hidden path="id"/>
+            <form:hidden path="temporaryId"/>
+            <form:hidden path="projectType"/>
             <form:hidden path="workContractInfo.client.id" id="contractClientId" value="${workContractInfo.client.id}"/>
             <input type="hidden" id="flagFile" value="">
             <input type="hidden" id="createReportFlag" name="createReportFlag" value="${ruralProjectRecords.createReportFlag}">
@@ -940,7 +936,7 @@
                            <label class="layui-form-label"><span class="require-item">*</span>选择合同:</label>
                            <div class="layui-input-block  with-icon">
                                <sys:gridselectContract url="${ctx}/ruralProject/ruralCostProjectRecords/selectcontract" type="" isTotal="" id="contractId" name="workContractInfo.id"  value="${ruralProjectRecords.workContractInfo.id}"  title="选择合同" labelName="workContractInfo.name"
-                                        cssStyle="background-color: #fff" labelValue="${ruralProjectRecords.workContractInfo.contractNum}" cssClass="form-control required layui-input" fieldLabels="合同名称" fieldKeys="name" searchLabel="合同名称" searchKey="name" ></sys:gridselectContract>
+                                        cssStyle="background-color: #fff" labelValue="${ruralProjectRecords.workContractInfo.contractNum}" cssClass="form-control judgment layui-input" fieldLabels="合同名称" fieldKeys="name" searchLabel="合同名称" searchKey="name" ></sys:gridselectContract>
                            </div>
                        </div>
                        <div class="layui-item layui-col-sm6 lw7">
@@ -1000,7 +996,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>项目名称:</label>
                     <div class="layui-input-block">
-                        <form:input path="projectName" id="projectName" onchange="reProjectName(this)" maxlength="255" htmlEscape="false" placeholder="请输入项目名称" class="form-control layui-input required"/>
+                        <form:input path="projectName" id="projectName" onchange="reProjectName(this)" maxlength="255" htmlEscape="false" placeholder="请输入项目名称" class="form-control layui-input judgment"/>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
@@ -1049,7 +1045,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>投资性质:</label>
                     <div class="layui-input-block readOnlyFFF">
-                        <form:select placeholder="请选择" path="projectProperties" class="form-control required editable-select layui-input" id="projectProperties" value="${ruralProjectRecords.projectProperties}">
+                        <form:select placeholder="请选择" path="projectProperties" class="form-control judgment editable-select layui-input" id="projectProperties" value="${ruralProjectRecords.projectProperties}">
                             <form:option value=""/>
                             <form:options items="${fns:getMainDictList('project_properties')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                         </form:select>
@@ -1168,13 +1164,13 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line"><span class="require-item">*</span>工作开始日期:</label>
                     <div class="layui-input-block">
-                        <input class="laydate-icondate form-control layui-input layer-date laydate-icon" style="background-color: #fff" readonly="readonly" id="startDate" name="startDate" placeholder="请选择开始日期" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+                        <input class="laydate-icondate form-control judgment layui-input layer-date laydate-icon" style="background-color: #fff" readonly="readonly" id="startDate" name="startDate" placeholder="请选择开始日期" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line"><span class="require-item">*</span>工作结束日期:</label>
                     <div class="layui-input-block">
-                        <input class="laydate-icondate form-control layui-input layer-date laydate-icon" style="background-color: #fff" readonly="readonly" id="endingDate" name="endingDate" placeholder="请选择结束日期" value="<fmt:formatDate value="${ruralProjectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+                        <input class="laydate-icondate form-control judgment layui-input layer-date laydate-icon" style="background-color: #fff" readonly="readonly" id="endingDate" name="endingDate" placeholder="请选择结束日期" value="<fmt:formatDate value="${ruralProjectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
@@ -1186,7 +1182,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>项目类别:</label>
                     <div class="layui-input-block readOnlyFFF">
-                        <form:select placeholder="请选择" path="attachmentProjectSort" class="form-control judgment editable-select layui-input" id="attachmentProjectSort" value="${attachmentProjectSort}">
+                        <form:select placeholder="请选择" path="attachmentProjectSort" class="form-control judgment editable-select layui-input"  id="attachmentProjectSort" value="${attachmentProjectSort}">
                             <form:option value=""/>
                             <form:options items="${fns:getMainDictList('attachment_project_sort_cost')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                         </form:select>
@@ -1196,7 +1192,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>登记数量:</label>
                     <div class="layui-input-block">
-                        <form:input path="contractsNum" placeholder="登记数量" htmlEscape="false"  class="form-control layui-input" id="contractsNum"/>
+                        <form:input path="contractsNum" placeholder="登记数量" htmlEscape="false" onkeyup="num(this)"  class="form-control number judgment layui-input" id="contractsNum"/>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7" style="display: none">
@@ -1415,7 +1411,7 @@
                        onclick="workClientLinkmanTplInfo('#workConstructionLinkmanList', workConstructionLinkmanRowIdx, workConstructionLinkmanTpl);workConstructionLinkmanRowIdx = workConstructionLinkmanRowIdx + 1;"
                        title="新增施工方联系人"><i class="fa fa-plus"></i> 新增施工方联系人</a>
                     <%--<sys:gridselectConstruction url="${ctx}/workclientinfo/workClientInfo/clientInfolist" id="constructionOrgList" title="选择施工单位"
-                                                cssClass="form-control required" fieldLabels="${fns:urlEncode('客户编号')}" fieldKeys="name" searchLabel="${fns:urlEncode('客户名称')}" searchKey="name"></sys:gridselectConstruction>--%>
+                                                cssClass="form-control judgment" fieldLabels="${fns:urlEncode('客户编号')}" fieldKeys="name" searchLabel="${fns:urlEncode('客户名称')}" searchKey="name"></sys:gridselectConstruction>--%>
                 </div>
 
                 <div class="layui-item layui-col-xs12 form-table-container">
@@ -1444,7 +1440,7 @@
                         <input <input style="background-color: #FFFFFF;"  id="workConstructionLinkmanList{{idx}}_clientName" name="workConstructionLinkmanList[{{idx}}].clientId.name" type="text" value="{{row.clientId.name}}"    class="form-control "/>
                     </td>
                     <td>
-                        <input <input style="background-color: #FFFFFF;"  id="workConstructionLinkmanList{{idx}}_name" name="workConstructionLinkmanList[{{idx}}].name" type="text" value="{{row.name}}"    class="form-control required"/>
+                        <input <input style="background-color: #FFFFFF;"  id="workConstructionLinkmanList{{idx}}_name" name="workConstructionLinkmanList[{{idx}}].name" type="text" value="{{row.name}}"    class="form-control judgment"/>
                     </td>
 
                     <td>
@@ -1618,6 +1614,572 @@
 <%--                    </table>--%>
 <%--                </div>--%>
 <%--            </div>--%>
+
+
+
+            <%--<div id="upTable">
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>成果文件</h2></div>
+                <div class="layui-item layui-col-xs12" style="padding:0 16px;">
+                    <table  class="table table-bordered table-condensed tree_table">
+                        <thead>
+                        <tr>
+                            <th width="20%">文件要求</th>
+                            <th width="35%">文件描述/文件</th>
+                            <th width="20%">文件类型</th>
+                            <th width="160px">上传时间</th>
+                            <th width="120px">文件大小(M)</th>
+                            <th width="100px">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody id="file_attachment">
+                        <c:forEach items="${projectcontentinfo.fileAttachmentList}" var = "fileAttachment" varStatus="status">
+                            <tr id="file_attachment_${fileAttachment.id}_tr_fu" onclick="listTr(this)">
+                                <td style="display:none"><span class="faid">${fileAttachment.id}</span></td>
+                                <td style="display:none">${fileAttachment.mustFlag}</td>
+                                <c:choose>
+                                    <c:when test="${fileAttachment.mustFlag == 1}">
+                                        <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span><span style="color: red">* </span>${fileAttachment.attachName}<input type="hidden" value="${fileAttachment.attachName}"/></td>
+                                    </c:when>
+                                    <c:otherwise>
+                                        <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.attachName}<input type="hidden" value="${fileAttachment.attachName}"/></td>
+                                    </c:otherwise>
+                                </c:choose>
+                                <td>
+                                        &lt;%&ndash;									<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>&ndash;%&gt;
+                                    <div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileAttachment.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileAttachment.attachTypes}</div>
+                                </td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td class="op-td">
+                                    <div class="op-btn-box" >
+                                        <a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileAttachment.id}&projectId=${ruralProjectRecords.temporaryId}&uploadMode=${ruralProjectRecords.uploadMode}','70%','80%',false,'inputForm','upTable')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
+                                    </div>
+                                </td>
+                                <td style="display:none">${fileAttachment.fileFlag}</td>
+
+                            </tr>
+                            <c:forEach items="${fileAttachment.workAttachments}" var = "workClientAttachment" varStatus="status">
+                                <tr class="file_attachment_${fileAttachment.id}_tr_fu">
+                                    <td></td>
+                                    <c:choose>
+                                        <c:when test="${ruralProjectRecords.uploadMode == 2}">
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:when>
+                                        <c:otherwise>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:otherwise>
+                                    </c:choose>
+                                        &lt;%&ndash;										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>&ndash;%&gt;
+                                    <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
+
+
+                                    <td class="op-td" style="text-align:center;">
+                                        <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
+                                    </td>
+
+                                    <td class="op-td">${workClientAttachment.fileSize}</td>
+                                    <td class="op-td">
+                                        <div class="op-btn-box" >
+                                                &lt;%&ndash;附件下载删除&ndash;%&gt;
+                                            <c:choose>
+                                                <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                </c:otherwise>
+                                            </c:choose>
+
+                                                &lt;%&ndash;											<a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileAttachment.id}&projectId=${project.id}','70%','80%',false,'inputForm','upTable',this)" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>&ndash;%&gt;
+                                        </div>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <script type="text/template" id="fileAttachmentTpl">//<!--
+                <tr id="budgetList{{idx}}">
+                    <td class="hide">
+                        <input id="fileAttachment{{idx}}_id" type="hidden" value="{{row.id}}" class="clientId"/>
+                    </td>
+                    <td class="hide">
+                        0
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachName}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachLength}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachTypes}}
+                    </td>
+                    <td style="text-align:center;">
+
+                    </td>
+					<td class="op-td">
+						<div class="op-btn-box" >
+							<a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId={{row.id}}&projectId=${ruralProjectRecords.temporaryId}','70%','80%',false,'inputForm','upTable')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
+						</div>
+					</td>
+                </tr>//-->
+            </script>
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>依据性文件</h2></div>
+                    &lt;%&ndash;				<div class="layui-item nav-btns">&ndash;%&gt;
+                    &lt;%&ndash;<a id="gistdata_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>&ndash;%&gt;
+                    &lt;%&ndash;					<a href="javascript:void(0)"  onclick="formAttachment('添加类型', '${ctx}/projectAccessoryRelation/projectAccessoryRelation/formAttachment?parentId=12&projectType=2&projectId=${ruralProjectRecords.temporaryId}&reviewFee='+$('#reviewFee').val(),'500px','350px',false,'inputForm','file_gistdata')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 添加类型</a>&ndash;%&gt;
+                    &lt;%&ndash;				</div>&ndash;%&gt;
+                <div id="addFile_gistdata" style="display: none" class="upload-progress">
+                    <span id="fileName_gistdata" ></span>
+                    <span id="_gistdata" ></span>
+                    <b><span id="baifenbi_gistdata" ></span></b>
+                    <div class="progress">
+                        <div id="jindutiao_gistdata" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                        </div>
+                    </div>
+                </div>
+                <input id="gistdata_file" type="file" name="gistdata_file" multiple="multiple" style="display: none;" onChange="if(this.value)gistdataInsertTitle(this.value);"/>
+                <span id="gistdata_title"></span>
+                <div class="layui-item layui-col-xs12" style="padding:0 16px;">
+                    <table id="gistdata_upTable" class="table table-bordered table-condensed tree_table">
+                        <thead>
+                        <tr>
+                            <th width="20%">文件要求</th>
+                            <th width="35%">文件描述/文件</th>
+                            <th width="20%">文件类型</th>
+                            <th width="160px">上传时间</th>
+                            <th width="120px">文件大小(M)</th>
+                            <th width="100px">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody id="file_gistdata">
+                        <c:forEach items="${projectcontentinfo.fileGistdataList}" var = "fileGistdata" varStatus="status">
+                            <tr  id="file_gistdata_${fileGistdata.id}_tr" onclick="listTr(this)">
+                                    &lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
+                                <td style="display:none"><span class="fgid">${fileGistdata.id}</span></td>
+                                <td style="display:none">${fileGistdata.mustFlag}</td>
+                                <c:choose>
+                                    <c:when test="${fileGistdata.mustFlag == 1}">
+                                        <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span><span style="color: red">* </span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>
+                                    </c:when>
+                                    <c:otherwise>
+                                        <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>
+                                    </c:otherwise>
+                                </c:choose>
+                                <td>
+                                        &lt;%&ndash;									<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>&ndash;%&gt;
+                                    <div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileGistdata.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileGistdata.attachTypes}</div>
+                                </td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td class="op-td">
+                                    <div class="op-btn-box" >
+                                        <a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileGistdata.id}&projectId=${ruralProjectRecords.temporaryId}&uploadMode=${projectcontentinfo.uploadMode}','70%','80%',false,'inputForm','gistdata_upTable')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
+                                    </div>
+                                </td>
+                                <td style="display:none">${fileGistdata.fileFlag}</td>
+
+                            </tr>
+                            <c:forEach items="${fileGistdata.workAttachments}" var = "workClientAttachment" varStatus="status">
+                                <tr class="file_gistdata_${fileGistdata.id}_tr">
+                                    <td></td>
+                                    <c:choose>
+                                        <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:when>
+                                        <c:otherwise>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:otherwise>
+                                    </c:choose>
+                                        &lt;%&ndash;									<td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a></td>&ndash;%&gt;
+                                    <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
+
+
+                                    <td class="op-td" style="text-align:center;">
+                                        <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
+                                    </td>
+                                    <td class="op-td">
+                                            ${workClientAttachment.fileSize}
+                                    </td>
+                                    <td class="op-td">
+                                        <div class="op-btn-box" >
+
+                                                &lt;%&ndash;附件下载删除&ndash;%&gt;
+                                            <c:choose>
+                                                <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                </c:otherwise>
+                                            </c:choose>
+
+                                                &lt;%&ndash;											<a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileAttachment.id}&projectId=${project.id}','70%','80%',false,'inputForm','upTable',this)" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>&ndash;%&gt;
+                                        </div>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <script type="text/template" id="gistdataTpl">//<!--
+                <tr id="budgetList{{idx}}">
+                    <td class="hide">
+                        <input id="gistdataTpl{{idx}}_id" type="hidden" value="{{row.id}}" class="clientId"/>
+                    </td>
+                    <td class="hide">
+                        0
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachName}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachLength}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachTypes}}
+                    </td>
+                    <td style="text-align:center;">
+
+                    </td>
+					<td class="op-td">
+						<div class="op-btn-box" >
+							<a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId={{row.id}}&projectId=${ruralProjectRecords.temporaryId}','70%','80%',false,'inputForm','gistdata_upTable')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
+						</div>
+					</td>
+                </tr>//-->
+            </script>
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>其他文件</h2></div>
+                    &lt;%&ndash;				<div class="layui-item nav-btns">&ndash;%&gt;
+                    &lt;%&ndash;<a id="other_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>&ndash;%&gt;
+                    &lt;%&ndash;					<a href="javascript:void(0)"  onclick="formAttachment('添加类型', '${ctx}/projectAccessoryRelation/projectAccessoryRelation/formAttachment?parentId=13&projectType=2&projectId=${ruralProjectRecords.temporaryId}&reviewFee='+$('#reviewFee').val(),'500px','350px',false,'inputForm','file_other')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 添加类型</a>&ndash;%&gt;
+                    &lt;%&ndash;				</div>&ndash;%&gt;
+                <div id="addFile_other" style="display: none" class="upload-progress">
+                    <span id="fileName_other" ></span>
+                    <span id="_other" ></span>
+                    <b><span id="baifenbi_other" ></span></b>
+                    <div class="progress">
+                        <div id="jindutiao_other" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                        </div>
+                    </div>
+                </div>
+                <input id="other_file" type="file" name="other_file" multiple="multiple" style="display: none;" onChange="if(this.value)otherInsertTitle(this.value);"/>
+                <span id="other_title"></span>
+                <div class="layui-item layui-col-xs12" style="padding:0 16px;">
+                    <table id="upTable_other" class="table table-bordered table-condensed tree_table">
+                        <thead>
+                        <tr>
+                            <th width="20%">文件要求</th>
+                            <th width="35%">文件描述/文件</th>
+                            <th width="20%">文件类型</th>
+                            <th width="160px">上传时间</th>
+                            <th width="120px">文件大小(M)</th>
+                            <th width="100px">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody id="file_other">
+                        <c:forEach items="${projectcontentinfo.fileOtherList}" var = "fileOther" varStatus="status">
+                            <tr id="file_other_${fileOther.id}_tr" onclick="listTr(this)">
+                                    &lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
+                                <td style="display:none"><span class="foid">${fileOther.id}</span></td>
+                                <td style="display:none">${fileOther.mustFlag}</td>
+                                <c:choose>
+                                    <c:when test="${fileOther.mustFlag == 1}">
+                                        <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span><span style="color: red">* </span>${fileOther.attachName}<input type="hidden" value="${fileOther	.attachName}"/></td>
+                                    </c:when>
+                                    <c:otherwise>
+                                        <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileOther.attachName}<input type="hidden" value="${fileOther.attachName}"/></td>
+                                    </c:otherwise>
+                                </c:choose>
+                                <td>
+                                        &lt;%&ndash;									<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>&ndash;%&gt;
+                                    <div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileOther.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileOther.attachTypes}</div>
+                                </td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td class="op-td">
+                                    <div class="op-btn-box" >
+                                        <a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileOther.id}&projectId=${ruralProjectRecords.temporaryId}&uploadMode=${projectcontentinfo.uploadMode}','70%','80%',false,'inputForm','upTable_other')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
+                                    </div>
+                                </td>
+                                <td style="display:none">${fileOther.fileFlag}</td>
+                            </tr>
+                            <c:forEach items="${fileOther.workAttachments}" var = "workClientAttachment" varStatus="status">
+                                <tr class="file_other_${fileOther.id}_tr">
+                                    <td></td>
+                                    <c:choose>
+                                        <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:when>
+                                        <c:otherwise>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:otherwise>
+                                    </c:choose>
+                                    <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
+
+
+                                    <td class="op-td" style="text-align:center;">
+                                        <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
+                                    </td>
+                                    <td>${workClientAttachment.fileSize}</td>
+                                        &lt;%&ndash;									<td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a></td>&ndash;%&gt;
+                                    <td class="op-td">
+                                        <div class="op-btn-box" >
+
+                                                &lt;%&ndash;附件下载删除&ndash;%&gt;
+                                            <c:choose>
+                                                <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                </c:otherwise>
+                                            </c:choose>
+
+                                                &lt;%&ndash;											<a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileAttachment.id}&projectId=${project.id}','70%','80%',false,'inputForm','upTable',this)" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>&ndash;%&gt;
+                                        </div>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <script type="text/template" id="otherTpl">//<!--
+                <tr id="budgetList{{idx}}">
+                    <td class="hide">
+                        <input id="otherTpl{{idx}}_id" type="hidden" value="{{row.id}}" class="clientId"/>
+                    </td>
+                    <td class="hide">
+                        0
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachName}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachLength}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.attachTypes}}
+                    </td>
+                    <td style="text-align:center;">
+
+                    </td>
+					<td class="op-td">
+						<div class="op-btn-box" >
+							<a href="javascript:void(0)"  onclick="openBill('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId={{row.id}}&projectId=${ruralProjectRecords.temporaryId}','70%','80%',false,'inputForm','upTable_other')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
+						</div>
+					</td>
+                </tr>//-->
+            </script>
+        </div>--%>
+
+
+
+
             <div class="form-group layui-row page-end"></div>
         </form:form>
     </div>
@@ -1705,5 +2267,188 @@
         }
     }
 </script>
+<%--<script>
+    function openBill(title,url,width,height,target,formId,tableId){
+        var rows = $(this).parent().prevAll().length + 1;
+        var frameIndex = parent.layer.getFrameIndex(window.name);
+        var urls = url+"&index="+frameIndex;
+        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:"two-btns",
+            maxmin: false, //开启最大化最小化按钮
+            content: urls ,
+            btn: ['确定','关闭'],
+            yes: 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中展示
+                inputForm.attr("action","${ctx}/projectAccessory/projectAccessory/saveWorkAttachment");//表单提交成功后,从服务器返回的url在当前tab中展示
+                var $document = iframeWin.contentWindow.document;
+
+                formSubmit($document,formId,index,tableId);
+
+            },
+            cancel: function(index){
+            },
+            end:function () {
+                var reviewFee = $("#reviewFee").val();
+                $("#"+tableId).load(location.href+"&reviewFee="+reviewFee + " #"+tableId);
+            }
+        });
+    }
+    function formSubmit($document,inputForm,index,tableId){
+
+        var validateForm = $($document.getElementById(inputForm)).validate({
+            submitHandler: function(form){
+                loading('正在提交,请稍等...');
+                form.submit();
+            },
+            errorContainer: "#messageBox",
+            errorPlacement: function(error, element) {
+                $($document.getElementById("#messageBox")).text("输入有误,请先更正。");
+                if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                    error.appendTo(element.parent().parent());
+                } else {
+                    error.insertAfter(element);
+                }
+            }
+        });
+        if(validateForm.form()){
+            var action = $document.getElementById(inputForm).action;
+            var handleInfo = $($document.getElementById(inputForm)).serialize();
+            $.ajax({
+                type : "POST",
+                url : action,
+                data : handleInfo,
+                //请求成功
+                success:function(data) {
+                    var d = data;
+                    //输出提示信息
+                    if(d.str.length>0){
+                        parent.layer.msg(d.str,{icon:1});
+                    }
+                    //刷新当前模块
+                    var reviewFee = $("#reviewFee").val();
+                    $("#"+tableId).load(location.href+"&reviewFee="+reviewFee + " #"+tableId);
+                    //关闭当前页
+                    top.layer.close(index)
+                }
+            });
+        }
+    }
+
+
+    //新增行方法
+    var fileAttachmentTpl = $("#fileAttachmentTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+    var gistdataTpl = $("#gistdataTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+    var otherTpl = $("#otherTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+
+    function formAttachment(title,url,width,height,target,formId,divId){
+        var rows = $(this).parent().prevAll().length + 1;
+        var frameIndex = parent.layer.getFrameIndex(window.name);
+        var urls = url;
+        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:"two-btns",
+            maxmin: false, //开启最大化最小化按钮
+            content: urls ,
+            btn: ['确定','关闭'],
+            yes: 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;
+                inputForm.attr("action","${ctx}/projectTemplate/projectTemplate/getProjectTemplateInfo");//表单提交成功后,从服务器返回的url在当前tab中展示
+                var $document = iframeWin.contentWindow.document;
+                formSubmitAjax($document,formId,index,divId);
+
+            },
+            cancel: function(index){
+            }
+        });
+    }
+    function formSubmitAjax($document,inputForm,index,divId){
+        var validateForm = $($document.getElementById(inputForm)).validate({
+            submitHandler: function(form){
+                loading('正在提交,请稍等...');
+                form.submit();
+            },
+            errorContainer: "#messageBox",
+            errorPlacement: function(error, element) {
+                $($document.getElementById("#messageBox")).text("输入有误,请先更正。");
+                if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                    error.appendTo(element.parent().parent());
+                } else {
+                    error.insertAfter(element);
+                }
+            }
+        });
+        if(validateForm.form()){
+            $($document.getElementById(inputForm)).ajaxSubmit({
+                success:function(data) {
+                    if(!data.success){
+                        top.layer.msg("保存依据资料信息异常!",{icon:2});
+                        return false;
+                    }
+                    var idx = ''
+                    if(divId == 'file_attachment'){
+                        idx = $("#file_attachment tr").length;
+                        addRowBaseData("#file_attachment",idx,fileAttachmentTpl,data.body.projectAccessoryInfo);
+                    }else if(divId == 'file_gistdata'){
+                        idx = $("#file_gistdata tr").length;
+                        addRowBaseData("#file_gistdata",idx,gistdataTpl,data.body.projectAccessoryInfo);
+                    }else if(divId == 'file_other'){
+                        idx = $("#file_other tr").length;
+                        addRowBaseData("#file_other",idx,otherTpl,data.body.projectAccessoryInfo);
+                    }
+                    parent.layer.msg(data.msg,{icon:1});
+                    top.layer.close(index)
+                }
+            });
+        }
+    }
+
+
+    function hasInArr(id,idArr) {
+        for(var i=0;i<idArr.length;i++){
+            if(id==$(idArr[i]).val()){
+                return true;
+            }
+        }
+        return false;
+    }
+    function existBaseData(id,length) {
+        for (var i=0;i<length;i++) {
+            var val = $('#file_attachment'+i+'_id').val();
+            if(id==val){
+                return true;
+            }
+        }
+        return false;
+    }
+</script>--%>
 </body>
 </html>