From ec0f2528f83ee7c6ec64537d561a697ffff5b5c3 Mon Sep 17 00:00:00 2001 From: 侯瑞军 <411269194@kidgrow.com> Date: Tue, 21 Apr 2020 15:27:04 +0800 Subject: [PATCH] 1.组织,医院,科室的编辑业务调整,增加了联动编辑功能(创建医院自动创建组织数据,修改同理) 2.重新优化,调整了医院/科室编辑过程中对名称的检查,数据间依赖关系的调整 3.调整优化了区域联动插件,自动完成插件的通用性 --- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html | 269 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 202 insertions(+), 67 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 1eaca5e..07d3f1f 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 @@ -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: 150px;" /> +  </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"> @@ -39,7 +45,7 @@ <div class="layui-col-sm7"> <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;"> <option value="">请选择</option> @@ -49,7 +55,7 @@ <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> @@ -63,14 +69,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> @@ -88,23 +97,32 @@ <div class="layui-col-sm3"> <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"> <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"> <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 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> <div class="layui-form-item"> <label class="layui-form-label">医院简介</label> @@ -116,34 +134,25 @@ <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; + 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; - 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)); - } - }) //医院资质数据 dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", ""); //医院类型数据 @@ -158,6 +167,18 @@ //装载区县数据 form.on("select(hospitalCity)", function (data) { area.areaData("#hospitalArea", 3, data.value, ""); + //区号,金纬度自动赋值 + let cityData = admin.getTempData("t_city"); + if (cityData != null) { + cityData.forEach(function (item) { + if (data.value == item.id) { + $("#areaCode").val(item.areaCitycode); + $("#longitude").val(item.areaLng); + $("#latitude").val(item.areaLat); + break; + } + }) + } }); //赋值资质数据ID form.on("select(hospitalQualifiedName)", function (data) { @@ -167,42 +188,156 @@ 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) { + layer.closeAll('loading'); + 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