forked from kidgrow-microservices-platform

kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -5,7 +5,7 @@
                <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" style="width: 390px;" />
                        maxlength="50" lay-verify="required" required style="width: 390px;" />
                </div>
            </div>
            <div class="layui-col-sm3">
@@ -19,11 +19,17 @@
    </div>
    <div class="layui-form-item">
        <div class="layui-row">
            <div class="layui-col-sm7">
            <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="50" 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="50"
                        style="width: 390px;" />
                    <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" maxlength="50" />
                </div>
            </div>
            <div class="layui-col-sm3">
@@ -36,12 +42,12 @@
    </div>
    <div class="layui-form-item">
        <div class="layui-row">
            <div class="layui-col-sm7">
            <div class="layui-col-sm4">
                <label class="layui-form-label">医院类型</label>
                <div class="layui-input-block">
                    <input name="hospitalTypeId" id="hospitalTypeId" type="hidden"  value=""/>
                    <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" value="" />
                    <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName"
                        style="width: 300px;">
                        style="width: 50px;">
                        <option value="">请选择</option>
                    </select>
                </div>
@@ -49,11 +55,18 @@
            <div class="layui-col-sm3">
                <label class="layui-form-label">医院资质</label>
                <div class="layui-input-block">
                    <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden"  value=""/>
                    <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="50" lay-verify="required|integer" style="width: 200px;" />
                </div>
            </div>
        </div>
@@ -63,14 +76,17 @@
            <label class="layui-form-label">所在地区</label>
            <div class="layui-input-block">
                <div class="layui-col-sm4">
                    <select id="hospitalProvince" placeholder="省份" lay-filter="hospitalProvince" style="width: 400px;">
                    <select lay-verify="required" required id="hospitalProvince" placeholder="省份"
                        lay-filter="hospitalProvince" style="width: 400px;">
                    </select></div>
                <div class="layui-col-sm4">
                    <select id="hospitalCity" placeholder="市" lay-filter="hospitalCity" style="width: 350px;">
                    <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" placeholder="区县" lay-filter="hospitalArea" style="width: 350px;">
                    <select id="hospitalArea" lay-verify="required" required placeholder="区县" lay-filter="hospitalArea"
                        style="width: 350px;">
                        <option value="">选择区县</option>
                    </select>
                </div>
@@ -85,65 +101,150 @@
    </div>
    <div class="layui-form-item">
        <div class="layui-row">
            <div class="layui-col-sm3">
            <div class="layui-col-sm4">
                <label class="layui-form-label">区号</label>
                <div class="layui-input-block">
                    <input name="areaCode" type="text" class="layui-input" maxlength="10" />
                    <input name="areaCode" id="areaCode" lay-verify="required" required type="text" class="layui-input"
                        maxlength="10" />
                </div>
            </div>
            <div class="layui-col-sm3">
            <div class="layui-col-sm4">
                <label class="layui-form-label">经度</label>
                <div class="layui-input-block">
                    <input name="longitude" type="text" class="layui-input" maxlength="20" />
                    <input name="longitude" id="longitude" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
            <div class="layui-col-sm3">
            <div class="layui-col-sm4">
                <label class="layui-form-label">纬度</label>
                <div class="layui-input-block">
                    <input name="latitude" type="text" class="layui-input" maxlength="20" />
                    <input name="latitude" id="latitude" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <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="" />
                    <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="" />
                <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">
            <textarea name="hospital_about" class="layui-textarea" maxlength="500"></textarea>
            <textarea name="hospitalAbout" class="layui-textarea" maxlength="500"></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" id="orgId" name="orgId" value=""/>
    <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>
    parent.layui.use(['form', 'table','util', 'config', 'admin', 'area', 'formSelects', 'dic', 'autocomplete'], function () {
        var form = parent.layui.form;
        var table = parent.layui.table;
        var config = parent.layui.config;
        var layer = parent.layui.layer;
        var util = parent.layui.util;
        var admin = parent.layui.admin;
        var area = parent.layui.area;
        var dic = parent.layui.dic;
        var formSelects = parent.layui.formSelects;
        var autocomplete = parent.layui.autocomplete;
        var $ = parent.layui.jquery;
        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));
            }
        })
    layui.use(['form', 'table', 'util', 'config', 'admin', 'area', 'dic', 'autocomplete'], 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 area = layui.area;
        var dic = layui.dic;
        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 (selectVal == item.id) {
                                $('#serverUserName').append(new Option(item.nickname, item.id, false, true));
                            }
                            else {
                                //往下拉菜单里添加元素
                                $('#serverUserName').append(new Option(item.nickname, item.id, false, false));
                            }
                        })
                    }
                    if(hosIdForEdit == ""){
                        $("#serverUserTel").val(data.data[0].mobile);
                        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 (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);
                          form.render();
                         }
                    }
                } else {
                    layer.msg(data.msg, { icon: 2, time: 500 });
                }
            }, 'get');
        }
        //医院资质数据
        dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", "");
        //医院类型数据
@@ -158,6 +259,18 @@
        //装载区县数据
        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) {
@@ -167,42 +280,201 @@
        form.on("select(hospitalTypeName)", function (data) {
            $("#hospitalTypeId").val(data.value);
        });
        // 回显组织数据
        let orgs = admin.getTempData('t_org');
        if (orgs != null) {
            $('input[name="hospitalName"]').val(orgs.orgName);
            $('input[name="orgId"]').val(orgs.id);
            form.render();
        }
        // 表单提交事件
        form.on('submit(hospital-form-submit)', function (data) {
            layer.load(2);
            if(data.field!=null){
                data.field.hospitalTypeName=$("#hospitalTypeName option:selected").text();
                data.field.hospitalQualifiedName=$("#hospitalQualifiedName option:selected").text();
                data.field.hospitalProvince=$("#hospitalProvince option:selected").text();
                data.field.hospitalCity=$("#hospitalCity option:selected").text();
                data.field.hospitalArea=$("#hospitalArea option:selected").text();
            if (data.field != null) {
            admin.req('api-user/syshospital', JSON.stringify(data.field), function (data) {
                layer.closeAll('loading');
                if (data.code == 0) {
                    //将医院数据存入本地
                    admin.putTempData('t_hospital', data.data);
                    layer.msg(data.msg, { icon: 1, time: 1000 }, function () {
                        //清理组织数据
                        admin.putTempData('t_org','');
                    });
                } else {
                    layer.msg(data.msg, { icon: 2, time: 1000 });
                }
            }, "POST");}
            else{
                    layer.msg("数据异常!", { icon: 2, time: 1000 });
                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()
                        };
                        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);
            }
        });
        //加载当前所在部门的在职员工
        /*admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) {
            layer.closeAll('loading');
            if (0 === data.code) {
                if (data.data.length > 0) {
                    $.each(data.data, function (index, item) {
                        //往下拉菜单里添加元素
                        $('#serverUserName').append(new Option(item.nickname, item.id, false, false));
                    })
                    $('#serverUserName').val(config.getUser().id);
                    $('#serverUserId').val(config.getUser().id);
                    form.render('select');
                }
            } else {
                layer.msg(data.msg, { icon: 2, time: 500 });
            }
        }, 'get');*/
        //检查科室名是否存在
        $("#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);
                                    loadServerUser(departData[0].serverUserId);
                                    $("#departmentName").val(departData[0].departmentName);
                                    $("#departmentId").val(departData[0].id);
                                    $("#departmentOrgId").val(departData[0].orgId);
                                    $("#saleUserId").val(departData[0].saleUserId);
                                    loadSaleUser(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');
            }
        }
        //回显组织数据
        let edithospitalData = admin.getTempData('t_hospital');
        var hosIdForEdit = "";
        if (edithospitalData != null) {
            hosIdForEdit = edithospitalData.hospitalId;
            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>