From 0928fba7cd5576d2932859b1d4942464c720d92f Mon Sep 17 00:00:00 2001 From: 侯瑞军 <411269194@kidgrow.com> Date: Fri, 17 Apr 2020 19:03:08 +0800 Subject: [PATCH] 1.组织数据功能分离独立成模块 2.组织,医院,科室添加/修改功能 3.本周整理制作了3类JS通用插件(字典分类加载下来列表通用组件,省市区联动通用组件,文本框按输入内容自动搜索提示数据通用组件) --- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html | 197 +++++++++++----- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 3 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/org_form.html | 112 +++++++++ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java | 10 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java | 13 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/complete/autocomplete.js | 17 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java | 31 ++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html | 61 +++- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java | 28 +- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_tab.html | 122 ++++++++++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/department_form.html | 106 ++++++++ 11 files changed, 586 insertions(+), 114 deletions(-) diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java index 206aa71..4ec743c 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java @@ -1,5 +1,6 @@ package com.kidgrow.usercenter.model; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.kidgrow.common.model.SuperModel; import lombok.AllArgsConstructor; @@ -7,6 +8,8 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.NotEmpty; + +import javax.validation.constraints.NotNull; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -33,12 +36,17 @@ /** * 组织Id */ - @NotEmpty(message = "组织Id不能为空") + @NotNull(message = "组织Id不能为空") private Long orgId; + /** + * 医院Id + */ + @NotNull(message = "医院Id不能为空") + private Long hospitalId; /** * 负责的销售代表 */ - @NotEmpty(message = "负责的销售代表不能为空") + @NotNull(message = "负责的销售代表不能为空") private Long serverUserId; /** * 销售代表的名字 @@ -56,5 +64,6 @@ /** * 是否删除,1删除,0未删除 */ + @TableLogic private Boolean isDel; } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java index 67d86ac..32bea0f 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java @@ -8,6 +8,8 @@ import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * @@ -31,9 +33,9 @@ @NotEmpty(message = "医院名称 同组织名字不能为空") private String hospitalName; /** - * 组织ID + * 组织ID- */ - @NotEmpty(message = "组织ID不能为空") + @NotNull(message = "组织ID不能为空") private Long orgId; /** * 医院简称 @@ -46,7 +48,7 @@ /** * 医院类型ID 从字典表关联 社区/儿保等等之类 */ - private Long hospitalTypeId; + private String hospitalTypeId; /** * 医院类型 社区/儿保等等之类 */ @@ -86,7 +88,7 @@ /** * 资质ID */ - private Long hospitalQualifiedId; + private String hospitalQualifiedId; /** * 资质(三甲医院) */ diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java index 94f1dad..b8644ff 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java @@ -21,7 +21,6 @@ import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.hibernate.validator.constraints.NotBlank; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; @@ -313,7 +312,7 @@ List<SysUserOrg> sysUserOrgs = iSysUserOrgService.list(queryWrapper); List<Long> userIds = sysUserOrgs.stream().map(e -> e.getUserId()).collect(Collectors.toList()); QueryWrapper<SysUser> sysUserQueryWrapper=new QueryWrapper(); - sysUserQueryWrapper.in("id",userIds); + sysUserQueryWrapper.in("id",userIds.stream().distinct().collect(Collectors.toList())); sysUsers= baseMapper.selectList(sysUserQueryWrapper); } } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java index 157e44f..e06449c 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java @@ -1,28 +1,24 @@ package com.kidgrow.usercenter.controller; -import java.util.Map; import com.kidgrow.common.controller.BaseController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.ObjectError; -import org.springframework.web.bind.annotation.*; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.usercenter.model.SysDepartment; +import com.kidgrow.usercenter.service.ISysDepartmentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; - -import com.kidgrow.usercenter.model.SysDepartment; -import com.kidgrow.usercenter.service.ISysDepartmentService; -import com.kidgrow.common.model.*; - +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.annotation.*; + import javax.validation.Valid; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; /** @@ -91,6 +87,14 @@ } return ResultBody.failed().msg(errMsg.toString()); } else { + //先检查该医院下的该科室名是否已经存在? + SysDepartment sysDepartmentTemp=new SysDepartment(); + sysDepartmentTemp.setHospitalId(sysDepartment.getHospitalId()); + sysDepartmentTemp.setDepartmentName(sysDepartment.getDepartmentName().trim()); + sysDepartmentTemp=sysDepartmentService.findByObject(sysDepartmentTemp); + if (sysDepartmentTemp!=null) { + return ResultBody.failed().msg(String.format("该医院下已经存在 %s",sysDepartment.getDepartmentName())); + } boolean v= sysDepartmentService.saveOrUpdate(sysDepartment); if(v) { return ResultBody.ok().data(sysDepartment).msg("保存成功"); diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java index 43d1c19..264185a 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java @@ -1,23 +1,24 @@ package com.kidgrow.usercenter.controller; -import java.util.Map; import com.kidgrow.common.controller.BaseController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.common.model.SysOrganization; +import com.kidgrow.usercenter.service.ISysOrganizationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; - -import com.kidgrow.usercenter.service.ISysOrganizationService; -import com.kidgrow.common.model.*; - +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; +import org.springframework.web.bind.annotation.*; + import javax.validation.Valid; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** @@ -52,6 +53,22 @@ } return ResultBody.ok().data(sysOrganizationService.findList(params)); } + /** + * 列表 + */ + @ApiOperation(value = "模糊查询列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") + }) + @GetMapping("/listByName") + public ResultBody listByName(@RequestParam Map<String, Object> params) { + if(params.size()==0){ + params.put("page",1); + params.put("limit",10); + } + return ResultBody.ok().data(sysOrganizationService.findList(params).getData()); + } @ApiOperation(value = "查询列表by MAP") @GetMapping("getListByMap") public ResultBody getListByMap(@RequestParam Map<String, Object> params) { diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/complete/autocomplete.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/complete/autocomplete.js index 88f1382..84a1146 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/complete/autocomplete.js +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/complete/autocomplete.js @@ -33,7 +33,7 @@ } layui.link('/module/complete/autocomplete.css'); -layui.define(['jquery', 'laytpl', 'layer'], function (e) { +layui.define(['jquery', 'laytpl', 'layer','config'], function (e) { "use strict"; var hint = layui.hint(), $ = layui.jquery, @@ -43,13 +43,15 @@ filter = 'layui-autocomplete', container = 'layui-form-autocomplete', container_focus = 'layui-form-autocomplete-focus', + sysconfig=layui.config, system = { config: { template: ['<div class="layui-form-autocomplete">', '<dl class="layui-anim layui-anim-upbit">', '</dl>', '</div>'].join(''), layout: ['<dd data-index="{{d.index}}">{{d.text}}</dd>'].join(''), template_txt: '{{d.text}}', template_val: '{{d.value}}', - cache: false + cache: false, + keywordsName:'' }, data: {} }, @@ -75,7 +77,7 @@ msg: 'msg' }, request: { - keywords: 'keywords' + keywords: system.config.keywordsName }, statusCode: 0, time_limit: 300, @@ -89,6 +91,7 @@ } job.prototype.render = function () { var _self = this, _config = _self.config; + _config.request.keywords=_config.keywordsName; if (_config.elem = $(_config.elem), _config.where = _config.where || {}, !_config.elem[0]) return _self; var _elem = _config.elem, _container = _elem.next('.' + container), @@ -105,9 +108,9 @@ if ((_config.cache || !_config.url) && _config.data instanceof Object && Object.keys(_config.data).length > 0) return _self.renderData(_config.data); var keywords = _config.request.keywords var params = { - t: new Date().getTime() + //t: new Date().getTime() } - params[keywords] = _config.filter; + params[keywords] = _config.filter.replace("'",""); var $loading = $('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>'); $.ajax($.extend({ @@ -116,7 +119,9 @@ data: $.extend(params, _config.params instanceof Function ? _config.params() :_config.params), contentType: 'text/json,charset=utf-8', dataType: "json", - beforeSend: function () { + beforeSend: function (xhr) { + xhr.setRequestHeader("Authorization", "Bearer " + sysconfig.getToken().access_token); + xhr.setRequestHeader("Content-Type", "application/json"); $loading.attr('style', [ 'position:absolute', 'left:' + (_elem.offset().left + _elem.outerWidth() - 20) + 'px', diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/department_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/department_form.html new file mode 100644 index 0000000..8a25bcc --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/department_form.html @@ -0,0 +1,106 @@ +<form id="department-form" lay-filter="department-form" class="layui-form model-form" method="POST"> + <div class="layui-form-item"> + <div class="layui-row"> + <div class="layui-col-sm4"> + <label class="layui-form-label">医院名称</label> + <div class="layui-input-block"> + <input id="hospitalName" name="hospitalName" type="text" class="layui-input" maxlength="50" + lay-verify="required" required style="width: 200px;" value="" readonly /> +  </div> + </div> + <div class="layui-col-sm4"> + <label class="layui-form-label">科室名称</label> + <div class="layui-input-block"> + <input name="departmentName" id="departmentName" placeholder="科室名称" type="text" class="layui-input" + maxlength="50" lay-verify="required" required style="width: 150px;" /> +  </div> + </div> + <div class="layui-col-sm4"> + <label class="layui-form-label">服务人员</label> + <div class="layui-input-block"> + <input name="serverUserId" id="serverUserId" type="hidden" value="" /> + <select name="serverUserName" id="serverUserName" lay-filter="serverUserName" style="width: 150px;"> + </select> + </div> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">科室简介</label> + <div class="layui-input-block"> + <textarea name="departmentAbout" class="layui-textarea" maxlength="500"></textarea> + </div> + </div> + <div class="layui-form-item model-form-footer"> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + <button class="layui-btn" lay-filter="department-form-submit" lay-submit>保存</button> + </div> + <input type="hidden" id="orgId" name="orgId" value="" /> + <input type="hidden" id="hospitalId" name="hospitalId" value="" /> +</form> + +<script> + parent.layui.use(['form', 'table', 'util', 'config', 'admin', 'formSelects'], function () { + var form = parent.layui.form; + var table = parent.layui.table; + var config = parent.layui.config; + var layer = parent.layui.layer; + var util = parent.layui.util; + var admin = parent.layui.admin; + var formSelects = parent.layui.formSelects; + var $ = parent.layui.jquery; + debugger + // 回显组织数据 + let hospitals = admin.getTempData('t_hospital'); + if (hospitals != null) { + $('input[name="hospitalName"]').val(hospitals.hospitalName); + $('input[name="orgId"]').val(hospitals.orgId); + if (!strUtil.isEmpty(hospitals.id)) { + $('input[name="hospitalId"]').val(hospitals.id); + } + else { + $('input[name="hospitalId"]').val(hospitals.hospitalId); + } + } + //加载当前所在部门的在职员工 + admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) { + layer.closeAll('loading'); + if (0 === data.code) { + if (data.data.length > 0) { + $.each(data.data, function (index, item) { + //往下拉菜单里添加元素 + console.log(item.nickname) + $('#serverUserName').append(new Option(item.nickname, item.id, false, false)); + }) + $('#serverUserName').val(config.getUser().id); + $('#serverUserId').val(config.getUser().id); + } + } else { + layer.msg(data.msg, { icon: 2, time: 500 }); + } + }, 'get'); + // 表单提交事件 + form.on('submit(department-form-submit)', function (data) { + layer.load(2); + if (data.field != null) { + data.field.serverUserId = data.field.serverUserName; + data.field.serverUserName = $("#serverUserName option:selected").text(); + admin.req('api-user/sysdepartment', JSON.stringify(data.field), function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + 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 }); + } + return false; + }); + form.render(); + }); +</script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html index 9e86f48..9840a14 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html @@ -35,8 +35,9 @@ </select>   <input id="hospitalName" class="layui-input search-input" type="text" placeholder="按医院名" />  - <button id="hospita-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>  - <button id="hospital-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> + <button id="hospita-btn-search" class="layui-btn icon-btn"><i + class="layui-icon"></i>搜索</button>  + <button id="hospital-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加医院</button> </div> <!-- 数据表格 --> @@ -46,9 +47,10 @@ <!-- 表格操作列 --> <script type="text/html" id="businessRecords-table-bar"> - <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a> - <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> <a class="layui-btn layui-btn-xs" lay-event="pay">充值</a> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="addDepartment">添加科室</a> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script> <!-- 表格状态列 --> @@ -74,17 +76,17 @@ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, page: true, cols: [[ - { field: 'hospitalName', width: 250, title: '医院名称' }, - { field: 'departmentName', width: 100, title: '科室' }, + { field: 'hospitalName', width: 250, title: '医院名称',fixed:'left'}, + { field: 'departmentName', width: 100, title: '科室' ,fixed:'left'}, { - field: 'hospitalArea', width: 200, title: '所在地区', templet: function (d) { + field: 'hospitalArea', width: 250, title: '所在地区', templet: function (d) { return ((d.hospitalProvince == null) ? "" : d.hospitalProvince) + " " + ((d.hospitalCity == null) ? "" : d.hospitalCity) + " " + ((d.hospitalArea == null) ? "" : d.hospitalArea) } }, { field: 'hospitalLink', width: 100, title: '联系人' }, - { field: 'hospitalTel', width: 150, title: '联系方式' }, + { field: 'hospitalTel', width: 100, title: '联系方式' }, { field: 'enabled', width: 80, sort: true, title: '状态', templet: function (d) { return d.hospitalState == 0 ? "试用" : "正式" @@ -99,10 +101,10 @@ // return d.isScreen?"是":"否" // } }, - { field: 'serverUserName', width: 100, title: '服务人员' }, + { field: 'serverUserName', width: 100, title: '服务人员' }, { field: 'createTime', width: 120, sort: true, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd')}}</div>" }, { field: 'enabled', width: 100, templet: '#hospital-tpl-state', sort: true, title: '状态' }, - { field: 'hospitalId', width: 300, align: 'center', toolbar: '#businessRecords-table-bar', title: '操作' } + { field: 'hospitalId', width: 300, align: 'center', toolbar: '#businessRecords-table-bar', title: '操作' ,fixed:'right'} ]] }); //省份数据加载 @@ -114,10 +116,10 @@ if (layEvent === 'del') { layer.confirm('确定要删除吗?', function (i) { layer.load(2); - var whereModel={ + var whereModel = { id: obj.data.hospitalId, - departmentId: obj.data.departmentId - }; + departmentId: obj.data.departmentId + }; admin.req('api-user/syshospital/delete', whereModel, function (data) { layer.closeAll('loading'); layer.msg(data.msg, { icon: 1, time: 500 }, function () { @@ -126,6 +128,24 @@ obj.del(); }, 'GET'); }); + } + else if (layEvent === 'addDepartment') { + //添加科室 + admin.putTempData("t_hospital", data); + admin.popupCenter({ + title: '添加科室', + path: 'pages/opration/department_form.html', + area: ['900px', '60%'], + finish: function () { + //清理缓存数据 + admin.putTempData("t_hospital", ""); + } + }) + } + else if (layEvent === "edit") { + //修改 + admin.putTempData("t_hospital", data); + showEditModel(); } }); // 搜索按钮点击事件 @@ -153,7 +173,14 @@ // // 显示编辑弹窗 var showEditModel = function (data) { + admin.popupCenter({ + title: '编辑医院/科室', + path: 'pages/opration/hospital_form_tab.html', + area: ['900px', '80%'], + finish: function () { + } + }); }; //装载市区数据 @@ -186,13 +213,7 @@ }); // 添加按钮点击事件 $('#hospital-btn-add').click(function () { - admin.popupCenter({ - title: '添加医院', - path: 'pages/opration/hospital_form_base.html', - finish: function () { - //renderTable(); - } - }) + showEditModel(); }); }); </script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html index f3d1545..1eaca5e 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html @@ -1,55 +1,80 @@ -<fieldset class="layui-elem-field layui-field-title"> - <legend>医院基本信息</legend> -</fieldset> <form id="hospital-form" lay-filter="hospital-form" class="layui-form model-form" method="POST"> <div class="layui-form-item"> - <label class="layui-form-label">医院名称</label> - <div class="layui-input-block"> - <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input" - maxlength="50" lay-verify="required" required autocomplete="on" /> + <div class="layui-row"> + <div class="layui-col-sm7"> + <label class="layui-form-label">医院名称</label> + <div class="layui-input-block"> + <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input" + maxlength="50" lay-verify="required" required autocomplete="on" style="width: 390px;" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label">医院简称</label> + <div class="layui-input-block"> + <input name="hospitalShortName" type="text" class="layui-input" maxlength="50" + style="width: 200px;" /> + </div> + </div> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">医院简称</label> - <div class="layui-input-block"> - <input name="hospitalShortName" type="text" class="layui-input" maxlength="50" /> + <div class="layui-row"> + <div class="layui-col-sm7"> + <label class="layui-form-label">联系电话</label> + <div class="layui-input-block"> + <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" maxlength="50" + style="width: 390px;" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label">联系人</label> + <div class="layui-input-block"> + <input name="hospitalLink" type="text" class="layui-input" maxlength="50" style="width: 200px;" /> + </div> + </div> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">医院类型</label> - <div class="layui-input-block"> - <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" /> - <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName"> - <option value="">请选择</option> - </select> + <div class="layui-row"> + <div class="layui-col-sm7"> + <label class="layui-form-label">医院类型</label> + <div class="layui-input-block"> + <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" value=""/> + <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName" + style="width: 300px;"> + <option value="">请选择</option> + </select> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label">医院资质</label> + <div class="layui-input-block"> + <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden" value=""/> + <select name="hospitalQualifiedName" id="hospitalQualifiedName" lay-filter="hospitalQualifiedName" + style="width: 300px;"> + <option value="">请选择</option> + </select> + </div> + </div> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">医院资质</label> - <div class="layui-input-block"> - <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden" /> - <select name="hospitalQualifiedName" id="hospitalQualifiedName" lay-filter="hospitalQualifiedName"> - <option value="">请选择</option> - </select> - </div> - </div> - <div class="layui-form-item"> - <label class="layui-form-label">所在地区</label> - <div class="layui-input-block"> - <select id="hospitalProvince" placeholder="省份" lay-filter="hospitalProvince"> - </select> - <select id="hospitalCity" placeholder="市" lay-filter="hospitalCity"> - <option value="">选择市</option> - </select> - <select id="hospitalArea" placeholder="区县" lay-filter="hospitalArea"> - <option value="">选择区县</option> - </select> - </div> - </div> - <div class="layui-form-item"> - <label class="layui-form-label">区号</label> - <div class="layui-input-block"> - <input name="areaCode" type="text" class="layui-input" maxlength="10" /> + <div class="layui-row"> + <label class="layui-form-label">所在地区</label> + <div class="layui-input-block"> + <div class="layui-col-sm4"> + <select id="hospitalProvince" placeholder="省份" lay-filter="hospitalProvince" style="width: 400px;"> + </select></div> + <div class="layui-col-sm4"> + <select id="hospitalCity" placeholder="市" lay-filter="hospitalCity" style="width: 350px;"> + <option value="">选择市</option> + </select></div> + <div class="layui-col-sm4"> + <select id="hospitalArea" placeholder="区县" lay-filter="hospitalArea" style="width: 350px;"> + <option value="">选择区县</option> + </select> + </div> + </div> </div> </div> <div class="layui-form-item"> @@ -59,41 +84,54 @@ </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">经度</label> - <div class="layui-input-block"> - <input name="longitude" type="text" class="layui-input" maxlength="20" /> + <div class="layui-row"> + <div class="layui-col-sm3"> + <label class="layui-form-label">区号</label> + <div class="layui-input-block"> + <input name="areaCode" type="text" class="layui-input" maxlength="10" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label">经度</label> + <div class="layui-input-block"> + <input name="longitude" type="text" class="layui-input" maxlength="20" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label">纬度</label> + <div class="layui-input-block"> + <input name="latitude" type="text" class="layui-input" maxlength="20" /> + </div> + </div> </div> </div> - <div class="layui-form-item"> - <label class="layui-form-label">纬度</label> - <div class="layui-input-block"> - <input name="latitude" type="text" class="layui-input" maxlength="20" /> - </div> </div> <div class="layui-form-item"> <label class="layui-form-label">医院简介</label> <div class="layui-input-block"> - <input name="hospital_about" type="text" class="layui-input" maxlength="500" /> + <textarea name="hospital_about" class="layui-textarea" maxlength="500"></textarea> </div> </div> <div class="layui-form-item model-form-footer"> <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> <button class="layui-btn" lay-filter="hospital-form-submit" lay-submit>保存</button> </div> + <input type="hidden" id="orgId" name="orgId" value=""/> </form> <script> - layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin', 'area', 'formSelects', 'dic', 'autocomplete'], 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 area = layui.area; - var dic = layui.dic; - var formSelects = layui.formSelects; - var autocomplete = layui.autocomplete; + parent.layui.use(['form', 'table','util', 'config', 'admin', 'area', 'formSelects', 'dic', 'autocomplete'], function () { + var form = parent.layui.form; + var table = parent.layui.table; + var config = parent.layui.config; + var layer = parent.layui.layer; + var util = parent.layui.util; + var admin = parent.layui.admin; + var area = parent.layui.area; + var dic = parent.layui.dic; + var formSelects = parent.layui.formSelects; + var autocomplete = parent.layui.autocomplete; + var $ = parent.layui.jquery; autocomplete.render({ elem: $('#hospitalName'), @@ -129,5 +167,42 @@ form.on("select(hospitalTypeName)", function (data) { $("#hospitalTypeId").val(data.value); }); + + // 回显组织数据 + let orgs = admin.getTempData('t_org'); + if (orgs != null) { + $('input[name="hospitalName"]').val(orgs.orgName); + $('input[name="orgId"]').val(orgs.id); + form.render(); + } + // 表单提交事件 + form.on('submit(hospital-form-submit)', function (data) { + layer.load(2); + if(data.field!=null){ + + data.field.hospitalTypeName=$("#hospitalTypeName option:selected").text(); + data.field.hospitalQualifiedName=$("#hospitalQualifiedName option:selected").text(); + data.field.hospitalProvince=$("#hospitalProvince option:selected").text(); + data.field.hospitalCity=$("#hospitalCity option:selected").text(); + data.field.hospitalArea=$("#hospitalArea option:selected").text(); + + admin.req('api-user/syshospital', JSON.stringify(data.field), function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + //将医院数据存入本地 + admin.putTempData('t_hospital', data.data); + layer.msg(data.msg, { icon: 1, time: 1000 }, function () { + //清理组织数据 + admin.putTempData('t_org',''); + }); + } else { + layer.msg(data.msg, { icon: 2, time: 1000 }); + } + }, "POST");} + else{ + layer.msg("数据异常!", { icon: 2, time: 1000 }); + } + return false; + }); }); </script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_tab.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_tab.html new file mode 100644 index 0000000..9fe1bea --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_tab.html @@ -0,0 +1,122 @@ +<div class="layui-tab"> + <ul class="layui-tab-title"> + <li class="layui-this">组织信息</li> + <li>基本信息</li> + </ul> + <div class="layui-tab-content"> + <div class="layui-tab-item layui-show"> + <form id="app-form" lay-filter="app-form" class="layui-form model-form"> + <input name="id" type="hidden" /> + <div class="layui-form-item"> + <label class="layui-form-label">上级组织</label> + <div class="layui-input-block"> + <input name="orgParentId" id="orgParentId" type="hidden" value="-1"/> + <input placeholder="输入上级组织名称..." pname="orgParentName" id="orgParentName" type="text" class="layui-input" maxlength="50" /> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">组织类型</label> + <div class="layui-input-block"> + <select id="orgAttr" name="orgAttr" placeholder="选择一个类型"> + <option value="0" selected='selected'>集团</option> + <option value="1">公司/医院</option> + <option value="2">部门/科室</option> + <option value="3">子部门/子科室</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">组织层级</label> + <div class="layui-input-block"> + <select name="orgLevel" id='orgLevel' placeholder="选择一个层级"> + <option value="0" selected='selected'>1级</option> + <option value="1">2级</option> + <option value="2">3级</option> + <option value="3">4级</option> + <option value="4">5级</option> + <option value="5">6级</option> + <option value="6">7级</option> + <option value="7">8级</option> + <option value="8">9级</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">组织名称</label> + <div class="layui-input-block"> + <input name="orgName" id="orgName" type="text" class="layui-input" maxlength="20" /> + </div> + </div> + <div class="layui-form-item model-form-footer"> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + <button class="layui-btn" id="sure" lay-filter="org-form-submit" lay-submit>保存</button> + </div> + <input name="id" id="id" type="hidden" value=""/> + </form> + </div> + <div class="layui-tab-item"> + </div> + </div> + <script> + layui.use(['form', 'table', 'laydate', 'util','config', 'admin','element','autocomplete'], 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 tree = layui.tree; + var $ = layui.jquery; + var element = layui.element; + var autocomplete=layui.autocomplete; + //自动完成-上级组织 + autocomplete.render({ + elem: $('#orgParentName')[0], + keywordsName:'orgName',//查询关键字名称 + url: config.base_server +'api-user/sysorganization/listByName?page=1&limit=9999999', + template_val: '{{d.orgName}}',//选择后文本框显示的数据字段 + template_txt: "<div class='layui-table-cell'>{{d.orgName}}</div>",//下拉列表模板 + onselect: function (resp) { + $("#orgParentId").val(resp.id); + $("#orgLevel").val(resp.orgLevel+1); + $("#orgAttr").val(resp.orgLevel+1); + form.render(); + } + }) + + //自动完成-医院名称 + autocomplete.render({ + elem: $('#orgName')[0], + keywordsName:'orgName',//查询关键字名称 + url: config.base_server +'api-user/sysorganization/listByName?page=1&limit=9999999', + template_val: '{{d.orgName}}',//选择后文本框显示的数据字段 + template_txt: "<div class='layui-table-cell'>{{d.orgName}}</div>",//下拉列表模板 + onselect: function (resp) { + $("#id").val(resp.id); + form.render(); + } + }) + + // 表单提交事件 + form.on('submit(org-form-submit)', function (data) { + layer.load(2); + admin.req('api-user/sysorganization', JSON.stringify(data.field), function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + //将组织数据存入本地 + admin.putTempData('t_org', data.data); + //组织数据维护成功后,进入医院基本信息页面 + layer.msg("组织数据编辑成功,继续编辑基本数据...", { icon: 1, time: 1000 },function(){ + //admin.finishPopupCenter(); + }); + } else { + layer.msg(data.msg, { icon: 2, time: 1000 }); + } + }, "POST"); + return false; + }); + form.render(); + getData(); + }); + </script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/org_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/org_form.html new file mode 100644 index 0000000..48d81cc --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/org_form.html @@ -0,0 +1,112 @@ +<form id="app-form" lay-filter="app-form" class="layui-form model-form"> + <input name="id" type="hidden" /> + <div class="layui-form-item"> + <label class="layui-form-label">上级组织:</label> + <div class="layui-input-block"> + <div id="orgParentId-tree" class="demo-tree demo-tree-box"></div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">上级组织:</label> + <div class="layui-input-block"> + <input name="orgParentId" id="orgParentId" type="hidden" value="-1" class="layui-input" maxlength="20" /> + <input name="orgParentName" id="orgParentName" type="text" class="layui-input" maxlength="50" readonly /> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">组织类型:</label> + <div class="layui-input-block"> + <select id="orgAttr" name="orgAttr" placeholder="选择一个类型"> + <option value="">-请选择-</option> + <option value="0">集团</option> + <option value="1">公司/医院</option> + <option value="2">部门/科室</option> + <option value="3">子部门/子科室</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">组织层级:</label> + <div class="layui-input-block"> + <select name="orgLevel" id='orgLevel' placeholder="选择一个层级"> + <option value="">-请选择-</option> + <option value="0">1级</option> + <option value="1">2级</option> + <option value="2">3级</option> + <option value="3">4级</option> + <option value="4">5级</option> + <option value="5">6级</option> + <option value="6">7级</option> + <option value="7">8级</option> + <option value="8">9级</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">医院/科室名称:</label> + <div class="layui-input-block"> + <input name="orgName" type="text" class="layui-input" maxlength="20" /> + </div> + </div> + <div class="layui-form-item model-form-footer"> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + <button class="layui-btn" id="sure" lay-filter="org-form-submit" lay-submit>保存</button> + </div> +</form> +<script> + parent.layui.use(['form', 'table', 'laydate', 'util', 'tree', 'config', 'admin'], function () { + var form = parent.layui.form; + var table = parent.layui.table; + var config = parent.layui.config; + var layer = parent.layui.layer; + var util = parent.layui.util; + var admin = parent.layui.admin; + //树形插件 + var tree = parent.layui.tree; + var $ = parent.layui.jquery; + + //组织结构树 + var getData = function () { + admin.req('api-user/sysorganization/getTree', { is_del: 0, enabled: 1 }, function (data) { + if (0 === data.code) { + tree({ + elem: "#orgParentId-tree", + nodes: data.data, + click: function (node) { + //将数据赋值 + $("#orgParentId").val(node.id); + $("#orgParentName").val(node.name); + $("#orgAttr").val(node.level + 1); + $("#orgLevel").val(node.level + 1); + //刷新form表单 + form.render('select'); + } + }); + } else { + layer.msg(data.msg, { icon: 2, time: 1000 }); + } + }, 'get'); + } + + // 表单提交事件 + form.on('submit(org-form-submit)', function (data) { + layer.load(2); + admin.req('api-user/sysorganization', JSON.stringify(data.field), function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + //将组织数据存入本地 + admin.putTempData('t_org', data.data); + //组织数据维护成功后,进入医院基本信息页面 + layer.msg("组织数据编辑成功,继续编辑基本数据...", { icon: 1, time: 1000 },function(){ + //admin.finishPopupCenter(); + }); + } else { + layer.msg(data.msg, { icon: 2, time: 1000 }); + } + }, "POST"); + return false; + }); + form.render(); + getData(); + }); +</script> \ No newline at end of file -- Gitblit v1.8.0