@aplus-frontend/ui
Version:
2 lines (1 loc) • 5.04 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("@aplus-frontend/antdv");require("../ap-form.vue.js");require("../../hooks/index.js");const q=require("../../utils/slot.js");require("../../config-provider/index.js");const S=require("lodash-unified"),w=require("../style/modal-form.js"),x=require("../../hooks/useControllableValue.js"),M=require("../../config-provider/hooks/use-locale.js"),R=require("../../config-provider/hooks/use-namespace.js"),U=require("../ap-form.vue2.js");function y(s){return typeof s=="function"||Object.prototype.toString.call(s)==="[object Object]"&&!e.isVNode(s)}const j=e.defineComponent({name:"ApFormModalForm",__name:"index",props:{layout:{default:"horizontal"},labelCol:{},wrapperCol:{},colon:{type:Boolean,default:!0},labelAlign:{default:"right"},labelWrap:{type:Boolean},prefixCls:{},requiredMark:{},hideRequiredMark:{type:Boolean,default:!1},rules:{},validateMessages:{},validateOnRuleChange:{type:Boolean,default:!0},scrollToFirstError:{},onSubmit:{},name:{},validateTrigger:{default:"change"},size:{},disabled:{type:Boolean},onFieldsChange:{},onFinishFailed:{},onValidate:{},variant:{},initialValues:{},onValuesChange:{},syncToUrl:{type:[Boolean,Function]},syncToUrlPriority:{type:Boolean},open:{type:Boolean,default:void 0},"onUpdate:open":{},modalProps:{default:()=>({})},title:{},width:{default:800},onFinish:{},submitter:{type:[Boolean,Object],default:()=>({resetButtonProps:!1})},showCancel:{type:Boolean,default:!0},submitTimeout:{}},emits:["update:open"],setup(s,{expose:F,emit:g}){const l=s,d=e.useSlots(),h=g,o=e.ref(),f=e.ref(0),u=e.ref(),r=e.ref(!1),{value:V,updateValue:i}=x.useControllableValue(l,h,{valuePropName:"open",defaultValue:!1,beforeUpdateValue(t){return t&&(f.value+=1),!0}}),{t:c}=M.useLocale(),C=w.default("ap-form-modal-form"),{b:T,e:m}=R.useNamespace("ap-form-modal-form");e.watch(()=>o.value,t=>{t&&u.value&&(t.setFieldsValue?.(u.value),u.value=void 0)});const p=q.getSingleVNode(d.trigger),v=p?e.cloneVNode(p,{onClick:()=>{i(!0)}}):null,B=e.computed(()=>{const t=[];if(l.submitter===!1)return null;if(l.showCancel){let a;t.push(e.createVNode(n.Button,{onClick:b,disabled:r.value},y(a=c("ap.common.cancelText"))?a:{default:()=>[a]}))}return l.submitter?.resetButtonProps!==!1&&t.push(e.createVNode(n.Button,e.mergeProps(l.submitter?.resetButtonProps||{},{key:"reset",disabled:r.value,onClick:k,htmlType:"reset"}),{default:()=>[l.submitter?.resetText||c("ap.common.resetText")]})),l.submitter?.submitButtonProps!==!1&&t.push(e.createVNode(n.Button,e.mergeProps({type:"primary",key:"submit",htmlType:"submit"},l.submitter?.submitButtonProps||{},{loading:r.value}),{default:()=>[l.submitter?.submitText||c("ap.common.okText")]})),e.createVNode(n.Flex,{justify:"flex-end",key:e.unref(f),class:[m("footer")]},{default:()=>[d.submitter?d.submitter(t):e.createVNode(n.Space,null,y(t)?t:{default:()=>[t]})]})});function k(){l.submitter!==!1&&(o.value?.resetFields(),l.submitter?.onReset?.())}async function N(t){if(l.submitter!==!1)try{l.submitter?.onSubmit?.(),r.value=!0;const a=l.onFinish?.(t);if(l.submitTimeout&&a instanceof Promise){const _=setTimeout(()=>r.value=!1,l.submitTimeout);a.finally(()=>{clearTimeout(_),r.value=!1})}await a&&i(!1)}finally{r.value=!1}}function b(){e.unref(r)||i(!1)}function P(t){!t&&e.unref(r)||i(t)}return F({resetFields:async()=>{o.value?.resetFields()},clearValidate:t=>{o.value?.clearValidate(t)},validateFields:(t,a)=>o.value?.validateFields(t,a),getFieldsValue:t=>o.value?.getFieldsValue(t),validate:(t,a)=>o.value?.validate(t,a),scrollToField:(t,a={})=>{o.value?.scrollToField(t,a)},setFieldValue:(t,a)=>{o.value?.setFieldValue?.(t,a)},setFieldsValue:t=>{if(!o.value){u.value=t;return}o.value?.setFieldsValue?.(t)},getInternalInstance:t=>o.value?.getInternalInstance(t),getFieldsValueTransformed(t){return o.value?.getFieldsValueTransformed(t)},validateFieldsReturnTransformed(t,a){return o.value?.validateFieldsReturnTransformed(t,a)}}),(t,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(n.Modal),e.mergeProps(t.modalProps,{open:e.unref(V),footer:null,width:t.width,class:[e.unref(T)(),e.unref(C)],"body-style":{padding:"0px !important"},"onUpdate:open":P,onCancel:b}),{title:e.withCtx(()=>[e.renderSlot(t.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(l.title),1)])]),default:e.withCtx(()=>[e.createVNode(U.default,e.mergeProps({ref_key:"formRef",ref:o},e.unref(S.omit)(l,["modalProps","open","onUpdate:open","title","width","onFinish","submitter"]),{onFinish:N}),{default:e.withCtx(()=>[e.createElementVNode("div",{style:e.normalizeStyle(t.modalProps?.bodyStyle),class:e.normalizeClass(e.unref(m)("content"))},[e.renderSlot(t.$slots,"default")],6),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.value)))]),_:3},16)]),_:3},16,["open","width","class"]),e.unref(v)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(v)),{key:0})):e.createCommentVNode("",!0)],64))}});exports.default=j;