2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
|
import{v as e,a2 as t,o as r,c as a,w as i,G as l,b as s,E as n,N as o,e as u,z as m,y as h,x as d,i as f,aa as c,aL as g}from"./index-CH9-aFWw.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const p=b({name:"uniFormsItem",options:{virtualHost:!0},provide(){return{uniFormItem:this}},inject:{form:{from:"uniForm",default:null}},props:{rules:{type:Array,default:()=>null},name:{type:[String,Array],default:""},required:{type:Boolean,default:!1},label:{type:String,default:""},labelWidth:{type:[String,Number],default:""},labelAlign:{type:String,default:""},errorMessage:{type:[String,Boolean],default:""},leftIcon:String,iconColor:{type:String,default:"#606266"}},data:()=>({errMsg:"",userRules:null,localLabelAlign:"left",localLabelWidth:"70px",localLabelPos:"left",border:!1,isFirstBorder:!1}),computed:{msg(){return this.errorMessage||this.errMsg}},watch:{"form.formRules"(e){this.init()},"form.labelWidth"(e){this.localLabelWidth=this._labelWidthUnit(e)},"form.labelPosition"(e){this.localLabelPos=this._labelPosition()},"form.labelAlign"(e){}},created(){this.init(!0),this.name&&this.form&&this.$watch((()=>this.form._getDataValue(this.name,this.form.localData)),((e,t)=>{if(!this.form._isEqual(e,t)){const t=this.itemSetValue(e);this.onFieldChange(t,!1)}}),{immediate:!1})},unmounted(){this.__isUnmounted=!0,this.unInit()},methods:{setRules(e=null){this.userRules=e,this.init(!1)},setValue(){},async onFieldChange(r,a=!0){const{formData:i,localData:l,errShowType:s,validateCheck:n,validateTrigger:o,_isRequiredField:u,_realName:m}=this.form,h=m(this.name);r||(r=this.form.formData[h]);const d=this.itemRules.rules&&this.itemRules.rules.length;if(!this.validator||!d||0===d)return;const f=u(this.itemRules.rules||[]);let c=null;return"bind"===o||a?(c=await this.validator.validateUpdate({[h]:r},i),f||void 0!==r&&""!==r||(c=null),c&&c.errorMessage?("undertext"===s&&(this.errMsg=c?c.errorMessage:""),"toast"===s&&e({title:c.errorMessage||"校验错误",icon:"none"}),"modal"===s&&t({title:"提示",content:c.errorMessage||"校验错误"})):this.errMsg="",n(c||null)):this.errMsg="",c||null},init(e=!1){const{validator:t,formRules:r,childrens:a,formData:i,localData:l,_realName:s,labelWidth:n,_getDataValue:o,_setDataValue:u}=this.form||{};if(this.localLabelAlign=this._justifyContent(),this.localLabelWidth=this._labelWidthUnit(n),this.localLabelPos=this._labelPosition(),this.form&&e&&a.push(this),!t||!r)return;this.form.isFirstBorder||(this.form.isFirstBorder=!0,this.isFirstBorder=!0),this.group&&(this.group.isFirstBorder||(this.group.isFirstBorder=!0,this.isFirstBorder=!0)),this.border=this.form.border;const m=s(this.name),h=this.userRules||this.rules;"object"==typeof r&&h&&(r[m]={rules:h},t.updateSchema(r));const d=r[m]||{};this.itemRules=d,this.validator=t,this.itemSetValue(o(this.name,l))},unInit(){if(this.form){const{childrens:e,formData:t,_realName:r}=this.form;e.forEach(((e,a)=>{e===this&&(this.form.childrens.splice(a,1),delete t[r(e.name)])}))}},itemSetValue(e){const t=this.form._realName(this.name),r=this.itemRules.rules||[],a=this.form._getValue(t,e,r);return this.form._setDataValue(t,this.form.formData,a),a},clearValidate(){this.errMsg=""},_isRequired(){return this.required},_justifyContent(){if(this.form){const{labelAlign:e}=this.form;let t=this.labelAlign?this.labelAlign:e;if("left"===t)return"flex-start";if("center"===t)return"center";if("right"===t)return"flex-end"}return"flex-start"},_labelWidthUnit(e){return this.num2px(this.labelWidth?this.labelWidth:e||(this.label?70:"auto"))},_labelPosition(){return this.form&&this.form.labelPosition||"left"},isTrigger:(e,t,r)=>"submit"!==e&&e?"bind":void 0===e?"bind"!==t?t?"submit":""===r?"bind":"submit":"bind":"submit",num2px:e=>"number"==typeof e?`${e}px`:e}},[["render",function(e,t,c,g,b,p){const y=d,v=f;return r(),a(v,{class:n(["uni-forms-item",["is-direction-"+b.localLabelPos,b.border?"uni-forms-item--border":"",b.border&&b.isFirstBorder?"is-first-border":""]])},{default:i((()=>[l(e.$slots,"label",{},(()=>[s(v,{class:n(["uni-forms-item__label",{"no-label":!c.label&&!c.required}]),s
|