vft 0.0.494 → 0.0.495

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/index.css +1 -1
  2. package/es/components/carousel/use-carousel.js +1 -1
  3. package/es/components/input/input.vue2.js +4 -4
  4. package/es/components/input-tag/composables/use-input-tag.js +1 -1
  5. package/es/components/super-form/index.d.ts +9 -0
  6. package/es/components/super-form/super-form-item.vue2.js +219 -219
  7. package/es/components/super-form/super-form.vue2.js +97 -95
  8. package/es/components/super-form/types.d.ts +4 -0
  9. package/es/components/super-form/use/use-form-events.d.ts +1 -0
  10. package/es/components/super-form/use/use-form-events.js +205 -171
  11. package/es/components/table/field.js +60 -55
  12. package/es/components/table/index.d.ts +3 -3
  13. package/es/components/table/table.vue.d.ts +1 -1
  14. package/es/components/table/types.d.ts +2 -2
  15. package/es/components/table/use/use-data-source.d.ts +1 -1
  16. package/es/components/table/use/use-data-source.js +136 -119
  17. package/es/components/table/use/use-loading.js +15 -13
  18. package/es/hooks/use-z-index/index.js +3 -3
  19. package/es/package.json.d.ts +1 -1
  20. package/es/package.json.js +1 -1
  21. package/es/utils/vue/vnode.js +1 -1
  22. package/lib/components/input/input.vue2.cjs +1 -1
  23. package/lib/components/super-form/index.d.ts +9 -0
  24. package/lib/components/super-form/super-form-item.vue2.cjs +1 -1
  25. package/lib/components/super-form/super-form.vue2.cjs +1 -1
  26. package/lib/components/super-form/types.d.ts +4 -0
  27. package/lib/components/super-form/use/use-form-events.cjs +1 -1
  28. package/lib/components/super-form/use/use-form-events.d.ts +1 -0
  29. package/lib/components/table/field.cjs +1 -1
  30. package/lib/components/table/index.d.ts +3 -3
  31. package/lib/components/table/table.vue.d.ts +1 -1
  32. package/lib/components/table/types.d.ts +2 -2
  33. package/lib/components/table/use/use-data-source.cjs +1 -1
  34. package/lib/components/table/use/use-data-source.d.ts +1 -1
  35. package/lib/components/table/use/use-loading.cjs +1 -1
  36. package/lib/package.json.cjs +1 -1
  37. package/lib/package.json.d.ts +1 -1
  38. package/package.json +4 -4
  39. package/theme-style/index.css +1 -1
  40. package/theme-style/src/table.scss +2 -4
  41. package/theme-style/vft-table.css +1 -1
  42. package/web-types.json +1 -1
@@ -2,14 +2,14 @@ import "@vueuse/core";
2
2
  import { isNumber as m, isClient as p } from "@vft/utils";
3
3
  import { debugWarn as l } from "../../utils/error.js";
4
4
  import "../../components/config-provider/hooks/use-global-config.js";
5
- import { ref as v, getCurrentInstance as i, inject as e, computed as c, unref as Z } from "vue";
5
+ import { getCurrentInstance as i, inject as e, computed as c, unref as v, ref as Z } from "vue";
6
6
  import "lodash-es";
7
7
  import "../../components/form/index.js";
8
8
  const s = {
9
9
  current: 0
10
- }, u = v(0), f = 2e3, d = Symbol("vftZIndexContextKey"), y = Symbol("zIndexContextKey"), K = (I) => {
10
+ }, u = Z(0), f = 2e3, d = Symbol("vftZIndexContextKey"), y = Symbol("zIndexContextKey"), K = (I) => {
11
11
  const n = i() ? e(d, s) : s, x = I || (i() ? e(y, void 0) : void 0), t = c(() => {
12
- const r = Z(x);
12
+ const r = v(x);
13
13
  return m(r) ? r : f;
14
14
  }), o = c(() => t.value + u.value), a = () => (n.current++, u.value = n.current, o.value);
15
15
  return !p && !e(d) && l(
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.494",
3
+ "version": "0.0.495",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -1,4 +1,4 @@
1
- const o = "0.0.494";
1
+ const o = "0.0.495";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,4 +1,4 @@
1
- import { isArray as E, hasOwn as m, camelize as N } from "@vft/utils";
1
+ import { hasOwn as m, camelize as N, isArray as E } from "@vft/utils";
2
2
  import { isVNode as o, Fragment as S, Comment as A, Text as s, createCommentVNode as L, createBlock as _, openBlock as C } from "vue";
3
3
  import { debugWarn as O } from "../error.js";
4
4
  const R = "utils/vue/vnode";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const b=require("../icon/index.cjs"),Y=require("@vueuse/core"),s=require("@vft/utils"),T=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const Be=require("lodash-es"),Z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const q=require("@vft/constants"),_=require("@vft/use"),ee=require("./utils.cjs"),te=require("../form/hooks/use-form-common-props.cjs"),ne=require("../form/hooks/use-form-item.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[q.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:oe,emit:ae}){const l=ae,p=e.useAttrs(),i=e.useSlots(),M=e.computed(()=>{const n={};return t.containerRole==="combobox"&&(n["aria-haspopup"]=p["aria-haspopup"],n["aria-owns"]=p["aria-owns"],n["aria-expanded"]=p["aria-expanded"]),n}),le=e.computed(()=>[t.type==="textarea"?A.b():o.b(),o.m(ie.value),o.is("disabled",m.value),o.is("exceed",fe.value),o.is("focus",c.value),{[o.b("group")]:i.prepend||i.append,[o.bm("group","append")]:i.append,[o.bm("group","prepend")]:i.prepend,[o.m("prefix")]:i.prefix||t.prefixIcon,[o.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[o.bm("suffix","password-clear")]:E.value&&z.value},p.class]),se=e.getCurrentInstance(),re=e.computed(()=>[o.e("wrapper"),o.is("focus",c.value)]),r=_.useAttrs({excludeKeys:e.computed(()=>Object.keys(M.value))}),{form:ue,formItem:k}=ne.useFormItem(),{inputId:F}=ne.useFormItemInputId(se.props,{formItemContext:k}),ie=te.useFormSize(),m=te.useFormDisabled(),o=Z.useNamespace("input"),A=Z.useNamespace("textarea"),C=e.shallowRef(),f=e.shallowRef(),c=e.ref(!1),V=e.ref(!1),y=e.ref(!1),w=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),h=e.computed(()=>C.value||f.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),x=e.computed(()=>k?.validateState||""),K=e.computed(()=>x.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[x.value]),de=e.computed(()=>w.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[p.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!m.value&&!t.readonly&&!!u.value&&(c.value||V.value)),z=e.computed(()=>t.showPassword&&!m.value&&!t.readonly&&!!u.value&&(!!u.value||c.value)),v=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!m.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!v.value&&N.value>Number(r.value.maxlength)),ve=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||v.value||!!x.value&&R.value),[pe,ye]=_.useCursor(C);Y.useResizeObserver(f,n=>{if(!v.value||t.resize!=="both")return;const a=n[0],{width:d}=a.contentRect;D.value={right:`calc(100% - ${d+15+6}px)`}});const B=()=>{if(!(!Y.isClient||t.type!=="textarea"))if(t.autosize){const n=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(f.value,n,a)}}else I.value={minHeight:ee.calcTextareaHeight(f.value).minHeight}},g=()=>{const n=h.value;!n||n.value===u.value||(n.value=u.value)},P=async n=>{pe();let{value:a}=n.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!y.value){if(a===u.value){g();return}l(q.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),g(),ye()}},j=n=>{l("change",n.target.value)},he=()=>{l("suffixClick",t.modelValue)},xe=()=>{l("prefixClick",t.modelValue)},L=n=>{l("compositionstart",n),y.value=!0},ge=n=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(n),W=n=>{l("compositionupdate",n);const a=n.target?.value,d=a[a.length-1]||"";y.value=!ge(d)},H=n=>{l("compositionend",n),y.value&&(y.value=!1,P(n))},be=()=>{w.value=!w.value,U()},U=async()=>{await e.nextTick(),h.value?.focus()},ke=()=>h.value?.blur(),G=n=>{c.value=!0,l("focus",n)},J=n=>{c.value=!1,l("blur",n),t.validateEvent&&k?.validate?.("blur").catch(a=>T.debugWarn(a))},Ce=n=>{V.value=!1,l("mouseleave",n)},we=n=>{V.value=!0,l("mouseenter",n)},Q=n=>{const a=n.key;if(n.target.type==="number"&&["e","+","-0","E"].includes(a))return n.returnValue=!1,!1;l("keydown",n)},Ee=()=>{h.value?.select()},X=()=>{l(q.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&k?.validate?.("change").catch(n=>T.debugWarn(n))}),e.watch(u,()=>g()),e.watch(()=>t.type,async()=>{await e.nextTick(),g(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&T.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),g(),e.nextTick(B)}),oe({input:C,textarea:f,ref:h,textareaStyle:$,autosize:t.autosize,focus:U,blur:ke,select:Ee,clear:X,resizeTextarea:B}),(n,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(M.value,{class:le.value,style:me.value,role:t.containerRole,onMouseenter:we,onMouseleave:Ce,onMousewheel:a[1]||(a[1]=d=>t.type==="number"&&c.value?d.preventDefault():null)}),[t.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).be("group","prepend"))},[e.renderSlot(n.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[n.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(o).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("prefix-inner")),onClick:xe},[e.renderSlot(n.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(F),ref_key:"input",ref:C,class:e.unref(o).e("inner")},e.unref(r),{type:t.showPassword?w.value?"text":"password":t.type,disabled:e.unref(m),formatter:t.formatter,parser:t.parser,readonly:t.readonly,autocomplete:t.autocomplete,tabindex:t.tabindex,"aria-label":t.label,placeholder:t.placeholder,style:t.inputStyle,form:t.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(d=>l("enter"),["enter"]))}),null,16,Ie),ve.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(o).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("suffix-inner")),onClick:he},[!E.value||!z.value||!v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(n.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(o).e("icon"),e.unref(o).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(o).e("icon"),e.unref(o).e("password")],onClick:be}),null,16,["class"])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(o).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),x.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(o).e("icon"),e.unref(o).e("validateIcon"),e.unref(o).is("loading",x.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),n.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).be("group","append"))},[e.renderSlot(n.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(F),ref_key:"textarea",ref:f,class:e.unref(A).e("inner")},e.unref(r),{tabindex:t.tabindex,disabled:e.unref(m),readonly:t.readonly,autocomplete:t.autocomplete,style:$.value,"aria-label":t.label,placeholder:t.placeholder,form:t.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),v.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(o).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,t.type!=="hidden"]])}});exports.default=ze;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const b=require("../icon/index.cjs"),Y=require("@vueuse/core"),s=require("@vft/utils"),T=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const Be=require("lodash-es"),Z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const q=require("@vft/constants"),_=require("@vft/use"),ee=require("./utils.cjs"),te=require("../form/hooks/use-form-item.cjs"),ne=require("../form/hooks/use-form-common-props.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[q.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:oe,emit:ae}){const l=ae,p=e.useAttrs(),i=e.useSlots(),M=e.computed(()=>{const n={};return t.containerRole==="combobox"&&(n["aria-haspopup"]=p["aria-haspopup"],n["aria-owns"]=p["aria-owns"],n["aria-expanded"]=p["aria-expanded"]),n}),le=e.computed(()=>[t.type==="textarea"?A.b():o.b(),o.m(ie.value),o.is("disabled",m.value),o.is("exceed",fe.value),o.is("focus",c.value),{[o.b("group")]:i.prepend||i.append,[o.bm("group","append")]:i.append,[o.bm("group","prepend")]:i.prepend,[o.m("prefix")]:i.prefix||t.prefixIcon,[o.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[o.bm("suffix","password-clear")]:E.value&&z.value},p.class]),se=e.getCurrentInstance(),re=e.computed(()=>[o.e("wrapper"),o.is("focus",c.value)]),r=_.useAttrs({excludeKeys:e.computed(()=>Object.keys(M.value))}),{form:ue,formItem:k}=te.useFormItem(),{inputId:F}=te.useFormItemInputId(se.props,{formItemContext:k}),ie=ne.useFormSize(),m=ne.useFormDisabled(),o=Z.useNamespace("input"),A=Z.useNamespace("textarea"),C=e.shallowRef(),f=e.shallowRef(),c=e.ref(!1),V=e.ref(!1),y=e.ref(!1),w=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),h=e.computed(()=>C.value||f.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),x=e.computed(()=>k?.validateState||""),K=e.computed(()=>x.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[x.value]),de=e.computed(()=>w.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[p.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!m.value&&!t.readonly&&!!u.value&&(c.value||V.value)),z=e.computed(()=>t.showPassword&&!m.value&&!t.readonly&&!!u.value&&(!!u.value||c.value)),v=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!m.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!v.value&&N.value>Number(r.value.maxlength)),ve=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||v.value||!!x.value&&R.value),[pe,ye]=_.useCursor(C);Y.useResizeObserver(f,n=>{if(!v.value||t.resize!=="both")return;const a=n[0],{width:d}=a.contentRect;D.value={right:`calc(100% - ${d+15+6}px)`}});const B=()=>{if(!(!Y.isClient||t.type!=="textarea"))if(t.autosize){const n=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(f.value,n,a)}}else I.value={minHeight:ee.calcTextareaHeight(f.value).minHeight}},g=()=>{const n=h.value;!n||n.value===u.value||(n.value=u.value)},P=async n=>{pe();let{value:a}=n.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!y.value){if(a===u.value){g();return}l(q.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),g(),ye()}},j=n=>{l("change",n.target.value)},he=()=>{l("suffixClick",t.modelValue)},xe=()=>{l("prefixClick",t.modelValue)},L=n=>{l("compositionstart",n),y.value=!0},ge=n=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(n),W=n=>{l("compositionupdate",n);const a=n.target?.value,d=a[a.length-1]||"";y.value=!ge(d)},H=n=>{l("compositionend",n),y.value&&(y.value=!1,P(n))},be=()=>{w.value=!w.value,U()},U=async()=>{await e.nextTick(),h.value?.focus()},ke=()=>h.value?.blur(),G=n=>{c.value=!0,l("focus",n)},J=n=>{c.value=!1,l("blur",n),t.validateEvent&&k?.validate?.("blur").catch(a=>T.debugWarn(a))},Ce=n=>{V.value=!1,l("mouseleave",n)},we=n=>{V.value=!0,l("mouseenter",n)},Q=n=>{const a=n.key;if(n.target.type==="number"&&["e","+","-0","E"].includes(a))return n.returnValue=!1,!1;l("keydown",n)},Ee=()=>{h.value?.select()},X=()=>{l(q.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&k?.validate?.("change").catch(n=>T.debugWarn(n))}),e.watch(u,()=>g()),e.watch(()=>t.type,async()=>{await e.nextTick(),g(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&T.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),g(),e.nextTick(B)}),oe({input:C,textarea:f,ref:h,textareaStyle:$,autosize:t.autosize,focus:U,blur:ke,select:Ee,clear:X,resizeTextarea:B}),(n,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(M.value,{class:le.value,style:me.value,role:t.containerRole,onMouseenter:we,onMouseleave:Ce,onMousewheel:a[1]||(a[1]=d=>t.type==="number"&&c.value?d.preventDefault():null)}),[t.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).be("group","prepend"))},[e.renderSlot(n.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[n.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(o).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("prefix-inner")),onClick:xe},[e.renderSlot(n.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(F),ref_key:"input",ref:C,class:e.unref(o).e("inner")},e.unref(r),{type:t.showPassword?w.value?"text":"password":t.type,disabled:e.unref(m),formatter:t.formatter,parser:t.parser,readonly:t.readonly,autocomplete:t.autocomplete,tabindex:t.tabindex,"aria-label":t.label,placeholder:t.placeholder,style:t.inputStyle,form:t.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(d=>l("enter"),["enter"]))}),null,16,Ie),ve.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(o).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("suffix-inner")),onClick:he},[!E.value||!z.value||!v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(n.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(o).e("icon"),e.unref(o).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(o).e("icon"),e.unref(o).e("password")],onClick:be}),null,16,["class"])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(o).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),x.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(o).e("icon"),e.unref(o).e("validateIcon"),e.unref(o).is("loading",x.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),n.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).be("group","append"))},[e.renderSlot(n.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(F),ref_key:"textarea",ref:f,class:e.unref(A).e("inner")},e.unref(r),{tabindex:t.tabindex,disabled:e.unref(m),readonly:t.readonly,autocomplete:t.autocomplete,style:$.value,"aria-label":t.label,placeholder:t.placeholder,form:t.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),v.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(o).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,t.type!=="hidden"]])}});exports.default=ze;
@@ -12,6 +12,9 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
12
12
  type: import("vue").PropType<string | number>;
13
13
  default: string;
14
14
  };
15
+ formatter: {
16
+ type: import("vue").PropType<(values: import("../types").Recordable) => import("../types").Recordable>;
17
+ };
15
18
  showResetButton: {
16
19
  type: import("vue").PropType<boolean>;
17
20
  default: boolean;
@@ -191,6 +194,9 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
191
194
  type: import("vue").PropType<string | number>;
192
195
  default: string;
193
196
  };
197
+ formatter: {
198
+ type: import("vue").PropType<(values: import("../types").Recordable) => import("../types").Recordable>;
199
+ };
194
200
  showResetButton: {
195
201
  type: import("vue").PropType<boolean>;
196
202
  default: boolean;
@@ -361,6 +367,9 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
361
367
  type: import("vue").PropType<string | number>;
362
368
  default: string;
363
369
  };
370
+ formatter: {
371
+ type: import("vue").PropType<(values: import("../types").Recordable) => import("../types").Recordable>;
372
+ };
364
373
  showResetButton: {
365
374
  type: import("vue").PropType<boolean>;
366
375
  default: boolean;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../alert/index.cjs");require("../avatar/index.cjs");require("../avatar-stack/index.cjs");require("../backtop/index.cjs");require("../button/index.cjs");require("../card/index.cjs");require("../cascader/index.cjs");require("../cascader-panel/index.cjs");require("../check-tag/index.cjs");require("../checkbox/index.cjs");require("../clamp/index.cjs");require("../client-only/index.cjs");require("../clamp-toggle/index.cjs");require("../clamp-tooltip/index.cjs");const z=require("../col/index.cjs");require("../collapse-transition/index.cjs");require("../color-picker/index.cjs");require("../config-provider/index.cjs");require("../container/index.cjs");const s=require("@vft/utils");require("../context-menu/context-menu.vue2.cjs");const J=require("../icon/index.cjs");require("../date-picker/index.cjs");require("../date-time-select/index.cjs");require("../descriptions/index.cjs");require("../dialog/index.cjs");const Z=require("../divider/index.cjs");require("../drawer/index.cjs");require("../dropdown/index.cjs");require("../empty/index.cjs");require("../footer-layout/index.cjs");const _=require("../form/index.cjs");require("../full-screen/index.cjs");require("../header-layout/index.cjs");require("../horizontal-menu/index.cjs");require("../icon-text/index.cjs");require("../iframe-layout/index.cjs");require("../image/index.cjs");require("../image-viewer/index.cjs");require("../input/index.cjs");require("../input-number/index.cjs");require("../link/index.cjs");require("../list-cell/index.cjs");require("../logo/index.cjs");require("../menu/index.cjs");require("../multiple-tabs/index.cjs");require("../notification/index.cjs");require("../overlay/index.cjs");require("../page-wrapper/index.cjs");require("../pagination/index.cjs");require("../popconfirm/index.cjs");require("../popover/index.cjs");require("../popper/index.cjs");require("../qrcode/index.cjs");require("../radio/index.cjs");require("../result/index.cjs");require("../router-view-content/index.cjs");require("../row/index.cjs");require("../scrollbar/index.cjs");require("../search/index.cjs");require("../select/index.cjs");require("../side-menu/index.cjs");require("../skeleton/index.cjs");require("../slider/index.cjs");require("../space/index.cjs");require("../steps/index.cjs");require("../switch/index.cjs");require("../table/index.cjs");require("../tabs/index.cjs");require("../tag/index.cjs");require("../time-picker/index.cjs");const ee=require("../tooltip/index.cjs");require("../tree/index.cjs");require("../verify-code/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../autocomplete/index.cjs");require("../breadcrumb/index.cjs");require("../carousel/index.cjs");require("../collapse/index.cjs");require("../countdown/index.cjs");require("../input-tag/index.cjs");require("../modal/index.cjs");require("../progress/index.cjs");require("../segmented/index.cjs");require("../statistic/index.cjs");require("../timeline/index.cjs");require("../transfer/index.cjs");require("../upload/index.cjs");require("../watermark/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../md-comment/index.cjs");require("../md-container/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../infinite-scroll/index.cjs");const r=require("../../utils/form-register.cjs");require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const re=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");require("../message/index.cjs");require("../progress-i/index.cjs");require("./index.cjs");const j=require("./component-map.cjs"),H=require("./use/helper.cjs");function L(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const oe=e.defineComponent({inheritAttrs:!1}),te=e.defineComponent({...oe,__name:"super-form-item",props:{schema:{},formProps:{},allDefaultValues:{},formModel:{},setFormModel:{},updateSchema:{},formActionType:{}},setup(n){const x=re.useNamespace("super-form"),P=e.computed(()=>{const{mergeDynamicData:t}=n.formProps;return{field:n.schema.field,model:n.formModel,values:{...t,...n.allDefaultValues,...n.formModel},schema:n.schema,elRef:w}}),W=new Set([r.FormCompEnum.Select,r.FormCompEnum.Radio,r.FormCompEnum.Checkbox,r.FormCompEnum.RadioButton,r.FormCompEnum.CheckboxButton,r.FormCompEnum.Cascader,r.FormCompEnum.AutoComplete]),T=()=>n.schema.type&&W.has(n.schema.type)?{options:[]}:{},M=e.ref(T());async function Y(){const{componentProps:t={}}=n.schema;if(s.isFunction(t)){const o=T();M.value=o;try{const m=t({schema:n.schema,formModel:n.formModel,formActionType:n.formActionType}),l=m instanceof Promise?await m:m;M.value={...o,...l??{}}}catch(m){console.error("componentProps 执行错误:",m),M.value=T()}}else M.value=t}e.watch(()=>n.schema.componentProps,(t,o)=>(t||o)&&Y(),{immediate:!0});const S=e.computed(()=>{let t={...M.value};const o=new Map([[r.FormCompEnum.Divider,{type:"horizontal"}],[r.FormCompEnum.Textarea,{type:"textarea"}],[r.FormCompEnum.Password,{type:"password","show-password":!0}],[r.FormCompEnum.InputNumber,{type:"number"}],[r.FormCompEnum.CheckboxButton,{useButton:!0}],[r.FormCompEnum.RadioButton,{useButton:!0}],[r.FormCompEnum.YearPicker,{type:r.FormCompEnum.YearPicker}],[r.FormCompEnum.MonthPicker,{type:r.FormCompEnum.MonthPicker}],[r.FormCompEnum.DatePicker,{type:r.FormCompEnum.DatePicker}],[r.FormCompEnum.DatesPicker,{type:r.FormCompEnum.DatesPicker}],[r.FormCompEnum.DateTimePicker,{type:r.FormCompEnum.DateTimePicker}],[r.FormCompEnum.WeekPicker,{type:r.FormCompEnum.WeekPicker}],[r.FormCompEnum.TimeRangePicker,{type:r.FormCompEnum.TimePicker,"is-range":!0,"start-placeholder":"开始时间","end-placeholder":"结束时间"}],[r.FormCompEnum.DateTimeRangePicker,{type:r.FormCompEnum.DateTimeRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.DateRangePicker,{type:r.FormCompEnum.DateRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.MonthRangePicker,{type:r.FormCompEnum.MonthRangePicker,"start-placeholder":"开始月份","end-placeholder":"结束月份"}]]);n.schema.type&&o.has(n.schema.type)&&(t=Object.assign(o.get(n.schema.type)||{},t));const m=t;return n.formProps.inputMaxLength&&n.schema.type===r.FormCompEnum.Input&&!m?.maxlength&&(m.maxlength=n.formProps.inputMaxLength),m}),K=e.computed(()=>{const{disabled:t}=n.formProps,{dynamicDisabled:o}=n.schema,{disabled:m=!1}=e.unref(S);let l=!!t||m;return s.isBoolean(o)&&(l=o),s.isFunction(o)&&(l=o(e.unref(P))),l});function $(){const{show:t,ifShow:o}=n.schema;let m=!0,l=!0;return s.isBoolean(t)&&(m=t),s.isBoolean(o)&&(l=o),s.isFunction(t)&&(m=t(e.unref(P))),s.isFunction(o)&&(l=o(e.unref(P))),{isShow:m,isIfShow:l}}function Q(){const{rules:t=[],type:o=r.FormCompEnum.Input,rulesMessageJoinLabel:m,label:l,title:F,dynamicRule:f,required:g,dynamicRuleAdd:p=!0}=n.schema,c=s.isFunction(g)?g(e.unref(P)):g;if(!c)return[];const q=l||F;if(s.isFunction(f)&&!p)return f(e.unref(P));let i=s.cloneDeep(s.isArray(t)?t:[t]);const{rulesMessageJoinLabel:b}=n.formProps,k=Reflect.has(n.schema,"rulesMessageJoinLabel")?m:b,E=H.createPlaceholderMessage(o,`${k?q:""}`);function h(u,a){const N=u.message||E;return a===void 0||s.isNull(a)||o===r.FormCompEnum.CheckboxSingle&&!a||Array.isArray(a)&&a.length===0||typeof a=="string"&&a.trim()===""||typeof a=="object"&&Reflect.has(a,"checked")&&Reflect.has(a,"halfChecked")&&Array.isArray(a.checked)&&Array.isArray(a.halfChecked)&&a.checked.length===0&&a.halfChecked.length===0?Promise.reject(N):Promise.resolve()}const y=[r.FormCompEnum.Radio,r.FormCompEnum.Select,r.FormCompEnum.RadioSingle,r.FormCompEnum.RadioButton,r.FormCompEnum.Checkbox,r.FormCompEnum.CheckboxSingle,r.FormCompEnum.CheckboxButton,r.FormCompEnum.AutoComplete,r.FormCompEnum.Cascader,r.FormCompEnum.ColorPicker,r.FormCompEnum.Upload,r.FormCompEnum.Slider].includes(o);if(c)!i||i.length===0?i=[{required:c,validator:h,trigger:y?"change":"blur"}]:i.findIndex(a=>Reflect.has(a,"required"))===-1&&i.unshift({required:c,validator:h,trigger:y?"change":"blur"});else return i;const I=i.findIndex(u=>Reflect.has(u,"required")&&!Reflect.has(u,"validator"));if(I!==-1){const u=i[I],{isShow:a}=$();a||(u.required=!1),o&&(u.message=u.message||E)}const d=i.findIndex(u=>u.min),C=i.findIndex(u=>u.max);function R(u,a,N="all"){const D=i[a],U=D.isNumber?isNaN(u)?u?.length||0:Number(u):u?.length||0;return["min","all"].includes(N)&&U<D.min?Promise.reject(`${q}至少为${D.min}位`):["max","all"].includes(N)&&U>D.max?Promise.reject(`${q}最多${D.max}位`):Promise.resolve()}(d!==-1||C!==-1)&&(d!==-1&&C!==-1&&!i[d].validator&&!i[d].message?i[d].validator=(u,a)=>R(a,d):d!==-1&&!i[d].validator&&!i[d].message?i[d].validator=(u,a)=>R(a,d,"min"):C!==-1&&!i[C].validator&&!i[C].message&&(i[C].validator=(u,a)=>R(a,C,"max")));const v=i.findIndex(u=>u.len);if(v!==-1&&(i[v].validator=(u,a)=>a.length!==i[v].len?Promise.reject(`${q}必须是${i[v].len}位`):Promise.resolve()),s.isFunction(f)&&p){let u=f(e.unref(P));u=s.isArray(u)?u:[u],i=i.concat(u)}return i}const w=e.ref(),G=()=>{const{renderComponentContent:t,type:o=r.FormCompEnum.Input,field:m,changeEvent:l="change",valueField:F,label:f,title:g,placeholderJoinLabel:p=!0}=n.schema;let c=l;j.isInput(o)?c="input":j.isDatePicker(o)||o===r.FormCompEnum.TimePicker||o===r.FormCompEnum.InputTag||o===r.FormCompEnum.AutoComplete||o===r.FormCompEnum.Cascader||o===r.FormCompEnum.ColorPicker||o===r.FormCompEnum.Slider?c="update:modelValue":o===r.FormCompEnum.Upload&&(c="update:fileList");const q=`on${s.upperFirst(c)}`,i={[q]:(...C)=>{const[R]=C;h[q]&&h[q](...C);const v=R?R.target:null,u=v?v.value:R;n.setFormModel(m,u,n.schema)}},b=r.getComponent(o),{autoSetPlaceHolder:k,size:E}=n.formProps,h={clearable:!0,...e.unref(S)};if(o!==r.FormCompEnum.Search&&(h.size=e.unref(S)?.size||E,h.disabled=e.unref(K)),!h.disabled&&k&&!j.isRangePicker(o)&&o){const C=f||g;h.placeholder=e.unref(S)?.placeholder||H.createPlaceholderMessage(o,p&&s.isString(C)?C:"")}const y={[F||"model-value"]:n.formModel[m]},I={...i,...h,...y};if(!t&&o!==r.FormCompEnum.Upload)return e.createVNode(b,e.mergeProps({ref:w},I),null);let d;if(d=s.isFunction(t)?{...t({...e.unref(P),elRef:w})}:{default:()=>t},o===r.FormCompEnum.Upload&&!t){const{drag:C}=e.unref(S);d=C?{default:()=>e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)}:{default:()=>e.createVNode(e.resolveComponent("vft-button"),{type:"primary"},{default:()=>[e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)]})}}return e.createVNode(b,e.mergeProps({ref:w},I),L(d)?d:{default:()=>[d]})};function A(){const{showLabel:t=!0,label:o,title:m,subLabel:l,labelRequired:F,helpIcon:f,helpTooltip:g}=n.schema;let p=o||m;p=F?e.createVNode("span",null,[e.createVNode("span",{class:"label-required"},[e.createTextVNode("*")]),e.createVNode("span",null,[p])]):p;const c=()=>{if(!f&&!g)return null;const q=e.computed(()=>s.singleAttrToObj(f,"icon",{size:20,pointer:!0,icon:"icon-help"}));if(g){const i=e.computed(()=>s.singleAttrToObj(g,"content",{placement:"right-start"}));return e.createVNode(ee.VftTooltip,e.mergeProps({className:"box-item"},i.value),{default:()=>[e.createVNode(J.VftIcon,q.value,null)]})}return e.createVNode(J.VftIcon,q.value,null)};return t&&p?l?e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[p,e.createTextVNode(" "),e.createVNode("span",{class:"sub-label"},[l])]),c()]):e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[p]),c()]):void 0}const B=e.useSlots();function O(t,o="default",m){if(!t||!Reflect.has(t,o))return null;if(!s.isFunction(t[o]))return console.error(`${o} is not a function!`),null;const l=t[o];return l?l(m):null}function X(){const{itemProps:t,slot:o,render:m,field:l,suffix:F,prefix:f,prefixParentStyle:g}=n.schema,{autoCleanErrorMessage:p,compFullWidth:c}=n.formProps,q=()=>o?O(B,o,e.unref(P)):m?m(e.unref(P)):G(),i=!!F,b=!!f,k=s.isFunction(F)?F(e.unref(P)):F,E=s.isFunction(f)?f(e.unref(P)):f,h=()=>{n.updateSchema([{field:l,itemProps:{error:""}}])},V=()=>e.createVNode(_.VftFormItem,e.mergeProps({style:{marginRight:n.formProps.customLayout?"10px":0},prop:l,class:[{[x.is("suffix")]:i},{[x.is("comp-full-width")]:c},x.e("item")]},t,{label:t?.label||t?.title,"onUpdate:error":p?h:()=>{},rules:Q()}),{default:()=>[e.createVNode("div",{class:x.e("container")},[e.createVNode("div",{class:x.e("content")},[q(),i&&e.createVNode("span",{class:x.m("suffix")},[k])])])],label:A()?()=>A():void 0});return b?e.createVNode("div",{style:g},[e.createVNode("span",{class:x.m("prefix")},[E]),V()]):V()}return()=>{let t;const{colProps:o={},colSlot:m,renderColContent:l,type:F=r.FormCompEnum.Input,render:f,quickColSpan:g}=n.schema;if(!r.getComponent(F)&&!l&&!f)return null;const{baseColProps:p={},quickColSpan:c}=n.formProps,q=c?{span:Math.ceil(24/c),...p}:{...p},i=g?{span:Math.ceil(24/g),...o}:{...o},b={...q,...i},{isIfShow:k,isShow:E}=$(),h=e.unref(P),V=()=>m?O(B,m,h):l?l(h):X();if(F===r.FormCompEnum.Divider){let y;return e.createVNode(z.VftCol,e.mergeProps({span:24},i),{default:()=>[e.createVNode(Z.VftDivider,e.unref(S),L(y=A())?y:{default:()=>[y]})]})}return k&&(n.formProps.customLayout?V():e.withDirectives(e.createVNode(z.VftCol,b,L(t=V())?t:{default:()=>[t]}),[[e.vShow,E]]))}}});exports.default=te;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../alert/index.cjs");require("../avatar/index.cjs");require("../avatar-stack/index.cjs");require("../backtop/index.cjs");require("../button/index.cjs");require("../card/index.cjs");require("../cascader/index.cjs");require("../cascader-panel/index.cjs");require("../check-tag/index.cjs");require("../checkbox/index.cjs");require("../clamp/index.cjs");require("../client-only/index.cjs");require("../clamp-toggle/index.cjs");require("../clamp-tooltip/index.cjs");const J=require("../col/index.cjs");require("../collapse-transition/index.cjs");require("../color-picker/index.cjs");require("../config-provider/index.cjs");require("../container/index.cjs");const s=require("@vft/utils");require("../context-menu/context-menu.vue2.cjs");const H=require("../icon/index.cjs");require("../date-picker/index.cjs");require("../date-time-select/index.cjs");require("../descriptions/index.cjs");require("../dialog/index.cjs");const _=require("../divider/index.cjs");require("../drawer/index.cjs");require("../dropdown/index.cjs");require("../empty/index.cjs");require("../footer-layout/index.cjs");const ee=require("../form/index.cjs");require("../full-screen/index.cjs");require("../header-layout/index.cjs");require("../horizontal-menu/index.cjs");require("../icon-text/index.cjs");require("../iframe-layout/index.cjs");require("../image/index.cjs");require("../image-viewer/index.cjs");require("../input/index.cjs");require("../input-number/index.cjs");require("../link/index.cjs");require("../list-cell/index.cjs");require("../logo/index.cjs");require("../menu/index.cjs");require("../multiple-tabs/index.cjs");require("../notification/index.cjs");require("../overlay/index.cjs");require("../page-wrapper/index.cjs");require("../pagination/index.cjs");require("../popconfirm/index.cjs");require("../popover/index.cjs");require("../popper/index.cjs");require("../qrcode/index.cjs");require("../radio/index.cjs");require("../result/index.cjs");require("../router-view-content/index.cjs");require("../row/index.cjs");require("../scrollbar/index.cjs");require("../search/index.cjs");require("../select/index.cjs");require("../side-menu/index.cjs");require("../skeleton/index.cjs");require("../slider/index.cjs");require("../space/index.cjs");require("../steps/index.cjs");require("../switch/index.cjs");require("../table/index.cjs");require("../tabs/index.cjs");require("../tag/index.cjs");require("../time-picker/index.cjs");const re=require("../tooltip/index.cjs");require("../tree/index.cjs");require("../verify-code/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../autocomplete/index.cjs");require("../breadcrumb/index.cjs");require("../carousel/index.cjs");require("../collapse/index.cjs");require("../countdown/index.cjs");require("../input-tag/index.cjs");require("../modal/index.cjs");require("../progress/index.cjs");require("../segmented/index.cjs");require("../statistic/index.cjs");require("../timeline/index.cjs");require("../transfer/index.cjs");require("../upload/index.cjs");require("../watermark/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../md-comment/index.cjs");require("../md-container/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../infinite-scroll/index.cjs");const r=require("../../utils/form-register.cjs");require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const oe=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");require("../message/index.cjs");require("../progress-i/index.cjs");require("./index.cjs");const L=require("./component-map.cjs"),W=require("./use/helper.cjs");function $(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const te=e.defineComponent({inheritAttrs:!1}),ne=e.defineComponent({...te,__name:"super-form-item",props:{schema:{},formProps:{},allDefaultValues:{},formModel:{},setFormModel:{},updateSchema:{},formActionType:{}},setup(t){const x=oe.useNamespace("super-form"),F=e.computed(()=>{const{mergeDynamicData:n}=t.formProps;return{field:t.schema.field,model:t.formModel,values:{...n,...t.allDefaultValues,...t.formModel},schema:t.schema,elRef:T}}),Y=new Set([r.FormCompEnum.Select,r.FormCompEnum.Radio,r.FormCompEnum.Checkbox,r.FormCompEnum.RadioButton,r.FormCompEnum.CheckboxButton,r.FormCompEnum.Cascader,r.FormCompEnum.AutoComplete]),A=()=>t.schema.type&&Y.has(t.schema.type)?{options:[]}:{},I=e.ref(A());async function K(){const{componentProps:n={}}=t.schema;if(s.isFunction(n)){const o=A();I.value=o;try{const u=n({schema:t.schema,formModel:t.formModel,formActionType:t.formActionType}),a=u instanceof Promise?await u:u;I.value={...o,...a??{}}}catch(u){console.error("componentProps 执行错误:",u),I.value=A()}}else I.value=n}e.watch(()=>t.schema.componentProps,(n,o)=>(n||o)&&K(),{immediate:!0});const R=e.computed(()=>{let n={...I.value};const o=new Map([[r.FormCompEnum.Divider,{type:"horizontal"}],[r.FormCompEnum.Textarea,{type:"textarea"}],[r.FormCompEnum.Password,{type:"password","show-password":!0}],[r.FormCompEnum.InputNumber,{type:"number"}],[r.FormCompEnum.CheckboxButton,{useButton:!0}],[r.FormCompEnum.RadioButton,{useButton:!0}],[r.FormCompEnum.YearPicker,{type:r.FormCompEnum.YearPicker}],[r.FormCompEnum.MonthPicker,{type:r.FormCompEnum.MonthPicker}],[r.FormCompEnum.DatePicker,{type:r.FormCompEnum.DatePicker}],[r.FormCompEnum.DatesPicker,{type:r.FormCompEnum.DatesPicker}],[r.FormCompEnum.DateTimePicker,{type:r.FormCompEnum.DateTimePicker}],[r.FormCompEnum.WeekPicker,{type:r.FormCompEnum.WeekPicker}],[r.FormCompEnum.TimeRangePicker,{type:r.FormCompEnum.TimePicker,"is-range":!0,"start-placeholder":"开始时间","end-placeholder":"结束时间"}],[r.FormCompEnum.DateTimeRangePicker,{type:r.FormCompEnum.DateTimeRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.DateRangePicker,{type:r.FormCompEnum.DateRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.MonthRangePicker,{type:r.FormCompEnum.MonthRangePicker,"start-placeholder":"开始月份","end-placeholder":"结束月份"}]]);t.schema.type&&o.has(t.schema.type)&&(n=Object.assign(o.get(t.schema.type)||{},n));const u=n;return t.formProps.inputMaxLength&&t.schema.type===r.FormCompEnum.Input&&!u?.maxlength&&(u.maxlength=t.formProps.inputMaxLength),u}),Q=e.computed(()=>{const{disabled:n}=t.formProps,{dynamicDisabled:o}=t.schema,{disabled:u=!1}=e.unref(R);let a=!!n||u;return s.isBoolean(o)&&(a=o),s.isFunction(o)&&(a=o(e.unref(F))),a});function B(){const{show:n,ifShow:o}=t.schema;let u=!0,a=!0;return s.isBoolean(n)&&(u=n),s.isBoolean(o)&&(a=o),s.isFunction(n)&&(u=n(e.unref(F))),s.isFunction(o)&&(a=o(e.unref(F))),{isShow:u,isIfShow:a}}function G(){const{rules:n=[],type:o=r.FormCompEnum.Input,rulesMessageJoinLabel:u,label:a,title:g,dynamicRule:f,required:h,dynamicRuleAdd:p=!0}=t.schema,d=s.isFunction(h)?h(e.unref(F)):h,P=t.formModel[t.schema.field];if(!d&&s.isNullOrUndefined(P))return[];const C=a||g;if(s.isFunction(f)&&!p)return f(e.unref(F));let i=s.cloneDeep(s.isArray(n)?n:[n]);const{rulesMessageJoinLabel:k}=t.formProps,V=Reflect.has(t.schema,"rulesMessageJoinLabel")?u:k,q=W.createPlaceholderMessage(o,`${V?C:""}`);function E(m,l){const N=m.message||q;return l===void 0||s.isNull(l)||o===r.FormCompEnum.CheckboxSingle&&!l||Array.isArray(l)&&l.length===0||typeof l=="string"&&l.trim()===""||typeof l=="object"&&Reflect.has(l,"checked")&&Reflect.has(l,"halfChecked")&&Array.isArray(l.checked)&&Array.isArray(l.halfChecked)&&l.checked.length===0&&l.halfChecked.length===0?Promise.reject(N):Promise.resolve()}const D=[r.FormCompEnum.Radio,r.FormCompEnum.Select,r.FormCompEnum.RadioSingle,r.FormCompEnum.RadioButton,r.FormCompEnum.Checkbox,r.FormCompEnum.CheckboxSingle,r.FormCompEnum.CheckboxButton,r.FormCompEnum.AutoComplete,r.FormCompEnum.Cascader,r.FormCompEnum.ColorPicker,r.FormCompEnum.Upload,r.FormCompEnum.Slider].includes(o);if(d)!i||i.length===0?i=[{required:d,validator:E,trigger:D?"change":"blur"}]:i.findIndex(l=>Reflect.has(l,"required"))===-1&&i.unshift({required:d,validator:E,trigger:D?"change":"blur"});else return i;const y=i.findIndex(m=>Reflect.has(m,"required")&&!Reflect.has(m,"validator"));if(y!==-1){const m=i[y],{isShow:l}=B();l||(m.required=!1),o&&(m.message=m.message||q)}const c=i.findIndex(m=>m.min),b=i.findIndex(m=>m.max);function S(m,l,N="all"){const w=i[l],z=w.isNumber?isNaN(m)?m?.length||0:Number(m):m?.length||0;return["min","all"].includes(N)&&z<w.min?Promise.reject(`${C}至少为${w.min}位`):["max","all"].includes(N)&&z>w.max?Promise.reject(`${C}最多${w.max}位`):Promise.resolve()}(c!==-1||b!==-1)&&(c!==-1&&b!==-1&&!i[c].validator&&!i[c].message?i[c].validator=(m,l)=>S(l,c):c!==-1&&!i[c].validator&&!i[c].message?i[c].validator=(m,l)=>S(l,c,"min"):b!==-1&&!i[b].validator&&!i[b].message&&(i[b].validator=(m,l)=>S(l,b,"max")));const M=i.findIndex(m=>m.len);if(M!==-1&&(i[M].validator=(m,l)=>l.length!==i[M].len?Promise.reject(`${C}必须是${i[M].len}位`):Promise.resolve()),s.isFunction(f)&&p){let m=f(e.unref(F));m=s.isArray(m)?m:[m],i=i.concat(m)}return i}const T=e.ref(),X=()=>{const{renderComponentContent:n,type:o=r.FormCompEnum.Input,field:u,changeEvent:a="change",valueField:g,label:f,title:h,placeholderJoinLabel:p=!0}=t.schema;let d=a;L.isInput(o)?d="input":L.isDatePicker(o)||o===r.FormCompEnum.TimePicker||o===r.FormCompEnum.InputTag||o===r.FormCompEnum.AutoComplete||o===r.FormCompEnum.Cascader||o===r.FormCompEnum.ColorPicker||o===r.FormCompEnum.Slider?d="update:modelValue":o===r.FormCompEnum.Upload&&(d="update:fileList");const P=`on${s.upperFirst(d)}`,C={[P]:(...c)=>{const[b]=c;q[P]&&q[P](...c);const S=b?b.target:null,M=S?S.value:b;t.setFormModel(u,M,t.schema)}},i=r.getComponent(o),{autoSetPlaceHolder:k,size:V}=t.formProps,q={clearable:!0,...e.unref(R)};if(o!==r.FormCompEnum.Search&&(q.size=e.unref(R)?.size||V,q.disabled=e.unref(Q)),!q.disabled&&k&&!L.isRangePicker(o)&&o){const c=f||h;q.placeholder=e.unref(R)?.placeholder||W.createPlaceholderMessage(o,p&&s.isString(c)?c:"")}const v={[g||"model-value"]:t.formModel[u]},D={...C,...q,...v};if(!n&&o!==r.FormCompEnum.Upload)return e.createVNode(i,e.mergeProps({ref:T},D),null);let y;if(y=s.isFunction(n)?{...n({...e.unref(F),elRef:T})}:{default:()=>n},o===r.FormCompEnum.Upload&&!n){const{drag:c}=e.unref(R);y=c?{default:()=>e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)}:{default:()=>e.createVNode(e.resolveComponent("vft-button"),{type:"primary"},{default:()=>[e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)]})}}return e.createVNode(i,e.mergeProps({ref:T},D),$(y)?y:{default:()=>[y]})};function j(){const{showLabel:n=!0,label:o,title:u,subLabel:a,labelRequired:g,helpIcon:f,helpTooltip:h}=t.schema;let p=o||u;p=g?e.createVNode("span",null,[e.createVNode("span",{class:"label-required"},[e.createTextVNode("*")]),e.createVNode("span",null,[p])]):p;const d=()=>{if(!f&&!h)return null;const P=e.computed(()=>s.singleAttrToObj(f,"icon",{size:20,pointer:!0,icon:"icon-help"}));if(h){const C=e.computed(()=>s.singleAttrToObj(h,"content",{placement:"right-start"}));return e.createVNode(re.VftTooltip,e.mergeProps({className:"box-item"},C.value),{default:()=>[e.createVNode(H.VftIcon,P.value,null)]})}return e.createVNode(H.VftIcon,P.value,null)};return n&&p?a?e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[p,e.createTextVNode(" "),e.createVNode("span",{class:"sub-label"},[a])]),d()]):e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[p]),d()]):void 0}const O=e.useSlots();function U(n,o="default",u){if(!n||!Reflect.has(n,o))return null;if(!s.isFunction(n[o]))return console.error(`${o} is not a function!`),null;const a=n[o];return a?a(u):null}function Z(){const{itemProps:n,slot:o,render:u,field:a,suffix:g,prefix:f,prefixParentStyle:h}=t.schema,{autoCleanErrorMessage:p,compFullWidth:d}=t.formProps,P=()=>o?U(O,o,e.unref(F)):u?u(e.unref(F)):X(),C=!!g,i=!!f,k=s.isFunction(g)?g(e.unref(F)):g,V=s.isFunction(f)?f(e.unref(F)):f,q=()=>{t.updateSchema([{field:a,itemProps:{error:""}}])},E=()=>e.createVNode(ee.VftFormItem,e.mergeProps({style:{marginRight:t.formProps.customLayout?"10px":0},prop:a,class:[{[x.is("suffix")]:C},{[x.is("comp-full-width")]:d},x.e("item")]},n,{label:n?.label||n?.title,"onUpdate:error":p?q:()=>{},rules:G()}),{default:()=>[e.createVNode("div",{class:x.e("container")},[e.createVNode("div",{class:x.e("content")},[P(),C&&e.createVNode("span",{class:x.m("suffix")},[k])])])],label:j()?()=>j():void 0});return i?e.createVNode("div",{style:h},[e.createVNode("span",{class:x.m("prefix")},[V]),E()]):E()}return()=>{let n;const{colProps:o={},colSlot:u,renderColContent:a,type:g=r.FormCompEnum.Input,render:f,quickColSpan:h}=t.schema;if(!r.getComponent(g)&&!a&&!f)return null;const{baseColProps:p={},quickColSpan:d}=t.formProps,P=d?{span:Math.ceil(24/d),...p}:{...p},C=h?{span:Math.ceil(24/h),...o}:{...o},i={...P,...C},{isIfShow:k,isShow:V}=B(),q=e.unref(F),E=()=>u?U(O,u,q):a?a(q):Z();if(g===r.FormCompEnum.Divider){let v;return e.createVNode(J.VftCol,e.mergeProps({span:24},C),{default:()=>[e.createVNode(_.VftDivider,e.unref(R),$(v=j())?v:{default:()=>[v]})]})}return k&&(t.formProps.customLayout?E():e.withDirectives(e.createVNode(J.VftCol,i,$(n=E())?n:{default:()=>[n]}),[[e.vShow,V]]))}}});exports.default=ne;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Q=require("../col/index.cjs"),X=require("../form/index.cjs"),Y=require("../row/index.cjs"),T=require("@vueuse/core"),c=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const Z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ee=require("./super-form-action.vue2.cjs"),te=require("./super-form-item.vue2.cjs"),oe=require("./use/use-auto-focus.cjs"),ne=require("./use/use-form-context.cjs"),re=require("./use/use-form-events.cjs"),ue=require("./use/use-form-values.cjs"),se=require("./use/helper.cjs"),le=e.defineComponent({name:"vft-super-form"}),ae=e.defineComponent({...le,props:{size:{default:"default"},rowProps:{default:{gutter:20}},baseColProps:{},quickColSpan:{default:3},autoSetPlaceHolder:{type:Boolean,default:!0},schemas:{},autoFocusFirstItem:{type:Boolean,default:!1},submitOnReset:{type:Boolean},mergeDynamicData:{},fieldMapToTime:{},autoSubmitOnEnter:{type:Boolean,default:!0},rulesMessageJoinLabel:{type:Boolean,default:!0},submitOnChange:{type:Boolean},showActionButtonGroup:{type:Boolean,default:!0},autoCleanErrorMessage:{type:Boolean,default:!0},beforeSubmitFunc:{},submitFunc:{},watchDataIsChange:{type:Boolean},compFullWidth:{type:Boolean,default:!1},actionInline:{type:Boolean,default:!1},resetFunc:{},customLayout:{type:Boolean,default:!1},showResetButton:{type:Boolean,default:!1},showSubmitButton:{type:Boolean,default:!0},showCommonButton:{type:Boolean,default:!1},resetButtonOptions:{},submitButtonOptions:{},commonButtonOptions:{},actionRowOptions:{},inputMaxLength:{},submitResetReverse:{type:Boolean},labelPosition:{default:"right"},labelWidth:{default:"auto"},disabled:{type:Boolean},model:{},rules:{},requireAsteriskPosition:{default:"left"},labelSuffix:{},inline:{type:Boolean},inlineMessage:{type:Boolean},statusIcon:{type:Boolean},showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:{type:Boolean},scrollIntoViewOptions:{type:Boolean}},emits:["register","reset","submit","field-value-change","common-btn-click"],setup(L,{expose:$,emit:N}){const F=L,m=N,k=Z.useNamespace("super-form"),G=e.useAttrs(),s=e.reactive({}),i=e.ref({}),f=e.ref(!1),p=e.ref({}),C=e.ref(),d=e.ref(null),S=e.ref(),o=e.computed(()=>({...F,...e.unref(p)})),l=e.computed(()=>({...G,...F,...e.unref(o)})),r=e.computed(()=>{const t=e.unref(C);return c.cloneDeep(t)}),{handleFormValues:q,initDefault:z}=ue.useFormValues({getProps:o,defaultValueRef:i,getSchema:r,formModel:s});oe.useAutoFocus({getSchema:r,getProps:o,isInitedDefault:f,formElRef:d});const{handleSubmit:a,setFieldsValue:B,clearValidate:R,validate:_,validateField:A,getFieldsValue:h,updateSchema:v,resetSchema:y,appendSchemaByField:E,removeSchemaByField:O,resetFields:g,scrollToField:H,getFieldValue:P,setFormItemError:V}=re.useFormEvents({emit:m,getProps:o,formModel:s,getSchema:r,defaultValueRef:i,formElRef:d,schemaRef:C,handleFormValues:q,initValues:S});ne.createFormContext({resetAction:g,submitAction:a,commonAction:()=>m("common-btn-click")}),e.watch(()=>e.unref(o).model,()=>{const{model:t}=e.unref(o);t&&B(t)},{immediate:!0}),e.watch(()=>e.unref(o).schemas,(t,n)=>{c.isEqual(t,n)||y(t??[])}),e.watch(()=>r.value,t=>{e.nextTick(()=>{}),!e.unref(f)&&t?.length&&(z(),f.value=!0,o.value?.watchDataIsChange&&T.useTimeoutFn(()=>{S.value=h()},40))}),e.watch(()=>s,T.useDebounceFn(()=>{e.unref(o).submitOnChange&&a()},300),{deep:!0});async function x(t){p.value=c.deepMerge(e.unref(p)||{},t)}function j(t,n,u){s[t]=n}function K(t){const{autoSubmitOnEnter:n}=e.unref(o);if(n&&t.key==="Enter"&&t.target&&t.target instanceof HTMLElement){const u=t.target;u&&u.tagName&&u.tagName.toUpperCase()==="INPUT"&&a()}}const M={getFieldsValue:h,getFieldValue:P,setFieldsValue:B,resetFields:g,updateSchema:v,resetSchema:y,setProps:x,removeSchemaByField:O,appendSchemaByField:E,clearValidate:R,validateField:A,setFormItemError:V,validate:_,submit:a,scrollToField:H};m("register",M);const U=e.computed(()=>c.pick(o.value,["showResetButton","showCommonButton","showSubmitButton","resetButtonOptions","submitButtonOptions","commonButtonOptions","actionRowOptions","actionSpan","submitResetReverse"])),W=e.computed(()=>{const{showCommonButton:t,showResetButton:n,showSubmitButton:u}=o.value;return!!(t||n||u)}),I=e.computed(()=>{const t=e.unref(r);if(!t||t.length===0)return!1;try{return se.willFormExceedOneRow(t,o.value,s,i.value).willExceed}catch{return!1}}),b=e.useSlots(),w=t=>t?e.h(ee.default,U.value,{resetBefore:n=>b.resetBefore?.(n),submitBefore:n=>b.submitBefore?.(n),submitAfter:n=>b.submitAfter?.(n)}):null;return $({getFieldsValue:h,getFieldValue:P,setFieldsValue:B,resetFields:g,updateSchema:v,resetSchema:y,setProps:x,removeSchemaByField:O,appendSchemaByField:E,clearValidate:R,validateField:A,validate:_,submit:a,getSchema:r,setFormItemError:V,formModel:e.computed(()=>q(s)),hasActionButton:W,willExceedOneRow:I}),(t,n)=>r.value?.length?(e.openBlock(),e.createBlock(e.unref(X.VftForm),e.mergeProps({key:0},l.value,{ref_key:"formElRef",ref:d,class:[e.unref(k).b(),{[e.unref(k).is("exceed-one-row")]:I.value}],model:s,onSubmit:n[0]||(n[0]=e.withModifiers(()=>{},["prevent"])),onKeypress:e.withKeys(K,["enter"])}),{default:e.withCtx(()=>[r.value?.length?(e.openBlock(),e.createBlock(e.unref(Y.VftRow),e.normalizeProps(e.mergeProps({key:0},l.value?.rowProps)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"formHeader"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createBlock(te.default,{key:u.field,"form-action-type":M,schema:u,"form-props":o.value,"all-default-values":i.value,"form-model":s,"set-form-model":j,"update-schema":e.unref(v)},e.createSlots({_:2},[e.renderList(Object.keys(t.$slots),D=>({name:D,fn:e.withCtx(J=>[e.renderSlot(t.$slots,D,e.mergeProps({ref_for:!0},J||{}))])}))]),1032,["schema","form-props","all-default-values","form-model","update-schema"]))),128)),o.value?.customLayout?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&o.value?.actionInline)),{key:1})):(e.openBlock(),e.createBlock(e.unref(Q.VftCol),e.normalizeProps(e.mergeProps({key:0},l.value?.quickColSpan?{span:Math.ceil(24/l.value?.quickColSpan),...l.value?.baseColProps}:{})),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&o.value?.actionInline))))]),_:1},16))]),_:3},16)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&!o.value?.actionInline)))),e.renderSlot(t.$slots,"formFooter")]),_:3},16,["class","model"])):e.createCommentVNode("",!0)}});exports.default=ae;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),X=require("../col/index.cjs"),Y=require("../form/index.cjs"),Z=require("../row/index.cjs"),D=require("@vueuse/core"),c=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const ee=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const te=require("./super-form-action.vue2.cjs"),oe=require("./super-form-item.vue2.cjs"),ne=require("./use/use-auto-focus.cjs"),re=require("./use/use-form-context.cjs"),ue=require("./use/use-form-events.cjs"),se=require("./use/use-form-values.cjs"),le=require("./use/helper.cjs"),ae=e.defineComponent({name:"vft-super-form"}),ie=e.defineComponent({...ae,props:{size:{default:"default"},rowProps:{default:{gutter:20}},baseColProps:{},quickColSpan:{default:3},autoSetPlaceHolder:{type:Boolean,default:!0},schemas:{},autoFocusFirstItem:{type:Boolean,default:!1},submitOnReset:{type:Boolean},mergeDynamicData:{},fieldMapToTime:{},autoSubmitOnEnter:{type:Boolean,default:!0},rulesMessageJoinLabel:{type:Boolean,default:!0},submitOnChange:{type:Boolean},showActionButtonGroup:{type:Boolean,default:!0},autoCleanErrorMessage:{type:Boolean,default:!0},beforeSubmitFunc:{},submitFunc:{},watchDataIsChange:{type:Boolean},compFullWidth:{type:Boolean,default:!1},actionInline:{type:Boolean,default:!1},resetFunc:{},customLayout:{type:Boolean,default:!1},showResetButton:{type:Boolean,default:!1},showSubmitButton:{type:Boolean,default:!0},showCommonButton:{type:Boolean,default:!1},resetButtonOptions:{},submitButtonOptions:{},commonButtonOptions:{},actionRowOptions:{},inputMaxLength:{},submitResetReverse:{type:Boolean},labelPosition:{default:"right"},labelWidth:{default:"auto"},formatter:{},disabled:{type:Boolean},model:{},rules:{},requireAsteriskPosition:{default:"left"},labelSuffix:{},inline:{type:Boolean},inlineMessage:{type:Boolean},statusIcon:{type:Boolean},showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:{type:Boolean},scrollIntoViewOptions:{type:Boolean}},emits:["register","reset","submit","field-value-change","common-btn-click"],setup(T,{expose:L,emit:$}){const F=T,m=$,k=ee.useNamespace("super-form"),N=e.useAttrs(),s=e.reactive({}),i=e.ref({}),f=e.ref(!1),p=e.ref({}),C=e.ref(),d=e.ref(null),S=e.ref(),o=e.computed(()=>({...F,...e.unref(p)})),l=e.computed(()=>({...N,...F,...e.unref(o)})),r=e.computed(()=>{const t=e.unref(C);return c.cloneDeep(t)}),{handleFormValues:G,initDefault:z}=se.useFormValues({getProps:o,defaultValueRef:i,getSchema:r,formModel:s});ne.useAutoFocus({getSchema:r,getProps:o,isInitedDefault:f,formElRef:d});const{handleSubmit:a,setFieldsValue:B,clearValidate:q,validate:R,validateField:_,getFieldsValue:h,updateSchema:v,resetSchema:y,appendSchemaByField:A,removeSchemaByField:E,resetFields:g,scrollToField:H,getFieldValue:O,setFormItemError:P,getFormattedFormModel:j}=ue.useFormEvents({emit:m,getProps:o,formModel:s,getSchema:r,defaultValueRef:i,formElRef:d,schemaRef:C,handleFormValues:G,initValues:S});re.createFormContext({resetAction:g,submitAction:a,commonAction:()=>m("common-btn-click")}),e.watch(()=>e.unref(o).model,()=>{const{model:t}=e.unref(o);t&&B(t)},{immediate:!0}),e.watch(()=>e.unref(o).schemas,(t,n)=>{c.isEqual(t,n)||y(t??[])}),e.watch(()=>r.value,t=>{e.nextTick(()=>{}),!e.unref(f)&&t?.length&&(z(),f.value=!0,o.value?.watchDataIsChange&&D.useTimeoutFn(()=>{S.value=h()},40))}),e.watch(()=>s,D.useDebounceFn(()=>{e.unref(o).submitOnChange&&a()},300),{deep:!0});async function M(t){p.value=c.deepMerge(e.unref(p)||{},t)}function K(t,n,u){s[t]=n}function U(t){const{autoSubmitOnEnter:n}=e.unref(o);if(n&&t.key==="Enter"&&t.target&&t.target instanceof HTMLElement){const u=t.target;u&&u.tagName&&u.tagName.toUpperCase()==="INPUT"&&a()}}const V={getFieldsValue:h,getFieldValue:O,setFieldsValue:B,resetFields:g,updateSchema:v,resetSchema:y,setProps:M,removeSchemaByField:E,appendSchemaByField:A,clearValidate:q,validateField:_,setFormItemError:P,validate:R,submit:a,scrollToField:H};m("register",V);const W=e.computed(()=>c.pick(o.value,["showResetButton","showCommonButton","showSubmitButton","resetButtonOptions","submitButtonOptions","commonButtonOptions","actionRowOptions","actionSpan","submitResetReverse"])),J=e.computed(()=>{const{showCommonButton:t,showResetButton:n,showSubmitButton:u}=o.value;return!!(t||n||u)}),x=e.computed(()=>{const t=e.unref(r);if(!t||t.length===0)return!1;try{return le.willFormExceedOneRow(t,o.value,s,i.value).willExceed}catch{return!1}}),b=e.useSlots(),w=t=>t?e.h(te.default,W.value,{resetBefore:n=>b.resetBefore?.(n),submitBefore:n=>b.submitBefore?.(n),submitAfter:n=>b.submitAfter?.(n)}):null;return L({getFieldsValue:h,getFieldValue:O,setFieldsValue:B,resetFields:g,updateSchema:v,resetSchema:y,setProps:M,removeSchemaByField:E,appendSchemaByField:A,clearValidate:q,validateField:_,validate:R,submit:a,getSchema:r,setFormItemError:P,formModel:e.computed(()=>j()),hasActionButton:J,willExceedOneRow:x}),(t,n)=>r.value?.length?(e.openBlock(),e.createBlock(e.unref(Y.VftForm),e.mergeProps({key:0},l.value,{ref_key:"formElRef",ref:d,class:[e.unref(k).b(),{[e.unref(k).is("exceed-one-row")]:x.value}],model:s,onSubmit:n[0]||(n[0]=e.withModifiers(()=>{},["prevent"])),onKeypress:e.withKeys(U,["enter"])}),{default:e.withCtx(()=>[r.value?.length?(e.openBlock(),e.createBlock(e.unref(Z.VftRow),e.normalizeProps(e.mergeProps({key:0},l.value?.rowProps)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"formHeader"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createBlock(oe.default,{key:u.field,"form-action-type":V,schema:u,"form-props":o.value,"all-default-values":i.value,"form-model":s,"set-form-model":K,"update-schema":e.unref(v)},e.createSlots({_:2},[e.renderList(Object.keys(t.$slots),I=>({name:I,fn:e.withCtx(Q=>[e.renderSlot(t.$slots,I,e.mergeProps({ref_for:!0},Q||{}))])}))]),1032,["schema","form-props","all-default-values","form-model","update-schema"]))),128)),o.value?.customLayout?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&o.value?.actionInline)),{key:1})):(e.openBlock(),e.createBlock(e.unref(X.VftCol),e.normalizeProps(e.mergeProps({key:0},l.value?.quickColSpan?{span:Math.ceil(24/l.value?.quickColSpan),...l.value?.baseColProps}:{})),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&o.value?.actionInline))))]),_:1},16))]),_:3},16)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&!o.value?.actionInline)))),e.renderSlot(t.$slots,"formFooter")]),_:3},16,["class","model"])):e.createCommentVNode("",!0)}});exports.default=ie;
@@ -195,6 +195,8 @@ export interface SuperFormProps extends FormInnerProps {
195
195
  submitResetReverse?: boolean;
196
196
  labelPosition?: 'left' | 'right' | 'top';
197
197
  labelWidth?: string | number;
198
+ /** 表单值格式化函数,用于格式化 getFieldsValue 的输出值 */
199
+ formatter?: (values: Recordable) => Recordable;
198
200
  }
199
201
  /** 表单配置模式接口 */
200
202
  export interface FormSchema {
@@ -280,6 +282,8 @@ export interface FormSchema {
280
282
  helpIcon?: IconProps | string;
281
283
  /** 帮助提示配置 */
282
284
  helpTooltip?: string | ToolTipProps;
285
+ /** 字段值格式化函数,用于格式化该字段在 getFieldsValue 中的输出值 */
286
+ formatter?: (value: any, field: string, values: Recordable, schema: FormSchema) => any;
283
287
  }
284
288
  /** 表单项属性接口 */
285
289
  export interface SuperFormItemProps {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("../../../utils/form-register.cjs");require("@vueuse/core");const a=require("@vft/utils");require("../../config-provider/hooks/use-global-config.cjs");const i=require("vue"),b=require("lodash-es");require("../../form/index.cjs");const U=require("@vft/utils/date"),$=require("../component-map.cjs"),K=require("./helper.cjs");function C(p,y){const{show:l,ifShow:o}=p;let v=!0,c=!0;return typeof l=="boolean"?v=l:typeof l=="function"&&(v=l({field:p.field,model:y,values:{...y},schema:p})),typeof o=="boolean"?c=o:typeof o=="function"&&(c=o({field:p.field,model:y,values:{...y},schema:p})),v&&c}function R(p,y={}){const l=/^\[(.+)\]$/;if(l.test(p)){const o=p.match(l);if(o&&o[1]){const v=o[1].split(",");if(!v.length)return;const c=[];return v.forEach((F,V)=>{b.set(c,V,y[F.trim()])}),c.filter(Boolean).length?c:void 0}}}function k(p,y={}){const l=/^\{(.+)\}$/;if(l.test(p)){const o=p.match(l);if(o&&o[1]){const v=o[1].split(",");if(!v.length)return;const c={};return v.forEach(F=>{b.set(c,F.trim(),y[F.trim()])}),Object.values(c).filter(Boolean).length?c:void 0}}}function M({emit:p,getProps:y,formModel:l,getSchema:o,defaultValueRef:v,formElRef:c,schemaRef:F,handleFormValues:V,initValues:S}){async function z(e){const{resetFunc:n,submitOnReset:s}=i.unref(y);n&&a.isFunction(n)&&await n();const r=i.unref(c);if(r){if(e?.length)return r.resetFields(e);Object.keys(l).forEach(f=>{const u=i.unref(o).find(d=>d.field===f),t=b.cloneDeep(v.value[f]);l[f]=$.isInput(u?.type)?t||"":t}),i.nextTick(()=>O()),p("reset",i.toRaw(l)),s&&await _()}}async function m(e,n=!0){const s=i.unref(o).map(t=>t.field).filter(Boolean),r=".",f=s.filter(t=>String(t).indexOf(r)>=0),u=[];s.forEach(t=>{const d=i.unref(o).find(h=>h.field===t);let D=b.get(e,t);const A=Reflect.has(e,t);D=K.handleInputNumberValue(d?.type,D);const{componentProps:N}=d||{};let E=N;typeof N=="function"&&(E=E({formModel:i.unref(l)}));const P=R(t,e)||k(t,e);if(A||P){const h=P||D;if(X(t))if(Array.isArray(h)){const w=[];for(const g of h)w.push(g?U.formatToDate(g):null);i.unref(l)[t]=w}else i.unref(l)[t]=h?E?.valueFormat?h:U.formatToDate(h):null;else i.unref(l)[t]=h;E?.onChange&&E?.onChange(h),u.push(t)}else f.forEach(h=>{try{const w=h.split(".").reduce((g,L)=>g[L],e);a.isDef(w)&&(i.unref(l)[h]=i.unref(w),u.push(h))}catch{a.isDef(v.value[h])&&(i.unref(l)[h]=b.cloneDeep(i.unref(v.value[h])))}})}),n&&i.nextTick(async()=>{await T(u).catch(t=>{})})}async function G(e){const n=b.cloneDeep(i.unref(o));if(!e)return;let s=a.isString(e)?[e]:e;a.isString(e)&&(s=[e]);for(const r of s)H(r,n);F.value=n}function H(e,n){if(a.isString(e)){const s=n.findIndex(r=>r.field===e);s!==-1&&(delete l[e],n.splice(s,1))}}async function J(e,n,s=!1){const r=b.cloneDeep(i.unref(o)),f=r.findIndex(t=>t.field===n),u=a.isObject(e)?[e]:e;if(!n||f===-1||s){s?r.unshift(...u):r.push(...u),F.value=r,q(e);return}f!==-1&&r.splice(f+1,0,...u),q(e),F.value=r}async function Q(e){let n=[];if(a.isObject(e)&&n.push(e),a.isArray(e)&&(n=[...e]),!n.every(r=>r.type===B.FormCompEnum.Divider||Reflect.has(r,"field")&&r.field)){console.error("All children of the form Schema array that need to be updated must contain the `field` field");return}F.value=n}async function I(e){let n=[];if(a.isObject(e)&&n.push(e),a.isArray(e)&&(n=[...e]),!n.every(u=>u.type===B.FormCompEnum.Divider||Reflect.has(u,"field")&&u.field)){console.error("All children of the form Schema array that need to be updated must contain the `field` field");return}const r=[],f=[];i.unref(o).forEach(u=>{let t;if(n.forEach(d=>{u.field===d.field&&(t=d),d.defaultValue&&d.field&&r.push(d.field)}),t!==void 0&&u.field===t.field){const d=a.deepMerge(u,t);f.push(d)}else f.push(u)}),q(f,r),F.value=b.uniqBy(f,"field")}function q(e,n,s=!0){if(a.isArray(n)&&n?.length===0)return;let r=[];a.isObject(e)&&r.push(e),a.isArray(e)&&(r=[...e]);const f={},u=j();r.forEach(t=>{t.type!==B.FormCompEnum.Divider&&Reflect.has(t,"field")&&t.field&&!a.isNullOrUndefined(t.defaultValue)&&(!(t.field in u)||a.isNullOrUndefined(u[t.field])||a.isEmpty(u[t.field]))&&(f[t.field]=t.defaultValue)}),a.isEmptyObject(f)||m(f,s)}function j(e=!1){if(!i.unref(c))return{};const s=V(i.toRaw(i.unref(l)));if(e)return s;const r=i.unref(o).filter(u=>C(u,i.unref(l))).map(u=>u.field).filter(Boolean),f={};return r.forEach(u=>{u in s&&(f[u]=s[u])}),f}function W(e){return i.unref(c)?i.toRaw(i.unref(l))[e]:{}}function X(e){return i.unref(o).some(n=>n.field===e?$.isDatePicker(n.type):!1)}async function T(e){return e||(e=i.unref(o).filter(s=>C(s,i.unref(l))).map(s=>s.field).filter(Boolean)),i.unref(c)?.validateField(e)}async function x(e){return e||(e=i.unref(o).filter(s=>C(s,i.unref(l))).map(s=>s.field).filter(Boolean)),await i.unref(c)?.validate(e,()=>{})}async function O(e){await i.unref(c)?.clearValidate(e)}async function Y(e,n){await O(e),await I([{field:e,itemProps:{error:n}}])}async function Z(e,n){await i.unref(c)?.scrollToField(e,n)}async function _(e){const{autoCleanErrorMessage:n,watchDataIsChange:s}=i.unref(y);e&&e.preventDefault(),n&&await O();const{submitFunc:r,beforeSubmitFunc:f}=i.unref(y);if(f&&a.isFunction(f)&&await f(),r&&a.isFunction(r)){await r();return}if(i.unref(c))try{if(!await x())return;const d=j();if(s){const D=b.isEqual(S.value,d),A=a.findDifferentValuesForObj(S.value,d);p("submit",d,!D,A)}else p("submit",d)}catch(t){if(t?.outOfDate===!1&&t?.errorFields)return;throw new Error(t.message)}}return{handleSubmit:_,clearValidate:O,validate:x,validateField:T,getFieldsValue:j,updateSchema:I,resetSchema:Q,appendSchemaByField:J,removeSchemaByField:G,resetFields:z,setFieldsValue:m,scrollToField:Z,getFieldValue:W,setFormItemError:Y}}exports.useFormEvents=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("../../../utils/form-register.cjs");require("@vueuse/core");const a=require("@vft/utils");require("../../config-provider/hooks/use-global-config.cjs");const n=require("vue"),m=require("lodash-es");require("../../form/index.cjs");const U=require("@vft/utils/date"),$=require("../component-map.cjs"),k=require("./helper.cjs");function g(F,y){const{show:f,ifShow:c}=F;let v=!0,d=!0;return typeof f=="boolean"?v=f:typeof f=="function"&&(v=f({field:F.field,model:y,values:{...y},schema:F})),typeof c=="boolean"?d=c:typeof c=="function"&&(d=c({field:F.field,model:y,values:{...y},schema:F})),v&&d}function M(F,y={}){const f=/^\[(.+)\]$/;if(f.test(F)){const c=F.match(f);if(c&&c[1]){const v=c[1].split(",");if(!v.length)return;const d=[];return v.forEach((b,V)=>{m.set(d,V,y[b.trim()])}),d.filter(Boolean).length?d:void 0}}}function ee(F,y={}){const f=/^\{(.+)\}$/;if(f.test(F)){const c=F.match(f);if(c&&c[1]){const v=c[1].split(",");if(!v.length)return;const d={};return v.forEach(b=>{m.set(d,b.trim(),y[b.trim()])}),Object.values(d).filter(Boolean).length?d:void 0}}}function te({emit:F,getProps:y,formModel:f,getSchema:c,defaultValueRef:v,formElRef:d,schemaRef:b,handleFormValues:V,initValues:I}){async function z(e){const{resetFunc:r,submitOnReset:i}=n.unref(y);r&&a.isFunction(r)&&await r();const s=n.unref(d);if(s){if(e?.length)return s.resetFields(e);Object.keys(f).forEach(o=>{const u=n.unref(c).find(l=>l.field===o),t=m.cloneDeep(v.value[o]);f[o]=$.isInput(u?.type)?t||"":t}),n.nextTick(()=>j()),F("reset",n.toRaw(f)),i&&await L()}}async function T(e,r=!0){const i=n.unref(c).map(t=>t.field).filter(Boolean),s=".",o=i.filter(t=>String(t).indexOf(s)>=0),u=[];i.forEach(t=>{const l=n.unref(c).find(p=>p.field===t);let h=m.get(e,t);const D=Reflect.has(e,t);h=k.handleInputNumberValue(l?.type,h);const{componentProps:E}=l||{};let w=E;typeof E=="function"&&(w=w({formModel:n.unref(f)}));const N=M(t,e)||ee(t,e);if(D||N){const p=N||h;if(X(t))if(Array.isArray(p)){const O=[];for(const q of p)O.push(q?U.formatToDate(q):null);n.unref(f)[t]=O}else n.unref(f)[t]=p?w?.valueFormat?p:U.formatToDate(p):null;else n.unref(f)[t]=p;w?.onChange&&w?.onChange(p),u.push(t)}else o.forEach(p=>{try{const O=p.split(".").reduce((q,R)=>q[R],e);a.isDef(O)&&(n.unref(f)[p]=n.unref(O),u.push(p))}catch{a.isDef(v.value[p])&&(n.unref(f)[p]=m.cloneDeep(n.unref(v.value[p])))}})}),r&&n.nextTick(async()=>{await x(u).catch(t=>{})})}async function G(e){const r=m.cloneDeep(n.unref(c));if(!e)return;let i=a.isString(e)?[e]:e;a.isString(e)&&(i=[e]);for(const s of i)H(s,r);b.value=r}function H(e,r){if(a.isString(e)){const i=r.findIndex(s=>s.field===e);i!==-1&&(delete f[e],r.splice(i,1))}}async function J(e,r,i=!1){const s=m.cloneDeep(n.unref(c)),o=s.findIndex(t=>t.field===r),u=a.isObject(e)?[e]:e;if(!r||o===-1||i){i?s.unshift(...u):s.push(...u),b.value=s,A(e);return}o!==-1&&s.splice(o+1,0,...u),A(e),b.value=s}async function P(e){let r=[];if(a.isObject(e)&&r.push(e),a.isArray(e)&&(r=[...e]),!r.every(s=>s.type===C.FormCompEnum.Divider||Reflect.has(s,"field")&&s.field)){console.error("All children of the form Schema array that need to be updated must contain the `field` field");return}b.value=r}async function S(e){let r=[];if(a.isObject(e)&&r.push(e),a.isArray(e)&&(r=[...e]),!r.every(u=>u.type===C.FormCompEnum.Divider||Reflect.has(u,"field")&&u.field)){console.error("All children of the form Schema array that need to be updated must contain the `field` field");return}const s=[],o=[];n.unref(c).forEach(u=>{let t;if(r.forEach(l=>{u.field===l.field&&(t=l),l.defaultValue&&l.field&&s.push(l.field)}),t!==void 0&&u.field===t.field){const l=a.deepMerge(u,t);o.push(l)}else o.push(u)}),A(o,s),b.value=m.uniqBy(o,"field")}function A(e,r,i=!0){if(a.isArray(r)&&r?.length===0)return;let s=[];a.isObject(e)&&s.push(e),a.isArray(e)&&(s=[...e]);const o={},u=B();s.forEach(t=>{t.type!==C.FormCompEnum.Divider&&Reflect.has(t,"field")&&t.field&&!a.isNullOrUndefined(t.defaultValue)&&(!(t.field in u)||a.isNullOrUndefined(u[t.field])||a.isEmpty(u[t.field]))&&(o[t.field]=t.defaultValue)}),a.isEmptyObject(o)||T(o,i)}function B(e=!1){if(!n.unref(d))return{};const i=V(n.toRaw(n.unref(f)));if(e)return i;const s=n.unref(c).filter(h=>g(h,n.unref(f))).map(h=>h.field).filter(Boolean),o={};s.forEach(h=>{h in i&&(o[h]=i[h])});const u=n.unref(c),t={};s.forEach(h=>{if(h in o){const D=u.find(w=>w.field===h);let E=o[h];D?.formatter&&a.isFunction(D.formatter)&&(E=D.formatter(E,h,o,D)),t[h]=E}});const{formatter:l}=n.unref(y);return l&&a.isFunction(l)?l(t):t}function Q(e,r,i){const o=n.unref(c).find(u=>u.field===e);return o?.formatter&&a.isFunction(o.formatter)?o.formatter(r,e,i,o):r}function W(e){if(!n.unref(d))return{};if(!(e in n.unref(f)))return{};const i=V(n.toRaw(n.unref(f))),s=i[e];return Q(e,s,i)}function X(e){return n.unref(c).some(r=>r.field===e?$.isDatePicker(r.type):!1)}async function x(e){return e||(e=n.unref(c).filter(i=>g(i,n.unref(f))).map(i=>i.field).filter(Boolean)),n.unref(d)?.validateField(e)}async function _(e){return e||(e=n.unref(c).filter(i=>g(i,n.unref(f))).map(i=>i.field).filter(Boolean)),await n.unref(d)?.validate(e,()=>{})}async function j(e){await n.unref(d)?.clearValidate(e)}async function Y(e,r){await j(e),await S([{field:e,itemProps:{error:r}}])}async function Z(e,r){await n.unref(d)?.scrollToField(e,r)}async function L(e){const{autoCleanErrorMessage:r,watchDataIsChange:i}=n.unref(y);e&&e.preventDefault(),r&&await j();const{submitFunc:s,beforeSubmitFunc:o}=n.unref(y);if(o&&a.isFunction(o)&&await o(),s&&a.isFunction(s)){await s();return}if(n.unref(d))try{if(!await _())return;const l=B();if(i){const h=m.isEqual(I.value,l),D=a.findDifferentValuesForObj(I.value,l);F("submit",l,!h,D)}else F("submit",l)}catch(t){if(t?.outOfDate===!1&&t?.errorFields)return;throw new Error(t.message)}}function K(){const e=V(n.toRaw(n.unref(f))),r=n.unref(c),i={};Object.keys(e).forEach(o=>{const u=r.find(l=>l.field===o);let t=e[o];u?.formatter&&a.isFunction(u.formatter)&&(t=u.formatter(t,o,e,u)),i[o]=t});const{formatter:s}=n.unref(y);return s&&a.isFunction(s)?s(i):i}return{handleSubmit:L,clearValidate:j,validate:_,validateField:x,getFieldsValue:B,updateSchema:S,resetSchema:P,appendSchemaByField:J,removeSchemaByField:G,resetFields:z,setFieldsValue:T,scrollToField:Z,getFieldValue:W,setFormItemError:Y,getFormattedFormModel:K}}exports.useFormEvents=te;
@@ -27,5 +27,6 @@ export declare function useFormEvents({ emit, getProps, formModel, getSchema, de
27
27
  scrollToField: (name: any, options?: ScrollOptions | undefined) => Promise<void>;
28
28
  getFieldValue: (field: string) => string | number | Recordable;
29
29
  setFormItemError: (field: string, errMess: string) => Promise<void>;
30
+ getFormattedFormModel: () => Recordable;
30
31
  };
31
32
  export {};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),I=require("@vft/utils/date"),_=require("@vft/utils"),d=require("../button/index.cjs"),F=require("../popconfirm/index.cjs"),f=require("../tag/index.cjs");function l(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!r.isVNode(t)}const L={type:"seq",title:"序号",fixed:"left",width:53},T={type:"checkbox",title:"",minWidth:60,fixed:"left"},M={field:"id",title:"Id",minWidth:100},p={field:"name",title:"名称",minWidth:100},Y=({format:t="YYYY-MM-DD",field:e="date",title:n="时间"}={})=>({minWidth:100,field:e,title:n,formatter:({row:i})=>i[e]?I.formatToDateTime(i[e],t):"-"}),c=({format:t="YYYY-MM-DD HH:mm:ss",field:e="date",title:n="时间"}={})=>({minWidth:190,field:e,title:n,formatter:({row:i})=>i[e]?I.formatToDateTime(i[e],t):"-"}),A=({format:t="YYYY-MM-DD HH:mm:ss",field:e="createTime",title:n="创建时间"}={})=>c({format:t,field:e,title:n}),g=({format:t="YYYY-MM-DD HH:mm:ss",field:e="updateTime",title:n="更新时间"}={})=>c({format:t,field:e,title:n}),N=({field:t="status",title:e="状态",normalText:n="正常",disabledText:i="禁用",strToNumber:a=!0}={})=>({field:t,title:e,minWidth:100,slots:{default:({row:u})=>{let o=u?.[t];return _.isNullOrUndefined(o)?"-":(a&&Number(o)===0&&(o=!1),o?r.createVNode(f.VftTag,null,l(n)?n:{default:()=>[n]}):r.createVNode(f.VftTag,{type:"danger"},l(i)?i:{default:()=>[i]}))}}}),V=({confirmText:t="确认删除?",leftCallback:e,rightCallback:n,leftText:i="编辑",rightText:a="删除",showLeft:u=!0,showRight:o=!0}={})=>({title:"操作栏",minWidth:180,field:"custom-action",fixed:"right",slots:{default:({row:D})=>{const s=r.ref(!1),m=()=>{s.value=!0,n?.(D)?.finally(()=>{s.value=!1})};return r.createVNode(r.Fragment,null,[u?r.createVNode(d.VftButton,{size:"small",type:"primary",onClick:E=>{E.stopPropagation(),e?.(D)}},l(i)?i:{default:()=>[i]}):null,o?r.createVNode(F.VftPopconfirm,{width:"150",onConfirm:m,title:t},{reference:()=>r.createVNode(d.VftButton,{loading:s.value,size:"small",type:"danger",onClick:E=>{E.stopPropagation()}},l(a)?a:{default:()=>[a]})}):null])}}});exports.ACTION_FIELD=V;exports.CHECKED_FIELD=T;exports.CREATE_TIME_FIELD=A;exports.DATE_FIELD=Y;exports.DATE_TIME_FIELD=c;exports.ID_FIELD=M;exports.NAME_FIELD=p;exports.SEQ_FIELD=L;exports.STATUS_FIELD=N;exports.UPDATE_TIME_FIELD=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),F=require("@vft/use"),I=require("@vft/utils/date"),T=require("@vft/utils"),D=require("../button/index.cjs"),M=require("../popconfirm/index.cjs"),d=require("../tag/index.cjs");function s(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!o.isVNode(t)}const p={type:"seq",title:"序号",fixed:"left",width:53},Y={type:"checkbox",title:"",minWidth:60,fixed:"left"},g={field:"id",title:"Id",minWidth:100},A={field:"name",title:"名称",minWidth:100},N=({format:t="YYYY-MM-DD",field:e="date",title:n="时间"}={})=>({minWidth:100,field:e,title:n,formatter:({row:i})=>i[e]?I.formatToDateTime(i[e],t):"-"}),l=({format:t="YYYY-MM-DD HH:mm:ss",field:e="date",title:n="时间"}={})=>({minWidth:190,field:e,title:n,formatter:({row:i})=>i[e]?I.formatToDateTime(i[e],t):"-"}),V=({format:t="YYYY-MM-DD HH:mm:ss",field:e="createTime",title:n="创建时间"}={})=>l({format:t,field:e,title:n}),h=({format:t="YYYY-MM-DD HH:mm:ss",field:e="updateTime",title:n="更新时间"}={})=>l({format:t,field:e,title:n}),y=({field:t="status",title:e="状态",normalText:n="正常",disabledText:i="禁用",strToNumber:a=!0}={})=>({field:t,title:e,minWidth:100,slots:{default:({row:u})=>{let r=u?.[t];return T.isNullOrUndefined(r)?"-":(a&&Number(r)===0&&(r=!1),r?o.createVNode(d.VftTag,null,s(n)?n:{default:()=>[n]}):o.createVNode(d.VftTag,{type:"danger"},s(i)?i:{default:()=>[i]}))}}}),C=({confirmText:t="确认删除?",leftCallback:e,rightCallback:n,leftText:i="编辑",rightText:a="删除",showLeft:u=!0,showRight:r=!0}={})=>({title:"操作栏",minWidth:180,field:"custom-action",fixed:"right",slots:{default:({row:E})=>{const{loading:f,start:m,cancel:_}=F.useLoadingDelay(),L=()=>{m(),n?.(E)?.finally(()=>{_()})};return o.createVNode(o.Fragment,null,[u?o.createVNode(D.VftButton,{size:"small",type:"primary",onClick:c=>{c.stopPropagation(),e?.(E)}},s(i)?i:{default:()=>[i]}):null,r?o.createVNode(M.VftPopconfirm,{width:"150",onConfirm:L,title:t},{reference:()=>o.createVNode(D.VftButton,{loading:f.value,size:"small",type:"danger",onClick:c=>{c.stopPropagation()}},s(a)?a:{default:()=>[a]})}):null])}}});exports.ACTION_FIELD=C;exports.CHECKED_FIELD=Y;exports.CREATE_TIME_FIELD=V;exports.DATE_FIELD=N;exports.DATE_TIME_FIELD=l;exports.ID_FIELD=g;exports.NAME_FIELD=A;exports.SEQ_FIELD=p;exports.STATUS_FIELD=y;exports.UPDATE_TIME_FIELD=h;
@@ -502,7 +502,7 @@ export declare const VftTable: import("vft/es/utils").SFCWithInstall<{
502
502
  emit: (event: "change" | "zoom" | "copy" | "cut" | "keydown" | "paste" | "scroll" | "update:page-size" | "current-change" | "register" | "fetch-success" | "update:data" | "keydown-start" | "keydown-end" | "current-row-change" | "current-row-disabled" | "current-column-change" | "current-column-disabled" | "radio-change" | "checkbox-change" | "checkbox-all" | "checkbox-range-start" | "checkbox-range-change" | "checkbox-range-end" | "checkbox-range-select" | "cell-click" | "cell-dblclick" | "cell-menu" | "cell-mouseenter" | "cell-mouseleave" | "cell-selected" | "cell-delete-value" | "cell-backspace-value" | "header-cell-click" | "header-cell-dblclick" | "header-cell-menu" | "footer-cell-click" | "footer-cell-dblclick" | "footer-cell-menu" | "clear-merge" | "sort-change" | "clear-sort" | "clear-all-sort" | "filter-change" | "filter-visible" | "clear-filter" | "clear-all-filter" | "resizable-change" | "column-resizable-change" | "row-resizable-change" | "toggle-row-group-expand" | "toggle-row-expand" | "toggle-tree-expand" | "menu-click" | "edit-closed" | "row-dragstart" | "row-dragover" | "row-dragend" | "column-dragstart" | "column-dragover" | "column-dragend" | "enter-append-row" | "edit-actived" | "edit-activated" | "edit-disabled" | "valid-error" | "scroll-boundary" | "custom" | "custom-visible-change" | "custom-visible-all" | "custom-fixed-change" | "change-fnr" | "open-fnr" | "show-fnr" | "hide-fnr" | "fnr-change" | "fnr-find" | "fnr-find-all" | "fnr-replace" | "fnr-replace-all" | "cell-area-copy" | "cell-area-cut" | "cell-area-paste" | "cell-area-merge" | "clear-cell-area-selection" | "clear-cell-area-merge" | "header-cell-area-selection" | "cell-area-selection-invalid" | "cell-area-selection-start" | "cell-area-selection-drag" | "cell-area-selection-end" | "cell-area-extension-start" | "cell-area-extension-drag" | "cell-area-extension-end" | "cell-area-selection-all-start" | "cell-area-selection-all-end" | "cell-area-arrows-start" | "cell-area-arrows-end" | "active-cell-change-start" | "active-cell-change-end" | "form-submit" | "form-reset" | "update:page-num" | "page-change" | "form-submit-invalid" | "form-collapse" | "form-toggle-collapse" | "proxy-query" | "proxy-delete" | "proxy-save" | "toolbar-button-click" | "toolbar-tool-click", ...args: any[]) => void;
503
503
  setProps: (props: Partial<import("./types").TableProps>) => void;
504
504
  reload: (opt?: any) => Promise<import("../types").Recordable[] | undefined>;
505
- deleteTableDataRecord: (row: any, rowKey: any) => void;
505
+ deleteTableDataRecord: (row: import("../types").Recordable | import("../types").Recordable[], rowKey?: string | number | string[] | number[]) => void;
506
506
  insertTableDataRecord: (record: import("../types").Recordable | import("../types").Recordable[], index?: number) => import("../types").Recordable[] | undefined;
507
507
  updateTableDataRecord: (rowKey: string | number, record: import("../types").Recordable) => import("../types").Recordable | undefined;
508
508
  updateTableData: (index: number, key: string, value: any) => Promise<import("../types").Recordable>;
@@ -1422,7 +1422,7 @@ export declare const VftTable: import("vft/es/utils").SFCWithInstall<{
1422
1422
  emit: (event: "change" | "zoom" | "copy" | "cut" | "keydown" | "paste" | "scroll" | "update:page-size" | "current-change" | "register" | "fetch-success" | "update:data" | "keydown-start" | "keydown-end" | "current-row-change" | "current-row-disabled" | "current-column-change" | "current-column-disabled" | "radio-change" | "checkbox-change" | "checkbox-all" | "checkbox-range-start" | "checkbox-range-change" | "checkbox-range-end" | "checkbox-range-select" | "cell-click" | "cell-dblclick" | "cell-menu" | "cell-mouseenter" | "cell-mouseleave" | "cell-selected" | "cell-delete-value" | "cell-backspace-value" | "header-cell-click" | "header-cell-dblclick" | "header-cell-menu" | "footer-cell-click" | "footer-cell-dblclick" | "footer-cell-menu" | "clear-merge" | "sort-change" | "clear-sort" | "clear-all-sort" | "filter-change" | "filter-visible" | "clear-filter" | "clear-all-filter" | "resizable-change" | "column-resizable-change" | "row-resizable-change" | "toggle-row-group-expand" | "toggle-row-expand" | "toggle-tree-expand" | "menu-click" | "edit-closed" | "row-dragstart" | "row-dragover" | "row-dragend" | "column-dragstart" | "column-dragover" | "column-dragend" | "enter-append-row" | "edit-actived" | "edit-activated" | "edit-disabled" | "valid-error" | "scroll-boundary" | "custom" | "custom-visible-change" | "custom-visible-all" | "custom-fixed-change" | "change-fnr" | "open-fnr" | "show-fnr" | "hide-fnr" | "fnr-change" | "fnr-find" | "fnr-find-all" | "fnr-replace" | "fnr-replace-all" | "cell-area-copy" | "cell-area-cut" | "cell-area-paste" | "cell-area-merge" | "clear-cell-area-selection" | "clear-cell-area-merge" | "header-cell-area-selection" | "cell-area-selection-invalid" | "cell-area-selection-start" | "cell-area-selection-drag" | "cell-area-selection-end" | "cell-area-extension-start" | "cell-area-extension-drag" | "cell-area-extension-end" | "cell-area-selection-all-start" | "cell-area-selection-all-end" | "cell-area-arrows-start" | "cell-area-arrows-end" | "active-cell-change-start" | "active-cell-change-end" | "form-submit" | "form-reset" | "update:page-num" | "page-change" | "form-submit-invalid" | "form-collapse" | "form-toggle-collapse" | "proxy-query" | "proxy-delete" | "proxy-save" | "toolbar-button-click" | "toolbar-tool-click", ...args: any[]) => void;
1423
1423
  setProps: (props: Partial<import("./types").TableProps>) => void;
1424
1424
  reload: (opt?: any) => Promise<import("../types").Recordable[] | undefined>;
1425
- deleteTableDataRecord: (row: any, rowKey: any) => void;
1425
+ deleteTableDataRecord: (row: import("../types").Recordable | import("../types").Recordable[], rowKey?: string | number | string[] | number[]) => void;
1426
1426
  insertTableDataRecord: (record: import("../types").Recordable | import("../types").Recordable[], index?: number) => import("../types").Recordable[] | undefined;
1427
1427
  updateTableDataRecord: (rowKey: string | number, record: import("../types").Recordable) => import("../types").Recordable | undefined;
1428
1428
  updateTableData: (index: number, key: string, value: any) => Promise<import("../types").Recordable>;
@@ -2226,7 +2226,7 @@ export declare const VftTable: import("vft/es/utils").SFCWithInstall<{
2226
2226
  emit: (event: "change" | "zoom" | "copy" | "cut" | "keydown" | "paste" | "scroll" | "update:page-size" | "current-change" | "register" | "fetch-success" | "update:data" | "keydown-start" | "keydown-end" | "current-row-change" | "current-row-disabled" | "current-column-change" | "current-column-disabled" | "radio-change" | "checkbox-change" | "checkbox-all" | "checkbox-range-start" | "checkbox-range-change" | "checkbox-range-end" | "checkbox-range-select" | "cell-click" | "cell-dblclick" | "cell-menu" | "cell-mouseenter" | "cell-mouseleave" | "cell-selected" | "cell-delete-value" | "cell-backspace-value" | "header-cell-click" | "header-cell-dblclick" | "header-cell-menu" | "footer-cell-click" | "footer-cell-dblclick" | "footer-cell-menu" | "clear-merge" | "sort-change" | "clear-sort" | "clear-all-sort" | "filter-change" | "filter-visible" | "clear-filter" | "clear-all-filter" | "resizable-change" | "column-resizable-change" | "row-resizable-change" | "toggle-row-group-expand" | "toggle-row-expand" | "toggle-tree-expand" | "menu-click" | "edit-closed" | "row-dragstart" | "row-dragover" | "row-dragend" | "column-dragstart" | "column-dragover" | "column-dragend" | "enter-append-row" | "edit-actived" | "edit-activated" | "edit-disabled" | "valid-error" | "scroll-boundary" | "custom" | "custom-visible-change" | "custom-visible-all" | "custom-fixed-change" | "change-fnr" | "open-fnr" | "show-fnr" | "hide-fnr" | "fnr-change" | "fnr-find" | "fnr-find-all" | "fnr-replace" | "fnr-replace-all" | "cell-area-copy" | "cell-area-cut" | "cell-area-paste" | "cell-area-merge" | "clear-cell-area-selection" | "clear-cell-area-merge" | "header-cell-area-selection" | "cell-area-selection-invalid" | "cell-area-selection-start" | "cell-area-selection-drag" | "cell-area-selection-end" | "cell-area-extension-start" | "cell-area-extension-drag" | "cell-area-extension-end" | "cell-area-selection-all-start" | "cell-area-selection-all-end" | "cell-area-arrows-start" | "cell-area-arrows-end" | "active-cell-change-start" | "active-cell-change-end" | "form-submit" | "form-reset" | "update:page-num" | "page-change" | "form-submit-invalid" | "form-collapse" | "form-toggle-collapse" | "proxy-query" | "proxy-delete" | "proxy-save" | "toolbar-button-click" | "toolbar-tool-click", ...args: any[]) => void;
2227
2227
  setProps: (props: Partial<import("./types").TableProps>) => void;
2228
2228
  reload: (opt?: any) => Promise<import("../types").Recordable[] | undefined>;
2229
- deleteTableDataRecord: (row: any, rowKey: any) => void;
2229
+ deleteTableDataRecord: (row: import("../types").Recordable | import("../types").Recordable[], rowKey?: string | number | string[] | number[]) => void;
2230
2230
  insertTableDataRecord: (record: import("../types").Recordable | import("../types").Recordable[], index?: number) => import("../types").Recordable[] | undefined;
2231
2231
  updateTableDataRecord: (rowKey: string | number, record: import("../types").Recordable) => import("../types").Recordable | undefined;
2232
2232
  updateTableData: (index: number, key: string, value: any) => Promise<import("../types").Recordable>;
@@ -14,7 +14,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
14
14
  emit: (event: "change" | "zoom" | "copy" | "cut" | "keydown" | "paste" | "scroll" | "update:page-size" | "current-change" | "register" | "fetch-success" | "update:data" | "keydown-start" | "keydown-end" | "current-row-change" | "current-row-disabled" | "current-column-change" | "current-column-disabled" | "radio-change" | "checkbox-change" | "checkbox-all" | "checkbox-range-start" | "checkbox-range-change" | "checkbox-range-end" | "checkbox-range-select" | "cell-click" | "cell-dblclick" | "cell-menu" | "cell-mouseenter" | "cell-mouseleave" | "cell-selected" | "cell-delete-value" | "cell-backspace-value" | "header-cell-click" | "header-cell-dblclick" | "header-cell-menu" | "footer-cell-click" | "footer-cell-dblclick" | "footer-cell-menu" | "clear-merge" | "sort-change" | "clear-sort" | "clear-all-sort" | "filter-change" | "filter-visible" | "clear-filter" | "clear-all-filter" | "resizable-change" | "column-resizable-change" | "row-resizable-change" | "toggle-row-group-expand" | "toggle-row-expand" | "toggle-tree-expand" | "menu-click" | "edit-closed" | "row-dragstart" | "row-dragover" | "row-dragend" | "column-dragstart" | "column-dragover" | "column-dragend" | "enter-append-row" | "edit-actived" | "edit-activated" | "edit-disabled" | "valid-error" | "scroll-boundary" | "custom" | "custom-visible-change" | "custom-visible-all" | "custom-fixed-change" | "change-fnr" | "open-fnr" | "show-fnr" | "hide-fnr" | "fnr-change" | "fnr-find" | "fnr-find-all" | "fnr-replace" | "fnr-replace-all" | "cell-area-copy" | "cell-area-cut" | "cell-area-paste" | "cell-area-merge" | "clear-cell-area-selection" | "clear-cell-area-merge" | "header-cell-area-selection" | "cell-area-selection-invalid" | "cell-area-selection-start" | "cell-area-selection-drag" | "cell-area-selection-end" | "cell-area-extension-start" | "cell-area-extension-drag" | "cell-area-extension-end" | "cell-area-selection-all-start" | "cell-area-selection-all-end" | "cell-area-arrows-start" | "cell-area-arrows-end" | "active-cell-change-start" | "active-cell-change-end" | "form-submit" | "form-reset" | "update:page-num" | "page-change" | "form-submit-invalid" | "form-collapse" | "form-toggle-collapse" | "proxy-query" | "proxy-delete" | "proxy-save" | "toolbar-button-click" | "toolbar-tool-click", ...args: any[]) => void;
15
15
  setProps: typeof setProps;
16
16
  reload: (opt?: any) => Promise<import("../types").Recordable[] | undefined>;
17
- deleteTableDataRecord: (row: any, rowKey: any) => void;
17
+ deleteTableDataRecord: (row: import("../types").Recordable | import("../types").Recordable[], rowKey?: string | number | string[] | number[]) => void;
18
18
  insertTableDataRecord: (record: import("../types").Recordable | import("../types").Recordable[], index?: number) => import("../types").Recordable[] | undefined;
19
19
  updateTableDataRecord: (rowKey: string | number, record: import("../types").Recordable) => import("../types").Recordable | undefined;
20
20
  updateTableData: (index: number, key: string, value: any) => Promise<import("../types").Recordable>;
@@ -105,8 +105,8 @@ export interface TableActionType {
105
105
  setPagination: (info: Partial<PaginationProps>) => void;
106
106
  /** 更新指定行的数据记录 */
107
107
  updateTableDataRecord: (rowKey: string | number, record: Recordable) => Recordable | void;
108
- /** 删除指定的数据记录,支持单个或多个 rowKey */
109
- deleteTableDataRecord: (row: Recordable, rowKey?: string | number | string[] | number[]) => void;
108
+ /** 删除指定的数据记录,支持单个或多个记录 */
109
+ deleteTableDataRecord: (row: Recordable | Recordable[], rowKey?: string | number | string[] | number[]) => void;
110
110
  /** 插入新的数据记录,可指定插入位置 */
111
111
  insertTableDataRecord: (record: Recordable | Recordable[], index?: number) => Recordable[] | void;
112
112
  /** 根据 rowKey 查找指定的数据记录 */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../pagination/index.cjs");const i=require("@vft/utils"),T=require("lodash-es"),t=require("vue"),J=require("../constants.cjs");function K(s,{tableData:_,setLoading:O,getPaginationInfo:j,setPagination:o},q){const r=t.ref([]),P=t.ref({});t.watchEffect(()=>{_.value=t.unref(r)}),t.watch(()=>t.unref(s).data,()=>{const{data:e,api:a}=t.unref(s);!a&&e&&(r.value=e)},{immediate:!0});function p(e){o(e),h({})}const R=t.computed(()=>{const e=t.unref(r);return!e||e.length===0,t.unref(r)});async function h(e){const{api:a,fetchSetting:n={},beforeFetch:u,afterFetch:l,pagination:m,delEmptyParams:f,transformParams:V,extraParams:v}=t.unref(s);if(!(!a||!i.isFunction(a)))try{O(!0);const{pageField:w,sizeField:Z,listField:G,totalField:H}=Object.assign({},{pageField:"page",sizeField:"pageSize",listField:"items",totalField:"total"},n);let S={},c=e;const{currentPage:A=1,pageSize:E=J.PageSize}=t.unref(j);if(V){if(i.isBoolean(m)&&!m)S={};else{const g=e&&e.page||A;S[w]=m?.pageIsZero?g-1:g,S[Z]=E}if(c=T.merge(e,S),u&&i.isFunction(u)){const g=await u(c);c={...c,...g}}f&&i.delObjAttrNotExist(c,i.isString(f)?f==="strict":!1)}c&&!i.isEmptyObject(c)&&!i.isNullOrUndefined(v)?i.isObject(c)&&i.isObject(v)&&(c=Object.assign({},c,v)):i.isNullOrUndefined(v)||(c=v);const b=await a(c),N=Array.isArray(b);let d=N?b:T.get(b,G);const F=N?b.length:T.get(b,H);if(Number(F)){const g=Math.ceil(F/E);if(A>g)return o({currentPage:g}),await h(e)}return l&&i.isFunction(l)&&(d=await l(d)||d),r.value=d,P.value=d,o({total:F||0}),e&&e.page&&o({currentPage:e.page||1}),q("fetch-success",{items:t.unref(d),total:F}),d}catch(w){console.log(w),q("fetch-error",w),r.value=[],o({total:0})}finally{t.nextTick(()=>{O(!1)})}}function y(){return P.value}async function k(e){return o({currentPage:e?.page||1}),await h(e)}function x(e){if(!r.value||r.value.length===0)return;const{rowkey:a}=t.unref(s);return(u=>{let l;return u.some(function(f){if(Reflect.has(f,a)&&f[a]===e)return l=f,!0}),l})(r.value)}async function C(e,a,n){return r.value[e]&&(r.value[e][a]=n),r.value[e]}function M(e,a){const n=x(e);if(n){for(const u in n)Reflect.has(a,u)&&(n[u]=a[u]);return n}}function I(e,a=0){const n=i.isPlainObject(e)?[e]:e;return r.value.splice(a,0,...n),t.unref(r)}function U(e,a){if(!r.value||r.value.length===0)return;const{rowkey:n}=t.unref(s),u=r.value.findIndex(m=>m[a||n]===e[a||n]);r.value.splice(u,1);const{total:l}=t.unref(j);i.isNumber(l)&&o({total:l-1})}function D(e){r.value=e}function B(){return R.value}function L(e){const a=String(e).trim().toLowerCase();if(a){const n=y?.()?.filter(u=>{for(const l in u)if(String(u[l]).trim().toLowerCase()?.includes(a))return!0});D(n)}else D(y())}const z=t.ref(!0);return t.onMounted(()=>{t.unref(s).immediate&&h(),z.value=!1}),t.watch(()=>t.unref(s).api,()=>{t.unref(s).watchApiFetch&&!z.value&&t.unref(s).immediate&&h()}),{setTableData:D,updateTableData:C,updateTableDataRecord:M,insertTableDataRecord:I,deleteTableDataRecord:U,reload:k,handleTableChange:p,getDataSourceRef:R,getDataSource:B,getRawDataSource:y,tableSearch:L}}exports.useDataSource=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../pagination/index.cjs");const c=require("@vft/utils"),j=require("lodash-es"),a=require("vue"),J=require("../constants.cjs");function Q(o,{tableData:_,setLoading:p,getPaginationInfo:q,setPagination:m},E){const r=a.ref([]),P=a.ref({});a.watchEffect(()=>{_.value=a.unref(r)}),a.watch(()=>a.unref(o).data,()=>{const{data:e,api:t}=a.unref(o);!t&&e&&(r.value=e)},{immediate:!0});function M(e){m(e),b({})}const R=a.computed(()=>{const e=a.unref(r);return!e||e.length===0,a.unref(r)});async function b(e){const{api:t,fetchSetting:u={},beforeFetch:i,afterFetch:s,pagination:f,delEmptyParams:d,transformParams:y,extraParams:g}=a.unref(o);if(!(!t||!c.isFunction(t)))try{p(!0);const{pageField:n,sizeField:S,listField:O,totalField:H}=Object.assign({},{pageField:"page",sizeField:"pageSize",listField:"items",totalField:"total"},u);let D={},l=e;const{currentPage:z=1,pageSize:N=J.PageSize}=a.unref(q);if(y){if(c.isBoolean(f)&&!f)D={};else{const v=e&&e.page||z;D[n]=f?.pageIsZero?v-1:v,D[S]=N}if(l=j.merge(e,D),i&&c.isFunction(i)){const v=await i(l);l={...l,...v}}d&&c.delObjAttrNotExist(l,c.isString(d)?d==="strict":!1)}l&&!c.isEmptyObject(l)&&!c.isNullOrUndefined(g)?c.isObject(l)&&c.isObject(g)&&(l=Object.assign({},l,g)):c.isNullOrUndefined(g)||(l=g);const F=await t(l),C=Array.isArray(F);let h=C?F:j.get(F,O);const T=C?F.length:j.get(F,H);if(Number(T)){const v=Math.ceil(T/N);if(z>v)return m({currentPage:v}),await b(e)}return s&&c.isFunction(s)&&(h=await s(h)||h),r.value=h,P.value=h,m({total:T||0}),e&&e.page&&m({currentPage:e.page||1}),E("fetch-success",{items:a.unref(h),total:T}),h}catch(n){console.log(n),E("fetch-error",n),r.value=[],m({total:0})}finally{a.nextTick(()=>{p(!1)})}}function w(){return P.value}async function U(e){return m({currentPage:e?.page||1}),await b(e)}function x(e){if(!r.value||r.value.length===0)return;const{rowkey:t}=a.unref(o);return(i=>{let s;return i.some(function(d){if(Reflect.has(d,t)&&d[t]===e)return s=d,!0}),s})(r.value)}async function B(e,t,u){return r.value[e]&&(r.value[e][t]=u),r.value[e]}function I(e,t){const u=x(e);if(u){for(const i in u)Reflect.has(t,i)&&(u[i]=t[i]);return u}}function L(e,t=0){const u=c.isPlainObject(e)?[e]:e;return r.value.splice(t,0,...u),a.unref(r)}function V(e,t){if(!r.value||r.value.length===0)return;const{rowkey:u}=a.unref(o),i=u,s=Array.isArray(e)?e:[e];let f=[];if(t!==void 0)if(Array.isArray(t))f=t;else{const n=t;f=s.map(S=>S[n])}else f=s.map(n=>n[i]);const d=t!==void 0&&!Array.isArray(t)?t:i,y=[];for(let n=r.value.length-1;n>=0;n--){const O=r.value[n][d];f.includes(O)&&y.push(n)}const g=y.length;if(y.forEach(n=>{r.value.splice(n,1)}),g>0){const{total:n}=a.unref(q);c.isNumber(n)&&m({total:n-g})}}function A(e){r.value=e}function Z(){return R.value}function G(e){const t=String(e).trim().toLowerCase();if(t){const u=w?.()?.filter(i=>{for(const s in i)if(String(i[s]).trim().toLowerCase()?.includes(t))return!0});A(u)}else A(w())}const k=a.ref(!0);return a.onMounted(()=>{a.unref(o).immediate&&b(),k.value=!1}),a.watch(()=>a.unref(o).api,()=>{a.unref(o).watchApiFetch&&!k.value&&a.unref(o).immediate&&b()}),{setTableData:A,updateTableData:B,updateTableDataRecord:I,insertTableDataRecord:L,deleteTableDataRecord:V,reload:U,handleTableChange:M,getDataSourceRef:R,getDataSource:Z,getRawDataSource:w,tableSearch:G}}exports.useDataSource=Q;
@@ -12,7 +12,7 @@ export declare function useDataSource(propsRef: ComputedRef<TableProps>, { table
12
12
  updateTableData: (index: number, key: string, value: any) => Promise<Recordable>;
13
13
  updateTableDataRecord: (rowKey: string | number, record: Recordable) => Recordable | undefined;
14
14
  insertTableDataRecord: (record: Recordable | Recordable[], index?: number) => Recordable[] | undefined;
15
- deleteTableDataRecord: (row: any, rowKey: any) => void;
15
+ deleteTableDataRecord: (row: Recordable | Recordable[], rowKey?: string | number | string[] | number[]) => void;
16
16
  reload: (opt?: any) => Promise<Recordable[] | undefined>;
17
17
  handleTableChange: (pagination: PaginationProps) => void;
18
18
  getDataSourceRef: ComputedRef<Recordable[]>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");function a(t){const n=e.ref(e.unref(t).loading);e.watch(()=>e.unref(t).loading,o=>{n.value=o});const u=e.computed(()=>e.unref(n));function i(o){n.value=o}return{getLoading:u,setLoading:i}}exports.useLoading=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),g=require("@vft/use");function s(t){const o=e.ref(e.unref(t).loading),{loading:i,start:a,cancel:u}=g.useLoadingDelay(230);e.watch([()=>e.unref(t).loading,i],([n,c])=>{o.value=n||c},{immediate:!0});const d=e.computed(()=>e.unref(o));function r(n){n?a():u()}return{getLoading:d,setLoading:r}}exports.useLoading=s;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.494";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.495";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.494",
3
+ "version": "0.0.495",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.494",
3
+ "version": "0.0.495",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -57,11 +57,11 @@
57
57
  "sortablejs": "1.15.0",
58
58
  "photoswipe": "5.4.4",
59
59
  "@vft/store": "0.0.64",
60
+ "@vft/use": "0.0.95",
60
61
  "@vft/constants": "0.0.82",
61
- "@vft/router": "0.0.73",
62
- "@vft/use": "0.0.92",
63
62
  "@vft/utils": "0.0.160",
64
- "@vft/directives": "0.0.36"
63
+ "@vft/directives": "0.0.36",
64
+ "@vft/router": "0.0.73"
65
65
  },
66
66
  "vetur": {
67
67
  "tags": "tags.json",