forked from kidgrow-microservices-platform

houruijun
2020-07-22 17112a33c4c154237fd0a07fc636d16c6e590fcd
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -1,55 +1,96 @@
<fieldset class="layui-elem-field layui-field-title">
    <legend>医院基本信息</legend>
</fieldset>
<form id="hospital-form" lay-filter="hospital-form" class="layui-form model-form" method="POST">
    <div class="layui-form-item">
        <label class="layui-form-label">医院名称</label>
        <div class="layui-input-block">
            <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input"
                maxlength="50" lay-verify="required" required autocomplete="on" />
        <div class="layui-row">
            <div class="layui-col-sm7">
                <label class="layui-form-label">医院名称</label>
                <div class="layui-input-block">
                    <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input"
                        maxlength="50" lay-verify="required" required style="width: 390px;" />
                </div>
            </div>
            <div class="layui-col-sm3">
                <label class="layui-form-label">医院简称</label>
                <div class="layui-input-block">
                    <input name="hospitalShortName" type="text" class="layui-input" maxlength="20"
                        style="width: 200px;" />
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">医院简称</label>
        <div class="layui-input-block">
            <input name="hospitalShortName" type="text" class="layui-input" maxlength="50" />
        <div class="layui-row">
            <div class="layui-col-sm4">
                <label class="layui-form-label">科室名称</label>
                <div class="layui-input-block">
                    <input name="departmentName" id="departmentName" placeholder="科室名称" type="text" class="layui-input"
                        maxlength="20" lay-verify="required" required style="width: 175px;" />
                    &emsp;</div>
            </div>
            <div class="layui-col-sm3">
                <label class="layui-form-label">联系电话</label>
                <div class="layui-input-block">
                    <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
            <div class="layui-col-sm3">
                <label class="layui-form-label">联系人</label>
                <div class="layui-input-block">
                    <input name="hospitalLink" type="text" class="layui-input" maxlength="20" style="width: 200px;" />
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">医院类型</label>
        <div class="layui-input-block">
            <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" />
            <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName">
                <option value="">请选择</option>
            </select>
        <div class="layui-row">
            <div class="layui-col-sm4">
                <label class="layui-form-label">医院类型</label>
                <div class="layui-input-block">
                    <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" value="" />
                    <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName"
                        style="width: 50px;">
                        <option value="">请选择</option>
                    </select>
                </div>
            </div>
            <div class="layui-col-sm3">
                <label class="layui-form-label">医院资质</label>
                <div class="layui-input-block">
                    <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden" value="" />
                    <select name="hospitalQualifiedName" id="hospitalQualifiedName" lay-filter="hospitalQualifiedName"
                        style="width: 300px;">
                        <option value="">请选择</option>
                    </select>
                </div>
            </div>
            <div class="layui-col-sm3">
                <label class="layui-form-label">帐号数量</label>
                <div class="layui-input-block">
                    <input id="accountsCount" name="accountsCount" type="text" value="6" class="layui-input"
                        maxlength="1" lay-verify="required|integer" style="width: 200px;" />
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">医院资质</label>
        <div class="layui-input-block">
            <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden" />
            <select name="hospitalQualifiedName" id="hospitalQualifiedName" lay-filter="hospitalQualifiedName">
                <option value="">请选择</option>
            </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">所在地区</label>
        <div class="layui-input-block">
            <select id="hospitalProvince" placeholder="省份" lay-filter="hospitalProvince">
            </select>
            <select id="hospitalCity" placeholder="市" lay-filter="hospitalCity">
                <option value="">选择市</option>
            </select>
            <select id="hospitalArea" placeholder="区县" lay-filter="hospitalArea">
                <option value="">选择区县</option>
            </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">区号</label>
        <div class="layui-input-block">
            <input name="areaCode" type="text" class="layui-input" maxlength="10" />
        <div class="layui-row">
            <label class="layui-form-label">所在地区</label>
            <div class="layui-input-block">
                <div class="layui-col-sm4">
                    <select lay-verify="required" required id="hospitalProvince" placeholder="省份"
                        lay-filter="hospitalProvince" style="width: 400px;">
                    </select></div>
                <div class="layui-col-sm4">
                    <select id="hospitalCity" lay-verify="required" required placeholder="市" lay-filter="hospitalCity"
                        style="width: 350px;">
                        <option value="">选择市</option>
                    </select></div>
                <div class="layui-col-sm4">
                    <select id="hospitalArea" lay-verify="required" required placeholder="区县" lay-filter="hospitalArea"
                        style="width: 350px;">
                        <option value="">选择区县</option>
                    </select>
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
@@ -59,31 +100,84 @@
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">经度</label>
        <div class="layui-input-block">
            <input name="longitude" type="text" class="layui-input" maxlength="20" />
        <div class="layui-row">
            <div class="layui-col-sm4">
                <label class="layui-form-label">区号</label>
                <div class="layui-input-block">
                    <input name="areaCode" id="areaCode" lay-verify="required" required type="text" class="layui-input"
                        maxlength="10" />
                </div>
            </div>
            <div class="layui-col-sm4">
                <label class="layui-form-label">经度</label>
                <div class="layui-input-block">
                    <input name="longitude" id="longitude" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
            <div class="layui-col-sm4">
                <label class="layui-form-label">纬度</label>
                <div class="layui-input-block">
                    <input name="latitude" id="latitude" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">纬度</label>
        <div class="layui-input-block">
            <input name="latitude" type="text" class="layui-input" maxlength="20" />
        <div class="layui-row">
            <div class="layui-col-sm4">
                <label class="layui-form-label">服务人员</label>
                <div class="layui-input-block">
                    <input name="serverUserId" id="serverUserId" type="hidden" value="" maxlength="20" />
                    <select lay-verify="required" required name="serverUserName" id="serverUserName"
                        style="width: 150px;" lay-filter="serverUserName">
                    </select>
                </div>
            </div>
            <div class="layui-col-sm6">
                <label class="layui-form-label">服务人电话</label>
                <div class="layui-input-block">
                    <input name="serverUserTel" id="serverUserTel" type="text" class="layui-input" maxlength="20"
                        value="" />
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-col-sm4">
            <label class="layui-form-label">销售人员</label>
            <div class="layui-input-block">
                <input name="saleUserId" id="saleUserId" type="hidden" value="" maxlength="20" />
                <select lay-verify="required" required name="saleUserName" id="saleUserName" style="width: 150px;"
                    lay-filter="saleUserName">
                </select>
            </div>
        </div>
        <div class="layui-col-sm6">
            <label class="layui-form-label">销售人电话</label>
            <div class="layui-input-block">
                <input name="saleUserTel" id="saleUserTel" type="text" class="layui-input" maxlength="20" value="" />
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">医院简介</label>
        <div class="layui-input-block">
            <input name="hospital_about" type="text" class="layui-input" maxlength="500" />
            <textarea name="hospitalAbout" class="layui-textarea" maxlength="300"></textarea>
        </div>
    </div>
    <div class="layui-form-item model-form-footer">
        <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
        <button class="layui-btn" lay-filter="hospital-form-submit" lay-submit>保存</button>
    </div>
    <input type="hidden" name="departmentId" id="departmentId" value="" />
    <input type="hidden" name="orgId" id="orgId" value="" />
    <input type="hidden" name="departmentOrgId" id="departmentOrgId" value="" />
    <input type="hidden" name="id" id="id" value="" />
</form>
<script>
    layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin', 'area', 'formSelects', 'dic', 'autocomplete'], function () {
    layui.use(['form', 'table', 'util', 'config', 'admin', 'area', 'dic', 'autocomplete'], function () {
        var form = layui.form;
        var table = layui.table;
        var config = layui.config;
@@ -92,26 +186,93 @@
        var admin = layui.admin;
        var area = layui.area;
        var dic = layui.dic;
        var formSelects = layui.formSelects;
        var autocomplete = layui.autocomplete;
        var $ = layui.jquery;
        //加载服务人员信息
        var loadServerUser = function (selectVal) {
            admin.req('api-user/users/getAppointUser', {
                type: 1
            }, function (data) {
                layer.closeAll('loading');
                if (0 === data.code) {
                    if (data.data.length > 0) {
                        $.each(data.data, function (index, item) {
                            if (!strUtil.isEmpty(selectVal) && selectVal == item.id) {
                                $('#serverUserName').append(new Option(item.nickname, item
                                    .id, false, true));
                            } else {
                                //往下拉菜单里添加元素
                                $('#serverUserName').append(new Option(item.nickname, item
                                    .id, false, false));
                            }
                        })
                    }
        autocomplete.render({
            elem: $('#hospitalName'),
            cache: true,
            url: config.base_server + 'api-user/syshospital',
            response: { code: 'code', data: 'data' },
            template_val: '{{d.hospitalName}}',
            template_txt: '{{d.hospitalName}} <span class=\'layui-badge layui-bg-gray\'>{{d.id}}</span>',
            onselect: function (resp) {
                //$('#content1').html("NEW RENDER: " + JSON.stringify(resp));
            }
        })
                    if (hosIdForEdit == "") {
                        $("#serverUserTel").val(data.data[0].mobile);
                        $('#serverUserName').val(data.data[0].id);
                        form.render();
                    }
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 500
                    });
                }
            }, 'get');
        }
        //加载销售人员信息
        var loadSaleUser = function (selectVal) {
            admin.req('api-user/users/getAppointUser', {
                type: 0
            }, function (data) {
                layer.closeAll('loading');
                if (0 === data.code) {
                    if (data.data.length > 0) {
                        $.each(data.data, function (index, item) {
                            //往下拉菜单里添加元素
                            if (!strUtil.isEmpty(selectVal) && selectVal == item.id) {
                                $('#saleUserName').append(new Option(item.nickname, item.id,
                                    false, true));
                            } else {
                                $('#saleUserName').append(new Option(item.nickname, item.id,
                                    false, false));
                            }
                        });
                        if (hosIdForEdit == "") {
                            $("#saleUserTel").val(data.data[0].mobile);
                            $('#saleUserName').val(data.data[0].id);
                            form.render();
                        }
                    }
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 500
                    });
                }
            }, 'get');
        }
        //医院资质数据
        dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", "");
        //医院类型数据
        dic.dicData("#hospitalTypeName", "HOSPITAL_TYPE", "");
        //省份数据加载
        area.areaData("#hospitalProvince", 1, "", "");
        //回显组织数据
        let edithospitalData = admin.getTempData('t_hospital');
        var hosIdForEdit = "";
        if (edithospitalData != null) {
            hosIdForEdit = edithospitalData.hospitalId;
        }
        //装载销售人员 服务人员数据
        loadServerUser();
        loadSaleUser();
        //装载市区数据
        form.on("select(hospitalProvince)", function (data) {
            area.areasClear("#hospitalArea", 3);
@@ -120,7 +281,20 @@
        //装载区县数据
        form.on("select(hospitalCity)", function (data) {
            area.areaData("#hospitalArea", 3, data.value, "");
            //区号,金纬度自动赋值
            var cityDataFor = admin.getTempData("t_city");
            if (cityDataFor != null) {
                cityDataFor.forEach(function (item) {
                    if (data.value == item.id) {
                        $("#areaCode").val(item.areaCitycode);
                        $("#longitude").val(item.areaLng);
                        $("#latitude").val(item.areaLat);
                        return;
                    }
                })
            }
        });
        //赋值资质数据ID
        form.on("select(hospitalQualifiedName)", function (data) {
            $("#hospitalQualifiedId").val(data.value);
@@ -129,5 +303,222 @@
        form.on("select(hospitalTypeName)", function (data) {
            $("#hospitalTypeId").val(data.value);
        });
        // 表单提交事件
        form.on('submit(hospital-form-submit)', function (data) {
            layer.load(2);
            if (data.field != null) {
                data.field.hospitalTypeName = $("#hospitalTypeName option:selected").text() != "请选择" ?
                    $("#hospitalTypeName option:selected").text() : "";
                data.field.hospitalQualifiedName = $("#hospitalQualifiedName option:selected").text() !=
                    "请选择" ? $("#hospitalQualifiedName option:selected").text() : "";
                data.field.hospitalProvince = $("#hospitalProvince option:selected").text() != "选择省" ?
                    $("#hospitalProvince option:selected").text() : "";
                data.field.hospitalCity = $("#hospitalCity option:selected").text() != "选择市" ? $(
                    "#hospitalCity option:selected").text() : "";
                data.field.hospitalArea = $("#hospitalArea option:selected").text() != "选择区县" ? $(
                    "#hospitalArea option:selected").text() : "";
                admin.req('api-user/syshospital', JSON.stringify(data.field), function (data) {
                    if (data.code === 0) {
                        //存储科室数据
                        var departmentData = {
                            serverUserId: $("#serverUserName").val(),
                            serverUserName: $("#serverUserName option:selected").text(),
                            serverUserTel: $("#serverUserTel").val(),
                            departmentName: $("#departmentName").val(),
                            id: $("#departmentId").val(),
                            orgId: ''+$("#departmentOrgId").val(),
                            updateUserId: data.data.orgId,
                            hospitalId: data.data.id,
                            saleUserId: $("#saleUserName").val(),
                            saleUserName: $("#saleUserName option:selected").text(),
                            saleUserTel: $("#saleUserTel").val(),
                            accountsCount: $("#accountsCount").val()
                        };
                        admin.req('api-user/sysdepartment', JSON.stringify(departmentData),
                            function (data) {
                                layer.closeAll('loading');
                                if (data.code == 0) {
                                    layer.msg(data.msg, {
                                        icon: 1,
                                        time: 1000
                                    }, function () {
                                        admin.finishPopupCenter();
                                    });
                                    admin.putTempData("t_hospital", "");
                                    admin.putTempData("t_city", "");
                                } else {
                                    layer.msg(data.msg, {
                                        icon: 2,
                                        time: 1000
                                    });
                                }
                            }, "POST");
                    } else {
                        layer.msg(data.msg, {
                            icon: 2,
                            time: 1000
                        });
                    }
                }, "POST");
            } else {
                layer.msg("数据异常!", {
                    icon: 2,
                    time: 1000
                });
            }
            return false;
        });
        //自动完成-医院名称
        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) {
                loadDatas(resp.id);
            }
        });
        //检查科室名是否存在
        $("#departmentName").blur(function () {
            if (edithospitalData != null) {
                if (edithospitalData.departmentName == $("#departmentName").val()) {
                    return false;
                }
            }
            let hosIdForDep = $("#id").val();
            if (!strUtil.isEmpty($("#departmentName").val()) && !strUtil.isEmpty(hosIdForDep)) {
                admin.req('api-user/sysdepartment/checkName', {
                    hospitalId: hosIdForDep,
                    departmentName: $("#departmentName").val()
                }, function (data) {
                    layer.closeAll('loading');
                    if (0 != data.code) {
                        layer.msg(data.msg, {
                            icon: 2,
                            time: 1000
                        });
                        return false;
                    }
                }, 'get');
            }
        })
        //按照ID装载数据
        var loadDatas = function (hosId) {
            if (!strUtil.isEmpty(hosId)) {
                //用ID获取实体
                admin.req('api-user/syshospital/' + hosId, {}, function (data) {
                    layer.closeAll('loading');
                    if (0 === data.code) {
                        //装载基本数据
                        let hosData = data.data;
                        form.val("hospital-form", hosData);
                        //装载省市区数据
                        if (!strUtil.isEmpty(hosData.hospitalProvince))
                            area.areaData("#hospitalProvince", 1, "", hosData.hospitalProvince);
                        if (!strUtil.isEmpty(hosData.hospitalCity))
                            area.areaData("#hospitalCity", 2, $("#hospitalProvince").val(), hosData
                                .hospitalCity);
                        if (!strUtil.isEmpty(hosData.hospitalArea))
                            area.areaData("#hospitalArea", 3, $("#hospitalCity").val(), hosData
                                .hospitalArea);
                        //装载资质 类型
                        $("#hospitalQualifiedName").val(hosData.hospitalQualifiedId);
                        $("#hospitalTypeName").val(hosData.hospitalTypeId);
                        //装载科室数据
                        admin.req('api-user/sysdepartment', {
                            hospitalId: hosId,
                            isDel: 0,
                            page: 1,
                            limit: 20
                        }, function (data) {
                            if (data.code == 0) {
                                let departData = data.data.data;
                                if (departData.length > 0) {
                                    if (departData.length > 1) {
                                        layer.msg("该医院下有多个科室,默认显示第一个", {
                                            icon: 1,
                                            time: 2000
                                        });
                                    }
                                    $("#serverUserId").val(departData[0].serverUserId);
                                    $('#serverUserName').val(departData[0].serverUserId);
                                    $("#departmentName").val(departData[0].departmentName);
                                    $("#departmentId").val(departData[0].id);
                                    $("#departmentOrgId").val(departData[0].orgId);
                                    $("#saleUserId").val(departData[0].saleUserId);
                                    $("#accountsCount").val(departData[0].accountsCount);
                                    $('#saleUserName').val(departData[0].saleUserId);
                                    if (hosIdForEdit != "") {
                                        $("#serverUserTel").val(departData[0]
                                            .serverUserTel);
                                        $("#saleUserTel").val(departData[0].saleUserTel);
                                    }
                                    form.render();
                                }
                            } else {
                                layer.msg(data.msg, {
                                    icon: 2,
                                    time: 500
                                });
                            }
                        }, 'get');
                        form.render();
                    } else {
                        layer.msg(data.msg, {
                            icon: 2,
                            time: 500
                        });
                    }
                }, 'get');
            }
        }
        //装载基本数据
        if (!strUtil.isEmpty(hosIdForEdit)) {
            loadDatas(hosIdForEdit);
        }
        layui.use('form', function () {
            var $ = layui.$,
                layer = layui.layer,
                form = layui.form
            form.verify({
                integer: [
                    /^[1-9]\d*$/, '只能输入正整数'
                ]
            });
        });
        form.on("select(serverUserName)", function (data) {
            loadUserMobile('serverUserTel', data.value);
        });
        form.on("select(saleUserName)", function (data) {
            loadUserMobile('saleUserTel', data.value);
        });
        var loadUserMobile = function (id, userId) {
            admin.req('api-user/users/' + userId, {}, function (data) {
                if (data != null) {
                    $("#" + id).val(data.mobile);
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 500
                    });
                }
            }, 'get')
        }
    });
</script>