zy-react-library 1.1.30 → 1.1.31

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.
@@ -14,6 +14,8 @@ export interface OptionItem {
14
14
  bianma?: any;
15
15
  /** 名称字段 */
16
16
  name?: string;
17
+ /** 是否禁用 */
18
+ disabled?: boolean;
17
19
  [key: string]: any;
18
20
  }
19
21
 
@@ -1 +1 @@
1
- import{InfoCircleOutlined as e}from"@ant-design/icons";import{Input as r,DatePicker as n,Form as t,Col as l,Divider as o,Row as s,Button as a,Tooltip as i,Checkbox as d,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 f,jsxs as E}from"react/jsx-runtime";const{TextArea:T}=r,{RangePicker:b}=n,A=({options:A,labelCol:I,gutter:v=24,span:Y=12,collapse:D=!1,useAutoGenerateRequired:P=!0,initialValues:R})=>{const w=t.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,K=e=>{const r=e.render===h.DIVIDER?24:e.span??Y,n=e.labelCol??(24===r?{span:I.span/2}:I);return{span:r,labelCol:n,wrapperCol:e.wrapperCol??{span:24-n.span}}},B=e=>{const t=U(e),o=(e=>({valueKey:e?.itemsField?.valueKey||"bianma",labelKey:e?.itemsField?.labelKey||"name"}))(e),a=e.render||h.INPUT,i=e.placeholder||`请${[h.INPUT,h.TEXTAREA,h.INPUT_NUMBER,h.NUMBER].includes(a)?"输入":"选择"}${e.label}`;switch(a){case h.INPUT:return y(r,{placeholder:i,maxLength:50,...t});case h.TEXTAREA:return y(T,{placeholder:i,maxLength:500,showCount:!0,rows:3,...t});case h.INPUT_NUMBER:case h.NUMBER:return y(c,{placeholder:i,style:{width:"100%"},...t});case h.SELECT:return y(u,{placeholder:i,showSearch:!0,allowClear:!0,optionFilterProp:"children",...t,children:(e.items||[]).map(e=>{const r=e[o.valueKey],n=e["function"==typeof o.labelKey?o.labelKey(e):o.labelKey];return y(u.Option,{value:r,children:n},r)})});case h.RADIO:return y(p.Group,{...t,children:(e.items||[]).map(e=>{const r=e[o.valueKey],n=e["function"==typeof o.labelKey?o.labelKey(e):o.labelKey];return y(p,{value:r,children:n},r)})});case h.CHECKBOX:return y(d.Group,{...t,children:e.checkboxCol?y(s,{children:(e.items||[]).map(r=>{const n=r[o.valueKey],t=r["function"==typeof o.labelKey?o.labelKey(r):o.labelKey];return y(l,{span:e.checkboxCol,children:y(d,{value:n,children:t})},n)})}):(e.items||[]).map(e=>{const r=e[o.valueKey],n=e["function"==typeof o.labelKey?o.labelKey(e):o.labelKey];return y(d,{value:r,children:n},r)})});case h.DATE:return y(n,{placeholder:i,format:"YYYY-MM-DD",style:{width:"100%"},...t});case h.DATE_MONTH:return y(n,{picker:"month",placeholder:i,format:"YYYY-MM",style:{width:"100%"},...t});case h.DATE_YEAR:return y(n,{picker:"year",placeholder:i,format:"YYYY",style:{width:"100%"},...t});case h.DATE_WEEK:return y(n,{picker:"week",placeholder:i,format:"YYYY-wo",style:{width:"100%"},...t});case h.DATE_RANGE:return y(b,{placeholder:[`请选择开始${e.label}`,`请选择结束${e.label}`],format:"YYYY-MM-DD",style:{width:"100%"},...t});case h.DATETIME:return y(n,{showTime:!0,placeholder:i,format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...t});case h.DATETIME_RANGE:return y(b,{showTime:!0,placeholder:[`请选择开始${e.label}`,`请选择结束${e.label}`],format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...t});case h.DIVIDER:return null;default:return a}},_=r=>r.tip?E(f,{children:[r.label,y(i,{title:r.tip,children:y(e,{style:{marginLeft:4,fontSize:12}})})]}):r.label,k=({option:e,style:r,col:n,index:o})=>{return("function"==typeof(s=e.hidden)?s(C()):s)?null:y(l,{span:n.span,style:r,children:y(t.Item,{name:e.name,label:_(e),rules:x(e),labelCol:n.labelCol,wrapperCol:n.wrapperCol,preserve:!1,...M(e),children:B(e)})},g(e)||o);var s},V=({option:e,style:r,col:n,index:s})=>{const a=U(e);return e.customizeRender?y(l,{span:n.span,style:r,children:e.render},g(e)||s):e.onlyForLabel?y(t.Item,{name:e.name,noStyle:!0,preserve:!1,children:y("input",{type:"hidden"})},g(e)||s):e.render===h.DIVIDER?y(l,{span:n.span,style:r,children:y(o,{orientation:"left",...a,children:e.label})},g(e)||s):null};return y(f,{children:A.map((e,r)=>{const n=K(e),o=(e=>D&&e>=3?{display:"none"}:void 0)(r);return V({option:e,style:o,col:n,index:r})||(e.render===h.FORM_LIST?((e,r,n,o)=>{const i=(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),d=U(e);return y(l,{span:n.span,style:o,children:y(t.List,{name:e.name,...d,children:(r,{add:n,remove:d,move:p})=>y(f,{children:r.map((r,u)=>{const c=((e,r,n,t,l,o)=>"function"==typeof e?e(r,n,{field:r,fieldIndex:n,add:t,remove:l,move:o}):e??[])(e.formListUniqueProps.options,r,u,n,d,p);return y(s,{gutter:v,children:c.map((e,s)=>{const p=K(e),m={option:e,style:o,col:p,index:`${u}_${s}`};return V(m)||(s===c.length-1?y(l,{span:p.span,style:o,children:y(t.Item,{label:_(e),labelCol:p.labelCol,wrapperCol:p.wrapperCol,preserve:!1,required:N(e.required),...M(e),children:E("div",{style:{display:"flex",gap:10,alignItems:"center",justifyContent:"space-between"},children:[y("div",{style:{flex:1},children:y(t.Item,{noStyle:!0,rules:x(e),name:e.name,children:B(e)})}),u>=1?i.showRemoveButton&&y(a,{type:"primary",danger:!0,onClick:()=>d(r.name),children:i.removeButtonText}):i.showAddButton&&y(a,{type:"primary",onClick:()=>n(i.addDefaultValue,i.addInsertIndex),children:i.addButtonText})]})})},g(e)||s):k(m))})},r.key)})})})},g(e)||r)})(e,r,n,o):(e.shouldUpdate??e.dependencies)||(e?.componentProps?.shouldUpdate??e?.componentProps?.dependencies)?((e,r,n,l)=>y(t.Item,{noStyle:!0,preserve:!1,shouldUpdate:e.shouldUpdate??e?.componentProps?.shouldUpdate,dependencies:e.dependencies??e?.componentProps?.dependencies,children:()=>k({option:e,style:n,col:l,index:r})},g(e)||r))(e,r,o,n):k({option:e,style:o,col:n,index:r}))})})};A.displayName="FormItemsRenderer";export{A as default};
1
+ import{InfoCircleOutlined as e}from"@ant-design/icons";import{Input as r,DatePicker as n,Form as l,Col as t,Divider as o,Row as s,Button as a,Tooltip as i,Checkbox as d,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 f,jsxs as E}from"react/jsx-runtime";const{TextArea:b}=r,{RangePicker:T}=n,A=({options:A,labelCol:I,gutter:v=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,K=e=>{const r=e.render===h.DIVIDER?24:e.span??Y,n=e.labelCol??(24===r?{span:I.span/2}:I);return{span:r,labelCol:n,wrapperCol:e.wrapperCol??{span:24-n.span}}},B=e=>{const l=U(e),o=(e=>({valueKey:e?.itemsField?.valueKey||"bianma",labelKey:e?.itemsField?.labelKey||"name"}))(e),a=e.render||h.INPUT,i=e.placeholder||`请${[h.INPUT,h.TEXTAREA,h.INPUT_NUMBER,h.NUMBER].includes(a)?"输入":"选择"}${e.label}`;switch(a){case h.INPUT:return y(r,{placeholder:i,maxLength:50,...l});case h.TEXTAREA:return y(b,{placeholder:i,maxLength:500,showCount:!0,rows:3,...l});case h.INPUT_NUMBER:case h.NUMBER:return y(c,{placeholder:i,style:{width:"100%"},...l});case h.SELECT:return y(u,{placeholder:i,showSearch:!0,allowClear:!0,optionFilterProp:"children",...l,children:(e.items||[]).map(e=>{const r=e[o.valueKey],n=e["function"==typeof o.labelKey?o.labelKey(e):o.labelKey],l=e[o.disabled];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 r=e[o.valueKey],n=e["function"==typeof o.labelKey?o.labelKey(e):o.labelKey],l=e[o.disabled];return y(p,{value:r,disabled:l,children:n},r)})});case h.CHECKBOX:return y(d.Group,{...l,children:e.checkboxCol?y(s,{children:(e.items||[]).map(r=>{const n=r[o.valueKey],l=r["function"==typeof o.labelKey?o.labelKey(r):o.labelKey],s=r[o.disabled];return y(t,{span:e.checkboxCol,children:y(d,{value:n,disabled:s,children:l})},n)})}):(e.items||[]).map(e=>{const r=e[o.valueKey],n=e["function"==typeof o.labelKey?o.labelKey(e):o.labelKey],l=e[o.disabled];return y(d,{value:r,disabled:l,children:n},r)})});case h.DATE:return y(n,{placeholder:i,format:"YYYY-MM-DD",style:{width:"100%"},...l});case h.DATE_MONTH:return y(n,{picker:"month",placeholder:i,format:"YYYY-MM",style:{width:"100%"},...l});case h.DATE_YEAR:return y(n,{picker:"year",placeholder:i,format:"YYYY",style:{width:"100%"},...l});case h.DATE_WEEK:return y(n,{picker:"week",placeholder:i,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:i,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 a}},_=r=>r.tip?E(f,{children:[r.label,y(i,{title:r.tip,children:y(e,{style:{marginLeft:4,fontSize:12}})})]}):r.label,k=({option:e,style:r,col:n,index:o})=>{return("function"==typeof(s=e.hidden)?s(C()):s)?null:y(t,{span:n.span,style:r,children:y(l.Item,{name:e.name,label:_(e),rules:x(e),labelCol:n.labelCol,wrapperCol:n.wrapperCol,preserve:!1,...M(e),children:B(e)})},g(e)||o);var s},V=({option:e,style:r,col:n,index:s})=>{const a=U(e);return e.customizeRender?y(t,{span:n.span,style:r,children:e.render},g(e)||s):e.onlyForLabel?y(l.Item,{name:e.name,noStyle:!0,preserve:!1,children:y("input",{type:"hidden"})},g(e)||s):e.render===h.DIVIDER?y(t,{span:n.span,style:r,children:y(o,{orientation:"left",...a,children:e.label})},g(e)||s):null};return y(f,{children:A.map((e,r)=>{const n=K(e),o=(e=>D&&e>=3?{display:"none"}:void 0)(r);return V({option:e,style:o,col:n,index:r})||(e.render===h.FORM_LIST?((e,r,n,o)=>{const i=(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),d=U(e);return y(t,{span:n.span,style:o,children:y(l.List,{name:e.name,...d,children:(r,{add:n,remove:d,move:p})=>y(f,{children:r.map((r,u)=>{const c=((e,r,n,l,t,o)=>"function"==typeof e?e(r,n,{field:r,fieldIndex:n,add:l,remove:t,move:o}):e??[])(e.formListUniqueProps.options,r,u,n,d,p);return y(s,{gutter:v,children:c.map((e,s)=>{const p=K(e),m={option:e,style:o,col:p,index:`${u}_${s}`};return V(m)||(s===c.length-1?y(t,{span:p.span,style:o,children:y(l.Item,{label:_(e),labelCol:p.labelCol,wrapperCol:p.wrapperCol,preserve:!1,required:N(e.required),...M(e),children:E("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:B(e)})}),u>=1?i.showRemoveButton&&y(a,{type:"primary",danger:!0,onClick:()=>d(r.name),children:i.removeButtonText}):i.showAddButton&&y(a,{type:"primary",onClick:()=>n(i.addDefaultValue,i.addInsertIndex),children:i.addButtonText})]})})},g(e)||s):k(m))})},r.key)})})})},g(e)||r)})(e,r,n,o):(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:()=>k({option:e,style:n,col:t,index:r})},g(e)||r))(e,r,o,n):k({option:e,style:o,col:n,index:r}))})})};A.displayName="FormItemsRenderer";export{A as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zy-react-library",
3
3
  "private": false,
4
- "version": "1.1.30",
4
+ "version": "1.1.31",
5
5
  "type": "module",
6
6
  "description": "",
7
7
  "author": "LiuJiaNan",