kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
@@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.Date; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -73,4 +74,16 @@ * 状态,1启用,0停用 */ private Boolean enabled; /** * 产品结束时间-供前端使用 */ private Date endTime; /** * 产品结束时间-供前端使用 */ private Date beginTime; /** * 共享,1是,0不 */ private Boolean isShare; } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java
@@ -44,4 +44,6 @@ * @return ProductOrderDetail对象 */ List<GroupProductDetail> groupProductDetail(Page<GroupProductDetail> page, @Param("p") Map<String, Object> params); /**批量添加*/ int batchInsert(List<ProductOrderDetail> list); } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java
@@ -1,12 +1,13 @@ package com.kidgrow.oprationcenter.service; import com.kidgrow.common.model.ResultBody; import com.kidgrow.oprationcenter.model.ProductOrderDetail; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.ISuperService; import com.kidgrow.oprationcenter.model.ProductOrderDetail; import com.kidgrow.oprationcenter.vo.GroupProductDetail; import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail; import java.util.List; import java.util.Map; /** @@ -50,5 +51,12 @@ */ ResultBody updateEnabled(Map<String, Object> params); /** * 批量写入数据 * @param list * @return */ int batchInsert(List<ProductOrderDetail> list); } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
@@ -91,4 +91,15 @@ int i = baseMapper.updateById(productOrder); return i > 0 ? ResultBody.ok().data(productOrder).msg("更新成功") : ResultBody.failed("更新失败"); } /** * 批量写入数据 * @param list * @return */ @Override public int batchInsert(List<ProductOrderDetail> list) { return baseMapper.batchInsert(list); } } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml
@@ -135,4 +135,28 @@ GROUP BY DE.pro_id order by pro_count desc </select> <!-- 定义 批量添加数据 --> <insert id="batchInsert" parameterType="java.util.List"> insert into product_order_detail (order_id, pro_id, pro_name, is_share, ailight_count, record_count, pro_begintime, pro_endtime) values <foreach collection="list" item="item" index="index" separator=","> (#{item.orderId} , #{item.proId} , #{item.proName} , #{item.isShare} , #{item.ailightCount} , #{item.recordCount} , #{item.proBegintime} , #{item.proEndtime}) </foreach> </insert> </mapper> kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java
@@ -6,6 +6,7 @@ import com.kidgrow.oprationcenter.model.ProductOrderDetail; import com.kidgrow.oprationcenter.service.IBusinessRecordsService; import com.kidgrow.oprationcenter.service.IProductOrderDetailService; import com.kidgrow.oprationcenter.service.IProductOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -13,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; @@ -26,6 +28,7 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @Description: 产品/明显的充值记录 * @Project: 运营中心 * @CreateDate: Created in 2020-04-02 18:25:34 <br> @@ -41,6 +44,8 @@ private IProductOrderDetailService productOrderDetailService; @Autowired private IBusinessRecordsService businessRecordsService; @Autowired private IProductOrderService productOrderService; /** * 列表 @@ -129,10 +134,42 @@ boolean v= productOrderDetailService.saveOrUpdate(productOrderDetail); if(v) { return ResultBody.ok().data(productOrderDetail).msg("保存成功"); } else { } else { return ResultBody.failed().msg("保存失败"); } } } /** * 新增or更新 */ @ApiOperation(value = "保存") @PostMapping("/saveall") @Transactional(rollbackFor = Exception.class) public ResultBody batchInsert(@Valid @RequestBody List<ProductOrderDetail> list, BindingResult bindingResult) { List<String> errMsg = new ArrayList<>(); if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { errMsg.add(error.getDefaultMessage()); } return ResultBody.failed().msg(errMsg.toString()); } else { //int v = productOrderDetailService.batchInsert(list); for (int i = 0; i < list.size(); i++) { if (!productOrderDetailService.saveOrUpdate(list.get(i))) { //写入订单明细失败,则删除订单记录数据 Boolean e = productOrderService.removeById(list.get(0).getOrderId()); // //删除已写入的订单明细 // Map<String, Object> idList = new HashMap<String, Object>(); // idList.put("orderId", list.get(i).getOrderId()); // boolean delDetail = productOrderDetailService.removeByMap(idList); if (e) return ResultBody.failed().msg("充值数据保存失败,订单已撤回!"); else return ResultBody.failed().msg("充值数据保存失败,订单撤回失败!"); } } return ResultBody.ok().data(list.size()).msg("产品充值成功"); } } @@ -148,11 +185,11 @@ //log.error(String.format("删除订单明细id为:{1}",id)); } return ResultBody.ok().msg("删除成功"); } else { } else { return ResultBody.failed().msg("删除失败"); } } /** * 修改状态 * kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
@@ -108,6 +108,7 @@ return ResultBody.failed().msg(errMsg.toString()); } else { //先检查该医院该科室是否已经存在 if (sysDepartment.getId() == null) { Map<String, Object> checkDepartment=new HashMap<String,Object>(); checkDepartment.put("page", 1); checkDepartment.put("limit", 1); @@ -116,18 +117,18 @@ if (sysDepartmentService.findList(checkDepartment).getData().size()>0) { return ResultBody.failed().msg(String.format("该医院下已经存在科室 %s", sysDepartment.getDepartmentName())); } } //先检查是否存在组织信息 SysOrganization sysOrganization=new SysOrganization(); if(sysDepartment.getOrgId()!=null){ sysOrganization.setId(sysDepartment.getOrgId());} else{ sysOrganization.setId(sysDepartment.getOrgId()); } else { sysOrganization.setOrgName(sysDepartment.getDepartmentName()); //临时暂用其它字段承载数据 sysOrganization.setOrgParentId(sysDepartment.getUpdateUserId()); } sysOrganization=sysOrganizationService.findByObject(sysOrganization); if(sysOrganization==null) { if (sysOrganization == null) { //创建一个组织 sysOrganization=new SysOrganization(); sysOrganization.setOrgName(sysDepartment.getDepartmentName()); @@ -135,9 +136,7 @@ sysOrganization.setOrgLevel(2); //临时暂用其它字段承载数据 sysOrganization.setOrgParentId(sysDepartment.getUpdateUserId()); } else { } else { sysOrganization.setOrgName(sysDepartment.getDepartmentName()); } boolean org=sysOrganizationService.saveOrUpdate(sysOrganization); kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java
@@ -23,6 +23,7 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @Description: 组织架构表 * @Project: 用户中心 * @CreateDate: Created in 2020-04-10 15:21:10 <br> @@ -53,6 +54,7 @@ } return ResultBody.ok().data(sysOrganizationService.findList(params)); } /** * 列表 */ @@ -69,12 +71,11 @@ } if (params.get("orgName")!=null) { return ResultBody.ok().data(sysOrganizationService.findList(params).getData()); } else { } else { return ResultBody.ok().data(null); } } @ApiOperation(value = "查询列表by MAP") @GetMapping("getListByMap") public ResultBody getListByMap(@RequestParam Map<String, Object> params) { @@ -86,6 +87,7 @@ public ResultBody getTree(@RequestParam Map<String, Object> params) { return sysOrganizationService.getTree(params); } @ApiOperation(value = "更新状态") @GetMapping("updateEnabled") public ResultBody updateEnabled(@RequestParam Map<String, Object> params) { @@ -128,8 +130,7 @@ boolean v= sysOrganizationService.saveOrUpdate(sysOrganization); if(v) { return ResultBody.ok().data(sysOrganization).msg("保存成功"); } else { } else { return ResultBody.failed().msg("保存失败"); } } @@ -144,8 +145,7 @@ boolean v= sysOrganizationService.removeById(id); if(v) { return ResultBody.ok().msg("删除成功"); } else { } else { return ResultBody.failed().msg("删除失败"); } } kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
@@ -109,21 +109,19 @@ /** * 比较第一个时间值和第二个时间值的大小 如果第一个大 返回true 否则返回false * **/ compareDate:function(datebegin,dateend) { compareDate: function (datebegin, dateend) { var datebegindate=dateUtil.strTurnDate(datebegin); var dateenddate=dateUtil.strTurnDate(dateend); if (datebegindate > dateenddate) { return false; } else { return true; } else { return false; } }, /*** * 获取今天的时间字符串 */ getNowDate:function() { getNowDate: function () { var dayTime = new Date(); dayTime.setTime(dayTime.getTime()); return dayTime.getFullYear()+"-" + (dayTime.getMonth()+1) + "-" + dayTime.getDate(); @@ -157,6 +155,16 @@ }else{ return "Param error,date type!"; } }, /** * 判断一个字符串是否日期 * @param {字符串} strDate */ isDate: function (strDate) { if (!strUtil.isEmpty(strDate) && !isNaN(Date.parse(strDate))) { return true; } return false; } }; kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html
@@ -49,7 +49,7 @@ { field: 'hospitalName', width: 300, title: '医院名称' }, { field: 'departmentName', width: 100, title: '科室名称' }, { field: 'contractNo', width: 150, title: '合同编号' }, { field: 'contractTitle', width: 150, title: '合同名' }, { field: 'contractTitle', width: 260, title: '合同名' }, { field: 'contractBeginTime', width: 150, title: '合同生效时间',templet:function(d) { return new Date(d.contractBeginTime).dateFormat("yyyy/MM/dd"); @@ -59,34 +59,15 @@ return new Date(d.contractEndTime).dateFormat("yyyy/MM/dd"); } }, { field: 'contractTime', width: 180, title: '合同签订时间',templet:function(d){ return new Date(d.contractTime).dateFormat("yyyy/MM/dd hh:mm:ss"); return new Date(d.contractTime).dateFormat("yyyy/MM/dd"); } }, { field: 'enabled', width: 120, templet: '#contract-tpl-state', sort: true, title: '状态' }, // { field: 'enabled', width: 120, templet: '#contract-tpl-state', sort: true, title: '状态' }, { field: 'createTime', width: 160, sort: true, title: '创建时间' }, { align: 'center', width: 150, toolbar: '#contract-table-bar', title: '操作' } ]] }); } renderTable(); // 修改状态 form.on('switch(contract-tpl-state)', function (obj) { layer.load(2); admin.req('api-opration/contract/updateEnabled', { id: obj.elem.value, enabled: obj.elem.checked ? true : false }, function (data) { layer.closeAll('loading'); if (data.code == 0) { layer.msg(data.msg, { icon: 1, time: 500 }); } else { layer.msg(data.msg, { icon: 2, time: 500 }); $(obj.elem).prop('checked', !obj.elem.checked); form.render('checkbox'); } }, 'GET'); }); // 工具条点击事件 table.on('tool(contract-table)', function (obj) { if (obj.event === 'del') { // 删除 @@ -130,7 +111,7 @@ where:{'orderId':orderId}, headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, page: true, limit:5, limit:10, limits:[5,10], cols: [[ { field: 'proName', width: 300, title: '产品名称' }, @@ -148,7 +129,7 @@ return new Date(d.proBegintime).dateFormat("yyyy/MM/dd"); } }, { field: 'proEndtime', width: 180, title: '结束时间',templet:function(d){ return new Date(d.proEndtime).dateFormat("yyyy/MM/dd hh:mm:ss"); return new Date(d.proEndtime).dateFormat("yyyy/MM/dd"); } }, { field: 'createTime', width: 160, sort: true, title: '创建时间' } ]] kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/department_form.html
File was deleted kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/groupProduct.html
@@ -8,10 +8,10 @@ </div> <div class="layui-card-body"> <div class="layui-form toolbar">  <input type="text" name="date" id="datebegin" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" <input type="text" name="date" id="datebegin" lay-verify="date" autocomplete="off" class="layui-input search-input"> 至 <input type="text" name="date" id="dateend" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" <input type="text" name="date" id="dateend" lay-verify="date" autocomplete="off" class="layui-input search-input">   <button id="product-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> </div> kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
@@ -133,6 +133,20 @@ admin.putTempData("t_hospital", data); showEditModel("edit"); } else if(layEvent==="pay") { //充值 admin.putTempData("t_hospital", data); admin.popupCenter({ title: '医院充值', path: 'pages/opration/recharge.html', area: '1200px', offset:'10px', finish: function () { $('#hospita-btn-search').click(); } }); } }); // 搜索按钮点击事件 $('#hospita-btn-search').click(function () { kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -127,7 +127,7 @@ <div class="layui-form-item"> <label class="layui-form-label">医院简介</label> <div class="layui-input-block"> <textarea name="hospital_about" class="layui-textarea" maxlength="500"></textarea> <textarea name="hospitalAbout" class="layui-textarea" maxlength="500"></textarea> </div> </div> <div class="layui-form-item model-form-footer"> @@ -168,14 +168,14 @@ form.on("select(hospitalCity)", function (data) { area.areaData("#hospitalArea", 3, data.value, ""); //区号,金纬度自动赋值 let cityData = admin.getTempData("t_city"); if (cityData != null) { cityData.forEach(function (item) { var cityDataFor = admin.getTempData("t_city"); if (cityDataFor != null) { cityDataFor.forEach(function (item) { if (data.value == item.id) { $("#areaCode").val(item.areaCitycode); $("#longitude").val(item.areaLng); $("#latitude").val(item.areaLat); break; return; } }) } @@ -200,7 +200,6 @@ data.field.hospitalArea = $("#hospitalArea option:selected").text() != "选择区县" ? $("#hospitalArea option:selected").text() : ""; admin.req('api-user/syshospital', JSON.stringify(data.field), function (data) { layer.closeAll('loading'); if (data.code === 0) { //存储科室数据 var departmentData = { kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_tab.html
File was deleted kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html
@@ -45,6 +45,14 @@ cols: [[ { field: 'proName', width: 300, title: '产品名称' }, { field: 'proType',align: 'center', width: 100, templet: function (d) { if (d.proType === 0) return "试用" else return "正式" }, title: '类型' }, { field: 'proTime', width: 150, title: '有效时长', templet: function (d) { switch (d.proTimeUnit) { case 0: kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productdetail.html
@@ -21,7 +21,7 @@ </script> <!-- 表格状态列 --> <script type="text/html" id="product-tpl-state"> <input type="checkbox" lay-filter="product-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="未处理|已处理" <input type="checkbox" lay-filter="product-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="启用|已禁用" {{d.enabled==true?'checked':''}}/> </script> @@ -64,7 +64,7 @@ { field: 'createTime', width: 160, sort: true, title: '创建时间',templet:function(d){ return new Date(d.createTime).dateFormat("yyyy/MM/dd hh:mm:ss"); } }, { field: 'enabled', width: 150, templet: '#product-tpl-state', sort: true, title: '状态' }, { field: 'enabled', width: 100, templet: '#product-tpl-state', sort: true, title: '状态' }, { align: 'center', width: 100, toolbar: '#product-table-bar', title: '操作' } ]] }); kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
New file @@ -0,0 +1,444 @@ <form id="recharge-form" lay-filter="recharge-form" class="layui-form"> <div class="layui-tab" style="margin-top: 5px;"> <ul class="layui-tab-title"> <li class="layui-this">合同信息</li> </ul> <div class="layui-tab-content" style="margin: 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"/> </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: 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"> <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 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" 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; //执行一个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, height: '120px', cols: [[ { field: 'proName', width: 320, title: '产品名称', align: 'center', fixed: 'left' }, { field: 'proType', align: 'center', width: 100, 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: 'recordCount', width: 110, align: 'center', title: '报告数' }, { field: 'ailightCount', 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: 80, 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', method: 'GET', headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, page: false, height: '300px', where: { enabled: 1 }, cols: [[ { field: 'proName', sort: true, width: 300, 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: 'recordCount', width: 100, align: 'center', title: '报告数' }, { field: 'ailightCount', width: 100, align: 'center', title: '读片量' }, { field: 'beginTime', align: 'center', width: 130, title: '开始日期', templet: function (d) { return getNowDate(); }, event: "date", edit: 'text' }, { field: 'endTime', align: 'center', width: 130, title: '结束日期', templet: function (d) { return getNowDate(d.proTime, d.proTimeUnit); }, event: "date", edit: 'text' }, { 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: '操作' } ]] }); //待充值列表功能操作 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 data = obj.data; var selectData = {}; 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) { var now = new Date(); 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 + 1)).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) { layer.load(2); var listData = admin.getTempData("t_tempProduct"); if (listData != null) { if (data.field != null) { 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: new Date(item.beginTime+' 00:00:00'), proEndtime: new Date(item.endTime+' 23:59:59') }; listDetailData.push(detailData); }) if (listDetailData.length > 0) { //提交订单数据 admin.req('api-opration/productorderdetail/saveall', JSON.stringify(listDetailData), function (data) { layer.closeAll('loading'); if (data.code === 0) { //现将临时数据清理 admin.putTempData("t_tempProduct", ""); layer.msg(data.msg, { icon: 1, time: 1000 }, function () { admin.finishPopupCenter(); }); } else { layer.msg(data.msg, { icon: 2, time: 1000 }); } }, 'POST'); } else { layer.msg("充值数据异常为空!", { icon: 2, time: 1000 }); } } else { layer.msg(data.msg, { icon: 2, time: 1000 }); } }, 'POST'); } else { layer.msg("数据异常!", { icon: 2, time: 1000 }); } } else { layer.msg("请先将要充值的产品加入待充值!", { icon: 2, time: 2000 }); } layer.closeAll('loading'); return false; }); }); </script>