| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157 |
- /**
- * validator(校验器)文件 110613
- *
- *
- */
- wd.commonValidator={};
- var lsSfzh;
- /**
- * 非空校验器
- */
- wd.commonValidator.notNull =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var msgPrefix = params['msgPrfx'];//消息头
- var minValue = params['minLen'];//最断数值
- var maxValue = params['maxLen'];//最长数值
- var length = params['len'];//长度
- var trim =typeof params['trim']=="undefined"?true:params['trim'];//前后空格,true则不能保留空格,trim默认值为true
- var allNull =typeof params['allNull']=="undefined"?false:params['allNull'];//允许全部为空 2022-01-10
- /// 增加 noZero="true",值为 0 时,也作为空 -- 默认值为 true。Lin
- // 解决不允许为空的 码(int)、ID(long) 有默认值 0 的问题
- var noZero = (typeof params['noZero']=="undefined")? true : params['noZero'];
- ///
- if(!wd.commonValidator.condition.call(this,valueArr,params))return rs;
- // trim=(trim==null||trim==undefined)?true:trim;//
- var regTrim = /(^\s+)|(\s+$)/;
- var isNullCount = 0;
- var isBlankBefore = false;//曾经有空格
- var nullArr=[];
- for(var i=0;i<valueArr.length;i++){
- var value = valueArr[i];
- /* 改,增加 noZero="true",值为 0 时,也作为空 -- 默认值为 true。Lin
- if(value==null||value==''||value==undefined){
- */ if (value==null || value=='' || value==undefined || (noZero && value==0)) {
- nullArr.push(i);
- }
- /* 在公共校验器已经校验了
- if(value!=null&&value!=''){
- if(minValue!=null && value.length < minValue){
- rs += msgPrefix+'应至少'+minValue+'个字符\r\n';
- }
- if(maxValue!=null&&value.length> maxValue){
- rs += msgPrefix+'应不超过'+maxValue+'个字符\r\n';
- }
- if(maxValue!=null&&value.length> maxValue){
- rs += msgPrefix+'应不超过'+maxValue+'个字符\r\n';
- }
- }*/
- if(trim){
- if(value&& regTrim.test(value)&&isBlankBefore==false){
- rs += msgPrefix+'前后不能包含空格!\r\n';
- isBlankBefore=true;
- }
- }
- }
- // isNullCount==valueArr.length
- if(nullArr.length>0){
- //一个值
- if(valueArr.length==1){
- rs += msgPrefix+'不能为空!\r\n';
- }else{
- //多值
- var pp=msgPrefix.split(/,/);
- if(valueArr.length==nullArr.length){
- if(!allNull){
- rs += pp.join(",")+'不能全为空!\r\n';
- }
- }else{
- for(var i=0;i<nullArr.length;i++){
- var index=nullArr[i];
- rs += pp[index]+'不能为空!\r\n';
- }
- }
- }
- }
- rs += wd.commonValidator.validator(valueArr,params);
- return rs;
- }
- wd.commonValidator.idCard =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- // console.log("---------------------------------------");
- // console.log(valueArr);
- // console.log(params);
- // console.log("---------------------------------------");
- var rs = "";//返回的校验结果
- var value=valueArr[0];//身份证号值
- var sex;
- var csdqm;
- var birthday;
- // value=this.getElementValue("sfzh");
- birthday=this.getElementValue("csrq");
- if(birthday)
- birthday = birthday.replace(/-/g,'');
- sex=this.getElementValue("xbm");
- csdqm=this.getElementValue("csdqm");
- //仅校验身份号码
- var sfzjlbm =params['sfzjlbm']||this.getElementValue("sfzjlbm")||"1"; //valueArr[3];//身份证件类别码
- var msgPrefix = params['msgPrfx']||"";//消息头
- /* 改,增加默认值。Lin
- var idCardNotNull = params['idCardNotNull'];//身份证号不能为空
- */ var idCardNotNull = (params['notBlank']? params['notBlank'] : false);
- if (!value && idCardNotNull)
- {
- rs+=msgPrefix+'身份证件号不能为空!\r\n';
- }
- //如果证件类型为身份证,且不为空
- //如果身份证为888开头的,就不验证
- if(!value||sfzjlbm!=1||value.match(/^888.*/)){
- return rs;
- }
- var getBirthdayByIdCard;
- var Errors=new Array(
- "",
- msgPrefix+"身份证号位数不对!\r\n",
- msgPrefix+"身份证号出生日期超出范围或含有非法字符!\r\n",
- msgPrefix+"身份证号校验错误!(如果含X的,必须是大写半角的X!)\r\n",
- msgPrefix+"身份证地区非法!\r\n"
- );
- var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
- var Y,JYM;
- var S,M;
- var value_array = new Array();
- value_array = value.split("");
- switch(value.length){
- case 15:
- if ((parseInt(value.substr(6,2))+1900) % 4 == 0 || ((parseInt(value.substr(6,2))+1900) % 100 == 0 && (parseInt(value.substr(6,2))+1900) % 4 == 0 )){
- ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
- } else {
- ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
- }
- if(ereg.test(value)) rs+=Errors[0];
- else rs+=Errors[2];
- break;
- case 18:
- //18位身份号码检测
- //出生日期的合法性检查
- //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
- //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
- if ( parseInt(value.substr(6,4)) % 4 == 0 || (parseInt(value.substr(6,4)) % 100 == 0 && parseInt(value.substr(6,4))%4 == 0 )){
- ereg=/^[1-9][0-9]{5}[0-9]{4}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
- } else {
- ereg=/^[1-9][0-9]{5}[0-9]{4}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
- }
- if(ereg.test(value)){//测试出生日期的合法性
- //计算校验位
- S = (parseInt(value_array[0]) + parseInt(value_array[10])) * 7
- + (parseInt(value_array[1]) + parseInt(value_array[11])) * 9
- + (parseInt(value_array[2]) + parseInt(value_array[12])) * 10
- + (parseInt(value_array[3]) + parseInt(value_array[13])) * 5
- + (parseInt(value_array[4]) + parseInt(value_array[14])) * 8
- + (parseInt(value_array[5]) + parseInt(value_array[15])) * 4
- + (parseInt(value_array[6]) + parseInt(value_array[16])) * 2
- + parseInt(value_array[7]) * 1
- + parseInt(value_array[8]) * 6
- + parseInt(value_array[9]) * 3 ;
- Y = S % 11;
- M = "F";
- JYM = "10X98765432";
- M = JYM.substr(Y,1);//判断校验位
- if(M == value_array[17]) rs+=Errors[0]; //检测ID的校验位
- else rs+=Errors[3];
- }else
- rs+=Errors[2];
- break;
- default:
- rs+=Errors[1];
- break;
- }
- // if(birthPlaceValidate&&!rs){
- // var csdq = value.substring(0,6);
- // if(!csdqm||csdqm!=csdq){//不存在,或者不相等,校验失败
- // rs+=msgPrefix+'出生地区与身份证号不符!\r\n';
- // }
- // }
- try{
- var setValue = params['autoFill']?params['autoFill']:true;//自动填写性别、出生地区、出生日期
- if(!rs&&setValue&&(value.length==15||value.length==18)&&(!birthday||!sex)){
- var current_lsSfzh=lsSfzh;
- lsSfzh =value;
- var xbmVal;
- if(value.length == 15){
- xbmVal=(value.substring(14,15)%2==0?2:1);
- }else{
- xbmVal=(value.substring(16,17)%2==0?2:1);
- }
- this.setElementValue("xbm",xbmVal);
- this.setElementValue("csrq",value.substring(6,10)+"-"+value.substring(10,12)+"-"+value.substring(12,14));
- //处理出生地区
- //批量录入不支持级联,下面唔改住
- // var csdqm = value.substring(0,6);
- var thiscsdqm= this.getElementValue("csdqm");
- var thisjgdqm= this.getElementValue("jgdqm");
- thishkdqm= this.getElementValue("hkdqm");
- csdqm = value.substring(0,6);
- if(current_lsSfzh!=value&&(!thiscsdqm||!thisjgdqm)){
- $.ajax({
- async: false,
- type: "post",
- url: "/service?ssServ=selNewDqm", // =ry_getDqm。Lin
- data: {
- dqm: csdqm
- },
- success: function (data) {
- var csdqm = data;
- if(!csdqm)return;
- if(wd.edit.cascading.getInstance("csdqm")&&!thiscsdqm){
- wd.edit.cascading.getInstance("csdqm").setValue(csdqm);
- if(wd.edit.objectPicker.getInstance("csxian")&&wd.edit.objectPicker.getInstance("csxian").onchange){
- wd.edit.objectPicker.getInstance("csxian").onchange();
- }
- }
- if(wd.edit.cascading.getInstance("jgdqm")&&!thisjgdqm){
- wd.edit.cascading.getInstance("jgdqm").setValue(csdqm);
- if(wd.edit.objectPicker.getInstance("jgxian")&&wd.edit.objectPicker.getInstance("jgxian").onchange){
- wd.edit.objectPicker.getInstance("jgxian").onchange();
- }
- }
- if(wd.edit.cascading.getInstance("hkdqm")&&!thishkdqm){
- wd.edit.cascading.getInstance("hkdqm").setValue(csdqm);
- }
- },
- error: function (data) {
- console.log(data);
- }
- })
- }
- }
- // lsSfzh = growHeightList["sfzh"].val();
- }catch(e){
- console.log(e);
- }
- //出生日期,性别 先自动填写,再校验
- birthday=this.getElementValue("csrq");
- if(birthday)
- birthday = birthday.replace(/-/g,'');
- sex=this.getElementValue("xbm");
- var birthDayValidate= params["chkCsrq"]?params["chkCsrq"]:true;//是否关联校验出生日期,默认false,false校验
- var sexValidate= params["chkXb"]?params["chkXb"]:true;//是否关联校验性别,默认false,false校验
- var birthPlaceValidate= params["chkCsdq"]?params["chkCsdq"]:true;//是否关联校验出生地,默认false,false校验
- if(birthDayValidate&&!rs){
- var birthdayFromIdCard = value.substring(6,14);
- if(!birthday||birthday!=birthdayFromIdCard){//不存在,或者不相等,校验失败
- rs+=msgPrefix+'出生日期与身份证号不符!\r\n';
- }
- }
- if(sexValidate&&!rs){
- var sexFromIdCard;
- if(value.length == 15){
- sexFromIdCard=value.substring(14,15);
- }else{
- sexFromIdCard=value.substring(16,17);
- }
- if(!sex||sex%2!=sexFromIdCard%2){//不存在,或者不相等,校验失败
- rs+=msgPrefix+'性别与身份证号不符!\r\n';
- }
- }
- /// 增加。Lin
- if(!birthPlaceValidate){
- var csdq = value.substring(0,6);
- if(!csdqm||csdqm!=csdq){//不存在,或者不相等,校验失败
- rs+=msgPrefix+'出生地区与身份证号不符!\r\n';
- }
- }
- ///
- return rs;
- }
- /**
- * 身份证号校验器
- */
- wd.commonValidator.idCard20190625 =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = "";//返回的校验结果
- var value = document.querySelector("[name='sfzh']").value// valueArr[0];//身份证号值
- var birthday = document.querySelector("[name='csrq']").value//valueArr[1];//出生日期
- //var sex = document.querySelector("[name='xbm']").value//valueArr[2];//性别码
- var sfzlbmInput=document.querySelector("[name='sfzjlbm']")
- var sfzjlbm = sfzlbmInput?sfzlbmInput.value:1 //valueArr[3];//身份证件类别码
- if(!sfzjlbm)sfzjlbm=1;
- //var csdqm = document.querySelector("[name='csdqm']").value//valueArr[3];//身份证件类别码
- var msgPrefix = params['msgPrefix'];//消息头
- var idCardNotNull = params['sfzhNotNull'];//身份证号不能为空
- //var birthDayNotNull = params['csrqNotNull'];//出生年月不能为空
- //var sexNotNull = params['xbNotNull'];//性别不能为空
- //var csdqmNotNull = params['csdqmNotNull'];//性别不能为空
- var setValue = params['setValue'];//自动填写性别、出生地区、出生日期
- if(!msgPrefix)//如果用户有输入消息头
- msgPrefix='';
- var msgPrefix = params['msgPrefix'];//消息头
- if (!value && idCardNotNull)
- {
- rs+=msgPrefix+'身份证件号不能为空!\r\n';
- }
- /*if(!birthday&&birthDayNotNull)
- rs+=msgPrefix+'出生日期不能为空!\r\n';
- else{
- if(birthDayNotNull){
- birthday = birthday.replace(/-/g,'');
- }
- }*/
- if(birthday)
- birthday = birthday.replace(/-/g,'');
- /*if(!sex&&sexNotNull)
- rs+=msgPrefix+'性别不能为空!\r\n';
- if(!csdqm&&csdqmNotNull){
- rs+=msgPrefix+'出生地区不能为空!\r\n';
- }*/
- if(value&&(!sfzjlbm||sfzjlbm==1)){//如果证件类型为身份证,且不为空
- if(value.match(/^888.*/)){//如果身份证为888开头的,就不验证
- }else{
- var Errors=new Array(
- "",
- msgPrefix+"身份证号位数不对!\r\n",
- msgPrefix+"身份证号出生日期超出范围或含有非法字符!\r\n",
- msgPrefix+"身份证号校验错误!(如果含X的,必须是大写半角的X!)\r\n",
- msgPrefix+"身份证地区非法!\r\n"
- );
- var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
- var value,Y,JYM;
- var S,M;
- var value_array = new Array();
- value_array = value.split("");
- //地区检验
- //if(csdqm.substr(0,4)!=value.substr(0,4)/*area[parseInt(value.substr(0,2))]==null*/) rs+=Errors[4];
- //身份号码位数及格式检验
- switch(value.length){
- case 15:
- if ((parseInt(value.substr(6,2))+1900) % 4 == 0 || ((parseInt(value.substr(6,2))+1900) % 100 == 0 && (parseInt(value.substr(6,2))+1900) % 4 == 0 )){
- ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
- } else {
- ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
- }
- if(ereg.test(value)) rs+=Errors[0];
- else rs+=Errors[2];
- //校验出生年月
- /*if(birthday){
- var birthdayFromIdCard = value.substring(6,12);
- if(birthday!=birthdayFromIdCard)
- rs+=msgPrefix+'出生日期与身份证号不符!\r\n';
- }
- //校验性别
- if(sex){
- var sexFromIdCard = value.substring(14,15);
- if(sex%2!=sexFromIdCard%2)
- rs+=msgPrefix+'性别与身份证号不符!\r\n';
- }*/
- break;
- case 18:
- //18位身份号码检测
- //出生日期的合法性检查
- //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
- //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
- if ( parseInt(value.substr(6,4)) % 4 == 0 || (parseInt(value.substr(6,4)) % 100 == 0 && parseInt(value.substr(6,4))%4 == 0 )){
- ereg=/^[1-9][0-9]{5}[0-9]{4}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
- } else {
- ereg=/^[1-9][0-9]{5}[0-9]{4}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
- }
- if(ereg.test(value)){//测试出生日期的合法性
- //计算校验位
- S = (parseInt(value_array[0]) + parseInt(value_array[10])) * 7
- + (parseInt(value_array[1]) + parseInt(value_array[11])) * 9
- + (parseInt(value_array[2]) + parseInt(value_array[12])) * 10
- + (parseInt(value_array[3]) + parseInt(value_array[13])) * 5
- + (parseInt(value_array[4]) + parseInt(value_array[14])) * 8
- + (parseInt(value_array[5]) + parseInt(value_array[15])) * 4
- + (parseInt(value_array[6]) + parseInt(value_array[16])) * 2
- + parseInt(value_array[7]) * 1
- + parseInt(value_array[8]) * 6
- + parseInt(value_array[9]) * 3 ;
- Y = S % 11;
- M = "F";
- JYM = "10X98765432";
- M = JYM.substr(Y,1);//判断校验位
- if(M == value_array[17]) rs+=Errors[0]; //检测ID的校验位
- else rs+=Errors[3];
- }else
- rs+=Errors[2];
- //校验出生年月
- /*if(birthday){
- var birthdayFromIdCard = value.substring(6,14);
- if(birthday!=birthdayFromIdCard){
- rs+=msgPrefix+'出生日期与身份证号不符!\r\n';
- }
- }
- //校验性别
- if(sex){
- var sexFromIdCard = value.substring(16,17);
- if(sex%2!=sexFromIdCard%2)
- rs+=msgPrefix+'性别与身份证号不符!\r\n';
- }*/
- break;
- default:
- rs+=Errors[1];
- break;
- }
- }
- }
- //回显性别、出生日期、地区
- if(!rs&&setValue){
- if(value.length == 15){
- wd.edit.objectPicker.getInstance("xbm").initValue(value.substring(14,15)%2==0?2:1);
- }else{
- wd.edit.objectPicker.getInstance("xbm").initValue(value.substring(16,17)%2==0?2:1);
- }
- document.querySelector("[name='csrq']").value = value.substring(6,10)+"-"+value.substring(10,12)+"-"+value.substring(12,14);
- //处理出生地区
- var csdqm = value.substring(0,6);
- var csdqmstr = String(csdqm);
- var csshengdqm=csdqmstr.substring(0,2)+"0000";
- var csshidqm=csdqmstr.substring(0,4)+"00";
- if($("input[name='csdqm']").val()){
- return rs;
- }
- wd.edit.objectPicker.getInstance("cssheng").initValue(csshengdqm);
- wd.edit.objectPicker.getInstance("csshi").initValue(csshidqm);
- $("input[name=xbm]").click();//需要触发一次,否则级联无法生效
- wd.edit.objectPicker.getInstance("csxian").initValue(csdqm);
- $("input[name='csdqm']").val(csdqm);
- if($("input[name='hkdqm']").val()){
- return rs;
- }
- wd.edit.objectPicker.getInstance("hksheng").initValue(csshengdqm);
- wd.edit.objectPicker.getInstance("hkshi").initValue(csshidqm);
- //$("input[name=xbm]").click();//需要触发一次,否则级联无法生效
- wd.edit.objectPicker.getInstance("hkxian").initValue(csdqm);
- $("input[name='hkdqm']").val(csdqm);
- }
- return rs;
- }
- /**
- * 浮点数校验器
- */
- wd.commonValidator.float =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var minValue = params['minVal'];//最小数值
- var maxValue = params['maxVal'];//最大数值
- var decimalLength = params['decLen'];//保留几位
- var reg = new RegExp('^\\d+(\\.\\d{0,'+decimalLength+'})?$');
- var regValue = new RegExp('^\\d+(\\.\\d+)?$');
- var notNull = params['notBlank']==null?false:params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr,params);
- }else{
- rs += wd.commonValidator.validator(valueArr,params);
- }
- if(value!=null&&value!=''){
- if(!minValue)//minValue值不指定默认为0
- minValue="0";
- // if(!regValue.test(value)){
- if(isNaN(value)){
- rs += msgPrefix+'应为数字!\r\n';
- }else{
- // if(minValue!=null&&value<minValue){
- // rs += msgPrefix+'应不小于'+minValue+'\r\n';
- // }
- // if(maxValue!=null&&value>maxValue){
- // rs += msgPrefix+'应不大于'+maxValue+'\r\n';
- // }
- if(minValue!=null && (parseInt(value) < parseInt(minValue)&&minValue!="-")){
- rs += msgPrefix+'应不小于'+minValue+'\r\n';
- }
- if(maxValue!=null&&(parseInt(value) > parseInt(maxValue)&&maxValue!="+")){
- rs += msgPrefix+'应不大于'+maxValue+'\r\n';
- }
- // if(decimalLength!=null&&!reg.test(value)){
- var arr=value.toString().split(".");
- if(arr.length>1&&arr[1].length>parseInt(decimalLength)){
- rs += msgPrefix+'小数部分应不多于'+decimalLength+'位。\r\n';
- }
- }
- }
- return rs;
- }
- /**
- * 整数校验器
- */
- wd.commonValidator.int =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var minValue = params['minVal'];//最小数值
- var maxValue = params['maxVal'];//最大数值
- var regValue = new RegExp('^[1-9]*[1-9][0-9]*$');
- var notNull = params['notBlank']==null?false:params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr,params);
- }else{
- rs += wd.commonValidator.validator(valueArr,params);
- }
- //minValue值不指定默认为0
- if(!minValue){
- minValue="0";
- }
- if(value!=null&&value!=''){
- // if(value != 0 && !regValue.test(value)){
- // rs += msgPrefix+'应为正整数!\r\n';
- // }
- if(isNaN(value)){
- rs += msgPrefix+'应为整数!\r\n';
- }
- if(minValue!=null && (parseInt(value) < parseInt(minValue)&&minValue!="-")){
- rs += msgPrefix+'应不小于'+minValue+'\r\n';
- }
- if(maxValue!=null&&(parseInt(value) > parseInt(maxValue)&&maxValue!="+")){
- rs += msgPrefix+'应不大于'+maxValue+'\r\n';
- }
- }
- return rs;
- }
- /**
- * 2022-3-1 新加的整数校验器,isInt不知谁改成了数字校验器!!
- */
- wd.commonValidator.isInteger =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var minValue = params['minVal'];//最小数值
- var maxValue = params['maxVal'];//最大数值
- var regValue = new RegExp('^[1-9]*[1-9][0-9]*$');
- var notNull = params['notBlank']==null?false:params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr,params);
- }
- rs += wd.commonValidator.validator(valueArr,params);
- if(value!=null&&value!=''){
- if(value != 0 && !regValue.test(value)){
- rs += msgPrefix+'应为正整数!\r\n';
- }
- if(!rs&&minValue&& value <minValue){
- rs += msgPrefix+'应不小于'+minValue+'\r\n';
- }
- if(!rs&&maxValue&&value>maxValue){
- rs += msgPrefix+'应不大于'+maxValue+'\r\n';
- }
- }
- return rs;
- }
- /**
- * 金额数校验器
- */
- wd.commonValidator.money =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var reg = new RegExp('^\\d+(\\.\\d{0,2})?$');
- var regValue = new RegExp('^\\d+(\\.\\d+)?$');
- rs += wd.commonValidator.float(valueArr,params);
- if(regValue.test(value)&&value!=null&&value!=''&&!reg.test(value)){
- rs += msgPrefix+'小数部分应在两位以内。\r\n';
- }
- return rs;
- }
- /**
- * 公共校验器
- */
- wd.commonValidator.validator =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var noBlank = params['notBlank']==null?false:params['notBlank'];
- var minLength = params['minLen'];
- var maxLength = params['maxLen'];
- var length = params['len'];
- var regNoBlank = /\s/g;
- var regMin = new RegExp("^.{"+minLength+",}$");
- var regMax = new RegExp("^.{0,"+maxLength+"}$");
- var regScope = new RegExp("^.{"+minLength+","+maxLength+"}$");
- var regLength = new RegExp("^.{"+length+"}$");
- if(value!=null&&value!=''){
- if(noBlank&®NoBlank.test(value)){
- rs += msgPrefix+'不能含空格!\r\n';
- }
- if(minLength!=null&&!(value.length>=minLength)){
- rs += msgPrefix+'应至少'+minLength+'个字符!\r\n';
- }else if(maxLength!=null&&minLength!=null&&(value.length>=minLength&&value.length<=maxLength)){
- //rs += msgPrefix+'必需在'+minLength+' ~'+maxLength+'!\r\n';
- }else if(maxLength!=null&&!(value.length<=maxLength)){
- rs += msgPrefix+'长度应不超过'+maxLength+'\r\n';
- }
- if(length!=null&&!(value.length==length)){
- rs += msgPrefix+'必需等于'+length+'!\r\n';
- }
- }
- return rs;
- }
- /**
- * 内容管理技术规范的编码规则:[a-zA-Z_0-9] 和减号 校验器
- */
- wd.commonValidator.contentCodeRule =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var regValue = new RegExp('^[\w-]+$');
- var notNull = params['notBlank']==null?false:params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr,params);
- }else{
- rs += wd.commonValidator.validator(valueArr,params);
- }
- if(value!=null&&value!=''){
- if(value != 0 && !regValue.test(value)){
- rs += msgPrefix+'必需由字母、数字、减号、下划线组成!\r\n';
- }
- }
- return rs;
- }
- /**
- * 页码,只允许字母和数字
- */
- wd.commonValidator.pageNum =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var regValue = new RegExp('^[\\da-zA-Z]+$');
- var notNull = params['notBlank']==null?false:params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr,params);
- }else{
- rs += wd.commonValidator.validator(valueArr,params);
- }
- if(value!=null&&value!=''){
- if(value != 0 && !regValue.test(value)){
- rs += msgPrefix+'必需由字母、数字组成!\r\n';
- }
- }
- return rs;
- }
- /**
- * 英文名
- * 由数字、字母和下划线组成,长度为2-30个字符
- */
- wd.commonValidator.enName = function(valueArr, params){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];
- var regValue = new RegExp('^\\w{2,30}$');
- var notNull = params['notBlank'] == null ? false : params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr, params);
- }
- if(value != null && value != ''){
- if(!regValue.test(value)){
- rs += msgPrefix + '只能由数字、字母和下划线组成,长度为2-30个字符!\r\n';
- }
- // var ryid =$('#ryid').val()||$('input[name=ryid]').val();
- var ryid=this.getElementValue("ryid");
- var cb = $.ajax({type: "post",
- url: "/service?&ssServ=ry_yzywm",
- data:{'userywm':valueArr.toString(), 'ryid': ryid},
- cache:false,
- async:false,
- dataType: "json" });
- if(cb.status==404){
- rs+="服务器连接失败!刷新页面";
- }else{
- var queryData = cb.responseJSON;
- if(queryData.isFind != "false"){
- rs+="英文名已存在!";
- }
- }
- }
- return rs;
- }
- wd.commonValidator.csenName = function(valueArr, params){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];
- var regValue = new RegExp('^\\w{2,30}$');
- var notNull = params['notBlank'] == null ? false : params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr, params);
- }
- if(value != null && value != ''){
- if(!regValue.test(value)){
- rs += msgPrefix + '只能由数字、字母和下划线组成,长度为2-30个字符!\r\n';
- }
- // var ryid =$('#ryid').val()||$('input[name=ryid]').val();
- var ryid=this.getElementValue("ryid");
- var cb = $.ajax({type: "post",
- url: "/service?&ssServ=csry_yzywm",
- data:{'userywm':valueArr.toString(), 'ryid': ryid},
- cache:false,
- async:false,
- dataType: "json" });
- if(cb.status==404){
- rs+="服务器连接失败!刷新页面";
- }else{
- var queryData = cb.responseJSON;
- if(queryData.isFind != "false"){
- rs+="英文名已存在!";
- }
- }
- }
- return rs;
- }
- /**
- * 域名唯一
- *
- */
- wd.commonValidator.ymwy = function(valueArr, params){
- var rs = '';
- var value = valueArr[0];
- var msgPrefix = params['msgPrfx'];//消息头
- var regValue = new RegExp('^[\w-]+$');
- var notNull = params['notBlank']==null?false:params['notBlank'];
- if(notNull){
- rs += wd.commonValidator.notNull(valueArr, params);
- }
- if(value!=null&&value!=''){
- // var wangzid = ($('input[name="wangzid"]') != undefined ? $('input[name="wangzid"]').val() : $('#wangzid').val());
- var wangzid=this.getElementValue("wangzid");
- var cb = $.ajax({
- type:'post' ,
- url:"/service?ssServ=grwzbj_wz_ym_wy",
- data:{
- ym:value,
- wangzid:wangzid
- },
- dataType:"json",
- async:false,
- });
- if(cb.status==404){
- rs+="服务器连接失败!刷新页面";
- }else{
- var queryData = cb.responseJSON;
- if(queryData.isFind != false){
- rs+="域名已存在!";
- }
- }
- }
- return rs;
- }
- /**
- * 附件是否为空校验
- * @param {*} valueArr
- * @param {*} params
- * @returns
- */
- wd.commonValidator.fjNotNull =
- function(valueArr,//保存所有被校验的表单值的数组
- params//校验器的其余参数
- ){
- var rs = '';
- var msgPrefix = params['msgPrfx'];//消息头
- //var nrid = this.getElementValue("fjid");
- var nrid=valueArr[0];
- if (!nrid) {
- rs += msgPrefix+'不能为空!\r\n';
- } else {
- $.ajax({
- async: false,
- type: "post",
- url: "/service?ssServ=wrCcmsList", // =getSubNrCount",。Lin
- data: {
- nrid: "T-" + nrid,
- jlztm:1
- },
- dataType: "json", // 增加,统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
- success: function (data) {
- /* 改,增加错误处理 -- 统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
- * 去掉 JSON.parse(,改为用 Map<String, Object> 传输
- var names = JSON.parse(data);
- */
- if (data.ssCode != 0) {
- alert(data.ssMsg);
- return;
- }
- var names = data.ssData;
- var isArray = $.isArray(names);
- if (!isArray || names.length <= 0) {
- rs += msgPrefix+'不能为空!\r\n';
- }
- },
- error: function (data) {
- console.log(data);
- }
- })
- }
- rs += wd.commonValidator.validator(valueArr,params);
- return rs;
- }
- /**
- * 大于
- * @param {Object} valueArr
- * @param {Object} params
- */
- wd.commonValidator.greater = function(valueArr, params){
- var rs = '';
- var msgPrefix = params['msgPrfx'];//消息头
- var pp=msgPrefix.split(/,/);
- msgPrefix=pp[0]+"大于"+pp[1]+"! \r\n";
- if(valueArr.length<2){
- return rs;
- }
- var leftValue=valueArr[0];
- var rightValue=valueArr[1];
- if(!leftValue||!rightValue){
- return rs;
- }
- var eq =typeof params['equal']=="undefined"?false:params['equal'];//包括大小相等
- if(!!parseFloat(leftValue)&&!!parseFloat(rightValue) ){
- if(eq){
- if(parseFloat(leftValue)<parseFloat(rightValue)){
- // console.log(arguments);
- rs += msgPrefix;
- }
- }else{
- if(parseFloat(leftValue)<=parseFloat(rightValue)){
- // console.log(arguments);
- rs += msgPrefix;
- }
- }
- }
- return rs;
- }
- /**
- * 小于
- * @param {Object} valueArr
- * @param {Object} params
- */
- wd.commonValidator.less = function(valueArr, params){
- var rs = '';
- var msgPrefix = params['msgPrfx'];//消息头
- var pp=msgPrefix.split(/,/);
- msgPrefix=pp[0]+"小于"+pp[1]+"! \r\n";
- var eq =typeof params['equal']=="undefined"?false:params['equal'];//包括大小相等
- if(valueArr.length>=2&&!!parseFloat(valueArr[0])&&!!parseFloat(valueArr[1]) ){
- if(eq){
- if(parseFloat(valueArr[0])>parseFloat(valueArr[1])){
- // console.log(arguments);
- rs += msgPrefix;
- }
- }else{
- if(parseFloat(valueArr[0])>=parseFloat(valueArr[1])){
- // console.log(arguments);
- rs += msgPrefix;
- }
- }
- }
- return rs;
- }
- /**
- * 不等于
- * @param {Object} valueArr
- * @param {Object} params
- */
- wd.commonValidator.notEqual = function(valueArr, params){
- var rs = '';
- var msgPrefix = params['msgPrfx'];//消息头
- var pp=msgPrefix.split(/,/);
- console.log(valueArr);
- for(var i=0;i<valueArr.length;i++){
- if(!valueArr[i])continue;
- var index=valueArr.indexOf(valueArr[i],i+1);
- if(index!=-1){
- rs+=pp[i]+"和"+pp[index]+"不能相同!\r\n";
- break;
- }
- }
- return rs;
- }
- wd.commonValidator.condition=function(valueArr, params){
- //满足条件才会校验
- if(params['condition']){
- try{
- //xybalxm:["51"]
- var condition=eval("({"+params['condition']+"})");
- for(var key in condition){
- var n=this.getElementValue(key);
- if(condition[key].indexOf(n)==-1){
- return false;
- }
- }
- }catch(e){
- console.log(e);
- }
- }
- return true;
- }
- /**
- * 数值是否已存在校验
- * @param {*} valueArr
- * @param {*} params
- * @returns
- */
- wd.commonValidator.exists = function(valueArr, params){
- var rs = '';
- //表名
- var table = params['tab']; // ['table']。Lin
- //字段名
- var field = params['field'];
- //数值
- var value = valueArr[0];
- //主键
- /* 改为改用 对象ID。Lin
- var id = this.getElementValue("validationId");;
- */
- /* 再改,ID 字段名由上层决定。Lin
- var id = this.getElementValue(table+"id");
- */
- var idName = params['id'];
- var id = this.getElementValue(idName);
- if(value!=null&&value!=''){
- var cb = $.ajax({type: "post",
- url: "/service?&ssServ=chkNotDup", // =value_exists_validation。Lin
- /* 再改,增加 "idName" -- ID 字段名由上层决定。Lin
- data:{'table':table, 'field': field, 'value': value, 'id': id},
- */ data:{'table':table, 'field': field, 'value': value, 'id': id, 'idName': idName},
- cache:false,
- async:false,
- dataType: "json" });
- var queryData = cb.responseJSON;
- if(queryData.isFind != "false"){
- rs= params['msg'];
- }
- }
- return rs;
- }
- // 增加,多个字段值是否匹配。Lin
- // <notMatch field="jfrxm,jfrgrdh" parm="{relField:'jfrxm,jfrgrdh',srcTab:'ry',srcField:['xm','grdh']}"/>
- wd.commonValidator.chkNotMatch = function(valueArr, params){
- var rs = '';
- //表名
- var table = params['srcTab']; // "ry"(人员)。Lin
- //字段名
- var field = params['srcField']; // "xm,grdh"(姓名,个人电话)。Lin
- //数值
- /* 增加 parm="{relField:'jfrxm,jfrgrdh', -- 相关的页面字段。Lin
- * 去掉原来的 <ichker defField="['sfzh','csrq','xbm']
- * value,串成 "张三,12345"
- var value = valueArr[0];
- */
- var relField = params['relField']; // "jfrxm,jfrgrdh"(接访人姓名,接访人个人电话)。Lin
- if (relField == null || relField == "")
- return rs;
- var value = "";
- var fieldArr = relField.split(",");
- for(var i = 0; i < fieldArr.length; i++) {
- var v = this.getElementValue(fieldArr[i]);
- if (v == null || v == "") {
- value = "";
- break;
- }
- if (value != "")
- value += ",";
- value += v.trim();
- }
- if (value == "")
- return rs;
- var cb = $.ajax({type: "post",
- url: "/service?&ssServ=chkNotMatch",
- data:{'table':table, 'field': field, 'value': value},
- cache:false,
- async:false,
- dataType: "json" });
- var queryData = cb.responseJSON;
- if (queryData.isMatch == "false") {
- rs= params['msg'];
- }
- return rs;
- }
- // 增加,最少选一个(alo = at least one)。Lin
- // <notBlank field="zh|ywm|ryh"/>
- // 加载时生成 parm="{relField:'zh,ywm,ryh'
- wd.commonValidator.chkAlo = function(valueArr, params){
- var rs = '';
- /// 抄自 wd.commonValidator.notNull(。Lin
- var regTrim = /(^\s+)|(\s+$)/;
- var value = valueArr[0];
- if (value && regTrim.test(value))
- rs += '前后不能包含空格!<br>';
- ///
- var relField = params['relField']; // "zh,ywm,ryh"(账号、英文名、人员号)。Lin
- if (relField == null || relField == "")
- return rs;
- var pass = false;
- var fieldArr = relField.split(",");
- for (var i = 0; i < fieldArr.length; i++) {
- var v = this.getElementValue(fieldArr[i]);
- if (v) {
- v = v.trim();
- if (v) {
- pass = true;
- break;
- }
- }
- }
- if (!pass)
- rs += params['msgPrfx'] +" 不能全为空"
- return rs;
- }
|