vft 0.0.493 → 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.
- package/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/es/components/autocomplete/autocomplete.vue.d.ts +2 -2
- package/es/components/autocomplete/index.d.ts +6 -6
- package/es/components/button/index.d.ts +9 -9
- package/es/components/config-provider/hooks/use-global-config.js +3 -3
- package/es/components/popconfirm/index.d.ts +15 -15
- package/es/components/popconfirm/popconfirm.vue.d.ts +1 -1
- package/es/components/select/index.d.ts +4 -4
- package/es/components/select/select.vue.d.ts +4 -4
- package/es/components/select/useSelect.d.ts +4 -4
- package/es/components/super-form/index.d.ts +9 -0
- package/es/components/super-form/super-form-item.vue2.js +219 -219
- package/es/components/super-form/super-form.vue2.js +97 -95
- package/es/components/super-form/types.d.ts +20 -1
- package/es/components/super-form/use/use-form-events.d.ts +1 -0
- package/es/components/super-form/use/use-form-events.js +205 -171
- package/es/components/switch/index.d.ts +2 -2
- package/es/components/switch/types.d.ts +22 -1
- package/es/components/table/field.js +60 -55
- package/es/components/table/index.d.ts +3 -3
- package/es/components/table/table.vue.d.ts +1 -1
- package/es/components/table/types.d.ts +2 -2
- package/es/components/table/use/use-data-source.d.ts +1 -1
- package/es/components/table/use/use-data-source.js +136 -119
- package/es/components/table/use/use-loading.js +15 -13
- package/es/components/tree/index.d.ts +5 -5
- package/es/components/tree/tree.vue.d.ts +2 -2
- package/es/components/upload/index.d.ts +15 -15
- package/es/components/upload/upload-content.vue.d.ts +1 -1
- package/es/components/upload/upload.vue.d.ts +1 -1
- package/es/package.json.d.ts +1 -1
- package/es/package.json.js +1 -1
- package/lib/components/autocomplete/autocomplete.vue.d.ts +2 -2
- package/lib/components/autocomplete/index.d.ts +6 -6
- package/lib/components/button/index.d.ts +9 -9
- package/lib/components/popconfirm/index.d.ts +15 -15
- package/lib/components/popconfirm/popconfirm.vue.d.ts +1 -1
- package/lib/components/select/index.d.ts +4 -4
- package/lib/components/select/select.vue.d.ts +4 -4
- package/lib/components/select/useSelect.d.ts +4 -4
- package/lib/components/super-form/index.d.ts +9 -0
- package/lib/components/super-form/super-form-item.vue2.cjs +1 -1
- package/lib/components/super-form/super-form.vue2.cjs +1 -1
- package/lib/components/super-form/types.d.ts +20 -1
- package/lib/components/super-form/use/use-form-events.cjs +1 -1
- package/lib/components/super-form/use/use-form-events.d.ts +1 -0
- package/lib/components/switch/index.d.ts +2 -2
- package/lib/components/switch/types.d.ts +22 -1
- package/lib/components/table/field.cjs +1 -1
- package/lib/components/table/index.d.ts +3 -3
- package/lib/components/table/table.vue.d.ts +1 -1
- package/lib/components/table/types.d.ts +2 -2
- package/lib/components/table/use/use-data-source.cjs +1 -1
- package/lib/components/table/use/use-data-source.d.ts +1 -1
- package/lib/components/table/use/use-loading.cjs +1 -1
- package/lib/components/tree/index.d.ts +5 -5
- package/lib/components/tree/tree.vue.d.ts +2 -2
- package/lib/components/upload/index.d.ts +15 -15
- package/lib/components/upload/upload-content.vue.d.ts +1 -1
- package/lib/components/upload/upload.vue.d.ts +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/package.json.d.ts +1 -1
- package/package.json +5 -5
- package/tags.json +1 -1
- package/theme-style/index.css +1 -1
- package/theme-style/src/table.scss +2 -4
- package/theme-style/vft-table.css +1 -1
- package/web-types.json +1 -1
|
@@ -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"),
|
|
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;
|
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
import type { SwitchProps } from 'vft/es/components';
|
|
2
|
+
import type { AutocompleteProps } from 'vft/es/components/autocomplete/autocomplete.vue';
|
|
2
3
|
import type { ButtonProps } from 'vft/es/components/button';
|
|
4
|
+
import type { CascaderProps } from 'vft/es/components/cascader-panel';
|
|
5
|
+
import type { CheckboxGroupProps } from 'vft/es/components/checkbox/checkbox-group.vue';
|
|
3
6
|
import type { ColProps } from 'vft/es/components/col';
|
|
7
|
+
import type { ColorPickerProps } from 'vft/es/components/color-picker/color-picker.vue';
|
|
8
|
+
import type { DatePickerProps } from 'vft/es/components/date-picker';
|
|
9
|
+
import type { DividerProps } from 'vft/es/components/divider/divider.vue';
|
|
4
10
|
import type { FormItemProp, FormItemProps, FormProps } from 'vft/es/components/form';
|
|
5
11
|
import type { IconProps } from 'vft/es/components/icon';
|
|
12
|
+
import type { InputProps } from 'vft/es/components/input';
|
|
13
|
+
import type { InputNumberProps } from 'vft/es/components/input-number/input-number.vue';
|
|
14
|
+
import type { InputTagProps } from 'vft/es/components/input-tag';
|
|
15
|
+
import type { RadioGroupProps } from 'vft/es/components/radio/radio-group.vue';
|
|
6
16
|
import type { RowProps } from 'vft/es/components/row';
|
|
17
|
+
import type { SearchProps } from 'vft/es/components/search';
|
|
18
|
+
import type { SelectV2Props } from 'vft/es/components/select';
|
|
19
|
+
import type { SliderProps } from 'vft/es/components/slider/slider.vue';
|
|
20
|
+
import type { TimePickerDefaultProps } from 'vft/es/components/time-picker';
|
|
7
21
|
import type { ToolTipProps } from 'vft/es/components/tooltip';
|
|
22
|
+
import type { UploadProps } from 'vft/es/components/upload';
|
|
8
23
|
import type { ComponentSize } from 'vft/es/constants';
|
|
9
24
|
import type { Arrayable } from 'vft/es/utils';
|
|
10
25
|
import { type FormCompEnumType } from 'vft/es/utils';
|
|
@@ -40,7 +55,7 @@ type FormItemRule = Omit<RuleItem, 'validator'> & Rule & {
|
|
|
40
55
|
} & {
|
|
41
56
|
isNumber?: boolean;
|
|
42
57
|
};
|
|
43
|
-
export type SchemaCompOptions = SwitchProps | Record<string, any>;
|
|
58
|
+
export type SchemaCompOptions = InputProps | SelectV2Props | RadioGroupProps | CheckboxGroupProps | DatePickerProps | TimePickerDefaultProps | CascaderProps | AutocompleteProps | ColorPickerProps | UploadProps | SliderProps | InputNumberProps | InputTagProps | DividerProps | SearchProps | SwitchProps | Record<string, any>;
|
|
44
59
|
/** 渲染回调参数接口 */
|
|
45
60
|
export interface RenderCallbackParams {
|
|
46
61
|
/** 表单配置模式 */
|
|
@@ -180,6 +195,8 @@ export interface SuperFormProps extends FormInnerProps {
|
|
|
180
195
|
submitResetReverse?: boolean;
|
|
181
196
|
labelPosition?: 'left' | 'right' | 'top';
|
|
182
197
|
labelWidth?: string | number;
|
|
198
|
+
/** 表单值格式化函数,用于格式化 getFieldsValue 的输出值 */
|
|
199
|
+
formatter?: (values: Recordable) => Recordable;
|
|
183
200
|
}
|
|
184
201
|
/** 表单配置模式接口 */
|
|
185
202
|
export interface FormSchema {
|
|
@@ -265,6 +282,8 @@ export interface FormSchema {
|
|
|
265
282
|
helpIcon?: IconProps | string;
|
|
266
283
|
/** 帮助提示配置 */
|
|
267
284
|
helpTooltip?: string | ToolTipProps;
|
|
285
|
+
/** 字段值格式化函数,用于格式化该字段在 getFieldsValue 中的输出值 */
|
|
286
|
+
formatter?: (value: any, field: string, values: Recordable, schema: FormSchema) => any;
|
|
268
287
|
}
|
|
269
288
|
/** 表单项属性接口 */
|
|
270
289
|
export interface SuperFormItemProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
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 {};
|
|
@@ -68,7 +68,7 @@ export declare const VftSwitch: import("vft/es/utils").SFCWithInstall<import("vu
|
|
|
68
68
|
default: boolean;
|
|
69
69
|
};
|
|
70
70
|
beforeChange: {
|
|
71
|
-
type: import("vue").PropType<
|
|
71
|
+
type: import("vue").PropType<() => Promise<boolean> | boolean>;
|
|
72
72
|
};
|
|
73
73
|
}>, {
|
|
74
74
|
focus: () => void;
|
|
@@ -147,7 +147,7 @@ export declare const VftSwitch: import("vft/es/utils").SFCWithInstall<import("vu
|
|
|
147
147
|
default: boolean;
|
|
148
148
|
};
|
|
149
149
|
beforeChange: {
|
|
150
|
-
type: import("vue").PropType<
|
|
150
|
+
type: import("vue").PropType<() => Promise<boolean> | boolean>;
|
|
151
151
|
};
|
|
152
152
|
}>> & Readonly<{
|
|
153
153
|
onInput?: ((...args: any[]) => any) | undefined;
|
|
@@ -1,25 +1,46 @@
|
|
|
1
1
|
import type { IconProps } from 'vft/es/components/icon';
|
|
2
2
|
import type { ComponentSize } from 'vft/es/constants';
|
|
3
3
|
export interface SwitchProps {
|
|
4
|
+
/** 绑定值,必须等于 `active-value` 或 `inactive-value`,默认为 `boolean` 类型 */
|
|
4
5
|
modelValue?: boolean | string | number;
|
|
6
|
+
/** 绑定值(非受控模式) */
|
|
5
7
|
value?: boolean | string | number;
|
|
8
|
+
/** 是否禁用 */
|
|
6
9
|
disabled?: boolean;
|
|
10
|
+
/** switch 的宽度 */
|
|
7
11
|
width?: string | number;
|
|
12
|
+
/** 无论图标或文本是否显示在点内,只会呈现文本的第一个字符 */
|
|
8
13
|
inlinePrompt?: boolean;
|
|
14
|
+
/** switch 状态为 `on` 时所显示图标,设置此项会忽略 `active-text` */
|
|
9
15
|
activeIcon?: IconProps | string;
|
|
16
|
+
/** switch 状态为 `off` 时所显示图标,设置此项会忽略 `inactive-text` */
|
|
10
17
|
inactiveIcon?: IconProps | string;
|
|
18
|
+
/** switch 打开时的文字描述 */
|
|
11
19
|
activeText?: string;
|
|
20
|
+
/** switch 的状态为 `off` 时的文字描述 */
|
|
12
21
|
inactiveText?: string;
|
|
22
|
+
/** 当在 `on` 状态时的背景颜色(已废弃,请使用 CSS var `--vft-switch-on-color`) */
|
|
13
23
|
activeColor?: string;
|
|
24
|
+
/** `off` 状态时的背景颜色(已废弃,使用 CSS var `--vft-switch-off-color`) */
|
|
14
25
|
inactiveColor?: string;
|
|
26
|
+
/** 开关的边框颜色(已废弃,使用 CSS var `--vft-switch-border-color`) */
|
|
15
27
|
borderColor?: string;
|
|
28
|
+
/** switch 状态为 `on` 时的值 */
|
|
16
29
|
activeValue?: boolean | string | number;
|
|
30
|
+
/** switch 的状态为 `off` 时的值 */
|
|
17
31
|
inactiveValue?: boolean | string | number;
|
|
32
|
+
/** switch 对应的 name 属性 */
|
|
18
33
|
name?: string;
|
|
34
|
+
/** 改变 switch 状态时是否触发表单的校验 */
|
|
19
35
|
validateEvent?: boolean;
|
|
36
|
+
/** id for input */
|
|
20
37
|
id?: string;
|
|
38
|
+
/** 是否显示加载中 */
|
|
21
39
|
loading?: boolean;
|
|
22
|
-
|
|
40
|
+
/** switch 状态改变前的钩子,返回 `false` 或者返回 `Promise` 且被 reject 则停止切换 */
|
|
41
|
+
beforeChange?: () => Promise<boolean> | boolean;
|
|
42
|
+
/** switch 的大小 */
|
|
23
43
|
size?: ComponentSize;
|
|
44
|
+
/** tabindex for input */
|
|
24
45
|
tabindex?: string | number;
|
|
25
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
/**
|
|
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
|
|
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:
|
|
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
|
|
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;
|
|
@@ -97,6 +97,7 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
97
97
|
};
|
|
98
98
|
}>> & Readonly<{
|
|
99
99
|
"onCurrent-change"?: (() => any) | undefined;
|
|
100
|
+
onCheck?: (() => any) | undefined;
|
|
100
101
|
"onNode-drag-start"?: (() => any) | undefined;
|
|
101
102
|
"onNode-drag-leave"?: (() => any) | undefined;
|
|
102
103
|
"onNode-drag-enter"?: (() => any) | undefined;
|
|
@@ -108,7 +109,6 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
108
109
|
"onNode-click"?: (() => any) | undefined;
|
|
109
110
|
"onNode-contextmenu"?: (() => any) | undefined;
|
|
110
111
|
"onNode-collapse"?: (() => any) | undefined;
|
|
111
|
-
onCheck?: (() => any) | undefined;
|
|
112
112
|
}>, {
|
|
113
113
|
filter: (value: any) => void;
|
|
114
114
|
getNodeKey: (node: import("./model/node").default) => any;
|
|
@@ -134,6 +134,7 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
134
134
|
updateNode: (data: import("./tree.type").TreeData, refNode: import("./tree.type").TreeKey | import("./tree.type").TreeNodeData | import("./model/node").default) => void;
|
|
135
135
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
136
136
|
"current-change": () => void;
|
|
137
|
+
check: () => void;
|
|
137
138
|
"node-drag-start": () => void;
|
|
138
139
|
"node-drag-leave": () => void;
|
|
139
140
|
"node-drag-enter": () => void;
|
|
@@ -145,7 +146,6 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
145
146
|
"node-click": () => void;
|
|
146
147
|
"node-contextmenu": () => void;
|
|
147
148
|
"node-collapse": () => void;
|
|
148
|
-
check: () => void;
|
|
149
149
|
}, import("vue").PublicProps, {
|
|
150
150
|
data: Array<any>;
|
|
151
151
|
props: import("./tree.type").TreeComponentProps["props"];
|
|
@@ -251,6 +251,7 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
251
251
|
};
|
|
252
252
|
}>> & Readonly<{
|
|
253
253
|
"onCurrent-change"?: (() => any) | undefined;
|
|
254
|
+
onCheck?: (() => any) | undefined;
|
|
254
255
|
"onNode-drag-start"?: (() => any) | undefined;
|
|
255
256
|
"onNode-drag-leave"?: (() => any) | undefined;
|
|
256
257
|
"onNode-drag-enter"?: (() => any) | undefined;
|
|
@@ -262,7 +263,6 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
262
263
|
"onNode-click"?: (() => any) | undefined;
|
|
263
264
|
"onNode-contextmenu"?: (() => any) | undefined;
|
|
264
265
|
"onNode-collapse"?: (() => any) | undefined;
|
|
265
|
-
onCheck?: (() => any) | undefined;
|
|
266
266
|
}>, {
|
|
267
267
|
filter: (value: any) => void;
|
|
268
268
|
getNodeKey: (node: import("./model/node").default) => any;
|
|
@@ -388,6 +388,7 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
388
388
|
};
|
|
389
389
|
}>> & Readonly<{
|
|
390
390
|
"onCurrent-change"?: (() => any) | undefined;
|
|
391
|
+
onCheck?: (() => any) | undefined;
|
|
391
392
|
"onNode-drag-start"?: (() => any) | undefined;
|
|
392
393
|
"onNode-drag-leave"?: (() => any) | undefined;
|
|
393
394
|
"onNode-drag-enter"?: (() => any) | undefined;
|
|
@@ -399,7 +400,6 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
399
400
|
"onNode-click"?: (() => any) | undefined;
|
|
400
401
|
"onNode-contextmenu"?: (() => any) | undefined;
|
|
401
402
|
"onNode-collapse"?: (() => any) | undefined;
|
|
402
|
-
onCheck?: (() => any) | undefined;
|
|
403
403
|
}>, {
|
|
404
404
|
filter: (value: any) => void;
|
|
405
405
|
getNodeKey: (node: import("./model/node").default) => any;
|
|
@@ -425,6 +425,7 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
425
425
|
updateNode: (data: import("./tree.type").TreeData, refNode: import("./tree.type").TreeKey | import("./tree.type").TreeNodeData | import("./model/node").default) => void;
|
|
426
426
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
427
427
|
"current-change": () => void;
|
|
428
|
+
check: () => void;
|
|
428
429
|
"node-drag-start": () => void;
|
|
429
430
|
"node-drag-leave": () => void;
|
|
430
431
|
"node-drag-enter": () => void;
|
|
@@ -436,7 +437,6 @@ export declare const VftTree: SFCWithInstall<{
|
|
|
436
437
|
"node-click": () => void;
|
|
437
438
|
"node-contextmenu": () => void;
|
|
438
439
|
"node-collapse": () => void;
|
|
439
|
-
check: () => void;
|
|
440
440
|
}, string, {
|
|
441
441
|
data: Array<any>;
|
|
442
442
|
props: import("./tree.type").TreeComponentProps["props"];
|
|
@@ -69,6 +69,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
69
69
|
updateNode: (data: TreeData, refNode: TreeKey | TreeNodeData | Node) => void;
|
|
70
70
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
71
71
|
"current-change": () => void;
|
|
72
|
+
check: () => void;
|
|
72
73
|
"node-drag-start": () => void;
|
|
73
74
|
"node-drag-leave": () => void;
|
|
74
75
|
"node-drag-enter": () => void;
|
|
@@ -80,7 +81,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
80
81
|
"node-click": () => void;
|
|
81
82
|
"node-contextmenu": () => void;
|
|
82
83
|
"node-collapse": () => void;
|
|
83
|
-
check: () => void;
|
|
84
84
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TreeProps>, {
|
|
85
85
|
renderAfterExpand: boolean;
|
|
86
86
|
expandOnClickNode: boolean;
|
|
@@ -94,6 +94,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
94
94
|
indent: number;
|
|
95
95
|
}>>> & Readonly<{
|
|
96
96
|
"onCurrent-change"?: (() => any) | undefined;
|
|
97
|
+
onCheck?: (() => any) | undefined;
|
|
97
98
|
"onNode-drag-start"?: (() => any) | undefined;
|
|
98
99
|
"onNode-drag-leave"?: (() => any) | undefined;
|
|
99
100
|
"onNode-drag-enter"?: (() => any) | undefined;
|
|
@@ -105,7 +106,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
105
106
|
"onNode-click"?: (() => any) | undefined;
|
|
106
107
|
"onNode-contextmenu"?: (() => any) | undefined;
|
|
107
108
|
"onNode-collapse"?: (() => any) | undefined;
|
|
108
|
-
onCheck?: (() => any) | undefined;
|
|
109
109
|
}>, {
|
|
110
110
|
data: Array<any>;
|
|
111
111
|
props: TreeComponentProps["props"];
|