From 346ae7f3ce0e30785b9cc0aea1d92204534a83d6 Mon Sep 17 00:00:00 2001
From: 侯瑞军 <411269194@kidgrow.com>
Date: Thu, 14 May 2020 18:37:26 +0800
Subject: [PATCH] 1.增加运营管理部分的所有的功能按钮权限显示隐藏功能 2.修改了部分已知的bug

---
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html |  341 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 276 insertions(+), 65 deletions(-)

diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
index f3d1545..7d2a762 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -1,55 +1,89 @@
-<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="50"
+                        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="50" lay-verify="required" required style="width: 150px;" />
+                    &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" />
+                </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="50" 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-sm7">
+                <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: 300px;">
+                        <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>
     </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 +93,55 @@
         </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>
-    </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-sm3">
+                <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-sm3">
+                <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-sm3">
+                <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 class="layui-col-sm3">
+                <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;">
+                    </select>
+                </div>
+            </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="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>
+        <button class="layui-btn permissions" permissions="hospital-save" 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,20 +150,11 @@
         var admin = layui.admin;
         var area = layui.area;
         var dic = layui.dic;
-        var formSelects = layui.formSelects;
         var autocomplete = layui.autocomplete;
+        var $ = 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));
-            }
-        })
+        permissionsInput();
+        
         //医院资质数据
         dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", "");
         //医院类型数据
@@ -120,6 +169,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) {
@@ -129,5 +190,155 @@
         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(),
+                            departmentName: $("#departmentName").val(),
+                            id: $("#departmentId").val(),
+                            orgId: $("#departmentOrgId").val(),
+                            updateUserId: data.data.orgId,
+                            hospitalId: data.data.id
+                        };
+                        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 () {
+            debugger
+            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);
+                                    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);
+        }
     });
 </script>
\ No newline at end of file

--
Gitblit v1.8.0