zy-react-library 1.1.46 → 1.1.47
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.
|
@@ -119,7 +119,7 @@ export interface FormOption<T extends keyof FORM_ITEM_RENDER_TYPE_MAP = keyof FO
|
|
|
119
119
|
/** 是否仅用于保存标签,不渲染到页面上,只在表单中保存数据,默认 false */
|
|
120
120
|
onlyForLabel?: boolean;
|
|
121
121
|
/** Form.List 独有的属性 */
|
|
122
|
-
formListUniqueProps?: FormListUniqueProps;
|
|
122
|
+
formListUniqueProps?: FormListUniqueProps | ((formValues: FormValues) => FormListUniqueProps);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InfoCircleOutlined as e}from"@ant-design/icons";import{Input as r,DatePicker as n,Form as l,Col as t,Divider 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 p,Select as u,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 f}from"react/jsx-runtime";const{TextArea:b}=r,{RangePicker:T}=n,v=({options:v,labelCol:A,gutter:I=24,span:Y=12,collapse:D=!1,useAutoGenerateRequired:P=!0,initialValues:R})=>{const w=l.useFormInstance(),C=()=>{const e=w.getFieldsValue();return 0===Object.keys(e).length&&R?R:e},U=e=>"function"==typeof e.componentProps?e.componentProps(C()):e.componentProps||{},M=e=>{const r="function"==typeof e.formItemProps?e.formItemProps(C()):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},N=e=>"function"==typeof e?e(C()):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(!P)return e.rules?Array.isArray(e.rules)?[...e.rules,...r]:[e.rules,...r]:r;if(N(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=U(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(b,{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(u,{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(u.Option,{value:r,disabled:l,children:n},r)})});case h.RADIO:return y(p.Group,{...l,children:(e.items||[]).map(e=>{const{value:r,label:n,disabled:l}=_(e,s);return y(p,{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?f(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})=>{return("function"==typeof(a=e.hidden)?a(C()):a)?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,...M(e),children:k(e)})},g(e)||s);var a},K=({option:e,style:r,col:n,index:a})=>{const o=U(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);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(C())}:{...r,...e.formListUniqueProps||{}}})(e),i=U(e);return y(t,{span:n.span,style:s,children:y(l.List,{name:e.name,...i,children:(r,{add:n,remove:i,move:p})=>y(E,{children:r.map((r,u)=>{const c=((e,r,n,l,t,s)=>"function"==typeof e?e(r,n,{field:r,fieldIndex:n,add:l,remove:t,move:s}):e??[])(e.formListUniqueProps.options,r,u,n,i,p);return y(a,{gutter:I,children:c.map((e,a)=>{const p=B(e),m={option:e,style:s,col:p,index:`${u}_${a}`};return K(m)||(a===c.length-1?y(t,{span:p.span,style:s,children:y(l.Item,{label:V(e),labelCol:p.labelCol,wrapperCol:p.wrapperCol,preserve:!1,required:N(e.required),...M(e),children:f("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(e),name:e.name,children:k(e)})}),u>=1?d.showRemoveButton&&y(o,{type:"primary",danger:!0,onClick:()=>i(r.name),children:d.removeButtonText}):d.showAddButton&&y(o,{type:"primary",onClick:()=>n(d.addDefaultValue,d.addInsertIndex),children:d.addButtonText})]})})},g(e)||a):F(m))})},r.key)})})})},g(e)||r)})(e,r,n,s):(e.shouldUpdate??e.dependencies)||(e?.componentProps?.shouldUpdate??e?.componentProps?.dependencies)?((e,r,n,t)=>y(l.Item,{noStyle:!0,preserve:!1,shouldUpdate:e.shouldUpdate??e?.componentProps?.shouldUpdate,dependencies:e.dependencies??e?.componentProps?.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};
|