mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2026-01-06 04:58:10 +00:00
2 lines
22 KiB
JavaScript
2 lines
22 KiB
JavaScript
import{O as e,P as t,Q as r,k as n,l as s,e as i,f as a,w as o,h as l,n as u,S as c,x as d,B as f,y as p,G as m,m as h,p as y,W as g,X as b,r as _,H as v,c as q,Y as x,Z as w,d as P,a as S,z as $,j as T,I as O,F as k,T as j,L as F}from"./index-b8ec63bc.js";import{_ as C}from"./u-icon.45222ba8.js";import{_ as A}from"./u-line.17f02c8e.js";import{_ as D}from"./_plugin-vue_export-helper.1b428a4d.js";import{u as E}from"./u-input.0bd1cb2a.js";import{_ as I}from"./u-modal.c86a68c4.js";const N=D({name:"u-form-item",mixins:[t,r,{props:{label:{type:String,default:e.formItem.label},prop:{type:String,default:e.formItem.prop},borderBottom:{type:[String,Boolean],default:e.formItem.borderBottom},labelWidth:{type:[String,Number],default:e.formItem.labelWidth},rightIcon:{type:String,default:e.formItem.rightIcon},leftIcon:{type:String,default:e.formItem.leftIcon},required:{type:Boolean,default:e.formItem.required},leftIconStyle:{type:[String,Object],default:e.formItem.leftIconStyle}}}],data:()=>({message:"",parentData:{labelPosition:"left",labelAlign:"left",labelStyle:{},labelWidth:45,errorType:"message"}}),computed:{propsLine:()=>uni.$u.props.line},mounted(){this.init()},methods:{init(){this.updateParentData(),this.parent||uni.$u.error("u-form-item需要结合u-form组件使用")},updateParentData(){this.getParentData("u-form")},clearValidate(){this.message=null},resetField(){const e=uni.$u.getProperty(this.parent.originalModel,this.prop);uni.$u.setProperty(this.parent.model,this.prop,e),this.message=null},clickHandler(){this.$emit("click")}}},[["render",function(e,t,r,y,g,b){const _=m,v=n(s("u-icon"),C),q=h,x=n(s("u-line"),A);return i(),a(q,{class:"u-form-item"},{default:o((()=>[l(q,{class:"u-form-item__body",onClick:b.clickHandler,style:u([e.$u.addStyle(e.customStyle),{flexDirection:"left"===g.parentData.labelPosition?"row":"column"}])},{default:o((()=>[c(e.$slots,"label",{},(()=>[e.required||e.leftIcon||e.label?(i(),a(q,{key:0,class:"u-form-item__body__left",style:u({width:e.$u.addUnit(e.labelWidth||g.parentData.labelWidth),marginBottom:"left"===g.parentData.labelPosition?0:"5px"})},{default:o((()=>[l(q,{class:"u-form-item__body__left__content"},{default:o((()=>[e.required?(i(),a(_,{key:0,class:"u-form-item__body__left__content__required"},{default:o((()=>[d("*")])),_:1})):f("",!0),e.leftIcon?(i(),a(q,{key:1,class:"u-form-item__body__left__content__icon"},{default:o((()=>[l(v,{name:e.leftIcon,"custom-style":e.leftIconStyle},null,8,["name","custom-style"])])),_:1})):f("",!0),l(_,{class:"u-form-item__body__left__content__label",style:u([g.parentData.labelStyle,{justifyContent:"left"===g.parentData.labelAlign?"flex-start":"center"===g.parentData.labelAlign?"center":"flex-end"}])},{default:o((()=>[d(p(e.label),1)])),_:1},8,["style"])])),_:1})])),_:1},8,["style"])):f("",!0)]),!0),l(q,{class:"u-form-item__body__right"},{default:o((()=>[l(q,{class:"u-form-item__body__right__content"},{default:o((()=>[l(q,{class:"u-form-item__body__right__content__slot"},{default:o((()=>[c(e.$slots,"default",{},void 0,!0)])),_:3}),e.$slots.right?(i(),a(q,{key:0,class:"item__body__right__content__icon"},{default:o((()=>[c(e.$slots,"right",{},void 0,!0)])),_:3})):f("",!0)])),_:3})])),_:3})])),_:3},8,["onClick","style"]),c(e.$slots,"error",{},(()=>[g.message&&"message"===g.parentData.errorType?(i(),a(_,{key:0,class:"u-form-item__body__right__message",style:u({marginLeft:e.$u.addUnit("top"===g.parentData.labelPosition?0:e.labelWidth||g.parentData.labelWidth)})},{default:o((()=>[d(p(g.message),1)])),_:1},8,["style"])):f("",!0)]),!0),e.borderBottom?(i(),a(x,{key:0,color:g.message&&"border-bottom"===g.parentData.errorType?e.$u.color.error:b.propsLine.color,customStyle:`margin-top: ${g.message&&"message"===g.parentData.errorType?"5px":0}`},null,8,["color","customStyle"])):f("",!0)])),_:3})}],["__scopeId","data-v-a180cd81"]]);const R=D({name:"u-code",mixins:[t,r,{props:{seconds:{type:[String,Number],default:e.code.seconds},startText:{type:String,default:e.code.startText},changeText:{type:String,default:e.code.changeText},endText:{type:String,default:e.code.endText},keepRunning:{type:Boolean,default:e.code.keepRunning},uniqueKey:{type:String,default:e.code.uniqueKey}}}],data(){return{secNum:this.seconds,timer:null,canGetCode:!0}},mounted(){this.checkKeepRunning()},watch:{seconds:{immediate:!0,handler(e){this.secNum=e}}},methods:{checkKeepRunning(){let e=Number(y(this.uniqueKey+"_$uCountDownTimestamp"));if(!e)return this.changeEvent(this.startText);let t=Math.floor(+new Date/1e3);this.keepRunning&&e&&e>t?(this.secNum=e-t,g(this.uniqueKey+"_$uCountDownTimestamp"),this.start()):this.changeEvent(this.startText)},start(){this.timer&&(clearInterval(this.timer),this.timer=null),this.$emit("start"),this.canGetCode=!1,this.changeEvent(this.changeText.replace(/x|X/,this.secNum)),this.setTimeToStorage(),this.timer=setInterval((()=>{--this.secNum?this.changeEvent(this.changeText.replace(/x|X/,this.secNum)):(clearInterval(this.timer),this.timer=null,this.changeEvent(this.endText),this.secNum=this.seconds,this.$emit("end"),this.canGetCode=!0)}),1e3)},reset(){this.canGetCode=!0,clearInterval(this.timer),this.secNum=this.seconds,this.changeEvent(this.endText)},changeEvent(e){this.$emit("change",e)},setTimeToStorage(){if(this.keepRunning&&this.timer&&this.secNum>0&&this.secNum<=this.seconds){let e=Math.floor(+new Date/1e3);b({key:this.uniqueKey+"_$uCountDownTimestamp",data:e+Number(this.secNum)})}}},beforeDestroy(){this.setTimeToStorage(),clearTimeout(this.timer),this.timer=null}},[["render",function(e,t,r,n,s,o){const l=h;return i(),a(l,{class:"u-code"})}],["__scopeId","data-v-198ccd63"]]);function V(e){const t=_("");return{image:t,refresh:async()=>{try{const r=await w();200==r.code&&(e.captcha_key=r.data.captcha_key,e.captcha_code="",t.value=r.data.img.replace(/\r\n/g,""))}catch(r){}}}}const B=P({__name:"sms-code",props:{mobile:String,type:String,modelValue:{type:String,default:""}},emits:["update:modelValue"],setup(e,{emit:t}){const r=e,a=q({get:()=>r.modelValue,set(e){t("update:modelValue",e)}}),u=_(null),c=function(e){const t=_(v("getSmsCode")),r="X"+v("smsCodeChangeText"),n=q((()=>!e.value||e.value.canGetCode));return{tips:t,seconds:90,canGetCode:n,send:async t=>{if(!n.value)return;e.value.start();let r=!1;return await x(t).then((t=>{200==t.code?r=t.data.key:(e.value.reset(),r=!1)})).catch((e=>{r=!1})),r},codeChange:e=>{t.value=e},changeText:r}}(u),f=_(!1),m=S({mobile:"",captcha_code:"",captcha_key:"",type:r.type}),y=V(m),g=async()=>{if(u.value.canGetCode){if(m.mobile=r.mobile,uni.$u.test.isEmpty(m.mobile))return void j({title:v("mobilePlaceholder"),icon:"none"});if(!uni.$u.test.mobile(m.mobile))return void j({title:v("mobileError"),icon:"none"});await y.refresh(),f.value=!0}},b=async()=>{if(uni.$u.test.isEmpty(m.captcha_code))return void j({title:v("captchaPlaceholder"),icon:"none"});const e=await c.send(m);e?(a.value=e,f.value=!1):!1===e&&y.refresh()};return(e,t)=>{const r=h,a=n(s("u-code"),R),_=n(s("u-input"),E),q=F,x=n(s("u-modal"),I);return i(),$(k,null,[l(r,{class:O({"text-primary":T(c).canGetCode.value,"text-gray-300":!T(c).canGetCode.value}),onClick:g},{default:o((()=>[d(p(T(c).tips.value),1)])),_:1},8,["class"]),l(a,{seconds:T(c).seconds,"change-text":T(c).changeText,ref_key:"smsRef",ref:u,onChange:T(c).codeChange},null,8,["seconds","change-text","onChange"]),l(x,{show:f.value,title:T(v)("captchaTitle"),"confirm-text":T(v)("confirm"),"cancel-text":T(v)("cancel"),"show-cancel-button":!0,onCancel:t[2]||(t[2]=e=>f.value=!1),onConfirm:b},{default:o((()=>[l(r,{class:"flex mt-[20rpx]"},{default:o((()=>[l(_,{placeholder:T(v)("captchaPlaceholder"),border:"surround",modelValue:m.captcha_code,"onUpdate:modelValue":t[0]||(t[0]=e=>m.captcha_code=e)},null,8,["placeholder","modelValue"]),l(q,{src:T(y).image.value,class:"h-[76rpx] ml-[20rpx]",mode:"heightFix",onClick:t[1]||(t[1]=e=>T(y).refresh())},null,8,["src"])])),_:1})])),_:1},8,["show","title","confirm-text","cancel-text"])],64)}}}),M={props:{model:{type:Object,default:e.form.model},rules:{type:[Object,Function,Array],default:e.form.rules},errorType:{type:String,default:e.form.errorType},borderBottom:{type:Boolean,default:e.form.borderBottom},labelPosition:{type:String,default:e.form.labelPosition},labelWidth:{type:[String,Number],default:e.form.labelWidth},labelAlign:{type:String,default:e.form.labelAlign},labelStyle:{type:Object,default:e.form.labelStyle}}},W=/%[sdj%]/g;let G=function(){};function z(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const{field:r}=e;t[r]=t[r]||[],t[r].push(e)})),t}function K(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=1;const s=t[0],i=t.length;if("function"==typeof s)return s.apply(null,t.slice(1));if("string"==typeof s){let e=String(s).replace(W,(e=>{if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(t[n++]);case"%d":return Number(t[n++]);case"%j":try{return JSON.stringify(t[n++])}catch(r){return"[Circular]"}break;default:return e}}));for(let r=t[n];n<i;r=t[++n])e+=` ${r}`;return e}return s}function L(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function U(e,t,r){let n=0;const s=e.length;!function i(a){if(a&&a.length)return void r(a);const o=n;n+=1,o<s?t(e[o],i):r([])}([])}function X(e,t,r,n){if(t.first){const t=new Promise(((t,s)=>{const i=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push.apply(t,e[r])})),t}(e);U(i,r,(function(e){return n(e),e.length?s({errors:e,fields:z(e)}):t()}))}));return t.catch((e=>e)),t}let s=t.firstFields||[];!0===s&&(s=Object.keys(e));const i=Object.keys(e),a=i.length;let o=0;const l=[],u=new Promise(((t,u)=>{const c=function(e){if(l.push.apply(l,e),o++,o===a)return n(l),l.length?u({errors:l,fields:z(l)}):t()};i.length||(n(l),t()),i.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?U(n,r,c):function(e,t,r){const n=[];let s=0;const i=e.length;function a(e){n.push.apply(n,e),s++,s===i&&r(n)}e.forEach((e=>{t(e,a)}))}(n,r,c)}))}));return u.catch((e=>e)),u}function H(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:"function"==typeof t?t():t,field:t.field||e.fullField}}}function J(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}function Z(e,t,r,n,s,i){!e.required||r.hasOwnProperty(e.field)&&!L(t,i||e.type)||n.push(K(s.messages.required,e.fullField))}"undefined"!=typeof process&&process.env;const Y={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i};var Q={integer:function(e){return/^(-)?\d+$/.test(e)},float:function(e){return/^(-)?\d+(\.\d+)?$/.test(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(t){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof+e},object:function(e){return"object"==typeof e&&!Q.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(Y.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(Y.url)},hex:function(e){return"string"==typeof e&&!!e.match(Y.hex)}};const ee="enum";const te={required:Z,whitespace:function(e,t,r,n,s){(/^\s+$/.test(t)||""===t)&&n.push(K(s.messages.whitespace,e.fullField))},type:function(e,t,r,n,s){if(e.required&&void 0===t)return void Z(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?Q[i](t)||n.push(K(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(K(s.messages.types[i],e.fullField,e.type))},range:function(e,t,r,n,s){const i="number"==typeof e.len,a="number"==typeof e.min,o="number"==typeof e.max,l=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let u=t,c=null;const d="number"==typeof t,f="string"==typeof t,p=Array.isArray(t);if(d?c="number":f?c="string":p&&(c="array"),!c)return!1;p&&(u=t.length),f&&(u=t.replace(l,"_").length),i?u!==e.len&&n.push(K(s.messages[c].len,e.fullField,e.len)):a&&!o&&u<e.min?n.push(K(s.messages[c].min,e.fullField,e.min)):o&&!a&&u>e.max?n.push(K(s.messages[c].max,e.fullField,e.max)):a&&o&&(u<e.min||u>e.max)&&n.push(K(s.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,r,n,s){e[ee]=Array.isArray(e[ee])?e[ee]:[],-1===e[ee].indexOf(t)&&n.push(K(s.messages[ee],e.fullField,e[ee].join(", ")))},pattern:function(e,t,r,n,s){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(K(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(K(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};function re(e,t,r,n,s){const i=e.type,a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t,i)&&!e.required)return r();te.required(e,t,n,a,s,i),L(t,i)||te.type(e,t,n,a,s)}r(a)}const ne={string:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t,"string")&&!e.required)return r();te.required(e,t,n,i,s,"string"),L(t,"string")||(te.type(e,t,n,i,s),te.range(e,t,n,i,s),te.pattern(e,t,n,i,s),!0===e.whitespace&&te.whitespace(e,t,n,i,s))}r(i)},method:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&te.type(e,t,n,i,s)}r(i)},number:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&(te.type(e,t,n,i,s),te.range(e,t,n,i,s))}r(i)},boolean:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&te.type(e,t,n,i,s)}r(i)},regexp:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),L(t)||te.type(e,t,n,i,s)}r(i)},integer:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&(te.type(e,t,n,i,s),te.range(e,t,n,i,s))}r(i)},float:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&(te.type(e,t,n,i,s),te.range(e,t,n,i,s))}r(i)},array:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t,"array")&&!e.required)return r();te.required(e,t,n,i,s,"array"),L(t,"array")||(te.type(e,t,n,i,s),te.range(e,t,n,i,s))}r(i)},object:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&te.type(e,t,n,i,s)}r(i)},enum:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s),void 0!==t&&te.enum(e,t,n,i,s)}r(i)},pattern:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t,"string")&&!e.required)return r();te.required(e,t,n,i,s),L(t,"string")||te.pattern(e,t,n,i,s)}r(i)},date:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();if(te.required(e,t,n,i,s),!L(t)){let r;r="number"==typeof t?new Date(t):t,te.type(e,r,n,i,s),r&&te.range(e,r.getTime(),n,i,s)}}r(i)},url:re,hex:re,email:re,required:function(e,t,r,n,s){const i=[],a=Array.isArray(t)?"array":typeof t;te.required(e,t,n,i,s,a),r(i)},any:function(e,t,r,n,s){const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(L(t)&&!e.required)return r();te.required(e,t,n,i,s)}r(i)}};function se(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const ie=se();function ae(e){this.rules=null,this._messages=ie,this.define(e)}ae.prototype={messages:function(e){return e&&(this._messages=J(se(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");let t,r;for(t in this.rules={},e)e.hasOwnProperty(t)&&(r=e[t],this.rules[t]=Array.isArray(r)?r:[r])},validate:function(e,t,r){const n=this;void 0===t&&(t={}),void 0===r&&(r=function(){});let s,i,a=e,o=t,l=r;if("function"==typeof o&&(l=o,o={}),!this.rules||0===Object.keys(this.rules).length)return l&&l(),Promise.resolve();if(o.messages){let e=this.messages();e===ie&&(e=se()),J(e,o.messages),o.messages=e}else o.messages=this.messages();const u={};(o.keys||Object.keys(this.rules)).forEach((t=>{s=n.rules[t],i=a[t],s.forEach((r=>{let s=r;"function"==typeof s.transform&&(a===e&&(a={...a}),i=a[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=n.getValidationMethod(s),s.field=t,s.fullField=s.fullField||t,s.type=n.getType(s),s.validator&&(u[t]=u[t]||[],u[t].push({rule:s,value:i,source:a,field:t}))}))}));const c={};return X(u,o,((e,t)=>{const{rule:r}=e;let n,s=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function i(e,t){return{...t,fullField:`${r.fullField}.${e}`}}function a(n){void 0===n&&(n=[]);let a=n;if(Array.isArray(a)||(a=[a]),!o.suppressWarning&&a.length&&ae.warning("async-validator:",a),a.length&&r.message&&(a=[].concat(r.message)),a=a.map(H(r)),o.first&&a.length)return c[r.field]=1,t(a);if(s){if(r.required&&!e.value)return a=r.message?[].concat(r.message).map(H(r)):o.error?[o.error(r,K(o.messages.required,r.field))]:[],t(a);let n={};if(r.defaultField)for(const t in e.value)e.value.hasOwnProperty(t)&&(n[t]=r.defaultField);n={...n,...e.rule.fields};for(const e in n)if(n.hasOwnProperty(e)){const t=Array.isArray(n[e])?n[e]:[n[e]];n[e]=t.map(i.bind(null,e))}const s=new ae(n);s.messages(o.messages),e.rule.options&&(e.rule.options.messages=o.messages,e.rule.options.error=o.error),s.validate(e.value,e.rule.options||o,(e=>{const r=[];a&&a.length&&r.push.apply(r,a),e&&e.length&&r.push.apply(r,e),t(r.length?r:null)}))}else t(a)}s=s&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator?n=r.asyncValidator(r,e.value,a,e.source,o):r.validator&&(n=r.validator(r,e.value,a,e.source,o),!0===n?a():!1===n?a(r.message||`${r.field} fails`):n instanceof Array?a(n):n instanceof Error&&a(n.message)),n&&n.then&&n.then((()=>a()),(e=>a(e)))}),(e=>{!function(e){let t,r=[],n={};function s(e){if(Array.isArray(e)){let t;r=(t=r).concat.apply(t,e)}else r.push(e)}for(t=0;t<e.length;t++)s(e[t]);r.length?n=z(r):(r=null,n=null),l(r,n)}(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!ne.hasOwnProperty(e.type))throw new Error(K("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?ne.required:ne[this.getType(e)]||!1}},ae.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");ne[e]=t},ae.warning=G,ae.messages=ie,ae.warning=function(){};const oe=D({name:"u-form",mixins:[t,r,M],provide(){return{uForm:this}},data:()=>({formRules:{},validator:{},originalModel:null}),watch:{rules:{immediate:!0,handler(e){this.setRules(e)}},propsChange(e){var t;(null==(t=this.children)?void 0:t.length)&&this.children.map((e=>{"function"==typeof e.updateParentData&&e.updateParentData()}))},model:{immediate:!0,handler(e){this.originalModel||(this.originalModel=uni.$u.deepClone(e))}}},computed:{propsChange(){return[this.errorType,this.borderBottom,this.labelPosition,this.labelWidth,this.labelAlign,this.labelStyle]}},created(){this.children=[]},methods:{setRules(e){0!==Object.keys(e).length&&(this.formRules=e,this.validator=new ae(e))},resetFields(){this.resetModel()},resetModel(e){this.children.map((e=>{const t=null==e?void 0:e.prop,r=uni.$u.getProperty(this.originalModel,t);uni.$u.setProperty(this.model,t,r)}))},clearValidate(e){e=[].concat(e),this.children.map((t=>{(void 0===e[0]||e.includes(t.prop))&&(t.message=null)}))},async validateField(e,t,r=null){this.$nextTick((()=>{const n=[];e=[].concat(e),this.children.map((t=>{const s=[];if(e.includes(t.prop)){const e=uni.$u.getProperty(this.model,t.prop),i=t.prop.split("."),a=i[i.length-1],o=this.formRules[t.prop];if(!o)return;const l=[].concat(o);for(let u=0;u<l.length;u++){const i=l[u],o=[].concat(null==i?void 0:i.trigger);if(r&&!o.includes(r))continue;new ae({[a]:i}).validate({[a]:e},((e,r)=>{var i;uni.$u.test.array(e)&&(n.push(...e),s.push(...e)),t.message=(null==(i=s[0])?void 0:i.message)??null}))}}})),"function"==typeof t&&t(n)}))},validate(e){return new Promise(((e,t)=>{this.$nextTick((()=>{const r=this.children.map((e=>e.prop));this.validateField(r,(r=>{r.length?("toast"===this.errorType&&uni.$u.toast(r[0].message),t(r)):e(!0)}))}))}))}}},[["render",function(e,t,r,n,s,l){const u=h;return i(),a(u,{class:"u-form"},{default:o((()=>[c(e.$slots,"default")])),_:3})}]]);export{N as _,B as a,oe as b,V as u};
|