forked from kidgrow-microservices-platform

zhaoxiaohao
2020-09-18 daa697719eb0ddfd170f1ab94c5422a4f5b93951
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
New file
@@ -0,0 +1,619 @@
<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">
            <div class="layui-form-item">
                <div class="layui-inline" style="margin-bottom: -25px;">
                    <input id="doctorTel" class="layui-input search-input" type="text" placeholder="按手机号" />&emsp;
                    <input id="doctorName" class="layui-input search-input" type="text" placeholder="按医生名" />&emsp;
                    <select id="doctorState" lay-filter="role_clients">
                        <option value="">-医院状态-</option>
                        <option value="1">正常</option>
                        <option value="0">试用</option>
                    </select>&emsp;
                    <input name="hospitalName" id="hospitalName-seach" placeholder="按医院名称" type="text"
                        class="layui-input search-input" maxlength="50" autocomplete="off" />&emsp;
                </div>
                <button id="app-btn-search" class="layui-btn icon-btn permissions" layt="abc"
                    permissions="sysdoctor-list"><i class="layui-icon">&#xe615;</i>搜索</button>
                <button id="doctor-btn-add" class="layui-btn icon-btn permissions" permissions="sysdoctor-edit"><i
                        class="layui-icon">&#xe654;</i>添加</button>
                <!-- 数据表格 -->
                <table class="layui-table" id="app-table" lay-filter="app-table"></table>
            </div>
        </div>
    </div>
</div>
<input id="hospitalId" type="hidden" />
<!-- 表格操作列 -->
<script type="text/html" id="doctor-table-bar">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>
    {{# if (d.doctorType !=2){}}
    <button class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="users-edit"
        lay-event="reset">重置密码</button>
    {{#}}}
    <button class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="sysdoctor-edit"
        lay-event="edit">修改</button>
    <button class="layui-btn layui-btn-danger layui-btn-xs permissions" permissions="sysdoctor-del" lay-event="del">删除</button>
</script>
<!-- 表格状态列 -->
<script type="text/html" id="doctor-tpl-state">
    <input type="checkbox" lay-filter="doctor-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="正常|已停用"
        {{d.enabled==true?'checked':''}} />
</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 style="display:flex">
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label" style="width: 75px;">所在医院</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text"
                            class="layui-input" maxlength="50" lay-verify="required" required style="width: 150px;" />
                        <input type="hidden" name="hospitalId" id="hospitalId" />
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">科室</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="departmentName" id="departmentName" placeholder="请选择科室" 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-inline">
                    <label class="layui-form-label">医生类型</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <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>
        <div style="display:flex">
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">姓名</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="doctorName" type="text" class="layui-input" maxlength="20" lay-verify="required"
                            required style="width: 150px;" />
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">职称</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <!-- <select id="doctorRankId" name="doctorRankId" lay-filter="doctorRankId" placeholder="选择一个职称"
                        lay-verify="required" required>
                        <option value="">-请选择-</option>
                    </select> -->
                        <input name="doctorRank" id='doctorRank' class="layui-input" maxlength="20" />
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">是否是管理员</label>
                    <div class="layui-input-block">
                        <input name="isAdminUser" id="isAdminUser-shi" type="radio" value="true" title="是"
                            class="layui-input" />
                        <input name="isAdminUser" id="isAdminUser-fou" type="radio" value="false" title="否"
                            class="layui-input" />
                    </div>
                </div>
            </div>
        </div>
        <div style="display:flex">
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">联系电话</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="doctorTel" id="doctorTel-add" type="text" class="layui-input" maxlength="20"
                            lay-verify="required|phone" required style="width: 150px;" />
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">电话</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="doctorOtherLink" type="text" class="layui-input" maxlength="20" />
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">Email</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="doctorEmail" type="text" class="layui-input" maxlength="50"
                            lay-verify="email"  autocomplete="off"/>
                    </div>
                </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: 697px;"></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">
                <div class="layui-inline">
                    <label class="layui-form-label">登录帐号</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="username" id="username" readonly type="text" class="layui-input" maxlength="20"
                            lay-verify="required" required />
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">销售代表</label>
                    <div class="layui-input-block" style="width: 150px;">
                        <input name="serverUserName" id="serverUserName-add" class="layui-input" maxlength="15" />
                    </div>
                </div>
            </div>
        </div>
        <div style="display:flex">
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">医生的头像</label>
                    <div class="layui-input-block" id="demo" style="width: 150px;">
                        <img id="doctorLogo" src="" width="100px" height="100px">
                    </div>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">资质证书</label>
                    <div class="layui-input-block" id="demo" style="width: 150px;">
                        <img id="doctorCcie" src="" width="200px" height="200px">
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-form-item model-form-footer">
            <button class="layui-btn permissions" ew-event="closeDialog" id="shen_he" type="button">审核通过</button>
            <button class="layui-btn permissions" ew-event="closeDialog" type="button" id="sure">关闭</button>
        </div>
    </form>
</script>
<script>
    layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', 'admin', 'autocomplete', 'formSelects'],
        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 autocomplete = layui.autocomplete;
            var formSelects = layui.formSelects;
            var $ = layui.jquery;
            form.verify({
                confirmPass: function (value) {
                    if ($('input[name=password]').val() !== value) return '两次密码输入不一致!';
                }
            });
            //医院数据绑定在弹框里
            var hospital = "";
            var department = "";
            //销售代表
            var user = "";
            //职称
            var doctorRank = "";
            // 获取应用列表
            // layer.load(2);
            admin.req('api-user/syshospital/findAllByMap', 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));
                        form.render('select', 'app-form');
                    })
                    form.render();
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 2000
                    });
                }
            }, 'Post');
            //自动完成-医院名称
            autocomplete.render({
                elem: $('#hospitalName-seach')[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);
                }
            });
            // 修改company状态
            var updata_enable = function (obj) {
                layer.confirm('确定审核通过吗?', function (i) {
                    admin.req('api-user/sysdoctor/enable', JSON.stringify({
                        id: obj.id,
                        enabled: true
                    }), function (data) {
                        layer.closeAll('loading');
                        if (data.code == 0) {
                            layer.msg(data.msg, {
                                icon: 1,
                                time: 2000
                            });
                            parent.layui.table.reload('app-table', {});
                        } else {
                            layer.msg(data.msg, {
                                icon: 2,
                                time: 2000
                            });
                            $(obj.elem).prop('checked', !obj.elem.checked);
                            form.render('checkbox');
                        }
                    }, '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: 2000
                        });
                    }
                }, '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: 2000
                        });
                    }
                }, 'get');
            }
            // 添加按钮点击事件
            $('#doctor-btn-add').click(function () {
                showEditModel_add("添加");
            });
            //时间格式
            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: [
                    [{
                            field: 'hospitalName',
                            width: "200",
                            title: '医院名称',
                            fixed: 'left'
                        },
                        {
                            field: 'departmentName',
                            width: "150",
                            title: '科室',
                            fixed: 'left'
                        },
                        {
                            field: 'doctorName',
                            width: "100",
                            title: '医生姓名',
                            fixed: 'left'
                        },
                        {
                            field: 'doctorRank',
                            width: "100",
                            title: '职称'
                        },
                        {
                            field: 'username',
                            width: "150",
                            title: '登录帐号'
                        },
                        {
                            field: 'doctorTel',
                            width: "150",
                            title: '联系方式'
                        },
                        {
                            field: 'isAnswer',
                            width: "75",
                            title: '医答',
                            templet: function (d) {
                                return d.isAnswer ? "是" : "否"
                            }
                        },
                        {
                            field: 'isSigning',
                            width: "75",
                            title: '签约',
                            templet: function (d) {
                                return d.isSigning ? "是" : "否"
                            }
                        },
                        {
                            field: 'isAdminUser',
                            width: "100",
                            title: '是否管理员',
                            templet: function (d) {
                                return d.isAdminUser ? "管理员" : "普通医生"
                            }
                        },
                        {
                            field: 'createTime',
                            width: "120",
                            sort: true,
                            title: '创建时间',
                            templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd HH:mm')}}</div>"
                        },
                        {
                            field: 'serverUserName',
                            width: "120",
                            title: '销售代表'
                        },
                        {
                            width: "260",
                            align: 'center',
                            toolbar: '#doctor-table-bar',
                            title: '操作',
                            fixed: 'right'
                        },
                    ]
                ],
                done: function (res, curr, count) {
                    permissionsInput(res, config);
                }
            });
            // 显示编辑弹窗
            var showEditModel = function (data) {
                layer.open({
                    type: 1,
                    title: '详情',
                    area: '900px',
                    offset: '120px',
                    content: $('#app-model').html(),
                    id: 'LAY_layuipro',
                    success: function () {
                        $('#app-form')[0].reset();
                        if (data.isAdminUser) {
                            $('#isAdminUser-shi').prop("checked", true)
                        } else {
                            $('#isAdminUser-fou').prop("checked", true)
                        }
                        if (data.isTop) {
                            $('#isTop-shi').prop("checked", true)
                        } else {
                            $('#isTop-fou').prop("checked", true)
                        }
                        if (data.isAnswer) {
                            $('#isAnswer-shi').prop("checked", true)
                        } else {
                            $('#isAnswer-fou').prop("checked", true)
                        }
                        if (data.isSigning) {
                            $('#isSigning-shi').prop("checked", true)
                        } else {
                            $('#isSigning-fou').prop("checked", true)
                        }
                        $('#app-form').attr('method', 'POST');
                        if (data) {
                            $('#doctorLogo').prop("src", data.doctorLogo);
                            $('#doctorCcie').prop("src", data.doctorCcie);
                            if (!data.enabled) {
                                $('#shen_he').show();
                            } else {
                                $('#shen_he').hide();
                            }
                            form.val('app-form', data);
                            $('#app-form').find('input,select,textarea').prop('readonly', true);
                            $('#app-form').find('select').prop('disabled', true);
                            $('#app-form').find('input[type="radio"]').prop('disabled', true);
                            $('#app-form').attr('method', 'POST');
                            form.render();
                        }
                        //点击审核通过按钮
                        $('#shen_he').click(function () {
                            updata_enable(data);
                        })
                    }
                });
            }
            // 工具条点击事件
            table.on('tool(app-table)', function (obj) {
                var data = obj.data;
                var layEvent = obj.event;
                if (layEvent === 'detail') { // 查看详情
                    showEditModel(data);
                } 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.alert("密码重置为:" + data.data, {
                                    icon: 1
                                });
                            } else {
                                layer.msg(data.msg, {
                                    icon: 2,
                                    time: 2000
                                });
                            }
                        }, 'PUT');
                    });
                } else if (layEvent === 'edit') {
                    showEditModel_add("编辑", data);
                } 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: 2000
                                });
                                table.reload('app-table', {});
                            } else {
                                layer.msg(data.msg, {
                                    icon: 2,
                                    time: 2000
                                });
                            }
                        }, 'delete');
                    });
                }
            });
            // 搜索按钮点击事件
            $('#app-btn-search').click(function () {
                if (strUtil.isEmpty($("#hospitalName-seach").val())) {
                    $("#hospitalId").val("");
                }
                var doctorState = $('#doctorState').val();
                var hospitalName = $("#hospitalName-seach").val();
                var doctorTel = $('#doctorTel').val();
                var doctorName = $('#doctorName').val();
                table.reload('app-table', {
                    where: {
                        doctorState: doctorState,
                        hospitalName: hospitalName,
                        doctorTel: doctorTel,
                        doctorName: doctorName
                    }
                });
            });
            // 显示新增弹窗
            var showEditModel_add = function (title, data) {
                admin.putTempData('t_doctor', data);
                admin.popupCenter({
                    title: title,
                    path: 'pages/opration/doctor_form.html',
                    area: '900px',
                    offset: '0px',
                    finish: function () {}
                });
            };
        });
</script>