From daa697719eb0ddfd170f1ab94c5422a4f5b93951 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <279049017@qq.com> Date: Fri, 18 Sep 2020 14:36:54 +0800 Subject: [PATCH] Merge branch 'dev' --- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html | 616 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 616 insertions(+), 0 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 new file mode 100644 index 0000000..a5eb861 --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html @@ -0,0 +1,616 @@ +<form id="recharge-form" lay-filter="recharge-form" class="layui-form"> + <div style="overflow-y: auto; height:700px;"> + <div class="layui-tab"> + <ul class="layui-tab-title"> + <li class="layui-this">合同信息</li> + </ul> + <div class="layui-tab-content" style="margin: 0px 0px -10px 0px;"> + <div class="layui-tab-item layui-show"> + <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;">医院名称</label> + <div class="layui-input-block"> + <input name="hospitalName" id="hospitalName" type="text" class="layui-input" + style="border: none; margin-top:-10px" readonly /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label" style="padding: 0;">科室名称</label> + <div class="layui-input-block"> + <input name="departmentName" id="departmentName" + style="border: none; margin-top:-10px" readonly class="layui-input" /> + </div> + </div> + <div class="layui-col-sm2"> + <label class="layui-form-label" style="padding: 0;">服务人员</label> + <div class="layui-input-block"> + <input name="serverUserName" id="serverUserName" + style="border: none; margin-top:-10px;width: 120px;" readonly + class="layui-input" /> + </div> + </div> + </div> + </div> + + <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> + <input name="hospitalAreas" id="hospitalAreas" type="text" + style="border: none; width: 250px; margin-top:-10px" readonly class="layui-input" /> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label" style="padding: 0;">联系电话</label> + <div class="layui-input-block"> + <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" + style="border: none; margin-top:-10px" readonly /> + </div> + </div> + <div class="layui-col-sm2"> + <label class="layui-form-label" style="padding: 0;">联系人</label> + <div class="layui-input-block"> + <input name="hospitalLink" type="text" class="layui-input" + style="border: none; margin-top:-10px;width: 120px;" readonly /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;"> + <div class="layui-row"> + <div class="layui-col-sm4"> + <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" /> + </div> + </div> + <div class="layui-col-sm3"> + <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 /> + </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-input-block"> + <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text" + class="layui-input" maxlength="50" lay-verify="required" required /> + </div> + </div> + <div class="layui-col-sm4"> + <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> + </div> + </div> + + <div class="layui-tab" style="margin: 0px;"> + <ul class="layui-tab-title"> + <li class="layui-this">产品信息</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> + </div> + + <div class="layui-tab" style="margin: 0px;"> + <ul class="layui-tab-title"> + <li class="layui-this">待充值产品</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-temp" lay-filter="product-table-temp" + style="margin: 0px;"> + </table> + </div> + </div> + </div> + </div> + <div class="layui-form-item model-form-footer" style="margin-right: 20px;"> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + <button class="layui-btn permissions" permissions="product-rechage" lay-filter="recharge-form-submit" + lay-submit>确定充值</button> + </div> + <input type="hidden" value="" id="departmentId" name="departmentId" /> + <input type="hidden" value="" id="hospitalId" name="hospitalId" /> + <input type="hidden" value="" id="orgId" name="orgId" /> + <input type="hidden" value="" id="serverUserId" name="serverUserId" /> +</form> +<!-- 表格操作列 --> +<script type="text/html" id="product-tpl-bar"> + <a class="layui-btn layui-btn-xs" lay-event="pay">加入待充值</a> +</script> +<!-- 表格操作列 --> +<script type="text/html" id="product-tpl-bar-temp"> + <a class="layui-btn layui-btn-danger" lay-event="del">移除</a> +</script> +<!-- 表格状态列 --> +<script type="text/html" id="product-tpl-isShare"> + <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 () { + var form = layui.form; + var table = layui.table; + var config = layui.config; + var layer = layui.layer; + var util = layui.util; + var admin = layui.admin; + var $ = layui.jquery; + var laydate = layui.laydate; + + //充值进行中 + var isRun = false; + //执行一个laydate实例 + laydate.render({ + elem: '#contractBeginTime' //指定元素 + }); + laydate.render({ + elem: '#contractEndTime' //指定元素 + }); + laydate.render({ + elem: '#contractTime', //指定元素 + value: new Date().dateFormat("yyyy-MM-dd") + }); + //现将临时数据清理 + admin.putTempData("t_tempProduct", ""); + //待充值列表 + var waitRecharge = function () { + table.render({ + elem: '#product-table-temp', + data: admin.getTempData("t_tempProduct"), + page: false, + cellMinWidth: 100, + cols: [ + [{ + 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 "正式" + }, + 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: '操作' + } + ] + ] + }); + } + + //回显医院基本数据 + let hospitalData = admin.getTempData('t_hospital'); + if (hospitalData != null) { + form.val('recharge-form', hospitalData); + $("#hospitalAreas").val(hospitalData.hospitalProvince + " " + hospitalData.hospitalCity + " " + + hospitalData.hospitalArea); + } + //装载产品数据 + table.render({ + elem: '#product-table', + url: config.base_server + 'api-opration/product/all', + method: 'GET', + cellMinWidth: 50, + headers: { + 'Authorization': 'Bearer ' + config.getToken().access_token + }, + page: false, + where: { + is_del: 0, + enabled: 1 + }, + cols: [ + [{ + 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 "正式" + }, + 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: '操作' + } + ] + ], + done: function (res) { + permissionsInput(res, config); + } + }); + //待充值列表功能操作 + table.on('tool(product-table-temp)', function (obj) { + if (obj.event === "del") { + if (!strUtil.isEmpty(obj.data.id)) { + delTempDataById(obj.data.id); + obj.del(); + } + } + }); + //单元格点击事件 + table.on('tool(product-table)', function (obj) { + var newdata = {}; + var data = obj.data; + var selectData = {}; + if (obj.event === 'date') { + var field = $(this).data('field'); + laydate.render({ + elem: this.firstChild, + format: "yyyy-MM-dd", + show: true, + done: function (value, date) { + var nowTr=obj.tr; + if (field === "beginTime") { + var endTimes = getNowDate(data.proTime, data.proTimeUnit, + value); + newdata["beginTime"] = value; + newdata["endTime"] = endTimes; + } else if (field === "endTime") { + newdata["endTime"] = value; + var beginTimes = getNowDate((0 - parseInt(data.proTime)), + data.proTimeUnit, value); + newdata["beginTime"] = beginTimes; + } + obj.update(newdata); + } + }); + } + if (obj.event === "pay") { + data.beginTime = obj.tr.find("td[data-field='beginTime'] input").val(); + data.endTime = obj.tr.find("td[data-field='endTime'] input").val(); + data.beginTime = (!strUtil.isEmpty(data.beginTime)) ? data.beginTime : obj.tr.find( + "td[data-field='beginTime'] div").text(); + data.endTime = (!strUtil.isEmpty(data.endTime)) ? data.endTime : obj.tr.find( + "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 (!strUtil.isEmpty(data.beginTime) && !strUtil.isEmpty(data.endTime)) { + if (dateUtil.compareDate(data.endTime, data.beginTime)) { + tempDataList(data); + waitRecharge(); + } else { + layer.msg("结束时间必须大于开始时间!"); + return false; + } + } else { + layer.msg("时间格式有误!"); + return false; + } + } + }); + //监听单元格编辑 判断日期格式 + table.on('edit(product-table)', function (obj) { + var value = obj.value //得到修改后的值 + , + data = obj.data //得到所在行所有键值 + , + field = obj.field; //得到字段 + if (dateUtil.isDate(value)) {} else { + layer.msg("输入的日期格式无效!"); + } + }); + //自动计算时间 + var getNowDate = function (proTime, proTimeUnit, now) { + if (strUtil.isEmpty(now)) { + now = new Date(); + } else { + now = dateUtil.strTurnDate(now); + } + if (strUtil.isEmpty(proTime) && strUtil.isEmpty(proTimeUnit)) { + return now.dateFormat("yyyy-MM-dd"); + } else { + proTime = strUtil.isEmpty(proTime) ? 0 : proTime; + proTimeUnit = strUtil.isEmpty(proTimeUnit) ? 0 : proTimeUnit; + switch (proTimeUnit) { + case 0: + return new Date(now.setDate(now.getDate() + proTime)).dateFormat("yyyy-MM-dd"); + break; + case 1: + return new Date(now.setMonth(now.getMonth() + proTime)).dateFormat( + "yyyy-MM-dd"); + break; + case 2: + return new Date(now.setFullYear(now.getFullYear() + proTime)).dateFormat( + "yyyy-MM-dd"); + break; + } + } + } + // 产品待充值数据 + var tempDataList = function (data) { + if (!strUtil.isEmpty(data)) { + var listData = admin.getTempData("t_tempProduct"); + if (strUtil.isEmpty(listData)) { + listData = new Array(); + } + $.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 { + admin.putTempData("t_tempProduct", ""); + } + } + //移除指定数据 + var delTempDataById = function (id) { + if (!strUtil.isEmpty(id)) { + var listData = admin.getTempData("t_tempProduct"); + $.each(listData, function (index, value) { + if (value.id === id) { + //移除 + listData.splice(index, 1); + return false; + } + }) + admin.putTempData("t_tempProduct", listData); + } + } + form.on('submit(recharge-form-submit)', function (data) { + if (!isRun) { + layer.load(2); + var listData = admin.getTempData("t_tempProduct"); + 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: 3000 + }, 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 + }); + } + layer.closeAll('loading'); + return false; + } + }); + }); +</script> \ No newline at end of file -- Gitblit v1.8.0