forked from kidgrow-microservices-platform

houruijun
2020-07-22 803cd19fa2a3b8185fd64309d9ba4a159bed50e1
修改医生管理的添加医生部分的页面和功能
7 files modified
1 files added
1112 ■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/BusinessRecordsServiceImpl.java 2 ●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java 9 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java 2 ●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java 3 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/businessRecords.html 153 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html 447 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html 494 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html 2 ●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/BusinessRecordsServiceImpl.java
@@ -66,7 +66,7 @@
        BusinessRecords businessRecords=new BusinessRecords();
        businessRecords.setAppName(httpServletRequest.getHeader(SecurityConstants.TENANT_HEADER));
        businessRecords.setUserId(Long.valueOf(httpServletRequest.getHeader(SecurityConstants.USER_ID_HEADER)));
        businessRecords.setUserName(httpServletRequest.getHeader(SecurityConstants.USER_REAL_NAME));
        businessRecords.setUserName(httpServletRequest.getHeader(SecurityConstants.USER_HEADER));
        businessRecords.setRecordTitle(recordTitle);
        businessRecords.setRecordIp(httpServletRequest.getHeader(CommonConstant.USER_AGENT_IP));
        businessRecords.setRecordDetail(recordNote);
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
@@ -1,6 +1,5 @@
package com.kidgrow.usercenter.model;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -105,7 +104,6 @@
    /**
     * 是否删除,1删除,0未删除
     */
    @TableLogic
    private Boolean isDel;
    /**
     * 是否管理员 0否 1是
@@ -114,9 +112,14 @@
    /**
     * 医生状态 1正常 0试用
     */
    @NotNull(message = "医生状态 1正常 0试用不能为空")
    @NotNull(message = "医生状态不能为空")
    private Boolean doctorState;
    /**
     * 医生类型 0H+C端都可用   1H端   2C端 默认2
     */
    @NotNull(message = "医生类型不能为空")
    private Integer doctorType;
    /**
     * 启用禁用状态,1启用,0停用
     */
    private Boolean enabled;
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
@@ -6,7 +6,7 @@
@Data
public class SysDoctorDto extends  SysDoctorVo {
    private String username;
    //private String username;
    private String password;
    private List<Long> roles;
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -826,6 +826,7 @@
                                sysDoctor.setDepartmentName(userRegVo.getDepartmentName());
                                sysDoctor.setDoctorRank(userRegVo.getDoctorRank());
                                sysDoctor.setDoctorRankId(userRegVo.getDoctorRankId());
                                sysDoctor.setDoctorType(1);
                                sysDoctor.setCreateUserId(isReg ? createUserId : sysUserd.getId());
                                sysDoctor.setCreateUserName(isReg ? createUserName : sysUserd.getUsername());
                                if (isReg) {
@@ -839,6 +840,8 @@
                                sysDoctor.setDoctorName(userRegVo.getNickname());
                                sysDoctor.setServerUserId(isReg ? createUserId : sysUserd.getId());
                                sysDoctor.setServerUserName(isReg ? createUserName : sysUserd.getUsername());
                                sysDoctor.setIsAdminUser(false);
                                sysDoctor.setEnabled(false);
                                if (sysDoctorMapper.insert(sysDoctor) == 1) {
                                    //非自主注册的 返回信息带密码
                                    if (!isReg) {
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/businessRecords.html
@@ -8,67 +8,15 @@
    </div>
    <div class="layui-card-body">
        <div class="layui-form toolbar">
            <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="请输入标题" />&emsp;
            <input type="text" class="layui-input search-input" id="test1"> 至 <input type="text"
                class="layui-input search-input" id="test2"> &emsp;
            <select id="role_clients" placeholder="选择一个应用" lay-filter="role_clients">
                <option value="">-请选择-</option>
            </select>
            <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="按内容模糊查找..." />&emsp;
            <input type="text" class="layui-input search-input" id="test1" placeholder="开始时间"> 至 <input type="text"
                class="layui-input search-input" id="test2"  placeholder="结束时间"> &emsp;
            <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button>
        </div>
        <!-- 数据表格 -->
        <table class="layui-table" id="app-table" lay-filter="app-table"></table>
    </div>
</div>
<!-- 表格操作列 -->
<script type="text/html" id="businessRecords-table-bar">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</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="recordTitle" disabled="true" 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="userName" disabled="true" placeholder="请输入应用名称" 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="appName" disabled="true" type="text" class="layui-input" maxlength="20"
                       lay-verify="required" required />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">ip</label>
            <div class="layui-input-block">
                <input name="recordIp" disabled="true" 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="recordDetail" disabled="true" 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>
        </div>
    </form>
</script>
<script>
    layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin'], function () {
@@ -79,27 +27,6 @@
        var util = layui.util;
        var admin = layui.admin;
        // 获取应用列表
        // layer.load(2);
        admin.req('api-user/users/findAll', {}, function (data) {
            layer.closeAll('loading');
            if (0 === data.code) {
                let selected = false;
                clientsAll = data.data;
                $.each(data.data, function (index, item) {
                    if (config.clientId === item.clientId) {
                        selected = true;
                    } else {
                        selected = false;
                    }
                    //往下拉菜单里添加元素
                    $('#role_clients').append(new Option(item.username, item.id, false, selected));
                })
                form.render();
            } else {
                layer.msg(data.msg, { icon: 2, time: 500 });
            }
        }, 'Post');
        //时间格式
        var laydate = layui.laydate;
@@ -119,31 +46,18 @@
            headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
            page: true,
            cols: [[
                { type: 'numbers' },
                { field: 'userName', width: 180, sort: true, title: '用户' },
                { field: 'appName', width: 200, sort: true, title: '应用名' },
                { field: 'recordIp', width: 180, sort: true, title: 'IP' },
                { field: 'recordTitle', width: 300, sort: true, title: '标题' },
                { field: 'id', width: 250, align: 'center', toolbar: '#businessRecords-table-bar', sort: true, title: '查看详情' },// 0就诊数据 1筛查
                { field: 'createTime', width: 250, sort: true, title: '时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd HH:mm')}}</div>" }
                { field: 'userName', width: 180,  title: '用户' },
                { field: 'appName', width: 200, title: '应用名' },
                { field: 'recordIp', width: 180,title: 'IP' },
                { field: 'recordTitle', width: 300,title: '日志内容' },
                { field: 'createTime', width: 250, sort: true, title: '日志时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd HH:mm')}}</div>" }
            ]],
            done:function(res){
                permissionsInput(res,config);
            }
        });
        // 工具条点击事件
        table.on('tool(app-table)', function (obj) {
            var data = obj.data;
            var layEvent = obj.event;
            if (layEvent === 'detail') { // 查看详情
                showEditModel(data);
            }
        });
        // 搜索按钮点击事件
        $('#app-btn-search').click(function () {
            var userId = $('#role_clients').val();
            var key = $('#app-edit-search').val();
            var startTime = $('#test1').val();
            var endTime = $('#test2').val();
@@ -155,7 +69,7 @@
                }
            }
            table.reload('app-table', { where: { recordTitle: key, startTime: startTime, endTime: endTime, userId: userId } });
            table.reload('app-table', { where: { recordTitle: key, startTime: startTime, endTime: endTime} });
        });
        //比较日期大小
        function compareDate(logintime, logouttime) {
@@ -173,54 +87,5 @@
                }
            }
        }
        // 导出
        $('#app-btn-export').click(function () {
            var url = config.base_server + 'api-opration/dataneed/export';
            var xhr = new XMLHttpRequest();
            xhr.open('POST', url, true);
            xhr.responseType = "blob";
            xhr.setRequestHeader("client_type", "DESKTOP_WEB");
            xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token);
            xhr.onload = function () {
                if (this.status == 200) {
                    var fileName = "user.xlsx";
                    var blob = this.response;
                    var a = document.createElement('a');
                    a.innerHTML = fileName;
                    // 指定生成的文件名
                    a.download = fileName;
                    a.href = URL.createObjectURL(blob);
                    document.body.appendChild(a);
                    var evt = document.createEvent("MouseEvents");
                    evt.initEvent("click", false, false);
                    a.dispatchEvent(evt);
                    document.body.removeChild(a);
                }
            }
            xhr.send();
        });
        // // 显示编辑弹窗
        var showEditModel = function (data) {
            layer.open({
                type: 1,
                title: '查看详情',
                area: '450px',
                offset: '120px',
                content: $('#app-model').html(),
                success: function () {
                    $('#app-form')[0].reset();
                    $('#app-form').attr('method', 'POST');
                    if (data) {
                        $("input[name='clientId']").attr('disabled', true);
                        $("input[name='clientId']").attr('class', "layui-input layui-disabled");
                        $("input[name='webServerRedirectUri']").attr('disabled', true);
                        $("input[name='webServerRedirectUri']").attr('class', "layui-input layui-disabled");
                        form.val('app-form', data);
                        // $('#app-form').attr('method', 'POST');
                    }
                }
            });
        };
    });
</script>
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
@@ -173,171 +173,6 @@
    </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 style="display:flex">
        <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-verify="required" required >
                        <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>
    <div style="display:flex">
        <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-verify="required" required>
                    <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="选择一个职称" lay-verify="required" required>
                    <option value="">-请选择-</option>
                </select>
                <input name="doctorRank" id='doctorRank' type="hidden" class="layui-input" maxlength="20"/>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <div class="layui-form-item">
            <label class="layui-form-label">联系电话</label>
            <div class="layui-input-block">
                <input name="doctorTel" id="doctorTel-add" type="text" class="layui-input" maxlength="20" lay-verify="required|phone" required/>
            </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>
    <div style="display:flex">
        <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" lay-verify="required|email" required/>
            </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>
    <div style="display:flex">
        <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-verify="required" required>
                    <option value="">-请选择-</option>
                </select>
            </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>
    <div style="display:flex">
        <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>
    <div style="display:flex">
         <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" id="username" readonly type="text" class="layui-input" maxlength="15" lay-verify="required" required/>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <div class="layui-form-item">
            <label class="layui-form-label" >登录密码</label>
            <div class="layui-input-block">
                <input name="password"  type="password" lay-verify="required" class="layui-input" maxlength="15" lay-verify="required|phone" required/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label" >确认密码</label>
            <div class="layui-input-block">
                <input name="passwordSure"  type="password" lay-verify="required|confirmPass" class="layui-input" maxlength="15"/>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <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">&#xe67c;</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">
                <select name="roleId" xm-select="roleId" lay-verify="required">
                </select>
            </div>
        </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 permissions" permissions="sysdoctor-edit" id="sure" lay-filter="user-form-submit" lay-submit>保存</button>
        </div>
    </form>
</script>
<script>
    layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', 'admin', 'autocomplete','formSelects'], function () {
@@ -347,7 +182,6 @@
        var layer = layui.layer;
        var util = layui.util;
        var admin = layui.admin;
        var upload = layui.upload;
        var autocomplete = layui.autocomplete;
        var formSelects = layui.formSelects;
        var $ = layui.jquery;
@@ -550,287 +384,16 @@
            var doctorName = $('#doctorName').val();
            table.reload('app-table', { where: { doctorState: doctorState, hospitalName: hospitalName, doctorTel: doctorTel, doctorName: doctorName } });
        });
        //获取角色
        var get_role=function(){
            admin.req('api-user/findByMap?tenant_id=hospital',{}, function (data) {
            layer.closeAll('loading');
            if (0 == data.code) {
                // 渲染多选下拉框
                var roleSelectData = new Array();
                for (var i = 0; i < data.data.length; i++) {
                    roleSelectData.push({name: data.data[i].name, value: data.data[i].id});
                }
                formSelects.data('roleId', 'local', {arr: roleSelectData});
                // 回显user数据
                var user = admin.getTempData('t_user');
                $('#user-form').attr('method', 'POST');
                if (user) {
                    form.val('user-form', user);
                    $('#user-form').attr('method', 'POST');
                    var rds = new Array();
                    for (var i = 0; i < user.roles.length; i++) {
                        rds.push(user.roles[i].id);
                    }
                    formSelects.value('roleId', rds);
                }
            } else {
                layer.msg('获取角色失败', {icon: 2, time: 500});
            }
        }, 'GET');
        }
        // 显示新增弹窗
        var showEditModel_add = function () {
            layer.open({
                type: 1,
                title: '新增',
                area: '600px',
                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();
                    //获取角色
                    get_role();
                    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();
                    $("#username").blur(function () {
                        username_is_usered("username");
                    })
                    $("#doctorTel-add").blur(function () {
                        $("#username").val($("#doctorTel-add").val())
                        username_is_usered("username");
                    })
            admin.popupCenter({
                title: '编辑医生',
                path: 'pages/opration/doctor_form.html',
                area: '800px',
                finish: function () {
                }
            });
        };
        //判断用户名是否被使用
        var username_is_usered=function(username_id){
            var username=$("#"+username_id).val()
            admin.req('api-user/users/findCountByMap',JSON.stringify({username:username}),  function (data) {
                        if (data.code == 0) {
                            if(data.data>0){
                                $("#"+username_id).val("")
                                layer.msg("该登录帐号已经使用",{ icon: 2, time: 500 })
                            }
                        } else {
                            layer.msg(data.msg, { icon: 2, time: 500 });
                        }
                    }, 'post');
        }
        // 显示编辑弹窗
        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: '650px',
                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();
                            $("#phonto").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);
            if(data.field.roleId!=null&&data.field.roleId!=""){
                data.field.roles=data.field.roleId.split(',');
            }
            data.field.roleId=null;
            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/doctor_form.html
New file
@@ -0,0 +1,494 @@
<form id="app-form-add" lay-filter="app-form-add" class="layui-form model-form">
    <input name="id" type="hidden" />
    <div style="display:flex">
        <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 style="width: 175px;"/>
    <input type="hidden" name="hospitalId" id="hospitalId"/>
            </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-verify="required" required>
                    <option value="">-请选择科室-</option>
                </select>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">医生类型</label>
            <div class="layui-input-block">
                <select id="doctorType" name="doctorType" lay-filter="doctorType"
                    lay-verify="required" required>
                    <option value="2" selected>C端医生</option>
                    <option value="1">H端医生</option>
                    <option value="0">C端+H端</option>
                </select>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <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  style="width: 175px;"/>
            </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="选择一个职称"
                    lay-verify="required" required>
                    <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">
                <select name="roleId" xm-select="roleId" lay-verify="required">
                </select>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <div class="layui-form-item">
            <label class="layui-form-label">联系电话</label>
            <div class="layui-input-block">
                <input name="doctorTel" id="doctorTel-add" type="text" class="layui-input" maxlength="20"
                    lay-verify="required|phone" required  style="width: 175px;"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">联系电话2</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" lay-verify="required|email"
                    required />
            </div>
        </div>
    </div>
    <div style="display:flex">
        <div class="layui-form-item">
            <label class="layui-form-label">医生简介</label>
            <div class="layui-input-block">
                <textarea name="doctorAbout" id="doctorAbout" class="layui-textarea" maxlength="300" style="width: 650px;"></textarea>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <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"/>
                <input name="doctorState" id="doctorState-fou" type="radio" value="false" title="试用" class="layui-input" />
            </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"/>
                <input name="isTop" id="isTop-fou" type="radio" value="false" title="否" class="layui-input" />
            </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"/>
                <input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" class="layui-input" />
            </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"/>
                <input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" class="layui-input"/>
            </div>
        </div>
    </div>
    <div style="display:flex">
        <div class="layui-form-item">
            <label class="layui-form-label">登录帐号</label>
            <div class="layui-input-block">
                <input name="username" id="username" readonly 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="password" type="password" lay-verify="required" class="layui-input" maxlength="20"
                    lay-verify="required|phone" required />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">确认密码</label>
            <div class="layui-input-block">
                <input name="passwordSure" type="password" lay-verify="required|confirmPass" class="layui-input"
                    maxlength="20" />
            </div>
        </div>
    </div>
    <div style="display:flex">
        <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">&#xe67c;</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="serverUserName" id="serverUserName-add" type="hidden" class="layui-input" maxlength="15" />
                <select id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add"
                    lay-verify="required" required>
                    <option value="">-请选择-</option>
                </select>
            </div>
        </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 permissions" permissions="sysdoctor-edit" id="sure" lay-filter="user-form-submit"
            lay-submit>保存</button>
    </div>
</form>
<script>
    layui.use(['form', 'laydate', 'util', 'config', 'admin', 'autocomplete', 'formSelects'], function () {
        var form = layui.form;
        var config = layui.config;
        var layer = layui.layer;
        var util = layui.util;
        var admin = layui.admin;
        var upload = layui.upload;
        var autocomplete = layui.autocomplete;
        var formSelects = layui.formSelects;
        var $ = layui.jquery;
        //获取角色
        var get_role = function () {
            admin.req('api-user/findByMap?tenant_id=hospital', {}, function (data) {
                layer.closeAll('loading');
                if (0 == data.code) {
                    // 渲染多选下拉框
                    var roleSelectData = new Array();
                    for (var i = 0; i < data.data.length; i++) {
                        roleSelectData.push({
                            name: data.data[i].name,
                            value: data.data[i].id
                        });
                    }
                    formSelects.data('roleId', 'local', {
                        arr: roleSelectData
                    });
                    // 回显user数据
                    var user = admin.getTempData('t_user');
                    $('#user-form').attr('method', 'POST');
                    if (user) {
                        form.val('user-form', user);
                        $('#user-form').attr('method', 'POST');
                        var rds = new Array();
                        for (var i = 0; i < user.roles.length; i++) {
                            rds.push(user.roles[i].id);
                        }
                        formSelects.value('roleId', rds);
                    }
                } else {
                    layer.msg('获取角色失败', {
                        icon: 2,
                        time: 500
                    });
                }
            }, 'GET');
        }
        //判断用户名是否被使用
        var username_is_usered = function (username_id) {
            var username = $("#" + username_id).val()
            admin.req('api-user/users/findCountByMap', JSON.stringify({
                username: username
            }), function (data) {
                if (data.code == 0) {
                    if (data.data > 0) {
                        $("#" + username_id).val("")
                        layer.msg("该登录帐号已经使用", {
                            icon: 2,
                            time: 500
                        })
                    }
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 500
                    });
                }
            }, 'post');
        }
        // // 显示编辑弹窗
        // 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: '650px',
        //         offset: '120px',
        //         content: $('#app-model').html(),
        //         success: function () {
        //             $('#app-form')[0].reset();
        //             $('#app-form').attr('method', 'POST');
        //             //将医院的数据保存到下拉表
        //             let selected = false;
        //             //将科室的数据绑定到里面
        //             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();
        //                     $("#phonto").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($("#hospitalId").val());
            if (data.field.roleId != null && data.field.roleId != "") {
                data.field.roles = data.field.roleId.split(',');
            }
            data.field.roleId = null;
            debugger
            admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) {
                layer.closeAll('loading');
                if (data.code == 0) {
                    layer.closeAll();
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 3000
                    });
                }
            }, "POST");
            return false;
        });
        //将新增  中的 serverUserName 赋值
        form.on('select(serverUserId-add)', function (data) {
            //将医院名称赋值
            $('#serverUserName-add').val($(this)[0].innerHTML);
        });
        //新增   点击职称的触发事件
        form.on('select(doctorRankId)', function (data) {
            //将部门名称赋值
            $('#doctorRank').val($(this)[0].innerHTML);
        });
        //新增 和  更新   科室触发的事件
        form.on('select(departmentId)', function () {
            //将部门名称赋值
            $('#departmentName').val($(this)[0].innerHTML);
        });
        //获取科室
        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');
        }
        //职称添加数据
        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) {
                        //往下拉菜单里添加元素
                        $('#serverUserId-add').append(new Option(item.nickname, item.id,
                            false, false));
                    })
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 500
                    });
                }
            }, 'get');
        }
        // 显示新增弹窗
        var loadEditData = function () {
            $('#app-form-add')[0].reset();
            $('#app-form-add').attr('method', 'POST');
            $('.layui-layer-content').css('overflow', 'auto');
            //将医院的数据保存到下拉表
            let selected = false;
            //获取职称的
            getZhiCheng();
            //获取销售代表
            getXiaoShouDaiBiao();
            //获取角色
            get_role();
            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');
                }
            });
            form.render();
            $("#username").blur(function () {
                username_is_usered("username");
            })
            $("#doctorTel-add").blur(function () {
                $("#username").val($("#doctorTel-add").val())
                username_is_usered("username");
            })
        };
        loadEditData();
        //自动完成-医院名称
        autocomplete.render({
            elem: $('#hospitalName')[0],
            keywordsName: 'hospitalName', //查询关键字名称
            url: config.base_server + 'api-user/syshospital/findByName',
            template_val: '{{d.hospitalName}}', //选择后文本框显示的数据字段
            template_txt: "<div class='layui-table-cell'>{{d.hospitalName}}</div>", //下拉列表模板
            onselect: function (resp) {
                $("#hospitalId").val(resp.id);
                //重新装载科室
                getdepartment(resp.id);
            }
        });
    });
</script>
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -468,7 +468,7 @@
                                layer.msg(data.msg, {
                                    icon: 2,
                                    time: 500
                                });
                                });
                            }
                        }, 'get');
                        form.render();