ouyj 9 часов назад
Родитель
Сommit
e97bcf86b9
31 измененных файлов с 4675 добавлено и 26 удалено
  1. 22 0
      shares/js/common.js
  2. 16 3
      shares/js/yw/bpm/customflow/customStartFlow.js
  3. 4 7
      shares/js/yw/bpm/instance/startFlow.js
  4. 94 0
      shares/js/yw/bpm/oa.js
  5. 4 1
      src/main/bpm/com/yw/bpm/core/service/CoreService.java
  6. 29 0
      src/main/bpm/com/yw/bpm/core/service/CoreServiceImpl.java
  7. 245 0
      src/main/bpm/com/yw/bpm/instance/action/FlowAction.java
  8. 9 2
      src/main/bpm/com/yw/bpm/instance/action/FormInstanceAction.java
  9. 3 1
      src/main/bpm/com/yw/bpm/instance/action/flow_urlMapping.xml
  10. 1 0
      src/main/bpm/com/yw/bpm/instance/dao/FlowDao.java
  11. 7 1
      src/main/bpm/com/yw/bpm/instance/dao/FlowDaoImpl.java
  12. 33 0
      src/main/bpm/com/yw/bpm/instance/service/FlowService.java
  13. 82 0
      src/main/bpm/com/yw/bpm/instance/service/FlowServiceImpl.java
  14. 4 0
      src/main/bpm/com/yw/bpm/instance/service/FormInstanceServiceImpl.java
  15. 6 0
      src/main/bpm/com/yw/bpm/pageflow/bpm_flow.xml
  16. 7 2
      src/main/contract/com/yw/contract/contract/action/ContractFlowCustomAction.java
  17. 6 1
      src/main/contract/com/yw/contract/contract/action/PurchaseNoContractAction.java
  18. 5 0
      src/main/contract/com/yw/contract/paymentApply/action/PaymentApplyAction.java
  19. 505 0
      src/main/webapp/yw/bpm/customfrom/customEditDraft.jsp
  20. 22 1
      src/main/webapp/yw/bpm/customfrom/customStartFlow.jsp
  21. 726 0
      src/main/webapp/yw/bpm/instance/editDraftFlow_v_2_1.jsp
  22. 6 1
      src/main/webapp/yw/bpm/instance/listFlowForAll.jsp
  23. 193 0
      src/main/webapp/yw/bpm/instance/listFlowForDraft.jsp
  24. 6 2
      src/main/webapp/yw/bpm/instance/listFlowForMine.jsp
  25. 25 1
      src/main/webapp/yw/bpm/instance/startFlow_v_2_1.jsp
  26. 1194 0
      src/main/webapp/yw/contract/contractFlowCustom/editDraftContract.jsp
  27. 9 0
      src/main/webapp/yw/contract/contractFlowCustom/startContract.jsp
  28. 798 0
      src/main/webapp/yw/contract/paymentApply/editDraftPaymentApply.jsp
  29. 10 2
      src/main/webapp/yw/contract/paymentApply/startPaymentApply.jsp
  30. 595 0
      src/main/webapp/yw/contract/purchaseNoContract/editDraftContractPurchase.jsp
  31. 9 1
      src/main/webapp/yw/contract/purchaseNoContract/startContractPurchase.jsp

+ 22 - 0
shares/js/common.js

@@ -1733,4 +1733,26 @@ function closeflowDialog(id) {
 			flowDialogs.push(flowDialog);
 		}
 	}
+}
+
+function changeUrl(action){
+	try{
+		uuid = window.top.getUUID();
+	}catch(e){
+		// alert("uuid为空,请联系管理员!")
+	}
+
+	if(uuid && action){
+		if(action.indexOf("?")!=-1){
+			action = action+"&uuid="+uuid;
+		}else{
+			action = action+"?uuid="+uuid;
+		}
+	}
+	return action;
+}
+
+var uuid = "${session.loginID}";
+function getUUID(){
+	return uuid;
 }

+ 16 - 3
shares/js/yw/bpm/customflow/customStartFlow.js

@@ -481,7 +481,7 @@ function saveFlow() {
 		var oldTabid = $("#tabid").val();
 		window.parent.f_reloadTab(oldTabid);
 		window.parent.frames[oldTabid].closeODialog($("#dialogId").val());*/
-		var closetype = $("#closetype").val();
+		/*var closetype = $("#closetype").val();
 		var dialogId =  $("#dialogId").val();
 		var parentDialogId = "ligerWindow_"+$("#parentDialogId").val(); 
 		if(closetype==1){
@@ -492,7 +492,8 @@ function saveFlow() {
 			var oldTabid = $("#tabid").val();
 			window.parent.f_reloadTab(oldTabid);
 			window.parent.frames[oldTabid].closeODialog($("#dialogId").val());
-		}
+		}*/
+		closeSelf()
 	}else{
 		$("#sbmbtn").removeAttr("disabled");
 	}
@@ -511,6 +512,18 @@ function tempformJs() {
 	nextTacheInfoDialog.hidden();
 }
 
-
+//保存草稿
+function saveDraft() {
+	if(document.frames == undefined){
+		window.frames["formIns"].replaceTextarea();
+	} else {
+		document.frames.formIns.replaceTextarea();
+	}
+	if(document.frames == undefined){
+		window.frames["formIns"].draftsave();
+	} else {
+		document.frames.formIns.draftsave();
+	}
+}
 
 

+ 4 - 7
shares/js/yw/bpm/instance/startFlow.js

@@ -397,7 +397,7 @@ function saveFlow() {
 		}
 	});
 	if(result1){
-		var closetype = $("#closetype").val();
+		/*var closetype = $("#closetype").val();
 		var dialogId =  $("#dialogId").val();
 		var parentDialogId = "ligerWindow_"+$("#parentDialogId").val(); 
 		if(closetype==1){
@@ -408,7 +408,8 @@ function saveFlow() {
 			var oldTabid = $("#tabid").val();
 			window.parent.f_reloadTab(oldTabid);
 			window.parent.frames[oldTabid].closeODialog($("#dialogId").val());
-		}
+		}*/
+		closeSelf();
 	}else{
 		$("#sbmbtn").removeAttr("disabled");
 	}
@@ -416,7 +417,7 @@ function saveFlow() {
 }
 
 //表单暂存
-function tempformJs() {  
+function tempformJs() {
 	if(document.frames == undefined){
 		window.frames["formIns"].replaceTextarea();
 	} else {
@@ -426,7 +427,3 @@ function tempformJs() {
 	$(window.frames["formIns"].document).find("#formIns").submit();
 	nextTacheInfoDialog.hidden();
 }
-
-
-
-

+ 94 - 0
shares/js/yw/bpm/oa.js

@@ -1043,3 +1043,97 @@ function existODialog(poDialogs,id) {
 	}
 	return flag;
 }
+
+function draftsaveAjaxForm(actionUrl) {
+	$.ajax({
+		// 几个参数需要注意一下
+		type : "POST",// 方法类型
+		dataType : "json",// 预期服务器返回的数据类型
+		url : changeUrl(actionUrl),
+		data : $('#formIns').serialize(),
+		success : function(returndata) {
+			parent.document.getElementById("formInsId").value = returndata;
+			document.getElementById("universalid").value = returndata;
+			parent.saveFlowForDraft("FlowAction.do?uuid="+uuid, "#insForm");
+		},
+		error : function(returndata) {
+			alert("表单提交异常,请检查网络重新登录或联系管理员!");
+		}
+	});
+}
+
+var uuid = "${session.loginID}";
+function getUUID(){
+    return uuid;
+}
+
+function saveFlowForDraft() {
+	if($("#insNameText").is(":visible")) {
+		$("#insName").val($("#insNameText").val());
+	}
+	if($.trim($("#insName").val()) == ''){
+		addError("流程标题不能为空!");
+		window.scrollTo(0,0);
+		return false;
+	}
+	if($.trim($("#insName").val()).length > 100){
+		addError("流程标题不能超过100个字!");
+		window.scrollTo(0,0);
+		return false;
+	}
+	$("#draftBtn").attr("disabled", "disabled");
+	$("#task").val("startForDraft");
+	var x = $("#insForm").serializeArray();
+	$.each(x, function(i, field) {
+		field.value = encodeURI(field.value);
+	});
+	var tmodelIds = $("[name*='tmodelId_']");
+	for (var i = 0; i < tmodelIds.length; i++) {
+		var bool = false;
+		var isCheck = $("#isCheck_" + tmodelIds[i].value).val();
+		if (isCheck == '1') {
+			$("input[name='tmodel_" + tmodelIds[i].value + "']").each(
+				function() {
+					if (this.checked) {
+						bool = true;
+					}
+				});
+			if (!bool) {
+				$("#validateTip").show();
+				$("#sbmbtn").removeAttr("disabled");
+				return false;
+			}
+		}
+	}
+	var result1 = false;
+	$.ajax({
+		url : "FlowAction.do?uuid="+window.top.getUUID(),
+		async : false,
+		type : "post",
+		data : x,
+		dataType : 'json',
+		success : function(data) {
+			var resultState = data[0].resultState;
+			var resultInfo = data[0].resultInfo;
+			if (!resultState){
+				addError(resultInfo);
+			} else {
+				addInfo("保存草稿成功!");
+				result1 = true;
+			}
+		},
+		error : function() {
+			alert("数据处理失败,请检查网络重新登录或联系管理员!");
+			$("button").removeAttr("disabled");
+		},
+		beforeSend : function() {
+			//$("button").attr("disabled", "disabled");
+		}
+	});
+	$("#draftBtn").removeAttr("disabled");
+	if(result1){
+		var oldTabid = $("#tabid").val();
+		//window.parent.frames['${param.tabid }'].loadData();
+		window.parent.f_reloadTab(oldTabid);
+	}
+}

+ 4 - 1
src/main/bpm/com/yw/bpm/core/service/CoreService.java

@@ -142,5 +142,8 @@ public interface CoreService {
 	 * @throws Exception 流程启动异常
 	 */
 	public ProcessResult startFlowComplete(JSONObject flowInfo, User user, String formInsId) throws Exception;
-	
+
+	public ProcessResult startForDraft(FlowInstance flowInstance, TacheInstance startTacheInstance,
+									   List<TacheInstance> nextTacheInstances, List<FileInfo> fileList, String noticeOther, Task task,
+									   String linkFlowInsId);
 }

+ 29 - 0
src/main/bpm/com/yw/bpm/core/service/CoreServiceImpl.java

@@ -111,6 +111,8 @@ public class CoreServiceImpl implements CoreService {
 							   List<TacheInstance> nextTacheInstances, List<FileInfo> fileList, String noticeOther, Task task,
 							   String linkFlowInsId) {
 		ProcessResult pr = new ProcessResult();
+		// 先删除旧的实例
+		bpmFlowDao.deleteById(flowInstance.getInsId());
 		// 创建新的流程实例
 		//flowInstance.setCreatedate(DateUtil.getCurSysDate(Constant.DATETIME_FORMATE));
 		flowInstance.setCreatedate(new Date());
@@ -3100,5 +3102,32 @@ public class CoreServiceImpl implements CoreService {
 		return pr;
 	}
 
+	@Override
+	@Transactional
+	public ProcessResult startForDraft(FlowInstance flowInstance, TacheInstance startTacheInstance,
+									   List<TacheInstance> nextTacheInstances, List<FileInfo> fileList, String noticeOther, Task task,
+									   String linkFlowInsId) {
+		ProcessResult pr = new ProcessResult();
+		// 先删除旧的实例
+		bpmFlowDao.deleteById(flowInstance.getInsId());
+		// 创建新的流程实例
+		int result = bpmFlowDao.createFlowInstance(flowInstance);
+		if (result != 1) {
+			pr.setResultState(false);
+			pr.setResultInfo(ProcessDefine.FLOW_ERROR_1);
+			return pr;
+		}
+		try {
+			changeInsDataStateByInsId(linkFlowInsId, flowInstance, "1"); // 改变实例数据状态和关联流程
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		// 保存上传的附件
+		for (FileInfo info : fileList) {
+			bpmFlowDao.createFileInfo(info);
+		}
+		pr.setResultState(true);
+		return pr;
+	}
 }
 

+ 245 - 0
src/main/bpm/com/yw/bpm/instance/action/FlowAction.java

@@ -64,6 +64,7 @@ public class FlowAction extends BaseAction {
 	private String customPrintFlow = "/yw/bpm/customfrom/customPrintFlow.jsp"; // 自定义流程打印页面
 	private String customPrintForAll = "/yw/bpm/customfrom/customPrintForAll.jsp"; // 自定义流程打印页面
 	private String customViewFlowForGov = "/yw/bpm/customfrom/customViewFlowForGov.jsp"; // 公文查看页面
+	private String customEditDraft = "/yw/bpm/customfrom/customEditDraft.jsp"; // 自定义流程草稿页面
 
 	@Override
 	public void afterSourceAction(HttpServletRequest request, HttpServletResponse response) throws Exception {
@@ -415,6 +416,24 @@ public class FlowAction extends BaseAction {
 			this.exportRepeat(request, response);
 			this.path = "ajax";
 			return;
+		} else if ("startForDraft".equals(task)) {// 保存草稿
+			this.startFlowForDraft(request, response);
+			this.path = "ajax";
+			return;
+		} else if ("toDraftList".equals(task)) {// 前往待办列表
+			this.setStateForSearch(request, response);
+			this.path = UrlMapping.bpmUrlMappings.get("FlowAction.flowDraftUrl");
+			return;
+		} else if ("draftList".equals(task)) {//
+			this.getListOfFlowInstanceForDraft(request, response);
+			this.path = "ajax";
+			return;
+		} else if ("toEditDraft".equals(task)) {
+			this.toEditDraft(request, response);
+			if(this.path == null){
+				this.path = this.customEditDraft;
+			}
+			return;
 		}
 
 		// 只有待办列表是根据环节表进行查询
@@ -2576,4 +2595,230 @@ public class FlowAction extends BaseAction {
 			 out.close();
 		}
 	}
+
+	/**
+	 * 保存草稿
+	 *
+	 * @param request
+	 * @param response
+	 * @throws Exception
+	 */
+	private void startFlowForDraft(HttpServletRequest request, HttpServletResponse response) throws Exception {
+		PrintWriter out = response.getWriter();
+		String creator = String.valueOf(oasession.getLoginID());
+		String groupid = String.valueOf(oasession.getGroup().getId());
+		//
+		Map<String, String> map = ServletUtil.getMapFromRequest(request, "utf-8");
+		//
+		int validate = this.validate(map, "start");
+		if (validate > 0) {
+			out.print(PromptDefine.validateNoPassCHS);
+			return;
+		}
+		String formInsId = map.get("formInsId");
+		if (formInsId != null && !"".equals(formInsId)) {
+			if (!StringUtil.stringIsNumber(formInsId)) {
+				out.print(PromptDefine.browserIsNoIE);
+				return;
+			}
+		}
+		//
+		String officeId = map.get("officeId");
+		if ("".equals(officeId)) {
+			officeId = "0";
+		}
+		FlowInstance finstance = new FlowInstance();
+		finstance.getCreator().setUserId(creator);
+		finstance.getCreator().setUsername(oasession.getName());
+		finstance.getGroupid().setGroupId(groupid);
+		finstance.setInsId(map.get("insId"));
+		finstance.setInsName(map.get("insName"));
+		finstance.setInsRemark(map.get("remark"));
+		finstance.getModelId().setModelId(map.get("modelId"));
+		finstance.setFormInsId(map.get("formInsId"));
+		finstance.getFormId().setFormId(map.get("formId"));
+		finstance.getOfficeId().setUniversalid(officeId);
+		finstance.getState().setValue("11");//设置状态为草稿
+		finstance.getGroupxuserid().setId(String.valueOf(oasession.getGroupXUser().getId()));
+		finstance.getGroupxuserid().setState(oasession.getGroupXUser().getState());
+
+		TacheInstance tinstance = new TacheInstance();
+		tinstance.getGroupid().setGroupId(groupid);
+		tinstance.setTinsId(map.get("tinsId"));
+		tinstance.getModelId().setModelId(map.get("modelId"));
+		tinstance.setRemark(map.get("remark"));
+		tinstance.getUser().setUserId(creator);
+		tinstance.getGroupxuserid().setId(String.valueOf(oasession.getGroupXUser().getId()));
+		tinstance.getInsId().setInsId(finstance.getInsId());
+		tinstance.getTmodelId().setTmodelId(map.get("tmodelId"));
+		tinstance.getState().setValue("2");
+		tinstance.getSe().setValue("1");
+		tinstance.setHasNext("0");
+		tinstance.setParallel("0");
+		tinstance.getIsSms().setValue(map.get("isNextSms"));
+		tinstance.getAuthorizedUser().setUserId("0");
+
+		TacheModel nextTmodel = new TacheModel();
+		nextTmodel.setTmodelId(map.get("nextTmodelId"));
+
+		Task task = new Task();
+		task.setInsId(finstance.getInsId());
+		task.setTinsId(tinstance.getTinsId());
+		task.setUsers(map.get("copytoUsers"));
+		task.setDistributedUser(String.valueOf(oasession.getLoginID()));
+		// task.setTaskContent(map.get("taskContent"));
+
+		String[] fileIds = request.getParameterValues("fileId");
+		List<FileInfo> fileList = new ArrayList<FileInfo>();
+		/*if (fileIds != null) {
+			for (String file : fileIds) {
+				if (!"".equals(file)) {
+					FileInfo info = new FileInfo();
+					info.getFileId().setUniversalid(file);
+					info.setIfileId(SystemUtil.getSeq());
+					info.getCreator().setUserId(creator);
+					info.getInsId().setInsId(finstance.getInsId());
+					info.getTinsId().setTinsId(tinstance.getTinsId());
+					info.getState().setValue("1");
+					fileList.add(info);
+				}
+			}
+		}*/
+		List<TacheInstance> nextTinstanceList = new ArrayList<TacheInstance>();
+		Set<String> keySet = map.keySet();
+		for (String key : keySet) {
+			if (key.startsWith("tmodelId_")) {
+				String tmodelId = key.replace("tmodelId_", "");
+				String isCheck = map.get("isCheck_" + tmodelId);
+				if (isCheck.equals("1")) {
+					String[] users = request.getParameterValues("tmodel_" + tmodelId);
+					for (String user : users) {
+						TacheInstance tache = new TacheInstance();
+						tache.getTmodelId().setTmodelId(tmodelId);
+						tache.getGroupxuserid().setId(user);
+						nextTinstanceList.add(tache);
+					}
+				} else {
+					TacheInstance tache = new TacheInstance();
+					tache.getTmodelId().setTmodelId(tmodelId);
+					nextTinstanceList.add(tache);
+				}
+			}
+		}
+
+		//
+		ApplicationContext cxt = AppSession.getApplicationContext();
+		CoreService bpmCoreService = (CoreService) cxt.getBean("bpmCoreService");
+		ProcessResult pr = bpmCoreService.startForDraft(finstance, tinstance, nextTinstanceList, fileList,
+				map.get("noticeUsers"), task, null);
+		String result = JsonUtil.getJson(pr, true);
+		// System.out.println(result);
+		out.print(result);
+
+	}
+
+	/**
+	 * 流程草稿列表
+	 *
+	 * @param request
+	 * @param response
+	 * @throws Exception
+	 * @throws SQLException
+	 */
+	@SuppressWarnings("rawtypes")
+	private void getListOfFlowInstanceForDraft(HttpServletRequest request, HttpServletResponse response)
+			throws SQLException, Exception {
+		PrintWriter out = response.getWriter();
+		String user = String.valueOf(oasession.getLoginID());
+		String insName = StringUtil.getString(request.getParameter("insName"));
+		insName = URLDecoder.decode(insName, "utf-8");
+		String name = StringUtil.getString(request.getParameter("name"));
+		name = URLDecoder.decode(name, "utf-8");
+		String starttime = StringUtil.getString(request.getParameter("starttime"));
+		String l_serial_no = StringUtil.getString(request.getParameter("l_serial_no"));
+		String endtime = StringUtil.getString(request.getParameter("endtime"));
+		String modelId = StringUtil.getString(request.getParameter("modelId"));
+		String sortname = StringUtil.getString(request.getParameter("sortname"));
+		String sortorder = StringUtil.getString(request.getParameter("sortorder"));
+		// System.out.println(sortname);
+		// System.out.println(sortorder);
+		String p = request.getParameter("p");
+		String pSize = request.getParameter("pSize");
+		Map<String, String> conditions = new HashMap<String, String>();
+		conditions.put("l_serial_no", l_serial_no);
+		conditions.put("starttime", starttime);
+		conditions.put("endtime", endtime);
+		conditions.put("name", name);
+		conditions.put("insName", insName);
+		conditions.put("modelId", modelId);
+		conditions.put("sortname", sortname);
+		conditions.put("sortorder", sortorder);
+		ApplicationContext cxt = AppSession.getApplicationContext();
+		FlowService flowService = (FlowService) cxt.getBean("bpmFlowService");
+		List iList = flowService.getListOfFlowInstanceForDraft(p, pSize, user, conditions);
+		int total = flowService.getCountOfFlowInstanceForDraft(user, conditions);
+		//
+		//
+		String result = JsonUtil.getJson(iList, true);
+		StringBuffer stb = new StringBuffer("{\"Rows\" : ");
+		stb.append(result);
+		stb.append(", \"Total\" : ");
+		stb.append(total);
+		stb.append("}");
+
+		out.print(stb.toString());
+		return;
+	}
+
+	/**
+	 * 前往流程草稿编辑页面
+	 *
+	 * @param request
+	 * @param response
+	 * @throws Exception
+	 */
+	private void toEditDraft(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+		String insId = StringUtil.getString(request.getParameter("insId"));
+		String modelId = StringUtil.getString(request.getParameter("modelId"));
+		ApplicationContext cxt = AppSession.getApplicationContext();
+		FlowService flowService = (FlowService) cxt.getBean("bpmFlowService");
+
+		Map<String, Object> result = flowService.toEditDraft(modelId,insId);
+
+		FlowInstance flow = (FlowInstance) result.get("flow");
+		String insName = flow.getInsName();
+		String state = flow.getState().getValue();
+		if (!"11".equals(state)) {
+			request.setAttribute("tip", "closeDiv");
+			this.addError("流程状态已改变!");
+			this.path = UrlMapping.bpmUrlMappings.get("tipUrl");
+			return;
+		}
+		request.setAttribute("modelName", insName);
+		request.setAttribute("fmodel", result.get("fmodel"));
+		request.setAttribute("tmodel", result.get("tmodel"));
+		request.setAttribute("ttype", result.get("ttype"));
+		request.setAttribute("nextTmodels", result.get("nextTmodels"));
+		request.setAttribute("nextHandTmodels", result.get("nextHandTmodels"));
+		request.setAttribute("imgflag", result.get("imgflag"));
+		request.setAttribute("flowInsId", null);
+		request.setAttribute("insId", insId);
+		request.setAttribute("flow", result.get("flow"));
+		request.setAttribute("fileList", result.get("fileList"));
+		/*List<FileInfo> fileList = (List) result.get("fileList");
+		StringBuffer files = new StringBuffer("");
+		for(FileInfo file : fileList){
+			files.append(file.getIfileId()+",");
+		}
+		request.setAttribute("fileId", files.toString());*/
+		String n_control = flow.getN_control();
+		if(n_control != null && n_control.equals("1")) {
+			this.path = "/yw/bpm/instance/editDraftFlow_v_2_1.jsp";
+		}
+		if(n_control != null && n_control.equals("0")) {
+			this.path = this.customEditDraft;
+		}
+		return;
+	}
 }

+ 9 - 2
src/main/bpm/com/yw/bpm/instance/action/FormInstanceAction.java

@@ -550,6 +550,11 @@ public class FormInstanceAction extends BaseAction {
 			formId = String.valueOf(request.getAttribute("formId"));
 			tmodelId = String.valueOf(request.getAttribute("tmodelId"));
 			to = "edit";
+		}else if ("draft".equals(request.getAttribute("type"))) {
+			formInsId = String.valueOf(request.getAttribute("formInsId"));
+			formId = String.valueOf(request.getAttribute("formId"));
+			tmodelId = String.valueOf(request.getAttribute("tmodelId"));
+			to = "draft";
 		}
 
 		//更新子标题
@@ -659,7 +664,8 @@ public class FormInstanceAction extends BaseAction {
 		request.setAttribute("formInsId", formInsId);
 		request.setAttribute("formId", formId);
 		request.setAttribute("tmodelId", tmodelId);
-		request.setAttribute("type", "create");
+		//request.setAttribute("type", "create");
+		request.setAttribute("type", "draft");
 		this.editIns(request, response);
 	}
 
@@ -714,7 +720,8 @@ public class FormInstanceAction extends BaseAction {
 		request.setAttribute("formInsId", formInsId);
 		request.setAttribute("formId", formId);
 		request.setAttribute("tmodelId", tmodelId);
-		request.setAttribute("type", "create");
+		//request.setAttribute("type", "create");
+		request.setAttribute("type", "draft");
 		this.editIns(request, response);
 	}
 

+ 3 - 1
src/main/bpm/com/yw/bpm/instance/action/flow_urlMapping.xml

@@ -48,5 +48,7 @@
 		value="/yw/bpm/instance/listFlowStatistics.jsp"></url>	
 		
 	<url name="flowStatisticsMineUrl" action="FlowAction" remark="我的流程统计列表url"
-		value="/yw/bpm/instance/listFlowStatisticsMine.jsp"></url>	
+		value="/yw/bpm/instance/listFlowStatisticsMine.jsp"></url>
+	<url name="flowDraftUrl" action="FlowAction" remark="流程草稿url"
+		 value="/yw/bpm/instance/listFlowForDraft.jsp"></url>
 </urlMapping>

+ 1 - 0
src/main/bpm/com/yw/bpm/instance/dao/FlowDao.java

@@ -633,4 +633,5 @@ public interface FlowDao {
 	
 	public int updateInsSubName2OfFlowInstance(FlowInstance finstance);
 
+	public int deleteById(String flowInsId);
 }

+ 7 - 1
src/main/bpm/com/yw/bpm/instance/dao/FlowDaoImpl.java

@@ -240,7 +240,7 @@ public class FlowDaoImpl implements FlowDao {
 				+ "l_groupid, l_office_id, l_form_id, l_groupxuserid, l_pdf_id, v_ins_sub_name2)" + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
 		return jdbcTemplate.update(sql, new Object[] { finstance.getInsId(), finstance.getInsName(), finstance.getInsSubName(),
 				finstance.getInsRemark(), finstance.getModelId().getModelId(), finstance.getState().getValue(),
-				finstance.getCreator().getUserId(), finstance.getCreatedate(),
+				finstance.getCreator().getUserId(), DateUtil.getCurSysDate(Constant.DATETIME_FORMATE),
 				// finstance.getFileId().getUniversalid(),
 				finstance.getFormInsId(), finstance.getGroupid().getGroupId(), finstance.getOfficeId().getUniversalid(),
 				finstance.getFormId().getFormId(), finstance.getGroupxuserid().getId(), finstance.getPdfId().getUniversalid(), finstance.getInsSubName2() });
@@ -2690,4 +2690,10 @@ public class FlowDaoImpl implements FlowDao {
 
 		return results;
 	}
+
+	@Override
+	public int deleteById(String flowInsId) {
+		String sql = "DELETE FROM bpm_flow_instance WHERE l_ins_id=?";
+		return jdbcTemplate.update(sql, new Object[] { flowInsId });
+	}
 }

+ 33 - 0
src/main/bpm/com/yw/bpm/instance/service/FlowService.java

@@ -828,4 +828,37 @@ public interface FlowService {
 	public List<Map<String,Object>> getInfoForExportRepeat(Map<String, String> insInfo) throws Exception;
 	
 	public int updateInsSubName2OfFlowInstance(FlowInstance finstance);
+
+	/**
+	 * 分页查询流程草稿列表
+	 *
+	 * @param p
+	 *            【String】当前页数
+	 * @param pSize
+	 *            【String】每页显示个数
+	 * @param user
+	 *            【String】用户Id
+	 * @param conditions
+	 *
+	 * @return 流程实例列表 【{@code List<FlowInstance>}】
+	 * @throws SQLException
+	 * @throws Exception
+	 */
+	public List getListOfFlowInstanceForDraft(String p, String pSize,
+											  String user, Map<String, String> conditions) throws SQLException,
+			Exception;
+
+	/**
+	 * 统计流程草稿数量
+	 *
+	 * @param user
+	 *            【String】用户Id
+	 * @param conditions
+	 *
+	 * @return 流程草稿数量【int】
+	 */
+	public int getCountOfFlowInstanceForDraft(String user,
+											  Map<String, String> conditions);
+
+	public Map<String, Object> toEditDraft(String modelId,String insId) throws Exception;
 }

+ 82 - 0
src/main/bpm/com/yw/bpm/instance/service/FlowServiceImpl.java

@@ -3581,4 +3581,86 @@ public class FlowServiceImpl implements FlowService {
         }
 		return exportList;
 	}
+
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	@Override
+	public List getListOfFlowInstanceForDraft(String p, String pSize, String user, Map<String, String> conditions)
+			throws SQLException, Exception {
+		conditions.put("creator", user);
+		conditions.put("state", "11");
+
+		// 循环遍历判断是否有撤销权限
+		List<FlowInstance> list = bpmFlowDao.getListOfFlowInstanceForPage(StringUtil.stringToInt(p, 1),
+				StringUtil.stringToInt(pSize, 20), conditions);
+		return list;
+	}
+
+	@Override
+	public int getCountOfFlowInstanceForDraft(String user, Map<String, String> conditions) {
+		conditions.put("state", "11");
+		conditions.put("creator", user);
+		return bpmFlowDao.getCountOfFlowInstanceForPage(conditions);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	@Transactional
+	public Map<String, Object> toEditDraft(String modelId,String insId) throws Exception {
+		// 1、取出流程模版信息
+		// 2、取出流程启动环节信息
+		// 3、如果下一步为手动操作,则取出启动环节后续环节信息
+
+		// 1
+		FlowModel fmodel = bpmFlowModelDao.getFlowModelById(modelId);
+		// 2
+		Map<String, String> conditions = new HashMap<String, String>();
+		conditions.put("modelId", modelId);
+		conditions.put("se", "1");
+		TacheModel tmodel = bpmTacheModelDao.getTacheModelByConditions(conditions);
+		TacheType ttype = bpmTacheTypeDao.getTacheTypeById(tmodel.gettTypeId().gettTypeId());
+		// 3
+		conditions.clear();
+		conditions.put("modelId", modelId);
+		conditions.put("tmodelId", tmodel.getTmodelId());
+		List<PathModel> nextTmodels = bpmPathModelDao.getListOfPathModelByConditions(conditions);
+
+		// 4
+		List<PathModel> nextHandTmodels = new ArrayList<PathModel>();
+		for (PathModel path : nextTmodels) {
+			// 人员为手动选择
+			if ("5".equals(path.getNextTmodelId().getTacheUserType().getValue())) {
+				// 判断部门范围
+				if ("1".equals(path.getNextTmodelId().getTacheUserZwType().getValue())) {
+					// 上一环节操作人部门
+					OASession oasession = (OASession) SessionManager.getSession().getAttribute("oasession");
+					if (oasession != null) {
+						path.getNextTmodelId().getTacheUserZwGroup()
+								.setGroupId(String.valueOf(oasession.getGroup().getId()));
+					}
+				}
+				nextHandTmodels.add(path);
+			}
+		}
+
+		// 判断流程图是否已转化为图片
+		String imgflag = "";
+		String imgpath = Constant.FILE_ROOT_PATH + "/shares/document/flowimg/" + modelId + ".png";
+		File file = new File(imgpath);
+		if (file.exists()) {
+			imgflag = "1";
+		}
+
+		FlowInstance flow = bpmFlowDao.getFlowInstanceById(insId);
+
+		Map<String, Object> result = new HashMap<String, Object>();
+		result.put("fmodel", fmodel);
+		result.put("tmodel", tmodel);
+		result.put("ttype", ttype);
+		result.put("nextTmodels", nextTmodels);
+		result.put("nextHandTmodels", nextHandTmodels);
+		result.put("imgflag", imgflag);
+		result.put("flow", flow);
+		result.put("fileList", bpmFlowDao.getListOfFileInfoByInsId(insId));
+		return result;
+	}
 }

+ 4 - 0
src/main/bpm/com/yw/bpm/instance/service/FormInstanceServiceImpl.java

@@ -2128,6 +2128,10 @@ public class FormInstanceServiceImpl implements FormInstanceService {
                 s.append("parent.document.getElementById(\"formInsId\").value=\"" + formInsId + "\";");
                 s.append("parent.preProcess(\"FlowAction.do\", \"#insForm\");");
             }
+            if ("draft".equals(to)) {
+                s.append("parent.document.getElementById(\"formInsId\").value=\"" + formInsId + "\";");
+                s.append("parent.saveFlowForDraft();");
+            }
             s.append("});");
             submitjs.setType("text/javascript");
             submitjs.setScriptCode(s.toString());

+ 6 - 0
src/main/bpm/com/yw/bpm/pageflow/bpm_flow.xml

@@ -87,6 +87,12 @@
 			needLogin="true" />
 		<param list="" />
 	</action>
+	<action>
+		<forward id="/FlowAction?task=toDraftList" path="" type="工作流程"
+				 title="我的草稿" isMenu="1" isAuthor="1" />
+		<class name="com.yw.bpm.instance.action.FlowAction" needLogin="true" />
+		<param list="" />
+	</action>
 	<action>
 		<forward id="/FlowAction?task=toAll" path="" type="工作流程"
 			title="所有流程" isMenu="1" isAuthor="1" />

+ 7 - 2
src/main/contract/com/yw/contract/contract/action/ContractFlowCustomAction.java

@@ -47,8 +47,9 @@ import com.yw.oa.petition.action.BpmBaseAction;
 public class ContractFlowCustomAction  extends BpmBaseAction {
 	private String startContractUrl = "/yw/contract/contractFlowCustom/startContract.jsp";  
 	private String processContractUrl = "/yw/contract/contractFlowCustom/processContract.jsp";  
-	private String viewContractUrl = "/yw/contract/contractFlowCustom/viewContract.jsp";   
-	
+	private String viewContractUrl = "/yw/contract/contractFlowCustom/viewContract.jsp";
+	private String editDraftContractUrl = "/yw/contract/contractFlowCustom/editDraftContract.jsp";
+
 	private ContractEntryService contractEntryService;
 	private ContractInfo contractInfo; 
 	private List<ContractMaterial> contractMaterialList;
@@ -86,6 +87,10 @@ public class ContractFlowCustomAction  extends BpmBaseAction {
 			return;
 		} else if ("viewContract".equals(task)) {
 			viewContract(request, response);
+		} else if ("toEditDraft".equals(task)) {// 跳转到草稿页面
+			this.toProcessContract();
+			this.path = editDraftContractUrl;
+			return;
 		}
 	}
 

+ 6 - 1
src/main/contract/com/yw/contract/contract/action/PurchaseNoContractAction.java

@@ -48,7 +48,8 @@ public class PurchaseNoContractAction  extends BpmBaseAction {
 	private String viewContractPurchaseInfoUrl = "/yw/contract/purchaseNoContract/viewContractPurchaseInfo.jsp";
 	private String toSelectPurchaseUrl = "/yw/contract/purchaseNoContract/selectContractPurchase.jsp";
 	private String tipUrl = "/include/tips.jsp";
-	
+	private String editContractPurchaseUrl = "/yw/contract/purchaseNoContract/editDraftContractPurchase.jsp";
+
 	private ContractPurchaseService contractPurchaseService;
 	public ContractPurchaseForm contractPurchaseForm;
 	public List<ContractPurchaseDetail> contractPurchaseDetailList;
@@ -100,6 +101,10 @@ public class PurchaseNoContractAction  extends BpmBaseAction {
 			this.path = toSelectPurchaseMaterial(request, response); 
 		} else if ("purchaseDetailList".equals(task)) {
 			this.path = purchaseDetailList(request, response);
+		} else if ("toEditDraft".equals(task)) {// 跳转到草稿页面
+			this.toProcessContractPurchase();
+			this.path = editContractPurchaseUrl;
+			return;
 		}
 	}
 

+ 5 - 0
src/main/contract/com/yw/contract/paymentApply/action/PaymentApplyAction.java

@@ -51,6 +51,7 @@ public class PaymentApplyAction  extends BpmBaseAction {
 	private String processPaymentApplyUrl = "/yw/contract/paymentApply/processPaymentApply.jsp";  
 	private String viewPaymentApplyUrl = "/yw/contract/paymentApply/viewPaymentApply.jsp";   
 	private String viewPaymentApplyInfoUrl = "/yw/contract/paymentApply/viewPaymentApplyInfo.jsp";
+	private String edtDraftPaymentApplyUrl = "/yw/contract/paymentApply/editDraftPaymentApply.jsp";
 	private String tipUrl = "/include/tips.jsp";
 	
 	private PaymentApplyService paymentApplyService;
@@ -111,6 +112,10 @@ public class PaymentApplyAction  extends BpmBaseAction {
 			this.getSettlementAccountList(request, response);
 			this.path = PATH_AJAX;
 			return;
+		} else if ("toEditDraft".equals(task)) {// 跳转到草稿页面
+			this.toProcessPaymentApply();
+			this.path = edtDraftPaymentApplyUrl;
+			return;
 		}
 	}
 

+ 505 - 0
src/main/webapp/yw/bpm/customfrom/customEditDraft.jsp

@@ -0,0 +1,505 @@
+<%@page import="java.util.ArrayList"%>
+<%@page import="com.yw.bpm.instance.model.FileInfo"%>
+<%@page import="com.yw.bpm.instance.model.TacheInstance"%>
+<%@page import="com.yw.bpm.tache.model.TacheModel"%>
+<%@page import="java.util.List"%>
+<%@page import="com.yw.bpm.system.util.SystemUtil"%>
+<%@page import="com.yw.core.session.OASession"%>
+<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
+<jsp:useBean id="oasession" class="com.yw.core.session.OASession" scope="session" />
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html class=" width960">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<META http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
+<meta http-equiv="X-UA-Compatible" content="IE=edge;">
+<title>流程启动</title>
+<link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css" />
+<%-- <script src="${pageContext.request.contextPath }/liger/lib/jquery/jquery-1.3.2.min.js" --%>
+<!-- 	type="text/javascript"></script> -->
+<script type="text/javascript" src="/shares/js/jquery-1.8.2.js"></script>
+<script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
+<link href="${pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css" />
+<link href="${pageContext.request.contextPath}/yw/bpm/style/bootstrap.css" rel="stylesheet" type="text/css" />
+<link href="${pageContext.request.contextPath}/yw/bpm/style/flow.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="/shares/js/constant.js"></script>
+<script type="text/javascript" src="/shares/js/common.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/customflow/customStartFlow.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/instance/instance.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/oa.js"></script>
+<script type="text/javascript" src="/shares/js/file.js"></script>
+<script type="text/javascript">
+	var insId = "0";
+	var formId = "${requestScope.fmodel.formId.formId}";
+	var formInsId = "${requestScope.flow.formInsId}";
+	var hasOffice = "${requestScope.fmodel.hasOffice.value}";
+	$(function() {
+		document.onkeydown=function(evt){
+			if(evt.keyCode ==13){
+				return;
+			}
+		};
+		var nextUserTag = "${requestScope.tmodel.pathJudgeType.value }";
+		if(nextUserTag == "1"){
+			$("[name='nextUser']").hide();
+			var nextTmodelId = $("[name='nextTmodelId']").val();
+			$("#" + nextTmodelId).show();
+		}
+		
+		
+		$("[name='nextTmodelId']").change(function(){
+			$("[name='nextUser']").hide();
+			var nextTmodelId = $("[name='nextTmodelId']").val();
+			$("#" + nextTmodelId).show();
+		});
+		
+		if(formId != "0" && formInsId != "0"){
+			$("#formIns").attr("src", "${pageContext.request.contextPath }/${requestScope.fmodel.controlUrl }.do?task=toEditDraft&formId="
+					+ formId + "&tmodelId=${requestScope.tmodel.tmodelId }&flowInsId=${requestScope.flowInsId }&formInsId=" + formInsId+"&uuid="+window.top.getUUID());
+		}
+		
+		var nextObject = "${requestScope.tmodel.noticeObject}";
+		if(nextObject.indexOf("3") >= 0){
+			$("#noticeOther").show();
+		}
+		loadTypeTree("noticeButton",{type:"user", tab:"1", backId:"noticeUsers", backName:"noticeUsernames"});
+		loadTypeTree("copytoButton",{type:"user", tab:"1", backId:"copytoUsers", backName:"copytoUsernames"});
+		
+	});
+	
+	function openimg(){
+		$.ligerDialog.open({width : 1000, height : 300, target: $("#flowimg") }); 
+	}
+	
+	function show(targetId, self){
+		$("#" + targetId).show();
+		$(self).hide();
+		$(self).next().show();
+	}
+	function hide(targetId, self){
+		$("#" + targetId).hide();
+		$(self).hide();
+		$(self).prev().show();
+	}
+	
+	function closeSelf(){
+		var type = "${param.type}";
+		var parentDialogId = "ligerWindow_${param.parentDialogId}";
+		try {
+			if(type==1){
+				window.parent.frames['content'].frames['${param.tabid }'].closeODialog('${param.dialogId }');
+			} else if(type==2){
+				window.parent.frames[parentDialogId].closeODialog('${param.dialogId }');
+			}else {
+				window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');
+				$("div#${param.dialogId } .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+			}
+		} catch (e) {
+			$("div#${param.dialogId } .l-dialog-winbtn.l-dialog-close",window.parent.document).click(); 
+		}
+		
+	}
+</script>
+</head>
+<body style="background: none;">
+	<form action="FlowAction.do" method="post" id="insForm" name="insForm" onsubmit="return false;">
+		<div class="navbar1">
+			<div class="navbar-inner1">
+				<button type="button" onclick="chooseNextTache('${requestScope.ttype.submitButton }');" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
+					<span style="color: ${requestScope.ttype.submitColor }">${requestScope.ttype.submitButton }</span>
+				</button>
+				<button type="button" onclick="closeSelf();" class="btn" style="border-color: ${requestScope.ttype.closeColor };">
+					<span style="color: ${requestScope.ttype.closeColor }">${requestScope.ttype.closeButton }</span>
+				</button>
+				<button type="button" id="draftBtn" onclick="saveDraft();" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
+					<span style="color: ${requestScope.ttype.submitColor }">保存草稿</span>
+				</button>
+			</div>
+		</div>
+		<div class="navbar">
+			<div class="navbar-inner2">
+				<!-- 			<input type="text" style="clear:both;width: 0px;"> -->
+				<font id="insNameFont" style="color: black; font-family: 微软雅黑; font-size: 30px;">${requestScope.modelName }</font>
+				<input type="text" id="insNameText" style="margin-top: 5px; height: 20px; width: 500px; display: none;" value="${requestScope.modelName }">
+				<a id="insNameEdit" onclick="changeInsName()">点此编辑标题</a>
+				<a id="insNameEnter" onclick="confirmInsName();" style="display: none;">确定</a>
+				<input type="hidden" id="insName" name="insName" value="${requestScope.modelName }">
+			</div>
+		</div>
+		<div id="word_temp" class="wp" style="position: relative;">
+			<div id="print_body">
+				<c:if test="${requestScope.fmodel.formId.formId != '0' }">
+					<fieldset id="icon-top2">
+						<div class="wf_shadow">
+							<span class="z corner_41"></span>
+							<span class="y corner_12"></span>
+							<c:if test="${requestScope.fmodel.formId.formId != '0' }">
+								<iframe width="100%" onload="setFrame();" id="formIns" name="formIns" frameborder="0" scrolling="yes" style="width: 100%; overflow-y: hidden;" src=""> </iframe>
+							</c:if>
+							<span class="z corner_34"></span>
+							<span class="y corner_23"></span>
+						</div>
+					</fieldset>
+				</c:if>
+				<c:if test="${requestScope.tmodel.isOffice.value == 1 }">
+					<fieldset id="icon-top3" class="icon-top" style="width: 970px;">
+						<legend class="fieldsettop">
+							<i></i>
+							&nbsp;流程附件
+						</legend>
+						<div class="forum-container">
+							<table class="l-table-edit">
+								<c:if test="${requestScope.fmodel.hasOffice.value != 0 }">
+									<!-- 	<tr id="new">
+										<td class="l-table-edit-text">office文件:
+										</td>
+										<td class="l-table-edit-td">
+											<input type="text" name="officeName" id="officeName" class="width_200" readonly="readonly" value="">
+											<input type="hidden" name="officeId" id="officeId" value="">
+											<a id="createOffice" onclick="openOffice()">创建文档</a>
+											<a id="editOffice" style="display: none;" onclick="openOffice()">修改文档</a>
+										</td>
+									</tr> -->
+								</c:if>
+								<%-- <%
+									List<FileInfo> allfileList = (List) (request.getAttribute("fileList"));
+									List<FileInfo> fileList = new ArrayList();
+									List<FileInfo> delfileList = new ArrayList();
+									for (FileInfo file : allfileList) {
+										if ("1".equals(file.getState().getValue())) {
+											fileList.add(file);
+										} else if ("0".equals(file.getState().getValue())) {
+											delfileList.add(file);
+										}
+									}
+								%>  --%>
+											
+								<tr>
+									<td class="l-table-edit-text">附件:</td>
+									<td class="l-table-edit-td">
+									<%-- <%
+											if (fileList.size() > 0) {
+										%>
+									<table>
+										<tr>  
+											<td width="60%">附件</td>
+											<td width="40%"></td>
+										</tr>
+										
+										<%
+											for (FileInfo file : fileList) {
+										%>
+										<tr id="<%=file.getIfileId()%>"> 
+											<td width="60%"> 
+												<span id="<%=file.getIfileId()%>_filespan" class="l-file" len="15"><%=file.getFileId().getUniversalid()%></span>
+											</td>
+											<td width="40%">
+												<span id="<%=file.getIfileId()%>_span">
+													&nbsp;&nbsp;
+													<img width="12" height="12" title="删除" style="cursor: pointer; margin-bottom: -3px;" onclick="delFile('<%=file.getIfileId()%>')" src="/shares/images/no.png" complete="complete" />
+												</span> 
+											</td>
+										</tr>
+										<%
+											}
+										%>
+									</table>
+									<%
+											}
+										%> --%>
+										<jsp:include page="/include/file.jsp">
+											<jsp:param name="fieldName" value="fileId" />
+											<jsp:param name="folder" value="flow" />
+											<jsp:param name="isView" value="1" />
+											<jsp:param name="size" value="20" />
+											<jsp:param name="definedCss" value="fileUploadCss" />
+										</jsp:include>
+									</td>
+								</tr>
+
+							</table>
+						</div>
+					</fieldset>
+				</c:if>
+				<fieldset id="icon-top4" class="icon-top" style="width: 970px;">
+					<legend class="fieldsettop">
+						<i></i>
+						&nbsp;流程信息
+					</legend>
+					<div class="forum-container">
+						<table class="l-table-edit">
+							<c:choose>
+								<c:when test="${requestScope.tmodel.pathJudgeType.value == 1 }">
+									<tr>
+										<td class="l-table-edit-text">
+											下一环节
+											<FONT COLOR="red">*</FONT>
+											:
+										</td>
+										<td class="l-table-edit-td">
+											<select id="nextTmodelId" name="nextTmodelId" class="width_150 flowText">
+												<c:forEach items="${requestScope.nextTmodels }" var="tmodel">
+													<option value="${tmodel.nextTmodelId.tmodelId }">${tmodel.nextTmodelId.tmodelName }</option>
+												</c:forEach>
+											</select>
+										</td>
+									</tr>
+									<c:forEach items="${requestScope.nextHandTmodels }" var="nhTmodel" varStatus="count">
+										<tbody id="${nhTmodel.nextTmodelId.tmodelId }" name="nextUser">
+											<tr>
+												<td class="l-table-edit-text">
+													下一环节操作人
+													<FONT COLOR="red">*</FONT>
+													:
+												</td>
+												<td class="l-table-edit-td">
+													<input type="text" class="width_150 flowText" id="usersName${nhTmodel.nextTmodelId.tmodelId }" name="usersName${nhTmodel.nextTmodelId.tmodelId }" value="">
+													<input type="hidden" id="usersId${nhTmodel.nextTmodelId.tmodelId }" name="usersId${nhTmodel.nextTmodelId.tmodelId }" value="">
+													<input type="button" class="btn flowText" style="height: 25px;" id="usersButton${nhTmodel.nextTmodelId.tmodelId }" name="usersButton${nhTmodel.nextTmodelId.tmodelId }" value="选择人员">
+												</td>
+											</tr>
+											<script type="text/javascript">
+											$(document)
+											.ready(
+													function() {
+														loadTypeTree(
+																"usersButton${nhTmodel.nextTmodelId.tmodelId }",
+																{
+																	type : "user",
+																	tab:("${nhTmodel.nextTmodelId.tacheUser }" != "" && "${nhTmodel.nextTmodelId.tacheUser }" != "null") ? "4" : "1", 
+																	backId : "usersId${nhTmodel.nextTmodelId.tmodelId }",
+																	backName : "usersName${nhTmodel.nextTmodelId.tmodelId }",
+																	isMultiDept : "1",
+																	root : ("${nhTmodel.nextTmodelId.tacheUserZwType.value }" == "3") ? "${session.group.id }" : "${nhTmodel.nextTmodelId.tacheUserZwGroup.groupId }",
+																	groot : "${nhTmodel.nextTmodelId.tacheUser }"
+																});
+													});
+											</script>
+										</tbody>
+									</c:forEach>
+								</c:when>
+								<c:when test="${requestScope.tmodel.pathJudgeType.value == 0 }">
+									<c:if test="${fn:length(requestScope.nextHandTmodels) > 0}">
+										<tr>
+											<td class="l-table-edit-text">
+												下一环节操作人
+												<FONT COLOR="red">*</FONT>
+												:
+											</td>
+											<td class="l-table-edit-td"></td>
+										</tr>
+									</c:if>
+									<c:forEach items="${requestScope.nextHandTmodels }" var="nhTmodel" varStatus="count">
+										<tbody id="${nhTmodel.nextTmodelId.tmodelId }" name="nextUser">
+											<tr>
+												<td class="l-table-edit-text">${nhTmodel.nextTmodelId.tmodelName }<FONT COLOR="red">*</FONT>
+													:
+												</td>
+												<td class="l-table-edit-td">
+													<input type="text" class="width_150 flowText" id="usersName${nhTmodel.nextTmodelId.tmodelId }" name="usersName${nhTmodel.nextTmodelId.tmodelId }" value="">
+													<input type="hidden" id="usersId${nhTmodel.nextTmodelId.tmodelId }" name="usersId${nhTmodel.nextTmodelId.tmodelId }" value="">
+													<input type="button" class="btn flowText" style="height: 25px;" id="usersButton${nhTmodel.nextTmodelId.tmodelId }" name="usersButton${nhTmodel.nextTmodelId.tmodelId }" value="选择人员">
+												</td>
+											</tr>
+											<script type="text/javascript">
+												$(document)
+												.ready(
+														function() {
+															loadTypeTree(
+																	"usersButton${nhTmodel.nextTmodelId.tmodelId }",
+																	{
+																		type : "user",
+																		tab:("${nhTmodel.nextTmodelId.tacheUser }" != "" && "${nhTmodel.nextTmodelId.tacheUser }" != "null") ? "4" : "1", 
+																		backId : "usersId${nhTmodel.nextTmodelId.tmodelId }",
+																		backName : "usersName${nhTmodel.nextTmodelId.tmodelId }",
+																		isMultiDept : "1",
+																		root : ("${nhTmodel.nextTmodelId.tacheUserZwType.value }" == "3") ? "${session.group.id }" : "${nhTmodel.nextTmodelId.tacheUserZwGroup.groupId }",
+																		groot : "${nhTmodel.nextTmodelId.tacheUser }"
+																	});
+														});
+											</script>
+										</tbody>
+									</c:forEach>
+								</c:when>
+							</c:choose>
+							<tr>
+								<td class="l-table-edit-text">短信提醒:</td>
+								<td class="l-table-edit-td">
+									<input type="checkbox" id="isNextSms" name="isNextSms" value="1" <c:if test="${requestScope.tmodel.isSms.value ==  1}">
+										checked="checked"
+									</c:if>>
+									&nbsp;短信通知下一环节操作人
+								</td>
+							</tr>
+							<tr id="noticeOther" style="display: none;">
+								<td class="l-table-edit-text">通知其他人:</td>
+								<td class="l-table-edit-td">
+									<textarea id="noticeUsernames" name="noticeUsernames" class="flowText" rows="3" cols="50"></textarea>
+									<input type="hidden" id="noticeUsers" name="noticeUsers" value="">
+									<input type="button" style="height: 25px;" class="btn flowText" id="noticeButton" name="noticeButton" value="选择人员">
+								</td>
+							</tr>
+							<!-- 						</table> -->
+							<!-- 					</div> -->
+							<!-- 					<div class="forum-container"> -->
+							<!-- 						<table class="l-table-edit" style="margin-left: 10px; width: 950px;"> -->
+							<tr>
+								<td class="l-table-edit-text" colspan="2">
+									<div>
+										<a onclick="show('copytoTR', this);" style="color: #3853a8; cursor: pointer;">添加抄送</a>
+										<a onclick="hide('copytoTR', this);" style="color: #3853a8; cursor: pointer; display: none;">取消抄送</a>
+									</div>
+								</td>
+							</tr>
+							<tr id="copytoTR" style="display: none;">
+								<td class="l-table-edit-text">抄送对象:</td>
+								<td class="l-table-edit-td">
+									<textarea id="copytoUsernames" name="copytoUsernames" rows="3" cols="50" class="flowText"></textarea>
+									<input type="hidden" id="copytoUsers" name="copytoUsers" value="">
+									<input type="button" style="height: 25px;" class="btn flowText" id="copytoButton" name="copytoButton" value="选择人员">
+								</td>
+							</tr>
+
+							<!-- 						</table> -->
+							<!-- 					</div> -->
+							<!-- 					<div class="forum-container"> -->
+							<!-- 						<table class="l-table-edit" style="margin-left: 10px; width: 950px;"> -->
+							<tr>
+								<td class="l-table-edit-text">备注:</td>
+								<td class="l-table-edit-td">
+									<textarea rows="5" cols="100" id="remark" name="remark" class="flowText"></textarea>
+								</td>
+							</tr>
+						</table>
+					</div>
+				</fieldset>
+				<fieldset id="icon-top5" style="border: 1px solid #333333; width: 970px; display: none;">
+					<legend>
+						<i></i>
+						&nbsp;流转过程
+						<c:if test="${requestScope.imgflag == 1 }">
+							&nbsp;<img width="14" height="14" title="查看流程图" style="cursor: pointer;" onclick="openimg();" src="/shares/images/view.png" complete="complete" />
+							<font size="12px">点此查看流程图</font>
+						</c:if>
+					</legend>
+					<div id="maingrid4" style="margin-left: 10px; width: 900px;"></div>
+				</fieldset>
+				<fieldset></fieldset>
+
+				<div id="flowimg" style="margin-left: 10px; width: 950px; height: 250px; overflow: auto; display: none;">
+					<img src="/shares/document/flowimg/${requestScope.fmodel.modelId }.png" />
+				</div>
+				<br>
+			</div>
+
+		</div>
+		<!-- end wrap-->
+		<div style="position: fixed; bottom: 100px; right: 80px;">
+			<p class="back-to-top" id="top1" style="display: block;">
+				<a href="#top">
+					<span></span>
+					返回顶部
+				</a>
+			</p>
+			<c:if test="${requestScope.fmodel.formId.formId != '0' }">
+				<p class="back-to-top" id="top2" style="display: block;">
+					<a href="#icon-top2">
+						<span></span>
+						流程表单
+					</a>
+				</p>
+			</c:if>
+			<p class="back-to-top" id="top3" style="display: block;">
+				<a href="#icon-top3">
+					<span></span>
+					流程附件
+				</a>
+			</p>
+			<p class="back-to-top" id="top4" style="display: block;">
+				<a href="#icon-top4">
+					<span></span>
+					流程信息
+				</a>
+			</p>
+			<c:if test="${requestScope.imgflag == 1 }">
+				<p class="back-to-top" id="top5" style="display: block;">
+					<a onclick="locking();">
+						<span></span>
+						流转图
+					</a>
+				</p>
+			</c:if>
+		</div>
+		<input type="hidden" id="tmodelId" name="tmodelId" value="${requestScope.tmodel.tmodelId }">
+		<input type="hidden" id="modelId" name="modelId" value="${requestScope.fmodel.modelId }">
+		<input type="hidden" id="task" name="task" value="preProcess">
+		<input type="hidden" id="creator" name="creator" value="${session.loginID }">
+		<input type="hidden" id="groupxuserid" name="groupxuserid" value="${session.groupXUser.id }">
+		<input type="hidden" id="state" name="state" value="${session.groupXUser.state }">
+		<input type="hidden" id="groupid" name="groupid" value="${session.group.id }">
+		<input type="hidden" id="insId" name="insId" value="${requestScope.insId }">
+		<input type="hidden" id="tinsId" name="tinsId" value="<%=SystemUtil.getSeq()%>">
+		<input type="hidden" id="formInsId" name="formInsId" value="">
+		<input type="hidden" id="formId" name="formId" value="${requestScope.fmodel.formId.formId }">
+		<input type="hidden" id="tabid" name="tabid" value="${param.tabid }">
+		<input type="hidden" id="dialogId" name="dialogId" value="${param.dialogId }">
+		<input type="hidden" id="isMoreIns" name="isMoreIns" value="${requestScope.tmodel.isMoreIns.value }">
+		<input type="hidden" id="reqOffice" name="reqOffice" value="${requestScope.tmodel.reqOffice }">
+		<input type="hidden" id="pathJudgeType" name="pathJudgeType" value="${requestScope.tmodel.pathJudgeType.value }">
+		<input type="hidden" id="reqRemark" name="reqRemark" value="${requestScope.tmodel.reqRemark.value }">
+		<input type="hidden" id="linkFlowInsId" name="linkFlowInsId" value="${requestScope.flowInsId }">
+		<input type="hidden" id="se" name="se" value="${requestScope.tmodel.se.value }">
+
+		<div id="nextTacheInfo">
+			<div class="forum-container">
+				<table class="l-table-edit" style="margin-left: 10px; width: 750px !important;">
+					<tr>
+						<td class="l-table-edit-text">后续环节</td>
+						<td class="l-table-edit-td">查看和选择后续环节操作人</td>
+					</tr>
+					<tbody id="nextTacheInfoTd">
+					</tbody>
+					<tr>
+						<td style="text-align: center;" colspan="2">
+							<span id="validateTip" style="color: red; display: none;">每个环节都需要至少选择一个办理人!</span>
+						</td>
+					</tr>
+					<tr>
+						<td style="text-align: center;" colspan="2">
+							<button type="button" onclick="saveFlow();" class="btn" id="sbmbtn">
+								<span>${requestScope.ttype.submitButton }</span>
+							</button>
+							<button type="button" onclick="closeNextTacheInfo()" class="btn" id="clsbtn" style="display: none;">
+								<span>关闭</span>
+							</button>
+						</td>
+					</tr>
+				</table>
+			</div>
+		</div>
+		<div id="ly" class="zb"></div>
+		<div id="zb" class="zb_flowimg" onclick="unlock()" style="width: 900px; height: 800px; overflow-x: auto; overflow-y: hidden;">
+			<img src="/shares/document/flowimg/${requestScope.fmodel.modelId }.png" />
+		</div>
+		<script type="text/javascript">
+	function locking(){     
+		//console.log($(document).scrollTop());
+		$(".zb").width(document.body.clientWidth);     
+		$(".zb").height(document.body.clientHeight + $(document).scrollTop()); 
+		$(".zb").toggle();
+		$(".zb_flowimg").css("left", document.body.clientWidth/2 - $(".zb_flowimg").width()/2);
+		$(".zb_flowimg").css("top", document.body.clientHeight/2 - $(".zb_flowimg").height()/2 - 100 + $(document).scrollTop());
+		
+		$(".zb_flowimg").toggle();     
+	}
+	function unlock(){     
+		$(".zb").toggle();
+		$(".zb_flowimg").toggle();     
+	}
+	</script>
+	</form>
+	<!-- end nav-->
+</body>
+</html>

+ 22 - 1
src/main/webapp/yw/bpm/customfrom/customStartFlow.jsp

@@ -79,7 +79,7 @@
 		$(self).prev().show();
 	}
 	
-	function closeSelf(){
+	/*function closeSelf(){
 		var type = "${param.type}";
 		var parentDialogId = "ligerWindow_${param.parentDialogId}";
 		if(type==1){
@@ -89,6 +89,24 @@
 		}else {
 			window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');
 		}
+	}*/
+
+	function closeSelf(){
+		var type = "${param.type}";
+		var parentDialogId = "ligerWindow_${param.parentDialogId}";
+		try {
+			if(type==1){
+				window.parent.frames['content'].frames['${param.tabid }'].closeODialog('${param.dialogId }');
+			} else if(type==2){
+				window.parent.frames[parentDialogId].closeODialog('${param.dialogId }');
+			}else {
+				window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');
+				$("div#${param.dialogId } .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+			}
+		} catch (e) {
+			$("div#${param.dialogId } .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+		}
+
 	}
 </script>
 </head>
@@ -102,6 +120,9 @@
 				<button type="button" onclick="closeSelf();" class="btn" style="border-color: ${requestScope.ttype.closeColor };">
 					<span style="color: ${requestScope.ttype.closeColor }">${requestScope.ttype.closeButton }</span>
 				</button>
+				<button type="button" id="draftBtn" onclick="saveDraft();" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
+					<span style="color: ${requestScope.ttype.submitColor }">保存草稿</span>
+				</button>
 			</div>
 		</div>
 		<div class="navbar">

+ 726 - 0
src/main/webapp/yw/bpm/instance/editDraftFlow_v_2_1.jsp

@@ -0,0 +1,726 @@
+<%@page import="java.util.ArrayList"%>
+<%@page import="com.yw.bpm.instance.model.FileInfo"%>
+<%@page import="com.yw.bpm.instance.model.TacheInstance"%>
+<%@page import="com.yw.bpm.tache.model.TacheModel"%>
+<%@page import="java.util.List"%>
+<%@page import="com.yw.core.session.OASession"%>
+<%@ page import="com.yw.bpm.system.util.SystemUtil" %>
+<%@ page language="java" contentType="text/html;charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<jsp:useBean id="oasession" class="com.yw.core.session.OASession"
+	scope="session" />
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html class=" width960">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<META http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
+<meta http-equiv="X-UA-Compatible" content="IE=edge;IE=8;">
+<title>流程办理</title>
+<link
+	href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css"
+	rel="stylesheet" type="text/css" />
+<%-- <script src="${pageContext.request.contextPath }/liger/lib/jquery/jquery-1.3.2.min.js" --%>
+<!-- 	type="text/javascript"></script> -->
+ <script type="text/javascript" src="/shares/js/jquery-1.8.2.js"></script>
+<script
+	src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
+<link href="${pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css" />
+<link href="${pageContext.request.contextPath}/yw/bpm/style/bootstrap.css" rel="stylesheet" type="text/css" />
+<link href="${pageContext.request.contextPath}/yw/bpm/style/flow.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="/shares/js/constant.js"></script>
+<script type="text/javascript" src="/shares/js/common.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/oa.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/instance/instance.js"></script>
+<script type="text/javascript" src="/shares/js/file.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/raphael.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/promptDefine.js"></script>
+<%--<script type="text/javascript" src="/shares/js/yw/bpm/instance/processFlow.js"></script>--%>
+<script type="text/javascript" src="/shares/js/yw/bpm/instance/startFlow.js"></script>
+<style type="text/css">
+span[id$="_filespan"] ul{
+   list-style-type:none;
+   float: left;
+}
+</style>
+<script type="text/javascript">
+	var insId = "${requestScope.flow.insId}";
+	var formId = "${requestScope.flow.formId.formId}";
+	$(function() {
+		document.onkeydown=function(evt){
+			if(evt.keyCode ==13){
+				return;
+			}
+		}
+		var nextUserTag = "${requestScope.tmodel.pathJudgeType.value }";
+		if(nextUserTag == "1"){
+			$("[name='nextUser']").hide();
+			var nextTmodelId = $("[name='nextTmodelId']").val();
+			$("#" + nextTmodelId).show();
+		}
+
+
+		$("[name='nextTmodelId']").change(function(){
+			$("[name='nextUser']").hide();
+			var nextTmodelId = $("[name='nextTmodelId']").val();
+			$("#" + nextTmodelId).show();
+		});
+		$("#instructions").change(function(){
+			$("#remark").val($("#instructions").val());
+		});
+		var formInsId = "${requestScope.flow.formInsId}";
+		if(formInsId != "0"){
+			$("#formIns").attr("src", "${pageContext.request.contextPath }/bpmFormInstanceAction.do?task=editIns&formId="
+					+ formId + "&tmodelId=${requestScope.tmodel.tmodelId }&flowInsId=${requestScope.flowInsId }&formInsId=" + formInsId);
+		}
+
+		var nextObject = "${requestScope.tmodel.noticeObject}";
+		if(nextObject.indexOf("3") >= 0){
+			$("#noticeOther").show();
+		}
+		loadTypeTree("noticeButton",{type:"user", tab:"1,2,3", backId:"noticeUsers", backName:"noticeUsernames"});
+		loadTypeTree("assistButton",{type:"user", tab:"1,2,3", backId:"assistUsers", backName:"assistUsernames"});
+		loadTypeTree("copytoButton",{type:"user", tab:"1,2,3", backId:"copytoUsers", backName:"copytoUsernames"});
+	});
+
+	function closeSelf(){
+		var type = "${param.type}";
+		var parentDialogId = "ligerWindow_${param.parentDialogId}";
+		var dialogId = '${param.dialogId }';
+
+		try {
+			if(type==1){
+				window.parent.frames['content'].frames['${param.tabid }'].onLoad();
+				if(window.parent.frames['loginFlowAlert_win']){
+					window.parent.frames['loginFlowAlert_win'].onLoad();
+				}
+				window.parent.frames['content'].frames['${param.tabid }'].closeODialog('${param.dialogId }');
+			}else if(type==2){
+				window.parent.frames[parentDialogId].closeODialog('${param.dialogId }');
+			}else if(type==3){
+				window.parent.frames['content'].frames['${param.tabid }'].onLoad();
+				if(window.parent.frames['loginFlowAlert_win']){
+					window.parent.frames['loginFlowAlert_win'].onLoad();
+				}
+				window.parent.closeflowDialog('${param.dialogId }');
+			}else {
+				window.parent.frames['${param.tabid }'].loadData();
+				var poDialogs = window.parent.frames['${param.tabid }'].oDialogs;
+				var isExist = existODialog(poDialogs,dialogId);
+				if(isExist){
+					window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');
+				}else{
+					$("div#"+dialogId+" .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+				}
+			}
+		} catch (e) {
+			$("div#"+dialogId+" .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+		}
+	}
+
+	function openimg(){
+		//是否支持svg
+		/*var bool = Raphael.svg;
+		if(bool){
+			//$.ligerDialog.open({width : 1000, height : 300, target: $("#flowimg2") });
+			locking(2);
+		}else{
+			//$.ligerDialog.open({width : 1000, height : 300, target: $("#flowimg1") });
+			locking(1);
+		}*/
+		locking(1);
+	}
+
+
+	//表单暂存
+	function tempformJsForUpdate() {
+		if(document.frames == undefined){
+			window.frames["formIns"].replaceTextarea();
+		} else {
+			document.frames.formIns.replaceTextarea();
+		}
+		$(window.frames["formIns"].document).find("#formIns").attr("action","bpmFormInstanceAction.do?task=tempInsForUpdate");
+		$(window.frames["formIns"].document).find("#formIns").submit();
+		nextTacheInfoDialog.hidden();
+	}
+</script>
+</head>
+<body style="background: none;">
+<form action="FlowAction.do" method="post" id="insForm" name="insForm" onsubmit="return false;">
+	<div class="navbar1">
+		<div class="navbar-inner1">
+			<button type="button" onclick="chooseNextTache('${requestScope.ttype.submitButton }');" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
+				<span style="color: ${requestScope.ttype.submitColor }">${requestScope.ttype.submitButton }</span>
+			</button>
+			<%-- <button type="button" onclick="assistDialog.show();" class="btn" style="border-color: ${requestScope.ttype.assistColor };">
+				<span style="color: ${requestScope.ttype.assistColor }">${requestScope.ttype.assistButton }</span>
+			</button> --%>
+			<button type="button" onclick="closeSelf();" class="btn" style="border-color: ${requestScope.ttype.closeColor };">
+				<span style="color: ${requestScope.ttype.closeColor }">${requestScope.ttype.closeButton }</span>
+			</button>
+			<button type="button" id="draftBtn" onclick="tempformJsForUpdate();" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
+				<span style="color: ${requestScope.ttype.submitColor }">保存草稿</span>
+			</button>
+		</div>
+	</div>
+	<div class="navbar">
+		<div class="navbar-inner2">
+			<c:if test="${requestScope.tmodel.se.value == 1 }">
+				<font id="insNameFont" style=" color: black; font-family: 微软雅黑; font-size: 30px; ">${requestScope.flow.insName }</font>
+				<input type="text" id="insNameText" style="margin-top: 5px; height: 20px;width:500px; display: none;" value="${requestScope.flow.insName }">
+				<a id="insNameEdit" onclick="changeInsName()">点此编辑标题</a>
+				<a id="insNameEnter" onclick="confirmInsName();" style="display: none;">确定</a>
+				<input type="hidden" id="insName" name="insName" value="${requestScope.flow.insName }">
+			</c:if>
+			<c:if test="${requestScope.tmodel.se.value != 1 }">
+				<font id="insNameFont" style=" color: black; font-family: 微软雅黑; font-size: 30px; ">${requestScope.flow.insName }</font>
+				<font style="color: black; font-family: 微软雅黑; font-size: 20px; ">发起人:${requestScope.flow.creator.username }</font>
+				<input type="hidden" id="insName" name="insName" value="${requestScope.flow.insName }">
+			</c:if>
+		</div>
+	</div>
+	<div id="word_temp" class="wp" style="position: relative;">
+			<div id="print_body">
+				<c:if test="${requestScope.flow.formInsId != '0' }">
+				<fieldset id="icon-top2">
+					<div class="wf_shadow">
+						<span class="z corner_41"></span> <span class="y corner_12"></span>
+							<c:if test="${requestScope.flow.formInsId != '0' }">
+								<iframe width="100%" onload="setFrame();" id="formIns" name="formIns"
+										frameborder="0" scrolling="yes" style="width:100%;overflow-y : hidden;"
+										src="" >
+								</iframe>
+							</c:if>
+						<span class="z corner_34"></span> <span class="y corner_23"></span>
+					</div>
+				</fieldset>
+				</c:if>
+				<fieldset id="icon-top3" class="icon-top"
+					style="width: 970px; ">
+					<legend class="fieldsettop">
+						<i></i> &nbsp;流程附件
+					</legend>
+					<div class="forum-container">
+						<table class="l-table-edit">
+							<c:if test="${requestScope.flow.officeId.universalid!=0 && requestScope.flow.officeId.universalid!= null}">
+							<!-- 	<tr id="new">
+									<td class="l-table-edit-text">office文件:
+									</td>
+									<td class="l-table-edit-td">
+										<input type="text" name="officeName" class="width_200" id="officeName" readonly="readonly" value="${requestScope.tache.l_office_name }">
+										<input type="hidden" name="officeId" id="officeId" value="${requestScope.tache.l_office_id }">
+										<a id="editOffice" onclick="openOffice()">修改文档</a>
+									</td>
+								</tr> -->
+							</c:if>
+							<tr>
+								<td class="l-table-edit-text">附件模板:</td>
+								<td class="l-table-edit-td">
+									<jsp:include page="/include/file.jsp">						
+										<jsp:param name="fieldName" value="documentId"/>								
+										<jsp:param name="folder" value="flowModel"/> 
+										<jsp:param name="size" value="10"/>	
+										<jsp:param name="definedCss" value="file-style"/>
+										<jsp:param name="documentId" value="${requestScope.fmodel.attachmentTemplate}" /> 
+										<jsp:param name="isDownload" value="1"/>
+										<jsp:param name="isView" value="1" />
+										<jsp:param name="isDelFile" value="3"/>					
+									</jsp:include> 
+								</td>
+							</tr>
+							<tr>
+								<td class="l-table-edit-text">&nbsp;</td>
+								<td class="l-table-edit-td">&nbsp;</td>
+							</tr>
+							<% List<FileInfo> allfileList = (List)(request.getAttribute("fileList"));
+							   List<FileInfo> fileList = new ArrayList();
+							   List<FileInfo> delfileList = new ArrayList();
+							   for(FileInfo file:allfileList){
+								   if("1".equals(file.getState().getValue())){
+								   	   fileList.add(file);
+								   }else if("0".equals(file.getState().getValue())){
+									   delfileList.add(file);
+								   }
+							   }
+							   //当前环节信息
+							   TacheModel tacheModel = (TacheModel)request.getAttribute("tmodel");
+							%>
+							<tr>
+								<td class="l-table-edit-text">附件<span id="delLink"><% if(delfileList.size()>0) {%>(<a id="ahide" onclick="delfileshownhide();">查看已删除附件</a>)<%} %></span>:
+								</td>
+								<td class="l-table-edit-td">
+
+								<% if(allfileList.size()>0) {%>
+										<table>
+											<tr>
+												<td width="20%">上传环节</td>
+												<td width="30%">上传人</td>
+												<td width="50%">附件</td>
+											</tr>
+									    <% if(fileList.size()>0) {%>
+											<%
+											   for(FileInfo file:fileList){%>
+												   <tr id="<%=file.getIfileId()%>">
+														<td width="20%"><%=file.getTinsId().getTmodelId().getTmodelName() %></td>
+														<td width="30%"><%=file.getCreator().getUsername() %>(<%=file.getTinsId().getFinishdate().toString().substring(0, 19) %>)</td>
+														<td width="50%">
+															<% if(file.getCreator().getUserId().equals(String.valueOf(oasession.getLoginID()))){%>
+																<span id="<%=file.getIfileId()%>_filespan" class="l-file" len="15"><%=file.getFileId().getUniversalid() %></span>
+																<span id="<%=file.getIfileId()%>_span">
+																	&nbsp;&nbsp;<img width="12" height="12" title="删除" style="cursor: pointer;margin-bottom:-3px;" onclick="delFile('<%=file.getIfileId()%>')" src="/shares/images/no.png" complete="complete"/>
+																</span>
+															<%}else {%>
+															<span class="l-file" len="15"><%=file.getFileId().getUniversalid() %></span>
+															<%} %>
+															<%if(file.getTinsId().getTmodelId().getTmodelId().equals(tacheModel.getTmodelId())){ %>
+																<input type="hidden" id="<%=file.getIfileId()%>_tache" class="tache_file" value="<%=file.getIfileId() %>">
+															<%} %>
+													 	</td>
+												   </tr>
+											 <% }%>
+										<%} %>
+										</table>
+										<div id="delfiles" style="display: none;">
+										<table id="delfiletable">
+										 <% if(delfileList.size()>0) {%>
+											<% for(FileInfo file:delfileList){%>
+												   <tr id="<%=file.getIfileId()%>">
+														<td width="20%"><%=file.getTinsId().getTmodelId().getTmodelName() %></td>
+														<td width="30%"><%=file.getCreator().getUsername() %>(<%=file.getTinsId().getFinishdate().toString().substring(0, 19) %>)</td>
+														<td width="50%">
+															<span class="l-file" len="15"><%=file.getFileId().getUniversalid() %></span>
+															<span id="<%=file.getIfileId()%>_span">
+															<font color="red">(已删除,删除时间:<%=file.getDelTime().toString().substring(0, 19) %>)</font>
+															</span>
+													 	</td>
+												   </tr>
+											 <% }%>
+										 <% }%>
+										 </table>
+										</div>
+									<% }%>
+									<c:if test="${requestScope.tmodel.isOffice.value == 1 }">
+										<jsp:include page="/include/file.jsp">
+											<jsp:param name="fieldName" value="fileId"/>
+											<jsp:param name="folder" value="flow"/>
+											<jsp:param name="documentId" value=""/>
+											<jsp:param name="size" value="20"/>
+											<jsp:param name="isDelFile" value="1"/>
+										</jsp:include>
+									</c:if>
+									<c:if test="${requestScope.tmodel.isOffice.value == 0 }">
+										<% if(allfileList.size()==0) {%>无附件数据...<%} %>
+									</c:if>
+								</td>
+							</tr>
+						</table>
+					</div>
+				</fieldset>
+				<fieldset id="icon-top4" class="icon-top"
+					style="width: 970px; ">
+					<legend class="fieldsettop">
+						<i></i> &nbsp;流程办理
+					</legend>
+					<div class="forum-container">
+						<table class="l-table-edit">
+							<c:choose>
+								<c:when test="${requestScope.tmodel.pathJudgeType.value == 1 }">
+									<tr>
+										<td class="l-table-edit-text">下一环节<FONT COLOR="red">*</FONT>:
+										</td>
+										<td class="l-table-edit-td">
+											<select id="nextTmodelId" name="nextTmodelId" class="width_150 flowText">
+												<c:forEach items="${requestScope.nextTmodels }" var="tmodel">
+													<option value="${tmodel.nextTmodelId.tmodelId }">${tmodel.nextTmodelId.tmodelName }</option>
+												</c:forEach>
+											</select>
+										</td>
+									</tr>
+									<c:forEach items="${requestScope.nextHandTmodels }" var="nhTmodel" varStatus="count">
+										<tbody id="${nhTmodel.nextTmodelId.tmodelId }" name="nextUser">
+											<tr>
+												<td class="l-table-edit-text">下一环节操作人<FONT COLOR="red">*</FONT>:
+												</td>
+												<td class="l-table-edit-td">
+													<input type="text" class="width_150 flowText" style="margin-top: 4px;" id="usersName${nhTmodel.nextTmodelId.tmodelId }" name="usersName${nhTmodel.nextTmodelId.tmodelId }" value="">
+			 										<input type="hidden" id="usersId${nhTmodel.nextTmodelId.tmodelId }" name="usersId${nhTmodel.nextTmodelId.tmodelId }" value="">
+			 										<input type="button" class="btn flowText" style="height: 25px;" id="usersButton${nhTmodel.nextTmodelId.tmodelId }" name="usersButton${nhTmodel.nextTmodelId.tmodelId }" value="选择人员">
+												</td>
+											</tr>
+											<script type="text/javascript">
+												$(document).ready(function(){
+													loadTypeTree("usersButton${nhTmodel.nextTmodelId.tmodelId }",{type:"user", tab:"1", backId:"usersId${nhTmodel.nextTmodelId.tmodelId }", backName:"usersName${nhTmodel.nextTmodelId.tmodelId }", tabParam:[{tab:"1", isMultiDept:"1"}]});
+												});
+											</script>
+										</tbody>
+									</c:forEach>
+								</c:when>
+								<c:when test="${requestScope.tmodel.pathJudgeType.value == 0 }">
+									<c:if test="${fn:length(requestScope.nextHandTmodels) > 0}">
+										<tr>
+											<td class="l-table-edit-text">下一环节操作人<FONT COLOR="red">*</FONT>:
+											</td>
+											<td class="l-table-edit-td"></td>
+										</tr>
+									</c:if>
+									<c:forEach items="${requestScope.nextHandTmodels }" var="nhTmodel" varStatus="count">
+										<tbody id="${nhTmodel.nextTmodelId.tmodelId }" name="nextUser">
+											<tr>
+												<td class="l-table-edit-text">${nhTmodel.nextTmodelId.tmodelName }<FONT COLOR="red">*</FONT>:
+												</td>
+												<td class="l-table-edit-td">
+													<input type="text" class="width_150 flowText" style="margin-top: 4px;" id="usersName${nhTmodel.nextTmodelId.tmodelId }" name="usersName${nhTmodel.nextTmodelId.tmodelId }" value="">
+			 										<input type="hidden" id="usersId${nhTmodel.nextTmodelId.tmodelId }" name="usersId${nhTmodel.nextTmodelId.tmodelId }" value="">
+			 										<input type="button" class="btn flowText" style="height: 25px;" id="usersButton${nhTmodel.nextTmodelId.tmodelId }" name="usersButton${nhTmodel.nextTmodelId.tmodelId }" value="选择人员">
+												</td>
+											</tr>
+											<script type="text/javascript">
+												$(document)
+												.ready(
+														function() {
+															loadTypeTree(
+																	"usersButton${nhTmodel.nextTmodelId.tmodelId }",
+																	{
+																		type : "user",
+																		tab:("${nhTmodel.nextTmodelId.tacheUser }" != "" && "${nhTmodel.nextTmodelId.tacheUser }" != "null") ? "4" : "1",
+																		backId : "usersId${nhTmodel.nextTmodelId.tmodelId }",
+																		backName : "usersName${nhTmodel.nextTmodelId.tmodelId }",
+																		isMultiDept : "1",
+																		root : ("${nhTmodel.nextTmodelId.tacheUserZwType.value }" == "3") ? "${session.group.id }" : "${nhTmodel.nextTmodelId.tacheUserZwGroup.groupId }",
+																		groot : "${nhTmodel.nextTmodelId.tacheUser }"
+																	});
+														});
+											</script>
+										</tbody>
+									</c:forEach>
+								</c:when>
+							</c:choose>
+							<tr>
+								<td class="l-table-edit-text">当前环节名称:
+								</td>
+								<td class="l-table-edit-td">
+									${requestScope.tmodel.tmodelName }
+								</td>
+							</tr>
+							<c:if test="${requestScope.tmodel.handleValidate == 1 }">
+
+								<tr>
+									<td class="l-table-edit-text">短信验证码:
+									</td>
+									<td class="l-table-edit-td">
+										<input type="text" id="validateCode" name="validateCode" class="width_150 flowText">
+										<button type="button" class="btn" id="sendCode" name="sendCode" onclick="sendCode1();">
+										发送验证码
+										</button>
+										<button type="button" class="btn" id="resendTip" name="resendTip" style="color: red; display: none;" disabled="disabled">
+										60秒后可以重新发送
+										</button>
+										<button type="button" class="btn" id="resendCode" name="resendCode" onclick="sendCode2()" style="display: none;">
+										重新发送验证码
+										</button>
+										<span style="color: red; display:none;" id="errorTip" name="errorTip">验证码错误,请重新输入</span>
+									</td>
+								</tr>
+
+							</c:if>
+							<%-- <tr>
+								<td class="l-table-edit-text">短信提醒:
+								</td>
+								<td class="l-table-edit-td">
+									<input type="checkbox" id="isNextSms" name="isNextSms" value="1"
+									<c:if test="${requestScope.tmodel.isSms.value ==  1}">
+									checked="checked"
+									</c:if>
+									>&nbsp;短信通知下一环节操作人
+								</td>
+							</tr> --%>
+							<tr id="noticeOther" style="display: none;">
+								<td class="l-table-edit-text">通知其他人:
+								</td>
+								<td class="l-table-edit-td">
+									<textarea id="noticeUsernames" name="noticeUsernames" rows="3" cols="50" class="flowText"></textarea>
+								 	<input type="hidden" id="noticeUsers" name="noticeUsers" value="">
+								 	<input type="button" style="height: 25px;" class="btn flowText" id="noticeButton" name="noticeButton" value="选择人员">
+								</td>
+							</tr>
+							<tr>
+								<td class="l-table-edit-text" colspan="2">
+									<div>
+										<a onclick="show('copytoTR', this);" style="color: #3853a8;cursor: pointer;">添加抄送</a>
+										<a onclick="hide('copytoTR', this);" style="color: #3853a8;cursor: pointer;display: none;">取消抄送</a>
+									</div>
+								</td>
+							</tr>
+							<tr id="copytoTR" style="display: none;">
+								<td class="l-table-edit-text">抄送对象:
+								</td>
+								<td class="l-table-edit-td">
+									<textarea id="copytoUsernames" name="copytoUsernames" rows="3" cols="50" class="flowText"></textarea>
+								 	<input type="hidden" id="copytoUsers" name="copytoUsers" value="">
+								 	<input type="button" style="height: 25px;" class="btn flowText" id="copytoButton" name="copytoButton" value="选择人员">
+								</td>
+							</tr>
+							<tr>
+								<td class="l-table-edit-text" rowspan="2">环节审批:
+								</td>
+								<td class="l-table-edit-td">
+								<select id="instructions" class="flowText" style="width: 200px;">
+									<option value="">常用批示语</option>
+									<c:forEach items="${requestScope.inList }" var="in">
+										<option value="${in.instructions }">${in.instructions }</option>
+									</c:forEach>
+								</select>
+								</td>
+							</tr>
+							<tr>
+								<td class="l-table-edit-td">
+									<textarea rows="5" cols="100" class="flowText" id="remark" name="remark"></textarea>
+								</td>
+							</tr>
+						</table>
+					</div>
+				</fieldset>
+				<fieldset id="icon-top5" class="icon-top"
+					style="width: 970px; ">
+					<legend class="fieldsettop">
+						<i></i> &nbsp;流转过程
+						<c:if test="${requestScope.imgflag == 1 }">
+							&nbsp;<img width="14" height="14" title="查看流程图" style="cursor: pointer;" onclick="openimg();" src="/shares/images/view.png" complete="complete"/>
+								<font size="12px" style="cursor: pointer;" onclick="openimg();">点此查看流程图</font>
+						</c:if>
+					</legend>
+<!-- 					<div id="maingrid4" style="margin-left: 10px; width: 900px;"> -->
+					<c:forEach items="${requestScope.processList }" var="tache">
+						<div class="wf_shadow1">
+							<c:if test="${tache.taskCount != 0 || tache.assistCount != 0}">
+								<div style="position: absolute; margin-left: 800px; cursor: pointer; color: blue;" id="showTaskDetail_${tache.tache.tinsId}" onclick="showTaskDetail('${tache.tache.tinsId}');">查看抄送信息</div>
+								<div style="position: absolute; margin-left: 800px; cursor: pointer; color: blue; display: none;" id="hideTaskDetail_${tache.tache.tinsId}" onclick="showTaskDetail('${tache.tache.tinsId}');">隐藏抄送信息</div>
+							</c:if>
+							<c:if test="${tache.userHeaderImg.headerfileid!=null && tache.userHeaderImg.headerfileid!='' }">
+								<div style="position: absolute; margin-left: 5px; width: 90px;">
+									<img alt="" style="width: 40px; height:40px;" src="${tache.userHeaderImg.gpath }">
+								</div>
+							</c:if>
+							<c:if test="${tache.userHeaderImg.headerfileid==null || tache.userHeaderImg.headerfileid=='' }">
+								<div style="position: absolute; margin-left: 5px; width: 90px;">
+									<img alt="" style="width: 40px; height: 40px;" src="${pageContext.request.contextPath}/yw/bpm/style/header1.png">
+								</div>
+							</c:if>
+							<div class="marginleft60">
+								环节名称:<font class="blueFont">${tache.tache.tmodelId.tmodelName }</font>&nbsp;&nbsp;
+								创建时间:<font class="blueFont">${fn:substring(tache.tache.createdate, 0, 16) }</font>&nbsp;&nbsp;
+								<c:if test="${tache.tache.finishdate != null }">
+									环节办结:<font class="blueFont">${fn:substring(tache.tache.finishdate, 0, 16) }</font>&nbsp;&nbsp;
+								</c:if>
+								<c:if test="${tache.tache.state.value != 1 }">
+								    办理端:<font class="blueFont">${tache.tache.process_type == 1 ? '手机' : '网页'}</font>&nbsp;&nbsp;
+								</c:if>
+								<font style="color: red; font-size: 14px;">${tache.tache.state.dataName }</font>
+							</div>
+
+							<div class="marginleft60">
+								<font style="color: #0e0e0e; font-size: 20px;">${tache.tache.user.username }</font>
+								<font style="color: #0e0e0e; font-size: 14px;"> ${tache.tache.groupxuserid.groupId.groupName } (${tache.tache.groupxuserid.positionId.positionName })
+								<c:if test="${tache.tache.authorizedUser.userId!='0' && tache.tache.authorizedUser.userId!='' && tache.tache.authorizedUser.userId!=null}">
+								(授权:${tache.tache.authorizedUser.username})
+								</c:if>
+								</font>
+								<c:if test="${tache.tache.remark != null && fn:length(tache.tache.remark) > 0 }">
+									:
+								</c:if>
+							</div>
+							<c:if test="${tache.tache.remark != null && fn:length(tache.tache.remark) > 0 }">
+								<div class="marginleft60">
+									<font style="color: blue; font-size: 14px;">${tache.tache.remark }</font>
+								</div>
+							</c:if>
+							<c:if test="${tache.taskCount != 0 }">
+								<div class="taskDetail_${tache.tache.tinsId} marginleft60" style="display: none;">
+									<div><font class="blueFont12px">抄送信息</font></div>
+									<c:forEach items="${tache.task }" var="task">
+										<div>
+											抄送对象:<font class="blueFont12px">${task.username } </font>&nbsp;&nbsp;
+											抄送时间:<font class="blueFont12px">${fn:substring(task.createdate, 0, 16) }</font>
+										</div>
+									</c:forEach>
+								</div>
+							</c:if>
+							<c:if test="${tache.assistCount != 0 }">
+								<div class="taskDetail_${tache.tache.tinsId} marginleft60" style="display: none; ">
+									<div><font class="blueFont12px">协办信息</font></div>
+									<c:forEach items="${tache.assist }" var="task">
+										<div>
+											协办对象:<font class="blueFont12px">${task.assist.username }</font> &nbsp;&nbsp;
+											办理内容:<font class="blueFont12px">${task.assist.taskContent }</font> &nbsp;&nbsp;
+											创建时间:<font class="blueFont12px">${fn:substring(task.assist.createdate, 0, 16) }</font> &nbsp;&nbsp;
+											<c:if test="${task.assist.finishdate!='' && task.assist.finishdate!=null }">
+												完成时间:<font class="blueFont12px">${fn:substring(task.assist.finishdate, 0, 16) }</font> &nbsp;&nbsp;
+											</c:if>
+											<c:if test="${task.dialog.dialogInfo!='' && task.dialog.dialogInfo!=null }">反馈:
+                                                ${task.dialog.dialogInfo }
+                                            </c:if>
+										</div>
+									</c:forEach>
+								</div>
+							</c:if>
+						</div>
+					</c:forEach>
+<!-- 					</div> -->
+				</fieldset>
+
+
+				</div>
+				<br>
+			</div>
+
+	</div>
+	<!-- end wrap-->
+	<div style="position: fixed; bottom: 100px; right: 80px;">
+		<p class="back-to-top" id="top1" style="display: block;">
+			<a href="#top"><span></span>返回顶部</a>
+		</p>
+		<c:if test="${requestScope.flow.formInsId != '0' }">
+		<p class="back-to-top" id="top2" style="display: block;">
+			<a href="#icon-top2"><span></span>流程表单</a>
+		</p>
+		</c:if>
+		<p class="back-to-top" id="top3" style="display: block;">
+			<a href="#icon-top3"><span></span>流程附件</a>
+		</p>
+		<p class="back-to-top" id="top4" style="display: block;">
+			<a href="#icon-top4"><span></span>流程办理</a>
+		</p>
+		<p class="back-to-top" id="top5" style="display: block;">
+			<a href="#icon-top5"><span></span>流转过程</a>
+		</p>
+		<c:if test="${requestScope.imgflag == 1 }">
+			<p class="back-to-top" id="top6" style="display: block;">
+					<a onclick="openimg();"><span></span>流程图 </a>
+			</p>
+		</c:if>
+	</div>
+	<!--
+	-->
+	<input type="hidden" id="tmodelId" name="tmodelId" value="${requestScope.tmodel.tmodelId }">
+	<input type="hidden" id="tinsId" name="tinsId" value="<%=SystemUtil.getSeq()%>">
+	<input type="hidden" id="preTinsId" name="preTinsId" value="${requestScope.tache.preTinsId }">
+	<input type="hidden" id="insId" name="insId" value="${requestScope.flow.insId }">
+	<input type="hidden" id="modelId" name="modelId" value="${requestScope.fmodel.modelId }">
+	<input type="hidden" id="creator" name="creator" value="${requestScope.flow.creator.userId }">
+	<input type="hidden" id="groupxuserid" name="groupxuserid" value="${requestScope.flow.groupxuserid.id }">
+	<input type="hidden" id="state" name="state" value="${requestScope.flow.groupxuserid.state }">
+	<input type="hidden" id="task" name="task" value="process">
+	<input type="hidden" id="formInsId" name="formInsId" value="${requestScope.flow.formInsId }">
+	<input type="hidden" id="formId" name="formId" value="${requestScope.fmodel.formId.formId }">
+	<input type="hidden" id="tabid" name="tabid" value="${param.tabid }">
+	<input type="hidden" id="dialogId" name="dialogId" value="${param.dialogId }">
+	<input type="hidden" id="groupid" name="groupid" value="${requestScope.flow.groupid.groupId}">
+	<input type="hidden" id="isMoreIns" name="isMoreIns" value="${requestScope.tmodel.isMoreIns.value }">
+	<input type="hidden" id="pathJudgeType" name="pathJudgeType" value="${requestScope.tmodel.pathJudgeType.value }">
+	<input type="hidden" id="reqOffice" name="reqOffice" value="${requestScope.tmodel.reqOffice }">
+	<input type="hidden" id="se" name="se" value="${requestScope.tmodel.se.value }">
+	<input type="hidden" id="userid" name="userid" value="${requestScope.tache.groupxuserid.id}">
+	<input type="hidden" id="handleValidate" value="${ requestScope.tmodel.handleValidate}">
+	<input type="hidden" id="reqRemark" name="reqRemark" value="${requestScope.tmodel.reqRemark.value }">
+
+	<div id="nextTacheInfo">
+		<div class="forum-container">
+			<table class="l-table-edit" style="margin-left: 10px; width: 750px !important;">
+				<tr>
+					<td class="l-table-edit-text">
+						后续环节
+					</td>
+					<td class="l-table-edit-td">
+						查看和选择后续环节操作人
+					</td>
+				</tr>
+				<tbody id="nextTacheInfoTd">
+				</tbody>
+				<tr>
+					<td style="text-align: center;" colspan="2">
+						<span id="validateTip" style="color: red; display: none;">每个环节都需要至少选择一个办理人!</span>
+					</td>
+ 				</tr>
+				<tr>
+					<td style="text-align: center;" colspan="2">
+						<button type="button" onclick="saveFlow();" class="btn" id="sbmbtn">
+							<span>${requestScope.ttype.submitButton }</span>
+						</button>
+						<button type="button" onclick="closeNextTacheInfo()" class="btn" id="clsbtn" style="display: none;">
+							<span>关闭</span>
+						</button>
+					</td>
+ 				</tr>
+			</table>
+		</div>
+	</div>
+
+	<div id="ly" class="zb">
+	</div>
+	<div id="zb" class="zb_flowimg" onclick="unlock()" style=" width: 900px; height: 800px; overflow-x: auto;overflow-y:hidden;">
+		<div id="flowimg1" style="display: none;">
+		 	<img src="/shares/document/flowimg/${requestScope.fmodel.modelId }.png" />
+		 </div>
+		 <div id="flowimg2" style="display: none;">
+			<c:choose>
+				 <c:when test="${graph.svgCode!='' && graph.svgCode!=null }">
+				  	说明:<font color="#00a0e9">淡蓝色</font>代表已办环节,<font color="#6ea546">浅绿色</font>代表在办环节,黑色代表未办环节。
+					${graph.svgCode }
+				</c:when>
+			 	<c:otherwise>
+			 		 说明:<font color="red">该流程模板还未生成流程图!</font>
+			 	</c:otherwise>
+		 	</c:choose>
+		</div>
+	</div>
+	<script type="text/javascript">
+	function locking(type){
+		//console.log($(document).scrollTop());
+		$(".zb").width(document.body.clientWidth);
+		$(".zb").height(document.body.clientHeight + $(document).scrollTop());
+		$(".zb").toggle();
+		$(".zb_flowimg").css("left", document.body.clientWidth/2 - $(".zb_flowimg").width()/2);
+		var top = document.body.clientHeight/2 - $(".zb_flowimg").height()/2 - 300 + $(document).scrollTop();
+		$(".zb_flowimg").css("top", Math.abs(top));
+		$("#flowimg" + type).show();
+		$(".zb_flowimg").toggle();
+	}
+	function unlock(){
+		$(".zb").toggle();
+		$(".zb_flowimg").toggle();
+	}
+	</script>
+	<script type="text/javascript">
+					$(function(){
+						var tmodelId = null;
+					<%-- <% 	List<TacheInstance> tlist = (List<TacheInstance>)request.getAttribute("tList");
+						for(TacheInstance ti : tlist){
+							if(ti.getState().getValue().equals("2") && ti.getSe().getValue().equals("0")){
+								String tmodelid = ti.getTmodelId().getTmodelId();
+								%>
+								tmodelId = "<%=tmodelid%>";
+								$("#" + tmodelId).attr("stroke", "#00a0e9");
+								$("#" + tmodelId).attr("fill", "#ffffff");
+								$("#" + tmodelId).attr("stroke-width", "2");
+								$("#" + tmodelId).attr("font-weight", "bold");
+								$("#txt_" + tmodelId).attr("fill", "#00a0e9");
+								<%
+							} else if (ti.getState().getValue().equals("1")){
+								String tmodelid = ti.getTmodelId().getTmodelId();
+								%>
+								tmodelId = "<%=tmodelid%>";
+								$("#" + tmodelId).attr("stroke", "#6ea546");
+								$("#" + tmodelId).attr("stroke-width", "2");
+								$("#" + tmodelId).attr("font-weight", "bold");
+								$("#txt_" + tmodelId).attr("fill", "#6ea546");
+								<%
+							}
+						}
+					%> --%>
+					});
+					</script>
+</form>
+	<!-- end nav-->
+</body>
+</html>

+ 6 - 1
src/main/webapp/yw/bpm/instance/listFlowForAll.jsp

@@ -79,17 +79,22 @@
 										isAllowHide : false,
 										render : function(row) {
 											var html = "";
+											var state = "";
 											if (row.state.value != 0
 													|| (row.state.value == 0 && row.modelId.cancelCanRead.value == 1)) {
 												var dialogId = row.insId
 														+ new Date().getTime();
 												if (row.modelId.control.value == "1") {
+													if(row.state.value == 11){
+														state = "all";
+													}
 													html = '<a href=\"#\" onclick=\"openODialog(\'${pageContext.request.contextPath }/FlowAction.do?task=toInfo&state=all&insId='
 															+ row.insId
 															+ '&tabid='
 															+ getCurrentTabId()
 															+ '&dialogId='
 															+ dialogId
+															+ '&state=' + state
 															+ '\', \'查看流程信息\', \''
 															+ dialogId
 															+ '\');\">查看</a>&nbsp;';
@@ -105,7 +110,7 @@
 															+ '\');\">查看</a>&nbsp;';
 												}
 											}
-											if (row.state.value != 0 && row.state.value != 2) {
+											if (row.state.value != 0 && row.state.value != 2  && row.state.value != 11) {
 												html += '<a href=\"#\" onclick=\"dubanFlow(\''
 													+ row.insId + '\');\">督办</a>&nbsp;';
 											}

+ 193 - 0
src/main/webapp/yw/bpm/instance/listFlowForDraft.jsp

@@ -0,0 +1,193 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>	
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>流程列表</title>
+<link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css" />
+<script src="${pageContext.request.contextPath }/liger/lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
+<script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
+<link href="${pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="/shares/js/constant.js"></script> 
+<script type="text/javascript" src="/shares/js/common.js"></script> 
+<script type="text/javascript" src="/shares/js/yw/bpm/oa.js"></script>
+<script type="text/javascript" src="/shares/js/yw/bpm/promptDefine.js"></script> 
+<script type="text/javascript">
+	var grid = null;
+	$(function() {
+		grid = $("#maingrid4")
+				.ligerGrid(
+						{
+							columns : [
+									{
+										display : '流程标题',
+										name : 'insName',
+										width : 250
+									},
+									{
+										display : '流程类型',
+										name : 'modelId.typeId.typeName',
+										width : 120,
+										render: function(row){
+											var html = row.modelId.typeId.typeName;
+											return html;
+										}
+									},
+									{
+										display : '流程模版',
+										name : 'modelId.modelName',
+										width : 120,
+										render: function(row){
+											var html = row.modelId.modelName;
+											return html;
+										}
+									},
+									/* {
+										display : '流程发起者',
+										name : 'creator.username',
+										width : 100,
+										render: function(row){
+											var html = row.creator.username;
+											return html;
+										}
+									}, */
+									{
+										display : '保存时间',
+										name : 'createdate',
+										width : 150
+									},
+									{
+										display : '操作',
+										isAllowHide : false,
+										width : 200,
+										render : function(row) {
+											var html = '';
+// 											 
+											html = '<a href=\"#\" onclick=\"openODialog(\'${pageContext.request.contextPath }/FlowAction.do?task=toEditDraft&insId='
+					                        		+ row.insId + '&tabid=' + getCurrentTabId()+ '&modelId=' + row.modelId.modelId
+					                        		+ '&dialogId='+row.insId+'\'+getTime(), \'流程办理\', \''+row.insId+'\'+getTime());\">办理</a>&nbsp;';
+					                        		
+				                    		if(row.modelId.control.value == "1"){  
+					                        	html += '<a href=\"#\" onclick=\"openODialog(\'${pageContext.request.contextPath }/FlowAction.do?task=toInfo&state=all&insId='
+					                        		+ row.insId + '&tabid=' + getCurrentTabId()+ '&modelId=' + row.modelId.modelId
+					                        		+ '&dialogId='+row.insId+'\'+getTime(), \'流程查看\', \''+row.insId+'\'+getTime());\">查看</a>&nbsp;';
+				                    		}else if(row.modelId.control.value == "0"){ 
+				                    			html += '<a href=\"#\" onclick=\"openODialog(\'${pageContext.request.contextPath }/FlowAction.do?task=toCustomView&insId='
+					                        		+ row.insId + '&tabid=' + getCurrentTabId()
+				                        			+ '&dialogId='+row.insId+'\'+getTime(), \'流程查看\', \''+row.insId+'\'+getTime());\">查看</a>&nbsp;';
+				                    		}
+											 
+											return html;
+										}
+									} ],
+							usePager : true,
+							pageSize : 20,
+							parms: [{name: "insName", value: ""}, 
+							        {name: "starttime", value: ""}, 
+							        {name: "endtime", value: ""}, 
+							        {name: "modelId", value: ""}],
+							url : 'FlowAction.do?task=draftList&time='
+									+ new Date().getTime(),
+							pageParmName : 'p', //页索引参数名,(提交给服务器)
+							pagesizeParmName : 'pSize', //页记录数参数名,(提交给服务器)
+							width : '99.9%',
+							height : '99%',enabledSort : true,
+			                onError: function(){alert("数据加载失败,请刷新页面!");}
+						});
+
+		$("#pageloading").hide();
+		$("#starttime").ligerDateEditor({ showTime: false, width:120, labelAlign: 'left', format :"yyyy-MM-dd"});
+		$("#endtime").ligerDateEditor({ showTime: false, width:120, labelAlign: 'left', format :"yyyy-MM-dd"});
+		//$("#modelId").ligerComboBox(); 
+	});
+	function getTime(){
+		 return new Date().getTime();
+	}
+	function searchByKword(){
+		
+		grid.set("parms", [ {
+				name : "insName",
+				value : encodeURI($("#insName").val())
+			}, {
+				name : "starttime",
+				value : $("#starttime").val()
+			}, {
+				name : "endtime",
+				value : $("#endtime").val()
+			}, {
+				name : "modelId",
+				value : $("#modelId").val()
+			}]);
+		grid.set("newPage", "1");
+		grid.loadData(true);
+	}
+	
+	function searchAll() {
+		$("#insName").val(""); 
+		$("#starttime").val("");
+		$("#endtime").val("");
+		$("#modelId").val(""); 
+		searchByKword();
+	}
+	
+	function loadData(){
+		grid.loadData(true);
+	}
+</script>
+</head>
+<body>
+<div class="container-layout">
+<div id="title" class="form-button" style="width: 100%;">
+	<input onclick="closeTabUseInOA();" type="button" value="关闭" class="l-button guanbi">
+</div>
+<div class="default_search" style="margin: 0; width: 100%;">
+	<ul class="list_search" style="width:250px;">
+		<li class="title">流程标题:</li>
+		<li class="text">
+			<input type="text" id="insName" name="insName" style="width: 130px;">
+		</li>
+	</ul> 
+	<ul class="list_search" style="width:450px;">
+		<li class="title">发起时间:</li>
+		<li class="text">
+			<input type="text" id="starttime" name="starttime" style="width: 130px;">
+		</li>
+		<li class="title" style="width:10px; text-align: center; padding-left: 0px; padding-right: 3px;">
+			至
+		</li>
+		<li class="text">
+			<input type="text" id="endtime" name="endtime" style="width: 130px;">
+		</li>
+	</ul>
+</div>
+<div class="default_search" style="margin: 0; width: 100%;">
+	<ul class="list_search" style="width:250px;">
+		<li class="title">流程模版:</li>
+		<li class="text">
+			<select name="modelId" id="modelId" style="width: 130px;" >
+				<option value="" selected="selected">全部</option>
+			 	<c:forEach items="${requestScope.flows }" var="flow" varStatus="status">
+					<option value="${flow.modelId }">${flow.modelName }</option>
+			 	</c:forEach>
+			</select>
+		</li>
+	</ul>
+	<ul>
+		<li class="search-button">
+			<input type="button" class='l-button chaxun' name="search" onclick="searchByKword()" value="查询"/>
+			<input type="button" class='l-button chaxun' name="search" onclick="searchAll()" value="查询全部"/>
+		</li>
+	</ul>
+</div>
+		<div id="maingrid4" style="margin: 0; padding: 0; clear: both;"></div>
+
+
+		<div style="display: none;">
+			<!-- g data total ttt -->
+		</div>
+	</div>
+	<%@ include file="/include/message.jsp"%>
+</body>
+</html>

+ 6 - 2
src/main/webapp/yw/bpm/instance/listFlowForMine.jsp

@@ -80,10 +80,14 @@
 										isAllowHide : false,
 										render : function(row) {
 											var html = "";
+											var state = "";
 											if (row.state.value != 0 ||(row.state.value==0 && row.modelId.cancelCanRead.value==1)) {
 											 	if(row.modelId.control.value == "1"){
+													if(row.state.value == 11){
+														 state = "all";
+													}
 													html = '<a href=\"#\" onclick=\"openODialog(\'${pageContext.request.contextPath }/FlowAction.do?task=toInfo&insId='
-															+ row.insId + '&tabid=' + getCurrentTabId()+ '&modelId=' + row.modelId.modelId
+															+ row.insId + '&tabid=' + getCurrentTabId()+ '&modelId=' + row.modelId.modelId + '&state=' + state
 															+ '&dialogId='+row.insId+'\'+getTime(), \'流程办理\', \''+row.insId+'\'+getTime());\">查看</a>&nbsp;';
 												}else if(row.modelId.control.value == "0"){
 													html = '<a href=\"#\" onclick=\"openODialog(\'${pageContext.request.contextPath }/FlowAction.do?task=toCustomView&insId='
@@ -110,7 +114,7 @@
 					                    	if(row.state.value == 0){
 					      						 html+= '<a href=\"#\" onclick=\"showCancelRemark(\''+row.cancelRemark+'\');\">撤销原因</a>&nbsp;';
 					      					}
-					                    	if(row.state.value != 2 && row.state.value != 0){
+					                    	if(row.state.value != 2 && row.state.value != 0 && row.state.value != 11){
 					                    		html += '<a href=\"#\" onclick=\"backTins('+row.insId+')\">收回</a>&nbsp;';
 					                    	}
 					                    	if(row.state.value == 2 && (row.modelId.modelId == '200001' || row.modelId.modelId == '200002')){

+ 25 - 1
src/main/webapp/yw/bpm/instance/startFlow_v_2_1.jsp

@@ -77,6 +77,24 @@
 		$(self).hide();
 		$(self).prev().show();
 	}
+
+	function closeSelf(){
+		var type = "${param.type}";
+		var parentDialogId = "ligerWindow_${param.parentDialogId}";
+		try {
+			if(type==1){
+				window.parent.frames['content'].frames['${param.tabid }'].closeODialog('${param.dialogId }');
+			} else if(type==2){
+				window.parent.frames[parentDialogId].closeODialog('${param.dialogId }');
+			}else {
+				window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');
+				$("div#${param.dialogId } .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+			}
+		} catch (e) {
+			$("div#${param.dialogId } .l-dialog-winbtn.l-dialog-close",window.parent.document).click();
+		}
+
+	}
 </script>
 </head>
 <body style="background: none;">
@@ -86,9 +104,15 @@
 				<button type="button" onclick="chooseNextTache('${requestScope.ttype.submitButton }');" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
 					<span style="color: ${requestScope.ttype.submitColor }">${requestScope.ttype.submitButton }</span>
 				</button>
-				<button type="button" onclick="window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');" class="btn" style="border-color: ${requestScope.ttype.closeColor };">
+				<%--<button type="button" onclick="window.parent.frames['${param.tabid }'].closeODialog('${param.dialogId }');" class="btn" style="border-color: ${requestScope.ttype.closeColor };">
+					<span style="color: ${requestScope.ttype.closeColor }">${requestScope.ttype.closeButton }</span>
+				</button>--%>
+				<button type="button" onclick="closeSelf();" class="btn" style="border-color: ${requestScope.ttype.closeColor };">
 					<span style="color: ${requestScope.ttype.closeColor }">${requestScope.ttype.closeButton }</span>
 				</button>
+				<button type="button" id="draftBtn" onclick="tempformJs();" class="btn" style="border-color: ${requestScope.ttype.submitColor };">
+					<span style="color: ${requestScope.ttype.submitColor }">保存草稿</span>
+				</button>
 			</div>
 		</div>
 		<div class="navbar">

+ 1194 - 0
src/main/webapp/yw/contract/contractFlowCustom/editDraftContract.jsp

@@ -0,0 +1,1194 @@
+<%@page import="com.yw.bpm.system.util.SystemUtil" %>
+<%@page import="com.yw.core.session.OASession" %>
+<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
+<jsp:useBean id="oasession" class="com.yw.core.session.OASession" scope="session"/>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html class="width960">
+<head>
+    <title>流程审批</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <META http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge;">
+    <link href="${pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css"/>
+    <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css"/>
+    <link href="${pageContext.request.contextPath}/yw/bpm/form.css" rel="stylesheet" type="text/css"/>
+    <script type="text/javascript" src="/shares/js/jquery-1.8.2.js"></script>
+    <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
+    <script type="text/javascript" src="/shares/js/constant.js"></script>
+    <script type="text/javascript" src="/shares/js/common.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/oa.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/customflow/customFlow.js"></script>
+    <script type="text/javascript" src="/shares/js/file.js"></script>
+    <script type="text/javascript" src="/shares/datePicker/WdatePicker.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/yw/contract/contractFlowCustom/js/contract.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/seal/seal.js"></script> 
+    <script type="text/javascript">
+	    var insId = "${requestScope.flow.insId}";
+	    var formId = "${requestScope.flow.formId.formId}";
+	    var table_fields = "${curTacheModel.table_fields}"; 
+	    var departmental_opinion = table_fields.indexOf(",departmental_opinion,") > -1; 
+	    var dgm_opinion = table_fields.indexOf(",deputy_general_manager_opinion,") > -1; 
+	    var audit_dgm_opinion = table_fields.indexOf(",audit_deputy_general_manager_opinion,") > -1; 
+	    var gm_opinion = table_fields.indexOf(",general_manager_opinion,") > -1; 
+	    
+	    var finance_opinion = table_fields.indexOf(",finance_opinion,") > -1; 
+	    var chairman_opinion = table_fields.indexOf(",chairman_opinion,") > -1; 
+	    
+	    var se = "${curTacheModel.n_se}";
+        $(function () {  
+        	// 初始化合同类型监听器
+        	initContractTypeListener();
+        	
+        	// 设置初始合同类型值,用于后续变化检测
+        	var initialContractType = $("#contract_type").val();
+        	if (initialContractType) {
+        		$("#contract_type").data('last-value', initialContractType);
+        	}
+        	
+        	if (se != 1) {    
+        		 $("#addBuyInfo").remove();
+                 $(".substract1").remove();
+                 $("#addFromExcel").remove();
+                 
+                 $("#addPayInfo").remove();
+                 $(".substract2").remove();
+                 
+                 $(".TextDisplay").each(function (i, v) { // 	将input隐藏,显示该input的文本值(不带文本框)
+                     $(v).hide();
+                     if ($(v).val() == '') {
+                         //$(v).after('------------');
+                     } else {
+                         $(v).after($(v).val());
+                     }
+                 });
+                 
+                 // 非发起环节:根据合同类型隐藏采购申请单编号列和输入框
+                 var contractType = $("#contract_type").val();
+                 if(contractType == '1') {
+                     updateMaterialTableHeader(contractType);
+                     updatePurchaseNumberVisibility(contractType);
+                 }
+        	}else{
+        		// 发起环节:根据当前合同类型初始化需方供方显示(保留原有值)
+        		var contractType = $("#contract_type").val();
+        		if(contractType) {
+        			adjustPartyDisplay(contractType, true);
+        		}
+        				
+        		addMaterialIdAndName();
+        		addPayIdAndName();
+        		updateContractMoneyState(); 
+        		initPriceForProcess();
+        		
+        		// 如果是销售合同,初始化时隐藏采购申请单编号列和输入框
+        		if(contractType == '1') {
+        			updateMaterialTableHeader(contractType);
+        			updatePurchaseNumberVisibility(contractType);
+        		}
+        	}
+        	
+             
+        	$("#contract_signdate").ligerDateEditor({ showTime: false,  labelAlign: 'left'});
+        	loadTypeTree("selectUserButton1",{type:"singleuser",tab:"1,3,8",backId:"salesman",backName:"salesman_name"});
+        	loadTypeTree("selectDeptButton",{type:"singledept",tab:"1",backId:"duty_department",backName:"duty_department_name"});
+        	loadTypeTree("selectUserButton2",{type:"singleuser",tab:"1,3,8",backId:"duty_man",backName:"duty_man_name"});
+        	$("#contract_startdate").ligerDateEditor({ showTime: false,  labelAlign: 'left'});
+        	$("#contract_enddate").ligerDateEditor({ showTime: false,  labelAlign: 'left'});
+        	
+            //点击添加tr
+            $("#addBuyInfo").click(function () { 
+            	material_search();
+            });
+            $("#addPayInfo").click(function () { 
+            	addPayInfo();
+            	addPayIdAndName();
+            });
+            //删除某行数据
+            $(".substract1").live('click', function () {
+                var obj = $(this).parent().parent();
+                $.ligerDialog.confirm('确定删除该行', function (yes) {
+                    if (yes == true) {
+                        obj.remove();
+                        addMaterialIdAndName(); 
+                     	/* // 检查物料行是否为空
+                        if ($(".startTr1").not(".hide").length === 0) {
+                            $("#purchaseId").val('');
+                            $("#purchaseNumber").val('');
+                        } */
+                        calculateTotalPrice(); 
+                        updateContractMoneyState(); 
+                     	// 检查是否需要删除付款信息
+                        checkAndRemovePaymentInfo();
+                    }
+                });
+            });
+            
+            $(".substract2").live('click', function () {
+                var obj = $(this).parent().parent();
+                $.ligerDialog.confirm('确定删除该行', function (yes) {
+                    if (yes == true) {
+                        obj.remove();
+                        addPayIdAndName(); 
+                    }
+                });
+            });
+            
+         // 监听合同金额手动输入
+            $("#contract_money").on('input', function() {
+            	var contractMoney = parseFloat($("#contract_money").val());
+            	if(contractMoney && contractMoney > 0){
+            		// 标记为用户手动输入
+                    $(this).data("manual-input", true);
+            	}
+                // 注意:不在这里清除标记,防止初始化设置的标记被意外清除
+                //calculatePaymentAmount();
+            });
+            
+            // 监听付款比例变化
+            $(document).on('input', '.startTr2:not(.hide) .proportion,.startTr2:not(.hide) .amountPaid', function() {
+                calculatePaymentAmount();
+            });
+            
+            // 物料输入变化时更新状态
+            $(document).on('input', '.startTr1:not(.hide) input.price, .startTr1:not(.hide) input.priceTax, .startTr1:not(.hide) input.cess, .startTr1:not(.hide) input.qty', function () {
+                var row = $(this).closest('tr')[0];
+                calculatePrice(row);
+            }); 
+            
+            $("#contract_money").on('blur', function() {
+                var contractMoney = parseFloat($(this).val());
+                var totalPrice = parseFloat($("#totalPrice").val()) || 0;
+                
+                // 只有当totalPrice有值且合同金额小于物料总金额时,才进行提示和修正
+                if (totalPrice > 0 && (!contractMoney || contractMoney < totalPrice)) {
+                	$(this).removeData("manual-input");
+                	 $("#contract_money").val(totalPrice);
+                	 addError("合同金额不能小于物料总金额: " + totalPrice.toFixed(2));  
+                	 // 更新大写金额
+                	 updateContractMoneyUppercase();
+                } else {
+                	 // 即使没有修正,也要更新大写(用户手动修改金额的情况)
+                	 updateContractMoneyUppercase();
+                }
+                calculatePaymentAmount();
+            });
+            
+            // 监听合同金额变化,实时更新大写
+            $("#contract_money").on('input', function() {
+                updateContractMoneyUppercase();
+            });
+            
+            $(document).on('blur', '.startTr1:not(.hide) input.qty', function() {
+                var qty = parseFloat($(this).val()) || 0;
+                if (qty <= 0) { 
+                    addError("物料数量必须大于0");  
+                }
+            });
+        });
+ 
+        //保存表单
+        function save() {
+            saveAjaxForm("${pageContext.request.contextPath}/contractFlowCustomAction.do?task=process", "formIns");
+        }  
+        
+        function checkForm() {
+            var rs = true;
+			var contract_number = $("#contract_number").val();
+            if (contract_number) {
+                validContractNumber(contract_number, function(flag) {
+                    rs = flag ? checkFormMore() : false;
+                });
+            } else {
+                rs = checkFormMore();
+            }
+            return rs;
+        }
+        
+        function checkFormMore(){
+        	var mindate=$("#contract_startdate").val();
+ 			var maxdate=$("#contract_enddate").val();
+ 			var rs = true;
+
+			// 检查各字段是否需要验证 (启动节点或在 table_fields 配置中)
+			var contract_number_required = (se == 1 || table_fields.indexOf(',contract_number,') > -1);
+			var contract_name_required = (se == 1 || table_fields.indexOf(',contract_name,') > -1);
+			var contract_type_required = (se == 1 || table_fields.indexOf(',contract_type,') > -1);
+			var salesman_required = (se == 1 || table_fields.indexOf(',salesman_name,') > -1);
+			var contract_money_required = (se == 1 || table_fields.indexOf(',contract_money,') > -1);
+			var supplierName_required = (se == 1 || table_fields.indexOf(',supplierName,') > -1);
+
+			if(contract_number_required){
+				rs = $.validate({name:"contractInfo.contract_number",model:[{type:"require",msg:"合同编号不能为空!"},
+				                                                 {type:"len",max:100,msg:"合同编号长度不能超过100!"}]}) && rs; 
+			}
+			if(contract_name_required){
+				rs = $.validate({name:"contractInfo.contract_name",model:[{type:"require",msg:"合同名称不能为空!"},
+						{type:"len",max:100,msg:"合同名称长度不能超过 100!"}]}) && rs;
+			}
+			if(contract_type_required){
+				rs = $.validate({name:"contractInfo.contract_type",model:[{type:"require",msg:"合同类型不能为空!"}]}) && rs;
+			}
+			if(salesman_required){
+				rs = $.validate({name:"contractInfo.salesman",model:[{type:"require",msg:"经办人不能为空!"}]}) && rs;
+			}
+			if(contract_money_required){
+				rs = $.validate({name:"contractInfo.contract_money",model:[{type:"isNumber",msg:"只能是数字!"}]}) && rs;
+			}
+			// 根据合同类型验证不同字段:采购合同验证供方,销售合同验证需方
+			var contractType = $("#contract_type").val();
+			if(supplierName_required) {
+				if(contractType == '1') {
+					// 销售合同:验证需方(客户)
+					rs = $.validate({name:"firstparty_name_text",model:[{type:"require",msg:"需方不能为空!"}]}) && rs;
+				} else {
+					// 采购合同:验证供方(供应商)
+					rs = $.validate({name:"secondparty_name_text",model:[{type:"require",msg:"供方不能为空!"}]}) && rs;
+				}
+			}
+			if(departmental_opinion){
+				rs = $.validate({name: "departmental_opinion_imgval", model: [{type: "require", msg: "部门领导意见不能为空!"}]}) && rs;  
+			}
+			if(dgm_opinion){  
+				rs = $.validate({name: "deputy_general_manager_opinion_imgval", model: [{type: "require", msg: "分管副总意见不能为空!"}]}) && rs;  
+			}
+			if(audit_dgm_opinion){  
+				rs = $.validate({name: "audit_deputy_general_manager_opinion_imgval", model: [{type: "require", msg: "分管副总意见不能为空!"}]}) && rs;
+			}
+			if(gm_opinion){  
+				rs = $.validate({name: "general_manager_opinion_imgval", model: [{type: "require", msg: "总经理意见不能为空!"}]}) && rs;  
+			}
+			if(finance_opinion){  
+				rs = $.validate({name: "finance_opinion_imgval", model: [{type: "require", msg: "财务部门意见不能为空!"}]}) && rs;  
+			}
+			if(chairman_opinion){  
+				rs = $.validate({name: "chairman_opinion_imgval", model: [{type: "require", msg: "董事长意见不能为空!"}]}) && rs;  
+			}
+ 			if (se == 1) {
+ 				$(".startTr1").not(".hide").each(function (i, v) {
+ 	                rs = $.validate({ name: "contractMaterialList[" + i + "].qty", model: [{type: "require", msg: "数量不能为空!"},{type : "custom",validator:function(value){ return /^\d+(\.\d+)?$/.test(value) && parseFloat(value) > 0; },msg:"数量必须是大于 0 的数字!"}] }) && rs;
+ 	               rs = $.validate({ name: "contractMaterialList[" + i + "].price", model: [{type: "require", msg: "税前单价不能为空!"}] }) && rs;
+ 	                rs = $.validate({ name: "contractMaterialList[" + i + "].cess", model: [{type: "require", msg: "税率不能为空!"}] }) && rs; 
+ 	                rs = $.validate({ name: "contractMaterialList[" + i + "].priceTax", model: [{type: "require", msg: "税后单价不能为空!"}] }) && rs;
+ 	            });
+ 	 			
+ 	 			$(".startTr2").not(".hide").each(function (i, v) {
+ 	 				rs = $.validate({ name: "contractPaymentList[" + i + "].payType", model: [{type: "require", msg: "付款方式不能为空!"}] }) && rs;
+ 	                rs = $.validate({ name: "contractPaymentList[" + i + "].proportion", model: [{type: "require", msg: "比例不能为空!"},{type : "custom",validator:function(value){ return /^\d+(\.\d+)?$/.test(value) && parseFloat(value) > 0; },msg:"比例必须是大于 0 的数字!"}] }) && rs;
+ 	                rs = $.validate({ name: "contractPaymentList[" + i + "].amount", model: [{type: "require", msg: "金额不能为空!"}] }) && rs;
+ 	               /*  rs = $.validate({ name: "contractPaymentList[" + i + "].amountPaid", model: [{type: "require", msg: "已付金额不能为空!"}] }) && rs;  */
+ 	            });
+ 	 			
+ 	 			if(rs == true){
+ 	 				var detailSize = $('.startTr1:not(.hide)').length;
+ 	 				if(detailSize > 0){
+ 	 					var contract_money = parseFloat($("#contract_money").val());
+ 	 		            var totalPrice = parseFloat($("#totalPrice").val()) || 0;
+ 	 					if(totalPrice > 0) {
+ 	 						if(!contract_money){
+ 	 							$("#contract_money").val(totalPrice);
+ 	 						}else if(contract_money < totalPrice){
+ 	 							addError("合同金额不能小于物料总金额: " + totalPrice.toFixed(2));  
+ 	 							rs = false;
+ 	 						}
+ 	 					}
+ 	 				}
+ 	 			}
+ 			}
+ 			return rs; 
+        }
+        
+        function validContractNumber(contract_number, callback) { 
+        	var universalid = $("#universalid").val();
+            var isExistContractNum = false; 
+            $.ajax({ 
+                type: "POST", 
+                url: "contractEntry.do?task=isExistContractNumForFlow",  
+                data: { "contract_number": contract_number,"universalid":universalid, }, 
+                timeout: 10000, 
+                dataType: "json", 
+                async: false,
+                success: function (data) { 
+                    if (data != null) { 
+                        if (data.error  != null) { 
+                            addError(data.error);  
+                            isExistContractNum = true; 
+                        } 
+                    } 
+                    callback(!isExistContractNum); 
+                }, 
+                error: function () { 
+                    // 处理请求错误的情况 
+                    callback(false); 
+                } 
+            }); 
+        } 
+        
+        /* // 使用事件委托监听所有输入框的变化
+        $(document).on('input', '.startTr1:not(.hide) input.price, .startTr1:not(.hide) input.priceTax, .startTr1:not(.hide) input.cess, .startTr1:not(.hide) input.qty', function () {
+            // 当任何行的单价、税率、数量发生变化时,重新计算该行的另一单价和总价
+            var row = $(this).closest('tr')[0];
+            calculatePrice(row);
+        }); */
+        
+        // 页面加载完成后初始化总价
+        $(document).ready(function() {
+            // 只在有物料时才计算总价,避免将空值设置为0
+            if ($('.startTr1:not(.hide)').length > 0) {
+                calculateTotalPrice();
+            }
+            
+            // 初始化合同金额大写显示
+            if (se == 1) {
+                // 可编辑模式:使用updateContractMoneyUppercase函数
+                updateContractMoneyUppercase();
+            } else {
+                // 只读模式:直接从隐藏域或文本中获取金额
+                var contractMoneyVal = '${contractInfo.contract_money}';
+                if (contractMoneyVal && contractMoneyVal.trim() !== '') {
+                    var contractMoney = parseFloat(contractMoneyVal) || 0;
+                    $("#contract_money_uppercase_display").text(numberToChineseUppercase(contractMoney));
+                } else {
+                    $("#contract_money_uppercase_display").text('');
+                }
+            }
+        });
+
+		/*
+        *保存草稿
+        *
+        */
+		function draftsave() {
+			draftsaveAjaxForm("${pageContext.request.contextPath }/contractFlowCustomAction.do?task=process", "formIns");
+		}
+    </script>
+    <style type="text/css">
+        .l-table-edit-new {
+            width: 100px;
+            font-size: 14px;
+            font-weight: normal;
+            line-height: 20px;
+            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;  
+        } 
+
+        .input-width {
+            width: 100px;
+            text-align: center;
+            padding-left: 0px;
+        }
+        
+        table.l-table-edit-custom {
+            border-collapse: collapse;
+            width: 99%;
+        }
+        table.l-table-edit-custom th,
+        table.l-table-edit-custom td {
+            border: 1px solid #000;
+            padding: 8px;
+        }
+        table.l-table-edit-custom th {
+            background-color: #f2f2f2;
+        }
+        
+        table.l-table-edit-new {
+            border-collapse: collapse;
+            width: 99%;
+            text-align: center;
+        }
+        table.l-table-edit-new th,
+        table.l-table-edit-new td {
+            border: 1px solid #000;
+            padding: 8px 0 !important;
+            text-align: center;
+        }
+        table.l-table-edit-new th {
+            background-color: #f2f2f2;
+        }
+        
+        .disabled-section {
+		    opacity: 0.6;
+		    pointer-events: none;
+		    position: relative;
+		}
+		
+		.disabled-section::after {
+		    content: "请先输入合同金额";
+		    position: absolute;
+		    top: 50%;
+		    left: 50%;
+		    transform: translate(-50%, -50%);
+		    background-color: rgba(255, 255, 255, 0.9);
+		    padding: 10px;
+		    border-radius: 5px;
+		    color: #ff0000;
+		    font-weight: bold;
+		    z-index: 1000;
+		}
+		
+		.manual-input-hint {
+		    font-size: 12px;
+		    color: #888;
+		    margin-top: 5px;
+		}
+		
+		.error-border {
+	        border: 1px solid red !important;
+	    }
+	    
+	    .inline-error {
+	        color: red;
+	        font-size: 12px;
+	        margin-left: 10px;
+	    }
+	    
+	    .disabled-section {
+	        opacity: 0.6;
+	        pointer-events: none;
+	        position: relative;
+	    }
+	    
+	    .disabled-section::after {
+	        content: "请先输入合同金额";
+	        position: absolute;
+	        top: 50%;
+	        left: 50%;
+	        transform: translate(-50%, -50%);
+	        background-color: rgba(255, 255, 255, 0.9);
+	        padding: 10px;
+	        border-radius: 5px;
+	        color: #ff0000;
+	        font-weight: bold;
+	        z-index: 1000;
+	    }
+    </style>
+</head>
+
+
+<body>
+<form action="applianceBuyAction.do" method="post" id="formIns" name="formIns">
+	<div>
+		<div style="height: auto; width: 189px;">
+	    <img src="${pageContext.request.contextPath}/images/yzlogo.png"  
+	         style="max-height: 77px; width: auto;">
+		</div>
+		<div style="text-align:center;"> 
+			 <div style="font-size: 20px;">	
+			 	湖南韫珠环保科技有限公司
+			 </div> 
+			 <div style="font-size: 20px;">	
+			 	合同审批单
+			 </div> 
+		</div> 
+		<div style="text-align:right;padding-right: 100px;">流程流水号:${contractInfo.processId}</div>
+	</div>
+    <table class="l-table-edit line l-table-edit-custom" width="99%">
+        <tr>
+        	<td class="l-table-edit-text">填报部门:</td>
+            <td class="l-table-edit-td">
+                <input type="hidden" id="department" name="contractInfo.department" value="${contractInfo.department}"/>
+                ${contractInfo.department}
+                <input type="hidden" id="initiator" name="contractInfo.initiator" value="${contractInfo.initiator}"/>
+            </td>
+            <td class="l-table-edit-text">经办人
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',salesman_name,') || curTacheModel.n_se eq 1}">
+                    <font color="red">*</font>:
+                </c:if>   
+            </td>
+			<td class="l-table-edit-td" colspan="2">
+				<c:choose>
+					<c:when test="${fn:contains(curTacheModel.table_fields, ',salesman_sign,') || curTacheModel.n_se eq 1}">
+						<input id="salesman_name" name="contractInfo.salesman_name" type="text" value="${contractInfo.contract_entrying_operator_name }" readonly="readonly"/>
+						<input id="salesman" name="contractInfo.salesman" type="hidden" value="${contractInfo.salesman }"/>
+						<input id="selectUserButton1" name="selectUserButton1" type="button" class="l-button" value="选择人员" />
+					</c:when>
+					<c:otherwise>
+						${contractInfo.contract_entrying_operator_name}
+					</c:otherwise>
+				</c:choose>
+			</td>
+			<td class="l-table-edit-text">电话:</td>
+			<td class="l-table-edit-td" style="width: 150px;">
+				<c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',salesmanTel,') || curTacheModel.n_se eq 1}">
+                        <input id="salesmanTel" name="contractInfo.salesmanTel" type="text" value="${contractInfo.salesmanTel }"/>	
+                    </c:when>
+                    <c:otherwise>
+                        ${contractInfo.salesmanTel}
+                    </c:otherwise>
+                </c:choose> 		
+			</td>  
+        </tr>
+        <tr> 
+            <td class="l-table-edit-text">填报日期:</td>
+            <td class="l-table-edit-td" colspan="2">
+                <input type="hidden" id="applyDate" name="contractInfo.applyDate" value="${contractInfo.applyDate}"/>
+                ${contractInfo.applyDate}
+            </td>
+            <td class="l-table-edit-text">合同编号
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',contract_number,') || curTacheModel.n_se eq 1}">
+                    <font color="red">*</font>:
+                </c:if> 
+             </td> 
+            <td class="l-table-edit-td" colspan="3">  
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',contract_number,') || curTacheModel.n_se eq 1}">
+                        <input type="text" id="contract_number" name="contractInfo.contract_number" value="${contractInfo.contract_number }"/> 
+                    </c:when>
+                    <c:otherwise>
+                        <input type="hidden" id="contract_number" name="contractInfo.contract_number" value="${contractInfo.contract_number }"/>${contractInfo.contract_number } 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr> 
+        <tr> 
+        	<td class="l-table-edit-text" rowspan="7">合同立项内容</td> 
+             <td class="l-table-edit-text">合同名称
+				<c:if test="${fn:contains(curTacheModel.table_fields, ',contract_name,') || curTacheModel.n_se eq 1}">
+					<font color="red">*</font>:
+				</c:if>
+            </td>
+            <td class="l-table-edit-td" colspan="2"> 
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',contract_name,') || curTacheModel.n_se eq 1}">
+                        <input type="text" id="contract_name" name="contractInfo.contract_name" value="${contractInfo.contract_name }">
+                    </c:when>
+                    <c:otherwise>
+                        ${contractInfo.contract_name }
+                    </c:otherwise>
+                </c:choose>  
+            </td>
+            <td class="l-table-edit-text">合同金额:</td>
+			<td class="l-table-edit-td" colspan="2">
+				 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',contract_money,') || curTacheModel.n_se eq 1}">
+                        <input type="text" id="contract_money" name="contractInfo.contract_money" value="${contractInfo.contract_money }" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')">
+                        <div style="font-size: 12px; color: #666; margin-top: 5px;">
+                        	<span id="contract_money_uppercase"></span>
+                        </div>
+                        <div class="contract-money-hint manual-input-hint" style="display: none;">
+						        合同金额可随时输入,添加物料后会自动计算总金额
+						 </div>
+                    </c:when>
+                    <c:otherwise>
+                        ${contractInfo.contract_money }
+                        <div style="font-size: 12px; color: #666; margin-top: 5px;">
+                        	<span id="contract_money_uppercase_display"></span>
+                        </div>
+                    </c:otherwise>
+                </c:choose>  
+			</td>
+        </tr>
+         <tr>
+			<td class="l-table-edit-text">合同内容:</td>
+			<td class="l-table-edit-td"  colspan="5"> 
+				 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',contractContent,') || curTacheModel.n_se eq 1}">
+                    	  <textarea id="contractContent" name="contractInfo.contractContent" rows="3" cols="80">${contractInfo.contractContent}</textarea>
+				    </c:when>
+                    <c:otherwise>
+                    	  ${contractInfo.contractContent}
+				    </c:otherwise>
+                </c:choose>  		
+			</td>
+        </tr>
+        <tr> 
+			<td class="l-table-edit-text" rowspan="2">合同类型
+				<c:if test="${fn:contains(curTacheModel.table_fields, ',contract_type,') || curTacheModel.n_se eq 1}">
+                    <font color="red">*</font>:
+                </c:if>   
+			</td>
+			<td class="l-table-edit-td" rowspan="2" colspan="2"> 
+				<c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',contract_type,') || curTacheModel.n_se eq 1}">
+                      <select id="contract_type" name="contractInfo.contract_type" style="width:130px;">
+							<c:forEach items="${typeList }" var="item">
+								<option value="${item.contract_type  }" ${item.contract_type==contractInfo.contract_type?'selected=selected':''  }  >${item.contract_type_name }</option>
+							</c:forEach>
+						</select>
+				    </c:when>
+                    <c:otherwise>
+                    	${contractInfo.contract_type_name }
+						<input id="contract_type" name="contractInfo.contract_type" type="hidden" value="${contractInfo.contract_type }"/>
+				    </c:otherwise>
+                </c:choose>
+			</td> 
+			<td class="l-table-edit-text">所属项目或产品:</td>
+			<td class="l-table-edit-td" colspan="2">
+				 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',projectItem,') || curTacheModel.n_se eq 1}">
+                        <input type="text" id="projectItem" name="contractInfo.projectItem" value="${contractInfo.projectItem }">
+                    </c:when>
+                    <c:otherwise>
+                        ${contractInfo.projectItem }
+                    </c:otherwise>
+                </c:choose>  
+			</td> 
+		</tr>
+		<tr>
+			<td class="l-table-edit-text">使用位置:</td>
+			<td class="l-table-edit-td" colspan="2">
+				<c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',usePosition,') || curTacheModel.n_se eq 1}">
+                        <input type="text" id="usePosition" name="contractInfo.usePosition" value="${contractInfo.usePosition }">
+                    </c:when>
+                    <c:otherwise>
+                        ${contractInfo.usePosition }
+                    </c:otherwise>
+                </c:choose>  		 					
+			</td> 
+		</tr> 
+		<tr>
+			<td class="l-table-edit-text">需方
+				<c:if test="${fn:contains(curTacheModel.table_fields, ',firstparty_name,') || curTacheModel.n_se eq 1}">
+                    <font color="red">*</font>:
+                </c:if>
+			</td>
+			<td class="l-table-edit-td" colspan="2"> 
+				<c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',firstparty_name,') || curTacheModel.n_se eq 1}">
+                      	<!-- 采购合同:显示公司名称(只读) -->
+						<input id="firstparty_name_display" type="text" value="${contractInfo.firstparty_name }" readonly="readonly" style="display:block;"/>
+						<!-- 销售合同:显示选择客户按钮 -->
+						<div id="clientSelectDiv" style="display:none;">
+							<input id="firstparty_name_text" name="firstparty_name_text" type="text" value="${contractInfo.firstparty_name }" readonly="readonly"/>
+							<input id="selectClientBtn" type="button" class="button_fj" value="选择客户" onclick="client_search()"/>
+						</div>
+						<input id="firstparty_name" name="contractInfo.firstparty_name" type="hidden" value="${contractInfo.firstparty_name }"/>
+				    </c:when>
+                    <c:otherwise>
+                    	${contractInfo.firstparty_name }
+				    </c:otherwise>
+                </c:choose> 																			 				
+			</td>
+			<td class="l-table-edit-text" rowspan="2">对方联系人及电话:</td>
+			<td class="l-table-edit-td" colspan="2" rowspan="2">
+				<c:choose>
+					<c:when test="${fn:contains(curTacheModel.table_fields, ',other_contractor,') || curTacheModel.n_se eq 1}">
+						<input id="other_contractor" name="contractInfo.other_contractor" type='text' value="${contractInfo.other_contractor }"/>
+					</c:when>
+					<c:otherwise>
+						${contractInfo.other_contractor }
+					</c:otherwise>
+				</c:choose>
+			</td> 
+		</tr> 
+		
+		<tr>
+			<td class="l-table-edit-text">供方
+				<c:if test="${fn:contains(curTacheModel.table_fields, ',secondparty_name,') || curTacheModel.n_se eq 1}">
+                    <font color="red">*</font>:
+                </c:if>
+            </td>
+			<td class="l-table-edit-td" colspan="2"> 
+				<c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',secondparty_name,') || curTacheModel.n_se eq 1}">
+                        <!-- 采购合同:显示选择供应商按钮 -->
+						<div id="supplierSelectDiv" style="display:block;">
+							<input id="secondparty_name_text" name="secondparty_name_text" type="text" value="${contractInfo.secondparty_name }" readonly="readonly"/>
+							<input id="selectSupplierBtn" type="button" class="button_fj" value="选择供应商" onclick="supplier_search()"/>
+						</div>
+						<!-- 销售合同:显示公司名称(只读) -->
+						<input id="secondparty_name_display" type="text" value="${companyName}" readonly="readonly" style="display:none;"/>
+						<input id="secondparty_name" name="contractInfo.secondparty_name" type="hidden" value="${contractInfo.secondparty_name }"/>
+				    </c:when>
+                    <c:otherwise>
+                    	${contractInfo.secondparty_name }
+				    </c:otherwise>
+                </c:choose>  				 					
+			</td> 
+		</tr>
+		
+        <tr>
+			<td class="l-table-edit-text">随合同提交的其它材料:</td>
+			<td class="l-table-edit-td"  colspan="2"> 
+				 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',otherFile,') || curTacheModel.n_se eq 1}">
+                    	  <textarea id="otherFile" name="contractInfo.otherFile">${contractInfo.otherFile}</textarea>
+				    </c:when>
+                    <c:otherwise>
+                    	${contractInfo.otherFile }
+				    </c:otherwise>
+                </c:choose> 
+			</td>
+			<td class="l-table-edit-text">经办人签字:</td>
+			<td class="l-table-edit-td" colspan="2">
+				<c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',salesman_sign,') || curTacheModel.n_se eq 1}">
+                    	<input id="salesmanSign" name="contractInfo.salesmanSign" type='text' value="${contractInfo.salesmanSign }"/>	 
+                    </c:when>
+                    <c:otherwise>
+                    	${contractInfo.salesmanSign }	
+				    </c:otherwise>
+                </c:choose> 			 					
+			</td>
+        </tr>  
+        <tr>
+            <td class="l-table-edit-text">部门领导意见:
+                 <c:if test="${fn:contains(curTacheModel.table_fields, ',departmental_opinion,')}"> 
+                      <font color="red">*</font>
+                 </c:if> 
+            </td>
+            <td class="l-table-edit-td"  colspan="6">  
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',departmental_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.departmentalOpinion}"> 
+                    			<input id="departmentalOpinion" value="" name="contractPurchaseForm.departmentalOpinion" type="hidden" value="">
+                    			<div id="departmental_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="departmental_opinionbtn" value="盖章" name="departmental_opinionbtn" type="button" onclick="selectSeal('departmental_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="departmental_opinion" value="" name="departmental_opinion" type="hidden">
+								<input id="departmental_opinion_imgval" name="departmental_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="departmental_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${departmentalOpinion_sealpath}" class="dragme" style="left:${departmentalOpinion_x}px;top:${departmentalOpinion_y}px;" id="departmental_opinion_img" name="departmental_opinion_img" value="departmental_opinion|${departmentalOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="departmental_opinion_imgdel" name="departmental_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${departmentalOpinion_sealId}','departmental_opinion','forvalPwd');">
+								<input id="departmental_opinionbtn" value="盖章" name="departmental_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('departmental_opinion')">
+								</div>
+								<input id="departmental_opinion" value="${departmentalOpinion_formSealInsId}" name="departmental_opinion" type="hidden">
+								<input id="departmental_opinion_imgval" name="departmental_opinion_imgval" type="hidden" value="${departmentalOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="departmental_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${departmentalOpinion_sealpath}" class="dragme" style="left:${departmentalOpinion_x}px;top:${departmentalOpinion_y}px;" id="departmental_opinion_img" name="departmental_opinion_img" value="departmental_opinion|${departmentalOpinion_sealId}">
+						<input id="departmental_opinionbtn" value="盖章" name="departmental_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('departmental_opinion')">
+						</div>
+						<input id="departmental_opinion" value="${departmentalOpinion_formSealInsId}" name="departmental_opinion" type="hidden">
+						<input id="departmental_opinion_imgval" name="departmental_opinion_imgval" type="hidden" value="${departmentalOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+          </tr>
+          
+          <tr>
+            <td class="l-table-edit-text">财务部门意见:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',finance_opinion,')}"> 
+                     <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="6">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',finance_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.financeOpinion}"> 
+                    			<input id="financeOpinion" value="" name="contractPurchaseForm.financeOpinion" type="hidden" value="">
+                    			<div id="finance_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="finance_opinionbtn" value="盖章" name="finance_opinionbtn" type="button" onclick="selectSeal('finance_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="finance_opinion" value="" name="finance_opinion" type="hidden">
+								<input id="finance_opinion_imgval" name="finance_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="finance_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${financeOpinion_sealpath}" class="dragme" style="left:${financeOpinion_x}px;top:${financeOpinion_y}px;" id="finance_opinion_img" name="finance_opinion_img" value="finance_opinion|${financeOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="finance_opinion_imgdel" name="finance_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${financeOpinion_sealId}','finance_opinion','forvalPwd');">
+								<input id="finance_opinionbtn" value="盖章" name="finance_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('finance_opinion')">
+								</div>
+								<input id="finance_opinion" value="${financeOpinion_formSealInsId}" name="chairman1_opinion" type="hidden">
+								<input id="finance_opinion_imgval" name="finance_opinion_imgval" type="hidden" value="${financeOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="finance_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${financeOpinion_sealpath}" class="dragme" style="left:${financeOpinion_x}px;top:${financeOpinion_y}px;" id="finance_opinion_img" name="finance_opinion_img" value="finance_opinion|${financeOpinion_sealId}">
+						<input id="finance_opinionbtn" value="盖章" name="finance_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('finance_opinion')">
+						</div>
+						<input id="finance_opinion" value="${financeOpinion_formSealInsId}" name="finance_opinion" type="hidden">
+						<input id="finance_opinion_imgval" name="finance_opinion_imgval" type="hidden" value="${financeOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        
+          <tr>
+            <td class="l-table-edit-text">分管副总意见:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',deputy_general_manager_opinion,')}"> 
+                      <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="6"> 
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',deputy_general_manager_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.dgmOpinion}"> 
+                    			<input id="dgmOpinion" value="" name="contractPurchaseForm.dgmOpinion" type="hidden" value="">
+                    			<div id="deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="deputy_general_manager_opinionbtn" value="盖章" name="deputy_general_manager_opinionbtn" type="button" onclick="selectSeal('deputy_general_manager_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="deputy_general_manager_opinion" value="" name="deputy_general_manager_opinion" type="hidden">
+								<input id="deputy_general_manager_opinion_imgval" name="deputy_general_manager_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${dgmOpinion_sealpath}" class="dragme" style="left:${dgmOpinion_x}px;top:${dgmOpinion_y}px;" id="deputy_general_manager_opinion_img" name="deputy_general_manager_opinion_img" value="deputy_general_manager_opinion|${dgmOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="deputy_general_manager_opinion_imgdel" name="deputy_general_manager_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${dgmOpinion_sealId}','deputy_general_manager_opinion','forvalPwd');">
+								<input id="deputy_general_manager_opinionbtn" value="盖章" name="deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_general_manager_opinion')">
+								</div>
+								<input id="deputy_general_manager_opinion" value="${dgmOpinion_formSealInsId}" name="deputy_general_manager_opinion" type="hidden">
+								<input id="deputy_general_manager_opinion_imgval" name="deputy_general_manager_opinion_imgval" type="hidden" value="${dgmOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${dgmOpinion_sealpath}" class="dragme" style="left:${dgmOpinion_x}px;top:${dgmOpinion_y}px;" id="deputy_general_manager_opinion_img" name="deputy_general_manager_opinion_img" value="deputy_general_manager_opinion|${dgmOpinion_sealId}">
+						<input id="deputy_general_manager_opinionbtn" value="盖章" name="deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_general_manager_opinion')">
+						</div>
+						<input id="deputy_general_manager_opinion" value="${dgmOpinion_formSealInsId}" name="deputy_general_manager_opinion" type="hidden">
+						<input id="deputy_general_manager_opinion_imgval" name="deputy_general_manager_opinion_imgval" type="hidden" value="${dgmOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+         </tr>
+         <tr>
+            <td class="l-table-edit-text">分管副总意见:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',audit_deputy_general_manager_opinion,')}"> 
+                     <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="6">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',audit_deputy_general_manager_opinion,')}"> 
+                         <c:choose>
+                        		<c:when test="${empty contractInfo.auditDgmOpinion}"> 
+                        			<input id="auditDgmOpinion" value="" name="contractInfo.auditDgmOpinion" type="hidden" value="">
+                        			<div id="audit_deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="audit_deputy_general_manager_opinionbtn" value="盖章" name="audit_deputy_general_manager_opinionbtn" type="button" onclick="selectSeal('audit_deputy_general_manager_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="audit_deputy_general_manager_opinion" value="" name="audit_deputy_general_manager_opinion" type="hidden">
+								<input id="audit_deputy_general_manager_opinion_imgval" name="audit_deputy_general_manager_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="audit_deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${auditDgmOpinion_sealpath}" class="dragme" style="left:${auditDgmOpinion_x}px;top:${auditDgmOpinion_y}px;" id="audit_deputy_general_manager_opinion_img" name="audit_deputy_general_manager_opinion_img" value="audit_deputy_general_manager_opinion|${auditDgmOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="audit_deputy_general_manager_opinion_imgdel" name="audit_deputy_general_manager_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${auditDgmOpinion_sealId}','audit_deputy_general_manager_opinion','forvalPwd');">
+								<input id="audit_deputy_general_manager_opinionbtn" value="盖章" name="audit_deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('audit_deputy_general_manager_opinion')">
+								</div>
+								<input id="audit_deputy_general_manager_opinion" value="${auditDgmOpinion_formSealInsId}" name="audit_deputy_general_manager_opinion" type="hidden">
+								<input id="audit_deputy_general_manager_opinion_imgval" name="audit_deputy_general_manager_opinion_imgval" type="hidden" value="${auditDgmOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="audit_deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${auditDgmOpinion_sealpath}" class="dragme" style="left:${auditDgmOpinion_x}px;top:${auditDgmOpinion_y}px;" id="audit_deputy_general_manager_opinion_img" name="audit_deputy_general_manager_opinion_img" value="audit_deputy_general_manager_opinion|${auditDgmOpinion_sealId}">
+						<input id="audit_deputy_general_manager_opinionbtn" value="盖章" name="audit_deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('audit_deputy_general_manager_opinion')">
+						</div>
+						<input id="audit_deputy_general_manager_opinion" value="${auditDgmOpinion_formSealInsId}" name="audit_deputy_general_manager_opinion" type="hidden">
+						<input id="audit_deputy_general_manager_opinion_imgval" name="audit_deputy_general_manager_opinion_imgval" type="hidden" value="${auditDgmOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+         </tr>
+         <tr>
+            <td class="l-table-edit-text">总经理意见:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',general_manager_opinion,')}"> 
+                     <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="6">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',general_manager_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.gmOpinion}"> 
+                    			<input id="gmOpinion" value="" name="contractPurchaseForm.gmOpinion" type="hidden" value="">
+                    			<div id="general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="general_manager_opinionbtn" value="盖章" name="general_manager_opinionbtn" type="button" onclick="selectSeal('general_manager_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="general_manager_opinion" value="" name="general_manager_opinion" type="hidden">
+								<input id="general_manager_opinion_imgval" name="general_manager_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${gmOpinion_sealpath}" class="dragme" style="left:${gmOpinion_x}px;top:${gmOpinion_y}px;" id="general_manager_opinion_img" name="general_manager_opinion_img" value="general_manager_opinion|${gmOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="general_manager_opinion_imgdel" name="general_manager_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${gmOpinion_sealId}','general_manager_opinion','forvalPwd');">
+								<input id="general_manager_opinionbtn" value="盖章" name="general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('general_manager_opinion')">
+								</div>
+								<input id="general_manager_opinion" value="${gmOpinion_formSealInsId}" name="general_manager_opinion" type="hidden">
+								<input id="general_manager_opinion_imgval" name="general_manager_opinion_imgval" type="hidden" value="${gmOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${gmOpinion_sealpath}" class="dragme" style="left:${gmOpinion_x}px;top:${gmOpinion_y}px;" id="general_manager_opinion_img" name="general_manager_opinion_img" value="general_manager_opinion|${gmOpinion_sealId}">
+						<input id="general_manager_opinionbtn" value="盖章" name="general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('general_manager_opinion')">
+						</div>
+						<input id="general_manager_opinion" value="${gmOpinion_formSealInsId}" name="general_manager_opinion" type="hidden">
+						<input id="general_manager_opinion_imgval" name="general_manager_opinion_imgval" type="hidden" value="${gmOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+
+        <tr>
+            <td class="l-table-edit-text">董事长意见:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',chairman_opinion,')}"> 
+                     <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="6">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',chairman_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.chairmanOpinion}"> 
+                    			<input id="chairmanOpinion" value="" name="contractPurchaseForm.chairmanOpinion" type="hidden" value="">
+                    			<div id="chairman_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="chairman_opinionbtn" value="盖章" name="chairman_opinionbtn" type="button" onclick="selectSeal('chairman_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="chairman_opinion" value="" name="chairman_opinion" type="hidden">
+								<input id="chairman_opinion_imgval" name="chairman_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="chairman_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${chairmanOpinion_sealpath}" class="dragme" style="left:${chairmanOpinion_x}px;top:${chairmanOpinion_y}px;" id="chairman_opinion_img" name="chairman_opinion_img" value="chairman_opinion|${chairmanOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="chairman_opinion_imgdel" name="chairman_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${chairmanOpinion_sealId}','chairman_opinion','forvalPwd');">
+								<input id="chairman_opinionbtn" value="盖章" name="chairman_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('chairman_opinion')">
+								</div>
+								<input id="chairman_opinion" value="${chairmanOpinion_formSealInsId}" name="chairman_opinion" type="hidden">
+								<input id="chairman_opinion_imgval" name="chairman_opinion_imgval" type="hidden" value="${chairmanOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="chairman_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${chairmanOpinion_sealpath}" class="dragme" style="left:${chairmanOpinion_x}px;top:${chairmanOpinion_y}px;" id="chairman_opinion_img" name="chairman_opinion_img" value="chairman_opinion|${chairmanOpinion_sealId}">
+						<input id="chairman_opinionbtn" value="盖章" name="chairman_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('chairman_opinion')">
+						</div>
+						<input id="chairman_opinion" value="${chairmanOpinion_formSealInsId}" name="chairman_opinion" type="hidden">
+						<input id="chairman_opinion_imgval" name="chairman_opinion_imgval" type="hidden" value="${chairmanOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+    </table>
+    
+    <div id="secondDiv">
+        <table id="headTable" class="l-table-edit line" style="width:99%">
+            <tr>
+                <td colspan="2" style="text-align:center; font-size:16px;font-weight:bold;">
+                    <span style="font-size: 20px;">付款信息</span>
+                    <img align="bottom" id="addPayInfo" style="cursor: pointer" class="add"
+                         src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jia.png">
+                </td>
+            </tr>
+        </table>
+        <table class="l-table-edit-new" width="99%">
+            <tr>
+            	<th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">付款方式</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">比例(%)</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">金额</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">已付金额</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">付款时间</th>  
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">付款状态</th> 
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">备注</th> 
+            </tr>
+			<c:forEach items="${contractPaymentList}" var="items">
+                <tr class="startTr2">
+                	<td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;"> 
+                		<c:choose>
+		                    <c:when test="${curTacheModel.n_se ne 1}"> 
+		                    	<c:set var="currentPayTypeName" value="" /> <%-- 初始化一个变量用于存储找到的名称 --%>
+					            <c:forEach items="${paymentList}" var="payItem">
+					                <c:if test="${payItem.payType eq items.payType}">
+					                    <c:set var="currentPayTypeName" value="${payItem.payTypeName}" />
+					                </c:if>
+					            </c:forEach> 
+					            <input type="text" name="" class="input-width payTypeName TextDisplay" value="${currentPayTypeName}" readonly> 
+		                    </c:when>
+		                    <c:otherwise>
+		                        <select name="" class="input-width payType TextDisplay"> 
+									<c:forEach items="${paymentList }" var="item">
+										<option value="${item.payType }" ${item.payType==items.payType?'selected=selected':''  } >${item.payTypeName }</option>
+									</c:forEach>
+								</select>
+		                    </c:otherwise>
+		                </c:choose>  
+			        </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="hidden" name="" class="input-width universalid"  value="${items.universalid}">
+                        <input type="text" name="" class="input-width proportion TextDisplay"  value="${items.proportion}" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" >%
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width amount TextDisplay" value="${items.amount}" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" readonly>
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width amountPaid TextDisplay" value="${items.amountPaid}" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')"> 
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width payTime TextDisplay" value="${items.payTime}" readonly> 
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;"> 
+                        <input type="text" name="" class="input-width payStatusName TextDisplay" value="${items.payStatusName}" readonly>
+            			<input type="hidden" name="" class="input-width payStatus"  value="${items.payStatus}">
+                    </td> 
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width remark TextDisplay" value="${items.remark}">
+                        <img align="bottom" style="cursor: pointer" class="substract2" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+                    </td> 
+                </tr>
+            </c:forEach>
+            <tr id="secondPoint"></tr> 
+
+        </table>
+    </div>
+    
+    
+    <div id="firstDiv">
+        <table id="headTable" class="l-table-edit line" style="width:99%">
+            <tr>
+                <td colspan="2" style="text-align:center; font-size:16px;font-weight:bold;">
+                    <span style="font-size: 20px;">物品信息</span>
+                    <img align="bottom" id="addBuyInfo" style="cursor: pointer" class="add"
+                         src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jia.png">
+                    <input type="button" class='l-button' id="addFromExcel" onclick="addExcel()" value="导入物品" />
+                </td>
+            </tr>
+        </table>
+        <table class="l-table-edit-new" width="99%"  border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse;">
+            <tr>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">物料编码</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">物料名称</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">型号/规格</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">单位</th>  
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">数量</th> 
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">税前单价</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">税率(%)</th> 
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">税后单价</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">采购申请单编号</th>
+            </tr>
+			<c:forEach items="${contractMaterialList}" var="items">
+                <tr class="startTr1"> 
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="hidden" name="" class="input-width universalid"  value="${items.universalid}">
+                        <input type="text" name="" class="input-width itemCode TextDisplay"  value="${items.itemCode}" readonly>
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width itemName TextDisplay" value="${items.itemName}" readonly>
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width specification TextDisplay" value="${items.specification}" readonly> 
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width measureName TextDisplay" value="${items.measureName}" readonly> 
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width qty TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.qty}">
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width price TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.price}">
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width cess TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.cess}"> 
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width priceTax TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.priceTax}"> 
+                    </td> 
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                         <input type="text" name="" class="input-width purchaseNumber TextDisplay" value="${items.purchaseNumber}" readonly>
+            			<input type="hidden" name="" class="input-width purchaseId" value="${items.purchaseId}">
+                        <img align="bottom" style="cursor: pointer" class="substract1" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+                    </td> 
+                </tr>
+            </c:forEach>
+            <tr id="firstPoint"></tr> 
+            <input id="purchaseId" name="contractInfo.purchaseId" type="hidden" value="${contractInfo.purchaseId }"/> 
+			<input id="purchaseNumber" name="contractInfo.purchaseNumber" type="hidden" value="${contractInfo.purchaseNumber }"/> 
+			<input id="totalPrice" name="contractInfo.totalPrice" type="hidden" value=""/> 
+        </table>
+    </div> 
+    
+        
+    <br>
+    <br>
+    <br>
+    <br>
+    <input type="hidden" id="se" name="se" value="${curTacheModel.n_se}">
+    <input type="hidden" id="table_fields" name="table_fields" value="${curTacheModel.table_fields}">
+    <input type="hidden" id="universalid" name="contractInfo.universalid" value="${contractInfo.universalid}">
+    <input type="hidden" id="lFormInsId" name="contractInfo.lFormInsId" value="${contractInfo.lFormInsId}">
+    <input id="relation_ids" name="contractInfo.relation_ids" value="" type="hidden"/>
+    <input id="contract_entrying_operator" name="contractInfo.contract_entrying_operator" type="hidden" value="${contractInfo.contract_entrying_operator }"  />
+	<!-- 存储公司名称,用于销售合同时对调需方供方 -->
+	<input id="companyName" name="companyName" value="${companyName}" type="hidden"/>
+	<!-- 供方/客户编码和名称 -->
+	<input id="supplierCode" name="contractInfo.supplierCode" type="hidden" value="${contractInfo.supplierCode }"/>
+	<input id="supplierName" name="contractInfo.supplierName" type="hidden" value="${contractInfo.supplierName }"/>
+</form>
+</body>
+</html>
+
+
+<!-- *********************************************************模板************************************************************ -->
+<table>
+    <!-- ***************************************************模板 ------- 物料信息-->
+    <tr id="template_1" class="startTr1 hide">
+
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width itemCode" readonly>
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width itemName" readonly>
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width specification" readonly> 
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width measureName" readonly> 
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width qty" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';">
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width price" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';">
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width cess" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';"> 
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width priceTax" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';"> 
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width purchaseNumber" readonly>
+            <input type="hidden" name="" class="input-width purchaseId">
+            <img align="bottom" style="cursor: pointer" class="substract1" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+        </td>
+    </tr>
+    
+    <!-- ***************************************************模板 ------- 付款信息-->
+    <tr id="template_2" class="startTr2 hide">
+		<td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;"> 
+            <select name="" class="input-width payType">
+				<option value="" selected="selected">--请选择--</option>
+				<c:forEach items="${paymentList }" var="item">
+					<option value="${item.payType }" >${item.payTypeName }</option>
+				</c:forEach>
+			</select>  
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width proportion" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';" value="0">%
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width amount" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';" value="0" readonly>
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width amountPaid" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="if(value.trim()==='')value='0';" value="0"> 
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width payTime" readonly> 
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+        	<input type="text" name="" class="input-width payStatusName" readonly>
+            <input type="hidden" name="" class="input-width payStatus"  value="0">
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width remark"> 
+            <img align="bottom" style="cursor: pointer" class="substract2" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+        </td>
+    </tr>
+</table>

+ 9 - 0
src/main/webapp/yw/contract/contractFlowCustom/startContract.jsp

@@ -261,6 +261,14 @@
             // 初始化合同金额大写显示
             updateContractMoneyUppercase();
         });
+
+        /*
+        *保存草稿
+        *
+        */
+        function draftsave() {
+            draftsaveAjaxForm("${pageContext.request.contextPath }/contractFlowCustomAction.do?task=start", "formIns");
+        }
     </script>
     <style type="text/css">
         .l-table-edit-new {
@@ -587,6 +595,7 @@
 	<!-- 供方/客户编码和名称 -->
 	<input id="supplierCode" name="contractInfo.supplierCode" type="hidden" value="${contractInfo.supplierCode }"/>
 	<input id="supplierName" name="contractInfo.supplierName" type="hidden" value="${contractInfo.supplierName }"/>
+    <input type="hidden" id="universalid" name="contractInfo.universalid" value="">
 </form>
 </body>
 </html>

+ 798 - 0
src/main/webapp/yw/contract/paymentApply/editDraftPaymentApply.jsp

@@ -0,0 +1,798 @@
+<%@page import="com.yw.bpm.system.util.SystemUtil" %>
+<%@page import="com.yw.core.session.OASession" %>
+<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
+<jsp:useBean id="oasession" class="com.yw.core.session.OASession" scope="session"/>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html class="width960">
+<head>
+    <title>流程办理</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <META http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge;">
+    <link href="${pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css"/>
+    <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css"/>
+    <link href="${pageContext.request.contextPath}/yw/bpm/form.css" rel="stylesheet" type="text/css"/>
+    <script type="text/javascript" src="/shares/js/jquery-1.8.2.js"></script>
+    <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
+    <script type="text/javascript" src="/shares/js/constant.js"></script>
+    <script type="text/javascript" src="/shares/js/common.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/oa.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/customflow/customFlow.js"></script>
+    <script type="text/javascript" src="/shares/js/file.js"></script>
+    <script type="text/javascript" src="/shares/datePicker/WdatePicker.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/seal/seal.js"></script> 
+    <script type="text/javascript" src="${pageContext.request.contextPath}/yw/contract/paymentApply/js/paymentApply.js"></script>
+    <script type="text/javascript">
+	    var insId = "${requestScope.flow.insId}";
+	    var formId = "${requestScope.flow.formId.formId}";
+	    var table_fields = "${curTacheModel.table_fields}";
+	    console.log(table_fields,"table_fields");
+	    
+	    // 检查是否包含特定审批字段
+	    var dept_approver = table_fields.indexOf(",dept_approver,") > -1; 
+	    var accountant = table_fields.indexOf(",accountant,") > -1; 
+	    var finance_manager = table_fields.indexOf(",finance_manager,") > -1; 
+	    var deputy_manager_dept = table_fields.indexOf(",deputy_manager_dept,") > -1; 
+	    var deputy_manager_audit = table_fields.indexOf(",deputy_manager_audit,") > -1; 
+	    var general_manager = table_fields.indexOf(",general_manager,") > -1; 
+	    var chairman = table_fields.indexOf(",chairman,") > -1; 
+	    var se = "${curTacheModel.n_se}";
+	    
+	    // 检查字段是否在当前节点的编辑权限内
+	    function isFieldEditable(fieldName) {
+	        // 启动节点所有字段都可编辑
+	        if (se == 1) {
+	            return true;
+	        }
+	        // 处理节点需要检查权限
+	        return table_fields.indexOf(',' + fieldName + ',') > -1;
+	    }
+	    
+	    // 条件验证字段
+	    function validateFieldIfEditable(fieldName, displayName, validationRules) {
+	        if (isFieldEditable(fieldName)) {
+	            return $.validate({name: fieldName, model: validationRules});
+	        }
+	        return true;
+	    }
+        $(function () { 
+            // 统一初始化付款类型显示
+            initPaymentTypeDisplay();
+
+            // 根据字段权限绑定相应的事件
+            if (isFieldEditable('paymentApply.paymentType')) {
+                $('#paymentType').change(function() {
+                    togglePaymentFields();
+                });
+            }
+
+            if (isFieldEditable('paymentApply.amountLower')) {
+                $('#amountLower').on('input blur', function() {
+                    // 限制只能输入数字和小数点
+                    restrictToNumber(this);
+                    convertToChinese();
+                });
+                // 初始化时转换一次
+                convertToChinese();
+            }
+
+            if (isFieldEditable('paymentApply.operator')) {
+                loadTypeTree("selectUserButton1",{type:"singleuser",tab:"1,3,8",backId:"operatorId",backName:"operator"});
+            }
+
+            if (isFieldEditable('paymentApply.purchaseOrderNo')) {
+                $('#selectPurchaseOrderBtn').click(function() {
+                    selectPurchaseOrder();
+                });
+            }
+
+            if (isFieldEditable('paymentApply.storageOrderNo')) {
+                $('#selectStorageOrderBtn').click(function() {
+                    selectStorageOrder();
+                });
+            }
+            
+            // 绑定收款单位(供应商)选择按钮事件
+            if (isFieldEditable('paymentApply.payeeName')) {
+                $('#selectPayeeBtn').click(function() {
+                    selectSupplier();
+                });
+                
+                // 绑定收款单位字段变化事件,清空合同、采购订单、入库单和供应商编码
+                $('#payeeName').on('input change', function() {
+                    clearRelatedOrders();
+                    // 清空供应商编码,这样手动输入后就不能选择采购订单/入库单
+                    $('#vendorCode').val('');
+                });
+                
+                // 初始化:如果已有合同,则设置收款单位为只读
+                if ($('#contractId').val()) {
+                    $("#payeeName").attr("readonly", "readonly");
+                }
+            }
+
+        });
+
+        //校验表单
+        function checkForm() {
+            // 验证隐藏域:开户行和账号
+            /* if($.trim($("#bankName").val()) == ''){
+                 addError("开户行不能为空!请检查是否已设置默认账户。");
+                 return false;
+             }
+             if($.trim($("#bankAccount").val()) == ''){
+                 addError("账号不能为空!请检查是否已设置默认账户。");
+                 return false;
+             }*/
+
+            var rs = true; 
+            
+            // 验证合同、采购订单、入库单互斥逻辑
+            var contractId = $('#contractId').val();
+            var purchaseOrderNo = $('#purchaseOrderNo').val();
+            var storageOrderNo = $('#storageOrderNo').val();
+ 
+            var selectedCount = 0;
+            // 合同ID为null时会显示为"0"或空字符串,需要排除这种情况
+            if (contractId && contractId !== '0') selectedCount++;
+            if (purchaseOrderNo) selectedCount++;
+            if (storageOrderNo) selectedCount++;
+            
+            if (selectedCount > 1) {
+                addError("合同、采购订单、入库单只能选择其中一个!");
+                return false;
+            }
+            
+            // 基础必填字段验证(根据权限判断)
+            rs = validateFieldIfEditable("paymentApply.payerName", "单位", [{type: "require", msg: "单位不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.payeeName", "收款单位", [{type: "require", msg: "收款单位不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.amountLower", "付款金额", [{type: "require", msg: "付款金额不能为空!"}]) && rs;
+            
+            // 付款类型验证
+            rs = validateFieldIfEditable("paymentApply.paymentType", "付款类型", [{type: "require", msg: "付款类型必须选择!"}]) && rs;
+            
+            // 根据付款类型验证相应字段
+            /*if (isFieldEditable("paymentApply.paymentType")) {
+                var paymentType = $('#paymentType').val();
+                if (paymentType == '1') { // 预付款
+                    rs = validateFieldIfEditable("paymentApply.purchaseOrderNo", "采购订单编号", [{type: "require", msg: "采购订单编号不能为空!"}]) && rs;
+                } else if (paymentType == '2') { // 到付款
+                    rs = validateFieldIfEditable("paymentApply.storageOrderNo", "入库单编号", [{type: "require", msg: "入库单编号不能为空!"}]) && rs;
+                }
+            }*/
+            
+            // 其他必填字段验证(根据权限判断)
+            rs = validateFieldIfEditable("paymentApply.paymentMethod", "付款方式", [{type: "require", msg: "付款方式不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.paymentDate", "付款日期", [{type: "require", msg: "付款日期不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.amountUpper", "付款金额(大写)", [{type: "require", msg: "付款金额(大写)不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.purpose", "用途或理由", [{type: "require", msg: "用途或理由不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.operator", "经办人", [{type: "require", msg: "经办人不能为空!"}]) && rs;
+            rs = validateFieldIfEditable("paymentApply.payeeBankAccount", "开户行及账号", [{type: "require", msg: "开户行及账号不能为空!"}]) && rs;
+            
+			if(dept_approver){ 
+				rs = $.validate({name: "dept_approver_imgval", model: [{type: "require", msg: "部门负责人审批不能为空!"}]}) && rs;  
+			}
+			if(accountant){ 
+				rs = $.validate({name: "accountant_imgval", model: [{type: "require", msg: "经办会计审批不能为空!"}]}) && rs;  
+			}
+			if(finance_manager){ 
+				rs = $.validate({name: "finance_manager_imgval", model: [{type: "require", msg: "财务经理审批不能为空!"}]}) && rs;  
+			}
+			if(deputy_manager_dept){ 
+				rs = $.validate({name: "deputy_manager_dept_imgval", model: [{type: "require", msg: "分管副总部门审批不能为空!"}]}) && rs;  
+			}
+			if(deputy_manager_audit){ 
+				rs = $.validate({name: "deputy_manager_audit_imgval", model: [{type: "require", msg: "分管副总审计审批不能为空!"}]}) && rs;  
+			}
+			if(general_manager){ 
+				rs = $.validate({name: "general_manager_imgval", model: [{type: "require", msg: "公司总经理审批不能为空!"}]}) && rs;  
+			}
+			if(chairman){ 
+				rs = $.validate({name: "chairman_imgval", model: [{type: "require", msg: "董事长审批不能为空!"}]}) && rs;  
+			}
+            return rs;
+        }
+
+        //保存表单
+        function save() {
+            saveAjaxForm("${pageContext.request.contextPath}/paymentApplyAction.do?task=process", "formIns");
+        }
+
+        /*
+         *保存草稿
+         *
+         */
+        function draftsave() {
+            draftsaveAjaxForm("${pageContext.request.contextPath }/paymentApplyAction.do?task=process", "formIns");
+        }
+        
+    </script>
+    <style type="text/css">
+        .l-table-edit-new {
+            width: 100px;
+            font-size: 14px;
+            font-weight: normal;
+            line-height: 20px;
+            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+        }
+
+        .input-width {
+            width: 100px;
+            text-align: center;
+            padding-left: 0px;
+        }
+        
+        .placeholder { 
+        	display: inline-block; 
+	        min-height: 90px; 
+	        min-width: 310px; 
+	        border: 0px solid #ccc;
+	        vertical-align:middle; /* 垂直对齐方式 */ 
+	    } 
+	    
+	    /* 表格样式 */
+        table.l-table-edit-custom {
+            border-collapse: collapse;
+            width: 99%;
+        }
+        table.l-table-edit-custom th,
+        table.l-table-edit-custom td {
+            border: 1px solid #000;
+            padding: 8px;
+        }
+        table.l-table-edit-custom th {
+            background-color: #f2f2f2;
+        }
+        
+        table.l-table-edit-new {
+            border-collapse: collapse;
+            width: 99%;
+            text-align: center;
+        }
+        table.l-table-edit-new th,
+        table.l-table-edit-new td {
+            border: 1px solid #000;
+            padding: 8px 0 !important;
+            text-align: center;
+        }
+        table.l-table-edit-new th {
+            background-color: #f2f2f2;
+        }
+    </style>
+</head>
+
+
+<body>
+<form action="paymentApplyAction.do" method="post" id="formIns" name="formIns">
+	<div>
+		<div style="height: auto; width: 189px;">
+	    <img src="${pageContext.request.contextPath}/images/yzlogo.png"  
+	         style="max-height: 77px; width: auto;">
+		</div>
+		<div style="text-align:center;"> 
+			 <div style="font-size: 20px;">	
+			 	湖南韫珠环保科技有限公司
+			 </div> 
+			 <div style="font-size: 20px;">	
+			 	付款申请单
+			 </div> 
+		</div> 
+		<div style="text-align:right;padding-right: 100px;">流程流水号:${paymentApply.processId}</div>
+	</div>
+    <table class="l-table-edit line l-table-edit-custom" width="99%"> 
+        <tr>
+            <td class="l-table-edit-text" style="width: 120px;">申请部门:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <input type="hidden" id="department" name="paymentApply.department" value="${paymentApply.department}"/>
+                ${paymentApply.department}
+                
+                <input type="hidden" id="initiator" name="paymentApply.initiator" value="${paymentApply.initiator}"/>
+            </td>
+            <td class="l-table-edit-text" style="width: 120px;">申请日期:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <input type="hidden" id="applyDate" name="paymentApply.applyDate" value="${paymentApply.applyDate}"/>
+                ${paymentApply.applyDate}
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text" style="width: 100px;">合同:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',contract_number,')}">
+                        <input type="hidden" name="paymentApply.contractNumber" value="${paymentApply.contractNumber}">
+                        ${paymentApply.contractNumber}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="hidden" id="contractId" name="paymentApply.contractId" value="${paymentApply.contractId}" />
+                        <input type="text" readonly="readonly" id="contractNumber" name="paymentApply.contractNumber" value="${paymentApply.contractNumber}">
+                        <input type="hidden" id="contractName" name="paymentApply.contractName" value="${paymentApply.contractName}">
+                        <img id="searchContract" class="fee" onClick="selectContract()" src="${pageContext.request.contextPath}/images/sousuo.png" style="height: 20px; width: 20px; cursor: pointer;">
+                        <input id="clearContractBtn" name="clearContractBtn" type="button" class="l-button" value="清除" onclick="clearContract()"/>
+                    </c:otherwise>
+                </c:choose>
+            </td>
+            <td class="l-table-edit-text" style="width: 100px;">单位<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',payer_name,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',payer_name,')}">
+                        <input type="hidden" name="paymentApply.payerName" value="${paymentApply.payerName}">
+                        ${paymentApply.payerName}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.payerName" id="payerName" value="${paymentApply.payerName}">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text" style="width: 100px;">收款单位<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',payee_name,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',payee_name,')}">
+                        <input type="hidden" name="paymentApply.payeeName" value="${paymentApply.payeeName}">
+                        ${paymentApply.payeeName}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.payeeName" id="payeeName" value="${paymentApply.payeeName}">
+                        <input type="button" id="selectPayeeBtn" name="selectPayeeBtn" class="l-button" value="选择供应商" />
+                        <input type="hidden" id="vendorCode" name="paymentApply.vendorCode" value="${paymentApply.vendorCode}">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+            <td class="l-table-edit-text" style="width: 100px;">开户行及账号<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',payee_bank_account,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',payee_bank_account,')}">
+                        <input type="hidden" name="paymentApply.payeeBankAccount" value="${paymentApply.payeeBankAccount}">
+                        ${paymentApply.payeeBankAccount}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.payeeBankAccount" id="payeeBankAccount" value="${paymentApply.payeeBankAccount}" style="width: 100%;">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">付款类型<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',payment_type,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',payment_type,')}">
+                        <c:choose>
+                            <c:when test="${paymentApply.paymentType eq '1'}">预付款</c:when>
+                            <c:when test="${paymentApply.paymentType eq '2'}">到付款</c:when>
+                            <c:otherwise></c:otherwise>
+                        </c:choose>
+                        <input type="hidden" id="paymentType" name="paymentApply.paymentType" value="${paymentApply.paymentType}"/>
+                    </c:when>
+                    <c:otherwise>
+                        <select name="paymentApply.paymentType" id="paymentType">
+                            <option value="1" <c:if test="${empty paymentApply.paymentType or paymentApply.paymentType eq '1'}">selected</c:if>>预付款</option>
+                            <option value="2" <c:if test="${paymentApply.paymentType eq '2'}">selected</c:if>>到付款</option>
+                        </select>
+                    </c:otherwise>
+                </c:choose>
+            </td>
+            <td class="l-table-edit-text" id="orderLabel1">采购订单编号:</td>
+            <td class="l-table-edit-td" id="orderField1">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',purchase_order_no,')}">
+                        ${paymentApply.purchaseOrderNo}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.purchaseOrderNo" id="purchaseOrderNo" value="${paymentApply.purchaseOrderNo}" readonly="readonly" style="width: 70%;">
+                        <input type="button" id="selectPurchaseOrderBtn" name="selectPurchaseOrderBtn" class="l-button" value="选择采购单" />
+                        <input id="clearPurchaseOrderBtn" name="clearPurchaseOrderBtn" type="button" class="l-button" value="清除" onclick="clearPurchaseOrder()"/>
+                    </c:otherwise>
+                </c:choose>
+            </td>
+            <td class="l-table-edit-text" id="orderLabel2">入库单编号:</td>
+            <td class="l-table-edit-td" id="orderField2">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',storage_order_no,')}">
+                        ${paymentApply.storageOrderNo}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.storageOrderNo" id="storageOrderNo" value="${paymentApply.storageOrderNo}" readonly="readonly" style="width: 70%;">
+                        <input type="button" id="selectStorageOrderBtn" name="selectStorageOrderBtn" class="l-button" value="选择入库单" />
+                        <input id="clearStorageOrderBtn" name="clearStorageOrderBtn" type="button" class="l-button" value="清除" onclick="clearStorageOrder()"/>
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+
+        <!-- </table>
+
+        <table class="l-table-edit line l-table-edit-custom" width="99%"> --> 
+        <tr>
+            <td class="l-table-edit-text">付款方式<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',payment_method,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',payment_method,')}">
+                        ${paymentApply.paymentMethod}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.paymentMethod" id="paymentMethod" value="${paymentApply.paymentMethod}">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+            <td class="l-table-edit-text">付款日期<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',payment_date,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',payment_date,')}">
+                        ${paymentApply.paymentDate}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.paymentDate" id="paymentDate" value="${paymentApply.paymentDate}" readonly onClick="WdatePicker({dateFmt:'yyyy-MM-dd'})">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+
+        <tr>
+            <td class="l-table-edit-text">付款金额(大写)<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',amount_upper,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',amount_upper,')}">
+                        ${paymentApply.amountUpper}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.amountUpper" id="amountUpper" value="${paymentApply.amountUpper}" style="width: 100%;" readonly>
+                    </c:otherwise>
+                </c:choose>
+            </td>
+            <td class="l-table-edit-text">付款金额(小写)<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',amount_lower,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',amount_lower,')}">
+                        <input type="hidden" name="paymentApply.amountLower" value="${paymentApply.amountLower}">
+                        ${paymentApply.amountLower}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.amountLower" id="amountLower" value="${paymentApply.amountLower}">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">用途或理由<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',purpose,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td" colspan="3">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',purpose,')}">
+                        ${paymentApply.purpose}
+                    </c:when>
+                    <c:otherwise>
+                        <textarea name="paymentApply.purpose" id="purpose" rows="3" style="width: 100%;">${paymentApply.purpose}</textarea>
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">经办人<c:if test="${curTacheModel.n_se eq 1 or fn:contains(curTacheModel.table_fields, ',operator,')}"><font color="red">*</font></c:if>:</td>
+            <td class="l-table-edit-td" colspan="3">
+                <c:choose>
+                    <c:when test="${curTacheModel.n_se ne 1 and !fn:contains(curTacheModel.table_fields, ',operator,')}">
+                        ${paymentApply.operator}
+                    </c:when>
+                    <c:otherwise>
+                        <input type="text" name="paymentApply.operator" id="operator" value="${paymentApply.operator}" readonly="readonly"/>
+                        <input type="hidden" name="paymentApply.operatorId" id="operatorId" value="${paymentApply.operatorId}"/>
+                        <input type="button" id="selectUserButton1" name="selectUserButton1" class="l-button" value="选择人员" />
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">部门负责人审批
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',dept_approver,')}"> 
+                      <font color="red">*</font>
+                </c:if>:
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',dept_approver,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.deptApprover}"> 
+                    			<input id="deptApprover" value="" name="paymentApply.deptApprover" type="hidden" value="">
+                    			<div id="dept_approver_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="dept_approverbtn" value="盖章" name="dept_approverbtn" type="button" onclick="selectSeal('dept_approver')" style="float: left; display: block;">
+								</div>
+								<input id="dept_approver" value="" name="dept_approver" type="hidden">
+								<input id="dept_approver_imgval" name="dept_approver_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="dept_approver_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${deptApprover_sealpath}" class="dragme" style="left:${deptApprover_x}px;top:${deptApprover_y}px;" id="dept_approver_img" name="dept_approver_img" value="dept_approver|${deptApprover_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="dept_approver_imgdel" name="dept_approver_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${deptApprover_sealId}','dept_approver','forvalPwd');">
+								<input id="dept_approverbtn" value="盖章" name="dept_approverbtn" type="button" style="float: left; display: none;" onclick="selectSeal('dept_approver')">
+								<div style="font-size: 15px;">${deptApprover_time}</div>
+								</div>
+								<input id="dept_approver" value="${deptApprover_formSealInsId}" name="dept_approver" type="hidden">
+								<input id="dept_approver_imgval" name="dept_approver_imgval" type="hidden" value="${deptApprover_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="dept_approver_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${deptApprover_sealpath}" class="dragme" style="left:${deptApprover_x}px;top:${deptApprover_y}px;" id="dept_approver_img" name="dept_approver_img" value="dept_approver|${deptApprover_sealId}">
+						<input id="dept_approverbtn" value="盖章" name="dept_approverbtn" type="button" style="float: left; display: none;" onclick="selectSeal('dept_approver')">
+						<div style="font-size: 15px;">${deptApprover_time}</div>
+						</div>
+						<input id="dept_approver" value="${deptApprover_formSealInsId}" name="dept_approver" type="hidden">
+						<input id="dept_approver_imgval" name="dept_approver_imgval" type="hidden" value="${deptApprover_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+          </tr>
+          <tr>
+            <td class="l-table-edit-text">经办会计
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',accountant,')}"> 
+                      <font color="red">*</font>
+                </c:if>: 
+            </td>
+            <td class="l-table-edit-td" colspan="3"> 
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',accountant,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.accountant}"> 
+                    			<input id="accountant" value="" name="paymentApply.accountant" type="hidden" value="">
+                    			<div id="accountant_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="accountantbtn" value="盖章" name="accountantbtn" type="button" onclick="selectSeal('accountant')" style="float: left; display: block;">
+								</div>
+								<input id="accountant" value="" name="accountant" type="hidden">
+								<input id="accountant_imgval" name="accountant_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="accountant_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${accountant_sealpath}" class="dragme" style="left:${accountant_x}px;top:${accountant_y}px;" id="accountant_img" name="accountant_img" value="accountant|${accountant_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="accountant_imgdel" name="accountant_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${accountant_sealId}','accountant','forvalPwd');">
+								<input id="accountantbtn" value="盖章" name="accountantbtn" type="button" style="float: left; display: none;" onclick="selectSeal('accountant')">
+								<div style="font-size: 15px;">${accountant_time}</div>
+								</div>
+								<input id="accountant" value="${accountant_formSealInsId}" name="accountant" type="hidden">
+								<input id="accountant_imgval" name="accountant_imgval" type="hidden" value="${accountant_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="accountant_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${accountant_sealpath}" class="dragme" style="left:${accountant_x}px;top:${accountant_y}px;" id="accountant_img" name="accountant_img" value="accountant|${accountant_sealId}">
+						<input id="accountantbtn" value="盖章" name="accountantbtn" type="button" style="float: left; display: none;" onclick="selectSeal('accountant')">
+						<div style="font-size: 15px;">${accountant_time}</div>
+						</div>
+						<input id="accountant" value="${accountant_formSealInsId}" name="accountant" type="hidden">
+						<input id="accountant_imgval" name="accountant_imgval" type="hidden" value="${accountant_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+         </tr>
+         <tr>
+            <td class="l-table-edit-text">财务经理审批
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',finance_manager,')}"> 
+                     <font color="red">*</font>
+                </c:if>: 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',finance_manager,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.financeManager}"> 
+                    			<input id="financeManager" value="" name="paymentApply.financeManager" type="hidden" value="">
+                    			<div id="finance_manager_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="finance_managerbtn" value="盖章" name="finance_managerbtn" type="button" onclick="selectSeal('finance_manager')" style="float: left; display: block;">
+								</div>
+								<input id="finance_manager" value="" name="finance_manager" type="hidden">
+								<input id="finance_manager_imgval" name="finance_manager_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="finance_manager_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${financeManager_sealpath}" class="dragme" style="left:${financeManager_x}px;top:${financeManager_y}px;" id="finance_manager_img" name="finance_manager_img" value="finance_manager|${financeManager_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="finance_manager_imgdel" name="finance_manager_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${financeManager_sealId}','finance_manager','forvalPwd');">
+								<input id="finance_managerbtn" value="盖章" name="finance_managerbtn" type="button" style="float: left; display: none;" onclick="selectSeal('finance_manager')">
+								<div style="font-size: 15px;">${financeManager_time}</div>
+								</div>
+								<input id="finance_manager" value="${financeManager_formSealInsId}" name="finance_manager" type="hidden">
+								<input id="finance_manager_imgval" name="finance_manager_imgval" type="hidden" value="${financeManager_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="finance_manager_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${financeManager_sealpath}" class="dragme" style="left:${financeManager_x}px;top:${financeManager_y}px;" id="finance_manager_img" name="finance_manager_img" value="finance_manager|${financeManager_sealId}">
+						<input id="finance_managerbtn" value="盖章" name="finance_managerbtn" type="button" style="float: left; display: none;" onclick="selectSeal('finance_manager')">
+						<div style="font-size: 15px;">${financeManager_time}</div>
+						</div>
+						<input id="finance_manager" value="${financeManager_formSealInsId}" name="finance_manager" type="hidden">
+						<input id="finance_manager_imgval" name="finance_manager_imgval" type="hidden" value="${financeManager_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">分管副总部门审批
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',deputy_manager_dept,')}"> 
+                     <font color="red">*</font>
+                </c:if>: 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',deputy_manager_dept,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.deputyManagerDept}"> 
+                    			<input id="deputyManagerDept" value="" name="paymentApply.deputyManagerDept" type="hidden" value="">
+                    			<div id="deputy_manager_dept_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="deputy_manager_deptbtn" value="盖章" name="deputy_manager_deptbtn" type="button" onclick="selectSeal('deputy_manager_dept')" style="float: left; display: block;">
+								</div>
+								<input id="deputy_manager_dept" value="" name="deputy_manager_dept" type="hidden">
+								<input id="deputy_manager_dept_imgval" name="deputy_manager_dept_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="deputy_manager_dept_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${deputyManagerDept_sealpath}" class="dragme" style="left:${deputyManagerDept_x}px;top:${deputyManagerDept_y}px;" id="deputy_manager_dept_img" name="deputy_manager_dept_img" value="deputy_manager_dept|${deputyManagerDept_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="deputy_manager_dept_imgdel" name="deputy_manager_dept_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${deputyManagerDept_sealId}','deputy_manager_dept','forvalPwd');">
+								<input id="deputy_manager_deptbtn" value="盖章" name="deputy_manager_deptbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_manager_dept')">
+								<div style="font-size: 15px;">${deputyManagerDept_time}</div>
+								</div>
+								<input id="deputy_manager_dept" value="${deputyManagerDept_formSealInsId}" name="deputy_manager_dept" type="hidden">
+								<input id="deputy_manager_dept_imgval" name="deputy_manager_dept_imgval" type="hidden" value="${deputyManagerDept_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="deputy_manager_dept_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${deputyManagerDept_sealpath}" class="dragme" style="left:${deputyManagerDept_x}px;top:${deputyManagerDept_y}px;" id="deputy_manager_dept_img" name="deputy_manager_dept_img" value="deputy_manager_dept|${deputyManagerDept_sealId}">
+						<input id="deputy_manager_deptbtn" value="盖章" name="deputy_manager_deptbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_manager_dept')">
+						<div style="font-size: 15px;">${deputyManagerDept_time}</div>
+						</div>
+						<input id="deputy_manager_dept" value="${deputyManagerDept_formSealInsId}" name="deputy_manager_dept" type="hidden">
+						<input id="deputy_manager_dept_imgval" name="deputy_manager_dept_imgval" type="hidden" value="${deputyManagerDept_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">分管副总审计审批
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',deputy_manager_audit,')}"> 
+                     <font color="red">*</font>
+                </c:if>: 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',deputy_manager_audit,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.deputyManagerAudit}"> 
+                    			<input id="deputyManagerAudit" value="" name="paymentApply.deputyManagerAudit" type="hidden" value="">
+                    			<div id="deputy_manager_audit_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="deputy_manager_auditbtn" value="盖章" name="deputy_manager_auditbtn" type="button" onclick="selectSeal('deputy_manager_audit')" style="float: left; display: block;">
+								</div>
+								<input id="deputy_manager_audit" value="" name="deputy_manager_audit" type="hidden">
+								<input id="deputy_manager_audit_imgval" name="deputy_manager_audit_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="deputy_manager_audit_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${deputyManagerAudit_sealpath}" class="dragme" style="left:${deputyManagerAudit_x}px;top:${deputyManagerAudit_y}px;" id="deputy_manager_audit_img" name="deputy_manager_audit_img" value="deputy_manager_audit|${deputyManagerAudit_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="deputy_manager_audit_imgdel" name="deputy_manager_audit_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${deputyManagerAudit_sealId}','deputy_manager_audit','forvalPwd');">
+								<input id="deputy_manager_auditbtn" value="盖章" name="deputy_manager_auditbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_manager_audit')">
+								<div style="font-size: 15px;">${deputyManagerAudit_time}</div>
+								</div>
+								<input id="deputy_manager_audit" value="${deputyManagerAudit_formSealInsId}" name="deputy_manager_audit" type="hidden">
+								<input id="deputy_manager_audit_imgval" name="deputy_manager_audit_imgval" type="hidden" value="${deputyManagerAudit_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="deputy_manager_audit_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${deputyManagerAudit_sealpath}" class="dragme" style="left:${deputyManagerAudit_x}px;top:${deputyManagerAudit_y}px;" id="deputy_manager_audit_img" name="deputy_manager_audit_img" value="deputy_manager_audit|${deputyManagerAudit_sealId}">
+						<input id="deputy_manager_auditbtn" value="盖章" name="deputy_manager_auditbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_manager_audit')">
+						<div style="font-size: 15px;">${deputyManagerAudit_time}</div>
+						</div>
+						<input id="deputy_manager_audit" value="${deputyManagerAudit_formSealInsId}" name="deputy_manager_audit" type="hidden">
+						<input id="deputy_manager_audit_imgval" name="deputy_manager_audit_imgval" type="hidden" value="${deputyManagerAudit_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">公司总经理审批
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',general_manager,')}"> 
+                     <font color="red">*</font>
+                </c:if>: 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',general_manager,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.generalManager}"> 
+                    			<input id="generalManager" value="" name="paymentApply.generalManager" type="hidden" value="">
+                    			<div id="general_manager_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="general_managerbtn" value="盖章" name="general_managerbtn" type="button" onclick="selectSeal('general_manager')" style="float: left; display: block;">
+								</div>
+								<input id="general_manager" value="" name="general_manager" type="hidden">
+								<input id="general_manager_imgval" name="general_manager_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="general_manager_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${generalManager_sealpath}" class="dragme" style="left:${generalManager_x}px;top:${generalManager_y}px;" id="general_manager_img" name="general_manager_img" value="general_manager|${generalManager_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="general_manager_imgdel" name="general_manager_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${generalManager_sealId}','general_manager','forvalPwd');">
+								<input id="general_managerbtn" value="盖章" name="general_managerbtn" type="button" style="float: left; display: none;" onclick="selectSeal('general_manager')">
+								<div style="font-size: 15px;">${generalManager_time}</div>
+								</div>
+								<input id="general_manager" value="${generalManager_formSealInsId}" name="general_manager" type="hidden">
+								<input id="general_manager_imgval" name="general_manager_imgval" type="hidden" value="${generalManager_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="general_manager_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${generalManager_sealpath}" class="dragme" style="left:${generalManager_x}px;top:${generalManager_y}px;" id="general_manager_img" name="general_manager_img" value="general_manager|${generalManager_sealId}">
+						<input id="general_managerbtn" value="盖章" name="general_managerbtn" type="button" style="float: left; display: none;" onclick="selectSeal('general_manager')">
+						<div style="font-size: 15px;">${generalManager_time}</div>
+						</div>
+						<input id="general_manager" value="${generalManager_formSealInsId}" name="general_manager" type="hidden">
+						<input id="general_manager_imgval" name="general_manager_imgval" type="hidden" value="${generalManager_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">董事长审批
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',chairman,')}"> 
+                     <font color="red">*</font>:
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',chairman,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty paymentApply.chairman}"> 
+                    			<input id="chairman" value="" name="paymentApply.chairman" type="hidden" value="">
+                    			<div id="chairman_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="chairmanbtn" value="盖章" name="chairmanbtn" type="button" onclick="selectSeal('chairman')" style="float: left; display: block;">
+								</div>
+								<input id="chairman" value="" name="chairman" type="hidden">
+								<input id="chairman_imgval" name="chairman_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="chairman_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${chairman_sealpath}" class="dragme" style="left:${chairman_x}px;top:${chairman_y}px;" id="chairman_img" name="chairman_img" value="chairman|${chairman_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="chairman_imgdel" name="chairman_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${chairman_sealId}','chairman','forvalPwd');">
+								<input id="chairmanbtn" value="盖章" name="chairmanbtn" type="button" style="float: left; display: none;" onclick="selectSeal('chairman')">
+								<div style="font-size: 15px;">${chairman_time}</div>
+								</div>
+								<input id="chairman" value="${chairman_formSealInsId}" name="chairman" type="hidden">
+								<input id="chairman_imgval" name="chairman_imgval" type="hidden" value="${chairman_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="chairman_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${chairman_sealpath}" class="dragme" style="left:${chairman_x}px;top:${chairman_y}px;" id="chairman_img" name="chairman_img" value="chairman|${chairman_sealId}">
+						<input id="chairmanbtn" value="盖章" name="chairmanbtn" type="button" style="float: left; display: none;" onclick="selectSeal('chairman')">
+						<div style="font-size: 15px;">${chairman_time}</div>
+						</div>
+						<input id="chairman" value="${chairman_formSealInsId}" name="chairman" type="hidden">
+						<input id="chairman_imgval" name="chairman_imgval" type="hidden" value="${chairman_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+    </table>
+    <%-- <input type="hidden" id="depid" name="paymentApply.depid" value="${paymentApply.depid}"> --%>
+    <br>
+    <br>
+    <br>
+    <br> 
+    
+    <input type="hidden" id="se" name="se" value="${curTacheModel.n_se}">
+    <input type="hidden" id="table_fields" name="table_fields" value="${curTacheModel.table_fields}">
+    <input type="hidden" id="universalid" name="paymentApply.universalid" value="${paymentApply.universalid}">
+    <input type="hidden" id="lFormInsId" name="paymentApply.lFormInsId" value="${paymentApply.lFormInsId}">
+    
+    <input type="hidden" name="paymentApply.bankName" id="bankName" value="${paymentApply.bankName}"/>
+    <input type="hidden" name="paymentApply.bankAccount" id="bankAccount" value="${paymentApply.bankAccount}"/>
+    <input type="hidden" id="accountId" name="paymentApply.accountId" value="${paymentApply.accountId}"/>
+    <input type="hidden" id="accountName" name="paymentApply.accountName" value="${paymentApply.accountName}"/>
+</form>
+</body>
+</html>

+ 10 - 2
src/main/webapp/yw/contract/paymentApply/startPaymentApply.jsp

@@ -136,8 +136,15 @@
         //保存表单
         function save() {
             saveAjaxForm("${pageContext.request.contextPath}/paymentApplyAction.do?task=start", "formIns");
-        }  
-        
+        }
+
+        /*
+         *保存草稿
+         *
+         */
+        function draftsave() {
+            draftsaveAjaxForm("${pageContext.request.contextPath }/paymentApplyAction.do?task=start", "formIns");
+        }
     </script>
     <style type="text/css">
         .l-table-edit-new {
@@ -311,6 +318,7 @@
      <input type="hidden" name="paymentApply.bankAccount" id="bankAccount" value="${paymentApply.bankAccount}"/>
      <input type="hidden" id="accountId" name="paymentApply.accountId" value="${paymentApply.accountId}"/>
      <input type="hidden" id="accountName" name="paymentApply.accountName" value="${paymentApply.accountName}"/>
+    <input type="hidden" id="universalid" name="paymentApply.universalid" value="">
     <br>
     <br>
     <br>

+ 595 - 0
src/main/webapp/yw/contract/purchaseNoContract/editDraftContractPurchase.jsp

@@ -0,0 +1,595 @@
+<%@page import="com.yw.bpm.system.util.SystemUtil" %>
+<%@page import="com.yw.core.session.OASession" %>
+<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
+<jsp:useBean id="oasession" class="com.yw.core.session.OASession" scope="session"/>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html class="width960">
+<head>
+    <title>流程办理</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <META http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge;">
+    <link href="${pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css"/>
+    <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css"/>
+    <link href="${pageContext.request.contextPath}/yw/bpm/form.css" rel="stylesheet" type="text/css"/>
+    <script type="text/javascript" src="/shares/js/jquery-1.8.2.js"></script>
+    <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
+    <script type="text/javascript" src="/shares/js/constant.js"></script>
+    <script type="text/javascript" src="/shares/js/common.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/oa.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/customflow/customFlow.js"></script>
+    <script type="text/javascript" src="/shares/js/file.js"></script>
+    <script type="text/javascript" src="/shares/datePicker/WdatePicker.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/yw/contract/purchaseNoContract/js/contractPurchase.js"></script>
+    <script type="text/javascript" src="/shares/js/yw/bpm/seal/seal.js"></script> 
+    <script type="text/javascript">
+	    var insId = "${requestScope.flow.insId}";
+	    var formId = "${requestScope.flow.formId.formId}";
+	    var table_fields = "${curTacheModel.table_fields}";
+	    console.log(table_fields,"table_fields")
+	    var departmental_opinion = table_fields.indexOf(",departmental_opinion,") > -1; 
+	    var dgm_opinion = table_fields.indexOf(",deputy_general_manager_opinion,") > -1; 
+	    var audit_dgm_opinion = table_fields.indexOf(",audit_deputy_general_manager_opinion,") > -1; 
+	    var gm_opinion = table_fields.indexOf(",general_manager_opinion,") > -1; 
+	    var se = "${curTacheModel.n_se}";
+        $(function () { 
+        	// 合并相同applyId的申请人和用途列
+        	mergeCellsByApplyId();
+        	
+        	if (se != 1) {        
+                $("#addBuyInfo").remove();
+                $(".substract1").remove();
+                $(".TextDisplay").each(function (i, v) { // 	将input隐藏,显示该input的文本值(不带文本框)
+                    $(v).hide();
+                    if ($(v).val() == '') {
+                        $(v).after('');
+                    } else {
+                        $(v).after($(v).val());
+                    }
+                });
+        	}else{
+        		addIdAndName();
+        	}
+            //点击添加tr
+            $("#addBuyInfo").click(function () { 
+                getMaterial();
+            });
+
+            //删除某行数据
+            $(".substract1").live('click', function () {
+                var obj = $(this).parent().parent();
+                $.ligerDialog.confirm('确定删除该行', function (yes) {
+                    if (yes == true) {
+                        obj.remove();
+                        addIdAndName();
+                        calTotalAmount();
+                    }
+                });
+            });
+
+
+            //计算物品合计金额
+            $(".qty").live('blur', function () {
+                calTotalAmount();
+            });
+            $(".price").live('blur', function () {
+                calTotalAmount();
+            });
+            $(".cess").live('blur', function () {
+                calTotalAmount();
+            });
+        });
+        
+        // 合并相同applyId的单元格
+        function mergeCellsByApplyId() {
+            // 判断是否需要显示申请人和用途列
+            var fromType = '${contractPurchaseForm.fromType}';
+            if (fromType !== 'emcs') {
+                return; // 不是emcs类型则不执行合并
+            }
+            
+            var table = $('.l-table-edit-new').first();
+            var applyUserCol = 5; // 申请人列索引(从0开始)
+            var remarkCol = 6;    // 用途列索引
+            
+            // 合并申请人列
+            mergeColumn(table, applyUserCol);
+            // 合并用途列
+            mergeColumn(table, remarkCol);
+        }
+        
+        // 合并指定列中相同applyId的单元格
+        function mergeColumn(table, colIndex) {
+            var rows = table.find('tr.startTr1');
+            if (rows.length === 0) return; // 没有数据行直接返回
+            
+            var startIndex = 0;
+            var currentApplyId = rows.eq(0).find('td').eq(colIndex).attr('data-applyId') || '';
+            
+            for (var i = 1; i <= rows.length; i++) {
+                var applyId = '';
+                if (i < rows.length) {
+                    applyId = rows.eq(i).find('td').eq(colIndex).attr('data-applyId') || '';
+                }
+                
+                if (i == rows.length || applyId != currentApplyId) {
+                    // 合并从startIndex到i-1的行
+                    if (i - startIndex > 1) {
+                        var firstCell = rows.eq(startIndex).find('td').eq(colIndex);
+                        var rowspan = i - startIndex;
+                        firstCell.attr('rowspan', rowspan);
+                        firstCell.css('vertical-align', 'middle');
+                        
+                        // 隐藏其他行的单元格
+                        for (var j = startIndex + 1; j < i; j++) {
+                            rows.eq(j).find('td').eq(colIndex).hide();
+                        }
+                    }
+                    
+                    if (i < rows.length) {
+                        startIndex = i;
+                        currentApplyId = applyId;
+                    }
+                }
+            }
+        }
+
+
+        //校验表单
+        function checkForm() {
+            var rs = true; 
+            // 检查采购单名称是否需要验证 (启动节点或在 table_fields 配置中)
+            var contractPurchaseName_required = (se == 1 || table_fields.indexOf(',contractPurchaseName,') > -1);
+            if(contractPurchaseName_required){
+                rs = $.validate({name: "contractPurchaseForm.contractPurchaseName", model: [{type: "require", msg: "采购单名称不能为空!"}]}) && rs;
+            }
+			if(departmental_opinion){ 
+				rs = $.validate({name: "departmental_opinion_imgval", model: [{type: "require", msg: "部门意见不能为空!"}]}) && rs;  
+			}
+			if(dgm_opinion){ 
+				console.log(dgm_opinion,"dgm_opinion");
+				rs = $.validate({name: "deputy_general_manager_opinion_imgval", model: [{type: "require", msg: "副总经理意见不能为空!"}]}) && rs;  
+			}
+			if(gm_opinion){ 
+				console.log(gm_opinion,"gm_opinion");
+				rs = $.validate({name: "general_manager_opinion_imgval", model: [{type: "require", msg: "总经理意见不能为空!"}]}) && rs;  
+			}
+			if(audit_dgm_opinion){ 
+				console.log(audit_dgm_opinion,"audit_dgm_opinion");
+				rs = $.validate({name: "audit_deputy_general_manager_opinion_imgval", model: [{type: "require", msg: "分管副总意见不能为空!"}]}) && rs;
+			}
+			if (se == 1) {
+				$(".startTr1").not(".hide").each(function (i, v) {
+	                rs = $.validate({ name: "contractPurchaseDetailList[" + i + "].qty", model: [{type: "require", msg: "数量不能为空!"},{type : "custom",validator:function(value){ return /^\d+(\.\d+)?$/.test(value) && parseFloat(value) > 0; },msg:"数量必须是大于 0 的数字!"}] }) && rs;
+	                /* rs = $.validate({ name: "contractPurchaseDetailList[" + i + "].price", model: [{type: "require", msg: "价格不能为空!"}] }) && rs;
+	                rs = $.validate({ name: "contractPurchaseDetailList[" + i + "].cess", model: [{type: "require", msg: "税率不能为空!"}] }) && rs;  */
+	            });
+			}
+            return rs;
+        }
+
+        //保存表单
+        function save() {
+            saveAjaxForm("${pageContext.request.contextPath}/purchaseNoContractAction.do?task=process", "formIns");
+        }
+
+        /*
+          *保存草稿
+          *
+          */
+        function draftsave() {
+            draftsaveAjaxForm("${pageContext.request.contextPath }/purchaseNoContractAction.do?task=process", "formIns");
+        }
+    </script>
+    <style type="text/css">
+        .l-table-edit-new {
+            width: 100px;
+            font-size: 14px;
+            font-weight: normal;
+            line-height: 20px;
+            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+        }
+
+        .input-width {
+            width: 100px;
+            text-align: center;
+            padding-left: 0px;
+        }
+        
+        .placeholder { 
+        	display: inline-block; 
+	        min-height: 90px; 
+	        min-width: 310px; 
+	        border: 0px solid #ccc;
+	        vertical-align:middle; /* 垂直对齐方式 */ 
+	    } 
+	    
+	    /* 表格样式 */
+        table.l-table-edit-custom {
+            border-collapse: collapse;
+            width: 99%;
+        }
+        table.l-table-edit-custom th,
+        table.l-table-edit-custom td {
+            border: 1px solid #000;
+            padding: 8px;
+        }
+        table.l-table-edit-custom th {
+            background-color: #f2f2f2;
+        }
+        
+        table.l-table-edit-new {
+            border-collapse: collapse;
+            width: 99%;
+            text-align: center;
+        }
+        table.l-table-edit-new th,
+        table.l-table-edit-new td {
+            border: 1px solid #000;
+            padding: 8px 0 !important;
+            text-align: center;
+        }
+        table.l-table-edit-new th {
+            background-color: #f2f2f2;
+        }
+    </style>
+</head>
+
+
+<body>
+<form action="applianceBuyAction.do" method="post" id="formIns" name="formIns">
+	<div>
+		<div style="height: auto; width: 189px;">
+	    <img src="${pageContext.request.contextPath}/images/yzlogo.png"  
+	         style="max-height: 77px; width: auto;">
+		</div>
+		<div style="text-align:center;"> 
+			 <div style="font-size: 20px;">	
+			 	湖南韫珠环保科技有限公司
+			 </div> 
+			 <div style="font-size: 20px;">	
+			 	采购申请单
+			 </div> 
+		</div> 
+		<div style="text-align:right;padding-right: 100px;">流程流水号:${contractPurchaseForm.processId}</div>
+	</div>
+    <table class="l-table-edit line l-table-edit-custom" width="99%"> 
+        <tr>
+            <td class="l-table-edit-text" style="width: 100px;">申请部门:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <input type="hidden" id="department" name="contractPurchaseForm.department" value="${contractPurchaseForm.department}"/>
+                ${contractPurchaseForm.department}
+                
+                <input type="hidden" id="initiator" name="contractPurchaseForm.initiator" value="${contractPurchaseForm.initiator}"/>
+            </td>
+            <td class="l-table-edit-text" style="width: 100px;">申请日期:</td>
+            <td class="l-table-edit-td" style="width: 250px;">
+                <input type="hidden" id="applyDate" name="contractPurchaseForm.applyDate" value="${contractPurchaseForm.applyDate}"/>
+                ${contractPurchaseForm.applyDate}
+            </td>
+        </tr>
+        <tr>
+            <td class="l-table-edit-text">采购单编号: 
+            </td>
+            <td class="l-table-edit-td">
+            	  <input type="hidden" id="contractPurchaseNumber" name="contractPurchaseForm.contractPurchaseNumber" value="${contractPurchaseForm.contractPurchaseNumber }"/>${contractPurchaseForm.contractPurchaseNumber } 
+            </td>
+             <td class="l-table-edit-text">采购单名称
+             	<c:if test="${fn:contains(curTacheModel.table_fields, ',contractPurchaseName,') || curTacheModel.n_se eq 1}">
+                    <font color="red">*</font>:
+                </c:if>  
+            </td>
+            <td class="l-table-edit-td">
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',contract_purchase_name,') || curTacheModel.n_se eq 1}">
+                        <input type="text" id="contractPurchaseName" name="contractPurchaseForm.contractPurchaseName" value="${contractPurchaseForm.contractPurchaseName}">
+                    </c:when>
+                    <c:otherwise>
+                        ${contractPurchaseForm.contractPurchaseName}
+                    </c:otherwise>
+                </c:choose> 
+            </td>
+        </tr> 
+     
+        <tr>
+            <td class="l-table-edit-text">部门意见: 
+                 <c:if test="${fn:contains(curTacheModel.table_fields, ',departmental_opinion,')}"> 
+                      <font color="red">*</font>
+                 </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',departmental_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.departmentalOpinion}"> 
+                    			<input id="departmentalOpinion" value="" name="contractPurchaseForm.departmentalOpinion" type="hidden" value="">
+                    			<div id="departmental_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="departmental_opinionbtn" value="盖章" name="departmental_opinionbtn" type="button" onclick="selectSeal('departmental_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="departmental_opinion" value="" name="departmental_opinion" type="hidden">
+								<input id="departmental_opinion_imgval" name="departmental_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="departmental_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${departmentalOpinion_sealpath}" class="dragme" style="left:${departmentalOpinion_x}px;top:${departmentalOpinion_y}px;" id="departmental_opinion_img" name="departmental_opinion_img" value="departmental_opinion|${departmentalOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="departmental_opinion_imgdel" name="departmental_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${departmentalOpinion_sealId}','departmental_opinion','forvalPwd');">
+								<input id="departmental_opinionbtn" value="盖章" name="departmental_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('departmental_opinion')">
+								</div>
+								<input id="departmental_opinion" value="${departmentalOpinion_formSealInsId}" name="departmental_opinion" type="hidden">
+								<input id="departmental_opinion_imgval" name="departmental_opinion_imgval" type="hidden" value="${departmentalOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="departmental_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${departmentalOpinion_sealpath}" class="dragme" style="left:${departmentalOpinion_x}px;top:${departmentalOpinion_y}px;" id="departmental_opinion_img" name="departmental_opinion_img" value="departmental_opinion|${departmentalOpinion_sealId}">
+						<input id="departmental_opinionbtn" value="盖章" name="departmental_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('departmental_opinion')">
+						</div>
+						<input id="departmental_opinion" value="${departmentalOpinion_formSealInsId}" name="departmental_opinion" type="hidden">
+						<input id="departmental_opinion_imgval" name="departmental_opinion_imgval" type="hidden" value="${departmentalOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+          </tr>
+          <tr>
+            <td class="l-table-edit-text">分管副总:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',deputy_general_manager_opinion,')}"> 
+                      <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="3"> 
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',deputy_general_manager_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.dgmOpinion}"> 
+                    			<input id="dgmOpinion" value="" name="contractPurchaseForm.dgmOpinion" type="hidden" value="">
+                    			<div id="deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="deputy_general_manager_opinionbtn" value="盖章" name="deputy_general_manager_opinionbtn" type="button" onclick="selectSeal('deputy_general_manager_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="deputy_general_manager_opinion" value="" name="deputy_general_manager_opinion" type="hidden">
+								<input id="deputy_general_manager_opinion_imgval" name="deputy_general_manager_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${dgmOpinion_sealpath}" class="dragme" style="left:${dgmOpinion_x}px;top:${dgmOpinion_y}px;" id="deputy_general_manager_opinion_img" name="deputy_general_manager_opinion_img" value="deputy_general_manager_opinion|${dgmOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="deputy_general_manager_opinion_imgdel" name="deputy_general_manager_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${dgmOpinion_sealId}','deputy_general_manager_opinion','forvalPwd');">
+								<input id="deputy_general_manager_opinionbtn" value="盖章" name="deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_general_manager_opinion')">
+								</div>
+								<input id="deputy_general_manager_opinion" value="${dgmOpinion_formSealInsId}" name="deputy_general_manager_opinion" type="hidden">
+								<input id="deputy_general_manager_opinion_imgval" name="deputy_general_manager_opinion_imgval" type="hidden" value="${dgmOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${dgmOpinion_sealpath}" class="dragme" style="left:${dgmOpinion_x}px;top:${dgmOpinion_y}px;" id="deputy_general_manager_opinion_img" name="deputy_general_manager_opinion_img" value="deputy_general_manager_opinion|${dgmOpinion_sealId}">
+						<input id="deputy_general_manager_opinionbtn" value="盖章" name="deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('deputy_general_manager_opinion')">
+						</div>
+						<input id="deputy_general_manager_opinion" value="${dgmOpinion_formSealInsId}" name="deputy_general_manager_opinion" type="hidden">
+						<input id="deputy_general_manager_opinion_imgval" name="deputy_general_manager_opinion_imgval" type="hidden" value="${dgmOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+         </tr>
+        <tr>
+            <td class="l-table-edit-text">分管副总:
+                <c:if test="${fn:contains(curTacheModel.table_fields, ',audit_deputy_general_manager_opinion,')}">
+                    <font color="red">*</font>
+                </c:if>
+            </td>
+            <td class="l-table-edit-td" colspan="3">
+                <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',audit_deputy_general_manager_opinion,')}">
+                        <c:choose>
+                            <c:when test="${empty contractPurchaseForm.auditDgmOpinion}">
+                                <input id="auditDgmOpinion" value="" name="contractPurchaseForm.auditDgmOpinion" type="hidden" value="">
+                                <div id="audit_deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+                                    <input id="audit_deputy_general_manager_opinionbtn" value="盖章" name="audit_deputy_general_manager_opinionbtn" type="button" onclick="selectSeal('audit_deputy_general_manager_opinion')" style="float: left; display: block;">
+                                </div>
+                                <input id="audit_deputy_general_manager_opinion" value="" name="audit_deputy_general_manager_opinion" type="hidden">
+                                <input id="audit_deputy_general_manager_opinion_imgval" name="audit_deputy_general_manager_opinion_imgval" type="hidden" value="">
+                            </c:when>
+                            <c:otherwise>
+                                <div id="audit_deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+                                    <img src="${auditDgmOpinion_sealpath}" class="dragme" style="left:${auditDgmOpinion_x}px;top:${auditDgmOpinion_y}px;" id="audit_deputy_general_manager_opinion_img" name="audit_deputy_general_manager_opinion_img" value="audit_deputy_general_manager_opinion|${auditDgmOpinion_sealId}" onmousedown="selectmouse(this);">
+                                    <img width="12" height="12" title="删除" id="audit_deputy_general_manager_opinion_imgdel" name="audit_deputy_general_manager_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${auditDgmOpinion_sealId}','audit_deputy_general_manager_opinion','forvalPwd');">
+                                    <input id="audit_deputy_general_manager_opinionbtn" value="盖章" name="audit_deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('audit_deputy_general_manager_opinion')">
+                                </div>
+                                <input id="audit_deputy_general_manager_opinion" value="${auditDgmOpinion_formSealInsId}" name="audit_deputy_general_manager_opinion" type="hidden">
+                                <input id="audit_deputy_general_manager_opinion_imgval" name="audit_deputy_general_manager_opinion_imgval" type="hidden" value="${auditDgmOpinion_imgval}">
+                            </c:otherwise>
+                        </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                        <div id="audit_deputy_general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+                            <img src="${auditDgmOpinion_sealpath}" class="dragme" style="left:${auditDgmOpinion_x}px;top:${auditDgmOpinion_y}px;" id="audit_deputy_general_manager_opinion_img" name="audit_deputy_general_manager_opinion_img" value="audit_deputy_general_manager_opinion|${auditDgmOpinion_sealId}">
+                            <input id="audit_deputy_general_manager_opinionbtn" value="盖章" name="audit_deputy_general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('audit_deputy_general_manager_opinion')">
+                        </div>
+                        <input id="audit_deputy_general_manager_opinion" value="${auditDgmOpinion_formSealInsId}" name="audit_deputy_general_manager_opinion" type="hidden">
+                        <input id="audit_deputy_general_manager_opinion_imgval" name="audit_deputy_general_manager_opinion_imgval" type="hidden" value="${auditDgmOpinion_imgval}">
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+         <tr>
+            <td class="l-table-edit-text">总经理:
+            	<c:if test="${fn:contains(curTacheModel.table_fields, ',general_manager_opinion,')}"> 
+                     <font color="red">*</font>
+                </c:if> 
+            </td>
+            <td class="l-table-edit-td" colspan="3">  
+                 <c:choose>
+                    <c:when test="${fn:contains(curTacheModel.table_fields, ',general_manager_opinion,')}"> 
+                         <c:choose>
+                    		<c:when test="${empty contractPurchaseForm.gmOpinion}"> 
+                    			<input id="gmOpinion" value="" name="contractPurchaseForm.gmOpinion" type="hidden" value="">
+                    			<div id="general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<input id="general_manager_opinionbtn" value="盖章" name="general_manager_opinionbtn" type="button" onclick="selectSeal('general_manager_opinion')" style="float: left; display: block;">
+								</div>
+								<input id="general_manager_opinion" value="" name="general_manager_opinion" type="hidden">
+								<input id="general_manager_opinion_imgval" name="general_manager_opinion_imgval" type="hidden" value=""> 
+	                        </c:when>
+		                    <c:otherwise>
+		                    	<div id="general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+								<img src="${gmOpinion_sealpath}" class="dragme" style="left:${gmOpinion_x}px;top:${gmOpinion_y}px;" id="general_manager_opinion_img" name="general_manager_opinion_img" value="general_manager_opinion|${gmOpinion_sealId}" onmousedown="selectmouse(this);">
+								<img width="12" height="12" title="删除" id="general_manager_opinion_imgdel" name="general_manager_opinion_imgdel" style="cursor: pointer;" src="/shares/images/no.png" onclick="deleteFseal('${gmOpinion_sealId}','general_manager_opinion','forvalPwd');">
+								<input id="general_manager_opinionbtn" value="盖章" name="general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('general_manager_opinion')">
+								</div>
+								<input id="general_manager_opinion" value="${gmOpinion_formSealInsId}" name="general_manager_opinion" type="hidden">
+								<input id="general_manager_opinion_imgval" name="general_manager_opinion_imgval" type="hidden" value="${gmOpinion_imgval}"> 
+		                    </c:otherwise>
+		                </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    	<div id="general_manager_opinion_span" style="width: 100%; overflow: auto; padding: 5px 5px;;position: relative; font-size: 15px;">
+						<img src="${gmOpinion_sealpath}" class="dragme" style="left:${gmOpinion_x}px;top:${gmOpinion_y}px;" id="general_manager_opinion_img" name="general_manager_opinion_img" value="general_manager_opinion|${gmOpinion_sealId}">
+						<input id="general_manager_opinionbtn" value="盖章" name="general_manager_opinionbtn" type="button" style="float: left; display: none;" onclick="selectSeal('general_manager_opinion')">
+						</div>
+						<input id="general_manager_opinion" value="${gmOpinion_formSealInsId}" name="general_manager_opinion" type="hidden">
+						<input id="general_manager_opinion_imgval" name="general_manager_opinion_imgval" type="hidden" value="${gmOpinion_imgval}"> 
+                    </c:otherwise>
+                </c:choose>
+            </td>
+        </tr>
+
+    </table>
+    
+    <div id="firstDiv">
+        <table id="headTable" class="l-table-edit line" style="width:99%">
+            <tr>
+                <td colspan="2" style="text-align:center; font-size:16px;font-weight:bold;">
+                    <span style="font-size: 20px;">物品信息</span>
+                    <img align="bottom" id="addBuyInfo" style="cursor: pointer" class="add"
+                         src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jia.png">
+                    <c:if test="${curTacheModel.n_se eq 1}"><input type="button" class='l-button' id="addFromExcel" onclick="addExcel()" value="导入物品" /></c:if>       
+                </td>
+            </tr>
+        </table>
+        <table class="l-table-edit-new" width="99%" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse;">
+            <tr>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">物料编码</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">物料名称</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">型号/规格</th>
+                <!-- <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;"> 供应商</th>   -->
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">单位</th> 
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">数量</th>
+                <c:if test="${contractPurchaseForm.fromType == 'emcs'}">
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">申请人</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;text-align: center;">用途</th>
+                </c:if>
+                <!-- <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">单价</th>
+                <th class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">税率</th>  -->
+            </tr>
+
+			<c:forEach items="${contractPurchaseDetailList}" var="items">
+                <tr class="startTr1">
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="hidden" name="" class="input-width universalid"  value="${items.universalid}">
+                        <input type="text" name="" class="input-width materialCode TextDisplay"  value="${items.materialCode}" readonly>
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width materialName TextDisplay" value="${items.materialName}" readonly>
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width materialModel TextDisplay" value="${items.materialModel}" readonly> 
+                    </td> 
+                     <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width measureName TextDisplay" value="${items.measureName}" readonly> 
+                    </td> 
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width qty TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.qty}">
+                        <img align="bottom" style="cursor: pointer" class="substract1" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+                    </td>
+                    <c:if test="${contractPurchaseForm.fromType == 'emcs'}">
+                    <td class="l-table-edit-new" colspan="1" style="width:100px; padding-right: 0px;padding-left: 0px;" data-applyId="${items.applyId}" data-col="applyUser">
+                        <input type="text" name="" class="input-width applyUser TextDisplay" value="${items.applyDeptName}-${items.applyUser}" readonly>
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="width:150px; padding-right: 0px;padding-left: 0px;" data-applyId="${items.applyId}" data-col="remark">
+                        <input type="text" name="" class="input-width remark TextDisplay" value="${items.remark}" readonly>
+                    </td>
+                    </c:if>
+                    <%-- <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width price TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.price}">
+                    </td>
+                    <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+                        <input type="text" name="" class="input-width cess TextDisplay" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')" value="${items.cess}">
+                        <img align="bottom" style="cursor: pointer" class="substract1" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+                    </td>  --%>
+                </tr>
+            </c:forEach>
+            
+            <tr id="firstPoint"></tr>
+            
+            <input type="hidden" id="totalAmount" name="contractPurchaseForm.totalAmount" value="${contractPurchaseForm.totalAmount}">
+            <%-- <tr>
+                <td class="l-table-edit-new" colspan="3" style="padding-right: 0px;padding-left: 0px;"></td>
+                <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;"> 合计(元):</td>
+                <td class="l-table-edit-new" colspan="1"
+                    style="padding-right: 0px;padding-left: 0px;text-align: center;">
+                    <c:choose>
+	                    <c:when test="${curTacheModel.n_se ne 1}">${contractPurchaseForm.totalAmount}</c:when>
+	                    <c:otherwise>
+	                        <input type="text" id="totalAmount" name="contractPurchaseForm.totalAmount" value="${contractPurchaseForm.totalAmount}" class="input-width" readonly>
+	                    </c:otherwise>
+	                </c:choose> 
+                </td>
+                <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;"></td>
+            </tr> --%>
+
+        </table>
+    </div>
+   
+    <br>
+    <br>
+    <br>
+    <br> 
+    
+    <input type="hidden" id="se" name="se" value="${curTacheModel.n_se}">
+    <input type="hidden" id="table_fields" name="table_fields" value="${curTacheModel.table_fields}">
+    <input type="hidden" id="universalid" name="contractPurchaseForm.universalid" value="${contractPurchaseForm.universalid}">
+    <input type="hidden" id="lFormInsId" name="contractPurchaseForm.lFormInsId" value="${contractPurchaseForm.lFormInsId}">
+</form>
+</body>
+</html>
+
+
+<!-- *********************************************************模板************************************************************ -->
+<table>
+    <!-- ***************************************************模板 ------- 物料信息-->
+    <tr id="template_1" class="startTr1 hide">
+
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width materialCode" readonly>
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width materialName" readonly>
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width materialModel" readonly> 
+        </td> 
+         <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width measureName" readonly> 
+        </td> 
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width qty" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')">
+            <img align="bottom" style="cursor: pointer" class="substract1" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+        </td>
+        <c:if test="${contractPurchaseForm.fromType == 'emcs'}">
+        <td class="l-table-edit-new" colspan="1" style="width:100px; padding-right: 0px;padding-left: 0px;" data-applyId="" data-col="applyUser">
+            <input type="text" name="" class="input-width applyUser" readonly>
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="width:150px; padding-right: 0px;padding-left: 0px;" data-applyId="" data-col="remark">
+            <input type="text" name="" class="input-width remark" readonly>
+        </td>
+        </c:if>
+        <%-- <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width price" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')">
+        </td>
+        <td class="l-table-edit-new" colspan="1" style="padding-right: 0px;padding-left: 0px;">
+            <input type="text" name="" class="input-width cess" onkeyup="value=value.replace(/[^\d\.]/g,'')" onblur="value=value.replace(/[^\d\.]/g,'')">
+             <img align="bottom" style="cursor: pointer" class="substract1" src="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/images/index/jian.png">
+        </td> --%>
+    </tr>
+</table>

+ 9 - 1
src/main/webapp/yw/contract/purchaseNoContract/startContractPurchase.jsp

@@ -73,7 +73,14 @@
         function save() {
             saveAjaxForm("${pageContext.request.contextPath}/purchaseNoContractAction.do?task=start", "formIns");
         }
-        
+
+        /*
+         *保存草稿
+         *
+         */
+        function draftsave() {
+            draftsaveAjaxForm("${pageContext.request.contextPath }/purchaseNoContractAction.do?task=start", "formIns");
+        }
     </script>
     <style type="text/css">
         .l-table-edit-new {
@@ -209,6 +216,7 @@
     <br>
     <br>
     <input type="hidden" id="depid" name="contractPurchaseForm.depid" value="${depid}">
+    <input type="hidden" id="universalid" name="contractPurchaseForm.universalid" value="">
 </form>
 </body>
 </html>