@gopowerteam/form-render 0.0.4 → 0.0.5
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/define-form.d.ts +3 -2
- package/dist/cjs/form-items/date/index.d.ts +2 -2
- package/dist/cjs/form-items/date-range/index.d.ts +2 -2
- package/dist/cjs/form-items/index.d.ts +8 -15
- package/dist/cjs/form-items/input/index.d.ts +1 -1
- package/dist/cjs/form-items/render/index.d.ts +3 -3
- package/dist/cjs/form-items/select/index.d.ts +1 -1
- package/dist/cjs/form-items/switch/index.d.ts +1 -1
- package/dist/cjs/form-items/textarea/index.d.ts +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/interfaces/form-item-options.d.ts +11 -3
- package/dist/es/defines/define-form.d.ts +3 -2
- package/dist/es/form-items/date/index.d.ts +2 -2
- package/dist/es/form-items/date-range/index.d.ts +2 -2
- package/dist/es/form-items/index.d.ts +8 -15
- package/dist/es/form-items/input/index.d.ts +1 -1
- package/dist/es/form-items/render/index.d.ts +3 -3
- package/dist/es/form-items/select/index.d.ts +1 -1
- package/dist/es/form-items/switch/index.d.ts +1 -1
- package/dist/es/form-items/textarea/index.d.ts +1 -1
- package/dist/es/index.mjs +12 -10
- package/dist/es/interfaces/form-item-options.d.ts +11 -3
- package/package.json +1 -1
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type { DataRecord, FormItemsOptions } from '../interfaces';
|
|
2
|
-
export declare function defineForm<T = DataRecord>(form:
|
|
1
|
+
import type { DataRecord, FormItemsOptions, FormItemsStringKeyOptions, FormItemsTypeKeyOptions } from '../interfaces';
|
|
2
|
+
export declare function defineForm<T = DataRecord>(form: FormItemsTypeKeyOptions<T>): FormItemsOptions<T>;
|
|
3
|
+
export declare function defineForm<T = DataRecord>(form: FormItemsStringKeyOptions<T>): FormItemsOptions<T>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { FormItemOptions } from '../../interfaces';
|
|
1
|
+
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* 日期节点表单渲染
|
|
4
4
|
* @param options 日期节点配置选项
|
|
5
5
|
* @returns JSX
|
|
6
6
|
*/
|
|
7
|
-
export declare function renderDateItem(options?: RenderDateItemOptions): (data:
|
|
7
|
+
export declare function renderDateItem<T = DataRecord>(options?: RenderDateItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
8
8
|
export interface RenderDateItemOptions {
|
|
9
9
|
placeholder?: string;
|
|
10
10
|
clearable?: boolean;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { FormItemOptions } from '../../interfaces';
|
|
1
|
+
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* 日期节点表单渲染
|
|
4
4
|
* @param options 日期节点配置选项
|
|
5
5
|
* @returns JSX
|
|
6
6
|
*/
|
|
7
|
-
export declare function renderDateRangeItem(options?: RenderDateRangeItemOptions): (data:
|
|
7
|
+
export declare function renderDateRangeItem<T = DataRecord>(options?: RenderDateRangeItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
8
8
|
export interface RenderDateRangeItemOptions {
|
|
9
9
|
placeholder?: string;
|
|
10
10
|
clearable?: boolean;
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
input: typeof renderInputItem;
|
|
10
|
-
textarea: typeof renderTextareaItem;
|
|
11
|
-
select: typeof renderSelectItem;
|
|
12
|
-
date: typeof renderDateItem;
|
|
13
|
-
switch: typeof renderSwitchItem;
|
|
14
|
-
dateRange: typeof renderDateRangeItem;
|
|
15
|
-
render: typeof renderRenderItem;
|
|
1
|
+
export declare function FormItemRenders<T>(): {
|
|
2
|
+
input: (options?: import("./input").RenderInputItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
|
+
textarea: (options?: import("./textarea").RenderTextareaItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
4
|
+
select: (options: import("./select").RenderSelectItemOptions) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
5
|
+
date: (options?: import("./date").RenderDateItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
6
|
+
switch: (options?: import("./switch").RenderSwitchItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<Record<string, any>>) => import("vue/jsx-runtime").JSX.Element;
|
|
7
|
+
dateRange: (options?: import("./date-range").RenderDateRangeItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
8
|
+
render: (renderer: import("./render").RenderInputItemOptions<T>) => (data: T) => JSX.Element;
|
|
16
9
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderInputItem(options?: RenderInputItemOptions): (data:
|
|
2
|
+
export declare function renderInputItem<T = DataRecord>(options?: RenderInputItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export interface RenderInputItemOptions {
|
|
4
4
|
placeholder?: string;
|
|
5
5
|
clearable?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord } from '../../interfaces';
|
|
2
|
-
export declare function renderRenderItem(renderer: RenderInputItemOptions): (data:
|
|
3
|
-
export interface RenderInputItemOptions {
|
|
4
|
-
(record:
|
|
2
|
+
export declare function renderRenderItem<T = DataRecord>(renderer: RenderInputItemOptions<T>): (data: T) => JSX.Element;
|
|
3
|
+
export interface RenderInputItemOptions<T> {
|
|
4
|
+
(record: T): JSX.Element;
|
|
5
5
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderSelectItem(options: RenderSelectItemOptions): (data:
|
|
2
|
+
export declare function renderSelectItem<T = DataRecord>(options: RenderSelectItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export type SelectOptions = Map<string | number, string>;
|
|
4
4
|
export interface RenderSelectItemOptions {
|
|
5
5
|
placeholder?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderSwitchItem(options?: RenderSwitchItemOptions): (data:
|
|
2
|
+
export declare function renderSwitchItem<T = DataRecord>(options?: RenderSwitchItemOptions): (data: T, form: FormItemOptions) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export type SelectOptions = Map<string | number, string>;
|
|
4
4
|
export interface RenderSwitchItemOptions {
|
|
5
5
|
size?: 'small' | 'medium';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderTextareaItem(options?: RenderTextareaItemOptions): (data:
|
|
2
|
+
export declare function renderTextareaItem<T = DataRecord>(options?: RenderTextareaItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export interface RenderTextareaItemOptions {
|
|
4
4
|
placeholder?: string;
|
|
5
5
|
rows?: number;
|
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)}const Q={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"),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;
|
|
@@ -4,7 +4,7 @@ import type { FormItemRenders } from '../form-items';
|
|
|
4
4
|
* 表单项配置
|
|
5
5
|
*/
|
|
6
6
|
export interface FormItemOptions<T = Record<string, any>> {
|
|
7
|
-
key: string;
|
|
7
|
+
key: keyof T | string;
|
|
8
8
|
title: string;
|
|
9
9
|
default?: any | (() => any) | (() => Promise<any>);
|
|
10
10
|
collapsed?: boolean;
|
|
@@ -14,19 +14,27 @@ export interface FormItemOptions<T = Record<string, any>> {
|
|
|
14
14
|
rule?: FieldRule | FieldRule[];
|
|
15
15
|
render?: FormItemRender<T>;
|
|
16
16
|
}
|
|
17
|
+
export interface FormItemStringKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
|
|
18
|
+
key: string;
|
|
19
|
+
}
|
|
20
|
+
export interface FormItemTypeKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
|
|
21
|
+
key: keyof T;
|
|
22
|
+
}
|
|
17
23
|
/**
|
|
18
24
|
* 表单配置
|
|
19
25
|
*/
|
|
20
26
|
export type FormItemsOptions<T = Record<string, any>> = Array<FormItemOptions<T>>;
|
|
27
|
+
export type FormItemsTypeKeyOptions<T = Record<string, any>> = FormItemTypeKeyOptions<T>[];
|
|
28
|
+
export type FormItemsStringKeyOptions<T = Record<string, any>> = FormItemStringKeyOptions<T>[];
|
|
21
29
|
/**
|
|
22
30
|
* Render函数
|
|
23
31
|
*/
|
|
24
32
|
export interface FormItemRender<T = Record<string, any>> {
|
|
25
|
-
(render: FormItemRenderFun): (data: T, itemOptions: FormItemOptions<T>) => JSX.Element;
|
|
33
|
+
(render: FormItemRenderFun<T>): (data: T, itemOptions: FormItemOptions<T>) => JSX.Element;
|
|
26
34
|
}
|
|
27
35
|
/**
|
|
28
36
|
* Render函数模板
|
|
29
37
|
*/
|
|
30
|
-
export type FormItemRenderFun = typeof FormItemRenders & {
|
|
38
|
+
export type FormItemRenderFun<T> = ReturnType<typeof FormItemRenders<T>> & {
|
|
31
39
|
[key: string]: any;
|
|
32
40
|
};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type { DataRecord, FormItemsOptions } from '../interfaces';
|
|
2
|
-
export declare function defineForm<T = DataRecord>(form:
|
|
1
|
+
import type { DataRecord, FormItemsOptions, FormItemsStringKeyOptions, FormItemsTypeKeyOptions } from '../interfaces';
|
|
2
|
+
export declare function defineForm<T = DataRecord>(form: FormItemsTypeKeyOptions<T>): FormItemsOptions<T>;
|
|
3
|
+
export declare function defineForm<T = DataRecord>(form: FormItemsStringKeyOptions<T>): FormItemsOptions<T>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { FormItemOptions } from '../../interfaces';
|
|
1
|
+
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* 日期节点表单渲染
|
|
4
4
|
* @param options 日期节点配置选项
|
|
5
5
|
* @returns JSX
|
|
6
6
|
*/
|
|
7
|
-
export declare function renderDateItem(options?: RenderDateItemOptions): (data:
|
|
7
|
+
export declare function renderDateItem<T = DataRecord>(options?: RenderDateItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
8
8
|
export interface RenderDateItemOptions {
|
|
9
9
|
placeholder?: string;
|
|
10
10
|
clearable?: boolean;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { FormItemOptions } from '../../interfaces';
|
|
1
|
+
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* 日期节点表单渲染
|
|
4
4
|
* @param options 日期节点配置选项
|
|
5
5
|
* @returns JSX
|
|
6
6
|
*/
|
|
7
|
-
export declare function renderDateRangeItem(options?: RenderDateRangeItemOptions): (data:
|
|
7
|
+
export declare function renderDateRangeItem<T = DataRecord>(options?: RenderDateRangeItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
8
8
|
export interface RenderDateRangeItemOptions {
|
|
9
9
|
placeholder?: string;
|
|
10
10
|
clearable?: boolean;
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
input: typeof renderInputItem;
|
|
10
|
-
textarea: typeof renderTextareaItem;
|
|
11
|
-
select: typeof renderSelectItem;
|
|
12
|
-
date: typeof renderDateItem;
|
|
13
|
-
switch: typeof renderSwitchItem;
|
|
14
|
-
dateRange: typeof renderDateRangeItem;
|
|
15
|
-
render: typeof renderRenderItem;
|
|
1
|
+
export declare function FormItemRenders<T>(): {
|
|
2
|
+
input: (options?: import("./input").RenderInputItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
|
+
textarea: (options?: import("./textarea").RenderTextareaItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
4
|
+
select: (options: import("./select").RenderSelectItemOptions) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
5
|
+
date: (options?: import("./date").RenderDateItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
6
|
+
switch: (options?: import("./switch").RenderSwitchItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<Record<string, any>>) => import("vue/jsx-runtime").JSX.Element;
|
|
7
|
+
dateRange: (options?: import("./date-range").RenderDateRangeItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
8
|
+
render: (renderer: import("./render").RenderInputItemOptions<T>) => (data: T) => JSX.Element;
|
|
16
9
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderInputItem(options?: RenderInputItemOptions): (data:
|
|
2
|
+
export declare function renderInputItem<T = DataRecord>(options?: RenderInputItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export interface RenderInputItemOptions {
|
|
4
4
|
placeholder?: string;
|
|
5
5
|
clearable?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord } from '../../interfaces';
|
|
2
|
-
export declare function renderRenderItem(renderer: RenderInputItemOptions): (data:
|
|
3
|
-
export interface RenderInputItemOptions {
|
|
4
|
-
(record:
|
|
2
|
+
export declare function renderRenderItem<T = DataRecord>(renderer: RenderInputItemOptions<T>): (data: T) => JSX.Element;
|
|
3
|
+
export interface RenderInputItemOptions<T> {
|
|
4
|
+
(record: T): JSX.Element;
|
|
5
5
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderSelectItem(options: RenderSelectItemOptions): (data:
|
|
2
|
+
export declare function renderSelectItem<T = DataRecord>(options: RenderSelectItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export type SelectOptions = Map<string | number, string>;
|
|
4
4
|
export interface RenderSelectItemOptions {
|
|
5
5
|
placeholder?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderSwitchItem(options?: RenderSwitchItemOptions): (data:
|
|
2
|
+
export declare function renderSwitchItem<T = DataRecord>(options?: RenderSwitchItemOptions): (data: T, form: FormItemOptions) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export type SelectOptions = Map<string | number, string>;
|
|
4
4
|
export interface RenderSwitchItemOptions {
|
|
5
5
|
size?: 'small' | 'medium';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataRecord, FormItemOptions } from '../../interfaces';
|
|
2
|
-
export declare function renderTextareaItem(options?: RenderTextareaItemOptions): (data:
|
|
2
|
+
export declare function renderTextareaItem<T = DataRecord>(options?: RenderTextareaItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
|
|
3
3
|
export interface RenderTextareaItemOptions {
|
|
4
4
|
placeholder?: string;
|
|
5
5
|
rows?: number;
|
package/dist/es/index.mjs
CHANGED
|
@@ -317,19 +317,21 @@ function Ve(e) {
|
|
|
317
317
|
function Fe(e) {
|
|
318
318
|
return (l) => e(l);
|
|
319
319
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
320
|
+
function Ie() {
|
|
321
|
+
return {
|
|
322
|
+
input: ge,
|
|
323
|
+
textarea: Ve,
|
|
324
|
+
select: Ce,
|
|
325
|
+
date: Se,
|
|
326
|
+
switch: xe,
|
|
327
|
+
dateRange: we,
|
|
328
|
+
render: Fe
|
|
329
|
+
};
|
|
330
|
+
}
|
|
329
331
|
function De(e, l) {
|
|
330
332
|
l.render || (l.render = (t) => t.input());
|
|
331
333
|
const r = l.render({
|
|
332
|
-
...Ie
|
|
334
|
+
...Ie()
|
|
333
335
|
});
|
|
334
336
|
return {
|
|
335
337
|
default: () => r(e, l)
|
|
@@ -4,7 +4,7 @@ import type { FormItemRenders } from '../form-items';
|
|
|
4
4
|
* 表单项配置
|
|
5
5
|
*/
|
|
6
6
|
export interface FormItemOptions<T = Record<string, any>> {
|
|
7
|
-
key: string;
|
|
7
|
+
key: keyof T | string;
|
|
8
8
|
title: string;
|
|
9
9
|
default?: any | (() => any) | (() => Promise<any>);
|
|
10
10
|
collapsed?: boolean;
|
|
@@ -14,19 +14,27 @@ export interface FormItemOptions<T = Record<string, any>> {
|
|
|
14
14
|
rule?: FieldRule | FieldRule[];
|
|
15
15
|
render?: FormItemRender<T>;
|
|
16
16
|
}
|
|
17
|
+
export interface FormItemStringKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
|
|
18
|
+
key: string;
|
|
19
|
+
}
|
|
20
|
+
export interface FormItemTypeKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
|
|
21
|
+
key: keyof T;
|
|
22
|
+
}
|
|
17
23
|
/**
|
|
18
24
|
* 表单配置
|
|
19
25
|
*/
|
|
20
26
|
export type FormItemsOptions<T = Record<string, any>> = Array<FormItemOptions<T>>;
|
|
27
|
+
export type FormItemsTypeKeyOptions<T = Record<string, any>> = FormItemTypeKeyOptions<T>[];
|
|
28
|
+
export type FormItemsStringKeyOptions<T = Record<string, any>> = FormItemStringKeyOptions<T>[];
|
|
21
29
|
/**
|
|
22
30
|
* Render函数
|
|
23
31
|
*/
|
|
24
32
|
export interface FormItemRender<T = Record<string, any>> {
|
|
25
|
-
(render: FormItemRenderFun): (data: T, itemOptions: FormItemOptions<T>) => JSX.Element;
|
|
33
|
+
(render: FormItemRenderFun<T>): (data: T, itemOptions: FormItemOptions<T>) => JSX.Element;
|
|
26
34
|
}
|
|
27
35
|
/**
|
|
28
36
|
* Render函数模板
|
|
29
37
|
*/
|
|
30
|
-
export type FormItemRenderFun = typeof FormItemRenders & {
|
|
38
|
+
export type FormItemRenderFun<T> = ReturnType<typeof FormItemRenders<T>> & {
|
|
31
39
|
[key: string]: any;
|
|
32
40
|
};
|