|
@@ -77,6 +77,34 @@
|
|
|
parent.layer.msg("先添加项目信息!", {icon: 5});
|
|
|
return false;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ var newDrawer=$('input:radio[name="newDrawer"]:checked').val();
|
|
|
+ if(null == newDrawer || undefined == newDrawer || '' == newDrawer){
|
|
|
+ parent.layer.msg("请选择开票类型",{icon:0});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (newDrawer != 2) {
|
|
|
+ } else {
|
|
|
+ var idCard = $("#idCard").val();
|
|
|
+ if(!submitValidateIDCard(idCard)){
|
|
|
+ layer.msg("身份证号不正确,请重新输入",{icon:2});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var money = $("#money").val();
|
|
|
+ var redInvoice=$('input:radio[name="redInvoiceFlag"]:checked').val();
|
|
|
+ if(money < 0 && redInvoice == 0){
|
|
|
+ parent.layer.msg("发票金额为负数,请将是否红字发票请选择是,并选择关联的发票信息",{icon:0});
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
+ if(money >= 0 && redInvoice == 1){
|
|
|
+ parent.layer.msg("发票金额为正数,不可为红字发票,请将是否红字发票请选择否",{icon:0});
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
|
|
|
parent.layer.msg("请填写电子邮箱!", {icon: 5});
|
|
|
return false;
|
|
@@ -112,6 +140,18 @@
|
|
|
$("#contractTypeDoc").attr("class","form-control judgment");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
|
|
|
+ if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
|
|
|
+ document.getElementsByName("redInvoiceFlag")[1].checked = true;
|
|
|
+ $(".redInvoice").hide();
|
|
|
+ }else{
|
|
|
+ document.getElementsByName("redInvoiceFlag")[0].checked = true;
|
|
|
+ $(".redInvoice").show();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
var newDrawerRadio = '${workInvoice.newDrawer}';//后端获取值
|
|
|
if(undefined == newDrawerRadio || null == newDrawerRadio || '' == newDrawerRadio || newDrawerRadio == "1"){
|
|
|
document.getElementsByName("newDrawer")[0].checked = true;
|
|
@@ -147,6 +187,17 @@
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+
|
|
|
+ form.on('radio(redInvoiceFlagRadio)',function (event) {
|
|
|
+ var radioVal = $(this).val();
|
|
|
+ if(radioVal == 1 || radioVal == 1){
|
|
|
+ $(".redInvoice").show();
|
|
|
+ }else if(radioVal == 0 || radioVal == 0){
|
|
|
+ $(".redInvoice").hide();
|
|
|
+ }
|
|
|
+ form.render();
|
|
|
+ })
|
|
|
+
|
|
|
form.on('radio(newDrawerRadio)',function (event) {
|
|
|
var radioVal = $(this).val();
|
|
|
console.log(radioVal);
|
|
@@ -370,6 +421,44 @@
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ function setInvoiceValue (obj){
|
|
|
+ $.ajax({
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getInvoiceNumberStr',
|
|
|
+ data:{
|
|
|
+ "invoiceId":obj
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ var d = JSON.parse(data);
|
|
|
+ $("#invoiceNumberStr").val(d.data);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ function moneyChange(obj){
|
|
|
+ console.log("moneyChangeValue", obj.value)
|
|
|
+ //如果发票金额为负数,则表示为红冲金额,需要选择关联的发票信息
|
|
|
+ // 检查发票金额是否为数字
|
|
|
+ if (isNaN(obj.value)) {
|
|
|
+ //发票金额不是有效的数字格式,请输入正确的金额。进行抛出
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (obj.value < 0) {
|
|
|
+ // 如果金额为负,则将红冲选择发票框进行展示,并自动将是否红字发票更新为是
|
|
|
+ $('input[name="redInvoiceFlag"][value="1"]').prop("checked", true);
|
|
|
+ $(".redInvoice").show();
|
|
|
+
|
|
|
+ }else{
|
|
|
+ $('input[name="redInvoiceFlag"][value="0"]').prop("checked", true);
|
|
|
+ $(".redInvoice").hide();
|
|
|
+ }
|
|
|
+ // 重新渲染表单,使得 layui 重新应用样式和事件
|
|
|
+ layui.form.render("radio");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
function newBankShow (data){
|
|
|
$('#bank').html('<option value="">请选择开户行信息</option>')
|
|
|
//对选中开票单位的银行做级联操作
|
|
@@ -886,6 +975,59 @@
|
|
|
obj.value = obj.value.replace(reg, regStrs[i][1]);
|
|
|
}
|
|
|
}
|
|
|
+ function validateIDCard(idCard) {
|
|
|
+ // 15位和18位身份证正则表达式
|
|
|
+ const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
|
|
|
+
|
|
|
+ // 判断身份证号格式是否正确
|
|
|
+ if (!idCardPattern.test(idCard)) {
|
|
|
+ layer.msg("身份证号不正确,请重新输入",{icon:2});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果是18位身份证,需要验证最后一位校验码
|
|
|
+ if (idCard.length === 18) {
|
|
|
+ if(!validateChecksum(idCard)){
|
|
|
+ layer.msg("身份证号不正确,请重新输入",{icon:2});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function submitValidateIDCard(idCard) {
|
|
|
+ // 15位和18位身份证正则表达式
|
|
|
+ const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
|
|
|
+
|
|
|
+ // 判断身份证号格式是否正确
|
|
|
+ if (!idCardPattern.test(idCard)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果是18位身份证,需要验证最后一位校验码
|
|
|
+ if (idCard.length === 18) {
|
|
|
+ if(!validateChecksum(idCard)){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ }
|
|
|
+
|
|
|
+ function validateChecksum(idCard) {
|
|
|
+ const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子
|
|
|
+ const checksumDigits = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
|
|
|
+
|
|
|
+ // 计算加权和
|
|
|
+ let sum = 0;
|
|
|
+ for (let i = 0; i < 17; i++) {
|
|
|
+ sum += parseInt(idCard[i]) * weights[i];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算校验码
|
|
|
+ const checkDigit = checksumDigits[sum % 11];
|
|
|
+
|
|
|
+ // 比较身份证号的最后一位与计算的校验码
|
|
|
+ return checkDigit === idCard[17].toUpperCase();
|
|
|
+ }
|
|
|
+
|
|
|
</script>
|
|
|
</head>
|
|
|
<body>
|
|
@@ -1058,9 +1200,18 @@
|
|
|
<div class="layui-form-item count2">
|
|
|
<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="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
|
|
|
- cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:input id="newDrawerId" path="newDrawerId" htmlEscape="false" placeholder="请输入姓名" class="form-control layui-input"/>
|
|
|
+
|
|
|
+ <%--<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
|
|
|
+ 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">
|
|
|
+ <form:input path="idCard" htmlEscape="false" onchange="validateIDCard(this.value);" class="form-control idCard layui-input required"/>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -1081,11 +1232,33 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="layui-item layui-col-sm12">
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
<label class="layui-form-label double-line"><span class="require-item">*</span>发票金额(元):</label>
|
|
|
<div class="layui-input-block">
|
|
|
<%--<form:input id="" path="money" htmlEscape="false" class="form-control number judgment layui-input"/>--%>
|
|
|
- <input name="money" htmlEscape="false" placeholder="请输入发票金额" maxlength="12" onkeyup="num(this)" value="${workInvoice.money}" class="form-control judgment number layui-input"/>
|
|
|
+ <input id="money" name="money" htmlEscape="false" placeholder="请输入发票金额" maxlength="12" onkeyup="num(this)" onchange="moneyChange(this)" value="${workInvoice.money}" class="form-control judgment number layui-input"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>是否红字发票:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <input type="radio" name="redInvoiceFlag" lay-filter="redInvoiceFlagRadio" title="是" value="1">
|
|
|
+ <input type="radio" name="redInvoiceFlag" lay-filter="redInvoiceFlagRadio" title="否" value="0">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="layui-item layui-col-sm6 redInvoice">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>关联红字发票:</label>
|
|
|
+ <div class="layui-input-block with-icon">
|
|
|
+ <sys:selectinvoice url="${ctx}/workinvoiceTwo/workinvoiceTwo/selectInvoice" id="redInvoiceRelevancyId" name="redInvoiceRelevancyId" value="${workInvoice.redInvoiceRelevancyId}" title="选择关联红字发票" labelName="redInvoiceRelevancyNumber" cssStyle="background-color: #fff"
|
|
|
+ labelValue="${workInvoice.redInvoiceRelevancyNumber}" cssClass="form-control judgment layui-input" fieldLabels="单位" fieldKeys="number" searchLabel="红字发票" searchKey="number" ></sys:selectinvoice>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm6 redInvoice">
|
|
|
+ <label class="layui-form-label">关联发票号:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <input id="invoiceNumberStr" htmlEscape="false" readonly="true" class="form-control layui-input" value=""/>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="layui-item layui-col-sm12 with-textarea">
|