zy-react-library 1.1.48 → 1.1.50
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/components/FormBuilder/FormItemsRenderer.js +1 -1
- package/package.json +1 -1
- package/components/FormBuilder/FormBuilder.tsx +0 -1
- package/components/FormBuilder/FormItemsRenderer.tsx +0 -1
- package/components/FormBuilder/FormItemsRenderer.types.ts +0 -1
- package/components/FormBuilder/index.tsx +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InfoCircleOutlined as e}from"@ant-design/icons";import{Input as r,DatePicker as
|
|
1
|
+
import{InfoCircleOutlined as e}from"@ant-design/icons";import{Input as r,DatePicker as n,Form as l,Col as t,Divider as s,Row as a,Button as o,Tooltip as d,Checkbox as i,Radio as u,Select as p,InputNumber as c}from"antd";import m from"dayjs";import{FORM_ITEM_RENDER_ENUM as h}from"../../enum/formItemRender/index.js";import{jsx as y,Fragment as E,jsxs as b}from"react/jsx-runtime";const{TextArea:f}=r,{RangePicker:T}=n,v=({options:v,labelCol:A,gutter:I=24,span:Y=12,collapse:D=!1,useAutoGenerateRequired:R=!0,initialValues:w})=>{const C=l.useFormInstance(),U=()=>{const e=C.getFieldsValue();return 0===Object.keys(e).length&&w?w:e},M=e=>"function"==typeof e.componentProps?e.componentProps(U()):e.componentProps||{},N=e=>{const r="function"==typeof e.formItemProps?e.formItemProps(U()):e.formItemProps||{};return[h.DATE,h.DATE_MONTH,h.DATE_YEAR,h.DATETIME].includes(e.render)&&(r.getValueFromEvent=(e,r)=>r,r.getValueProps=e=>({value:e?m(e):void 0})),[h.DATE_WEEK].includes(e.render)&&(r.getValueFromEvent=(e,r)=>r,r.getValueProps=e=>({value:e?m(e,"YYYY-wo"):void 0})),[h.DATE_RANGE,h.DATETIME_RANGE].includes(e.render)&&(r.getValueFromEvent=(e,r)=>r,r.getValueProps=e=>({value:Array.isArray(e)?e.map(e=>e?m(e):void 0):void 0})),r},P=e=>"function"==typeof e?e(U()):e??!0,x=e=>{if(e.render===h.DIVIDER)return[];const r=[];switch(e.render||h.INPUT){case h.INPUT:!1!==e.useConstraints&&r.push({max:50,message:"最多输入50字符"});break;case h.TEXTAREA:!1!==e.useConstraints&&r.push({max:500,message:"最多输入500字符"});break;case h.INPUT_NUMBER:case h.NUMBER:!1!==e.useConstraints&&r.push({pattern:/^(\d+)(\.\d{1,2})?$/,message:"请输入正确的数字,最多保留两位小数"}),!1!==e.useConstraints&&r.push({validator:(e,r)=>r&&Math.abs(Number.parseFloat(r))>999999999?Promise.reject("输入数值超出安全范围"):Promise.resolve()})}if(!R)return e.rules?Array.isArray(e.rules)?[...e.rules,...r]:[e.rules,...r]:r;if(P(e.required)){const n=!e.render||[h.INPUT,h.TEXTAREA,h.INPUT_NUMBER,h.NUMBER].includes(e.render);return r.push({required:!0,message:`${n?"请输入":"请选择"}${e.label}`}),e.rules&&(Array.isArray(e.rules)?r.push(...e.rules):r.push(e.rules)),r}return e.rules?Array.isArray(e.rules)?[...e.rules,...r]:[e.rules,...r]:r},g=e=>e.key||e.name,B=e=>{const r=e.render===h.DIVIDER?24:e.span??Y,n=e.labelCol??(24===r?{span:A.span/2}:A);return{span:r,labelCol:n,wrapperCol:e.wrapperCol??{span:24-n.span}}},_=(e,r)=>({value:e[r.valueKey],label:"function"==typeof r.labelKey?r.labelKey(e):e[r.labelKey],disabled:e.disabled}),k=e=>{const l=M(e),s=(e=>({valueKey:e?.itemsField?.valueKey||"bianma",labelKey:e?.itemsField?.labelKey||"name"}))(e),o=e.render||h.INPUT,d=e.placeholder||`请${[h.INPUT,h.TEXTAREA,h.INPUT_NUMBER,h.NUMBER].includes(o)?"输入":"选择"}${e.label}`;switch(o){case h.INPUT:return y(r,{placeholder:d,maxLength:!1!==e.useConstraints?50:9999,...l});case h.TEXTAREA:return y(f,{placeholder:d,maxLength:!1!==e.useConstraints?500:9999,showCount:!0,rows:3,...l});case h.INPUT_NUMBER:case h.NUMBER:return y(c,{placeholder:d,style:{width:"100%"},...l});case h.SELECT:return y(p,{placeholder:d,showSearch:!0,allowClear:!0,optionFilterProp:"children",...l,children:(e.items||[]).map(e=>{const{value:r,label:n,disabled:l}=_(e,s);return y(p.Option,{value:r,disabled:l,children:n},r)})});case h.RADIO:return y(u.Group,{...l,children:(e.items||[]).map(e=>{const{value:r,label:n,disabled:l}=_(e,s);return y(u,{value:r,disabled:l,children:n},r)})});case h.CHECKBOX:return y(i.Group,{...l,children:e.checkboxCol?y(a,{children:(e.items||[]).map(r=>{const{value:n,label:l,disabled:a}=_(r,s);return y(t,{span:e.checkboxCol,children:y(i,{value:n,disabled:a,children:l})},n)})}):(e.items||[]).map(e=>{const{value:r,label:n,disabled:l}=_(e,s);return y(i,{value:r,disabled:l,children:n},r)})});case h.DATE:return y(n,{placeholder:d,format:"YYYY-MM-DD",style:{width:"100%"},...l});case h.DATE_MONTH:return y(n,{picker:"month",placeholder:d,format:"YYYY-MM",style:{width:"100%"},...l});case h.DATE_YEAR:return y(n,{picker:"year",placeholder:d,format:"YYYY",style:{width:"100%"},...l});case h.DATE_WEEK:return y(n,{picker:"week",placeholder:d,format:"YYYY-wo",style:{width:"100%"},...l});case h.DATE_RANGE:return y(T,{placeholder:[`请选择开始${e.label}`,`请选择结束${e.label}`],format:"YYYY-MM-DD",style:{width:"100%"},...l});case h.DATETIME:return y(n,{showTime:!0,placeholder:d,format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...l});case h.DATETIME_RANGE:return y(T,{showTime:!0,placeholder:[`请选择开始${e.label}`,`请选择结束${e.label}`],format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...l});case h.DIVIDER:return null;default:return o}},V=r=>r.tip?b(E,{children:[r.label,y(d,{title:r.tip,children:y(e,{style:{marginLeft:4,fontSize:12}})})]}):r.label,F=({option:e,style:r,col:n,index:s})=>{const a=N(e);return delete a.dependencies,delete a.shouldUpdate,("function"==typeof(o=e.hidden)?o(U()):o)?null:y(t,{span:n.span,style:r,children:y(l.Item,{name:e.name,label:V(e),rules:x(e),labelCol:n.labelCol,wrapperCol:n.wrapperCol,preserve:!1,...a,children:k(e)})},g(e)||s);var o},K=({option:e,style:r,col:n,index:a})=>{const o=M(e);return e.customizeRender?y(t,{span:n.span,style:r,children:e.render},g(e)||a):e.onlyForLabel?y(l.Item,{name:e.name,noStyle:!0,preserve:!1,children:y("input",{type:"hidden"})},g(e)||a):e.render===h.DIVIDER?y(t,{span:n.span,style:r,children:y(s,{orientation:"left",...o,children:e.label})},g(e)||a):null};return y(E,{children:v.map((e,r)=>{const n=B(e),s=(e=>D&&e>=3?{display:"none"}:void 0)(r),d=N(e);return K({option:e,style:s,col:n,index:r})||(e.render===h.FORM_LIST?((e,r,n,s)=>{const d=(e=>{const r={showAddButton:!0,showRemoveButton:!0,addButtonText:"添加",removeButtonText:"删除",options:[],addDefaultValue:{},addInsertIndex:void 0};return"function"==typeof e.formListUniqueProps?{...r,...e.formListUniqueProps(U())}:{...r,...e.formListUniqueProps||{}}})(e),i=M(e);return y(t,{span:n.span,style:s,children:y(l.List,{name:e.name,...i,children:(e,{add:r,remove:n,move:i})=>y(E,{children:e.map((e,u)=>{const p=((e,r,n,l,t,s)=>"function"==typeof e?e(r,n,{field:r,fieldIndex:n,add:l,remove:t,move:s}):e??[])(d.options,e,u,r,n,i);return y(a,{gutter:I,children:p.map((a,i)=>{const c=B(a),m=N(a);delete m.dependencies,delete m.shouldUpdate;const h={option:a,style:s,col:c,index:`${u}_${i}`};return K(h)||(i===p.length-1?y(t,{span:c.span,style:s,children:y(l.Item,{label:V(a),labelCol:c.labelCol,wrapperCol:c.wrapperCol,preserve:!1,required:P(a.required),...m,children:b("div",{style:{display:"flex",gap:10,alignItems:"center",justifyContent:"space-between"},children:[y("div",{style:{flex:1},children:y(l.Item,{noStyle:!0,rules:x(a),name:a.name,children:k(a)})}),u>=1?d.showRemoveButton&&y(o,{type:"primary",danger:!0,onClick:()=>n(e.name),children:d.removeButtonText}):d.showAddButton&&y(o,{type:"primary",onClick:()=>r(d.addDefaultValue,d.addInsertIndex),children:d.addButtonText})]})})},g(a)||i):F(h))})},e.key)})})})},g(e)||r)})(e,r,n,s):(e.shouldUpdate??e.dependencies)||(d.shouldUpdate??d.dependencies)?((e,r,n,t)=>{const s=N(e);return y(l.Item,{noStyle:!0,preserve:!1,shouldUpdate:e.shouldUpdate??s.shouldUpdate,dependencies:e.dependencies??s.dependencies,children:()=>F({option:e,style:n,col:t,index:r})},g(e)||r)})(e,r,s,n):F({option:e,style:s,col:n,index:r}))})})};v.displayName="FormItemsRenderer";export{v as default};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as t,jsxs as e}from"react/jsx-runtime";import{Spin as i,Form as n,Row as o,Col as r,Space as l,Button as s,message as a}from"antd";import{useState as d,useEffect as u}from"react";import{throttle as c}from"throttle-debounce";import p from"./FormItemsRenderer.tsx";const m=m=>{const{values:h,options:g,gutter:w=24,span:x=12,labelCol:y={span:4},useAutoGenerateRequired:b=!0,showActionButtons:f=!0,submitButtonText:B="提交",cancelButtonText:v="取消",showSubmitButton:A=!0,showCancelButton:C=!0,customActionButtons:T,extraActionButtons:F,loading:k=!1,...q}=m,[z,E]=d(window.innerWidth),R=c(50,()=>{const t=document.querySelector("#page-layout");t&&E(t.offsetWidth)});return u(()=>{const t=setTimeout(()=>{R()},0);return f&&window.addEventListener("resize",R),()=>{f&&window.removeEventListener("resize",R),clearTimeout(t)}},[f]),t(i,{spinning:k,children:e(n,{labelCol:y,scrollToFirstError:!0,wrapperCol:{span:24-(y?.span??4)},initialValues:h,onFinishFailed:()=>{a.error("请补全必填项")},style:{width:`calc(100% - ${2*w}px)`,margin:"0 auto"},...q,children:[t(o,{gutter:w,children:t(p,{options:g,labelCol:y,span:x,gutter:w,useAutoGenerateRequired:b,initialValues:h})}),f&&e("div",{style:{position:"relative",zIndex:"9"},children:[t("div",{style:{height:"32px"}}),t(o,{style:{textAlign:"center",backgroundColor:"rgb(241, 241, 242)",padding:"10px 0",position:"fixed",bottom:"0",width:z,margin:"0 -44px"},children:t(r,{span:24,style:{textAlign:"center"},children:T||e(l,{children:[A&&t(s,{type:"primary",htmlType:"submit",children:B}),F,C&&t(s,{onClick:()=>{window.history.back()},children:v})]})})})]})]})})};m.displayName="FormBuilder";export{m as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e,Fragment as r,jsxs as n}from"react/jsx-runtime";import{InfoCircleOutlined as l}from"@ant-design/icons";import{Input as t,DatePicker as s,Form as a,Col as o,Divider as i,Row as d,Button as u,Tooltip as p,Checkbox as c,Radio as m,Select as h,InputNumber as y}from"antd";import E from"dayjs";import{FORM_ITEM_RENDER_ENUM as f}from"../../enum/formItemRender/index.js";const{TextArea:b}=t,{RangePicker:T}=s,v=({options:v,labelCol:A,gutter:I=24,span:Y=12,collapse:D=!1,useAutoGenerateRequired:g=!0,initialValues:R})=>{const w=a.useFormInstance(),P=()=>{const e=w.getFieldsValue();return 0===Object.keys(e).length&&R?R:e},C=e=>"function"==typeof e.componentProps?e.componentProps(P()):e.componentProps||{},M=e=>{const r="function"==typeof e.formItemProps?e.formItemProps(P()):e.formItemProps||{};return[f.DATE,f.DATE_MONTH,f.DATE_YEAR,f.DATETIME].includes(e.render)&&(r.getValueFromEvent=(e,r)=>r,r.getValueProps=e=>({value:e?E(e):void 0})),[f.DATE_WEEK].includes(e.render)&&(r.getValueFromEvent=(e,r)=>r,r.getValueProps=e=>({value:e?E(e,"YYYY-wo"):void 0})),[f.DATE_RANGE,f.DATETIME_RANGE].includes(e.render)&&(r.getValueFromEvent=(e,r)=>r,r.getValueProps=e=>({value:Array.isArray(e)?e.map(e=>e?E(e):void 0):void 0})),r},N=e=>"function"==typeof e?e(P()):e??!0,U=e=>{if(e.render===f.DIVIDER)return[];const r=[];switch(e.render||f.INPUT){case f.INPUT:!1!==e.useConstraints&&r.push({max:50,message:"最多输入50字符"});break;case f.TEXTAREA:!1!==e.useConstraints&&r.push({max:500,message:"最多输入500字符"});break;case f.INPUT_NUMBER:case f.NUMBER:!1!==e.useConstraints&&r.push({pattern:/^(\d+)(\.\d{1,2})?$/,message:"请输入正确的数字,最多保留两位小数"}),!1!==e.useConstraints&&r.push({validator:(e,r)=>r&&Math.abs(Number.parseFloat(r))>999999999?Promise.reject("输入数值超出安全范围"):Promise.resolve()})}if(!g)return e.rules?Array.isArray(e.rules)?[...e.rules,...r]:[e.rules,...r]:r;if(N(e.required)){const n=!e.render||[f.INPUT,f.TEXTAREA,f.INPUT_NUMBER,f.NUMBER].includes(e.render);return r.push({required:!0,message:`${n?"请输入":"请选择"}${e.label}`}),e.rules&&(Array.isArray(e.rules)?r.push(...e.rules):r.push(e.rules)),r}return e.rules?Array.isArray(e.rules)?[...e.rules,...r]:[e.rules,...r]:r},x=e=>e.key||e.name,B=e=>{const r=e.render===f.DIVIDER?24:e.span??Y,n=e.labelCol??(24===r?{span:A?.span/2}:A);return{span:r,labelCol:n,wrapperCol:e.wrapperCol??{span:24-n.span}}},S=(e,r)=>({value:e[r.valueKey],label:"function"==typeof r.labelKey?r.labelKey(e):e[r.labelKey],disabled:e.disabled}),_=r=>{const n=C(r),l=(e=>({valueKey:e?.itemsField?.valueKey||"bianma",labelKey:e?.itemsField?.labelKey||"name"}))(r),a=r.render||f.INPUT,i=[f.INPUT,f.TEXTAREA,f.INPUT_NUMBER,f.NUMBER].includes(a),u=r.placeholder||`请${i?"输入":"选择"}${r.label}`;switch(a){case f.INPUT:return e(t,{placeholder:u,maxLength:!1!==r.useConstraints?50:9999,...n});case f.TEXTAREA:return e(b,{placeholder:u,maxLength:!1!==r.useConstraints?500:9999,showCount:!0,rows:3,...n});case f.INPUT_NUMBER:case f.NUMBER:return e(y,{placeholder:u,style:{width:"100%"},...n});case f.SELECT:return e(h,{placeholder:u,showSearch:!0,allowClear:!0,optionFilterProp:"children",...n,children:(r.items||[]).map(r=>{const{value:n,label:t,disabled:s}=S(r,l);return e(h.Option,{value:n,disabled:s,children:t},String(n))})});case f.RADIO:return e(m.Group,{...n,children:(r.items||[]).map(r=>{const{value:n,label:t,disabled:s}=S(r,l);return e(m,{value:n,disabled:s,children:t},String(n))})});case f.CHECKBOX:return e(c.Group,{...n,children:r.checkboxCol?e(d,{children:(r.items||[]).map(n=>{const{value:t,label:s,disabled:a}=S(n,l);return e(o,{span:r.checkboxCol,children:e(c,{value:t,disabled:a,children:s})},String(t))})}):(r.items||[]).map(r=>{const{value:n,label:t,disabled:s}=S(r,l);return e(c,{value:n,disabled:s,children:t},String(n))})});case f.DATE:return e(s,{placeholder:u,format:"YYYY-MM-DD",style:{width:"100%"},...n});case f.DATE_MONTH:return e(s,{picker:"month",placeholder:u,format:"YYYY-MM",style:{width:"100%"},...n});case f.DATE_YEAR:return e(s,{picker:"year",placeholder:u,format:"YYYY",style:{width:"100%"},...n});case f.DATE_WEEK:return e(s,{picker:"week",placeholder:u,format:"YYYY-wo",style:{width:"100%"},...n});case f.DATE_RANGE:return e(T,{placeholder:[`请选择开始${r.label}`,`请选择结束${r.label}`],format:"YYYY-MM-DD",style:{width:"100%"},...n});case f.DATETIME:return e(s,{showTime:!0,placeholder:u,format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...n});case f.DATETIME_RANGE:return e(T,{showTime:!0,placeholder:[`请选择开始${r.label}`,`请选择结束${r.label}`],format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...n});case f.DIVIDER:return null;default:return a}},k=t=>t.tip?n(r,{children:[t.label,e(p,{title:t.tip,children:e(l,{style:{marginLeft:4,fontSize:12}})})]}):t.label,V=({option:r,style:n,col:l,index:t})=>{if("function"==typeof(s=r.hidden)?s(P()):s)return null;var s;const i=x(r),d=String(null!=i?i:t);return e(o,{span:l.span,style:n,children:e(a.Item,{name:r.name,label:k(r),rules:U(r),labelCol:l.labelCol,wrapperCol:l.wrapperCol,preserve:!1,...M(r),children:_(r)})},d)},F=({option:r,style:n,col:l,index:t})=>{const s=C(r),d=x(r),u=String(null!=d?d:t);return r.customizeRender?e(o,{span:l.span,style:n,children:r.render},u):r.onlyForLabel?e(a.Item,{name:r.name,noStyle:!0,preserve:!1,children:e("input",{type:"hidden"})},u):r.render===f.DIVIDER?e(o,{span:l.span,style:n,children:e(i,{orientation:"left",...s,children:r.label})},u):null};return e(r,{children:v.map((l,t)=>{const s=B(l),i=(e=>D&&e>=3?{display:"none"}:void 0)(t);return F({option:l,style:i,col:s,index:t})||(l.render===f.FORM_LIST?((l,t,s,i)=>{const p=(e=>{const r={showAddButton:!0,showRemoveButton:!0,addButtonText:"添加",removeButtonText:"删除",options:()=>[],addDefaultValue:{},addInsertIndex:void 0};return"function"==typeof e.formListUniqueProps?{...r,...e.formListUniqueProps(P())}:{...r,...e.formListUniqueProps||{}}})(l),c=C(l),m=x(l),h=String(null!=m?m:t);return e(o,{span:s.span,style:i,children:e(a.List,{name:l.name,...c,children:(l,{add:t,remove:s,move:c})=>e(r,{children:l.map((r,l)=>{const m=((e,r,n,l,t,s)=>"function"==typeof e?e(r,n,{field:r,fieldIndex:n,add:l,remove:t,move:s}):e??[])(p.options,r,l,t,s,c);return e(d,{gutter:I,children:m.map((d,c)=>{const h=B(d),y=x(d),E=String(null!=y?y:c),f={option:d,style:i,col:h,index:`${l}_${c}`};return F(f)||(c===m.length-1?e(o,{span:h.span,style:i,children:e(a.Item,{label:k(d),labelCol:h.labelCol,wrapperCol:h.wrapperCol,preserve:!1,required:N(d.required),...M(d),children:n("div",{style:{display:"flex",gap:10,alignItems:"center",justifyContent:"space-between"},children:[e("div",{style:{flex:1},children:e(a.Item,{noStyle:!0,rules:U(d),name:d.name,children:_(d)})}),l>=1?p.showRemoveButton&&e(u,{type:"primary",danger:!0,onClick:()=>s(r.name),children:p.removeButtonText}):p.showAddButton&&e(u,{type:"primary",onClick:()=>t(p.addDefaultValue,p.addInsertIndex),children:p.addButtonText})]})})},E):V(f))})},r.key)})})})},h)})(l,t,s,i):(l.shouldUpdate??l.dependencies)||(l?.componentProps?.shouldUpdate??l?.componentProps?.dependencies)?((r,n,l,t)=>{const s=x(r),o=String(null!=s?s:n);return e(a.Item,{noStyle:!0,preserve:!1,shouldUpdate:r.shouldUpdate??r?.componentProps?.shouldUpdate,dependencies:r.dependencies??r?.componentProps?.dependencies,children:()=>V({option:r,style:l,col:t,index:n})},o)})(l,t,i,s):V({option:l,style:i,col:s,index:t}))})})};v.displayName="FormItemsRenderer";export{v as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import r from"./FormBuilder.tsx";export{r as default};
|