|
@@ -0,0 +1,843 @@
|
|
|
+<%@ page contentType="text/html;charset=UTF-8" %>
|
|
|
+<%@ include file="/webpage/include/taglib.jsp"%>
|
|
|
+<html>
|
|
|
+<head>
|
|
|
+ <title>材料库</title>
|
|
|
+ <meta name="decorator" content="default"/>
|
|
|
+ <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
|
|
|
+ <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
|
|
|
+ <script src="${ctxStatic}/common/html/js/script.js"></script>
|
|
|
+ <style>
|
|
|
+ #contractTypeDoc-error{
|
|
|
+ top:80px;
|
|
|
+ left:0;
|
|
|
+ }
|
|
|
+ /*超过5个汉字,调整label的长度,以下是配套的*/
|
|
|
+ .layui-item .layui-form-label{
|
|
|
+ width:90px;
|
|
|
+ }
|
|
|
+ .form-group .layui-item .layui-input-block,
|
|
|
+ .query .layui-input-block {
|
|
|
+ margin-left: 116px;
|
|
|
+ }
|
|
|
+ #workInvoiceProjectRelationList td{
|
|
|
+ padding-left: 0px;
|
|
|
+ padding-right: 0px;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+ <script type="text/javascript">
|
|
|
+ var validateForm;
|
|
|
+ function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
|
|
|
+ //debugger
|
|
|
+ if(validateForm.form()){
|
|
|
+ var invoiceType=$('input:radio[name="invoiceType"]:checked').val();
|
|
|
+ if(null == invoiceType || undefined == invoiceType || '' == invoiceType){
|
|
|
+ parent.layer.msg("请选择发票类型",{icon:0});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(invoiceType == 1){
|
|
|
+ var bank = $("#bank").val();
|
|
|
+ if(null == bank || undefined == bank || '' == bank){
|
|
|
+ parent.layer.msg("请选择开户银行",{icon:0});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var bankNumber = $("#bankNumber").val();
|
|
|
+ if(null == bankNumber || undefined == bankNumber || '' == bankNumber){
|
|
|
+ parent.layer.msg("银行账号不可为空",{icon:0});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var leng=$("#workInvoiceProjectRelationList tr").length;
|
|
|
+ if (leng>1){
|
|
|
+ var count=0;
|
|
|
+ var count1=leng;
|
|
|
+ for (var i=0;i<leng;i++) {
|
|
|
+ var delFlag = $("#workInvoiceProjectRelationList").find("tr").eq(i).find("input").eq(1).val();
|
|
|
+ if (delFlag == "1") {
|
|
|
+ count = i+1;
|
|
|
+ count1 = count1-1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count1!=1){
|
|
|
+ var id=$("#workInvoiceProjectRelationList").find("tr").eq(count).find("input").eq(5).val();
|
|
|
+ if (id==undefined || id == ''){
|
|
|
+ parent.layer.msg("非项目,只能有一条非项目数据,请删除其余项目数据",{icon:6});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(obj == 2){
|
|
|
+ $("#inputForm").attr("action","${ctx}/workinvoiceTwo/workinvoiceTwo/store");
|
|
|
+ }else{
|
|
|
+ var flag=judgment();
|
|
|
+ if (leng==0){
|
|
|
+ flag=2;
|
|
|
+ }
|
|
|
+ if (flag==2){
|
|
|
+ parent.layer.msg("先添加项目信息!", {icon: 5});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (flag){
|
|
|
+ $("#inputForm").attr("action","${ctx}/workinvoiceTwo/workinvoiceTwo/save");
|
|
|
+ }else if (!flags){
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $("#chargeType").removeAttr("disabled")
|
|
|
+ $("#inputForm").submit();
|
|
|
+ return true;
|
|
|
+ }else {
|
|
|
+ parent.layer.msg("信息未填写完整!", {icon: 5});
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $(document).ready(function() {
|
|
|
+ var billingContent = $("#billingContent").val();
|
|
|
+ if(8 != billingContent){
|
|
|
+ $(".contractType").hide();
|
|
|
+ $("#contractTypeDoc").attr("class","form-control");
|
|
|
+ }else{
|
|
|
+ $(".contractType").show();
|
|
|
+ $("#contractTypeDoc").attr("class","form-control judgment");
|
|
|
+ }
|
|
|
+
|
|
|
+ var newDrawerRadio = '${workInvoice.newDrawer}';//后端获取值
|
|
|
+ if(undefined == newDrawerRadio || null == newDrawerRadio || '' == newDrawerRadio || newDrawerRadio == "1"){
|
|
|
+ document.getElementsByName("newDrawer")[0].checked = true;
|
|
|
+ $(".count2").hide();
|
|
|
+ $(".count1").show();
|
|
|
+ }else{
|
|
|
+ document.getElementsByName("newDrawer")[1].checked = true;
|
|
|
+ $(".count1").hide();
|
|
|
+ $(".count2").show();
|
|
|
+ }
|
|
|
+ setValuee('${workInvoice.client.id}')
|
|
|
+
|
|
|
+ layui.use(['form', 'layer'], function () {
|
|
|
+ var form = layui.form;
|
|
|
+
|
|
|
+ form.on("radio(invoiceType)", function(event){
|
|
|
+ var radioVal = $(this).val();
|
|
|
+ //专票必填
|
|
|
+ if(radioVal == 1){
|
|
|
+ $(".invoicetype").show();
|
|
|
+ $("#bank").attr("class","form-control judgment layui-input");
|
|
|
+ $("#bankNumber").attr("class","form-control judgment layui-input");
|
|
|
+ $("#orUnicode").attr("class","form-control isUscCode judgment layui-input");
|
|
|
+ $("#address").attr("class","form-control judgment layui-input");
|
|
|
+ $("#telephone").attr("class","form-control isTel judgment layui-input");
|
|
|
+ }else if(radioVal == 2){
|
|
|
+ $(".invoicetype").hide();
|
|
|
+ $("#bank").attr("class","form-control layui-input");
|
|
|
+ $("#bankNumber").attr("class","form-control layui-input");
|
|
|
+ $("#orUnicode").attr("class","form-control isUscCode layui-input");
|
|
|
+ $("#address").attr("class","form-control layui-input");
|
|
|
+ $("#telephone").attr("class","form-control isTel layui-input");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ form.on('radio(newDrawerRadio)',function (event) {
|
|
|
+ var radioVal = $(this).val();
|
|
|
+ if(radioVal == 1 || radioVal == 1){
|
|
|
+ $(".count2").hide();
|
|
|
+ $(".count1").show();
|
|
|
+ }else if(radioVal == 2 || radioVal == 2){
|
|
|
+ $(".count1").hide();
|
|
|
+ $(".count2").show();
|
|
|
+ }
|
|
|
+ form.render();
|
|
|
+ })
|
|
|
+
|
|
|
+ form.on('select(billingContent)', function(data){
|
|
|
+ if(data.value == 8){
|
|
|
+ $(".contractType").show();
|
|
|
+ $("#contractTypeDoc").attr("class","form-control judgment");
|
|
|
+ }else{
|
|
|
+ $(".contractType").hide();
|
|
|
+ $("#contractTypeDoc").attr("class","form-control");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ window.bankShow = function (data){
|
|
|
+ $('#bank').html('<option value="">请选择开户行信息</option>')
|
|
|
+ //对选中开票单位的银行做级联操作
|
|
|
+ for (var info in data){
|
|
|
+ if(data[info].ourBank == '${workInvoice.bank}'){
|
|
|
+ $('#bank').append(new Option(data[info].ourBank,data[info].ourBank,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].ourBank));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ layui.form.render("select");
|
|
|
+ form.render();
|
|
|
+ }
|
|
|
+
|
|
|
+ layui.form.on('select(bankFilter)',function(d) {
|
|
|
+ if(null == d.value || undefined == d.value || '' == d.value){
|
|
|
+ $('#bankNumber').val("");
|
|
|
+ $('#bankRemarks').html('');
|
|
|
+ }else{
|
|
|
+ var clientId = $("#clientId").val();
|
|
|
+ $.ajax({
|
|
|
+ type:"post",
|
|
|
+ url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getBankInfo',
|
|
|
+ data:{"bankName":d.value,"clientId":clientId},
|
|
|
+ dataType:"json",
|
|
|
+ async: false,
|
|
|
+ success:function(data){
|
|
|
+ var info = data.data
|
|
|
+ $('#bankNumber').val(info.bankNumber);
|
|
|
+ if(null != info.remarks && undefined != info.remarks && '' != info.remarks){
|
|
|
+ $('#bankRemarks').html('备注:' + info.remarks);
|
|
|
+ }else{
|
|
|
+ $('#bankRemarks').html('');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ /*$('#money').keyup(function(){
|
|
|
+ var c=$(this);
|
|
|
+ if(/[^\d]/.test(c.val())){//替换非数字字符
|
|
|
+ var temp_amount=c.val().replace(/[^\d]/g,'');
|
|
|
+ $(this).val(temp_amount);
|
|
|
+ }
|
|
|
+ })*/
|
|
|
+
|
|
|
+ jQuery.validator.addMethod("isUscCode", function(value, element) {
|
|
|
+ if (this.optional(element)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ var uscCode = /^((\w{15})|(\w{18})|(\w{20}))$/;
|
|
|
+ return uscCode.test(value);
|
|
|
+ }, "请填写正确的纳税人识别号");
|
|
|
+
|
|
|
+ /* $("input[name='ext']").on('ifChecked', function(event){
|
|
|
+ var radioVal = $(this).val();
|
|
|
+ if(radioVal == 0){
|
|
|
+ $("#td1").removeClass("hide");
|
|
|
+ $("#td2").addClass("hide");
|
|
|
+ $("#tr1").show()
|
|
|
+ }else{
|
|
|
+ $("#td1").addClass("hide");
|
|
|
+ $("#td2").removeClass("hide");
|
|
|
+ $("#tr1").hide()
|
|
|
+ }
|
|
|
+ });*/
|
|
|
+ if("${workInvoice.ext}" == "1"){
|
|
|
+ $("#ext1").iCheck('check')
|
|
|
+ }else{
|
|
|
+ $("#ext").iCheck('check')
|
|
|
+ }
|
|
|
+ if(null != '${workInvoice.id}' && undefined != '${workInvoice.id}' && '' != '${workInvoice.id}'){
|
|
|
+ if("${workInvoice.invoiceType}" == "1"){
|
|
|
+ $("#invoiceType1").iCheck('check');
|
|
|
+ $(".invoicetype").show();
|
|
|
+ }else{
|
|
|
+ $("#invoiceType").iCheck('check');
|
|
|
+ $(".invoicetype").hide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ validateForm = $("#inputForm").validate({
|
|
|
+ submitHandler: function(form){
|
|
|
+ loading('正在提交,请稍等...');
|
|
|
+ form.submit();
|
|
|
+ },
|
|
|
+ errorContainer: "#messageBox",
|
|
|
+ errorPlacement: function(error, element) {
|
|
|
+
|
|
|
+ $("#messageBox").text("输入有误,请先更正。");
|
|
|
+ if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
|
|
|
+ error.appendTo(element.parent().parent());
|
|
|
+ } else {
|
|
|
+ error.insertAfter(element);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ /*--------------*/
|
|
|
+ $("#attachment_btn").click(function () {
|
|
|
+ $("#attachment_file").click();
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ function setValuee (obj){
|
|
|
+ $("#bankNumber").val("");
|
|
|
+ $('#bankRemarks').html('');
|
|
|
+ $.ajax({
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getWorkClientInfo',
|
|
|
+ data:{
|
|
|
+ "obj":obj
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ var d = JSON.parse(data);
|
|
|
+ //$("#bank").val(d.bank);
|
|
|
+ $("#orUnicode").val(d.orUnicode);
|
|
|
+ //$("#bankNumber").val(d.bankNumber);
|
|
|
+ $("#telephone").val(d.telephone);
|
|
|
+ $("#address").val(d.registerAddress);
|
|
|
+ $("#ids").val(d.ids);
|
|
|
+ window.bankShow(d.bankList);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function setDp(obj){
|
|
|
+ $.ajax({
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getUserDp',
|
|
|
+ data:{
|
|
|
+ "obj":obj
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ var d = JSON.parse(data);
|
|
|
+ $("#dp").val(d.dp);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function setPNumber(obj,ids,isProject,details){
|
|
|
+ var idx=ids.split("_")[0]
|
|
|
+ if (isProject==1){
|
|
|
+ $.ajax({
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getPNumber',
|
|
|
+ data:{
|
|
|
+ "obj":obj
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ var d = JSON.parse(data);
|
|
|
+ var workContractName="#"+idx+"_workContractName";
|
|
|
+ var projectNum="#"+idx+"_projectNum";
|
|
|
+ var clientName="#"+idx+"_clientName";
|
|
|
+ var reportDataNum="#"+idx+"_reportDataNum";
|
|
|
+ $(workContractName).val(d.workContractName);
|
|
|
+ $(projectNum).val(d.projectNum);
|
|
|
+ $(clientName).val(d.clientName);
|
|
|
+ $(reportDataNum).val(d.reportDataNum);
|
|
|
+ var areaId = $("#areaId").val();
|
|
|
+ if(undefined ==areaId || null == areaId || '' == areaId){
|
|
|
+ $("#areaId").val(d.areaId);
|
|
|
+ $("#areaName").val(d.areaName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }else if (isProject==2){
|
|
|
+ var projectFlag = $("#projectFlag").val();
|
|
|
+ var workContractName="#"+idx+"_projectIdName";
|
|
|
+ var workContractNameStr="#"+idx+"_workContractName";
|
|
|
+ var contractId="#"+idx+"_contractId";
|
|
|
+ var detailsName="#"+idx+"_details";
|
|
|
+ $(workContractName).val(details);
|
|
|
+ $(detailsName).val(details);
|
|
|
+
|
|
|
+ var projectNum="#"+idx+"_projectNum";
|
|
|
+ var clientName="#"+idx+"_clientName";
|
|
|
+ var reportDataNum="#"+idx+"_reportDataNum";
|
|
|
+ $(projectNum).val("");
|
|
|
+ $(contractId).val("");
|
|
|
+ $(workContractNameStr).val("");
|
|
|
+ $(clientName).val("");
|
|
|
+ $(reportDataNum).val("");
|
|
|
+ var length=$("#workInvoiceProjectRelationList tr").length;
|
|
|
+ if(length>1){
|
|
|
+ var id=$("#workInvoiceProjectRelationList").find("tr").eq(0).find("input").eq(3).val();
|
|
|
+ if (id==undefined || id == ''){
|
|
|
+ parent.layer.msg("非项目,只能有一条非项目数据,请删除其余项目数据",{icon:6});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function newSetPNumber(obj,ids,isProject,details){
|
|
|
+ var idx=ids.split("_")[0]
|
|
|
+ var idArray= new Array(); //定义一数组
|
|
|
+ idArray=obj.split(","); //字符分割
|
|
|
+
|
|
|
+ if (isProject==1){
|
|
|
+ for (var k=0;k<idArray.length ;k++ )
|
|
|
+ {
|
|
|
+ $.ajax({
|
|
|
+ async:false,
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getPNumber',
|
|
|
+ data:{
|
|
|
+ "obj":idArray[k]
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ if(k>=1){
|
|
|
+ var row = workInvoiceProjectRelationListRowIdx;
|
|
|
+ addRow1('#workInvoiceProjectRelationList', workInvoiceProjectRelationListRowIdx, workInvoiceProjectRelationListTpl, data[k])
|
|
|
+ workInvoiceProjectRelationListRowIdx = workInvoiceProjectRelationListRowIdx + 1;
|
|
|
+ var d = JSON.parse(data);
|
|
|
+ var workContractName="#workInvoiceProjectRelationList"+row+"_workContractName";
|
|
|
+ var projectNum="#workInvoiceProjectRelationList"+row+"_projectNum";
|
|
|
+ var clientName="#workInvoiceProjectRelationList"+row+"_clientName";
|
|
|
+ var reportDataNum="#workInvoiceProjectRelationList"+row+"_reportDataNum";
|
|
|
+ var projectName="#workInvoiceProjectRelationList"+row+"_projectIdName";
|
|
|
+ var id="#workInvoiceProjectRelationList"+row+"_projectIdId";
|
|
|
+ $(id).val(d.id);
|
|
|
+ $(projectName).val(d.projectName);
|
|
|
+ $(workContractName).val(d.workContractName);
|
|
|
+ $(projectNum).val(d.projectNum);
|
|
|
+ $(clientName).val(d.clientName);
|
|
|
+ $(reportDataNum).val(d.reportDataNum);
|
|
|
+ var areaId = $("#areaId").val();
|
|
|
+ if(undefined ==areaId || null == areaId || '' == areaId){
|
|
|
+ $("#areaId").val(d.areaId);
|
|
|
+ $("#areaName").val(d.areaName);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ var d = JSON.parse(data);
|
|
|
+ var workContractName="#"+idx+"_workContractName";
|
|
|
+ var projectNum="#"+idx+"_projectNum";
|
|
|
+ var clientName="#"+idx+"_clientName";
|
|
|
+ var reportDataNum="#"+idx+"_reportDataNum";
|
|
|
+ $(workContractName).val(d.workContractName);
|
|
|
+ $(projectNum).val(d.projectNum);
|
|
|
+ $(clientName).val(d.clientName);
|
|
|
+ $(reportDataNum).val(d.reportDataNum);
|
|
|
+ var areaId = $("#areaId").val();
|
|
|
+ if(undefined ==areaId || null == areaId || '' == areaId){
|
|
|
+ $("#areaId").val(d.areaId);
|
|
|
+ $("#areaName").val(d.areaName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }else if (isProject==2){
|
|
|
+ var projectFlag = $("#projectFlag").val();
|
|
|
+ var workContractName="#"+idx+"_projectIdName";
|
|
|
+ var workContractNameStr="#"+idx+"_workContractName";
|
|
|
+ var contractId="#"+idx+"_contractId";
|
|
|
+ var detailsName="#"+idx+"_details";
|
|
|
+ $(workContractName).val(details);
|
|
|
+ $(detailsName).val(details);
|
|
|
+
|
|
|
+ var projectNum="#"+idx+"_projectNum";
|
|
|
+ var clientName="#"+idx+"_clientName";
|
|
|
+ var reportDataNum="#"+idx+"_reportDataNum";
|
|
|
+ $(projectNum).val("");
|
|
|
+ $(contractId).val("");
|
|
|
+ $(workContractNameStr).val("");
|
|
|
+ $(clientName).val("");
|
|
|
+ $(reportDataNum).val("");
|
|
|
+ var length=$("#workInvoiceProjectRelationList tr").length;
|
|
|
+ if(length>1){
|
|
|
+ var id=$("#workInvoiceProjectRelationList").find("tr").eq(0).find("input").eq(3).val();
|
|
|
+ if (id==undefined || id == ''){
|
|
|
+ parent.layer.msg("非项目,只能有一条非项目数据,请删除其余项目数据",{icon:6});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function setContractValue(obj,ids){
|
|
|
+ var idx=ids.split("_")[0]
|
|
|
+ var clientId = $("#contractClientId").val();
|
|
|
+ $.ajax({
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/ruralProject/ruralCostProjectRecords/getContractInfo',
|
|
|
+ data:{
|
|
|
+ "id":obj
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ var clientName="#"+idx+"_clientName";
|
|
|
+ var contractId="#"+idx+"_contractId";
|
|
|
+ $(clientName).val(data.client.name);
|
|
|
+ $(contractId).val(data.id);
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function addRow(list, idx, tpl, row){
|
|
|
+ var idx1 = $("#workAccountList tr").length;
|
|
|
+ if(list == '#workAccountList' && idx1 < 100){
|
|
|
+ bornTemplete(list, idx, tpl, row, idx1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function bornTemplete(list, idx, tpl, row, idx1){
|
|
|
+ $(list).append(Mustache.render(tpl, {
|
|
|
+ idx: idx, delBtn: true, row: row,
|
|
|
+ order:idx1 + 1
|
|
|
+ }));
|
|
|
+ $(list+idx).find("select").each(function(){
|
|
|
+ $(this).val($(this).attr("data-value"));
|
|
|
+ });
|
|
|
+ $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
|
|
|
+ var ss = $(this).attr("data-value").split(',');
|
|
|
+ for (var i=0; i<ss.length; i++){
|
|
|
+ if($(this).val() == ss[i]){
|
|
|
+ $(this).attr("checked","checked");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function addRow1(list, idx, tpl, row){
|
|
|
+ var idx1 = $("#workInvoiceProjectRelationList tr").length;
|
|
|
+ if ('${workInvoice.chargeType}' == ''){
|
|
|
+ $("#chargeType").val("2")
|
|
|
+ layui.form.render();
|
|
|
+ }
|
|
|
+ if(idx1>0){
|
|
|
+ var count=0;
|
|
|
+ for (var i=1;i<=idx1;i++) {
|
|
|
+ var delFlag = $("#workInvoiceProjectRelationList").find("tr").eq(i-1).find("input").eq(1).val();
|
|
|
+ if (delFlag == "1") {
|
|
|
+ count = i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (idx1>count){
|
|
|
+ var id=$("#workInvoiceProjectRelationList").find("tr").eq(count).find("input").eq(5).val();
|
|
|
+ if (id!=undefined && id != ''){
|
|
|
+ if (row== undefined){
|
|
|
+ row={"isProject": "1","isProjectFalg": "1"};
|
|
|
+ $("#chargeType").val("1")
|
|
|
+ layui.form.render();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ parent.layer.msg("非项目,只能有一条非项目数据",{icon:6});
|
|
|
+ $("#chargeType").val("2")
|
|
|
+ layui.form.render();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(list == '#workInvoiceProjectRelationList'){
|
|
|
+ bornTemplete1(list, idx, tpl, row, idx1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function bornTemplete1(list, idx, tpl, row, idx1){
|
|
|
+ $(list).append(Mustache.render(tpl, {
|
|
|
+ idx: idx, delBtn: true, row: row,
|
|
|
+ order:idx1 + 1
|
|
|
+ }));
|
|
|
+ $(list+idx).find("select").each(function(){
|
|
|
+ $(this).val($(this).attr("data-value"));
|
|
|
+ });
|
|
|
+ $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
|
|
|
+ var ss = $(this).attr("data-value").split(',');
|
|
|
+ for (var i=0; i<ss.length; i++){
|
|
|
+ if($(this).val() == ss[i]){
|
|
|
+ $(this).attr("checked","checked");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function delRow(obj, prefix) {
|
|
|
+ var id = $(prefix + "_invoiceId");
|
|
|
+ var delFlag = $(prefix + "_delFlag");
|
|
|
+ if (id.val() == "") {
|
|
|
+ $(obj).parent().parent().remove();
|
|
|
+ } else if (delFlag.val() == "0") {
|
|
|
+ delFlag.val("1");
|
|
|
+ $(obj).html("÷").attr("title", "撤回删除");
|
|
|
+ $(obj).parent().parent().addClass("error");
|
|
|
+ $(obj).parent().parent().addClass("hide");
|
|
|
+ } else if (delFlag.val() == "1") {
|
|
|
+ delFlag.val("0");
|
|
|
+ $(obj).html("×").attr("title", "删除");
|
|
|
+ $(obj).parent().parent().removeClass("error");
|
|
|
+ }
|
|
|
+ var length=$("#workInvoiceProjectRelationList tr").length;
|
|
|
+ var count=length;
|
|
|
+ for (var i=1;i<=length;i++) {
|
|
|
+ var delFlag = $("#workInvoiceProjectRelationList").find("tr").eq(i-1).find("input").eq(1).val();
|
|
|
+ if (delFlag == "1") {
|
|
|
+ count =count-1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(count==1){
|
|
|
+ $("#chargeType").val("2")
|
|
|
+ layui.form.render();
|
|
|
+ }else if (count>1){
|
|
|
+ $("#chargeType").val("1")
|
|
|
+ layui.form.render();
|
|
|
+ }else if(count == 0){
|
|
|
+ $("#projectFlag").val("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function provinceForShort(province){
|
|
|
+ if(province == "北京市")
|
|
|
+ return "京";
|
|
|
+ else if(province == "天津市")
|
|
|
+ return "津";
|
|
|
+ else if(province == "重庆市")
|
|
|
+ return "渝";
|
|
|
+ else if(province == "上海市")
|
|
|
+ return "沪";
|
|
|
+ else if(province == "河北省")
|
|
|
+ return "冀";
|
|
|
+ else if(province == "山西省")
|
|
|
+ return "晋";
|
|
|
+ else if(province == "辽宁省")
|
|
|
+ return "辽";
|
|
|
+ else if(province == "吉林省")
|
|
|
+ return "吉";
|
|
|
+ else if(province == "黑龙江省")
|
|
|
+ return "黑";
|
|
|
+ else if(province == "江苏省")
|
|
|
+ return "苏";
|
|
|
+ else if(province == "浙江省")
|
|
|
+ return "浙";
|
|
|
+ else if(province == "安徽省")
|
|
|
+ return "皖";
|
|
|
+ else if(province == "福建省")
|
|
|
+ return "闽";
|
|
|
+ else if(province == "江西省")
|
|
|
+ return "赣";
|
|
|
+ else if(province == "山东省")
|
|
|
+ return "鲁";
|
|
|
+ else if(province == "河南省")
|
|
|
+ return "豫";
|
|
|
+ else if(province == "湖北省")
|
|
|
+ return "鄂";
|
|
|
+ else if(province == "湖南省")
|
|
|
+ return "湘";
|
|
|
+ else if(province == "广东省")
|
|
|
+ return "粤";
|
|
|
+ else if(province == "海南省")
|
|
|
+ return "琼";
|
|
|
+ else if(province == "四川省")
|
|
|
+ return "川/蜀";
|
|
|
+ else if(province == "贵州省")
|
|
|
+ return "黔/贵";
|
|
|
+ else if(province == "云南省")
|
|
|
+ return "云/滇";
|
|
|
+ else if(province == "陕西省")
|
|
|
+ return "陕/秦";
|
|
|
+ else if(province == "甘肃省")
|
|
|
+ return "甘/陇";
|
|
|
+ else if(province == "青海省")
|
|
|
+ return "青";
|
|
|
+ else if(province == "台湾省")
|
|
|
+ return "台";
|
|
|
+ else if(province == "内蒙古自治区")
|
|
|
+ return "内蒙古";
|
|
|
+ else if(province == "广西壮族自治区")
|
|
|
+ return "桂";
|
|
|
+ else if(province == "宁夏回族自治区")
|
|
|
+ return "宁";
|
|
|
+ else if(province == "新疆维吾尔自治区 ")
|
|
|
+ return "新";
|
|
|
+ else if(province == "西藏自治区")
|
|
|
+ return "藏";
|
|
|
+ else if(province == "香港特别行政区")
|
|
|
+ return "港";
|
|
|
+ else if(province == "澳门特别行政区")
|
|
|
+ return "澳";
|
|
|
+ }
|
|
|
+
|
|
|
+ function setVs(obj){
|
|
|
+ var a = $(obj).attr("id");
|
|
|
+ var b = a.replace('allPrice','proportion');
|
|
|
+ var value = obj.value;
|
|
|
+ var p = $("#price").val() || 0;
|
|
|
+ if(!p || p == 0){
|
|
|
+ parent.layer.msg("请先填写造价指标,且不能为零",{icon:5});
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var num = value/p ;
|
|
|
+ if(!/^\d+(\.\d{1,2})?$/.test( value )){
|
|
|
+ parent.layer.msg("合价必须输入数字",{icon:5});
|
|
|
+ }else{
|
|
|
+ $("#" + b ).val(parseFloat(num.toFixed(2)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function setTaxMoney(obj){
|
|
|
+ var a = $(obj).attr("id");
|
|
|
+ var b = a.replace('tax','taxMoney');
|
|
|
+ var t = a.replace('tax','totalMoney');
|
|
|
+ var tr = a.replace('tax','taxRate');
|
|
|
+ var value = obj.value || 0;
|
|
|
+ console.log("-value----"+value);
|
|
|
+ var tax = 1 + value/100;
|
|
|
+ console.log("-tax----"+tax);
|
|
|
+ var p = $("#" + t ).val() || 0;//获取发票金额
|
|
|
+ console.log("-----"+p);
|
|
|
+ if(!p || p == 0){
|
|
|
+ parent.layer.msg("请先填写发票金额,且不能为零",{icon:5});
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var num = p/tax || 0;
|
|
|
+ console.log("-----"+num);
|
|
|
+ if(!/^\d+(\.\d{1,2})?$/.test( tax )){
|
|
|
+ parent.layer.msg("税率必须输入数字",{icon:5});
|
|
|
+ }else{
|
|
|
+ $("#" + b ).val(parseFloat(num.toFixed(2)));
|
|
|
+ var taxRate = p - num;
|
|
|
+ $("#" + tr ).val(parseFloat(taxRate.toFixed(2)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*function setV(obj){
|
|
|
+ var a = $(obj).attr("id");
|
|
|
+ var b = $("#province").val();
|
|
|
+ var c = provinceForShort(b);//开票单位所在省/直辖市简称
|
|
|
+ var date=new Date;
|
|
|
+ var year=date.getFullYear();
|
|
|
+ var month=date.getMonth()+1;
|
|
|
+ month =(month<10 ? "0"+month:month);
|
|
|
+ var mydate = (year.toString()+month.toString());
|
|
|
+ var timestamp="["+mydate+"]";//获取固定格式年月
|
|
|
+ var number = c+timestamp;
|
|
|
+ $("#" + a ).val(number);
|
|
|
+ }*/
|
|
|
+ function setV(obj){
|
|
|
+ var a = $(obj).attr("id");
|
|
|
+ var c = "京";
|
|
|
+ var date=new Date;
|
|
|
+ var year=date.getFullYear();
|
|
|
+ var month=date.getMonth()+1;
|
|
|
+ month =(month<10 ? "0"+month:month);
|
|
|
+ var mydate = (year.toString()+month.toString());
|
|
|
+ var timestamp="["+mydate+"]";//获取固定格式年月
|
|
|
+ var number = c+timestamp;
|
|
|
+ $("#" + a ).val(number);
|
|
|
+ }
|
|
|
+ function insertTitle(tValue){
|
|
|
+ var list = "${workInvoice.workAttachments}";
|
|
|
+ var size = (list.split('url')).length-1;
|
|
|
+ var files = $("#attachment_file")[0].files;
|
|
|
+ for(var i = 0;i<files.length;i++) {
|
|
|
+ var file = files[i];
|
|
|
+ var attachmentId = "";
|
|
|
+ var attachmentFlag = "115";
|
|
|
+ console.log(file);
|
|
|
+ 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();
|
|
|
+ multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, size);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function insertTitleCollection(tValue){
|
|
|
+ var list = "${workInvoice.workAttachments}";
|
|
|
+ var size = (list.split('url')).length-1;
|
|
|
+ var files = tValue;
|
|
|
+ for(var i = 0;i<files.length;i++) {
|
|
|
+ var file = files[i];
|
|
|
+ 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();
|
|
|
+ multipartUploadWithStsCollection(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, size);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*function num(obj){
|
|
|
+
|
|
|
+ obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
|
|
|
+ obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字
|
|
|
+ obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个, 清除多余的
|
|
|
+ obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
|
|
|
+ obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
|
|
|
+ }*/
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 数字处理
|
|
|
+ * arg1 inputObject
|
|
|
+ **/
|
|
|
+ function num(obj){//用户只能输入正负数与小数
|
|
|
+ if(isNaN(obj.value) && !/^-$/.test(obj.value)){
|
|
|
+ obj.value="";
|
|
|
+ }
|
|
|
+ if(!/^[+-]?\d*\.{0,1}\d{0,1}$/.test(obj.value)){
|
|
|
+ obj.value=obj.value.replace(/\.\d{2,}$/,obj.value.substr(obj.value.indexOf('.'),3));
|
|
|
+ }
|
|
|
+
|
|
|
+ var regStrs = [
|
|
|
+ ['^0(\\d+)$', '$1'], //禁止录入整数部分两位以上,但首位为0
|
|
|
+ ];
|
|
|
+ for(var i=0; i<regStrs.length; i++){
|
|
|
+ var reg = new RegExp(regStrs[i][0]);
|
|
|
+ obj.value = obj.value.replace(reg, regStrs[i][1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+<div class="single-form">
|
|
|
+ <div class="container">
|
|
|
+ <form:form id="inputForm" modelAttribute="projectMaterialStorage" action="${ctx}/workinvoiceTwo/workinvoiceTwo/save" method="post" class="layui-form">
|
|
|
+ <form:hidden path="id"/>
|
|
|
+
|
|
|
+ <input type="hidden" id="projectFlag" value="${workInvoice.projectFlag}">
|
|
|
+
|
|
|
+ <div class="form-group layui-row first">
|
|
|
+ <div class="form-group-label"><h2>材料详情</h2></div>
|
|
|
+
|
|
|
+<%-- <div class="layui-item layui-col-sm12 lw7" id="d1">--%>
|
|
|
+<%-- <label class="layui-form-label"><span class="require-item">*</span>选择项目:</label>--%>
|
|
|
+<%-- <div class="layui-input-block with-icon">--%>
|
|
|
+<%-- <sys:gridselectContract url="${ctx}/ruralProject/ruralCostProjectRecords/selectcontract" type="" isTotal="" id="contractId" name="workContractInfo.id" value="${ruralProjectRecords.workContractInfo.id}" title="选择合同" labelName="workContractInfo.name"--%>
|
|
|
+<%-- cssStyle="background-color: #fff" labelValue="${ruralProjectRecords.workContractInfo.contractNum}" cssClass="form-control required layui-input" fieldLabels="合同名称" fieldKeys="name" searchLabel="合同名称" searchKey="name" ></sys:gridselectContract>--%>
|
|
|
+<%-- </div>--%>
|
|
|
+<%-- </div>--%>
|
|
|
+
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label"><span class="require-item invoicetype">*</span>项目名称</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+
|
|
|
+ <sys:gridselectContract url="${ctx}/workinvoiceTwo/workinvoiceTwo/selectproject" type="" isTotal="" id="contractId" name="workContractInfo.id" value="${ruralProjectRecords.workContractInfo.id}" title="选择项目" labelName="workContractInfo.name"
|
|
|
+ cssStyle="background-color: #fff" labelValue="${ruralProjectRecords.workContractInfo.contractNum}" cssClass="form-control required layui-input" fieldLabels="合同名称" fieldKeys="name" searchLabel="合同名称" searchKey="name" ></sys:gridselectContract>
|
|
|
+
|
|
|
+<%-- <form:input id="projectName" path="projectName" htmlEscape="false" placeholder="请输入项目名称" class="form-control layui-input"/>--%>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label"><span class="require-item invoicetype">*</span>材料名称</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:input id="materialName" path="materialName" htmlEscape="false" placeholder="请输入材料名称" class="form-control layui-input"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label"><span class="require-item invoicetype">*</span>材料单位</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:input id="unit" path="unit" htmlEscape="false" placeholder="请输入材料单位" class="form-control layui-input"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label"><span class="require-item invoicetype">*</span>单价(元)</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:input id="price" path="price" htmlEscape="false" placeholder="请输入单价" class="form-control layui-input"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="form-group layui-row page-end"></div>
|
|
|
+ </form:form>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+
|
|
|
+</body>
|
|
|
+</html>
|