//姓名 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("请求失败") }