//姓名
var $nameInput = $("#name"),
// 医保卡号
$sscInput = $("#ybcard").find("input"),
// 手机号码
$mobileInput = $("#phonenum").find("input"),
// 出生日期
$Birthday = $("#Birthday").find("input"),
// 户口所在地
$address = $("#address").find("input"),
//所属社区
$committee = $("#committee"),
//现住址
$Present_Address = $('#Present_Address').find('input'),
// 表单的ul容器
$infoList = $("#info_list"),
// 下一步按钮
$nextStep = $('#next_step');
var nation, blood, marryed;
var nationObj = {},
marryedObj = {},
bloodObj = {};
var self,docInfo;
var state;//状态
var encryKey;
mui.plusReady(function(){
//获取公钥
sendPost('login/public_key', {},null, function(res) {
if (res.status==200) {
var mod = res.data.modulus;
var exp = res.data.exponent;
encryKey = RSAUtils.getKeyPair(exp, "", mod);
}else{
mui.toast('获取公钥失败')
}
},'GET')
//返回事件
mui.back = function(){
backAction();
}
var self = plus.webview.currentWebview();
state = self.state;
$('#name').text(self.name)
$('#idcard').val(self.idCard)
//身份证提取信息
var idStr;
var dd = self.idCard;
if(dd.length == 18){
idStr = dd.substring(6,10)+'-'+dd.substring(10,12)+'-'+dd.substring(12,14)
if(dd.substring(16,17)%2==0){
$('#sex').attr('data-code','2')
}else{
$('#sex').attr('data-code','1')
}
}else if(dd.length == 15){
idStr = '19'+dd.substring(6,8)+'-'+dd.substring(8,10)+'-'+dd.substring(10,12)
if(dd.substring(14,15)%2==0){
$('#sex').attr('data-code','2')
}else{
$('#sex').attr('data-code','1')
}
}
$Birthday.val(idStr)
// 获取血型、婚姻、民族字典
sendPost('/doctor/patient/getNationDict', {}, getPublicDataFailed, function(res) {
if (res.status==200) {
nationObj = res.data
addOneContent1(nationObj);
}else{
mui.toast('获取民族字典数据失败')
}
},'GET')
sendPost('/doctor/patient/getMarryDict', {}, getPublicDataFailed, function(res) {
if (res.status ==200) {
marryedObj = res.data
addOneContent2(marryedObj);
}else{
mui.toast('获取婚姻字典数据失败')
}
},'GET')
sendPost('/doctor/patient/getBloodDict', {}, getPublicDataFailed, function(res) {
if (res.status==200) {
bloodObj = res.data
addOneContent3(bloodObj);
}else{
mui.toast('获取血型字典数据失败')
}
},'GET')
$Birthday.mobiscroll().date({
theme: "ios",
lang: "zh",
display: "bottom",
dateFormat: "yy-mm-dd",
onSelect: function(valueText, inst) {
}
})
addOneContent4([{'code':'1','name':'男'},{'code':'2','name':'女'}])
// 弹出框生成民族内容
function addOneContent1(arr) {
var len = arr.length;
var html = "";
for(var i = 0; i < len; i++) {
html += ''
}
$('#nation').html(html)
$('#nation').mobiscroll().select({
theme: "ios",
lang: "zh",
placeholder:'请选择民族',
display: "bottom",
onSelect: function(valueText, inst) {
$('#national').attr('data-code',inst._tempValue)
$('#national').attr('data-name',valueText)
}
})
}
// 弹出框生成婚姻内容
function addOneContent2(arr) {
var len = arr.length;
var html = "";
for(var i = 0; i < len; i++) {
html += ''
}
$('#marryed').html(html)
$('#marryed').mobiscroll().select({
theme: "ios",
lang: "zh",
placeholder:'请选择婚姻情况',
display: "bottom",
onSelect: function(valueText, inst) {
$('#marry').attr('data-code',inst._tempValue)
$('#marry').attr('data-name',valueText)
}
})
}
// 弹出框生成血型内容
function addOneContent3(arr) {
var len = arr.length;
var html = "";
for(var i = 0; i < len; i++) {
html += ''
}
$('#Bloodtype').html(html)
$('#Bloodtype').mobiscroll().select({
theme: "ios",
lang: "zh",
placeholder:'请选择血型',
display: "bottom",
onSelect: function(valueText,inst) {
$('#Blood_type').attr('data-code',inst._tempValue)
$('#Blood_type').attr('data-name',valueText)
}
})
}
// 弹出框生成性别
function addOneContent4(arr) {
var len = arr.length;
var html = "";
for(var i = 0; i < len; i++) {
if(arr[i].code == $('#sex').attr('data-code')){
html += ''
}else{
html += ''
}
}
$('#sexs').html(html)
$('#sexs').mobiscroll().select({
theme: "ios",
lang: "zh",
placeholder:'请选择性别',
display: "bottom",
onSelect: function(valueText, inst) {
$('#sex').attr('data-code',inst._tempValue)
}
})
}
initExpressAddr();
//初始化户口所在地选择下拉框数据
function initExpressAddr(){
picker = new mui.PopPicker({
layer: 2,
layerNames: ["省","市"]
});
//获取省份信息
getDistrict(1, '', 0);
bindPickerEvent();
}
//绑定picker的事件
function bindPickerEvent(){
$(picker.pickers[0].holder).on('change', function(event) {
var eventData = event.originalEvent.detail || {},
item = eventData.item;
if(!item || !item.value) {
return ;
}
//获取市信息
getDistrict(2, item.value, 1);
});
}
/**
* 获得省市区数据
* @param {number} type 1-省,2-市,3-区
* @param {string} code 省市对应的code
* @param {number} level 对应下拉框对应的列 0-省,1-市,2-区
*/
function getDistrict(type, code, level){
var url = 'common/district',
params = {type: type, code: code};
sendPost(url,params,getPublicDataFailed,function(res){
if(res.status == 200){
var data = _.map(res.list, function(o){
return {
value: o.code,
text: o.name
}
});
picker.pickers[level].setItems(data);
}else{
getPublicDataFailed(res);
}
},'POST','',true)
}
//选择地址下拉框
$("#address").on('click', function(){
picker.show(function(selected){
var text = selected[0].text+selected[1].text;
$("#address .select-input").val(text);
$("#address .select-input").attr('data-code',selected[1].value);
})
})
// 获取填写的数据
var getInputs = function() {
var data = {
name: $nameInput.text().trim(), // 姓名
sex:$('#sex').attr('data-code'),//性别
sexName:$('#sex').attr('data-code')=='1'?'男':'女',
ssc: $sscInput.val().trim().toUpperCase(), // 医保卡号
mobile: $mobileInput.val().trim(), // 手机号码
Birthday: $Birthday.val(), // 出生日期
address: $address.val(), // 户口所在地
addressCode: $address.attr('data-code'), // 户口所在地
national: $('#national').attr('data-code'), // 民族
nationalName: $('#national').attr('data-name'),
marry: $('#marry').attr('data-code'), // 婚姻情况
marryName: $('#marry').attr('data-name'),
Blood_type: $('#Blood_type').attr('data-code'), // 血型
Blood_typeName: $('#Blood_type').attr('data-name'),
countryCode: $committee.attr('data-jwcode'), //居委会
countryName: $committee.val(),
Present_Address: $Present_Address.val().trim(), //现住址
idcard:RSAUtils.encryStr(encryKey, $('#idcard').val().trim()),
idcardAll:$('#idcard').val().trim(),
}
return data;
},
// 必输验证
validRequired = function(data) {
var fieldsStr = "ssc,mobile,Birthday,address,national,marry,Blood_type,countryCode,Present_Address",
fieldMap = {
ssc: "医保卡号",
mobile: "手机号码",
Birthday: "出生日期",
address: "户口所在地",
national: "民族",
marry: "婚姻情况",
Blood_type: "血型",
countryCode: "居委会",
Present_Address: "现住址"
},
fields = fieldsStr.split(","),
invalidField;
// 某个字段为""、null、undefined,则该字段不能通过必输校验
invalidField = _.find(fields, function(key) {
return !data[key] && data[key] !== 0;
});
if(invalidField) {
mui.toast(fieldMap[invalidField] + '不能为空');
return false;
} else {
return true;
}
},
// 校验医保卡号格式
validSSC = function(ssc, isshow) {
var sscReg = /^([a-zA-Z]{1}[a-zA-Z0-9]{8}|[0-9]{12})$/;
if(!ssc) return;
if(!sscReg.test(ssc)) {
$sscInput.css("color", "red")
if(isshow != false) {
mui.toast("请填写有效的医保卡卡号");
}
return false;
}
$sscInput.css("color", "");
return true;
},
// 校验手机号格式
validMobile = function(mobile) {
var mobileReg = /^[1][3578][0-9]{9}$/;
if(!mobile) return;
if(!mobileReg.test(mobile)) {
$mobileInput.css("color", "red");
mui.toast("请填写有效的手机号码");
return false;
}
$mobileInput.css("color", "");
return true;
},
// 输入格式验证
validFormat = function(data) {
return validSSC(data.ssc) && (!data.mobile || validMobile(data.mobile))
},
// 所有输入验证
validInputsPromise = function(fun) {
// 表单数据
var data = getInputs();
return Promise.resolve()
.then(function() {
if(!validRequired(data)) throw new Error("必输校验失败");
})
.then(function() {
if(!validFormat(data)) throw new Error("格式校验失败");
})
.then(function() {
return fun&&fun.call(this,data);
})
.then(function(flag) {
if(!flag) throw new Error("数据有效性校验失败");
})
.then(function() {
// 所有校验成功
$infoList.find('input').css("color", "");
return data;
});
},
bindEvents = function() {
//选择居委会
selectCommittee()
// 预览
$nextStep.on('tap', function() {
validInputsPromise(function(data){
plus.storage.setItem("jiandangCase1",JSON.stringify(data))
mui.openWindow({
id: "xinxiqueren",
url: "xinxiqueren.html",
createNew:true,
extras: {
state:state
}
})
})
})
//详细信息
$(".detail").on('tap', function() {
validInputsPromise(function(data){
plus.storage.setItem("jiandangCase1",JSON.stringify(data))
mui.openWindow({
id: "xinxicaiji",
url: "xinxicaiji.html",
extras: {
state:state
}
})
})
})
// 获取焦点时恢复输入的字体颜色
$('input').on('focus',function() {
$(this).css("color", "");
})
$sscInput.on('blur', function() {
validSSC($(this).val().trim());
})
$mobileInput.on('blur', function() {
validMobile($(this).val().trim());
})
}
bindEvents()
//返回重置
function backAction(){
if(plus.storage.getItem("jiandangCase1")){
dialog({
content: '是否退出自助建档?',
okValue: '继续编辑',
cancelValue: '确定退出',
cancel: function () {
plus.storage.removeItem("jiandangCase1")
plus.storage.removeItem("jiandangCase2")
closePage()
},
ok: function() {
return
}
}).showModal();
}else{
closePage()
}
function closePage(){
var zzjd = plus.webview.getWebviewById('zizhujiandang');
var xxcj = plus.webview.getWebviewById('xinxicaiji');
var xxqr = plus.webview.getWebviewById('xinxiqueren');
var dljd = plus.webview.getWebviewById('dailijiandang');
if(xxqr){xxqr.close('none')}
if(dljd){dljd.close('none')}
if(xxcj){xxcj.close('none')}
zzjd.close()
}
}
})
function getPublicDataFailed(res) {
mui.toast("请求失败")
}