<form id="app-form-add" lay-filter="app-form-add" autocomplete="off" class="layui-form model-form">
|
<input name="id" type="hidden" />
|
<div style="display:flex">
|
<div class="layui-form-item">
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 75px;">所在医院</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input"
|
maxlength="50" lay-verify="required" required style="width: 150px;" />
|
<input type="hidden" name="hospitalId" id="hospitalId" />
|
<input type="hidden" name="id" id="id" />
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">科室</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="departmentName" id="departmentName" placeholder="请选择科室" type="hidden"
|
class="layui-input" maxlength="20" />
|
<select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="请选择科室"
|
lay-verify="required" required>
|
<option value="">-请选择科室-</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">医生类型</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<select id="doctorType" name="doctorType" lay-filter="doctorType" lay-verify="required" required>
|
<option value="2" selected>C端医生</option>
|
<option value="1">H端医生</option>
|
<option value="0">C端+H端</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div style="display:flex">
|
<div class="layui-form-item">
|
<div class="layui-inline">
|
<label class="layui-form-label">姓名</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="doctorName" type="text" class="layui-input" maxlength="20" lay-verify="required"
|
required style="width: 150px;" />
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">职称</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<select id="doctorRankId" name="doctorRankId" lay-filter="doctorRankId" placeholder="选择一个职称"
|
lay-verify="required" required>
|
<option value="">-请选择-</option>
|
</select>
|
<input name="doctorRank" id='doctorRank' type="hidden" class="layui-input" maxlength="20" />
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">Email</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="doctorEmail" type="text" class="layui-input" maxlength="50" lay-verify="v_email"
|
autocomplete="off" />
|
</div>
|
</div>
|
</div>
|
</div>
|
<div style="display:flex">
|
<div class="layui-form-item">
|
<div class="layui-inline">
|
<label class="layui-form-label">联系电话</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="doctorTel" id="doctorTel-add" type="text" class="layui-input" maxlength="20"
|
lay-verify="required|phone" required style="width: 150px;" />
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">其它联系方式</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="doctorOtherLink" type="text" class="layui-input" maxlength="20" />
|
</div>
|
</div>
|
<div class="layui-inline" id="roleId_div">
|
<label class="layui-form-label">角色</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<select name="roleId" xm-select="roleId">
|
</select>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div style="display:flex">
|
<div class="layui-form-item">
|
<label class="layui-form-label">医生简介</label>
|
<div class="layui-input-block" >
|
<textarea name="doctorAbout" id="doctorAbout" class="layui-textarea" maxlength="300"
|
style="width: 697px;"></textarea>
|
</div>
|
</div>
|
</div>
|
<div style="display:flex">
|
<div class="layui-form-item">
|
<label class="layui-form-label">医生状态</label>
|
<div class="layui-input-block">
|
<input name="doctorState" id="doctorState-shi" type="radio" checked value="true" title="正常"
|
class="layui-input" />
|
<input name="doctorState" id="doctorState-fou" type="radio" value="false" title="试用"
|
class="layui-input" />
|
</div>
|
</div>
|
<div class="layui-form-item">
|
<label class="layui-form-label"> 置顶</label>
|
<div class="layui-input-block">
|
<input name="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" />
|
<input name="isTop" id="isTop-fou" type="radio" value="false" title="否" class="layui-input" />
|
</div>
|
</div>
|
<div class="layui-form-item">
|
<label class="layui-form-label">医答</label>
|
<div class="layui-input-block">
|
<input name="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是"
|
class="layui-input" />
|
<input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" class="layui-input" />
|
</div>
|
</div>
|
<div class="layui-form-item">
|
<label class="layui-form-label">签约</label>
|
<div class="layui-input-block">
|
<input name="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是"
|
class="layui-input" />
|
<input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" class="layui-input" />
|
</div>
|
</div>
|
</div>
|
<div style="display:flex" class="account">
|
<div class="layui-form-item">
|
<div class="layui-inline">
|
<label class="layui-form-label">登录帐号</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="username" id="username" readonly type="text" class="layui-input" maxlength="20" />
|
</div>
|
</div>
|
<div class="layui-inline" id="password_div">
|
<label class="layui-form-label">登录密码</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="password" type="password" id="password" class="layui-input" maxlength="20" />
|
</div>
|
</div>
|
<div class="layui-inline" id="passwordSure_div">
|
<label class="layui-form-label">确认密码</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="passwordSure" type="password" id="passwordSure" class="layui-input" maxlength="20" />
|
</div>
|
</div>
|
|
<!-- </div>
|
<div class="layui-form-item">
|
|
</div>
|
<div class="layui-form-item"> -->
|
|
</div>
|
</div>
|
<div style="display:flex">
|
<div class="layui-form-item">
|
<div class="layui-inline">
|
<label class="layui-form-label">医生的头像</label>
|
<div class="layui-input-block" id="demo" style="width: 150px;">
|
<button type="button" class="layui-btn" id="phonto">
|
<i class="layui-icon"></i>上传图片
|
</button>
|
<input name="doctorLogo" id="doctorLogo-add" type="hidden" class="layui-input" maxlength="20" />
|
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
|
预览效果
|
<div class="layui-upload-list" id="demo2"></div>
|
</blockquote>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">销售代表</label>
|
<div class="layui-input-block" style="width: 150px;">
|
<input name="serverUserName" id="serverUserName-add" type="hidden" class="layui-input"
|
maxlength="15" />
|
<select id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add"
|
lay-verify="required" required>
|
<option value="">-请选择-</option>
|
</select>
|
</div>
|
</div>
|
<!--
|
</div>
|
|
<div class="layui-form-item"> -->
|
|
</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 permissions" permissions="sysdoctor-edit" id="sure" lay-filter="user-form-submit"
|
lay-submit>保存</button>
|
</div>
|
</form>
|
|
<script>
|
layui.use(['form', 'laydate', 'util', 'config', 'admin', 'autocomplete', 'formSelects'], function () {
|
var form = layui.form;
|
var config = layui.config;
|
var layer = layui.layer;
|
var util = layui.util;
|
var admin = layui.admin;
|
var upload = layui.upload;
|
var autocomplete = layui.autocomplete;
|
var formSelects = layui.formSelects;
|
var $ = layui.jquery;
|
|
//验证邮箱
|
admin.v_email = function(value, item){
|
var exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
|
if(value && !exp.test(value) ){
|
return '邮箱格式不正确';
|
}
|
}
|
form.verify({
|
v_email:admin.v_email,
|
})
|
//医生管理员
|
var guanliyuan_role = undefined;
|
//获取角色
|
var get_role = function (flag) {
|
admin.req('api-user/findByMap?tenant_id=hospital', {}, function (data) {
|
layer.closeAll('loading');
|
if (0 == data.code) {
|
// 渲染多选下拉框
|
var roleSelectData = new Array();
|
for (var i = 0; i < data.data.length; i++) {
|
roleSelectData.push({
|
name: data.data[i].name,
|
value: data.data[i].id
|
});
|
}
|
guanliyuan_role = data.data[0].id;
|
formSelects.data('roleId', 'local', {
|
arr: roleSelectData
|
});
|
// 回显user数据
|
if (doctor != null && doctor.roles) {
|
formSelects.value('roleId', doctor.roles);
|
}
|
|
} else {
|
layer.msg('获取角色失败', {
|
icon: 2,
|
time: 2000
|
});
|
}
|
}, 'GET');
|
}
|
/*
|
* 验证手机号码
|
*/
|
function validatorTel(content) {
|
|
// 正则验证格式
|
eval("var reg = /^1[345789]\\d{9}$/;");
|
var flag = RegExp(reg).test(content)
|
return flag;
|
}
|
//判断用户名是否被使用
|
var username_is_usered = function (username_id) {
|
var username = $("#" + username_id).val()
|
admin.req('api-user/users/findCountByMap', JSON.stringify({
|
username: username
|
}), function (data) {
|
if (data.code == 0) {
|
if (data.data > 0) {
|
$("#" + username_id).val("")
|
layer.msg("该手机号已经使用", {
|
icon: 2,
|
time: 2000
|
})
|
}
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 2000
|
});
|
}
|
}, 'post');
|
}
|
|
|
// 表单提交事件
|
form.on('submit(user-form-submit)', function (data) {
|
data.field.hospitalId = $("#hospitalId").val();
|
if (data.field.roleId != null && data.field.roleId != "") {
|
data.field.roles = data.field.roleId.split(',');
|
}
|
if ($("#doctorType").val() == 2) {
|
//将关于密码的的去掉
|
data.field.username = "";
|
data.field.password = "";
|
data.field.passwordSure = "";
|
} else {
|
if (data.field.roles == null || data.field.roles.length == 0) {
|
layer.msg("请选择角色");
|
return false;
|
}
|
if (data.field.roles.includes(guanliyuan_role)) {
|
data.field.isAdminUser = true;
|
} else {
|
data.field.isAdminUser = false;
|
}
|
var doctor = admin.getTempData('t_doctor');
|
//判断只有输入密码的时候进行密码判断
|
if (doctor != null) {
|
if (doctor.doctorType == 2 && doctorType != 2) {
|
if (data.field.username == null || data.field.username.trim() == "") {
|
layer.msg("请输入手机号");
|
return false;
|
}
|
if (data.field.password == null || data.field.password.trim() == "") {
|
layer.msg("请输入登录密码");
|
return false;
|
}
|
if (data.field.passwordSure == null || data.field.passwordSure.trim() == "") {
|
layer.msg("请输入确认密码");
|
return false;
|
} else {
|
if (data.field.password != data.field.passwordSure) {
|
layer.msg("两次密码不一致,请重新输入");
|
return false;
|
}
|
}
|
}
|
} else {
|
if (data.field.username == null || data.field.username.trim() == "") {
|
layer.msg("请输入手机号");
|
return false;
|
}
|
if (data.field.password == null || data.field.password.trim() == "") {
|
layer.msg("请输入登录密码");
|
return false;
|
}
|
if (data.field.passwordSure == null || data.field.passwordSure.trim() == "") {
|
layer.msg("请输入确认密码");
|
return false;
|
} else {
|
if (data.field.password != data.field.passwordSure) {
|
layer.msg("两次密码不一致,请重新输入");
|
return false;
|
}
|
}
|
}
|
data.field.roles.forEach(element => {
|
element = "" + element
|
});
|
}
|
data.field.roleId = null;
|
|
layer.load(2);
|
admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) {
|
layer.closeAll('loading');
|
if (data.code == 0) {
|
layer.closeAll();
|
parent.layui.table.reload('app-table', {});
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 3000
|
});
|
}
|
}, "POST");
|
return false;
|
});
|
|
//将新增 中的 serverUserName 赋值
|
form.on('select(serverUserId-add)', function (data) {
|
//将医院名称赋值
|
$('#serverUserName-add').val($(this)[0].innerHTML);
|
});
|
//新增 点击职称的触发事件
|
form.on('select(doctorRankId)', function (data) {
|
//将部门名称赋值
|
$('#doctorRank').val($(this)[0].innerHTML);
|
});
|
//新增 和 更新 科室触发的事件
|
form.on('select(departmentId)', function () {
|
//将部门名称赋值
|
$('#departmentName').val($(this)[0].innerHTML);
|
});
|
//获取科室
|
var getdepartment = function (data) {
|
admin.req('api-user/sysdepartment/findListByHospitalId', {
|
id: data
|
}, function (data) {
|
layer.closeAll('loading');
|
if (0 === data.code) {
|
department = data.data;
|
$('#departmentId').empty();
|
if (data.data.length > 0) {
|
$('#departmentName').val(data.data[0].departmentName);
|
}
|
$.each(data.data, function (index, item) {
|
//往下拉菜单里添加元素
|
$('#departmentId').append(new Option(item.departmentName, item.id,
|
false, false));
|
form.render('select', 'app-form');
|
})
|
form.render();
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 2000
|
});
|
}
|
}, 'get');
|
}
|
//职称添加数据
|
var getZhiCheng = function () {
|
admin.req('api-user/sysdictionaries/findAll', JSON.stringify({
|
dictionariesClassId: "DOCTOR_RANK"
|
}), function (data) {
|
layer.closeAll('loading');
|
if (0 === data.code) {
|
let selected = false;
|
doctorRank = data.data;
|
$.each(data.data, function (index, item) {
|
if (config.clientId === item.clientId) {
|
selected = true;
|
} else {
|
selected = false;
|
}
|
//往下拉菜单里添加元素
|
$('#doctorRankId').append(new Option(item.dictionariesName, item.id,
|
false, selected));
|
})
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 2000
|
});
|
}
|
}, 'Post');
|
}
|
//获取销售代表
|
var getXiaoShouDaiBiao = function (selectVal) {
|
admin.req('api-user/users/getAppointUser', { type: 0 }, function (data) {
|
layer.closeAll('loading');
|
if (0 === data.code) {
|
user = data.data;
|
$.each(data.data, function (index, item) {
|
//往下拉菜单里添加元素
|
$('#serverUserId-add').append(new Option(item.nickname, item.id,
|
false, (!strUtil.isEmpty(selectVal) && selectVal == item.id)));
|
})
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 2000
|
});
|
}
|
}, 'get');
|
}
|
// 显示新增弹窗
|
var loadEditData = function () {
|
$('#app-form-add')[0].reset();
|
$('#app-form-add').attr('method', 'POST');
|
$('.layui-layer-content').css('overflow', 'auto');
|
//将医院的数据保存到下拉表
|
let selected = false;
|
var selectVal="";
|
//先拿到当前登录用户的信息
|
var nowUser = config.getUser();
|
if (!strUtil.isEmpty(nowUser)) {
|
selectVal = nowUser.id;
|
}
|
//获取职称的
|
getZhiCheng();
|
//获取销售代表
|
getXiaoShouDaiBiao(selectVal);
|
//获取角色
|
get_role();
|
var upload = layui.upload;
|
$("#roleId_div").hide()
|
//执行实例
|
upload.render({
|
elem: '#phonto',
|
url: config.base_server + 'api-file/files-anon',
|
accept: 'file',
|
auto: true,
|
headers: {
|
"Authorization": "Bearer " + config.getToken().access_token
|
},
|
before: function (obj) {
|
layer.load(); //上传loading
|
//预读本地文件示例,不支持ie8
|
obj.preview(function (index, file, result) {
|
$(".layui-upload-img").remove();
|
$('#demo2').append('<img src="' + result +
|
'" width="50px" height="50px" alt="' + file.name +
|
'" class="layui-upload-img">')
|
});
|
},
|
done: function (data) {
|
layer.closeAll('loading');
|
$("#doctorLogo-add").val(data.url);
|
},
|
error: function (data) {
|
layer.closeAll('loading');
|
}
|
});
|
//将密码隐藏
|
$(".account").hide();
|
//将密码置空
|
$("#password").val("");
|
form.render();
|
//医生类型的选择事件
|
// form.on('select(doctorType)', function (data) {
|
// // console.log("eeeeeeeeeeeeeeeee");
|
// // var doctor = admin.getTempData('t_doctor');
|
// // debugger
|
// // console.log("doctordoctordoctordoctordoctor",doctor);
|
// var doctorType = $('#doctorType').val();
|
// //将密码项取消
|
// if (doctorType == 2) {
|
// $(".account").hide();
|
// } else {
|
// $(".account").show();
|
// }
|
// })
|
};
|
$("#username").blur(function () {
|
if (!validatorTel(doctorTel_add)) {
|
layer.msg("请输入正确的手机号");
|
|
} else {
|
username_is_usered("username");
|
}
|
})
|
$("#doctorTel-add").blur(function () {
|
$("#username").val($("#doctorTel-add").val())
|
var doctorTel_add = $("#doctorTel-add").val();
|
if (!validatorTel(doctorTel_add)) {
|
layer.msg("请输入正确的手机号");
|
//将手机号还原
|
$("#doctorTel-add").val("")
|
$("#username").val("")
|
|
} else {
|
username_is_usered("username");
|
}
|
})
|
//自动完成-医院名称
|
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) {
|
|
$("#hospitalId").val(resp.id);
|
//重新装载科室
|
getdepartment(resp.id);
|
}
|
});
|
//医生类型的选择事件
|
form.on('select(doctorType)', function (data) {
|
var doctor = admin.getTempData('t_doctor');
|
var doctorType = $('#doctorType').val();
|
if (doctor == null) {
|
if (doctorType != 2) {
|
$(".account").show();
|
$("#password_div").show();
|
$("#passwordSure_div").show();
|
$("#roleId_div").show()
|
} else {
|
$(".account").hide();
|
$("#roleId_div").hide()
|
}
|
} else {
|
if (doctor.doctorType == 2 && doctorType == 2) {
|
$(".account").hide();
|
$("#roleId_div").hide()
|
} else if (doctor.doctorType == 2 && doctorType != 2) {
|
$(".account").show();
|
$("#password_div").show();
|
$("#passwordSure_div").show();
|
$("#roleId_div").show()
|
if (doctor.username == null) {
|
$("#username").val(doctor.doctorTel);
|
form.render();
|
}
|
} else if (doctor.doctorType != 2 && doctorType != 2) {
|
$(".account").show();
|
$("#password_div").hide();
|
$("#passwordSure_div").hide();
|
$("#roleId_div").show()
|
} else if (doctor.doctorType != 2 && doctorType == 2) {
|
$(".account").hide();
|
$("#roleId_div").hide()
|
}
|
}
|
})
|
//数据的回显
|
var doctor = admin.getTempData('t_doctor');
|
$('#app-form-add').attr('method', 'POST');
|
if (doctor) {
|
//重新装载科室
|
getdepartment(doctor.hospitalId);
|
//获取职称的
|
getZhiCheng();
|
//获取销售代表
|
getXiaoShouDaiBiao();
|
//获取角色
|
get_role(doctor.isAdminUser);
|
form.val('app-form-add', doctor);
|
$("#hospitalId").val(doctor.hospitalId);
|
$("#password_div").hide();
|
$("#passwordSure_div").hide();
|
// $("#doctorTel-add").prop("disabled",true)
|
$("#doctorTel-add").unbind("blur")
|
//将密码项取消
|
if (doctor.doctorType == 2) {
|
$(".account").hide();
|
$("#roleId_div").hide()
|
} else {
|
$(".account").show();
|
$("#roleId_div").show()
|
}
|
$('#demo2').append('<img src="' + doctor.doctorLogo +
|
'" width="50px" height="50px" alt="' + "name" +
|
'" class="layui-upload-img">')
|
$("#password").removeAttr("lay-verify")
|
$("#password").removeAttr("required")
|
$("#passwordSure").removeAttr("lay-verify")
|
|
$("#doctorState-shi").attr("checked", doctor.doctorState? true : false);
|
$("#doctorState-fou").attr("checked", !doctor.doctorState ? true : false);
|
$("#isTop-shi").attr("checked", doctor.isTop? true : false);
|
$("#isTop-fou").attr("checked", !doctor.isTop ? true : false);
|
$("#isAnswer-shi").attr("checked", doctor.isAnswer? true : false);
|
$("#isAnswer-fou").attr("checked", !doctor.isAnswer ? true : false);
|
|
$("#isSigning-shi").attr("checked", doctor.isSigning? true : false);
|
$("#isSigning-fou").attr("checked", !doctor.isSigning ? true : false);
|
form.render();
|
} else {
|
loadEditData();
|
}
|
});
|
</script>
|