@gopowerteam/form-render 0.0.5 → 0.0.7
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/dist/cjs/defines/index.d.ts +1 -0
- package/dist/cjs/form-items/select/index.d.ts +1 -0
- package/dist/cjs/form-render/index.d.ts +23 -3
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/use-form.d.ts +12 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/utils/create-form-source.d.ts +1 -1
- package/dist/es/defines/index.d.ts +1 -0
- package/dist/es/form-items/select/index.d.ts +1 -0
- package/dist/es/form-render/index.d.ts +23 -3
- package/dist/es/hooks/index.d.ts +1 -0
- package/dist/es/hooks/use-form.d.ts +12 -0
- package/dist/es/index.d.ts +2 -1
- package/dist/es/index.mjs +167 -133
- package/dist/es/utils/create-form-source.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './define-form';
|
|
@@ -3,9 +3,17 @@ import { type FieldRule } from '@arco-design/web-vue';
|
|
|
3
3
|
import type { FormItemsOptions } from '../interfaces';
|
|
4
4
|
export declare const FormRender: import("vue").DefineComponent<{
|
|
5
5
|
form: {
|
|
6
|
-
type: PropType<FormItemsOptions
|
|
6
|
+
type: PropType<FormItemsOptions<any>>;
|
|
7
7
|
required: true;
|
|
8
8
|
};
|
|
9
|
+
value: {
|
|
10
|
+
type: PropType<Record<string, any>>;
|
|
11
|
+
required: false;
|
|
12
|
+
};
|
|
13
|
+
modelValue: {
|
|
14
|
+
type: PropType<Record<string, any>>;
|
|
15
|
+
required: false;
|
|
16
|
+
};
|
|
9
17
|
minWidth: {
|
|
10
18
|
type: NumberConstructor;
|
|
11
19
|
required: false;
|
|
@@ -287,11 +295,22 @@ export declare const FormRender: import("vue").DefineComponent<{
|
|
|
287
295
|
formCollspased: import("vue").Ref<boolean>;
|
|
288
296
|
formActiosSpan: import("vue").ComputedRef<number>;
|
|
289
297
|
toggleFormCollapsed: () => boolean;
|
|
290
|
-
|
|
298
|
+
updateFormField: (key: string, value: any) => void;
|
|
299
|
+
updateFormSource: (value: import("../interfaces").DataRecord) => void;
|
|
300
|
+
reset: () => void;
|
|
301
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "cancel" | "update:model-value")[], "submit" | "cancel" | "update:model-value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
291
302
|
form: {
|
|
292
|
-
type: PropType<FormItemsOptions
|
|
303
|
+
type: PropType<FormItemsOptions<any>>;
|
|
293
304
|
required: true;
|
|
294
305
|
};
|
|
306
|
+
value: {
|
|
307
|
+
type: PropType<Record<string, any>>;
|
|
308
|
+
required: false;
|
|
309
|
+
};
|
|
310
|
+
modelValue: {
|
|
311
|
+
type: PropType<Record<string, any>>;
|
|
312
|
+
required: false;
|
|
313
|
+
};
|
|
295
314
|
minWidth: {
|
|
296
315
|
type: NumberConstructor;
|
|
297
316
|
required: false;
|
|
@@ -320,6 +339,7 @@ export declare const FormRender: import("vue").DefineComponent<{
|
|
|
320
339
|
}>> & {
|
|
321
340
|
onSubmit?: ((...args: any[]) => any) | undefined;
|
|
322
341
|
onCancel?: ((...args: any[]) => any) | undefined;
|
|
342
|
+
"onUpdate:model-value"?: ((...args: any[]) => any) | undefined;
|
|
323
343
|
}, {
|
|
324
344
|
footer: boolean;
|
|
325
345
|
name: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './use-form';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ComponentPublicInstance, type Ref } from 'vue';
|
|
2
|
+
import type { FormRenderInstance } from '../form-render';
|
|
3
|
+
type FormRenderExpose = {
|
|
4
|
+
-readonly [K in keyof Omit<FormRenderInstance, keyof ComponentPublicInstance>]: FormRenderInstance[K];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* 获取TableRender实例
|
|
8
|
+
* @param key
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function useForm(key: string): Readonly<Ref<FormRenderExpose>>;
|
|
12
|
+
export {};
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),c=require("@arco-design/web-vue"),b=require("dayjs");const $=Symbol("ArcoConfigProvider"),N="arco",x="$arco",S=e=>{var t,r,a;const n=l.getCurrentInstance(),d=l.inject($,void 0),u=(a=(r=d==null?void 0:d.prefixCls)!=null?r:(t=n==null?void 0:n.appContext.config.globalProperties[x])==null?void 0:t.classPrefix)!=null?a:N;return e?`${u}-${e}`:u},w=Object.prototype.toString;function g(e){return w.call(e)==="[object Number]"&&e===e}var C=(e,t)=>{for(const[r,a]of t)e[r]=a;return e};const F=l.defineComponent({name:"IconDown",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:t}){const r=S("icon"),a=l.computed(()=>[r,`${r}-down`,{[`${r}-spin`]:e.spin}]),n=l.computed(()=>{const u={};return e.size&&(u.fontSize=g(e.size)?`${e.size}px`:e.size),e.rotate&&(u.transform=`rotate(${e.rotate}deg)`),u});return{cls:a,innerStyle:n,onClick:u=>{t("click",u)}}}}),I=["stroke-width","stroke-linecap","stroke-linejoin"],D=l.createElementVNode("path",{d:"M39.6 17.443 24.043 33 8.487 17.443"},null,-1),_=[D];function j(e,t,r,a,n,d){return l.openBlock(),l.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:l.normalizeClass(e.cls),style:l.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:t[0]||(t[0]=(...u)=>e.onClick&&e.onClick(...u))},_,14,I)}var k=C(F,[["render",j]]);const P=Object.assign(k,{install:(e,t)=>{var r;const a=(r=t==null?void 0:t.iconPrefix)!=null?r:"";e.component(a+k.name,k)}}),z=l.defineComponent({name:"IconUp",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:t}){const r=S("icon"),a=l.computed(()=>[r,`${r}-up`,{[`${r}-spin`]:e.spin}]),n=l.computed(()=>{const u={};return e.size&&(u.fontSize=g(e.size)?`${e.size}px`:e.size),e.rotate&&(u.transform=`rotate(${e.rotate}deg)`),u});return{cls:a,innerStyle:n,onClick:u=>{t("click",u)}}}}),B=["stroke-width","stroke-linecap","stroke-linejoin"],L=l.createElementVNode("path",{d:"M39.6 30.557 24.043 15 8.487 30.557"},null,-1),O=[L];function M(e,t,r,a,n,d){return l.openBlock(),l.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:l.normalizeClass(e.cls),style:l.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:t[0]||(t[0]=(...u)=>e.onClick&&e.onClick(...u))},O,14,B)}var y=C(z,[["render",M]]);const U=Object.assign(y,{install:(e,t)=>{var r;const a=(r=t==null?void 0:t.iconPrefix)!=null?r:"";e.component(a+y.name,y)}}),v={id:Symbol("ID"),source:Symbol("Source")};function q(e){const t=l.ref({});return e==null||e.forEach(a=>{t.value[a.key]=(typeof a.default=="function"?a.default():a.default)||null}),[t,a=>{t.value=a}]}function R(e){function t(r,a){return e!=null&&e.disabledDate?e.disabledDate(r,a):!1}return(r,a)=>{switch(e==null?void 0:e.type){case"week":return l.createVNode(c.WeekPicker,{modelValue:r[a.key],"onUpdate:modelValue":n=>r[a.key]=n,"disabled-date":t,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"month":return l.createVNode(c.MonthPicker,{modelValue:r[a.key],"onUpdate:modelValue":n=>r[a.key]=n,"disabled-date":t,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"quarter":return l.createVNode(c.QuarterPicker,{modelValue:r[a.key],"onUpdate:modelValue":n=>r[a.key]=n,"disabled-date":t,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"year":return l.createVNode(c.YearPicker,{modelValue:r[a.key],"onUpdate:modelValue":n=>r[a.key]=n,"disabled-date":t,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"date":default:return l.createVNode(c.DatePicker,{modelValue:r[a.key],"onUpdate:modelValue":n=>r[a.key]=n,"disabled-date":t,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)}}}function T(e){return(t,r)=>{switch(e==null?void 0:e.type){case"number":return l.createVNode(c.InputNumber,{modelValue:t[r.key],"onUpdate:modelValue":a=>t[r.key]=a,hideButton:!0,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},null);case"string":default:return l.createVNode(c.Input,{modelValue:t[r.key],"onUpdate:modelValue":a=>t[r.key]=a,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},null)}}}function E(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!l.isVNode(e)}function A(e){let t=!1;const r=l.ref(new Map);e.options instanceof Function?e.options().then(n=>r.value=n):e.options instanceof Promise?e.options.then(n=>r.value=n):r.value=e.options;function a(){e.autoSumbit}return(n,d)=>{let u;return e.default&&!t&&(n[d.key]=e.default,t=!0),l.createVNode(c.Select,{multiple:e.multiple,modelValue:n[d.key],"onUpdate:modelValue":i=>n[d.key]=i,placeholder:e.placeholder,allowClear:e.clearable,onChange:a},E(u=Array.from(r.value.entries()).map(([i,s])=>l.createVNode(c.Option,{key:i,value:i,label:s},null)))?u:{default:()=>[u]})}}function Y(e){function t(){e!=null&&e.autoSumbit}return(r,a)=>(e!=null&&e.default&&(r[a.key]=e.default),l.createVNode(c.Switch,{modelValue:r[a.key],"onUpdate:modelValue":n=>r[a.key]=n,checkedText:(e==null?void 0:e.openLabel)??"是",uncheckedText:(e==null?void 0:e.closeLabel)??"否",checkedValue:(e==null?void 0:e.openValue)??!0,uncheckedValue:(e==null?void 0:e.closeValue)??!1,onChange:t},null))}function W(e){return(t,r)=>{let a=[];function n(i){a=i}function d(i){if(i&&i.length===2){const[s,o]=i.sort(),m=b(s).startOf("days"),f=b(o).endOf("days");t[r.key]=[m.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD"),f.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD")]}}function u(i){return e!=null&&e.disabledDate?e.disabledDate(a,i):!1}return l.createVNode("div",null,[l.createVNode(c.RangePicker,{style:{width:"300px"},modelValue:t[r.key],"onUpdate:modelValue":i=>t[r.key]=i,onSelect:n,onChange:d,mode:e==null?void 0:e.type,allowClear:e==null?void 0:e.clearable,"disabled-date":u,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)])}}function G(e){return(t,r)=>l.createVNode(c.Textarea,{modelValue:t[r.key],"onUpdate:modelValue":a=>t[r.key]=a,placeholder:e==null?void 0:e.placeholder,autoSize:e==null?void 0:e.autosize,maxLength:e==null?void 0:e.maxLength},null)}function K(e){return t=>e(t)}function Q(){return{input:T,textarea:G,select:A,date:R,switch:Y,dateRange:W,render:K}}function X(e,t){t.render||(t.render=a=>a.input());const r=t.render({...Q()});return{default:()=>r(e,t)}}function H(e,t){return l.h(c.FormItem,{field:t.key,label:t.title},X(e,t))}function V(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!l.isVNode(e)}const J=l.defineComponent({props:{form:{type:Object,required:!0},minWidth:{type:Number,required:!1,default:300},name:{type:String,required:!1,default:"form"},submitable:{type:Boolean,required:!1,default:!1},searchable:{type:Boolean,required:!1,default:!1},footer:{type:Boolean,required:!1,default:!1}},emits:["submit","cancel"],expose:["formSource"],setup(e){const t=Math.random().toString(32).slice(2).toUpperCase(),r=l.ref(),[a]=q(e.form),n=l.ref(0),d=l.ref(!0),u=()=>d.value=!d.value;l.provide(v.id,t),l.provide(v.source,a);const i=l.computed(()=>{if(!n.value)return 1;const m=e.form.reduce((f,h)=>f+((h==null?void 0:h.span)||1),0);return n.value-m%n.value}),s=l.computed(()=>e.form.reduce((m,f)=>(f.rule&&(m[f.key]=f.rule),m),{}));function o(){var f;const m=(f=r.value)==null?void 0:f.$el;n.value=Math.floor(m.offsetWidth/e.minWidth)}return l.onMounted(()=>{o()}),window.addEventListener("resize",o),{formId:t,formSource:a,formInstance:r,formColumns:n,formRules:s,formCollspased:d,formActiosSpan:i,toggleFormCollapsed:u}},render(){const e=()=>{this.$emit("submit",this.formSource)},t=()=>{const r=[],a=this.footer?{span:this.formColumns}:{span:this.formActiosSpan};if(this.searchable&&(r.push(l.createVNode(c.Button,{type:"primary",htmlType:"submit"},{default:()=>[l.createTextVNode("搜索")]})),r.push(l.createVNode(c.Button,{type:"secondary",onClick:()=>{var n;return(n=this.formInstance)==null?void 0:n.resetFields()}},{default:()=>[l.createTextVNode("重置")]}))),this.submitable&&(r.push(l.createVNode(c.Button,{type:"primary",htmlType:"submit"},{default:()=>[l.createTextVNode("提交")]})),r.push(l.createVNode(c.Button,{type:"secondary",onClick:()=>this.$emit("cancel")},{default:()=>[l.createTextVNode("取消")]}))),this.form.some(n=>!!n.collapsed)&&r.push(l.createVNode(c.Button,{onClick:this.toggleFormCollapsed},{default:()=>this.formCollspased?"展开":"收起",icon:()=>this.formCollspased?l.createVNode(P,null,null):l.createVNode(U,null,null)})),this.$slots.actions&&r.push(...this.$slots.actions()),r.length)return l.createVNode(c.GridItem,a,{default:()=>[l.createVNode(c.FormItem,{hideLabel:!0,contentClass:this.footer?"form-footer":""},{default:()=>[l.createVNode(c.Space,null,V(r)?r:{default:()=>[r]})]})]})};return l.createVNode(c.Form,l.mergeProps({rules:this.formRules,onSubmitSuccess:e},{name:this.name},{"auto-label-width":!0,ref:r=>this.formInstance=r,model:this.formSource}),{default:()=>[l.createVNode(c.Grid,{cols:this.formColumns,"col-gap":10,"rol-gap":10},{default:()=>[this.form.filter(r=>this.formCollspased?!r.collapsed:!0).map(r=>{let a;return l.createVNode(c.GridItem,{span:r.span},V(a=H(this.formSource,r))?a:{default:()=>[a]})}),t()]})]})}});function Z(e){return e}exports.FormRender=J;exports.defineForm=Z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),d=require("@arco-design/web-vue"),V=require("dayjs");const F=Symbol("ArcoConfigProvider"),w="arco",I="$arco",C=e=>{var r,t,a;const n=l.getCurrentInstance(),c=l.inject(F,void 0),u=(a=(t=c==null?void 0:c.prefixCls)!=null?t:(r=n==null?void 0:n.appContext.config.globalProperties[I])==null?void 0:r.classPrefix)!=null?a:w;return e?`${u}-${e}`:u},j=Object.prototype.toString;function $(e){return j.call(e)==="[object Number]"&&e===e}var N=(e,r)=>{for(const[t,a]of r)e[t]=a;return e};const D=l.defineComponent({name:"IconDown",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:r}){const t=C("icon"),a=l.computed(()=>[t,`${t}-down`,{[`${t}-spin`]:e.spin}]),n=l.computed(()=>{const u={};return e.size&&(u.fontSize=$(e.size)?`${e.size}px`:e.size),e.rotate&&(u.transform=`rotate(${e.rotate}deg)`),u});return{cls:a,innerStyle:n,onClick:u=>{r("click",u)}}}}),_=["stroke-width","stroke-linecap","stroke-linejoin"],P=l.createElementVNode("path",{d:"M39.6 17.443 24.043 33 8.487 17.443"},null,-1),z=[P];function B(e,r,t,a,n,c){return l.openBlock(),l.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:l.normalizeClass(e.cls),style:l.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:r[0]||(r[0]=(...u)=>e.onClick&&e.onClick(...u))},z,14,_)}var b=N(D,[["render",B]]);const O=Object.assign(b,{install:(e,r)=>{var t;const a=(t=r==null?void 0:r.iconPrefix)!=null?t:"";e.component(a+b.name,b)}}),L=l.defineComponent({name:"IconUp",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:r}){const t=C("icon"),a=l.computed(()=>[t,`${t}-up`,{[`${t}-spin`]:e.spin}]),n=l.computed(()=>{const u={};return e.size&&(u.fontSize=$(e.size)?`${e.size}px`:e.size),e.rotate&&(u.transform=`rotate(${e.rotate}deg)`),u});return{cls:a,innerStyle:n,onClick:u=>{r("click",u)}}}}),M=["stroke-width","stroke-linecap","stroke-linejoin"],U=l.createElementVNode("path",{d:"M39.6 30.557 24.043 15 8.487 30.557"},null,-1),q=[U];function T(e,r,t,a,n,c){return l.openBlock(),l.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:l.normalizeClass(e.cls),style:l.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:r[0]||(r[0]=(...u)=>e.onClick&&e.onClick(...u))},q,14,M)}var v=N(L,[["render",T]]);const R=Object.assign(v,{install:(e,r)=>{var t;const a=(t=r==null?void 0:r.iconPrefix)!=null?t:"";e.component(a+v.name,v)}}),S={id:Symbol("ID"),source:Symbol("Source")};function E(e,r){const t=l.ref({});return e==null||e.forEach(n=>{let c=null;n.default&&(c=(typeof n.default=="function"?n.default():n.default)||null),r&&r[n.key]&&(c=r[n.key]),t.value[n.key]=c}),[t,n=>{t.value=n}]}function A(e){function r(t,a){return e!=null&&e.disabledDate?e.disabledDate(t,a):!1}return(t,a)=>{switch(e==null?void 0:e.type){case"week":return l.createVNode(d.WeekPicker,{modelValue:t[a.key],"onUpdate:modelValue":n=>t[a.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"month":return l.createVNode(d.MonthPicker,{modelValue:t[a.key],"onUpdate:modelValue":n=>t[a.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"quarter":return l.createVNode(d.QuarterPicker,{modelValue:t[a.key],"onUpdate:modelValue":n=>t[a.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"year":return l.createVNode(d.YearPicker,{modelValue:t[a.key],"onUpdate:modelValue":n=>t[a.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"date":default:return l.createVNode(d.DatePicker,{modelValue:t[a.key],"onUpdate:modelValue":n=>t[a.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)}}}function Y(e){return(r,t)=>{switch(e==null?void 0:e.type){case"number":return l.createVNode(d.InputNumber,{modelValue:r[t.key],"onUpdate:modelValue":a=>r[t.key]=a,hideButton:!0,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},null);case"string":default:return l.createVNode(d.Input,{modelValue:r[t.key],"onUpdate:modelValue":a=>r[t.key]=a,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},null)}}}function W(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!l.isVNode(e)}function G(e){let r=!1;const t=l.ref(new Map);e.options instanceof Function?e.options().then(n=>t.value=n):e.options instanceof Promise?e.options.then(n=>t.value=n):t.value=e.options;function a(){e.autoSumbit}return(n,c)=>{let u;return e.default&&!r&&(n[c.key]=e.default,r=!0),l.createVNode(d.Select,{multiple:e.multiple,modelValue:n[c.key],"onUpdate:modelValue":o=>n[c.key]=o,placeholder:e.placeholder,allowClear:e.clearable,maxTagCount:e.maxTagCount,onChange:a},W(u=Array.from(t.value.entries()).map(([o,m])=>l.createVNode(d.Option,{key:o,value:o,label:m},null)))?u:{default:()=>[u]})}}function K(e){function r(){e!=null&&e.autoSumbit}return(t,a)=>(e!=null&&e.default&&(t[a.key]=e.default),l.createVNode(d.Switch,{modelValue:t[a.key],"onUpdate:modelValue":n=>t[a.key]=n,checkedText:(e==null?void 0:e.openLabel)??"是",uncheckedText:(e==null?void 0:e.closeLabel)??"否",checkedValue:(e==null?void 0:e.openValue)??!0,uncheckedValue:(e==null?void 0:e.closeValue)??!1,onChange:r},null))}function Q(e){return(r,t)=>{let a=[];function n(o){a=o}function c(o){if(o&&o.length===2){const[m,h]=o.sort(),s=V(m).startOf("days"),k=V(h).endOf("days");r[t.key]=[s.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD"),k.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD")]}}function u(o){return e!=null&&e.disabledDate?e.disabledDate(a,o):!1}return l.createVNode("div",null,[l.createVNode(d.RangePicker,{style:{width:"300px"},modelValue:r[t.key],"onUpdate:modelValue":o=>r[t.key]=o,onSelect:n,onChange:c,mode:e==null?void 0:e.type,allowClear:e==null?void 0:e.clearable,"disabled-date":u,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)])}}function X(e){return(r,t)=>l.createVNode(d.Textarea,{modelValue:r[t.key],"onUpdate:modelValue":a=>r[t.key]=a,placeholder:e==null?void 0:e.placeholder,autoSize:e==null?void 0:e.autosize,maxLength:e==null?void 0:e.maxLength},null)}function H(e){return r=>e(r)}function J(){return{input:Y,textarea:X,select:G,date:A,switch:K,dateRange:Q,render:H}}function Z(e,r){r.render||(r.render=a=>a.input());const t=r.render({...J()});return{default:()=>t(e,r)}}function p(e,r){return l.h(d.FormItem,{field:r.key,label:r.title},Z(e,r))}function g(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!l.isVNode(e)}const ee=l.defineComponent({props:{form:{type:Object,required:!0},value:{type:Object,required:!1},modelValue:{type:Object,required:!1},minWidth:{type:Number,required:!1,default:300},name:{type:String,required:!1,default:"form"},submitable:{type:Boolean,required:!1,default:!1},searchable:{type:Boolean,required:!1,default:!1},footer:{type:Boolean,required:!1,default:!1}},emits:["submit","cancel","update:model-value"],expose:["formSource","updateFormField","updateFormSource","reset"],setup(e){const r=Math.random().toString(32).slice(2).toUpperCase(),t=l.ref(),[a,n]=E(e.form,e.modelValue||e.value),c=l.ref(0),u=l.ref(!0),o=()=>u.value=!u.value;l.provide(S.id,r),l.provide(S.source,a);const m=l.computed(()=>{if(!c.value)return 1;const f=e.form.reduce((i,y)=>i+((y==null?void 0:y.span)||1),0);return c.value-f%c.value}),h=l.computed(()=>e.form.reduce((f,i)=>(i.rule&&(f[i.key]=i.rule),f),{}));function s(){var i;const f=(i=t.value)==null?void 0:i.$el;c.value=Math.floor(f.offsetWidth/e.minWidth)}l.onMounted(()=>{s()});function k(f,i){n({...a,[f]:i})}function x(){var f;(f=t.value)==null||f.resetFields()}return window.addEventListener("resize",s),{formId:r,formSource:a,formInstance:t,formColumns:c,formRules:h,formCollspased:u,formActiosSpan:m,toggleFormCollapsed:o,updateFormField:k,updateFormSource:n,reset:x}},render(){const e=()=>{this.$emit("submit",this.formSource),this.$emit("update:model-value",this.formSource)},r=()=>{const t=[],a=this.footer?{span:this.formColumns}:{span:this.formActiosSpan};if(this.searchable&&(t.push(l.createVNode(d.Button,{type:"primary",htmlType:"submit"},{default:()=>[l.createTextVNode("搜索")]})),t.push(l.createVNode(d.Button,{type:"secondary",onClick:()=>{var n;return(n=this.formInstance)==null?void 0:n.resetFields()}},{default:()=>[l.createTextVNode("重置")]}))),this.submitable&&(t.push(l.createVNode(d.Button,{type:"primary",htmlType:"submit"},{default:()=>[l.createTextVNode("提交")]})),t.push(l.createVNode(d.Button,{type:"secondary",onClick:()=>this.$emit("cancel")},{default:()=>[l.createTextVNode("取消")]}))),this.form.some(n=>!!n.collapsed)&&t.push(l.createVNode(d.Button,{onClick:this.toggleFormCollapsed},{default:()=>this.formCollspased?"展开":"收起",icon:()=>this.formCollspased?l.createVNode(O,null,null):l.createVNode(R,null,null)})),this.$slots.actions&&t.push(...this.$slots.actions()),t.length)return l.createVNode(d.GridItem,a,{default:()=>[l.createVNode(d.FormItem,{hideLabel:!0,contentClass:this.footer?"form-footer":""},{default:()=>[l.createVNode(d.Space,null,g(t)?t:{default:()=>[t]})]})]})};return l.createVNode(d.Form,l.mergeProps({rules:this.formRules,onSubmitSuccess:e},{name:this.name},{"auto-label-width":!0,ref:t=>this.formInstance=t,model:this.formSource}),{default:()=>[l.createVNode(d.Grid,{cols:this.formColumns,"col-gap":10,"rol-gap":10},{default:()=>[this.form.filter(t=>this.formCollspased?!t.collapsed:!0).map(t=>{let a;return l.createVNode(d.GridItem,{span:t.span},g(a=p(this.formSource,t))?a:{default:()=>[a]})}),r()]})]})}});function te(e){return e}function re(e){const r=l.getCurrentInstance(),t=l.ref();function a(){var c,u;const n=(u=(c=r==null?void 0:r.proxy)==null?void 0:c.$refs)==null?void 0:u[e];n&&(t.value=n)}return l.onMounted(a),l.onUpdated(a),t}exports.FormRender=ee;exports.defineForm=te;exports.useForm=re;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type Ref } from 'vue';
|
|
2
2
|
import type { DataRecord, FormItemsOptions } from '../interfaces';
|
|
3
|
-
export declare function createFormSource(form?: FormItemsOptions): [Ref<DataRecord>, (value: DataRecord) => void];
|
|
3
|
+
export declare function createFormSource(form?: FormItemsOptions, source?: Record<string, any>): [Ref<DataRecord>, (value: DataRecord) => void];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './define-form';
|
|
@@ -3,9 +3,17 @@ import { type FieldRule } from '@arco-design/web-vue';
|
|
|
3
3
|
import type { FormItemsOptions } from '../interfaces';
|
|
4
4
|
export declare const FormRender: import("vue").DefineComponent<{
|
|
5
5
|
form: {
|
|
6
|
-
type: PropType<FormItemsOptions
|
|
6
|
+
type: PropType<FormItemsOptions<any>>;
|
|
7
7
|
required: true;
|
|
8
8
|
};
|
|
9
|
+
value: {
|
|
10
|
+
type: PropType<Record<string, any>>;
|
|
11
|
+
required: false;
|
|
12
|
+
};
|
|
13
|
+
modelValue: {
|
|
14
|
+
type: PropType<Record<string, any>>;
|
|
15
|
+
required: false;
|
|
16
|
+
};
|
|
9
17
|
minWidth: {
|
|
10
18
|
type: NumberConstructor;
|
|
11
19
|
required: false;
|
|
@@ -287,11 +295,22 @@ export declare const FormRender: import("vue").DefineComponent<{
|
|
|
287
295
|
formCollspased: import("vue").Ref<boolean>;
|
|
288
296
|
formActiosSpan: import("vue").ComputedRef<number>;
|
|
289
297
|
toggleFormCollapsed: () => boolean;
|
|
290
|
-
|
|
298
|
+
updateFormField: (key: string, value: any) => void;
|
|
299
|
+
updateFormSource: (value: import("../interfaces").DataRecord) => void;
|
|
300
|
+
reset: () => void;
|
|
301
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "cancel" | "update:model-value")[], "submit" | "cancel" | "update:model-value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
291
302
|
form: {
|
|
292
|
-
type: PropType<FormItemsOptions
|
|
303
|
+
type: PropType<FormItemsOptions<any>>;
|
|
293
304
|
required: true;
|
|
294
305
|
};
|
|
306
|
+
value: {
|
|
307
|
+
type: PropType<Record<string, any>>;
|
|
308
|
+
required: false;
|
|
309
|
+
};
|
|
310
|
+
modelValue: {
|
|
311
|
+
type: PropType<Record<string, any>>;
|
|
312
|
+
required: false;
|
|
313
|
+
};
|
|
295
314
|
minWidth: {
|
|
296
315
|
type: NumberConstructor;
|
|
297
316
|
required: false;
|
|
@@ -320,6 +339,7 @@ export declare const FormRender: import("vue").DefineComponent<{
|
|
|
320
339
|
}>> & {
|
|
321
340
|
onSubmit?: ((...args: any[]) => any) | undefined;
|
|
322
341
|
onCancel?: ((...args: any[]) => any) | undefined;
|
|
342
|
+
"onUpdate:model-value"?: ((...args: any[]) => any) | undefined;
|
|
323
343
|
}, {
|
|
324
344
|
footer: boolean;
|
|
325
345
|
name: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './use-form';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ComponentPublicInstance, type Ref } from 'vue';
|
|
2
|
+
import type { FormRenderInstance } from '../form-render';
|
|
3
|
+
type FormRenderExpose = {
|
|
4
|
+
-readonly [K in keyof Omit<FormRenderInstance, keyof ComponentPublicInstance>]: FormRenderInstance[K];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* 获取TableRender实例
|
|
8
|
+
* @param key
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function useForm(key: string): Readonly<Ref<FormRenderExpose>>;
|
|
12
|
+
export {};
|
package/dist/es/index.d.ts
CHANGED
package/dist/es/index.mjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { getCurrentInstance as
|
|
2
|
-
import { DatePicker as
|
|
3
|
-
import
|
|
4
|
-
const
|
|
1
|
+
import { getCurrentInstance as D, inject as T, defineComponent as C, computed as s, openBlock as _, createElementBlock as j, normalizeClass as P, normalizeStyle as z, createElementVNode as L, ref as m, createVNode as n, isVNode as O, h as A, provide as x, onMounted as U, mergeProps as Y, createTextVNode as y, onUpdated as E } from "vue";
|
|
2
|
+
import { DatePicker as W, YearPicker as G, QuarterPicker as K, MonthPicker as Q, WeekPicker as X, Input as H, InputNumber as J, Select as Z, Option as p, Switch as ee, RangePicker as re, Textarea as le, FormItem as N, Form as te, Grid as ae, GridItem as F, Button as h, Space as ue } from "@arco-design/web-vue";
|
|
3
|
+
import w from "dayjs";
|
|
4
|
+
const ne = Symbol("ArcoConfigProvider"), ce = "arco", de = "$arco", M = (e) => {
|
|
5
5
|
var l, r, t;
|
|
6
|
-
const a =
|
|
7
|
-
return e ? `${
|
|
8
|
-
},
|
|
9
|
-
function
|
|
10
|
-
return
|
|
6
|
+
const a = D(), c = T(ne, void 0), u = (t = (r = c == null ? void 0 : c.prefixCls) != null ? r : (l = a == null ? void 0 : a.appContext.config.globalProperties[de]) == null ? void 0 : l.classPrefix) != null ? t : ce;
|
|
7
|
+
return e ? `${u}-${e}` : u;
|
|
8
|
+
}, fe = Object.prototype.toString;
|
|
9
|
+
function B(e) {
|
|
10
|
+
return fe.call(e) === "[object Number]" && e === e;
|
|
11
11
|
}
|
|
12
|
-
var
|
|
12
|
+
var q = (e, l) => {
|
|
13
13
|
for (const [r, t] of l)
|
|
14
14
|
e[r] = t;
|
|
15
15
|
return e;
|
|
16
16
|
};
|
|
17
|
-
const
|
|
17
|
+
const ie = C({
|
|
18
18
|
name: "IconDown",
|
|
19
19
|
props: {
|
|
20
20
|
size: {
|
|
@@ -43,45 +43,45 @@ const ue = g({
|
|
|
43
43
|
setup(e, {
|
|
44
44
|
emit: l
|
|
45
45
|
}) {
|
|
46
|
-
const r =
|
|
46
|
+
const r = M("icon"), t = s(() => [r, `${r}-down`, {
|
|
47
47
|
[`${r}-spin`]: e.spin
|
|
48
48
|
}]), a = s(() => {
|
|
49
|
-
const
|
|
50
|
-
return e.size && (
|
|
49
|
+
const u = {};
|
|
50
|
+
return e.size && (u.fontSize = B(e.size) ? `${e.size}px` : e.size), e.rotate && (u.transform = `rotate(${e.rotate}deg)`), u;
|
|
51
51
|
});
|
|
52
52
|
return {
|
|
53
53
|
cls: t,
|
|
54
54
|
innerStyle: a,
|
|
55
|
-
onClick: (
|
|
56
|
-
l("click",
|
|
55
|
+
onClick: (u) => {
|
|
56
|
+
l("click", u);
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
}),
|
|
60
|
+
}), me = ["stroke-width", "stroke-linecap", "stroke-linejoin"], se = /* @__PURE__ */ L("path", {
|
|
61
61
|
d: "M39.6 17.443 24.043 33 8.487 17.443"
|
|
62
|
-
}, null, -1),
|
|
63
|
-
function
|
|
64
|
-
return
|
|
62
|
+
}, null, -1), oe = [se];
|
|
63
|
+
function he(e, l, r, t, a, c) {
|
|
64
|
+
return _(), j("svg", {
|
|
65
65
|
viewBox: "0 0 48 48",
|
|
66
66
|
fill: "none",
|
|
67
67
|
xmlns: "http://www.w3.org/2000/svg",
|
|
68
68
|
stroke: "currentColor",
|
|
69
|
-
class:
|
|
70
|
-
style:
|
|
69
|
+
class: P(e.cls),
|
|
70
|
+
style: z(e.innerStyle),
|
|
71
71
|
"stroke-width": e.strokeWidth,
|
|
72
72
|
"stroke-linecap": e.strokeLinecap,
|
|
73
73
|
"stroke-linejoin": e.strokeLinejoin,
|
|
74
|
-
onClick: l[0] || (l[0] = (...
|
|
75
|
-
},
|
|
74
|
+
onClick: l[0] || (l[0] = (...u) => e.onClick && e.onClick(...u))
|
|
75
|
+
}, oe, 14, me);
|
|
76
76
|
}
|
|
77
|
-
var
|
|
78
|
-
const
|
|
77
|
+
var g = /* @__PURE__ */ q(ie, [["render", he]]);
|
|
78
|
+
const ke = Object.assign(g, {
|
|
79
79
|
install: (e, l) => {
|
|
80
80
|
var r;
|
|
81
81
|
const t = (r = l == null ? void 0 : l.iconPrefix) != null ? r : "";
|
|
82
|
-
e.component(t +
|
|
82
|
+
e.component(t + g.name, g);
|
|
83
83
|
}
|
|
84
|
-
}),
|
|
84
|
+
}), ye = C({
|
|
85
85
|
name: "IconUp",
|
|
86
86
|
props: {
|
|
87
87
|
size: {
|
|
@@ -110,64 +110,65 @@ const se = Object.assign(v, {
|
|
|
110
110
|
setup(e, {
|
|
111
111
|
emit: l
|
|
112
112
|
}) {
|
|
113
|
-
const r =
|
|
113
|
+
const r = M("icon"), t = s(() => [r, `${r}-up`, {
|
|
114
114
|
[`${r}-spin`]: e.spin
|
|
115
115
|
}]), a = s(() => {
|
|
116
|
-
const
|
|
117
|
-
return e.size && (
|
|
116
|
+
const u = {};
|
|
117
|
+
return e.size && (u.fontSize = B(e.size) ? `${e.size}px` : e.size), e.rotate && (u.transform = `rotate(${e.rotate}deg)`), u;
|
|
118
118
|
});
|
|
119
119
|
return {
|
|
120
120
|
cls: t,
|
|
121
121
|
innerStyle: a,
|
|
122
|
-
onClick: (
|
|
123
|
-
l("click",
|
|
122
|
+
onClick: (u) => {
|
|
123
|
+
l("click", u);
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
}),
|
|
127
|
+
}), be = ["stroke-width", "stroke-linecap", "stroke-linejoin"], ve = /* @__PURE__ */ L("path", {
|
|
128
128
|
d: "M39.6 30.557 24.043 15 8.487 30.557"
|
|
129
|
-
}, null, -1),
|
|
130
|
-
function
|
|
131
|
-
return
|
|
129
|
+
}, null, -1), Se = [ve];
|
|
130
|
+
function ge(e, l, r, t, a, c) {
|
|
131
|
+
return _(), j("svg", {
|
|
132
132
|
viewBox: "0 0 48 48",
|
|
133
133
|
fill: "none",
|
|
134
134
|
xmlns: "http://www.w3.org/2000/svg",
|
|
135
135
|
stroke: "currentColor",
|
|
136
|
-
class:
|
|
137
|
-
style:
|
|
136
|
+
class: P(e.cls),
|
|
137
|
+
style: z(e.innerStyle),
|
|
138
138
|
"stroke-width": e.strokeWidth,
|
|
139
139
|
"stroke-linecap": e.strokeLinecap,
|
|
140
140
|
"stroke-linejoin": e.strokeLinejoin,
|
|
141
|
-
onClick: l[0] || (l[0] = (...
|
|
142
|
-
},
|
|
141
|
+
onClick: l[0] || (l[0] = (...u) => e.onClick && e.onClick(...u))
|
|
142
|
+
}, Se, 14, be);
|
|
143
143
|
}
|
|
144
|
-
var
|
|
145
|
-
const
|
|
144
|
+
var $ = /* @__PURE__ */ q(ye, [["render", ge]]);
|
|
145
|
+
const $e = Object.assign($, {
|
|
146
146
|
install: (e, l) => {
|
|
147
147
|
var r;
|
|
148
148
|
const t = (r = l == null ? void 0 : l.iconPrefix) != null ? r : "";
|
|
149
|
-
e.component(t +
|
|
149
|
+
e.component(t + $.name, $);
|
|
150
150
|
}
|
|
151
|
-
}),
|
|
151
|
+
}), V = {
|
|
152
152
|
id: Symbol("ID"),
|
|
153
153
|
source: Symbol("Source")
|
|
154
154
|
};
|
|
155
|
-
function
|
|
156
|
-
const
|
|
157
|
-
return e == null || e.forEach((
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
function Ce(e, l) {
|
|
156
|
+
const r = m({});
|
|
157
|
+
return e == null || e.forEach((a) => {
|
|
158
|
+
let c = null;
|
|
159
|
+
a.default && (c = (typeof a.default == "function" ? a.default() : a.default) || null), l && l[a.key] && (c = l[a.key]), r.value[a.key] = c;
|
|
160
|
+
}), [r, (a) => {
|
|
161
|
+
r.value = a;
|
|
161
162
|
}];
|
|
162
163
|
}
|
|
163
|
-
function
|
|
164
|
+
function xe(e) {
|
|
164
165
|
function l(r, t) {
|
|
165
166
|
return e != null && e.disabledDate ? e.disabledDate(r, t) : !1;
|
|
166
167
|
}
|
|
167
168
|
return (r, t) => {
|
|
168
169
|
switch (e == null ? void 0 : e.type) {
|
|
169
170
|
case "week":
|
|
170
|
-
return
|
|
171
|
+
return n(X, {
|
|
171
172
|
modelValue: r[t.key],
|
|
172
173
|
"onUpdate:modelValue": (a) => r[t.key] = a,
|
|
173
174
|
"disabled-date": l,
|
|
@@ -175,7 +176,7 @@ function Se(e) {
|
|
|
175
176
|
"value-format": e == null ? void 0 : e.valueFormat
|
|
176
177
|
}, null);
|
|
177
178
|
case "month":
|
|
178
|
-
return
|
|
179
|
+
return n(Q, {
|
|
179
180
|
modelValue: r[t.key],
|
|
180
181
|
"onUpdate:modelValue": (a) => r[t.key] = a,
|
|
181
182
|
"disabled-date": l,
|
|
@@ -183,7 +184,7 @@ function Se(e) {
|
|
|
183
184
|
"value-format": e == null ? void 0 : e.valueFormat
|
|
184
185
|
}, null);
|
|
185
186
|
case "quarter":
|
|
186
|
-
return
|
|
187
|
+
return n(K, {
|
|
187
188
|
modelValue: r[t.key],
|
|
188
189
|
"onUpdate:modelValue": (a) => r[t.key] = a,
|
|
189
190
|
"disabled-date": l,
|
|
@@ -191,7 +192,7 @@ function Se(e) {
|
|
|
191
192
|
"value-format": e == null ? void 0 : e.valueFormat
|
|
192
193
|
}, null);
|
|
193
194
|
case "year":
|
|
194
|
-
return
|
|
195
|
+
return n(G, {
|
|
195
196
|
modelValue: r[t.key],
|
|
196
197
|
"onUpdate:modelValue": (a) => r[t.key] = a,
|
|
197
198
|
"disabled-date": l,
|
|
@@ -200,7 +201,7 @@ function Se(e) {
|
|
|
200
201
|
}, null);
|
|
201
202
|
case "date":
|
|
202
203
|
default:
|
|
203
|
-
return
|
|
204
|
+
return n(W, {
|
|
204
205
|
modelValue: r[t.key],
|
|
205
206
|
"onUpdate:modelValue": (a) => r[t.key] = a,
|
|
206
207
|
"disabled-date": l,
|
|
@@ -210,11 +211,11 @@ function Se(e) {
|
|
|
210
211
|
}
|
|
211
212
|
};
|
|
212
213
|
}
|
|
213
|
-
function
|
|
214
|
+
function Fe(e) {
|
|
214
215
|
return (l, r) => {
|
|
215
216
|
switch (e == null ? void 0 : e.type) {
|
|
216
217
|
case "number":
|
|
217
|
-
return
|
|
218
|
+
return n(J, {
|
|
218
219
|
modelValue: l[r.key],
|
|
219
220
|
"onUpdate:modelValue": (t) => l[r.key] = t,
|
|
220
221
|
hideButton: !0,
|
|
@@ -223,7 +224,7 @@ function ge(e) {
|
|
|
223
224
|
}, null);
|
|
224
225
|
case "string":
|
|
225
226
|
default:
|
|
226
|
-
return
|
|
227
|
+
return n(H, {
|
|
227
228
|
modelValue: l[r.key],
|
|
228
229
|
"onUpdate:modelValue": (t) => l[r.key] = t,
|
|
229
230
|
placeholder: e == null ? void 0 : e.placeholder,
|
|
@@ -232,39 +233,40 @@ function ge(e) {
|
|
|
232
233
|
}
|
|
233
234
|
};
|
|
234
235
|
}
|
|
235
|
-
function
|
|
236
|
-
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !
|
|
236
|
+
function we(e) {
|
|
237
|
+
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !O(e);
|
|
237
238
|
}
|
|
238
|
-
function
|
|
239
|
+
function Ve(e) {
|
|
239
240
|
let l = !1;
|
|
240
|
-
const r =
|
|
241
|
+
const r = m(/* @__PURE__ */ new Map());
|
|
241
242
|
e.options instanceof Function ? e.options().then((a) => r.value = a) : e.options instanceof Promise ? e.options.then((a) => r.value = a) : r.value = e.options;
|
|
242
243
|
function t() {
|
|
243
244
|
e.autoSumbit;
|
|
244
245
|
}
|
|
245
246
|
return (a, c) => {
|
|
246
|
-
let
|
|
247
|
-
return e.default && !l && (a[c.key] = e.default, l = !0),
|
|
247
|
+
let u;
|
|
248
|
+
return e.default && !l && (a[c.key] = e.default, l = !0), n(Z, {
|
|
248
249
|
multiple: e.multiple,
|
|
249
250
|
modelValue: a[c.key],
|
|
250
251
|
"onUpdate:modelValue": (d) => a[c.key] = d,
|
|
251
252
|
placeholder: e.placeholder,
|
|
252
253
|
allowClear: e.clearable,
|
|
254
|
+
maxTagCount: e.maxTagCount,
|
|
253
255
|
onChange: t
|
|
254
|
-
},
|
|
256
|
+
}, we(u = Array.from(r.value.entries()).map(([d, o]) => n(p, {
|
|
255
257
|
key: d,
|
|
256
258
|
value: d,
|
|
257
|
-
label:
|
|
258
|
-
}, null))) ?
|
|
259
|
-
default: () => [
|
|
259
|
+
label: o
|
|
260
|
+
}, null))) ? u : {
|
|
261
|
+
default: () => [u]
|
|
260
262
|
});
|
|
261
263
|
};
|
|
262
264
|
}
|
|
263
|
-
function
|
|
265
|
+
function Ie(e) {
|
|
264
266
|
function l() {
|
|
265
267
|
e != null && e.autoSumbit;
|
|
266
268
|
}
|
|
267
|
-
return (r, t) => (e != null && e.default && (r[t.key] = e.default),
|
|
269
|
+
return (r, t) => (e != null && e.default && (r[t.key] = e.default), n(ee, {
|
|
268
270
|
modelValue: r[t.key],
|
|
269
271
|
"onUpdate:modelValue": (a) => r[t.key] = a,
|
|
270
272
|
checkedText: (e == null ? void 0 : e.openLabel) ?? "是",
|
|
@@ -274,7 +276,7 @@ function xe(e) {
|
|
|
274
276
|
onChange: l
|
|
275
277
|
}, null));
|
|
276
278
|
}
|
|
277
|
-
function
|
|
279
|
+
function De(e) {
|
|
278
280
|
return (l, r) => {
|
|
279
281
|
let t = [];
|
|
280
282
|
function a(d) {
|
|
@@ -282,14 +284,14 @@ function we(e) {
|
|
|
282
284
|
}
|
|
283
285
|
function c(d) {
|
|
284
286
|
if (d && d.length === 2) {
|
|
285
|
-
const [
|
|
286
|
-
l[r.key] = [
|
|
287
|
+
const [o, b] = d.sort(), k = w(o).startOf("days"), v = w(b).endOf("days");
|
|
288
|
+
l[r.key] = [k.format((e == null ? void 0 : e.valueFormat) || "YYYY-MM-DD"), v.format((e == null ? void 0 : e.valueFormat) || "YYYY-MM-DD")];
|
|
287
289
|
}
|
|
288
290
|
}
|
|
289
|
-
function
|
|
291
|
+
function u(d) {
|
|
290
292
|
return e != null && e.disabledDate ? e.disabledDate(t, d) : !1;
|
|
291
293
|
}
|
|
292
|
-
return
|
|
294
|
+
return n("div", null, [n(re, {
|
|
293
295
|
style: {
|
|
294
296
|
width: "300px"
|
|
295
297
|
},
|
|
@@ -299,14 +301,14 @@ function we(e) {
|
|
|
299
301
|
onChange: c,
|
|
300
302
|
mode: e == null ? void 0 : e.type,
|
|
301
303
|
allowClear: e == null ? void 0 : e.clearable,
|
|
302
|
-
"disabled-date":
|
|
304
|
+
"disabled-date": u,
|
|
303
305
|
format: e == null ? void 0 : e.labelFormat,
|
|
304
306
|
"value-format": e == null ? void 0 : e.valueFormat
|
|
305
307
|
}, null)]);
|
|
306
308
|
};
|
|
307
309
|
}
|
|
308
|
-
function
|
|
309
|
-
return (l, r) =>
|
|
310
|
+
function _e(e) {
|
|
311
|
+
return (l, r) => n(le, {
|
|
310
312
|
modelValue: l[r.key],
|
|
311
313
|
"onUpdate:modelValue": (t) => l[r.key] = t,
|
|
312
314
|
placeholder: e == null ? void 0 : e.placeholder,
|
|
@@ -314,44 +316,52 @@ function Ve(e) {
|
|
|
314
316
|
maxLength: e == null ? void 0 : e.maxLength
|
|
315
317
|
}, null);
|
|
316
318
|
}
|
|
317
|
-
function
|
|
319
|
+
function je(e) {
|
|
318
320
|
return (l) => e(l);
|
|
319
321
|
}
|
|
320
|
-
function
|
|
322
|
+
function Pe() {
|
|
321
323
|
return {
|
|
322
|
-
input:
|
|
323
|
-
textarea:
|
|
324
|
-
select:
|
|
325
|
-
date:
|
|
326
|
-
switch:
|
|
327
|
-
dateRange:
|
|
328
|
-
render:
|
|
324
|
+
input: Fe,
|
|
325
|
+
textarea: _e,
|
|
326
|
+
select: Ve,
|
|
327
|
+
date: xe,
|
|
328
|
+
switch: Ie,
|
|
329
|
+
dateRange: De,
|
|
330
|
+
render: je
|
|
329
331
|
};
|
|
330
332
|
}
|
|
331
|
-
function
|
|
333
|
+
function ze(e, l) {
|
|
332
334
|
l.render || (l.render = (t) => t.input());
|
|
333
335
|
const r = l.render({
|
|
334
|
-
...
|
|
336
|
+
...Pe()
|
|
335
337
|
});
|
|
336
338
|
return {
|
|
337
339
|
default: () => r(e, l)
|
|
338
340
|
};
|
|
339
341
|
}
|
|
340
|
-
function
|
|
341
|
-
return
|
|
342
|
+
function Le(e, l) {
|
|
343
|
+
return A(N, {
|
|
342
344
|
field: l.key,
|
|
343
345
|
label: l.title
|
|
344
|
-
},
|
|
346
|
+
}, ze(e, l));
|
|
345
347
|
}
|
|
346
|
-
function
|
|
347
|
-
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !
|
|
348
|
+
function I(e) {
|
|
349
|
+
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !O(e);
|
|
348
350
|
}
|
|
349
|
-
const
|
|
351
|
+
const Me = /* @__PURE__ */ C({
|
|
350
352
|
props: {
|
|
351
353
|
form: {
|
|
352
354
|
type: Object,
|
|
353
355
|
required: !0
|
|
354
356
|
},
|
|
357
|
+
value: {
|
|
358
|
+
type: Object,
|
|
359
|
+
required: !1
|
|
360
|
+
},
|
|
361
|
+
modelValue: {
|
|
362
|
+
type: Object,
|
|
363
|
+
required: !1
|
|
364
|
+
},
|
|
355
365
|
minWidth: {
|
|
356
366
|
type: Number,
|
|
357
367
|
required: !1,
|
|
@@ -378,50 +388,64 @@ const Le = /* @__PURE__ */ g({
|
|
|
378
388
|
default: !1
|
|
379
389
|
}
|
|
380
390
|
},
|
|
381
|
-
emits: ["submit", "cancel"],
|
|
382
|
-
expose: ["formSource"],
|
|
391
|
+
emits: ["submit", "cancel", "update:model-value"],
|
|
392
|
+
expose: ["formSource", "updateFormField", "updateFormSource", "reset"],
|
|
383
393
|
setup(e) {
|
|
384
|
-
const l = Math.random().toString(32).slice(2).toUpperCase(), r =
|
|
385
|
-
|
|
386
|
-
const
|
|
387
|
-
if (!
|
|
394
|
+
const l = Math.random().toString(32).slice(2).toUpperCase(), r = m(), [t, a] = Ce(e.form, e.modelValue || e.value), c = m(0), u = m(!0), d = () => u.value = !u.value;
|
|
395
|
+
x(V.id, l), x(V.source, t);
|
|
396
|
+
const o = s(() => {
|
|
397
|
+
if (!c.value)
|
|
388
398
|
return 1;
|
|
389
|
-
const
|
|
390
|
-
return
|
|
391
|
-
}),
|
|
399
|
+
const f = e.form.reduce((i, S) => i + ((S == null ? void 0 : S.span) || 1), 0);
|
|
400
|
+
return c.value - f % c.value;
|
|
401
|
+
}), b = s(() => e.form.reduce((f, i) => (i.rule && (f[i.key] = i.rule), f), {}));
|
|
392
402
|
function k() {
|
|
393
|
-
var
|
|
394
|
-
const
|
|
395
|
-
|
|
403
|
+
var i;
|
|
404
|
+
const f = (i = r.value) == null ? void 0 : i.$el;
|
|
405
|
+
c.value = Math.floor(f.offsetWidth / e.minWidth);
|
|
396
406
|
}
|
|
397
|
-
|
|
407
|
+
U(() => {
|
|
398
408
|
k();
|
|
399
|
-
})
|
|
409
|
+
});
|
|
410
|
+
function v(f, i) {
|
|
411
|
+
a({
|
|
412
|
+
...t,
|
|
413
|
+
[f]: i
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
function R() {
|
|
417
|
+
var f;
|
|
418
|
+
(f = r.value) == null || f.resetFields();
|
|
419
|
+
}
|
|
420
|
+
return window.addEventListener("resize", k), {
|
|
400
421
|
formId: l,
|
|
401
422
|
formSource: t,
|
|
402
423
|
formInstance: r,
|
|
403
|
-
formColumns:
|
|
404
|
-
formRules:
|
|
405
|
-
formCollspased:
|
|
406
|
-
formActiosSpan:
|
|
407
|
-
toggleFormCollapsed:
|
|
424
|
+
formColumns: c,
|
|
425
|
+
formRules: b,
|
|
426
|
+
formCollspased: u,
|
|
427
|
+
formActiosSpan: o,
|
|
428
|
+
toggleFormCollapsed: d,
|
|
429
|
+
updateFormField: v,
|
|
430
|
+
updateFormSource: a,
|
|
431
|
+
reset: R
|
|
408
432
|
};
|
|
409
433
|
},
|
|
410
434
|
render() {
|
|
411
435
|
const e = () => {
|
|
412
|
-
this.$emit("submit", this.formSource);
|
|
436
|
+
this.$emit("submit", this.formSource), this.$emit("update:model-value", this.formSource);
|
|
413
437
|
}, l = () => {
|
|
414
438
|
const r = [], t = this.footer ? {
|
|
415
439
|
span: this.formColumns
|
|
416
440
|
} : {
|
|
417
441
|
span: this.formActiosSpan
|
|
418
442
|
};
|
|
419
|
-
if (this.searchable && (r.push(
|
|
443
|
+
if (this.searchable && (r.push(n(h, {
|
|
420
444
|
type: "primary",
|
|
421
445
|
htmlType: "submit"
|
|
422
446
|
}, {
|
|
423
447
|
default: () => [y("搜索")]
|
|
424
|
-
})), r.push(
|
|
448
|
+
})), r.push(n(h, {
|
|
425
449
|
type: "secondary",
|
|
426
450
|
onClick: () => {
|
|
427
451
|
var a;
|
|
@@ -429,34 +453,34 @@ const Le = /* @__PURE__ */ g({
|
|
|
429
453
|
}
|
|
430
454
|
}, {
|
|
431
455
|
default: () => [y("重置")]
|
|
432
|
-
}))), this.submitable && (r.push(
|
|
456
|
+
}))), this.submitable && (r.push(n(h, {
|
|
433
457
|
type: "primary",
|
|
434
458
|
htmlType: "submit"
|
|
435
459
|
}, {
|
|
436
460
|
default: () => [y("提交")]
|
|
437
|
-
})), r.push(
|
|
461
|
+
})), r.push(n(h, {
|
|
438
462
|
type: "secondary",
|
|
439
463
|
onClick: () => this.$emit("cancel")
|
|
440
464
|
}, {
|
|
441
465
|
default: () => [y("取消")]
|
|
442
|
-
}))), this.form.some((a) => !!a.collapsed) && r.push(
|
|
466
|
+
}))), this.form.some((a) => !!a.collapsed) && r.push(n(h, {
|
|
443
467
|
onClick: this.toggleFormCollapsed
|
|
444
468
|
}, {
|
|
445
469
|
default: () => this.formCollspased ? "展开" : "收起",
|
|
446
|
-
icon: () => this.formCollspased ?
|
|
470
|
+
icon: () => this.formCollspased ? n(ke, null, null) : n($e, null, null)
|
|
447
471
|
})), this.$slots.actions && r.push(...this.$slots.actions()), r.length)
|
|
448
|
-
return
|
|
449
|
-
default: () => [
|
|
472
|
+
return n(F, t, {
|
|
473
|
+
default: () => [n(N, {
|
|
450
474
|
hideLabel: !0,
|
|
451
475
|
contentClass: this.footer ? "form-footer" : ""
|
|
452
476
|
}, {
|
|
453
|
-
default: () => [
|
|
477
|
+
default: () => [n(ue, null, I(r) ? r : {
|
|
454
478
|
default: () => [r]
|
|
455
479
|
})]
|
|
456
480
|
})]
|
|
457
481
|
});
|
|
458
482
|
};
|
|
459
|
-
return
|
|
483
|
+
return n(te, Y({
|
|
460
484
|
rules: this.formRules,
|
|
461
485
|
onSubmitSuccess: e
|
|
462
486
|
}, {
|
|
@@ -466,16 +490,16 @@ const Le = /* @__PURE__ */ g({
|
|
|
466
490
|
ref: (r) => this.formInstance = r,
|
|
467
491
|
model: this.formSource
|
|
468
492
|
}), {
|
|
469
|
-
default: () => [
|
|
493
|
+
default: () => [n(ae, {
|
|
470
494
|
cols: this.formColumns,
|
|
471
495
|
"col-gap": 10,
|
|
472
496
|
"rol-gap": 10
|
|
473
497
|
}, {
|
|
474
498
|
default: () => [this.form.filter((r) => this.formCollspased ? !r.collapsed : !0).map((r) => {
|
|
475
499
|
let t;
|
|
476
|
-
return
|
|
500
|
+
return n(F, {
|
|
477
501
|
span: r.span
|
|
478
|
-
},
|
|
502
|
+
}, I(t = Le(this.formSource, r)) ? t : {
|
|
479
503
|
default: () => [t]
|
|
480
504
|
});
|
|
481
505
|
}), l()]
|
|
@@ -483,10 +507,20 @@ const Le = /* @__PURE__ */ g({
|
|
|
483
507
|
});
|
|
484
508
|
}
|
|
485
509
|
});
|
|
486
|
-
function
|
|
510
|
+
function Be(e) {
|
|
487
511
|
return e;
|
|
488
512
|
}
|
|
513
|
+
function qe(e) {
|
|
514
|
+
const l = D(), r = m();
|
|
515
|
+
function t() {
|
|
516
|
+
var c, u;
|
|
517
|
+
const a = (u = (c = l == null ? void 0 : l.proxy) == null ? void 0 : c.$refs) == null ? void 0 : u[e];
|
|
518
|
+
a && (r.value = a);
|
|
519
|
+
}
|
|
520
|
+
return U(t), E(t), r;
|
|
521
|
+
}
|
|
489
522
|
export {
|
|
490
|
-
|
|
491
|
-
|
|
523
|
+
Me as FormRender,
|
|
524
|
+
Be as defineForm,
|
|
525
|
+
qe as useForm
|
|
492
526
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type Ref } from 'vue';
|
|
2
2
|
import type { DataRecord, FormItemsOptions } from '../interfaces';
|
|
3
|
-
export declare function createFormSource(form?: FormItemsOptions): [Ref<DataRecord>, (value: DataRecord) => void];
|
|
3
|
+
export declare function createFormSource(form?: FormItemsOptions, source?: Record<string, any>): [Ref<DataRecord>, (value: DataRecord) => void];
|