UNPKG

el-plus-powerful-form

Version:

## [DOCS](https://peng-xiao-shuai.github.io/vite-vue-admin-docs/zh-CN/component_directive/component/powerful-form-doc.html)

2 lines (1 loc) 5.84 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("element-plus"),j=require("../../locale/lang.js"),A=require("../../index.js"),o=require("vue"),E=require("../../hooks/useGetRefs.js"),y=require("../../utils/index.js"),m=require("../../locale/packages.js"),v=require("../index.js"),d={},D={formItems:{type:Array,default:()=>[]},extendTable:{type:[Boolean,String],default:!1},formDataDefault:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},showType:{type:String,default:void 0},property:{type:Object,default:()=>({})},apis:{type:[Object,Function],default:void 0},showLabel:{type:Boolean,default:!0}},R=()=>({formItem:{type:Object,default:()=>({})},formData:{type:Object,default:()=>({})},index:{type:Number},inline:{type:Boolean,default:!1}}),$=(s,i)=>y.isTypeProtect(i,a=>typeof a!="function")?i:i(s),O=s=>{var u;const i=(u=o.getCurrentInstance())==null?void 0:u.proxy,a=o.reactive({formItems:[],rules:{},formData:{},watchCache:[]}),b=o.ref(null),{t:f}=j.useLocale();o.onMounted(()=>{s.showType==="query"&&setTimeout(()=>{var r;const e=(r=b.value)==null?void 0:r.$el,t=e==null?void 0:e.parentNode;t&&e&&(t.style.height=`${e.offsetHeight}px`)},100)});const n=(e,t)=>{var l,h,x;const r=Object.values(v.FormTypeEnum).includes(t.type),c=A.deepClone({text:t.text||e.label,prop:((l=t.formItem)==null?void 0:l.prop)||t.prop,render:r?t.render:void 0,type:r?t.type:void 0,slotName:t.slotName,...t.formItem||{},data:r&&!((h=t.formItem)!=null&&h.data)?t.data||{}:{...r?t.data:{},...(x=t.formItem)==null?void 0:x.data}});a.formItems.push(c),p(c,a.formData,t),g(c)},g=e=>{if(e.rule&&y.isTypeProtect(e.rule,r=>Array.isArray(r)&&typeof r[0]=="object"&&!Array.isArray(r[0]))){a.rules[e.prop]=e.rule;return}const t=[];e.rule&&(t.push({required:!0,message:`${y.clearSymbol(e.text)} ${f(m.LangKey.VerifyEmpty)}`,trigger:"blur"}),Array.isArray(e.rule)?t.push({min:e.rule[0],max:e.rule[1],message:`${f(m.LangKey.VerifyLength)}${e.rule[0]} ~ ${e.rule[1]}`,trigger:"blur"}):typeof e.rule=="string"&&(y.verifyFormItemRule[e.rule]?t.push({...y.verifyFormItemRule[e.rule],message:f(y.verifyFormItemRule[e.rule].message)}):console.warn(`${y.verifyFormItemRule[e.rule]?"在 verifyFormItemRule 中存在":"在 verifyFormItemRule 中不存在"} 支持 ${Object.keys(y.verifyFormItemRule).join("、")}`)),a.rules[e.prop]=t)},p=(e,t,r)=>{var c,l;switch(Object.assign(a.formData,s.formDataDefault||{}),a.formData[e.prop]=((c=s.formDataDefault)==null?void 0:c[e.prop])??e.defaultData??"",d[e.prop]=e.defaultData??"",e.type){case v.FormTypeEnum.Select:case v.FormTypeEnum.SelectV2:r&&!((l=e.data)!=null&&l.options)&&Array.isArray(r.filters)&&(e.data.options=r.filters.map(h=>({...h,label:h.value,value:h.key}))),t[e.prop]=t[e.prop]||void 0,d[e.prop]=e.defaultData??"";break;case v.FormTypeEnum.Rate:t[e.prop]=Number.isNaN(Number(t[e.prop]))?0:Number(t[e.prop]);break;case v.FormTypeEnum.Checkbox:t[e.prop]=typeof t[e.prop]=="string"?t[e.prop].split(",").filter(h=>h.length):Array.isArray(t[e.prop])?t[e.prop]:[],d[e.prop]=e.defaultData||[];break}},T=e=>{a.formItems=[],Object.keys(d).forEach(t=>delete d[t]),e.forEach(t=>{Array.isArray(t.props)?t.props.filter(r=>r.formItem).forEach(r=>{n(t,r)}):t.props.formItem&&n(t,t.props)})};a.watchCache.push(o.watch(()=>s.extendTable,e=>{if(e){let t=[];E.useAsyncGetRefs(typeof e=="boolean"?"PTable":e,i).then(r=>{t=r==null?void 0:r.props.header,T(t)})}},{immediate:!0}),o.watch(()=>s.formDataDefault,e=>{Object.assign(a.formData,e||{})},{immediate:!0,deep:!0}),o.watch(()=>s.formItems,e=>{e&&s.extendTable===!1&&(a.formItems=e,Object.keys(d).forEach(t=>delete d[t]),a.formItems.forEach(t=>{g(t),p(t,a.formData)}))},{immediate:!0,deep:!0}));const F=o.computed(()=>a.formItems.filter(e=>typeof e.visible>"u"?(Array.isArray(e.showType)?e.showType.includes(s.showType||""):e.showType===s.showType)||!s.showType||!e.showType:e.visible(a.formData,s.showType)));return o.onBeforeUnmount(()=>{a.watchCache.forEach(e=>e())}),{formViewData:a,formRenderItems:F,elFormRef:b,transformHeader:T}},k=(s,i,a,b)=>{const{proxy:f}=o.getCurrentInstance();let n=!0;return{submitForm:(u={},e)=>(a.value.validate().then(()=>{var t,r,c;s.apis&&(y.isTypeProtect(s.apis,l=>!!Object.keys(l).length)?s.showType?(t=s.apis)!=null&&t[s.showType]?(r=s.apis)==null||r[s.showType]({...u,...i.value}).then(l=>{e&&w.ElMessage.success(e.successMessage||"提交成功!"),e==null||e.cb("success",l)}).catch(l=>{e&&w.ElMessage.error(e.errorMessage||"提交失败!"),e==null||e.cb("error",l)}):console.error(`apis.${s.showType} 不存在`):console.error("showType 为空,但是 apis 为对象时需要 showType 作为键值。或者 apis 传递一个 Promise"):(c=s.apis)==null||c.call(s,{...u,...i.value}).then(l=>{e&&w.ElMessage.success(e.successMessage||"提交成功!"),e==null||e.cb("success",l)}).catch(l=>{e&&w.ElMessage.error(e.errorMessage||"提交失败!"),e==null||e.cb("error",l)}))}).catch(()=>!1),a.value.validate()),resetForm:()=>{i.value=A.deepClone(d)},refreshRender:(u=typeof s.extendTable=="boolean"?"PTable":s.extendTable,e)=>{var c,l;const t=e||f,r=E.useGetRefs(u,t);(c=r.value)!=null&&c.props.header&&b((l=r.value)==null?void 0:l.props.header)},visibleFormTrigger:()=>{var t;const u=(t=a.value)==null?void 0:t.$el,e=u==null?void 0:u.parentNode;if(e&&u){n=!n;const r=u.offsetHeight;e.style.height=n?`${r}px`:"0px"}return n},bindAttr(u,e,t){var r;return{formItem:u,formData:e,index:t,inline:((r=s.property)==null?void 0:r.inline)||!1}}}},q=s=>({event:(a,...b)=>{var f,n,g;y.isTypeProtect(s.formItem.data,p=>typeof(p==null?void 0:p.on)!=null)&&((g=(n=(f=s.formItem.data)==null?void 0:f.on)==null?void 0:n[a])==null||g.call(n,{...s},...b))}});exports.componentProps=R;exports.formViewProps=D;exports.isProperty=$;exports.useEvent=q;exports.useFormViewState=O;exports.useFunction=k;