forked from kidgrow-microservices-platform

zhaoxiaohao
2020-12-28 4d16eccb156ad17b395332edafd41cae208d7a28
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
@@ -36,7 +36,7 @@
                    <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm5">
                                <label class="layui-form-label" style="padding: 0 30px 0 0;">地区</label>
                                <label class="layui-form-label" style="padding: 0 20px 0 0;">地区</label>
                                <input name="hospitalAreas" id="hospitalAreas" type="text"
                                    style="border: none; width: 250px; margin-top:-10px" readonly class="layui-input" />
                            </div>
@@ -58,43 +58,92 @@
                    </div>
                    <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm4">
                            <div class="layui-col-sm6">
                                <label class="layui-form-label" style="padding: 10px 30px 0 0px;">合同名称</label>
                                <div class="layui-input-block">
                                    <input name="contractTitle" id="contractTitle" type="text" class="layui-input"
                                        maxlength="50" lay-verify="required" required autocomplete="off" />
                                        maxlength="50" lay-verify="required" required autocomplete="off"
                                        style="display: inline-block;width: 80%;" />
                                </div>
                            </div>
                            <div class="layui-col-sm3">
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">合同编号</label>
                                <div class="layui-input-block">
                                    <input name="contractNo" id="contractNo" type="text" class="layui-input"
                                        maxlength="50" style="width: 185px;" autocomplete="off" lay-verify="required"
                                        required />
                                        maxlength="50" autocomplete="off" lay-verify="required" required
                                        style="display: inline-block;width: 80%;" />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm4">
                                <label class="layui-form-label" style="padding: 10px 30px 0 0px;">开始日期</label>
                                <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text"
                                    class="layui-input" style="width: 182px;" maxlength="50" lay-verify="required"
                                    required />
                            </div>
                            <div class="layui-col-sm4">
                                <label class="layui-form-label">截止日期</label>
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">当前软件服务周期:</label>
                                <div class="layui-input-block">
                                    <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text"
                                        class="layui-input" maxlength="50" lay-verify="required" required />
                                    <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: 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; margin-left: 10%;display: inline-block;width: 30%;" />
                                </div>
                            </div>
                            <div class="layui-col-sm4">
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">当前读片总量:</label>
                                <div class="layui-input-inline">
                                    <input autocomplete="off" name="contractNum_not" id="contractNum_not" disabled
                                        type="text" class="layui-input" maxlength="50" readonly style="border: none;" />
                                </div>
                            </div>
                            <!-- <div class="layui-col-sm6">
                                <label class="layui-form-label">签订日期</label>
                                <div class="layui-input-block">
                                    <input autocomplete="off" name="contractTime" id="contractTime" type="text"
                                        class="layui-input" maxlength="50" lay-verify="required" required />
                                </div>
                            </div> -->
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">合同服务周期:</label>
                                <!-- <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text"
                                    class="layui-input"  maxlength="50" lay-verify="required"
                                    required /> -->
                                <!-- <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text"
                                    class="layui-input" maxlength="50" lay-verify="required" required /> -->
                                <div class="layui-input-block">
                                    <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%;" />
                                </div>
                            </div>
                            <div class="layui-col-sm6">
                                <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,'0') " type="text" value="0"
                                        class="layui-input" maxlength="50" lay-verify="required" required />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">签订日期</label>
                                <div class="layui-input-block">
                                    <input autocomplete="off" name="contractTime" id="contractTime" type="text"
                                        class="layui-input" maxlength="50" lay-verify="required" style="display: inline-block;width: 40%;" required />
                                </div>
                            </div>
                        </div>
@@ -105,12 +154,68 @@
        <div class="layui-tab" style="margin: 0px;">
            <ul class="layui-tab-title">
                <li class="layui-this">产品信息</li>
                <li class="layui-this">套餐列表</li>
                <li>自定义充值</li>
            </ul>
            <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;">
                <div class="layui-tab-item layui-show" style="padding-top: 0px;">
                    <table class="layui-table" id="product-table" lay-filter="product-table" style="margin: 0px;">
                    </table>
                </div>
                <div class="layui-tab-item">
                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm12">
                                <label class="layui-form-label">充值名称:</label>
                                <div class="layui-input-inline">
                                    <input autocomplete="off" id="custom_proName" type="text" class="layui-input"
                                        maxlength="50" />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm6">
                                <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"
                                        class="layui-input" maxlength="50" />
                                </div>
                            </div>
                            <div class="layui-col-sm6">
                                <div class="layui-input-inline">
                                    <input type="checkbox" id="custom_isShare" name="gongxiang" value="1"
                                        lay-skin="primary" title="是否共享" />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
                        <div class="layui-row">
                            <div class="layui-col-sm12">
                                <div class="layui-input-inline" style="width: 160px;text-align: right;">
                                    <input type="checkbox" id="termType" lay-skin="primary" name="termType" value="true"
                                        checked title="期限限制" />
                                </div>
                                <div class="layui-col-sm4" style="margin-right: 30px;">
                                    <input autocomplete="off" id="custom_beginTime" type="text" placeholder="请输开始时间"
                                        class="layui-input" maxlength="50" />
                                </div>
                                <div class="layui-col-sm4 ">
                                    <input autocomplete="off" type="text" placeholder="请输入结束时间" id="custom_endTime"
                                        class="layui-input" maxlength="50" />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-input-block"
                            style="text-align: right;padding-right: 100px;padding-top: 50px;">
                            <input class="layui-btn" type="button" id="custom_submit" value="确定" />
                        </div>
                    </div>
                </div>
            </div>
        </div>
@@ -151,28 +256,181 @@
    <input type="checkbox" lay-filter="product-tpl-isShare" value="{{d.id}}" lay-skin="switch" lay-text="共享|不共享" />
</script>
<script>
    layui.use(['form', 'table', 'util', 'config', 'laydate', 'admin'], function () {
    layui.use(['form', 'table', 'util', 'config', 'laydate', 'jquery', 'admin'], function () {
        var form = layui.form;
        var table = layui.table;
        var config = layui.config;
        var layer = layui.layer;
        var util = layui.util;
        var admin = layui.admin;
        // element=layui.element;
        var $ = layui.jquery;
        var laydate = layui.laydate;
        var contractNum = 0;
        var contractBeginTime_cheng = "";
        var contractEndTime_cheng = "";
        //充值进行中
        var isRun = false;
        //执行一个laydate实例
        var contractBeginTime = laydate.render({
            elem: '#contractBeginTime', //指定元素
            done: function (value, date, endDate) {
                var startDate = new Date(value).getTime();
                var endTime = new Date($('#contractEndTime').val()).getTime();
                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 (!flag) {
                        return false;
                    }
                    $('#custom_beginTime').val($("#contractBeginTime").val())
                    custom_beginTimes.config.min = {
                        year: date.year,
                        month: date.month - 1,//关键
                        date: date.date,
                        hours: date.hours,
                        minutes: date.minutes,
                        seconds: date.seconds
                    }
                }
            }
        });
        var contractEndTime = laydate.render({
            elem: '#contractEndTime', //指定元素
            // min: $("#contractEndTime_not").val(),
            done: function (value, date, endDate) {
                var startDate = new Date($('#contractBeginTime').val()).getTime();
                var endTime = new Date(value).getTime();
                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 (!flag) {
                        return false;
                    }
                    $('#custom_endTime').val($("#contractEndTime").val())
                    //将自定义的开始时间都限制
                    custom_beginTimes.config.min = {
                        year: layui.util.toDateString(begin, "yyyy"),
                        month: layui.util.toDateString(begin, "MM") - 1,//关键
                        date: layui.util.toDateString(begin, "dd"),
                        hours: layui.util.toDateString(begin, "HH"),
                        minutes: layui.util.toDateString(begin, "mm"),
                        seconds: layui.util.toDateString(begin, "ss")
                    }
                    custom_beginTimes.config.max = {
                        year: date.year,
                        month: date.month - 1,//关键
                        date: date.date,
                        hours: date.hours,
                        minutes: date.minutes,
                        seconds: date.seconds
                    }
                    //将自定义的结束时间都限制
                    custom_endTimes.config.max = {
                        year: date.year,
                        month: date.month - 1,//关键
                        date: date.date,
                        hours: date.hours,
                        minutes: date.minutes,
                        seconds: date.seconds
                    }
                    var begin = new Date($("#contractBeginTime").val())
                    custom_endTimes.config.min = {
                        year: layui.util.toDateString(begin, "yyyy"),
                        month: layui.util.toDateString(begin, "MM") - 1,//关键
                        date: layui.util.toDateString(begin, "dd"),
                        hours: layui.util.toDateString(begin, "HH"),
                        minutes: layui.util.toDateString(begin, "mm"),
                        seconds: layui.util.toDateString(begin, "ss")
                    }
                }
            }
        });
        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;
                        }
                    }
                });
            } else {
                return true;
            }
            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' //指定元素
            elem: '#contractTime' //指定元素
        });
        laydate.render({
            elem: '#contractEndTime' //指定元素
            elem: '#contractBeginTime_not' //指定元素
        });
        laydate.render({
            elem: '#contractTime', //指定元素
            value: new Date().dateFormat("yyyy-MM-dd")
            elem: '#contractEndTime_not' //指定元素
        });
        var custom_beginTimes = laydate.render({
            elem: '#custom_beginTime', //指定元素
            // min: $("#contractEndTime").val(),
            // man: $("#contractBeginTime").val(),
            done: function (value, date, endDate) {
                var startDate = new Date(value).getTime();
                var endTime = new Date($('#custom_endTime').val()).getTime();
                if (endTime < startDate) {
                    layer.msg('结束时间不能小于开始时间');
                    $('#custom_beginTime').val($('#custom_endTime').val());
                }
            }
        });
        var custom_endTimes = laydate.render({
            elem: '#custom_endTime', //指定元素
            // min: $("#contractEndTime").val(),
            // man: $("#contractBeginTime").val(),
            done: function (value, date, endDate) {
                var startDate = new Date($('#custom_beginTime').val()).getTime();
                var endTime = new Date(value).getTime();
                if (endTime < startDate) {
                    layer.msg('结束时间不能小于开始时间');
                    $('#custom_endTime').val($('#custom_beginTime').val());
                }
            }
        });
        //现将临时数据清理
        admin.putTempData("t_tempProduct", "");
@@ -185,91 +443,166 @@
                cellMinWidth: 100,
                cols: [
                    [{
                            field: 'proName',
                            width: 330,
                            title: '产品名称',
                            align: 'center',
                            fixed: 'left'
                        field: 'proName',
                        width: 330,
                        title: '产品名称',
                        align: 'center',
                        fixed: 'left'
                    },
                    {
                        field: 'proType',
                        align: 'center',
                        width: 80,
                        templet: function (d) {
                            if (d.proType === 0)
                                return "试用"
                            else
                                return "正式"
                        },
                        {
                            field: 'proType',
                            align: 'center',
                            width: 80,
                            templet: function (d) {
                                if (d.proType === 0)
                                    return "试用"
                                else
                                    return "正式"
                            },
                            title: '类型'
                        },
                        {
                            field: 'proTime',
                            width: 100,
                            title: '时长',
                            align: 'center',
                            templet: function (d) {
                                switch (d.proTimeUnit) {
                                    case 0:
                                        return d.proTime + "天";
                                        break;
                                    case 1:
                                        return d.proTime + "月";
                                        break;
                                    case 2:
                                        return d.proTime + "年";
                                        break;
                                }
                        title: '类型'
                    },
                    {
                        field: 'proTime',
                        width: 100,
                        title: '时长',
                        align: 'center',
                        templet: function (d) {
                            switch (d.proTimeUnit) {
                                case 0:
                                    return d.proTime + "天";
                                    break;
                                case 1:
                                    return d.proTime + "月";
                                    break;
                                case 2:
                                    return d.proTime + "年";
                                    break;
                            }
                        },
                        {
                            field: 'ailightCount',
                            width: 100,
                            align: 'center',
                            title: '读片量'
                        },
                        {
                            field: 'recordCount',
                            width: 100,
                            align: 'center',
                            title: '报告量'
                        },
                        {
                            field: 'beginTime',
                            align: 'center',
                            width: 120,
                            title: '开始日期'
                        },
                        {
                            field: 'endTime',
                            align: 'center',
                            width: 120,
                            title: '结束日期'
                        },
                        {
                            field: 'isShare',
                            fixed: 'right',
                            align: 'center',
                            width: 100,
                            templet: function (d) {
                                if (d.isShare == 0)
                                    return "不共享"
                                else
                                    return "共享"
                            },
                            title: '共享'
                        },
                        {
                            field: 'id',
                            fixed: 'right',
                            align: 'center',
                            width: 100,
                            toolbar: '#product-tpl-bar-temp',
                            title: '操作'
                            return "";
                        }
                    },
                    {
                        field: 'ailightCount',
                        width: 100,
                        align: 'center',
                        title: '读片量'
                    },
                    {
                        field: 'recordCount',
                        width: 100,
                        align: 'center',
                        title: '报告量'
                    },
                    {
                        field: 'beginTime',
                        align: 'center',
                        width: 120,
                        title: '开始日期'
                    },
                    {
                        field: 'endTime',
                        align: 'center',
                        width: 120,
                        title: '结束日期'
                    },
                    {
                        field: 'isShare',
                        fixed: 'right',
                        align: 'center',
                        width: 100,
                        templet: function (d) {
                            if (d.isShare == 0)
                                return "不共享"
                            else
                                return "共享"
                        },
                        title: '共享'
                    },
                    {
                        field: 'id',
                        fixed: 'right',
                        align: 'center',
                        width: 100,
                        toolbar: '#product-tpl-bar-temp',
                        title: '操作'
                    }
                    ]
                ]
            });
        }
        //获取软件的服务周期
        var getCycleTime = function (departmentId) {
            admin.req('api-opration/productorderdetail/getContractBeginEndTimeAndNum', { departmentId: departmentId },
                function (data) {
                    if (data.code == 0) {
                        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")
        }
        //回显医院基本数据
@@ -281,16 +614,17 @@
                    if (0 === data.code) {
                        queryData = data.data;
                        if (queryData === true) {
                                admin.finishPopupCenter();
                            admin.finishPopupCenter();
                            layer.msg("当前科室开通了单次支付功能,不能进行充值业务!", {
                                icon: 3,
                                time: 5000
                            });
                        } else {
                            form.val('recharge-form', hospitalData);
                            $("#hospitalAreas").val(hospitalData.hospitalProvince + " " + hospitalData
                                .hospitalCity + " " +
                                hospitalData.hospitalArea);
                            var hospitalProvince = hospitalData.hospitalProvince != null ? hospitalData.hospitalProvince : "";
                            var hospitalCity = hospitalData.hospitalCity != null ? hospitalData.hospitalCity : "";
                            var hospitalArea = hospitalData.hospitalArea != null ? hospitalData.hospitalArea : "";
                            $("#hospitalAreas").val(hospitalProvince + " " + hospitalCity + " " + hospitalArea);
                            //装载产品数据
                            table.render({
@@ -308,87 +642,87 @@
                                },
                                cols: [
                                    [{
                                            field: 'proName',
                                            sort: true,
                                            width: 330,
                                            title: '产品名称',
                                            align: 'center',
                                            fixed: 'left'
                                        field: 'proName',
                                        sort: true,
                                        width: 330,
                                        title: '产品名称',
                                        align: 'center',
                                        fixed: 'left'
                                    },
                                    {
                                        field: 'proType',
                                        sort: true,
                                        align: 'center',
                                        width: 80,
                                        templet: function (d) {
                                            if (d.proType === 0)
                                                return "试用"
                                            else
                                                return "正式"
                                        },
                                        {
                                            field: 'proType',
                                            sort: true,
                                            align: 'center',
                                            width: 80,
                                            templet: function (d) {
                                                if (d.proType === 0)
                                                    return "试用"
                                                else
                                                    return "正式"
                                            },
                                            title: '类型'
                                        },
                                        {
                                            field: 'proTime',
                                            width: 100,
                                            title: '时长',
                                            align: 'center',
                                            templet: function (d) {
                                                switch (d.proTimeUnit) {
                                                    case 0:
                                                        return d.proTime + "天";
                                                        break;
                                                    case 1:
                                                        return d.proTime + "月";
                                                        break;
                                                    case 2:
                                                        return d.proTime + "年";
                                                        break;
                                                }
                                        title: '类型'
                                    },
                                    {
                                        field: 'proTime',
                                        width: 100,
                                        title: '时长',
                                        align: 'center',
                                        templet: function (d) {
                                            switch (d.proTimeUnit) {
                                                case 0:
                                                    return d.proTime + "天";
                                                    break;
                                                case 1:
                                                    return d.proTime + "月";
                                                    break;
                                                case 2:
                                                    return d.proTime + "年";
                                                    break;
                                            }
                                        },
                                        {
                                            field: 'ailightCount',
                                            width: 100,
                                            align: 'center',
                                            title: '读片量'
                                        },
                                        {
                                            field: 'recordCount',
                                            width: 100,
                                            align: 'center',
                                            title: '报告量'
                                        },
                                        {
                                            field: 'beginTime',
                                            align: 'center',
                                            width: 120,
                                            title: '开始日期',
                                            event: "date"
                                        },
                                        {
                                            field: 'endTime',
                                            align: 'center',
                                            width: 120,
                                            title: '结束日期',
                                            event: "date"
                                        },
                                        {
                                            field: 'isShare',
                                            fixed: 'right',
                                            align: 'center',
                                            width: 100,
                                            templet: '#product-tpl-isShare',
                                            title: '共享'
                                        },
                                        {
                                            field: 'id',
                                            fixed: 'right',
                                            align: 'center',
                                            width: 100,
                                            toolbar: '#product-tpl-bar',
                                            title: '操作'
                                        }
                                    },
                                    {
                                        field: 'ailightCount',
                                        width: 100,
                                        align: 'center',
                                        title: '读片量'
                                    },
                                    {
                                        field: 'recordCount',
                                        width: 100,
                                        align: 'center',
                                        title: '报告量'
                                    },
                                    {
                                        field: 'beginTime',
                                        align: 'center',
                                        width: 120,
                                        title: '开始日期',
                                        event: "date"
                                    },
                                    {
                                        field: 'endTime',
                                        align: 'center',
                                        width: 120,
                                        title: '结束日期',
                                        event: "date"
                                    },
                                    {
                                        field: 'isShare',
                                        fixed: 'right',
                                        align: 'center',
                                        width: 100,
                                        templet: '#product-tpl-isShare',
                                        title: '共享'
                                    },
                                    {
                                        field: 'id',
                                        fixed: 'right',
                                        align: 'center',
                                        width: 100,
                                        toolbar: '#product-tpl-bar',
                                        title: '操作'
                                    }
                                    ]
                                ],
                                done: function (res) {
@@ -397,24 +731,98 @@
                            });
                        }
                    }
                    else
                    {
                    else {
                        admin.finishPopupCenter();
                        layer.msg("验证医院科室数据异常!", {
                                icon: 2,
                                time: 3000
                            });
                            icon: 2,
                            time: 3000
                        });
                    }
                }, 'get');
            //报告数量事件
            $("#contractNum").blur(function () {
                if ($("#contractNum").val() < 0) {
                    layer.msg("输入的读片量大于0");
                    $("#contractNum").val(0)
                    return false;
                }
                var listData = admin.getTempData("t_tempProduct");
                var listNum = 0;
                if (!strUtil.isEmpty(listData)) {
                    listData.forEach(item => {
                        if (item.proType == 1) {
                            listNum += item.ailightCount;
                        }
                    })
                }
                if ($("#contractNum").val() < listNum) {
                    layer.msg("请先删除待充值套餐");
                    $("#contractNum").val(contractNum)
                    return false;
                } else {
                    contractNum = $("#contractNum").val();
                    //将自定义的读片量赋值
                    $("#custom_ailightCount").val($("#contractNum").val() - listNum);
                }
            })
            //自定义的确定
            $("#custom_submit").click(function () {
                var custom_proName = $("#custom_proName").val()
                var custom_ailightCount = $("#custom_ailightCount").val()
                var custom_isShare = $("#custom_isShare").prop("checked") ? 1 : 0;
                var termType = $("#termType").prop("checked") ? 1 : 0;
                var custom_beginTime = "";
                var custom_endTime = "";
                if (termType == 1) {
                    custom_beginTime = $("#custom_beginTime").val();
                    custom_endTime = $("#custom_endTime").val();
                } else {
                    custom_beginTime = $("#contractBeginTime").val();
                    custom_endTime = $("#contractEndTime").val();
                }
                var listData = admin.getTempData("t_tempProduct");
                //添加一个id,删除用
                var max = 0;
                if (strUtil.isEmpty(listData)) {
                    listData = new Array();
                }
                listData.forEach(element => {
                    if (max < element.id) {
                        max = element.id
                    }
                });
                //判断待加入产品的总数是否大于合同的总数
                var msg = isthenNum(parseInt(custom_ailightCount));
                if (msg != null) {
                    layer.msg(msg);
                    return false;
                }
                var data = {
                    id: max + 1,
                    ailightCount: parseInt(custom_ailightCount),
                    beginTime: custom_beginTime,
                    endTime: custom_endTime,
                    isShare: custom_isShare,
                    proName: custom_proName,
                    proTime: "",
                    proType: 1,
                    termType: termType,
                    type: 1
                }
                tempDataList(data);
                waitRecharge();
            })
            getCycleTime(hospitalData.departmentId);
        }
        //待充值列表功能操作
        table.on('tool(product-table-temp)', function (obj) {
            if (obj.event === "del") {
                if (!strUtil.isEmpty(obj.data.id)) {
                    delTempDataById(obj.data.id);
                    obj.del();
                    //将自定义的数量赋值
                    zidingyiNum()
                }
            }
        });
@@ -455,11 +863,38 @@
                    "td[data-field='endTime'] div").text();
                data.isShare = obj.tr.find("td[data-field='isShare'] em").text();
                data.isShare = (data.isShare.indexOf("不") == 0) ? 0 : 1;
                //判断待加入产品的总数是否大于合同的总数
                //试用产品不计算总数
                if (data.proType == 1) {
                    var msg = isthenNum(data.ailightCount);
                    if (msg != null) {
                        layer.msg(msg);
                        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+'';
                        data.id = data.id + '';
                        tempDataList(data);
                        waitRecharge();
                        //将自定义的数量赋值
                        zidingyiNum()
                    } else {
                        layer.msg("结束时间必须大于开始时间!");
                        return false;
@@ -470,6 +905,43 @@
                }
            }
        });
        //将自定义的数量重新赋值
        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";
            }
            var listData = admin.getTempData("t_tempProduct");
            var listNum = 0;
            if (!strUtil.isEmpty(listData)) {
                listData.forEach(item => {
                    if (item.proType == 1) {
                        listNum += item.ailightCount;
                    }
                })
            }
            listNum += num;
            if ($("#contractNum").val() == undefined || $("#contractNum").val() == "") {
                return "请输入合同读片充值量!";
            } else {
                if ($("#contractNum").val() < listNum) {
                    return "当前产品总数不得大于合同读片充值量";
                } else {
                    return null;
                }
            }
        }
        //监听单元格编辑 判断日期格式
        table.on('edit(product-table)', function (obj) {
            var value = obj.value //得到修改后的值
@@ -477,7 +949,7 @@
                data = obj.data //得到所在行所有键值
                ,
                field = obj.field; //得到字段
            if (dateUtil.isDate(value)) {} else {
            if (dateUtil.isDate(value)) { } else {
                layer.msg("输入的日期格式无效!");
            }
        });
@@ -515,13 +987,13 @@
                if (strUtil.isEmpty(listData)) {
                    listData = new Array();
                }
                $.each(listData, function (index, value) {
                    if (value.id === data.id) {
                        //移除
                        listData.splice(index, 1);
                        return false;
                    }
                })
                // $.each(listData, function (index, value) {
                //     if (value.id === data.id) {
                //         //移除
                //         listData.splice(index, 1);
                //         return false;
                //     }
                // })
                listData.push(data);
                admin.putTempData("t_tempProduct", listData);
            } else {
@@ -546,99 +1018,139 @@
            if (!isRun) {
                layer.load(2);
                var listData = admin.getTempData("t_tempProduct");
                // if (listData != null) {
                var count = 0;
                if (listData != null) {
                    if (data.field != null) {
                        layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院的科室吗?", {
                            btn: ["确定", "返回"]
                        }, function () {
                            isRun = true;
                            data.field.contractBeginTime = data.field.contractBeginTime +
                                " 00:00:00";
                            data.field.contractEndTime = data.field.contractEndTime +
                                " 23:59:59";
                            data.field.contractTime = data.field.contractTime + " 00:00:00";
                            admin.req('api-opration/contract', JSON.stringify(data.field),
                                function (data) {
                                    layer.closeAll('loading');
                                    if (data.code === 0) {
                                        var orderData = data.data;
                                        //处理订单明细数据
                                        var listDetailData = new Array();
                                        $.each(listData, function (index, item) {
                                            var detailData = {
                                                orderId: orderData.id+'',
                                                proId: item.id+'',
                                                proType: item.proType,
                                                proName: item.proName,
                                                isShare: item.isShare,
                                                ailightCount: item.ailightCount,
                                                recordCount: item.recordCount,
                                                proBegintime: item.beginTime +
                                                    ' 00:00:00',
                                                proEndtime: item.endTime +
                                                    ' 23:59:59'
                                            };
                                            listDetailData.push(detailData);
                                        })
                                        if (listDetailData.length > 0) {
                                            //提交订单数据
                                            admin.req(
                                                'api-opration/productorderdetail/saveall',
                                                JSON.stringify(listDetailData),
                                                function (data) {
                                                    isRun = false;
                                                    layer.closeAll('loading');
                                                    if (data.code === 0) {
                                                        //现将临时数据清理
                                                        admin.putTempData(
                                                            "t_tempProduct",
                                                            "");
                                                        layer.msg(data.msg, {
                                                            icon: 1,
                                                            time: 2000
                                                        }, function () {
                                                            admin
                                                                .finishPopupCenter();
                                                        });
                                                    } else {
                                                        layer.msg(data.msg, {
                                                            icon: 2,
                                                            time: 1000
                                                        });
                                                    }
                                                }, 'POST');
                                        } else {
                                            layer.msg("充值数据异常为空!", {
                                                icon: 2,
                                                time: 1000
                                            });
                                            isRun = false;
                                        }
                                    } else {
                                        layer.msg(data.msg, {
                                            icon: 2,
                                            time: 1000
                                        });
                                        isRun = false;
                                    }
                                }, 'POST');
                        })
                    } else {
                        layer.msg("数据异常!", {
                            icon: 2,
                            time: 1000
                        });
                    }
                } else {
                    layer.msg("请先将要充值的产品加入待充值!", {
                        icon: 2,
                        time: 2000
                    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) {
                    var len = listData != null && listData.length > 0 ? listData.length : 0
                    layer.confirm("确定要将待充值列表中的" + len + "个产品充值给当前医院的科室吗?", {
                        btn: ["确定", "返回"]
                    }, function () {
                        isRun = true;
                        data.field.contractBeginTime = data.field.contractBeginTime +
                            " 00:00:00";
                        data.field.contractEndTime = data.field.contractEndTime +
                            " 23:59:59";
                        // data.field.contractTime = data.field.contractTime + " 00:00:00";
                        delete data.field.contractNum_not
                        delete data.field.contractBeginTime_not
                        delete data.field.contractEndTime_not
                        admin.req('api-opration/contract', JSON.stringify(data.field),
                            function (data) {
                                layer.closeAll('loading');
                                if (data.code === 0) {
                                    var orderData = data.data;
                                    //处理订单明细数据
                                    var listDetailData = new Array();
                                    $.each(listData, function (index, item) {
                                        var detailData = {
                                            orderId: orderData.id + '',
                                            proId: item.termType == null ? item.id + '' : "0",
                                            proType: item.proType,
                                            proName: item.proName,
                                            isShare: item.isShare,
                                            ailightCount: item.ailightCount != null ? item.ailightCount : 0,
                                            recordCount: item.recordCount != null ? item.recordCount : 0,
                                            termType: item.termType,
                                            proBegintime: item.beginTime != "" ? item.beginTime +
                                                ' 00:00:00' : "",
                                            proEndtime: item.endTime != "" ? item.endTime +
                                                ' 00:00:00' : "",
                                            orderAilightCount: item.ailightCount,
                                            orderRecordCount: item.recordCount != null ? item.recordCount : 0,
                                        };
                                        listDetailData.push(detailData);
                                    })
                                    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',
                                        JSON.stringify(listDetailData),
                                        function (data) {
                                            isRun = false;
                                            layer.closeAll('loading');
                                            if (data.code === 0) {
                                                //现将临时数据清理
                                                admin.putTempData(
                                                    "t_tempProduct",
                                                    "");
                                                layer.msg(data.msg, {
                                                    icon: 1,
                                                    time: 2000
                                                }, function () {
                                                    admin
                                                        .finishPopupCenter();
                                                });
                                            } else {
                                                layer.msg(data.msg, {
                                                    icon: 2,
                                                    time: 1000
                                                });
                                            }
                                        }, 'POST');
                                    // layer.closeAll();
                                    // layer.msg("充值数据成功!");
                                    // isRun = false;
                                } else {
                                    layer.msg(data.msg, {
                                        icon: 2,
                                        time: 1000
                                    });
                                    isRun = false;
                                }
                            }, 'POST');
                    })
                } else {
                    layer.msg("数据异常!", {
                        icon: 2,
                        time: 1000
                    });
                }
                // } else {
                //     layer.msg("请先将要充值的产品加入待充值!", {
                //         icon: 2,
                //         time: 2000
                //     });
                // }
                layer.closeAll('loading');
                return false;
            }
        });
    });
</script>
</script>
<style>
    .layui-form-label {
        width: 140px;
    }
    .layui-input-block {
        margin-left: 160px;
    }
</style>