Jelajahi Sumber

陈璐开票添加接收邮箱和截图粘贴功能

user5 1 tahun lalu
induk
melakukan
98214198b5
21 mengubah file dengan 1911 tambahan dan 86 penghapusan
  1. 90 0
      src/main/java/com/jeeplus/common/bos/BosController.java
  2. 9 0
      src/main/java/com/jeeplus/modules/workinvoice/entity/WorkInvoice.java
  3. 1 0
      src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllController.java
  4. 1 0
      src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllTwoController.java
  5. 108 0
      src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceController.java
  6. 1 0
      src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java
  7. 5 0
      src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml
  8. 131 0
      src/main/webapp/static/oss/ossupload.js
  9. 1 1
      src/main/webapp/webpage/modules/sys/picturePreview.jsp
  10. 174 7
      src/main/webapp/webpage/modules/workinvoice/conditionWorkInvoiceAudit.jsp
  11. 90 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllForm.jsp
  12. 91 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllModify.jsp
  13. 88 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoForm.jsp
  14. 73 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp
  15. 521 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceImageEdit.jsp
  16. 89 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp
  17. 94 29
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAudit.jsp
  18. 90 35
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAuditEnd.jsp
  19. 156 9
      src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoForm.jsp
  20. 91 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoModify.jsp
  21. 7 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceView.jsp

+ 90 - 0
src/main/java/com/jeeplus/common/bos/BosController.java

@@ -4,6 +4,7 @@ import com.jeeplus.common.config.Global;
 import com.jeeplus.common.oss.OSSClientUtil;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.FtlUtils;
+import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.modules.iim.entity.LayFileJsonData;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.utils.SftpClientUtil;
@@ -382,6 +383,26 @@ public class BosController {
         return srcFile;
     }
 
+
+    /**
+     * File转MultipartFile
+     * @param file
+     * @return
+     */
+    public static MultipartFile transformFile(File file){
+        InputStream inputStream = null;
+        MultipartFile multipartFile = null;
+        try {
+            inputStream = new FileInputStream(file);
+            multipartFile = new MockMultipartFile(file.getName(), inputStream);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return multipartFile;
+    }
+
     public static String datePath(){
 
         Calendar date = Calendar.getInstance();
@@ -495,4 +516,73 @@ public class BosController {
             e.printStackTrace();
         }
     }
+
+
+    @RequestMapping("temporaryFileUpload")
+    @ResponseBody
+    public Map temporaryFileUpload(HttpServletRequest request, MultipartFile file,String filePath, MultipartHttpServletRequest multiRequest){
+        Map map = new HashMap();
+        String storeAs = request.getParameter("storeAs");
+        // 文件存储方式(0:本地服务器存储。1:云端存储)
+        if("1".equals(uploadMode)){
+            try {
+                //MultipartFile转File
+                File srcFile = transformMultipartFile(file);
+                String path = directory+"/"+storeAs+datePath()+"/"+ System.currentTimeMillis()+srcFile.getName();
+                BOSClientUtil bosClientUtil = new BOSClientUtil();
+                InputStream inputStream = file.getInputStream();
+                String upload = bosClientUtil.upload(path, inputStream);
+                if(srcFile.exists()){
+                    srcFile.delete();
+                }
+                map.put("msg","上传成功");
+                map.put("code","1");
+                map.put("url",upload);
+            }catch (Exception e){
+                map.put("msg","上传失败");
+                map.put("code","0");
+                logger.error("Exception e:"+e);
+            }
+        }else if("2".equals(uploadMode)){
+            File newFile = new File(filePath);
+            //File转MultipartFile文件
+            SftpClientUtil sftpClientUtil = new SftpClientUtil();
+            MultipartFile mFile = sftpClientUtil.transformFile(newFile);
+            //文件上传oss
+            String uploadPath = null;
+            try {
+                uploadPath = ResponseUtil.uploadOss(mFile, "reportRecord");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }finally {
+                newFile.delete();
+            }
+            map.put("code", "1");
+            map.put("url", uploadPath);
+
+            map.put("name", newFile.getName());
+
+        }else{
+
+            try {
+                //MultipartFile转File
+                File srcFile = transformMultipartFile(file);
+                SftpClientUtil fileUploadUtil = new SftpClientUtil();
+                String uploadPath = "/" + storeAs + datePath();
+                String uploadFile = fileUploadUtil.uploadFile(uploadPath, srcFile, srcFile.getName());
+                if(srcFile.exists()){
+                    srcFile.delete();
+                }
+                map.put("msg","上传成功");
+                map.put("code","1");
+                map.put("url","/a/workfullmanage/workFullManage/downLoadAttach?file=" + uploadFile);
+            } catch (Exception e) {
+                logger.error("Exception e:"+e);
+                e.printStackTrace();
+                map.put("msg","上传失败");
+                map.put("code","0");
+            }
+        }
+        return map;
+    }
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/workinvoice/entity/WorkInvoice.java

@@ -103,6 +103,7 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	private String newDrawerId;    		//开票人id
 	private String newDrawerName;    	//开票人名称
 	private String actualDrawerId;    		//实际开票人id
+	private String actualDrawerEmailAddress;    		//实际开票人邮箱
 	private String actualDrawerName;    	//实际开票人名称
 	private String proceedsMoney;    	//收款总收入
 	private String noProceedsMoney;    	//剩余应收款费用
@@ -716,6 +717,14 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 		this.actualDrawerId = actualDrawerId;
 	}
 
+	public String getActualDrawerEmailAddress() {
+		return actualDrawerEmailAddress;
+	}
+
+	public void setActualDrawerEmailAddress(String actualDrawerEmailAddress) {
+		this.actualDrawerEmailAddress = actualDrawerEmailAddress;
+	}
+
 	public String getActualDrawerName() {
 		return actualDrawerName;
 	}

+ 1 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllController.java

@@ -447,6 +447,7 @@ public class WorkInvoiceAllController extends BaseController {
 			workInvoice.setInvoiceDate(new Date());
 			User user = UserUtils.getUser();
 			workInvoice.setActualDrawerId(user.getId());
+			workInvoice.setActualDrawerEmailAddress(user.getEmail());
 			workInvoice.setActualDrawerName(user.getName());
 		}
 

+ 1 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllTwoController.java

@@ -350,6 +350,7 @@ public class WorkInvoiceAllTwoController extends BaseController {
 			workInvoice.setInvoiceDate(new Date());
 			User user = UserUtils.getUser();
 			workInvoice.setActualDrawerId(user.getId());
+			workInvoice.setActualDrawerEmailAddress(user.getEmail());
 			workInvoice.setActualDrawerName(user.getName());
 		}
 

+ 108 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceController.java

@@ -6,8 +6,11 @@ package com.jeeplus.modules.workinvoice.web;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.jeeplus.common.bos.BOSClientUtil;
 import com.jeeplus.common.config.Global;
+import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.mapper.JsonMapper;
+import com.jeeplus.common.oss.OSSClientUtil;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.MyBeanUtils;
@@ -70,6 +73,9 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.ConstraintViolationException;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URLDecoder;
@@ -84,6 +90,11 @@ import java.util.*;
 @RequestMapping(value = "${adminPath}/workinvoice/workInvoice")
 public class WorkInvoiceController extends BaseController {
 
+	/**
+	 * 阿里云文件服务器前缀
+	 */
+	private final static String aliyunUrl = Global.getConfig("aliyunUrl");
+
 	@Autowired
 	private WorkInvoiceService workInvoiceService;
 	@Autowired
@@ -1602,4 +1613,101 @@ public class WorkInvoiceController extends BaseController {
 		return "redirect:"+Global.getAdminPath()+"/workinvoice/workInvoice/?repage";
 	}
 
+
+	/**
+	 * 截图模块跳转接口
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "workInvoiceImageEdit")
+	public String workInvoiceImageEdit(Model model) {
+		User currentUser = UserUtils.getUser();
+		model.addAttribute("user", currentUser);
+		model.addAttribute("Global", new Global());
+		return "modules/workinvoice/workInvoiceImageEdit";
+	}
+
+	/**
+	 * 开票截图显示编辑保存
+	 * @param request
+	 * @param response
+	 * @return
+	 * @throws IOException
+	 * @throws IllegalStateException
+	 */
+	@RequestMapping(value = "imageUpload")
+	@ResponseBody
+	public Map imageUpload( HttpServletRequest request, HttpServletResponse response,MultipartFile file) {
+		Map<String,Object> map = new HashMap<>();
+		User currentUser = UserUtils.getUser();
+		String imgName = System.currentTimeMillis() + "发票文件.png";
+		try{
+			if(file != null && file.getSize()>0){
+				String path = new StringBuilder("/temporary/").append(datePath())
+						.append(imgName).append(".png").toString();
+				String filePath = new StringBuilder("attachment-file/temporary/").append(datePath()).toString();
+				InputStream inputStream = file.getInputStream();
+				String url = "";
+				OSSClientUtil ossClientUtil = new OSSClientUtil();
+				ossClientUtil.uploadFile2OSS(inputStream,filePath,imgName);
+				url = "/" + filePath+imgName;
+				url = aliyunUrl + url;
+				//将图片下载保存到本地临时地址中
+				String phonepath = null;
+				if(System.getProperty("os.name").toLowerCase().contains("win")){
+					phonepath = "D:/attachment-file/" + "发票文件/" + currentUser.getName()+"/";
+				}else{
+					phonepath = "/attachment-file/" + "发票文件/" + currentUser.getName()+"/";
+				}
+
+				// 创建File对象
+				File folder = new File(phonepath);
+
+				// 判断文件夹是否存在并且是文件夹
+				if (folder.exists() && folder.isDirectory()) {
+					System.out.println("文件夹存在");
+				} else {
+					System.out.println("文件夹不存在");
+					folder.mkdirs();
+				}
+
+
+				String fileUrl = url;
+				fileUrl = fileUrl.replace("amp;","");
+				String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1, fileUrl.length());
+				String aliyunUrl = Global.getAliyunUrl();
+				String aliDownloadUrl = Global.getAliDownloadUrl();
+				String cons = "";
+				if (fileUrl.contains(aliyunUrl)){
+					cons = aliyunUrl;
+				}else if (fileUrl.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+					cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+				}else {
+					cons = aliDownloadUrl;
+				}
+				String ossKey = fileUrl.split(cons+"/")[1];
+				new OSSClientUtil().downByStreamSaveLocal(ossKey,fileName,phonepath+fileName);
+				//将下载下来的文件转换为file文件
+				File verticalInvalidFile = new File(phonepath+fileName);
+				map.put("file",verticalInvalidFile);
+				map.put("fileName",imgName);
+				map.put("url",url);
+			}
+		}catch (Exception e){
+			logger.error("转存发票截图异常:",e);
+		}
+		return map;
+	}
+
+
+
+	public static String datePath(){
+
+		Calendar date = Calendar.getInstance();
+		String year = String.valueOf(date.get(Calendar.YEAR));
+		String month = String.valueOf(date.get(Calendar.MONTH)+1);
+		String day = String.valueOf(date.get(Calendar.DAY_OF_MONTH));
+		String path = year+"/"+month+"/"+day + "/";
+		return path;
+	}
 }

+ 1 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java

@@ -371,6 +371,7 @@ public class WorkInvoiceTwoController extends BaseController {
 			workInvoice.setInvoiceDate(new Date());
 			User user = UserUtils.getUser();
 			workInvoice.setActualDrawerId(user.getId());
+			workInvoice.setActualDrawerEmailAddress(user.getEmail());
 			workInvoice.setActualDrawerName(user.getName());
 		}
 		//可能有问题,是否需要判断vew*

+ 5 - 0
src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml

@@ -65,6 +65,7 @@
 		a.area_id as "area.id",
 		a.new_drawer_id as "newDrawerId",
 		a.new_drawer as "newDrawer",
+		a.actual_drawer_email_address as "actualDrawerEmailAddress",
 		a.actual_drawer_id as "actualDrawerId"
 	</sql>
 
@@ -127,6 +128,7 @@
 		a.area_id as "area.id",
 		a.new_drawer_id as "newDrawerId",
 		a.new_drawer as "newDrawer",
+		a.actual_drawer_email_address as "actualDrawerEmailAddress",
 		a.actual_drawer_id as "actualDrawerId"
 	</sql>
 
@@ -1568,6 +1570,7 @@
 			area_id,
 			area_parent_id,
 			new_drawer_id,
+			actual_drawer_email_address,
 			new_drawer,
 			actual_drawer_id
 		) VALUES (
@@ -1613,6 +1616,7 @@
 			#{area.id},
 			(select parent_ids from sys_area where id = #{area.id}),
 		    #{newDrawerId},
+		    #{actualDrawerEmailAddress},
 		    #{newDrawer},
 		    #{actualDrawerId}
 		)
@@ -1659,6 +1663,7 @@
 			area_id = #{area.id},
 			area_parent_id = (select parent_ids from sys_area where id = #{area.id}),
 			new_drawer_id = #{newDrawerId},
+			actual_drawer_email_address = #{actualDrawerEmailAddress},
 			new_drawer = #{newDrawer},
 			actual_drawer_id = #{actualDrawerId}
 		WHERE id = #{id}

+ 131 - 0
src/main/webapp/static/oss/ossupload.js

@@ -2174,3 +2174,134 @@ function collectAccessory (ossClient, storeAs, file,attachmentId,attachmentFlag,
         console.log(err);
     });
 };
+
+
+
+function temporaryMultitest (storeAs, file,filePath,attachmentId,attachmentFlag,uploadPath,divId, size,cpt) {
+    var formdata = new FormData();
+    formdata.append("storeAs",storeAs);
+    formdata.append("file",file);
+    formdata.append("filePath",filePath);
+    var names =  storeAs.split("/");
+    var name = names[names.length-1];
+    var fileLocation = "";
+    var lookUrl = "";
+    //获取文件存储位置(0:本地;1:百度云;2:阿里云)
+    $.ajax({
+        type:"get",
+        url:realPath+"/bos/getFileStorageLocation",
+        async: false,
+        success:function(data){
+            fileLocation = data.fileLocation;
+        }
+    });
+    $.ajax({
+        type:'post',
+        url:realPath+"/bos/temporaryFileUpload",
+        data:formdata,
+        contentType: false,
+        processData: false,
+        success:function (data1) {
+            if(data1.code==='1'){
+                returnUrl = realPath+"/sys/workattachment/saveAttachment";
+
+                $.ajax({
+                    type:'post',
+                    url:returnUrl,
+                    data:{
+                        "attachmentName":data1.name,
+                        "attachmentId":attachmentId,
+                        "attachmentFlag":attachmentFlag,
+                        "url":data1.url,
+                        "divIdType":divId
+                    },
+                    success:function(data){
+                        var lowerType = data.type.toLowerCase();
+                        //console.log('url : ' + data.url);
+                        if(data.status=="Success"){
+                            parent.layer.msg("上传成功!",{icon:1});
+                            var lenght =$(".trIdAdds").length;
+                            if (size != 0){
+                                lenght += size;
+                            }
+                            var addFile = "addFile"+divId;
+                            var str = '<tr class="trIdAdds">'+
+                                '<td class="text-center">' ;
+                            if(2 == fileLocation){
+                                $.ajax({
+                                    type:"post",
+                                    async:false,
+                                    url:realPath+"/workfullmanage/workFullManage/getFileTemporaryLookUrl",
+                                    data:{"file":data.url,},
+                                    success:function(result){
+                                        lookUrl = result.lookUrl;
+                                        if (isContains("jpg,png,gif,bmp,jpeg",lowerType)){
+                                            str = str +'<img src="'+lookUrl+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/picturePreview?url=' +lookUrl+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                        }else if(isContains("pdf",lowerType)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+lookUrl+'\',1)">'+data.attachmentName+'</a>';
+                                        }else if(isContains("rar,zip,jar,7z",lowerType)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+lookUrl+'\',3)">'+data.attachmentName+'</a>';
+                                        }else if(isContains("avi,wmv,mpg,mpeg,mov,rm,ram,swf,flv,mp4,rmvb",lowerType)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/videoPreview?url=' +lookUrl+ '\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                        }else {
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+lookUrl+'\',2)">'+data.attachmentName+'</a>';
+                                        }
+                                    }
+                                });
+
+                            }else{
+                                if (isContains("jpg,png,gif,bmp,jpeg",lowerType)){
+                                    str = str +'<img src="'+data.url+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/picturePreview?url=' +data.url+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                }else if(isContains("pdf",lowerType)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+data.url+'\',1)">'+data.attachmentName+'</a>';
+                                }else if(isContains("rar,zip,jar,7z",lowerType)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+data.url+'\',3)">'+data.attachmentName+'</a>';
+                                }else if(isContains("avi,wmv,mpg,mpeg,mov,rm,ram,swf,flv,mp4,rmvb",lowerType)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/videoPreview?url=' +lookUrl+ '\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                }else {
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+data.url+'\',2)">'+data.attachmentName+'</a>';
+                                }
+                            }
+                            str = str +'</td>'+
+                                '<td >'+data.createByName+'</td>'+
+                                '<td >'+data.createDate+
+                                '<input name="workAttachments['+lenght+'].id" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value=""/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentId" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentId+'"/>'+
+                                '<input name="workAttachments['+lenght+'].url" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data1.url+'"/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentName" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data1.name+'"/>'+
+                                '<input name="workAttachments['+lenght+'].createBy.id" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.createBy+'"/>'+
+                                '<input name="workAttachments['+lenght+'].type" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.type+'"/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentFlag" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentFlag+'"/>'+
+                                '<input name="workAttachments['+lenght+'].divIdType" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.divIdType+'"/>'+
+                                '</td>'+
+                                '<td class="op-td">'+
+                                '<div class="op-btn-box">' ;
+                            if(2 == fileLocation){
+                                str = str +'<a href="'+lookUrl+'" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>';
+                            }else{
+                                str = str +'<a href="javascript:location.href=\''+realPath+'/a/workfullmanage/workFullManage/downLoadAttach?file=\'+encodeURIComponent(\''+data.url+'\');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>';
+                            }
+                            str = str +'<a href="javascript:void(0)" onclick="deleteFileFromAliyun1(this,\''+realPath+'/sys/workattachment/deleteFileFromAliyun?url='+data.url+'&id='+data.id+'&type=2\',\''+addFile+'\',\''+divId+'\')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>'+
+                                '</div>' +
+                                '</td>'+
+                                '</tr>';
+                            /*console.log("file:"+divId);
+                            console.log("str="+str);*/
+                            $("#file"+divId).append(str);
+
+                            var p = Math.floor(1*100);
+                            $("#jindutiao"+divId).attr("style","width: "+p+"%");
+                            $("#jindutiao"+divId).attr("aria-valuenow",p+"%");
+                            $("#baifenbi"+divId).html(p+"%");
+                            $("#fileName"+divId).html("上传进度:");
+                        }else {
+                            parent.layer.msg("上传失败!",{icon:2});
+                        }
+                    }
+                })
+            }else {
+                parent.layer.msg("上传失败!",{icon:2});
+            }
+        }
+    })
+};

+ 1 - 1
src/main/webapp/webpage/modules/sys/picturePreview.jsp

@@ -33,7 +33,7 @@
 </head>
 <body class="hideScroll">
 <center style="margin-top: 40px;">
-    <img src="${url}" onload="AutoResizeImage(800,550,this)">
+    <img src="${url}" onload="AutoResizeImage(0,0,this)">
 </center>
 </body>
 </html>

+ 174 - 7
src/main/webapp/webpage/modules/workinvoice/conditionWorkInvoiceAudit.jsp

@@ -4,6 +4,8 @@
 <head>
 	<title>发票审批</title>
 	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
 	<style>
 		#workInvoiceProjectRelationList td{
 			padding-left: 0px;
@@ -17,16 +19,65 @@
 			  var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
 			  $("#opinion").val(ss);
               if(obj == 1) {
+				  //非空验证
+				  var ff=true;
+				  $(".judgment").each(function(){
+					  var zhi=$(this).val();
+					  if (''==zhi || null == zhi){
+						  $(this).css("border","1px solid red")
+						  ff=false;
+					  }else{
+						  $(this).css("border","1px solid #f1f1f1")
+					  }
+				  });
+				  if (!ff){
+					  parent.layer.msg("发票号或开票金额未填写完整!", {icon: 5});
+					  return;
+				  }
                   $("#flag").val("yes");
               }else {
                   $("#flag").val("no");
               }
+			  if(  obj == 1 && $("#workAccountList tr").length==0){
+				  top.layer.alert('请添加发票明细!', {icon: 0});
+				  return;
+			  }
+
+			  var m = ${workInvoice.money};
+			  var money = "0.00";
+			  //自动计算出结果并填充在相应的输入框中
+			  var size = $("#workAccountList tr").length+count;
+			  for (var i = 0;i<size;i++){
+				  var _totalMoney = $("#workAccountList"+i+"_totalMoney").val();
+
+				  var delFlag = $("#workAccountList"+i+"_delFlag").val();
+				  if (_totalMoney!=undefined && isNumber(_totalMoney) && delFlag==0){
+					  if(money==""){
+						  money = parseFloat(_totalMoney).toFixed(2);
+					  }else {
+						  money = (parseFloat(money) + parseFloat(_totalMoney)).toFixed(2);
+					  }
+				  }
+			  }
+			  if(obj == 1 && money != m ){
+				  top.layer.alert('发票明细总开票金额与主信息开票金额不等,请重新填写!', {icon: 0});
+				  return;
+			  }
+
 			  $("#inputForm").submit();
 			  return true;
 		  }
 		  return false;
 		}
 		$(document).ready(function() {
+			//初始化截图功能子页面。
+			$('#orgContent').attr("src","${ctx}/workinvoice/workInvoice/workInvoiceImageEdit");
+
+			layui.use('form', function () {
+				var form = layui.form;
+				form.render();
+			});
+
 			$("#name").focus();
 			validateForm = $("#inputForm").validate({
 				submitHandler: function(form){
@@ -44,6 +95,38 @@
 				}
 			});
 
+
+
+			$("#userImageBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["750px", "500px"],
+					title: "上传图片",
+					btn: ['提交', '关闭'],
+					content: "${ctx}/sys/user/imageEdit", //  btn: ['确定', '关闭'],
+					yes: function (index, layero) {
+						console.log(1232131)
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = body.find('#inputForm');
+						console.log(inputForm)
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+						} else {
+							return;
+						}
+
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
 		});
 		function addRow1(list, idx, tpl, row){
 			var idx1 = $("#workInvoiceProjectRelationList tr").length;
@@ -93,6 +176,24 @@
 				}
 			});
 		}
+
+		function insertTemporaryFile(tValue,fileName){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+
+			var temporaryFilePath = tValue;
+			const file = new File([temporaryFilePath], fileName); // 创建File对象
+			var attachmentId = "";
+			var attachmentFlag = "115";
+			var timestamp = new Date().getTime();
+
+			var storeAs = "workInvoice";
+			var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+			/*将这段字符串存到数据库即可*/
+			var divId = "_attachment";
+			$("#addFile" + divId).show();
+			temporaryMultitest(storeAs, file,temporaryFilePath, attachmentId, attachmentFlag, uploadPath, divId, size);
+		}
 	</script>
 </head>
 <body>
@@ -188,7 +289,7 @@
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
-				<label class="layui-form-label">实际开票单位:</label>
+				<label class="layui-form-label"><span class="require-item">*</span>实际开票单位:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.client.name}"/>
 				</div>
@@ -196,7 +297,7 @@
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">纳税人识别号:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
+					<input htmlEscape="false" readonly="true" id="orUnicode"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
@@ -223,10 +324,29 @@
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.bankNumber}"/>
 				</div>
 			</div>
+
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">姓名:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">收款类型:</label>
+				<div class="layui-input-block">
+					<input id="chargeType" htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.chargeType}" />
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">开票内容:</label>
+				<div class="layui-input-block">
+					<input id="billingContent" htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.billingContent}" />
+				</div>
+			</div>
 			<div class="layui-item layui-col-sm6">
-				<label class="layui-form-label">价税合计(元):</label>
+				<label class="layui-form-label"><span class="require-item">*</span>开票金额(元):</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="<fmt:formatNumber value="${workInvoice.money}" pattern="##00.00"/>"/>
+					<input id="kaipiao" htmlEscape="false" readonly="true"   class="form-control layui-input" value="<fmt:formatNumber value="${workInvoice.money}" pattern="##00.00"/>"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
@@ -236,17 +356,64 @@
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">开票人:</label>
+				<div class="layui-input-block">
+					<form:input   path="drawerName" htmlEscape="false" readonly="true"  class="form-control layui-input"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">开票时间:</label>
+				<div class="layui-input-block">
+					<input class="form-control layer-date laydate-icon layui-input laydate-icondate" id="invoiceDate" name="invoiceDate" value="<fmt:formatDate
+							value="${workInvoice.invoiceDate}" pattern="yyyy-MM-dd"/>">
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">领票时间:</label>
+				<div class="layui-input-block">
+					<input placeholder="请选择领票时间" class="form-control layer-date laydate-icon layui-input laydate-icondate" id="takeDate" name="takeDate" value="<fmt:formatDate
+							value="${workInvoice.takeDate}" pattern="yyyy-MM-dd"/>">
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">实际开票人:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">接收邮箱:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerEmailAddress}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">对账人:</label>
 				<div class="layui-input-block  with-icon">
-					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workInvoice.accountCheckingUserName}"/>
+					<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">对账地区:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.area.name}"  class="form-control layui-input" style="background-color: #f1f1f1" >
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm12 with-textarea">
-				<label class="layui-form-label">作废原因:</label>
+				<label class="layui-form-label double-line">备注:</label>
 				<div class="layui-input-block">
-					<form:textarea path="cancellationRemark" readonly="true"  class="form-control" htmlEscape="false" rows="4"  maxlength="255"/>
+					<form:textarea path="remarks" readonly="true" htmlEscape="false" rows="4" class="form-control" style="background-color: #f1f1f1" />
 				</div>
 			</div>
+
+			<%--<div>
+
+					&lt;%&ndash;嵌入子页面&ndash;%&gt;
+				<iframe id="orgContent" src="" style="border:1px dashed #000;" width="100%" height="450px" frameborder="0">
+				</iframe>
+
+			</div>--%>
+
 		</div>
 		<div class="form-group layui-row">
 			<div class="form-group-label"><h2>附件信息</h2></div>

+ 90 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllForm.jsp

@@ -77,6 +77,16 @@
 						parent.layer.msg("先添加项目信息!", {icon: 5});
 						return false;
 					}
+					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+						parent.layer.msg("请填写电子邮箱!", {icon: 5});
+						return false;
+					}else{
+						var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+						if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+							parent.layer.msg("电子邮箱格式不正确!", {icon: 5});
+							return false;
+						}
+					}
 					if (flag){
 						$("#inputForm").attr("action","${ctx}/workinvoice/workInvoice/save");
 					}else if (!flags){
@@ -266,7 +276,49 @@
 				}
 			});
 
+			$("#userEmailBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["550px", "350px"],
+					title: "个人信息编辑",
+					content: "${ctx}/sys/user/infoEdit",
+					btn: ['确定', '关闭'],
+					skin: "two-btns",
+					yes: function (index, layero) {
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = $(body).find('#inputForm');
+						var email = inputForm.find('#email').val()
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+							$("#actualDrawerEmailAddress").val(email);
+						} else {
+							return;
+						}
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
 
+			$('#actualDrawerEmailAddress').blur(function (){
+				if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+					/*$('#email').next("span").html("邮箱不能为空");
+                    $('#email').focus();*/
+				}else{
+					var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+					if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+						$('#actualDrawerEmailAddressSpan').html("邮箱格式不正确");
+						//$('#actualDrawerEmailAddress').focus();
+					}else{
+						$('#actualDrawerEmailAddressSpan').html("");
+					}
+				}
+			});
 			/*--------------*/
 
 		});
@@ -296,10 +348,32 @@
 					// $("#telephone").val(d.telephone);
 					// $("#address").val(d.registerAddress);
 					$("#ids").val(d.ids);
-					window.bankShow(d.bankList);
+					newBankShow(d.bankList);
 				}
 			})
 		}
+
+		function newBankShow (data){
+			$('#bank').html('<option value="">请选择开户行信息</option>')
+			//对选中开票单位的银行做级联操作
+			for (var info in data){
+				if(data[info].id == '${workInvoice.bank}'){
+					$('#bank').append(new Option(data[info].ourBank,data[info].id,true,true));
+					$("#bankNumber").val(data[info].bankNumber);
+					if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+						$('#bankRemarks').html('备注:' + data[info].remarks);
+					}else{
+						$('#bankRemarks').html('');
+					}
+				}else{
+					$('#bank').append(new Option(data[info].ourBank,data[info].id));
+				}
+			}
+			layui.form.render("select");
+			form.render();
+		}
+
+
 		function setDp(obj){
 			$.ajax({
 				type:'post',
@@ -1025,6 +1099,21 @@
 												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
 					</div>
 				</div>
+
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>接收邮箱:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<form:input path="actualDrawerEmailAddress" htmlEscape="false"  value="${workInvoice.actualDrawerEmailAddress}" maxlength="50" class="form-control layui-input judgment email"/>
+							<span class="input-group-btn" style="font-size:14px;height: 40px;">
+								<a id="userEmailBtn" class="form-status"style="font-size:14px;height: 40px;line-height: 40px;background-color: #0f92fb;">完善电子邮箱</a>
+							</span>
+						</div>
+						<div>
+							<span id="actualDrawerEmailAddressSpan" class="help-inline" style="display:block;color: #cc5965"></span>
+						</div>
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>对账人:</label>
 					<div class="layui-input-block  with-icon">

+ 91 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllModify.jsp

@@ -39,6 +39,17 @@
 				}
 				if(obj == 2){
 					$("#flag").val("no");
+
+					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+						parent.layer.msg("请填写电子邮箱!", {icon: 5});
+						return false;
+					}else{
+						var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+						if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+							parent.layer.msg("电子邮箱格式不正确!", {icon: 5});
+							return false;
+						}
+					}
 				}else{
 					var flags=judgment();
 					if (leng==0){
@@ -235,6 +246,52 @@
 			$("#attachment_btn").click(function () {
 				$("#attachment_file").click();
 			});
+
+
+			$("#userEmailBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["550px", "350px"],
+					title: "个人信息编辑",
+					content: "${ctx}/sys/user/infoEdit",
+					btn: ['确定', '关闭'],
+					skin: "two-btns",
+					yes: function (index, layero) {
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = $(body).find('#inputForm');
+						var email = inputForm.find('#email').val()
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+							$("#actualDrawerEmailAddress").val(email);
+						} else {
+							return;
+						}
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+			$('#actualDrawerEmailAddress').blur(function (){
+				if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+					/*$('#email').next("span").html("邮箱不能为空");
+                    $('#email').focus();*/
+				}else{
+					var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+					if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+						$('#actualDrawerEmailAddressSpan').html("邮箱格式不正确");
+						//$('#actualDrawerEmailAddress').focus();
+					}else{
+						$('#actualDrawerEmailAddressSpan').html("");
+					}
+				}
+			});
+
 		});
 		function setValuee(obj){
 			$.ajax({
@@ -256,10 +313,29 @@
 						$("#address").val(d.registerAddress);
 					}
 					$("#ids").val(d.ids);
-					window.bankShow(d.bankList);
+					newBankShow(d.bankList);
 				}
 			})
 		}
+		function newBankShow (data){
+			$('#bank').html('<option value="">请选择开户行信息</option>')
+			//对选中开票单位的银行做级联操作
+			for (var info in data){
+				if(data[info].id == '${workInvoice.bank}'){
+					$('#bank').append(new Option(data[info].ourBank,data[info].id,true,true));
+					$("#bankNumber").val(data[info].bankNumber);
+					if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+						$('#bankRemarks').html('备注:' + data[info].remarks);
+					}else{
+						$('#bankRemarks').html('');
+					}
+				}else{
+					$('#bank').append(new Option(data[info].ourBank,data[info].id));
+				}
+			}
+			layui.form.render("select");
+			form.render();
+		}
 		function setDp(obj){
 			$.ajax({
 				type:'post',
@@ -966,6 +1042,20 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>接收邮箱:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<form:input path="actualDrawerEmailAddress" htmlEscape="false"  value="${workInvoice.actualDrawerEmailAddress}" maxlength="50" class="form-control layui-input judgment email"/>
+							<span class="input-group-btn" style="font-size:14px;height: 40px;">
+								<a id="userEmailBtn" class="form-status"style="font-size:14px;height: 40px;line-height: 40px;background-color: #0f92fb;">完善电子邮箱</a>
+							</span>
+						</div>
+						<div>
+							<span id="actualDrawerEmailAddressSpan" class="help-inline" style="display:block;color: #cc5965"></span>
+						</div>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 88 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoForm.jsp

@@ -77,6 +77,16 @@
 						parent.layer.msg("先添加项目信息!", {icon: 5});
 						return false;
 					}
+					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+						parent.layer.msg("请填写电子邮箱!", {icon: 5});
+						return false;
+					}else{
+						var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+						if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+							parent.layer.msg("电子邮箱格式不正确!", {icon: 5});
+							return false;
+						}
+					}
 					if (flag){
 						$("#inputForm").attr("action","${ctx}/workinvoice/workInvoice/save");
 					}else if (!flags){
@@ -267,6 +277,49 @@
 			});
 
 
+			$("#userEmailBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["550px", "350px"],
+					title: "个人信息编辑",
+					content: "${ctx}/sys/user/infoEdit",
+					btn: ['确定', '关闭'],
+					skin: "two-btns",
+					yes: function (index, layero) {
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = $(body).find('#inputForm');
+						var email = inputForm.find('#email').val()
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+							$("#actualDrawerEmailAddress").val(email);
+						} else {
+							return;
+						}
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+			$('#actualDrawerEmailAddress').blur(function (){
+				if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+					/*$('#email').next("span").html("邮箱不能为空");
+                    $('#email').focus();*/
+				}else{
+					var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+					if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+						$('#actualDrawerEmailAddressSpan').html("邮箱格式不正确");
+						//$('#actualDrawerEmailAddress').focus();
+					}else{
+						$('#actualDrawerEmailAddressSpan').html("");
+					}
+				}
+			});
 			/*--------------*/
 
 		});
@@ -296,10 +349,29 @@
 					// $("#telephone").val(d.telephone);
 					// $("#address").val(d.registerAddress);
 					$("#ids").val(d.ids);
-					window.bankShow(d.bankList);
+					newBankShow(d.bankList);
 				}
 			})
 		}
+		function newBankShow (data){
+			$('#bank').html('<option value="">请选择开户行信息</option>')
+			//对选中开票单位的银行做级联操作
+			for (var info in data){
+				if(data[info].id == '${workInvoice.bank}'){
+					$('#bank').append(new Option(data[info].ourBank,data[info].id,true,true));
+					$("#bankNumber").val(data[info].bankNumber);
+					if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+						$('#bankRemarks').html('备注:' + data[info].remarks);
+					}else{
+						$('#bankRemarks').html('');
+					}
+				}else{
+					$('#bank').append(new Option(data[info].ourBank,data[info].id));
+				}
+			}
+			layui.form.render("select");
+			form.render();
+		}
 		function setDp(obj){
 			$.ajax({
 				type:'post',
@@ -994,6 +1066,21 @@
 												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
 					</div>
 				</div>
+
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>接收邮箱:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<form:input path="actualDrawerEmailAddress" htmlEscape="false"  value="${workInvoice.actualDrawerEmailAddress}" maxlength="50" class="form-control layui-input judgment email"/>
+							<span class="input-group-btn" style="font-size:14px;height: 40px;">
+								<a id="userEmailBtn" class="form-status"style="font-size:14px;height: 40px;line-height: 40px;background-color: #0f92fb;">完善电子邮箱</a>
+							</span>
+						</div>
+						<div>
+							<span id="actualDrawerEmailAddressSpan" class="help-inline" style="display:block;color: #cc5965"></span>
+						</div>
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>对账人:</label>
 					<div class="layui-input-block  with-icon">

+ 73 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp

@@ -72,6 +72,10 @@
 		  return false;
 		}
 		$(document).ready(function() {
+
+			//初始化截图功能子页面。
+			$('#orgContent').attr("src","${ctx}/workinvoice/workInvoice/workInvoiceImageEdit");
+
 			layui.use('form', function () {
 				var form = layui.form;
 				form.render();
@@ -120,6 +124,40 @@
 				$(".count1").hide();
 				$(".count2").show();
 			}
+
+
+			$("#userImageBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["750px", "500px"],
+					title: "上传图片",
+					btn: ['提交', '关闭'],
+					content: "${ctx}/sys/user/imageEdit", //  btn: ['确定', '关闭'],
+					yes: function (index, layero) {
+						console.log(1232131)
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = body.find('#inputForm');
+						console.log(inputForm)
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+						} else {
+							return;
+						}
+
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+
+
 		});
 
         function addRow(list, idx, tpl, row,flag){
@@ -461,6 +499,27 @@
 			bornTemplete(list, idx, tpl, row, idx1);
 			$("#workAccountList"+idx+"_number").change();
         }
+
+
+		function insertTemporaryFile(tValue,fileName){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+
+			var temporaryFilePath = tValue;
+			const file = new File([temporaryFilePath], fileName); // 创建File对象
+			var attachmentId = "";
+			var attachmentFlag = "115";
+			var timestamp = new Date().getTime();
+
+			var storeAs = "workInvoice";
+			var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+			/*将这段字符串存到数据库即可*/
+			var divId = "_attachment";
+			$("#addFile" + divId).show();
+			temporaryMultitest(storeAs, file,temporaryFilePath, attachmentId, attachmentFlag, uploadPath, divId, size);
+		}
+
+
 	</script>
 </head>
 <body>
@@ -632,6 +691,12 @@
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">接收邮箱:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerEmailAddress}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">对账人:</label>
 				<div class="layui-input-block  with-icon">
 					<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
@@ -649,6 +714,14 @@
 					<form:textarea path="remarks" readonly="true" htmlEscape="false" rows="4" class="form-control" style="background-color: #f1f1f1" />
 				</div>
 			</div>
+
+			<div>
+
+					<%--嵌入子页面--%>
+				<iframe id="orgContent" src="" style="border:1px dashed #000;" width="100%" height="450px" frameborder="0">
+				</iframe>
+
+			</div>
 <%--			<div class="form-group layui-row">--%>
 <%--				<div class="form-group-label"><h2>审批意见</h2></div>--%>
 <%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>

+ 521 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceImageEdit.jsp

@@ -0,0 +1,521 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>个人信息</title>
+	<meta name="decorator" content="default"/>
+	<link rel="stylesheet" type="text/css" href="${ctxStatic}/webuploader-0.1.5/webuploader.css">
+	<link rel="stylesheet" type="text/css" href="${ctxStatic}/webuploader-0.1.5/demo.css">
+	  <script type="text/javascript">
+    // 添加全局站点信息
+    var BASE_URL = '/webuploader';
+    </script>
+	<script type="text/javascript" src="${ctxStatic}/webuploader-0.1.5/webuploader.js"></script>
+	<!-- <script type="text/javascript" src="${ctxStatic}/webuploader-0.1.5/demo.js"></script> -->
+    <style>
+        #uploader .placeholder{
+            min-height: 150px;
+        }
+    </style>
+</head>
+<body class="hideScroll">
+      <div class="wrapper wrapper-content animated fadeIn">
+
+        <%--<div class="row">--%>
+            <%--<div class="col-sm-12">--%>
+                <div class="ibox float-e-margins">
+                    <div class="ibox-content">
+                        <div class="page-container">
+                            <p>您可以尝试文件拖拽,使用QQ、微信等截屏工具,然后激活窗口后粘贴来上传图片。图片上传后可在下方附件信息中可进行查看</p>
+                            <div id="uploader" class="wu-example">
+                                <div class="queueList">
+                                    <div id="dndArea" class="placeholder">
+                                        <div id="filePicker"></div>
+                                        <p>将图片拖到这里</p>
+                                    </div>
+                                </div>
+                                <div class="statusBar" style="display:none;">
+                                    <div class="progress">
+                                        <span class="text">0%</span>
+                                        <span class="percentage"></span>
+                                    </div>
+                                    <div class="info"></div>
+                                    <div class="btns">
+                                        <div id="filePicker2"></div>
+                                        <%--<div class="uploadBtn">开始上传</div>--%>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            <%--</div>--%>
+        <%--</div>--%>
+
+    </div>
+    <script>
+    jQuery(function() {
+        var $ = jQuery,    // just in case. Make sure it's not an other libaray.
+
+            $wrap = $('#uploader'),
+
+            // 图片容器
+            $queue = $('<ul class="filelist"></ul>')
+                .appendTo( $wrap.find('.queueList') ),
+
+            // 状态栏,包括进度和控制按钮
+            $statusBar = $wrap.find('.statusBar'),
+
+            // 文件总体选择信息。
+            $info = $statusBar.find('.info'),
+
+            // 上传按钮
+            $upload = $wrap.find('.uploadBtn'),
+
+            // 没选择文件之前的内容。
+            $placeHolder = $wrap.find('.placeholder'),
+
+            // 总体进度条
+            $progress = $statusBar.find('.progress').hide(),
+
+            // 添加的文件数量
+            fileCount = 0,
+
+            // 添加的文件总大小
+            fileSize = 0,
+
+            // 优化retina, 在retina下这个值是2
+            ratio = window.devicePixelRatio || 1,
+
+            // 缩略图大小
+            thumbnailWidth = 110 * ratio,
+            thumbnailHeight = 110 * ratio,
+
+            // 可能有pedding, ready, uploading, confirm, done.
+            state = 'pedding',
+
+            // 所有文件的进度信息,key为file id
+            percentages = {},
+
+            supportTransition = (function(){
+                var s = document.createElement('p').style,
+                    r = 'transition' in s ||
+                          'WebkitTransition' in s ||
+                          'MozTransition' in s ||
+                          'msTransition' in s ||
+                          'OTransition' in s;
+                s = null;
+                return r;
+            })(),
+
+            // WebUploader实例
+            uploader;
+
+        if ( !WebUploader.Uploader.support() ) {
+            alert( 'Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器');
+            throw new Error( 'WebUploader does not support the browser you are using.' );
+        }
+
+        // 实例化
+        uploader = WebUploader.create({
+            pick: {
+                id: '#filePicker',
+                //label: '点击选择图片'
+                label: ''
+            },
+            dnd: '#uploader .queueList',
+            paste: document.body,
+
+            accept: {
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            },
+            auto: true, // 选完文件后,是否自动上传
+            // swf文件路径
+            swf: BASE_URL + '/js/Uploader.swf',
+
+            disableGlobalDnd: true,
+
+            chunked: true,
+            //配置压缩图片
+            compress:{
+                compressSize: 1048576,//不超过此字节数不会压缩图片
+                preserveHeaders: false,//是否保存头部meta信息
+                width: 518,//1寸295*413
+                heigtht: 826,
+                quality: 100//图片质量
+            },
+            // server: 'http://webuploader.duapp.com/server/fileupload.php',
+            server: '${ctx}/workinvoice/workInvoice/imageUpload',
+            fileNumLimit: 10,//一次最多上传多少张照片
+            fileSizeLimit: 5 * 1024 * 1024,    // 200 M
+            fileSingleSizeLimit: 1 * 1024 * 1024    // 50 M
+        });
+
+        // 添加“添加文件”的按钮,
+//        uploader.addButton({
+//            id: '#filePicker2',
+//            label: '继续添加'
+//        });
+
+        uploader.on('error', function(handler) {
+            if (handler == "Q_EXCEED_NUM_LIMIT") {
+                parent.layer.msg("只能上传一张图片",{icon:5});
+            }
+        });
+        // 当有文件添加进来时执行,负责view的创建
+        function addFile( file ) {
+            console.log("粘贴图片")
+
+            var $li = $( '<li id="' + file.id + '">' +
+                    '<p class="title">' + file.name + '</p>' +
+                    '<p class="imgWrap"></p>'+
+                    '<p class="progress"><span></span></p>' +
+                    '</li>' ),
+
+                $btns = $('<div class="file-panel">' +
+                    '<span class="cancel">删除</span>' +
+                    '<span class="rotateRight">向右旋转</span>' +
+                    '<span class="rotateLeft">向左旋转</span></div>').appendTo( $li ),
+                $prgress = $li.find('p.progress span'),
+                $wrap = $li.find( 'p.imgWrap' ),
+                $info = $('<p class="error"></p>'),
+
+                showError = function( code ) {
+                    switch( code ) {
+                        case 'exceed_size':
+                            text = '文件大小超出';
+                            break;
+
+                        case 'interrupt':
+                            text = '上传暂停';
+                            break;
+
+                        default:
+                            text = '上传失败,请重试';
+                            break;
+                    }
+
+                    $info.text( text ).appendTo( $li );
+                };
+
+            if ( file.getStatus() === 'invalid' ) {
+                showError( file.statusText );
+            } else {
+                // @todo lazyload
+                $wrap.text( '预览中' );
+                uploader.makeThumb( file, function( error, src ) {
+                    if ( error ) {
+                        $wrap.text( '不能预览' );
+                        return;
+                    }
+
+                    var img = $('<img src="'+src+'"  alt="预览">');
+                    $wrap.empty().append( img );
+                }, thumbnailWidth, thumbnailHeight );
+
+                percentages[ file.id ] = [ file.size, 0 ];
+                file.rotation = 0;
+            }
+
+            file.on('statuschange', function( cur, prev ) {
+                if ( prev === 'progress' ) {
+                    $prgress.hide().width(0);
+                } else if ( prev === 'queued' ) {
+                    $li.off( 'mouseenter mouseleave' );
+                    $btns.remove();
+                }
+
+                // 成功
+                if ( cur === 'error' || cur === 'invalid' ) {
+                    console.log( file.statusText );
+                    showError( file.statusText );
+                    percentages[ file.id ][ 1 ] = 1;
+                } else if ( cur === 'interrupt' ) {
+                    showError( 'interrupt' );
+                } else if ( cur === 'queued' ) {
+                    percentages[ file.id ][ 1 ] = 0;
+                } else if ( cur === 'progress' ) {
+                    $info.remove();
+                    $prgress.css('display', 'block');
+                } else if ( cur === 'complete' ) {
+                    $li.append( '<span class="success"></span>' );
+                }
+
+                $li.removeClass( 'state-' + prev ).addClass( 'state-' + cur );
+            });
+
+            $li.on( 'mouseenter', function() {
+                $btns.stop().animate({height: 30});
+            });
+
+            $li.on( 'mouseleave', function() {
+                $btns.stop().animate({height: 0});
+            });
+
+            $btns.on( 'click', 'span', function() {
+                var index = $(this).index(),
+                    deg;
+
+                switch ( index ) {
+                    case 0:
+                        uploader.removeFile( file );
+                        return;
+
+                    case 1:
+                        file.rotation += 90;
+                        break;
+
+                    case 2:
+                        file.rotation -= 90;
+                        break;
+                }
+
+                if ( supportTransition ) {
+                    deg = 'rotate(' + file.rotation + 'deg)';
+                    $wrap.css({
+                        '-webkit-transform': deg,
+                        '-mos-transform': deg,
+                        '-o-transform': deg,
+                        'transform': deg
+                    });
+                } else {
+                    $wrap.css( 'filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation='+ (~~((file.rotation/90)%4 + 4)%4) +')');
+                    // use jquery animate to rotation
+                    // $({
+                    //     rotation: rotation
+                    // }).animate({
+                    //     rotation: file.rotation
+                    // }, {
+                    //     easing: 'linear',
+                    //     step: function( now ) {
+                    //         now = now * Math.PI / 180;
+
+                    //         var cos = Math.cos( now ),
+                    //             sin = Math.sin( now );
+
+                    //         $wrap.css( 'filter', "progid:DXImageTransform.Microsoft.Matrix(M11=" + cos + ",M12=" + (-sin) + ",M21=" + sin + ",M22=" + cos + ",SizingMethod='auto expand')");
+                    //     }
+                    // });
+                }
+
+
+            });
+
+            $li.appendTo( $queue );
+        }
+
+        // 负责view的销毁
+        function removeFile( file ) {
+            var $li = $('#'+file.id);
+
+            delete percentages[ file.id ];
+            updateTotalProgress();
+            $li.off().find('.file-panel').off().end().remove();
+        }
+
+        function updateTotalProgress() {
+            var loaded = 0,
+                total = 0,
+                spans = $progress.children(),
+                percent;
+
+            $.each( percentages, function( k, v ) {
+                total += v[ 0 ];
+                loaded += v[ 0 ] * v[ 1 ];
+            } );
+
+            percent = total ? loaded / total : 0;
+
+            spans.eq( 0 ).text( Math.round( percent * 100 ) + '%' );
+            spans.eq( 1 ).css( 'width', Math.round( percent * 100 ) + '%' );
+            updateStatus();
+        }
+
+        function updateStatus() {
+            var text = '', stats;
+
+            if ( state === 'ready' ) {
+                text = '选中' + fileCount + '张图片,共' +
+                        WebUploader.formatSize( fileSize ) + '。';
+            } else if ( state === 'confirm' ) {
+                stats = uploader.getStats();
+                if ( stats.uploadFailNum ) {
+                    text = '已成功上传' + stats.successNum+ '张图片,'+
+                        stats.uploadFailNum + '张图片上传失败,<a class="retry" href="javascript:void(0)">重新上传</a>失败图片或<a class="ignore" href="javascript:void(0)">忽略</a>'
+                }
+
+            } else {
+                stats = uploader.getStats();
+                text = '上传成功';
+
+                if ( stats.uploadFailNum ) {
+                    text ='上传失败!';
+                }
+            }
+
+            $info.html( text );
+        }
+
+        function setState( val ) {
+            var file, stats;
+
+            if ( val === state ) {
+                return;
+            }
+
+            $upload.removeClass( 'state-' + state );
+            $upload.addClass( 'state-' + val );
+            state = val;
+
+            switch ( state ) {
+                case 'pedding':
+                    $placeHolder.removeClass( 'element-invisible' );
+                    $queue.parent().removeClass('filled');
+                    $queue.hide();
+                    $statusBar.addClass( 'element-invisible' );
+                    uploader.refresh();
+                    break;
+
+                case 'ready':
+                    $placeHolder.addClass( 'element-invisible' );
+                    $( '#filePicker2' ).removeClass( 'element-invisible');
+                    $queue.parent().addClass('filled');
+                    $queue.show();
+                    $statusBar.removeClass('element-invisible');
+                    uploader.refresh();
+                    break;
+
+                case 'uploading':
+                    $( '#filePicker2' ).addClass( 'element-invisible' );
+                    $progress.show();
+                    $upload.text( '暂停上传' );
+                    break;
+
+                case 'paused':
+                    $progress.show();
+                    $upload.text( '继续上传' );
+                    break;
+
+                case 'confirm':
+                    $progress.hide();
+                    $upload.text( '开始上传' ).addClass( 'disabled' );
+
+                    stats = uploader.getStats();
+                    if ( stats.successNum && !stats.uploadFailNum ) {
+                        setState( 'finish' );
+                        return;
+                    }
+                    break;
+                case 'finish':
+                    stats = uploader.getStats();
+                    if ( stats.successNum ) {
+                      //  alert( '上传成功' );
+                        
+                    } else {
+                        // 没有成功的图片,重设
+                        state = 'done';
+                        location.reload();
+                    }
+                    break;
+            }
+
+            updateStatus();
+        }
+
+        uploader.onUploadProgress = function( file, percentage ) {
+            var $li = $('#'+file.id),
+                $percent = $li.find('.progress span');
+
+            $percent.css( 'width', percentage * 100 + '%' );
+            percentages[ file.id ][ 1 ] = percentage;
+            updateTotalProgress();
+        };
+
+        uploader.onFileQueued = function( file ) {
+            fileCount++;
+            fileSize += file.size;
+
+            if ( fileCount === 1 ) {
+                $placeHolder.addClass( 'element-invisible' );
+                $statusBar.show();
+            }
+
+            addFile( file );
+            setState( 'ready' );
+            updateTotalProgress();
+        };
+
+        uploader.onFileDequeued = function( file ) {
+            fileCount--;
+            fileSize -= file.size;
+
+            if ( !fileCount ) {
+                setState( 'pedding' );
+            }
+
+            removeFile( file );
+            updateTotalProgress();
+
+        };
+
+        uploader.on( 'all', function( type ) {
+            var stats;
+            switch( type ) {
+                case 'uploadFinished':
+                    setState( 'confirm' );
+                    break;
+
+                case 'startUpload':
+                    setState( 'uploading' );
+                    break;
+
+                case 'stopUpload':
+                    setState( 'paused' );
+                    break;
+
+            }
+        });
+
+        $upload.on('click', function() {
+            console.log("进入提交方法")
+            if ( $(this).hasClass( 'disabled' ) ) {
+                return false;
+            }
+
+            if ( state === 'ready' ) {
+                uploader.upload();
+            } else if ( state === 'paused' ) {
+                uploader.upload();
+            } else if ( state === 'uploading' ) {
+                uploader.stop();
+            }
+        });
+
+        $info.on( 'click', '.retry', function() {
+            uploader.retry();
+        } );
+
+        $info.on( 'click', '.ignore', function() {
+            alert( 'todo' );
+        } );
+
+        $upload.addClass( 'state-' + state );
+        updateTotalProgress();
+
+        uploader.on( 'uploadSuccess', function( file,response ) {//response是上传图片api的返回值,路径加文件名
+
+            console.log("返回值")
+            addFileUpload(response.file,response.fileName)
+        });
+
+        function addFileUpload( file,fileName ) {
+            console.log("进入addFileUpload方法")
+            console.log(file)
+            parent.window.insertTemporaryFile(file,fileName)
+        }
+    });
+    </script>
+</body>
+</html>

+ 89 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp

@@ -54,6 +54,16 @@
 
 				if(obj == 2){
                     $("#flag").val("no");
+					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+						parent.layer.msg("请填写电子邮箱!", {icon: 5});
+						return false;
+					}else{
+						var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+						if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+							parent.layer.msg("电子邮箱格式不正确!", {icon: 5});
+							return false;
+						}
+					}
                 }else{
 					var flags=judgment();
 					if (leng==0){
@@ -248,6 +258,50 @@
 			$("#attachment_btn").click(function () {
 				$("#attachment_file").click();
 			});
+
+			$("#userEmailBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["550px", "350px"],
+					title: "个人信息编辑",
+					content: "${ctx}/sys/user/infoEdit",
+					btn: ['确定', '关闭'],
+					skin: "two-btns",
+					yes: function (index, layero) {
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = $(body).find('#inputForm');
+						var email = inputForm.find('#email').val()
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+							$("#actualDrawerEmailAddress").val(email);
+						} else {
+							return;
+						}
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+			$('#actualDrawerEmailAddress').blur(function (){
+				if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+					/*$('#email').next("span").html("邮箱不能为空");
+                    $('#email').focus();*/
+				}else{
+					var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+					if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+						$('#actualDrawerEmailAddressSpan').html("邮箱格式不正确");
+						//$('#actualDrawerEmailAddress').focus();
+					}else{
+						$('#actualDrawerEmailAddressSpan').html("");
+					}
+				}
+			});
         });
         function setValuee(obj){
 			$("#bankNumber").val("");
@@ -271,10 +325,30 @@
 						$("#address").val(d.registerAddress);
 					}
                     $("#ids").val(d.ids);
-					window.bankShow(d.bankList);
+					newBankShow(d.bankList);
                 }
             })
         }
+
+		function newBankShow (data){
+			$('#bank').html('<option value="">请选择开户行信息</option>')
+			//对选中开票单位的银行做级联操作
+			for (var info in data){
+				if(data[info].id == '${workInvoice.bank}'){
+					$('#bank').append(new Option(data[info].ourBank,data[info].id,true,true));
+					$("#bankNumber").val(data[info].bankNumber);
+					if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+						$('#bankRemarks').html('备注:' + data[info].remarks);
+					}else{
+						$('#bankRemarks').html('');
+					}
+				}else{
+					$('#bank').append(new Option(data[info].ourBank,data[info].id));
+				}
+			}
+			layui.form.render("select");
+			form.render();
+		}
         function setDp(obj){
             $.ajax({
                 type:'post',
@@ -999,6 +1073,20 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>接收邮箱:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<form:input path="actualDrawerEmailAddress" htmlEscape="false"  value="${workInvoice.actualDrawerEmailAddress}" maxlength="50" class="form-control layui-input judgment email"/>
+							<span class="input-group-btn" style="font-size:14px;height: 40px;">
+								<a id="userEmailBtn" class="form-status"style="font-size:14px;height: 40px;line-height: 40px;background-color: #0f92fb;">完善电子邮箱</a>
+							</span>
+						</div>
+						<div>
+							<span id="actualDrawerEmailAddressSpan" class="help-inline" style="display:block;color: #cc5965"></span>
+						</div>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 94 - 29
src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAudit.jsp

@@ -34,6 +34,10 @@
 			return false;
 		}
 		$(document).ready(function() {
+
+			//初始化截图功能子页面。
+			$('#orgContent').attr("src","${ctx}/workinvoice/workInvoice/workInvoiceImageEdit");
+
 			layui.use('form', function () {
 				var form = layui.form;
 				form.render();
@@ -72,6 +76,36 @@
 				var d=this.length-endStr.length;
 				return (d>=0&&this.lastIndexOf(endStr)==d)
 			}
+
+			$("#userImageBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["750px", "500px"],
+					title: "上传图片",
+					btn: ['提交', '关闭'],
+					content: "${ctx}/sys/user/imageEdit", //  btn: ['确定', '关闭'],
+					yes: function (index, layero) {
+						console.log(1232131)
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = body.find('#inputForm');
+						console.log(inputForm)
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+						} else {
+							return;
+						}
+
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
 		});
 
 		function addRow(list, idx, tpl, row,flag){
@@ -413,6 +447,24 @@
 			bornTemplete(list, idx, tpl, row, idx1);
 			$("#workAccountList"+idx+"_number").change();
 		}
+
+		function insertTemporaryFile(tValue,fileName){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+
+			var temporaryFilePath = tValue;
+			const file = new File([temporaryFilePath], fileName); // 创建File对象
+			var attachmentId = "";
+			var attachmentFlag = "115";
+			var timestamp = new Date().getTime();
+
+			var storeAs = "workInvoice";
+			var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+			/*将这段字符串存到数据库即可*/
+			var divId = "_attachment";
+			$("#addFile" + divId).show();
+			temporaryMultitest(storeAs, file,temporaryFilePath, attachmentId, attachmentFlag, uploadPath, divId, size);
+		}
 	</script>
 </head>
 <body>
@@ -520,6 +572,13 @@
 						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.bankNumber}"/>
 					</div>
 				</div>
+
+				<div class="layui-item layui-col-sm6 count2">
+					<label class="layui-form-label">姓名:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">收款类型:</label>
 					<div class="layui-input-block">
@@ -551,6 +610,32 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">开票时间:</label>
+					<div class="layui-input-block">
+						<input class="form-control layer-date laydate-icon layui-input laydate-icondate" id="invoiceDate" name="invoiceDate" value="<fmt:formatDate
+							value="${workInvoice.invoiceDate}" pattern="yyyy-MM-dd"/>">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">领票时间:</label>
+					<div class="layui-input-block">
+						<input placeholder="请选择领票时间" class="form-control layer-date laydate-icon layui-input laydate-icondate" id="takeDate" name="takeDate" value="<fmt:formatDate
+							value="${workInvoice.takeDate}" pattern="yyyy-MM-dd"/>">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">接收邮箱:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerEmailAddress}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
@@ -568,35 +653,15 @@
 						<form:textarea path="remarks" readonly="true" htmlEscape="false" rows="4" class="form-control" style="background-color: #f1f1f1" />
 					</div>
 				</div>
-					<%--			<div class="form-group layui-row">--%>
-					<%--				<div class="form-group-label"><h2>审批意见</h2></div>--%>
-					<%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
-					<%--					<div class="layui-input-block" style="margin-left:10px;position: relative">--%>
-					<%--						<form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
-					<%--						<a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
-					<%--						<input type="file" name="upload_files" style="display: none;">--%>
-					<%--					</div>--%>
-					<%--				</div>--%>
-					<%--				<div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
-					<%--					<div class="layui-input-block" style="margin-left:10px;">--%>
-					<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
-					<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
-					<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
-					<%--						<div style="padding: 5px 0px;">--%>
-					<%--							<form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
-					<%--								<form:option value=""/>--%>
-					<%--								<form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
-					<%--							</form:select>--%>
-					<%--						</div>--%>
-					<%--					</div>--%>
-					<%--				</div>--%>
-					<%--			</div>--%>
-					<%--			<div class="layui-item layui-col-sm12 with-textarea">--%>
-					<%--				<label class="layui-form-label">审批意见:</label>--%>
-					<%--				<div class="layui-input-block">--%>
-					<%--					<form:textarea path="act.comment" class="form-control " rows="5" maxlength="20"/>--%>
-					<%--				</div>--%>
-					<%--			</div>--%>
+
+				<%--<div>
+
+						&lt;%&ndash;嵌入子页面&ndash;%&gt;
+					<iframe id="orgContent" src="" style="border:1px dashed #000;" width="100%" height="450px" frameborder="0">
+					</iframe>
+
+				</div>--%>
+
 			</div>
 			<div class="form-group layui-row">
 				<div class="form-group-label"><h2>附件信息</h2></div>

+ 90 - 35
src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAuditEnd.jsp

@@ -72,6 +72,9 @@
 		  return false;
 		}
 		$(document).ready(function() {
+			//初始化截图功能子页面。
+			$('#orgContent').attr("src","${ctx}/workinvoice/workInvoice/workInvoiceImageEdit");
+
 			layui.use('form', function () {
 				var form = layui.form;
 				form.render();
@@ -110,6 +113,40 @@
                 var d=this.length-endStr.length;
                 return (d>=0&&this.lastIndexOf(endStr)==d)
             }
+
+
+			$("#userImageBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["750px", "500px"],
+					title: "上传图片",
+					btn: ['提交', '关闭'],
+					content: "${ctx}/sys/user/imageEdit", //  btn: ['确定', '关闭'],
+					yes: function (index, layero) {
+						console.log(1232131)
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = body.find('#inputForm');
+						console.log(inputForm)
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+						} else {
+							return;
+						}
+
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+
+
 		});
 
         function addRow(list, idx, tpl, row,flag){
@@ -451,6 +488,26 @@
 			bornTemplete(list, idx, tpl, row, idx1);
 			$("#workAccountList"+idx+"_number").change();
         }
+
+
+		function insertTemporaryFile(tValue,fileName){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+
+			var temporaryFilePath = tValue;
+			const file = new File([temporaryFilePath], fileName); // 创建File对象
+			var attachmentId = "";
+			var attachmentFlag = "115";
+			var timestamp = new Date().getTime();
+
+			var storeAs = "workInvoice";
+			var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+			/*将这段字符串存到数据库即可*/
+			var divId = "_attachment";
+			$("#addFile" + divId).show();
+			temporaryMultitest(storeAs, file,temporaryFilePath, attachmentId, attachmentFlag, uploadPath, divId, size);
+		}
+
 	</script>
 </head>
 <body>
@@ -522,42 +579,49 @@
 					<input htmlEscape="false" readonly="true" id="invoiceType"  class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.invoiceType eq '1'}">专票</c:when><c:when test="${workInvoice.invoiceType eq '2'}">普票</c:when></c:choose>"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label"><span class="require-item">*</span>实际开票单位:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.client.name}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">纳税人识别号:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true" id="orUnicode"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">地址:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.address}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">电话:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.telephone}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">开户银行:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.bank}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">银行账号:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.bankNumber}"/>
 				</div>
 			</div>
+
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">姓名:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+				</div>
+			</div>
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">收款类型:</label>
 				<div class="layui-input-block">
@@ -603,6 +667,18 @@
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">实际开票人:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">接收邮箱:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerEmailAddress}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">对账人:</label>
 				<div class="layui-input-block  with-icon">
 					<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
@@ -620,35 +696,14 @@
 					<form:textarea path="remarks" readonly="true" htmlEscape="false" rows="4" class="form-control" style="background-color: #f1f1f1" />
 				</div>
 			</div>
-<%--			<div class="form-group layui-row">--%>
-<%--				<div class="form-group-label"><h2>审批意见</h2></div>--%>
-<%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
-<%--					<div class="layui-input-block" style="margin-left:10px;position: relative">--%>
-<%--						<form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
-<%--						<a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
-<%--						<input type="file" name="upload_files" style="display: none;">--%>
-<%--					</div>--%>
-<%--				</div>--%>
-<%--				<div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
-<%--					<div class="layui-input-block" style="margin-left:10px;">--%>
-<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
-<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
-<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
-<%--						<div style="padding: 5px 0px;">--%>
-<%--							<form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
-<%--								<form:option value=""/>--%>
-<%--								<form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
-<%--							</form:select>--%>
-<%--						</div>--%>
-<%--					</div>--%>
-<%--				</div>--%>
-<%--			</div>--%>
-<%--			<div class="layui-item layui-col-sm12 with-textarea">--%>
-<%--				<label class="layui-form-label">审批意见:</label>--%>
-<%--				<div class="layui-input-block">--%>
-<%--					<form:textarea path="act.comment" class="form-control " rows="5" maxlength="20"/>--%>
-<%--				</div>--%>
-<%--			</div>--%>
+
+			<div>
+
+					<%--嵌入子页面--%>
+				<iframe id="orgContent" src="" style="border:1px dashed #000;" width="100%" height="450px" frameborder="0">
+				</iframe>
+
+			</div>
 		</div>
 		<div class="form-group layui-row">
 			<div class="form-group-label"><h2>附件信息</h2></div>

+ 156 - 9
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoForm.jsp

@@ -79,6 +79,17 @@
 						return false;
 					}
 
+					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+						parent.layer.msg("请填写电子邮箱!", {icon: 5});
+						return false;
+					}else{
+						var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+						if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+							parent.layer.msg("电子邮箱格式不正确!", {icon: 5});
+							return false;
+						}
+					}
+
 					if (flag){
 						$("#inputForm").attr("action","${ctx}/workinvoice/workInvoice/save");
 					}else if (!flags){
@@ -95,7 +106,10 @@
         }
 
         $(document).ready(function() {
-        	var billingContent = $("#billingContent").val();
+			//初始化子页面。
+			//$('#orgContent').attr("src","${ctx}/workinvoice/workInvoice/workInvoiceImageEdit");
+
+			var billingContent = $("#billingContent").val();
         	if(8 != billingContent){
 				$(".contractType").hide();
 				$("#contractTypeDoc").attr("class","form-control");
@@ -273,14 +287,90 @@
 			$("#attachment_btn").click(function () {
 				$("#attachment_file").click();
 			});
-        });
 
-		function setValuee (obj){
-			$("#bankNumber").val("");
-			$('#bankRemarks').html('');
-            $.ajax({
-                type:'post',
-                url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getWorkClientInfo',
+
+			$("#userImageBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["750px", "500px"],
+					title: "上传图片",
+					btn: ['提交', '关闭'],
+					content: "${ctx}/sys/user/imageEdit", //  btn: ['确定', '关闭'],
+					yes: function (index, layero) {
+						console.log(1232131)
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = body.find('#inputForm');
+						console.log(inputForm)
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+						} else {
+							return;
+						}
+
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+
+			$("#userEmailBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["550px", "350px"],
+					title: "个人信息编辑",
+					content: "${ctx}/sys/user/infoEdit",
+					btn: ['确定', '关闭'],
+					skin: "two-btns",
+					yes: function (index, layero) {
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = $(body).find('#inputForm');
+						var email = inputForm.find('#email').val()
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+							$("#actualDrawerEmailAddress").val(email);
+						} else {
+							return;
+						}
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+			$('#actualDrawerEmailAddress').blur(function (){
+				if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+					/*$('#email').next("span").html("邮箱不能为空");
+                    $('#email').focus();*/
+				}else{
+					var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+					if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+						$('#actualDrawerEmailAddressSpan').html("邮箱格式不正确");
+						//$('#actualDrawerEmailAddress').focus();
+					}else{
+						$('#actualDrawerEmailAddressSpan').html("");
+					}
+				}
+			});
+		});
+
+            function setValuee (obj){
+                $("#bankNumber").val("");
+                $('#bankRemarks').html('');
+                $.ajax({
+                    type:'post',
+                    url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getWorkClientInfo',
                 data:{
                     "obj":obj
                 },
@@ -300,10 +390,29 @@
                     // $("#telephone").val(d.telephone);
                     // $("#address").val(d.registerAddress);
 					$("#ids").val(d.ids);
-					window.bankShow(d.bankList);
+					newBankShow(d.bankList);
                 }
             })
         }
+		function newBankShow (data){
+			$('#bank').html('<option value="">请选择开户行信息</option>')
+			//对选中开票单位的银行做级联操作
+			for (var info in data){
+				if(data[info].id == '${workInvoice.bank}'){
+					$('#bank').append(new Option(data[info].ourBank,data[info].id,true,true));
+					$("#bankNumber").val(data[info].bankNumber);
+					if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+						$('#bankRemarks').html('备注:' + data[info].remarks);
+					}else{
+						$('#bankRemarks').html('');
+					}
+				}else{
+					$('#bank').append(new Option(data[info].ourBank,data[info].id));
+				}
+			}
+			layui.form.render("select");
+			form.render();
+		}
         function setDp(obj){
             $.ajax({
                 type:'post',
@@ -763,6 +872,23 @@
 				multipartUploadWithStsCollection(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, size);
 			}
 		}
+		/*function insertTemporaryFile(tValue,fileName){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+
+			var temporaryFilePath = tValue;
+			const file = new File([temporaryFilePath], fileName); // 创建File对象
+			var attachmentId = "";
+			var attachmentFlag = "115";
+			var timestamp = new Date().getTime();
+
+			var storeAs = "workInvoice";
+			var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+			/!*将这段字符串存到数据库即可*!/
+			var divId = "_attachment";
+			$("#addFile" + divId).show();
+			temporaryMultitest(storeAs, file,temporaryFilePath, attachmentId, attachmentFlag, uploadPath, divId, size);
+		}*/
 
 		/*function num(obj){
 
@@ -1032,6 +1158,20 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>接收邮箱:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<form:input path="actualDrawerEmailAddress" htmlEscape="false"  value="${workInvoice.actualDrawerEmailAddress}" maxlength="50" class="form-control layui-input judgment email"/>
+							<span class="input-group-btn" style="font-size:14px;height: 40px;">
+								<a id="userEmailBtn" class="form-status"style="font-size:14px;height: 40px;line-height: 40px;background-color: #0f92fb;">完善电子邮箱</a>
+							</span>
+						</div>
+						<div>
+							<span id="actualDrawerEmailAddressSpan" class="help-inline" style="display:block;color: #cc5965"></span>
+						</div>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"
@@ -1052,6 +1192,13 @@
 					</div>
 				</div>
 			</div>
+			<%--<div>
+
+				&lt;%&ndash;嵌入子页面&ndash;%&gt;
+				<iframe id="orgContent" src="" style="border:1px dashed #000;" width="100%" height="450px" frameborder="0">
+				</iframe>
+
+			</div>--%>
 			<div class="form-group layui-row">
 				<div class="form-group-label"><h2>附件信息</h2></div>
 				<div class="layui-item nav-btns">

+ 91 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoModify.jsp

@@ -52,6 +52,17 @@
 				}
 				if(obj == 2){
                     $("#flag").val("no");
+
+					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+						parent.layer.msg("请填写电子邮箱!", {icon: 5});
+						return false;
+					}else{
+						var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+						if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+							parent.layer.msg("电子邮箱格式不正确!", {icon: 5});
+							return false;
+						}
+					}
                 }else{
 					var flags=judgment();
 					if (leng==0){
@@ -243,6 +254,52 @@
 			$("#attachment_btn").click(function () {
 				$("#attachment_file").click();
 			});
+
+
+
+			$("#userEmailBtn").click(function () {
+				top.layer.open({
+					type: 2,
+					area: ["550px", "350px"],
+					title: "个人信息编辑",
+					content: "${ctx}/sys/user/infoEdit",
+					btn: ['确定', '关闭'],
+					skin: "two-btns",
+					yes: function (index, layero) {
+						var body = top.layer.getChildFrame('body', index);
+						var inputForm = $(body).find('#inputForm');
+						var email = inputForm.find('#email').val()
+						var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+						inputForm.validate();
+						if (inputForm.valid()) {
+							loading("正在提交,请稍等...");
+							inputForm.submit();
+							$("#actualDrawerEmailAddress").val(email);
+						} else {
+							return;
+						}
+						top.layer.close(index);//关闭对话框。
+
+					},
+					cancel: function (index) {
+					}
+				});
+			});
+
+			$('#actualDrawerEmailAddress').blur(function (){
+				if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
+					/*$('#email').next("span").html("邮箱不能为空");
+                    $('#email').focus();*/
+				}else{
+					var testEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
+					if(!testEmail.test($('#actualDrawerEmailAddress').val())){
+						$('#actualDrawerEmailAddressSpan').html("邮箱格式不正确");
+						//$('#actualDrawerEmailAddress').focus();
+					}else{
+						$('#actualDrawerEmailAddressSpan').html("");
+					}
+				}
+			});
         });
         function setValuee(obj){
 			$("#bankNumber").val("");
@@ -266,10 +323,29 @@
 						$("#address").val(d.registerAddress);
 					}
                     $("#ids").val(d.ids);
-					window.bankShow(d.bankList);
+					newBankShow(d.bankList);
                 }
             })
         }
+		function newBankShow (data){
+			$('#bank').html('<option value="">请选择开户行信息</option>')
+			//对选中开票单位的银行做级联操作
+			for (var info in data){
+				if(data[info].id == '${workInvoice.bank}'){
+					$('#bank').append(new Option(data[info].ourBank,data[info].id,true,true));
+					$("#bankNumber").val(data[info].bankNumber);
+					if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+						$('#bankRemarks').html('备注:' + data[info].remarks);
+					}else{
+						$('#bankRemarks').html('');
+					}
+				}else{
+					$('#bank').append(new Option(data[info].ourBank,data[info].id));
+				}
+			}
+			layui.form.render("select");
+			form.render();
+		}
         function setDp(obj){
             $.ajax({
                 type:'post',
@@ -976,6 +1052,20 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>接收邮箱:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<form:input path="actualDrawerEmailAddress" htmlEscape="false"  value="${workInvoice.actualDrawerEmailAddress}" maxlength="50" class="form-control layui-input judgment email"/>
+							<span class="input-group-btn" style="font-size:14px;height: 40px;">
+								<a id="userEmailBtn" class="form-status"style="font-size:14px;height: 40px;line-height: 40px;background-color: #0f92fb;">完善电子邮箱</a>
+							</span>
+						</div>
+						<div>
+							<span id="actualDrawerEmailAddressSpan" class="help-inline" style="display:block;color: #cc5965"></span>
+						</div>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceView.jsp

@@ -212,6 +212,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">接收邮箱:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerEmailAddress}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >