From 8fa104184c73aeacc185f4dcedcecf6ec60c4b73 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <279049017@qq.com>
Date: Fri, 11 Dec 2020 16:23:37 +0800
Subject: [PATCH] 添加初始赋值时,自定义时间的限制

---
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html |  260 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 210 insertions(+), 50 deletions(-)

diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
index 975f886..129af3e 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
@@ -80,15 +80,16 @@
                         <div class="layui-row">
                             <div class="layui-col-sm6">
                                 <label class="layui-form-label">当前软件服务周期:</label>
-                                <div class="layui-input-block">
+                                <div class="layui-input-block" >
                                     <input autocomplete="off" name="contractBeginTime_not" disabled
                                         id="contractBeginTime_not" type="text" placeholder="请输开始时间" class="layui-input"
                                         maxlength="50" readonly
-                                        style="border: none; display: inline-block;width: 40%;" />
+                                        style="border: none; display: inline-block;width: 30%;" />
+                                       <span id="contractBeginTime_not_heng"> 至 </span>
                                     <input autocomplete="off" name="contractEndTime_not" disabled
                                         id="contractEndTime_not" type="text" placeholder="请输入结束时间" class="layui-input"
                                         maxlength="50" readonly
-                                        style="border: none; display: inline-block;width: 40%;" />
+                                        style="border: none; margin-left: 10%;display: inline-block;width: 30%;" />
                                 </div>
                             </div>
                             <div class="layui-col-sm6">
@@ -120,6 +121,7 @@
                                     <input autocomplete="off" name="contractBeginTime" id="contractBeginTime"
                                         type="text" placeholder="请输开始时间" class="layui-input" maxlength="50"
                                         lay-verify="required" required style="display: inline-block;width: 40%;" />
+                                    --
                                     <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text"
                                         placeholder="请输入结束时间" class="layui-input" maxlength="50" lay-verify="required"
                                         required style="display: inline-block;width: 40%;" />
@@ -129,7 +131,7 @@
                                 <label class="layui-form-label">合同读片充值量:</label>
                                 <div class="layui-input-inline">
                                     <input autocomplete="off" name="contractNum" id="contractNum"
-                                        onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text"
+                                        onkeyup="this.value=this.value.replace(/[^\d]/g,'0') " type="text" value="0"
                                         class="layui-input" maxlength="50" lay-verify="required" required />
                                 </div>
                             </div>
@@ -167,7 +169,7 @@
                                 <label class="layui-form-label">读片充值量:</label>
                                 <div class="layui-input-inline">
                                     <input autocomplete="off" id="custom_ailightCount"
-                                        onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text"
+                                        onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" 
                                         class="layui-input" maxlength="50" />
                                 </div>
                             </div>
@@ -254,6 +256,8 @@
         var laydate = layui.laydate;
 
         var contractNum = 0;
+        var contractBeginTime_cheng = "";
+        var contractEndTime_cheng = "";
 
         //充值进行中
         var isRun = false;
@@ -263,10 +267,16 @@
             done: function (value, date, endDate) {
                 var startDate = new Date(value).getTime();
                 var endTime = new Date($('#contractEndTime').val()).getTime();
-                if (endTime < startDate) {
-                    layer.msg('结束时间不能小于开始时间');
-                    $('#contractBeginTime').val($('#contractEndTime').val());
+                if (endTime <= startDate) {
+                    layer.msg('结束时间不能小于或等于开始时间');
+                    var end = new Date($('#contractEndTime').val())
+                    end.setDate(end.getDate()-1)
+                    $('#contractBeginTime').val(util.toDateString(end, "yyyy-MM-dd"));
                 } else {
+                    var flag=termTypeTime();
+                    if(!false){
+                        return false;
+                    }
                     $('#custom_beginTime').val($("#contractBeginTime").val())
                     custom_beginTimes.config.min = {
                         year: date.year,
@@ -285,10 +295,17 @@
             done: function (value, date, endDate) {
                 var startDate = new Date($('#contractBeginTime').val()).getTime();
                 var endTime = new Date(value).getTime();
-                if (endTime < startDate) {
-                    layer.msg('结束时间不能小于开始时间');
-                    $('#contractEndTime').val($('#contractBeginTime').val());
+                if (endTime <= startDate) {
+                    layer.msg('结束时间不能小于或等于开始时间');
+                    var begin = new Date($('#contractBeginTime').val())
+                    begin.setDate(begin.getDate()+1)
+                    $('#contractEndTime').val(util.toDateString(begin, "yyyy-MM-dd"));
+                    // $('#contractEndTime').val($('#contractBeginTime').val());
                 } else {
+                    var flag=termTypeTime();
+                    if(!false){
+                        return false;
+                    }
                     $('#custom_endTime').val($("#contractEndTime").val())
                     custom_endTimes.config.max = {
                         year: date.year,
@@ -311,6 +328,43 @@
                 }
             }
         });
+        function termTypeTime(){
+            var listData = admin.getTempData("t_tempProduct");
+            var max= "";
+            var min= '';
+            if(listData!=null&&listData.length>0){
+               
+                listData.forEach((element,index) => {
+                    if(index==0){
+                        max=element.endTime;
+                        min=element.beginTime;
+                    }else{
+                        if (dateUtil.compareDate(min, element.beginTime)) {
+                        min=element.beginTime;
+                        }
+                        if (dateUtil.compareDate( element.endTime,max)) {
+                            max=element.endTime;
+                        }
+                    }
+                    
+                });
+            }
+            if(dateUtil.compareDate( $('#contractBeginTime').val(),min)){
+                layer.msg("合同的时间必须小于待充值的开始时间")
+                $('#contractBeginTime').val(contractBeginTime_cheng);
+                return false;
+            }else{
+                contractBeginTime_cheng=$('#contractBeginTime').val()
+            }
+            if(dateUtil.compareDate(max, $('#contractEndTime').val())){
+                layer.msg("合同的时间必须小于待充值的开始时间")
+                $('#contractEndTime').val(contractEndTime_cheng);
+                return false;
+            }else{
+                contractEndTime_cheng=$('#contractEndTime').val()
+            }
+
+        }
         laydate.render({
             elem: '#contractBeginTime_not' //指定元素
         });
@@ -446,25 +500,71 @@
             admin.req('api-opration/productorderdetail/getContractBeginEndTimeAndNum', { departmentId: departmentId },
                 function (data) {
                     if (data.code == 0) {
-                        $("#contractBeginTime_not").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd"));
-                        $("#contractEndTime_not").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd"));
-                        contractBeginTime.config.max = {
-                            year: layui.util.toDateString(data.data.beginTime, "yyyy"),
-                            month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键
-                            date: layui.util.toDateString(data.data.beginTime, "dd"),
-                            hours: layui.util.toDateString(data.data.beginTime, "HH"),
-                            minutes: layui.util.toDateString(data.data.beginTime, "mm"),
-                            seconds: layui.util.toDateString(data.data.beginTime, "ss")
-                        }
-                        contractEndTime.config.min = {
-                            year: layui.util.toDateString(data.data.endTime, "yyyy"),
-                            month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键
-                            date: layui.util.toDateString(data.data.endTime, "dd"),
-                            hours: layui.util.toDateString(data.data.endTime, "HH"),
-                            minutes: layui.util.toDateString(data.data.endTime, "mm"),
-                            seconds: layui.util.toDateString(data.data.endTime, "ss")
-                        }
+                        if(data.data.beginTime==undefined){
+                            $("#contractBeginTime_not").hide();
+                            $("#contractEndTime_not").hide();
+                            $("#contractBeginTime_not_heng").hide();
+                            $("#contractNum_not").hide();
+                            form.render();
+                        }else{
+                            $("#contractBeginTime_not").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd"));
+                            $("#contractEndTime_not").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd"));
+                            $("#contractBeginTime").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd"));
+                            $("#contractEndTime").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd"));
+                            $("#custom_beginTime").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd"));
+                            $("#custom_endTime").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd"));
+                            contractBeginTime.config.max = {
+                                year: layui.util.toDateString(data.data.beginTime, "yyyy"),
+                                month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键
+                                date: layui.util.toDateString(data.data.beginTime, "dd"),
+                                hours: layui.util.toDateString(data.data.beginTime, "HH"),
+                                minutes: layui.util.toDateString(data.data.beginTime, "mm"),
+                                seconds: layui.util.toDateString(data.data.beginTime, "ss")
+                            }
+                            contractEndTime.config.min = {
+                                year: layui.util.toDateString(data.data.endTime, "yyyy"),
+                                month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键
+                                date: layui.util.toDateString(data.data.endTime, "dd"),
+                                hours: layui.util.toDateString(data.data.endTime, "HH"),
+                                minutes: layui.util.toDateString(data.data.endTime, "mm"),
+                                seconds: layui.util.toDateString(data.data.endTime, "ss")
+                            }
+                            //自定义的时间段  开始时间进行限制
+                            custom_beginTimes.config.min = {
+                                year: layui.util.toDateString(data.data.beginTime, "yyyy"),
+                                month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键
+                                date: layui.util.toDateString(data.data.beginTime, "dd"),
+                                hours: layui.util.toDateString(data.data.beginTime, "HH"),
+                                minutes: layui.util.toDateString(data.data.beginTime, "mm"),
+                                seconds: layui.util.toDateString(data.data.beginTime, "ss")
+                            }
+                            custom_beginTimes.config.max = {
+                                year: layui.util.toDateString(data.data.endTime, "yyyy"),
+                                month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键
+                                date: layui.util.toDateString(data.data.endTime, "dd"),
+                                hours: layui.util.toDateString(data.data.endTime, "HH"),
+                                minutes: layui.util.toDateString(data.data.endTime, "mm"),
+                                seconds: layui.util.toDateString(data.data.endTime, "ss")
+                            }
+                            //自定义的时间段  结束时间进行限制
+                            custom_endTimes.config.min = {
+                                year: layui.util.toDateString(data.data.beginTime, "yyyy"),
+                                month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键
+                                date: layui.util.toDateString(data.data.beginTime, "dd"),
+                                hours: layui.util.toDateString(data.data.beginTime, "HH"),
+                                minutes: layui.util.toDateString(data.data.beginTime, "mm"),
+                                seconds: layui.util.toDateString(data.data.beginTime, "ss")
+                            }
+                            custom_endTimes.config.max = {
+                                year: layui.util.toDateString(data.data.endTime, "yyyy"),
+                                month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键
+                                date: layui.util.toDateString(data.data.endTime, "dd"),
+                                hours: layui.util.toDateString(data.data.endTime, "HH"),
+                                minutes: layui.util.toDateString(data.data.endTime, "mm"),
+                                seconds: layui.util.toDateString(data.data.endTime, "ss")
+                            }
                         $("#contractNum_not").val(data.data.count);
+                        }
                     }
 
                 }, "get")
@@ -489,7 +589,6 @@
                             var hospitalProvince = hospitalData.hospitalProvince != null ? hospitalData.hospitalProvince : "";
                             var hospitalCity = hospitalData.hospitalCity != null ? hospitalData.hospitalCity : "";
                             var hospitalArea = hospitalData.hospitalArea != null ? hospitalData.hospitalArea : "";
-                            // console.log(hospitalProvince + " " + hospitalCity + " " +hospitalArea)
                             $("#hospitalAreas").val(hospitalProvince + " " + hospitalCity + " " + hospitalArea);
 
                             //装载产品数据
@@ -607,9 +706,9 @@
                 }, 'get');
             //报告数量事件
             $("#contractNum").blur(function () {
-                if ($("#contractNum").val() <= 0) {
+                if ($("#contractNum").val() < 0) {
                     layer.msg("输入的读片量大于0");
-                    $("#contractNum").val("")
+                    $("#contractNum").val(0)
                     return false;
                 }
                 var listData = admin.getTempData("t_tempProduct");
@@ -627,6 +726,8 @@
                     return false;
                 } else {
                     contractNum = $("#contractNum").val();
+                    //将自定义的读片量赋值
+                    $("#custom_ailightCount").val($("#contractNum").val()-listNum);
                 }
             })
             //自定义的确定
@@ -671,7 +772,8 @@
                     proName: custom_proName,
                     proTime: "",
                     proType: 1,
-                    termType: termType
+                    termType: termType,
+                    type: 1
                 }
                 tempDataList(data);
                 waitRecharge();
@@ -684,6 +786,8 @@
                 if (!strUtil.isEmpty(obj.data.id)) {
                     delTempDataById(obj.data.id);
                     obj.del();
+                    //将自定义的数量赋值
+                    zidingyiNum()
                 }
             }
         });
@@ -733,11 +837,29 @@
                         return false;
                     }
                 }
+                //将所选的时间不得大于  合同的时间
+                var contractBeginTime = $("#contractBeginTime").val();
+                var contractEndTime = $("#contractEndTime").val();
+                if (!strUtil.isEmpty(data.beginTime)){
+                    if (dateUtil.compareDate( contractBeginTime,data.beginTime)) {
+                        layer.msg("开始时间必须大于合同的开始时间!");
+                        return false;
+                    }
+                }
+                if (!strUtil.isEmpty(data.endTime)){
+                    if (dateUtil.compareDate(data.endTime,contractEndTime)) {
+                        layer.msg("结束时间必须小于合同的结束时间!");
+                        return false;
+                    }
+                }
+
                 if (!strUtil.isEmpty(data.beginTime) && !strUtil.isEmpty(data.endTime)) {
                     if (dateUtil.compareDate(data.endTime, data.beginTime)) {
                         data.id = data.id + '';
                         tempDataList(data);
                         waitRecharge();
+                        //将自定义的数量赋值
+                        zidingyiNum()
                     } else {
                         layer.msg("结束时间必须大于开始时间!");
                         return false;
@@ -748,6 +870,19 @@
                 }
             }
         });
+        //将自定义的数量重新赋值
+        function zidingyiNum(){
+            var listData = admin.getTempData("t_tempProduct");
+            var listNum = 0;
+            if (!strUtil.isEmpty(listData)) {
+                listData.forEach(item => {
+                    if(item.proType==1){
+                        listNum += item.ailightCount;
+                    }
+                })
+            }
+            $("#custom_ailightCount").val($("#contractNum").val()-listNum);     
+        }
         function isthenNum(num) {
             if (num <= 0) {
                 return "请输入合同读片充值量大于0";
@@ -848,9 +983,23 @@
             if (!isRun) {
                 layer.load(2);
                 var listData = admin.getTempData("t_tempProduct");
-                if (listData != null) {
+                // if (listData != null) {
+                    var count= 0;
+                    if(listData!=null){
+                        listData.forEach(element => {
+                            if(element.proType==1){
+                                count+=element.ailightCount;
+                            }
+                        });
+                    }
+                    if(count!=data.field.contractNum){
+                        layer.closeAll('loading');
+                        layer.msg("合同读片充值量与套餐充值量不一致")
+                        return false;
+                    }
                     if (data.field != null) {
-                        layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院的科室吗?", {
+                        var len=listData!=null&&listData.length>0 ? listData.length : 0
+                        layer.confirm("确定要将待充值列表中的" + len + "个产品充值给当前医院的科室吗?", {
                             btn: ["确定", "返回"]
                         }, function () {
                             isRun = true;
@@ -882,14 +1031,29 @@
                                                 proBegintime: item.beginTime != "" ? item.beginTime +
                                                     ' 00:00:00' : "",
                                                 proEndtime: item.endTime != "" ? item.endTime +
-                                                    ' 23:59:59' : "",
+                                                    ' 00:00:00' : "",
                                                 orderAilightCount: item.ailightCount,
                                                 orderRecordCount: item.recordCount != null ? item.recordCount : 0,
                                             };
                                             listDetailData.push(detailData);
                                         })
 
-                                        if (listDetailData.length > 0) {
+                                        if (listDetailData.length <=0) {
+                                            var detailData = {
+                                                orderId: orderData.id + '',
+                                                proId:  "0",
+                                                proType: 1,
+                                                proName: "软件服务周期",
+                                                isShare: 0,
+                                                ailightCount:  0,
+                                                recordCount: 0,
+                                                proBegintime: $("#contractBeginTime").val()+' 00:00:00' ,
+                                                proEndtime: $("#contractEndTime").val()+' 00:00:00' ,
+                                                orderAilightCount: 0,
+                                                orderRecordCount: 0,
+                                            };
+                                            listDetailData.push(detailData)
+                                        } 
                                             //提交订单数据
                                             admin.req(
                                                 'api-opration/productorderdetail/saveall',
@@ -916,13 +1080,9 @@
                                                         });
                                                     }
                                                 }, 'POST');
-                                        } else {
-                                            layer.msg("充值数据异常为空!", {
-                                                icon: 2,
-                                                time: 1000
-                                            });
-                                            isRun = false;
-                                        }
+                                            // layer.closeAll();
+                                            // layer.msg("充值数据成功!");
+                                            // isRun = false;
                                     } else {
                                         layer.msg(data.msg, {
                                             icon: 2,
@@ -938,12 +1098,12 @@
                             time: 1000
                         });
                     }
-                } else {
-                    layer.msg("请先将要充值的产品加入待充值!", {
-                        icon: 2,
-                        time: 2000
-                    });
-                }
+                // } else {
+                //     layer.msg("请先将要充值的产品加入待充值!", {
+                //         icon: 2,
+                //         time: 2000
+                //     });
+                // }
                 layer.closeAll('loading');
                 return false;
             }

--
Gitblit v1.8.0