kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.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> @@ -32,7 +35,7 @@ /** * 所属医院ID */ @NotEmpty(message = "所属医院ID不能为空") @NotNull(message = "所属医院ID不能为空") private Long hospitalId; /** * 医院名称 @@ -42,12 +45,10 @@ /** * 科室ID */ @NotEmpty(message = "科室ID不能为空") private Long departmentId; /** * 科室名称 */ @NotEmpty(message = "科室名称不能为空") private String departmentName; /** * 医生姓名 @@ -98,14 +99,24 @@ /** * 是否删除,1删除,0未删除 */ @TableLogic private Boolean isDel; /** * 医生状态 1正常 0试用 */ @NotEmpty(message = "医生状态 1正常 0试用不能为空") @NotNull(message = "医生状态 1正常 0试用不能为空") private Boolean doctorState; /** * 启用禁用状态,1启用,0停用 */ private Boolean enabled; /** * 销售代表的id */ private String serverUserId; /** * 销售代表名称 */ private String serverUserName; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
New file @@ -0,0 +1,9 @@ package com.kidgrow.usercenter.vo; import lombok.Data; @Data public class SysDoctorDto extends SysDoctorVo { private String username; private String password; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java
New file @@ -0,0 +1,9 @@ package com.kidgrow.usercenter.vo; import com.kidgrow.usercenter.model.SysDoctor; import lombok.Data; @Data public class SysDoctorVo extends SysDoctor { private String username; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
@@ -1,5 +1,6 @@ package com.kidgrow.usercenter.service; import com.kidgrow.common.model.ResultBody; import com.kidgrow.usercenter.model.SysDepartment; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.service.ISuperService; @@ -29,5 +30,9 @@ * @return SysDepartment对象 */ SysDepartment findByObject(SysDepartment sysDepartment); ResultBody findAll(Map<String, Object> params); ResultBody findListByHospitalId(Map<String, Object> params); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -1,9 +1,13 @@ package com.kidgrow.usercenter.service; import com.kidgrow.common.model.ResultBody; import com.kidgrow.usercenter.model.SysDoctor; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.service.ISuperService; import com.kidgrow.usercenter.vo.SysDoctorDto; import com.kidgrow.usercenter.vo.SysDoctorVo; import javax.servlet.http.HttpServletRequest; import java.util.Map; /** @@ -20,7 +24,7 @@ * @param params * @return */ PageResult<SysDoctor> findList(Map<String, Object> params); PageResult<SysDoctorVo> findList(Map<String, Object> params); /** @@ -29,5 +33,11 @@ * @return SysDoctor对象 */ SysDoctor findByObject(SysDoctor sysDoctor); boolean delete(Long id); ResultBody enable(Map<String, Object> params); boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
@@ -1,5 +1,6 @@ package com.kidgrow.usercenter.service; import com.kidgrow.common.model.ResultBody; import com.kidgrow.usercenter.model.SysHospital; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.service.ISuperService; @@ -29,5 +30,7 @@ * @return SysHospital对象 */ SysHospital findByObject(SysHospital sysHospital); ResultBody<SysHospital> findAll(Map<String, Object> params); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -3,7 +3,9 @@ import com.kidgrow.common.model.*; import com.kidgrow.common.service.ISuperService; import com.kidgrow.usercenter.model.SysUserExcel; import org.springframework.web.bind.annotation.RequestBody; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; import java.util.Set; @@ -107,4 +109,6 @@ boolean delUser(Long id); ResultBody findAll(Map<String, Object> map); ResultBody getThisUserOrganizationUser(HttpServletRequest request); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
@@ -1,12 +1,24 @@ package com.kidgrow.usercenter.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysOrganization; import com.kidgrow.usercenter.model.SysHospital; import com.kidgrow.usercenter.service.ISysHospitalService; import com.kidgrow.usercenter.service.ISysOrganizationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.kidgrow.common.model.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.service.impl.SuperServiceImpl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.apache.commons.collections4.MapUtils; import lombok.extern.slf4j.Slf4j; @@ -25,6 +37,11 @@ @Slf4j @Service public class SysDepartmentServiceImpl extends SuperServiceImpl<SysDepartmentMapper, SysDepartment> implements ISysDepartmentService { @Autowired private ISysOrganizationService iSysOrganizationService; @Autowired private ISysHospitalService iSysHospitalService; /** * 列表 * @param params @@ -46,4 +63,29 @@ public SysDepartment findByObject(SysDepartment sysDepartment){ return baseMapper.findByObject(sysDepartment); } @Override public ResultBody findAll(Map<String, Object> params) { return ResultBody.ok().data(baseMapper.selectByMap(params)); } @Override public ResultBody findListByHospitalId(Map<String, Object> params) { //查询组织 Long id = MapUtils.getLong(params, "id"); List<SysDepartment> sysDepartments=new ArrayList<>(); SysHospital byId = iSysHospitalService.getById(id); if(byId!=null){ params=new HashMap<>(); params.put("org_parent_id",byId.getOrgId()); List<SysOrganization> sysOrganizations = iSysOrganizationService.listByMap(params); if (sysOrganizations.size()>0) { List<Long> collect = sysOrganizations.stream().map(e -> e.getId()).collect(Collectors.toList()); QueryWrapper<SysDepartment> queryWrapper=new QueryWrapper(); queryWrapper.in("org_id",collect ); sysDepartments= baseMapper.selectList(queryWrapper); } } return ResultBody.ok().data(sysDepartments); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -1,49 +1,156 @@ package com.kidgrow.usercenter.service.impl; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysUser; import com.kidgrow.usercenter.service.ISysUserService; import com.kidgrow.usercenter.vo.SysDoctorDto; import com.kidgrow.usercenter.vo.SysDoctorVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cglib.beans.BeanCopier; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import com.kidgrow.common.model.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.service.impl.SuperServiceImpl; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.commons.collections4.MapUtils; import lombok.extern.slf4j.Slf4j; import com.kidgrow.usercenter.model.SysDoctor; import com.kidgrow.usercenter.mapper.SysDoctorMapper; import com.kidgrow.usercenter.service.ISysDoctorService; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @version 1.0 * @Description: <br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-02 14:02:50 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> * @version 1.0 */ @Slf4j @Service public class SysDoctorServiceImpl extends SuperServiceImpl<SysDoctorMapper, SysDoctor> implements ISysDoctorService { /** * 列表 * * @param params * @return */ @Autowired private ISysUserService iSysUserService; @Autowired private PasswordEncoder passwordEncoder; @Override public PageResult<SysDoctor> findList(Map<String, Object> params){ public PageResult<SysDoctorVo> findList(Map<String, Object> params) { Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); List<SysDoctor> list = baseMapper.findList(page, params); return PageResult.<SysDoctor>builder().data(list).code(0).count(page.getTotal()).build(); List<SysDoctor> list = baseMapper.findList(page, params); List<SysDoctorVo> listvo = new ArrayList<>(); list.forEach(e -> { SysDoctorVo vo = new SysDoctorVo(); BeanCopier beanCopier = BeanCopier.create(SysDoctor.class, SysDoctorVo.class, false); beanCopier.copy(e, vo, null); //查询用户的登录账号; if (e.getUserId() != null) { SysUser sysUser = iSysUserService.getById(e.getUserId()); if (sysUser != null) { vo.setUsername(sysUser.getUsername()); } } listvo.add(vo); }); return PageResult.<SysDoctorVo>builder().data(listvo).code(0).count(page.getTotal()).build(); } /** * 根据SysDoctor对象当做查询条件进行查询 * @param sysDoctor * @return SysDoctor */ * 根据SysDoctor对象当做查询条件进行查询 * * @param sysDoctor * @return SysDoctor */ @Override public SysDoctor findByObject(SysDoctor sysDoctor){ public SysDoctor findByObject(SysDoctor sysDoctor) { return baseMapper.findByObject(sysDoctor); } @Override public boolean delete(Long id) { //查询user表 SysDoctor sysDoctor = baseMapper.selectById(id); if (sysDoctor != null && sysDoctor.getUserId() != null) { boolean b = iSysUserService.delUser(sysDoctor.getUserId()); } sysDoctor.setIsDel(true); int i = baseMapper.deleteById(id); return true; } @Override public ResultBody enable(Map<String, Object> params) { Long aLong = MapUtils.getLong(params,"id"); SysDoctor sysDoctor = baseMapper.selectById(aLong); if (sysDoctor != null && sysDoctor.getUserId() != null) { SysUser byId = iSysUserService.getById(sysDoctor.getUserId()); if(byId!=null){ byId.setEnabled(true); iSysUserService.updateById(byId); } } if(sysDoctor!=null){ sysDoctor.setEnabled(true); baseMapper.updateById(sysDoctor); }else { return ResultBody.failed("禁用失败"); } return ResultBody.ok(0,"禁用成功"); } @Override @Transactional public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request) { String id = request.getHeader(SecurityConstants.USER_ID_HEADER); if(null==sysDoctor){ return false; }else { if (sysDoctor.getId()==null) { //保存 SysUser sysUser=new SysUser(); sysUser.setUsername(sysDoctor.getUsername()); sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword())); sysUser.setNickname(sysDoctor.getHospitalName()); sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo()); sysUser.setMobile(sysDoctor.getDoctorTel()); sysUser.setType("doctor"); sysUser.setTenantId("hospital"); sysUser.setCreateTime(new Date()); SysUser byId = iSysUserService.getById(id); if(byId!=null){ sysUser.setCreateUserId(byId.getId()); sysUser.setCreateUserName(byId.getUsername()); } iSysUserService.save(sysUser); //保存doctor的数据 SysDoctor sysDoc=new SysDoctor(); BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false); beanCopier.copy(sysDoctor,sysDoc,null); sysDoc.setUserId(sysUser.getId()); baseMapper.insert(sysDoc); }else { //更新 baseMapper.updateById(sysDoctor); } } return true; } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -1,5 +1,6 @@ package com.kidgrow.usercenter.service.impl; import com.kidgrow.common.model.ResultBody; import org.springframework.stereotype.Service; import com.kidgrow.common.model.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -46,4 +47,10 @@ public SysHospital findByObject(SysHospital sysHospital){ return baseMapper.findByObject(sysHospital); } @Override public ResultBody<SysHospital> findAll(Map<String, Object> params) { List<SysHospital> sysHospitals = baseMapper.selectByMap(params); return ResultBody.ok().data(sysHospitals).msg("查询成功"); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.constant.CommonConstant; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.context.ClientContextHolder; import com.kidgrow.common.lock.DistributedLock; import com.kidgrow.common.model.*; @@ -14,11 +15,13 @@ import com.kidgrow.usercenter.model.SysUserExcel; import com.kidgrow.usercenter.service.ISysOrganizationService; import com.kidgrow.usercenter.service.ISysRoleUserService; import com.kidgrow.usercenter.service.ISysUserOrgService; import com.kidgrow.usercenter.service.ISysUserService; import lombok.extern.slf4j.Slf4j; 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; @@ -27,6 +30,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; @@ -54,6 +58,8 @@ @Autowired private ISysOrganizationService organizationService; @Autowired private ISysUserOrgService iSysUserOrgService; @@ -285,4 +291,35 @@ List<SysUser> sysUsers = baseMapper.selectByMap(map); return ResultBody.ok().data(sysUsers).msg("操作成功"); } /** * 获取当前用的 组织下的所有人员 * @param request * @return */ @Override public ResultBody getThisUserOrganizationUser(HttpServletRequest request) { String id = request.getHeader(SecurityConstants.USER_ID_HEADER); List<SysUser> sysUsers=new ArrayList<>(); if(StringUtils.isNotBlank(id)){ QueryWrapper<SysUserOrg> queryWrapper=new QueryWrapper(); queryWrapper.eq("user_id",id); List<SysUserOrg> list = iSysUserOrgService.list(queryWrapper); if(list.size()>0){ List<Long> collect = list.stream().map(e -> e.getOrgId()).collect(Collectors.toList()); if (collect.size()>0) { queryWrapper=new QueryWrapper<>(); queryWrapper.in("org_id",collect); 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); sysUsers= baseMapper.selectList(sysUserQueryWrapper); } } }else { return ResultBody.failed("暂无数据"); } return ResultBody.ok().data(sysUsers); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -31,13 +31,13 @@ and department_name = #{p.departmentName} </if> <if test="p.doctorName != null and p.doctorName !=''"> and doctor_name = #{p.doctorName} and doctor_name like '%${p.doctorName}%' </if> <if test="p.doctorLogo != null and p.doctorLogo !=''"> and doctor_logo = #{p.doctorLogo} </if> <if test="p.doctorTel != null and p.doctorTel !=''"> and doctor_tel = #{p.doctorTel} and doctor_tel like '%${p.doctorTel}%' </if> <if test="p.doctorRankId != null and p.doctorRankId !=''"> and doctor_rank_id = #{p.doctorRankId} kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
@@ -115,4 +115,14 @@ return ResultBody.failed().msg("删除失败"); } } /** * 根据医院获取 组织,通过组织,获取科室; * @param params * @return */ @GetMapping("findListByHospitalId") public ResultBody findListByHospitalId(@RequestParam Map<String, Object> params) { return sysDepartmentService.findListByHospitalId(params); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
@@ -2,6 +2,9 @@ import java.util.Map; import com.kidgrow.common.controller.BaseController; import com.kidgrow.usercenter.vo.SysDoctorVo; import com.kidgrow.usercenter.vo.SysDoctorDto; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; @@ -16,13 +19,11 @@ import com.kidgrow.common.model.*; import org.springframework.validation.BindingResult; import javax.servlet.http.HttpServletRequest; 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; /** @@ -50,12 +51,12 @@ @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") }) @GetMapping public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) { public PageResult<SysDoctorVo> list(@RequestParam Map<String, Object> params) { if(params.size()==0){ params.put("page",1); params.put("limit",10); } return ResultBody.ok().data(sysDoctorService.findList(params)); return sysDoctorService.findList(params); } /** @@ -83,7 +84,7 @@ */ @ApiOperation(value = "保存") @PostMapping public ResultBody save(@Valid @RequestBody SysDoctor sysDoctor, BindingResult bindingResult) { public ResultBody save(@Valid @RequestBody SysDoctorDto sysDoctor, BindingResult bindingResult, HttpServletRequest request) { List<String> errMsg= new ArrayList<>(); if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { @@ -91,7 +92,8 @@ } return ResultBody.failed().msg(errMsg.toString()); } else { boolean v= sysDoctorService.saveOrUpdate(sysDoctor); boolean v= sysDoctorService.saveOrUpdateSer(sysDoctor,request); if(v) { return ResultBody.ok().data(sysDoctor).msg("保存成功"); } @@ -107,7 +109,7 @@ @ApiOperation(value = "删除") @DeleteMapping("/{id}") public ResultBody delete(@PathVariable Long id) { boolean v= sysDoctorService.removeById(id); boolean v= sysDoctorService.delete(id); if(v) { return ResultBody.ok().msg("删除成功"); } @@ -115,4 +117,17 @@ return ResultBody.failed().msg("删除失败"); } } /** * 状态 */ @ApiOperation(value = "修改状态") @PostMapping("enable") public ResultBody enable(@RequestBody Map<String, Object> params) { Long id = MapUtils.getLong(params, "id"); if (id==null) { return ResultBody.failed("请选择一条数据"); } return sysDoctorService.enable(params); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -57,7 +57,11 @@ } return sysHospitalService.findList(params); } @PostMapping("findAll") @ApiOperation(value = "查询所有列表") public ResultBody<SysHospital> findAll(@RequestBody Map<String, Object> params) { return sysHospitalService.findAll(params); } /** * 查询 */ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -336,4 +336,11 @@ public ResultBody findAll(@RequestParam Map<String,Object> map) { return appUserService.findAll(map); } /** * 获取当前用的 组织下的所有人员 */ @GetMapping("users/getThisUserOrganizationUser") public ResultBody getThisUserOrganizationUser(HttpServletRequest request){ return appUserService.getThisUserOrganizationUser(request); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
@@ -67,6 +67,8 @@ - sys_user_org - sys_dictionaries - sys_hospital - sys_doctor - sys_department ignoreSqls: - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
New file @@ -0,0 +1,711 @@ <div class="layui-card"> <div class="layui-card-header"> <h2 class="header-title">医生管理</h2> <span class="layui-breadcrumb pull-right"> <a href="#!home_console">首页</a> <a><cite>医生管理</cite></a> </span> </div> <div class="layui-card-body"> <div class="layui-form toolbar"> <button id="doctor-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> <select placeholder="选择一个应用" id="doctorState" lay-filter="role_clients"> <option value="">-请选择-</option> <option value="true">正常</option> <option value="false">试用</option> </select> <select id="hospitalName-seach" placeholder="选择一个应用" lay-filter="role_clients"> <option value="">-请选择-</option> </select> <input id="doctorTel" class="layui-input search-input" type="text" placeholder="按手机号..." />  <input id="doctorName" class="layui-input search-input" type="text" placeholder="按医生..." />  <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> </div> <!-- 数据表格 --> <table class="layui-table" id="app-table" lay-filter="app-table"></table> </div> </div> <!-- 表格操作列 --> <script type="text/html" id="doctor-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="reset">重置密码</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> <a class="layui-btn layui-btn-xs" lay-event="del">删除</a> <a class="layui-btn layui-btn-xs" lay-event="enable">停用</a> </script> <!-- 表单弹窗 --> <script type="text/html" id="app-model"> <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="hospitalName" id="hospitalName" type="hidden" class="layui-input" maxlength="20"/> <select id="hospitalId" name="hospitalId" lay-filter="getdepartment" placeholder="选择一个应用" lay-filter="role_clients"> <option value="">-请选择-</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">科室</label> <div class="layui-input-block"> <input name="departmentName" id="departmentName" placeholder="请输入应用名称" type="hidden" class="layui-input" maxlength="20"/> <select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="选择一个应用" lay-filter="role_clients"> <option value="">-请选择-</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">医生姓名</label> <div class="layui-input-block"> <input name="doctorName" type="text" class="layui-input" maxlength="20" lay-verify="required" required /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">医生的头像</label> <div class="layui-input-block"> <input name="doctorLogo" 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="doctorTel" 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="doctorRank" 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="doctorOtherLink" type="text" class="layui-input" maxlength="20"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">医生的email</label> <div class="layui-input-block"> <input name="doctorEmail" 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="doctorAbout" 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="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" 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="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" 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="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="isTop" id="isTop-fou" type="radio" value="false" title="否" 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="doctorState" id="doctorState-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="doctorState" id="doctorState-fou" type="radio" value="false" title="否" 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="serverUserName" type="text" class="layui-input" maxlength="15"/> </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="user-form-submit" lay-submit>保存</button> </div> </form> </script> <!-- 表单弹窗 添加--> <script type="text/html" id="app-model-add"> <form id="app-form-add" lay-filter="app-form-add" 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="hospitalName" id="hospitalId-add" type="hidden" class="layui-input" maxlength="20"/> <select id="hospitalName-add" name="hospitalId" lay-filter="getdepartment-add" placeholder="选择一个应用" lay-filter="role_clients"> <option value="">-请选择-</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-block"> <input name="doctorName" type="text" class="layui-input" maxlength="20" lay-verify="required" required /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">科室</label> <div class="layui-input-block"> <input name="departmentName" id="departmentName" placeholder="请输入应用名称" type="hidden" class="layui-input" maxlength="20"/> <select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="选择一个应用" lay-filter="role_clients"> <option value="">-请选择-</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">职称</label> <div class="layui-input-block"> <select id="doctorRankId" name="doctorRankId" lay-filter="doctorRankId" placeholder="选择一个职称" > <option value="">-请选择-</option> </select> <input name="doctorRank" id='doctorRank' type="hidden" 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="doctorTel" 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="doctorOtherLink" type="text" class="layui-input" maxlength="20"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">医生的email</label> <div class="layui-input-block"> <input name="doctorEmail" 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="doctorAbout" 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" id="demo"> <button type="button" class="layui-btn" id="phonto"> <i class="layui-icon"></i>上传图片 </button> <input name="doctorLogo" id="doctorLogo-add" type="hidden" class="layui-input" maxlength="20"/> <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> 预览图: <div class="layui-upload-list" id="demo2"></div> </blockquote> </div> </div> <div class="layui-form-item"> <label class="layui-form-label"> 是否置顶</label> <div class="layui-input-block"> <input name="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="isTop" id="isTop-fou" type="radio" value="false" title="否" 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="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" 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="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" 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="doctorState" id="doctorState-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/> <input name="doctorState" id="doctorState-fou" type="radio" value="false" title="否" 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="username" type="text" class="layui-input" maxlength="15"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" >登录密码</label> <div class="layui-input-block"> <input name="password" type="text" class="layui-input" maxlength="15"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" >确认密码</label> <div class="layui-input-block"> <input name="passwordSure" type="text" class="layui-input" maxlength="15"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" >销售代表名称</label> <div class="layui-input-block"> <input name="serverUserName" id="serverUserName-add" type="hidden" class="layui-input" maxlength="15"/> <select id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add" placeholder="选择一个应用" lay-filter="role_clients"> <option value="">-请选择-</option> </select> </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="user-form-submit" lay-submit>保存</button> </div> </form> </script> <script> layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', '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 upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#phonto' //绑定元素 , url: '/upload/' //上传接口 , done: function (res) { //上传完毕回调 } , error: function () { //请求异常回调 } }); //医院数据绑定在弹框里 var hospital = ""; var department = ""; //销售代表 var user = ""; //职称 var doctorRank=""; // 获取应用列表 // layer.load(2); admin.req('api-user/syshospital/findAll', JSON.stringify({ is_del: 0 }), function (data) { layer.closeAll('loading'); if (0 === data.code) { let selected = false; clientsAll = data.data; hospital = data.data; $.each(data.data, function (index, item) { if (config.clientId === item.clientId) { selected = true; } else { selected = false; } //往下拉菜单里添加元素 $('#hospitalName-seach').append(new Option(item.hospitalName, item.id, false, selected)); // $('#hospitalId').append(new Option(item.hospitalName, item.id, false, selected)); form.render('select', 'app-form'); }) form.render(); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'Post'); //职称添加数据 var getZhiCheng = function () { admin.req('api-user/sysdictionaries/findAll', JSON.stringify({ dictionariesClassId: "1248150699682988034" }), function (data) { layer.closeAll('loading'); if (0 === data.code) { let selected = false; doctorRank = data.data; $.each(data.data, function (index, item) { if (config.clientId === item.clientId) { selected = true; } else { selected = false; } //往下拉菜单里添加元素 $('#doctorRankId').append(new Option(item.dictionariesName, item.id, false, selected)); }) } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'Post'); } //获取销售代表 var getXiaoShouDaiBiao = function () { admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) { layer.closeAll('loading'); if (0 === data.code) { user = data.data; $.each(data.data, function (index, item) { //往下拉菜单里添加元素 console.log(item.nickname) $('#serverUserId-add').append(new Option(item.nickname, item.id, false, false)); }) } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'get'); } // 添加按钮点击事件 $('#doctor-btn-add').click(function () { showEditModel_add(undefined, 2); }); //时间格式 var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#test1' //指定元素 }); laydate.render({ elem: '#test2' //指定元素 }); // 渲染表格 table.render({ elem: '#app-table', url: config.base_server + 'api-user/sysdoctor', method: 'GET', headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, page: true, cols: [[ { type: 'numbers' }, { field: 'hospitalName', width: 180, sort: true, title: '医院名称' }, { field: 'doctorName', width: 200, sort: true, title: '医生姓名' }, { field: 'doctorRank', width: 180, sort: true, title: '职称' }, { field: 'username', width: 300, sort: true, title: '登录帐号' }, { field: 'doctorTel', width: 300, sort: true, title: '联系方式' }, { field: 'doctorState', width: 300, sort: true, title: '状态', templet: function (d) { return d.doctorState ? "正式" : "试用" } }, { field: 'isAnswer', width: 300, sort: true, title: '医答', templet: function (d) { return d.isAnswer ? "是" : "否" } }, { field: 'isSigning', width: 300, sort: true, title: '签约', templet: function (d) { return d.isSigning ? "是" : "否" } }, { field: 'createTime', width: 250, sort: true, title: '时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" }, { field: 'serverUserName', width: 100, sort: true, title: '销售代表' }, { width: 200, width: 300, align: 'center', toolbar: '#doctor-table-bar', sort: true, title: '操作' }, ]] }); // 工具条点击事件 table.on('tool(app-table)', function (obj) { var data = obj.data; var layEvent = obj.event; if (layEvent === 'detail') { // 查看详情 showEditModel(data, 1); } else if (layEvent === 'reset') { layer.confirm('确定重置此用户的密码吗?', function (i) { layer.close(i); layer.load(2); admin.req('api-user/users/' + obj.data.userId + '/password', {}, 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 }); } }, 'PUT'); }); } else if (layEvent === 'edit') { showEditModel(data, 3); } else if (layEvent === 'del') { layer.confirm('确定删除此用户吗?', function (i) { layer.close(i); layer.load(2); admin.req('api-user/sysdoctor/' + obj.data.id, {}, function (data) { layer.closeAll('loading'); if (data.code == 0) { layer.msg(data.msg, { icon: 1, time: 500 }); table.reload('app-table', {}); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'delete'); }); } else if (layEvent === 'enable') { layer.confirm('确定删除此用户吗?', function (i) { layer.close(i); layer.load(2); admin.req('api-user/sysdoctor/enable', JSON.stringify({ id: obj.data.id }), function (data) { layer.closeAll('loading'); if (data.code == 0) { layer.msg(data.msg, { icon: 1, time: 500 }); table.reload('app-table', {}); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'post'); }); } }); // 搜索按钮点击事件 $('#app-btn-search').click(function () { var doctorState = $('#doctorState').val(); var hospitalName = $('#hospitalName-seach').val(); var doctorTel = $('#doctorTel').val(); var doctorName = $('#doctorName').val(); table.reload('app-table', { where: { doctorState: doctorState, hospitalId: hospitalName, doctorTel: doctorTel, doctorName: doctorName } }); }); // 显示新增弹窗 var showEditModel_add = function () { layer.open({ type: 1, title: '新增', area: '450px', offset: '120px', content: $('#app-model-add').html(), success: function () { $('#app-form-add')[0].reset(); $('#app-form-add').attr('method', 'POST'); $('.layui-layer-content').css('overflow','auto'); //将医院的数据保存到下拉表 let selected = false; //获取职称的 getZhiCheng(); //获取销售代表 getXiaoShouDaiBiao(); var upload = layui.upload; //执行实例 upload.render({ elem: '#phonto', url: config.base_server + 'api-file/files-anon', accept: 'file', auto: true, headers: { "Authorization": "Bearer " + config.getToken().access_token }, before: function (obj) { layer.load(); //上传loading //预读本地文件示例,不支持ie8 obj.preview(function (index, file, result) { $(".layui-upload-img").remove(); $('#demo2').append('<img src="' + result + '" width="50px" height="50px" alt="' + file.name + '" class="layui-upload-img">') }); }, done: function (data) { layer.closeAll('loading'); $("#doctorLogo-add").val(data.url); }, error: function (data) { layer.closeAll('loading'); } }); $.each(hospital, function (index, item) { if (config.clientId === item.clientId) { selected = true; } else { selected = false; } console.log(item) $('#hospitalName-add').append(new Option(item.hospitalName, item.id, false, selected)); }) form.render(); } }); }; // 显示编辑弹窗 var showEditModel = function (data, flag) { var title = ""; if (flag == 1) { title = "查看详情"; } else if (flag == 2) { title = "新增"; } else if (flag == 3) { title = "编辑"; } layer.open({ type: 1, title: title, area: '450px', offset: '120px', content: $('#app-model').html(), success: function () { $('#app-form')[0].reset(); $('#app-form').attr('method', 'POST'); //将医院的数据保存到下拉表 let selected = false; $.each(hospital, function (index, item) { if (config.clientId === item.clientId) { selected = true; } else { selected = false; } //往下拉菜单里添加元素 $('#hospitalId').append(new Option(item.hospitalName, item.id, false, selected)); }) //将科室的数据绑定到里面 if (flag != 2) { getdepartment(data.hospitalId); } if (data) { if (data.isAnswer) { $("#isAnswer-shi").attr('checked', true); } else { $("#isAnswer-fou").attr('checked', true); } if (data.isSigning) { $("#isSigning-shi").attr('checked', true); } else { $("#isSigning-fou").attr('checked', true); } if (data.isTop) { $("#isTop-shi").attr('checked', true); } else { $("#isTop-fou").attr('checked', true); } if (data.doctorState) { $("#doctorState-shi").attr('checked', true); } else { $("#doctorState-fou").attr('checked', true); } form.val('app-form', data); if (flag == 1) { //将确定隐藏 doctorState-shi $("#sure").hide(); //将所有的设置为只读 $('#app-form').find('input').attr('readonly', true); $('#app-form').find('select,input[type="radio"]').attr('disabled', true); } else { $("#sure").show(); $('#app-form').attr('method', 'POST'); } } } }); }; // 表单提交事件 form.on('submit(user-form-submit)', function (data) { layer.load(2); data.field.hospitalId = parseInt(data.field.hospitalId); admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) { layer.closeAll('loading'); if (data.code == 0) { // layer.msg(data.msg, { icon: 1, time: 500 }); layer.closeAll(); table.reload('app-table', {}); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, "POST"); return false; }); //更新 点击医院触发的事件 form.on('select(getdepartment)', function (data) { //将医院名称赋值 $.each(hospital, function (index, item) { if (item.id == data.value) { $('#hospitalName').val(item.hospitalName); } }) // getdepartment(data.value); }); //新增----点击医院触发的事件 form.on('select(getdepartment-add)', function (data) { //将医院名称赋值 $.each(hospital, function (index, item) { if (item.id == data.value) { $('#hospitalId-add').val(item.hospitalName); console.log($('#hospitalId-add').val()) } }) // getdepartment(data.value); }); //将新增 中的 serverUserName 赋值 form.on('select(serverUserId-add)', function (data) { //将医院名称赋值 $.each(user, function (index, item) { if (item.id == data.value) { $('#serverUserName-add').val(item.nickname); console.log($('#serverUserName-add').val()) } }) // }); //新增 点击职称的触发事件 form.on('select(doctorRankId)', function (data) { //将部门名称赋值 $.each(doctorRank, function (index, item) { if (item.id == data.value) { console.log(12312312312) $('#doctorRank').val(item.dictionariesName); console.log($('#doctorRank').val()) } }) }); //新增 和 更新 科室触发的事件 form.on('select(departmentId)', function (data) { //将部门名称赋值 $.each(department, function (index, item) { if (item.id == data.value) { $('#departmentName').val(item.departmentName); } }) // // getdepartment(data.value); }); //获取科室 var getdepartment = function (data) { admin.req('api-user/sysdepartment/findListByHospitalId', { id: data }, function (data) { layer.closeAll('loading'); if (0 === data.code) { department = data.data; $('#departmentId').empty(); if(data.data.length>0){ $('#departmentName').val(data.data[0].departmentName); } $.each(data.data, function (index, item) { //往下拉菜单里添加元素 $('#departmentId').append(new Option(item.departmentName, item.id, false, false)); form.render('select', 'app-form'); }) form.render(); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'get'); } }); </script> kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
@@ -24,7 +24,13 @@ <!-- 表格操作列 --> <script type="text/html" id="businessRecords-table-bar"> <select> <option></option </select> <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="reset">重置密码</a> <a class="layui-btn layui-btn-xs" lay-event="del">删除</a> </script> <!-- 表单弹窗 -->