UNPKG

@jecloud/ui

Version:

JECloud UI库,基于ant-design-vue封装

1 lines 3.04 kB
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var l,t=1,a=arguments.length;t<a;t++)for(var r in l=arguments[t])Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);return e},e.apply(this,arguments)};import{mergeProps as l,createVNode as t}from"vue";import{defineComponent as a,reactive as r,ref as n,watch as o}from"vue";import{isEmpty as i,omit as u}from"@jecloud/utils";import{Form as d}from"ant-design-vue";import v from"../../tooltip";import{useInjectForm as m,useInjectAForm as f,useProvideFormItemContext as s}from"./context";export default a({name:"JeFormItem",inheritAttrs:!1,props:{size:{type:String,validator:function(e){return["middle","small"].includes(e)}},validateType:{type:String,validator:function(e){return["error","tooltip"].includes(e)}},name:String,label:String,labelText:String,htmlFor:{type:String,default:""},rules:[Object,Array],hiddenErrors:Boolean,labelAlign:{type:String,default:"right",validator:function(){return["right","left","center","top"]}}},setup:function(a,c){var p,g,b,h,y,j,S=c.slots,V=c.attrs,D=m(),F=n(),T=n(null!==(p=a.size)&&void 0!==p?p:null==D?void 0:D.size),x=n("small"===T.value?"tooltip":null!==(b=null!==(g=a.validateType)&&void 0!==g?g:null==D?void 0:D.validateType)&&void 0!==b?b:"error"),A=n();if(D.enabled&&"tooltip"===x.value&&a.name){D.validateData=null!==(h=D.validateData)&&void 0!==h?h:r({}),D.validateData[a.name]=n(),o((function(){return D.validateData[a.name]}),(function(e){A.value=e})),o((function(){return V.help}),(function(e){var l;D.validateData[a.name]=null!==(l=null==e?void 0:e[0])&&void 0!==l?l:""})),o((function(){return a.rules}),(function(e){i(e)&&(D.validateData[a.name]=null)}));var I=f();if(!I.overridesValidate){I.overridesValidate=!0;var O=I.onValidate;I.onValidate=function(e,l,t){O(e,l,t),D.validateData[e]=n(t)}}}else"tooltip"!==x.value||a.name||console.error("FormItem的tooltip错误提示类型,必须配置name属性",a),x.value="error";var z=null,P={enabled:!0,name:a.name,label:null!==(y=a.label)&&void 0!==y?y:a.labelText,$plugin:F,clearValidate:function(){var e;null===(e=F.value)||void 0===e||e.clearValidate(),null==z||z.clearValidate(),A.value=""},addSlotItem:function(e){z=e}};return null===(j=D.addFormField)||void 0===j||j.call(D,P.name,P),s(P),function(){var r;return t(d.Item,l({ref:F,class:(r={"je-form-item":!0,"je-form-item-small":"small"===T.value,"je-form-item-error-tooltip":"tooltip"===x.value,"je-form-item-error-hidden":a.hiddenErrors},r["je-form-item-label-align-"+a.labelAlign]=!0,r),rules:a.rules},V,{htmlFor:a.htmlFor,label:a.label,name:a.name}),e({default:function(){var l;return["tooltip"===x.value?t(v,{placement:"bottomLeft",overlayClassName:"je-form-item-tooltip",getPopupContainer:function(){return F.value.$el},align:{offset:[0,0]}},e({default:function(){var e;return[null===(e=S.default)||void 0===e?void 0:e.call(S)]}},A.value?{title:function(){return t("div",{role:"alert",class:"error"},[A.value])}}:null)):null===(l=S.default)||void 0===l?void 0:l.call(S)]}},u(S,["default"])))}}});