forked from kidgrow-microservices-platform

zhaoxiaohao
2021-03-02 1a50269b1d072fe2da7e70ae48315ebeb4ef95f4
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -1,55 +1,135 @@
<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">
<form id="hospital-form" lay-filter="hospital-form" autocomplete="off" 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-sm5">
                <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 class="layui-col-sm5">
                <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>
    </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="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="departmentTel" id="departmentTel" 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="departmentLink" id="departmentLink" 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="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden" />
            <select name="hospitalQualifiedName" id="hospitalQualifiedName" lay-filter="hospitalQualifiedName">
                <option value="">请选择</option>
            </select>
        <div class="layui-row">
            <div class="layui-col-sm6">
                <label class="layui-form-label">是否筛查科室</label>
                <div class="layui-input-block">
                    <input type="radio" name="isScreen" value="1" title="是">
                    <input type="radio" name="isScreen" value="0" title="否" >
                    &emsp;
                </div>
            </div>
            <div class="layui-col-sm6">
                <label class="layui-form-label">是否新筛查</label>
                <div class="layui-input-block">
                    <input type="radio" name="isNewScreenclient" value="1" title="是">
                    <input type="radio" name="isNewScreenclient" value="0" title="否" >
                </div>
            </div>
        </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 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="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 +139,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,35 +225,124 @@
        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: 2000
                    });
                }
            }, '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) {
                            //往下拉菜单里添加元素
                            $('#saleUserName').append(new Option(item.nickname, item.id,
                                false, (!strUtil.isEmpty(selectVal) && selectVal == item.id)));
                        });
                        if (hosIdForEdit == "") {
                            $("#saleUserTel").val(data.data[0].mobile);
                            $('#saleUserName').val(data.data[0].id);
                            form.render();
                        }
                    }
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 2000
                    });
                }
            }, 'get');
        }
        //医院资质数据
        dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", "");
        //医院类型数据
        dic.dicData("#hospitalTypeName", "HOSPITAL_TYPE", "");
        //省份数据加载
        area.areaData("#hospitalProvince", 1, "", "");
        //回显组织数据
        let edithospitalData = admin.getTempData('t_hospital');
        var hosIdForEdit = "";
        var departmentId = "";
        //当前登录人员的id
        var selectVal = "";
        if (edithospitalData != null) {
            hosIdForEdit = edithospitalData.hospitalId;
            departmentId = edithospitalData.departmentId;
        }
        else {
            //先拿到当前登录用户的信息
            var nowUser = config.getUser();
            if (!strUtil.isEmpty(nowUser)) {
                selectVal = nowUser.id;
            }
        }
        //装载销售人员 服务人员数据
        loadServerUser(selectVal);
        loadSaleUser(selectVal);
        //装载市区数据
        form.on("select(hospitalProvince)", function (data) {
            area.areasClear("#hospitalArea", 3);
            area.areaData("#hospitalCity", 2, data.value, "");
            defaultValData();
        });
        //装载区县数据
        form.on("select(hospitalCity)", function (data) {
            area.areaData("#hospitalArea", 3, data.value, "");
            defaultValData();
        });
        form.on("select(hospitalArea)", function (data) {
            //区号,金纬度自动赋值
            var areaDataFor = admin.getTempData("t_area");
            if (areaDataFor != null) {
                areaDataFor.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 +351,246 @@
        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() : "";
                let isScreen = data.field.isScreen
                let isNewScreenclient = data.field.isNewScreenclient
                delete data.field.isScreen
                delete data.field.isNewScreenclient
                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(),
                            departmentTel: $("#departmentTel").val(),
                            departmentLink: $("#departmentLink").val(),
                            isScreen,
                            isNewScreenclient,
                        };
                        admin.req('api-user/sysdepartment/' + data.data.id, 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_area", "");
                                } 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) {
                departmentId = "";
                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);
                        if (!strUtil.isEmpty(departmentId)) {
                            //装载科室数据
                            admin.req('api-user/sysdepartment', {
                                id: departmentId,
                                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);
                                        $('#departmentLink').val(departData[0].departmentLink);
                                        $('#departmentTel').val(departData[0].departmentTel);
                                        $("input[name=isScreen][value=1]").attr("checked", departData[0].isScreen == 1 ? true : false);
                                        $("input[name=isScreen][value=0]").attr("checked", departData[0].isScreen == null || departData[0].isScreen==0 ? true : false);
                                        $("input[name=isNewScreenclient][value=1]").attr("checked", departData[0].isNewScreenclient == 1 ? true : false);
                                        $("input[name=isNewScreenclient][value=0]").attr("checked", departData[0].isNewScreenclient == null || departData[0].isNewScreenclient==0? true : false);
                                        if (hosIdForEdit != "") {
                                            $("#serverUserTel").val(departData[0]
                                                .serverUserTel);
                                            $("#saleUserTel").val(departData[0]
                                                .saleUserTel);
                                        }
                                        form.render();
                                    }
                                } else {
                                    layer.msg(data.msg, {
                                        icon: 2,
                                        time: 2000
                                    });
                                }
                            }, 'get');
                        }
                        form.render();
                    } else {
                        layer.msg(data.msg, {
                            icon: 2,
                            time: 2000
                        });
                    }
                }, '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: 2000
                    });
                }
            }, 'get')
        }
        //重置区号 金纬度
        var defaultValData = function () {
            $("#areaCode").val("");
            $("#longitude").val("");
            $("#latitude").val("");
        }
    });
</script>