zy-react-library 1.1.49 → 1.1.51

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.
@@ -1 +1 @@
1
- import{InfoCircleOutlined as e}from"@ant-design/icons";import{Input as r,DatePicker as l,Form as n,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}=l,v=({options:v,labelCol:A,gutter:I=24,span:Y=12,collapse:D=!1,useAutoGenerateRequired:R=!0,initialValues:w})=>{const C=n.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 l=!e.render||[h.INPUT,h.TEXTAREA,h.INPUT_NUMBER,h.NUMBER].includes(e.render);return r.push({required:!0,message:`${l?"请输入":"请选择"}${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,l=e.labelCol??(24===r?{span:A.span/2}:A);return{span:r,labelCol:l,wrapperCol:e.wrapperCol??{span:24-l.span}}},_=(e,r)=>({value:e[r.valueKey],label:"function"==typeof r.labelKey?r.labelKey(e):e[r.labelKey],disabled:e.disabled}),k=e=>{const n=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,...n});case h.TEXTAREA:return y(f,{placeholder:d,maxLength:!1!==e.useConstraints?500:9999,showCount:!0,rows:3,...n});case h.INPUT_NUMBER:case h.NUMBER:return y(c,{placeholder:d,style:{width:"100%"},...n});case h.SELECT:return y(p,{placeholder:d,showSearch:!0,allowClear:!0,optionFilterProp:"children",...n,children:(e.items||[]).map(e=>{const{value:r,label:l,disabled:n}=_(e,s);return y(p.Option,{value:r,disabled:n,children:l},r)})});case h.RADIO:return y(u.Group,{...n,children:(e.items||[]).map(e=>{const{value:r,label:l,disabled:n}=_(e,s);return y(u,{value:r,disabled:n,children:l},r)})});case h.CHECKBOX:return y(i.Group,{...n,children:e.checkboxCol?y(a,{children:(e.items||[]).map(r=>{const{value:l,label:n,disabled:a}=_(r,s);return y(t,{span:e.checkboxCol,children:y(i,{value:l,disabled:a,children:n})},l)})}):(e.items||[]).map(e=>{const{value:r,label:l,disabled:n}=_(e,s);return y(i,{value:r,disabled:n,children:l},r)})});case h.DATE:return y(l,{placeholder:d,format:"YYYY-MM-DD",style:{width:"100%"},...n});case h.DATE_MONTH:return y(l,{picker:"month",placeholder:d,format:"YYYY-MM",style:{width:"100%"},...n});case h.DATE_YEAR:return y(l,{picker:"year",placeholder:d,format:"YYYY",style:{width:"100%"},...n});case h.DATE_WEEK:return y(l,{picker:"week",placeholder:d,format:"YYYY-wo",style:{width:"100%"},...n});case h.DATE_RANGE:return y(T,{placeholder:[`请选择开始${e.label}`,`请选择结束${e.label}`],format:"YYYY-MM-DD",style:{width:"100%"},...n});case h.DATETIME:return y(l,{showTime:!0,placeholder:d,format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...n});case h.DATETIME_RANGE:return y(T,{showTime:!0,placeholder:[`请选择开始${e.label}`,`请选择结束${e.label}`],format:"YYYY-MM-DD HH:mm:ss",style:{width:"100%"},...n});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:l,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:l.span,style:r,children:y(n.Item,{name:e.name,label:V(e),rules:x(e),labelCol:l.labelCol,wrapperCol:l.wrapperCol,preserve:!1,...a,children:k(e)})},g(e)||s);var o},K=({option:e,style:r,col:l,index:a})=>{const o=M(e);return e.customizeRender?y(t,{span:l.span,style:r,children:e.render},g(e)||a):e.onlyForLabel?y(n.Item,{name:e.name,noStyle:!0,preserve:!1,children:y("input",{type:"hidden"})},g(e)||a):e.render===h.DIVIDER?y(t,{span:l.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 l=B(e),s=(e=>D&&e>=3?{display:"none"}:void 0)(r),d=N(e);return K({option:e,style:s,col:l,index:r})||(e.render===h.FORM_LIST?((e,r,l,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),u=N(e);return delete u.dependencies,delete u.shouldUpdate,y(t,{span:l.span,style:s,children:y(n.List,{name:e.name,...i,children:(e,{add:r,remove:l,move:i})=>y(E,{children:e.map((e,p)=>{const c=((e,r,l,n,t,s)=>"function"==typeof e?e(r,l,{field:r,fieldIndex:l,add:n,remove:t,move:s}):e??[])(d.options,e,p,r,l,i);return y(a,{gutter:I,children:c.map((a,i)=>{const m=B(a),h={option:a,style:s,col:m,index:`${p}_${i}`};return K(h)||(i===c.length-1?y(t,{span:m.span,style:s,children:y(n.Item,{label:V(a),labelCol:m.labelCol,wrapperCol:m.wrapperCol,preserve:!1,required:P(a.required),...u,children:b("div",{style:{display:"flex",gap:10,alignItems:"center",justifyContent:"space-between"},children:[y("div",{style:{flex:1},children:y(n.Item,{noStyle:!0,rules:x(a),name:a.name,children:k(a)})}),p>=1?d.showRemoveButton&&y(o,{type:"primary",danger:!0,onClick:()=>l(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,l,s):(e.shouldUpdate??e.dependencies)||(d.shouldUpdate??d.dependencies)?((e,r,l,t)=>{const s=N(e);return y(n.Item,{noStyle:!0,preserve:!1,shouldUpdate:e.shouldUpdate??s.shouldUpdate,dependencies:e.dependencies??s.dependencies,children:()=>F({option:e,style:l,col:t,index:r})},g(e)||r)})(e,r,s,l):F({option:e,style:s,col:l,index:r}))})})};v.displayName="FormItemsRenderer";export{v 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 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};
@@ -1 +1 @@
1
- import{PlusOutlined as e,VideoCameraAddOutlined as i,UploadOutlined as t}from"@ant-design/icons";import{Upload as n,Modal as o,Button as l,message as r}from"antd";import{useState as s}from"react";import{jsxs as a,Fragment as d,jsx as c}from"react/jsx-runtime";const p=p=>{const{value:u=[],onChange:m,onPreview:f,onRemove:g,onGetRemoveFile:h,beforeUpload:v,maxCount:w,listType:y,accept:x,ratio:$="",showTip:j=!0,multiple:b=!0,size:C,tipContent:T,uploadButtonText:U,fileType:R,...F}=p,[z,L]=s(!1),[B,I]=s(""),M=".jpg,.jpeg,.png",O=".pdf,.doc,.docx",P=".mp4",A=R||(()=>{if(x){if("*"===x)return"document";const e=x.split(",");return e.some(e=>P.split(",").includes(e))?"video":e.some(e=>O.split(",").includes(e))?"document":e.some(e=>M.split(",").includes(e))?"image":"document"}return"image"})(),D="image"===A,G="video"===A,N="document"===A,S=y||("*"===x?"text":"image"===A?"picture-card":"text"),W=x?"*"===x?"":x:D?M:G?P:N?O:M,k=w||(G?1:D||N?4:1),q=C||(G?100:10),E=U||(G?"上传视频":"上传附件"),H=W.replace(/\./g,"").split(",").join("、"),J=()=>T||`${[`最多上传${k}个文件`,W?`并且只能上传${H}格式的文件`:"可以上传任意格式的文件",q?`文件大小不能超过${q}M`:"",$?`只能上传${$}分辨率的图片`:""].filter(Boolean).join(",")}。`,K=D?c("div",{children:c(e,{style:{fontSize:32}})}):c(l,{type:"primary",icon:c(G?i:t,{}),children:E});return a(d,{children:[c(n,{fileList:u,multiple:b,maxCount:k,listType:S,accept:W,onChange:({file:e,fileList:i})=>{const t=W?W.split(","):[],n=$?$.split("*"):[],o=e.name.substring(e.name.lastIndexOf("."),e.name.length),l=1024*q*1024;if(t.length>0&&!t.includes(o)){r.warning(`只能上传${H}格式的文件`);const t=i.filter(i=>i.uid!==e.uid);return void m?.(t)}if(l&&e.size>l){r.warning(`文件大小不能超过${q}M`);const t=i.filter(i=>i.uid!==e.uid);return void m?.(t)}if(2===n.length&&e.type?.startsWith("image/")){const t=t=>{const o=new Image;o.onload=()=>{if(o.width!==+n[0]||o.height!==+n[1]){r.warning(`只能上传${$}分辨率的图片`);const t=i.filter(i=>i.uid!==e.uid);return void m?.(t)}m?.(i)},o.src=t};if(e.url)t(e.url);else{const i=new FileReader;i.onload=e=>{t(e.target.result)},i.readAsDataURL(e)}}else m?.(i)},onPreview:e=>{D&&(I(e.url||e.thumbUrl),L(!0)),f?.(e)},onRemove:e=>(e.originFileObj||h?.(e),g?.(e)),beforeUpload:(e,i)=>!!v&&v(e,i),...F,children:u.length>=k?null:K}),j?J()&&c("div",{style:{marginTop:10,color:"#ff4d4f"},children:J()}):null,c(o,{open:z,title:"查看图片",footer:null,onCancel:()=>{L(!1)},children:c("img",{alt:"preview",style:{width:"100%",objectFit:"scale-down"},src:B})})]})};p.displayName="Upload";export{p as default};
1
+ import{PlusOutlined as e,VideoCameraAddOutlined as n,UploadOutlined as t}from"@ant-design/icons";import{Upload as i,Modal as o,Button as r,message as l}from"antd";import{useState as a,useRef as s}from"react";import{jsxs as d,Fragment as c,jsx as u}from"react/jsx-runtime";const p=p=>{const{value:m=[],onChange:g,onPreview:h,onRemove:f,onGetRemoveFile:w,beforeUpload:v,maxCount:y,listType:$,accept:x,ratio:j="",showTip:F=!0,multiple:b=!0,size:C,tipContent:T,uploadButtonText:U,fileType:R,...P}=p,[z,L]=a(!1),[O,B]=a(""),I=s(new Set),M=".jpg,.jpeg,.png",S=".pdf,.doc,.docx",A=".mp4",D=R||(()=>{if(x){if("*"===x)return"document";const e=x.split(",");return e.some(e=>A.split(",").includes(e))?"video":e.some(e=>S.split(",").includes(e))?"document":e.some(e=>M.split(",").includes(e))?"image":"document"}return"image"})(),G="image"===D,N="video"===D,W="document"===D,k=$||("*"===x?"text":"image"===D?"picture-card":"text"),q=x?"*"===x?"":x:G?M:N?A:W?S:M,E=y||(N?1:G||W?4:1),H=C||(N?100:10),J=U||(N?"上传视频":"上传附件"),K=q.replace(/\./g,"").split(",").join("、"),Q=()=>T||`${[`最多上传${E}个文件`,q?`并且只能上传${K}格式的文件`:"可以上传任意格式的文件",H?`文件大小不能超过${H}M`:"",j?`只能上传${j}分辨率的图片`:""].filter(Boolean).join(",")}。`,V=G?u("div",{children:u(e,{style:{fontSize:32}})}):u(r,{type:"primary",icon:u(N?n:t,{}),children:J});return d(c,{children:[u(i,{fileList:m,multiple:b,maxCount:E,listType:k,accept:q,onChange:({fileList:e})=>{console.log(e);const n=q?q.split(","):[],t=j?j.split("*"):[],i=1024*H*1024;(async e=>{const o=[],r=[];for(const a of e){const e=a.name?.substring(a.name.lastIndexOf("."),a.name.length)||"";if(n.length>0&&!n.includes(e))r.push(a),I.current.has(a.uid)||(I.current.add(a.uid),l.warning(`${a.name}:只能上传${K}格式的文件`));else if(i&&a.size>i)r.push(a),I.current.has(a.uid)||(I.current.add(a.uid),l.warning(`${a.name}:文件大小不能超过${H}M`));else{if(2===t.length&&a.type?.startsWith("image/")){const e=e=>new Promise(n=>{const i=new Image;i.onload=()=>{const e=i.width===+t[0]&&i.height===+t[1];e||I.current.has(a.uid)||(I.current.add(a.uid),l.warning(`${a.name}:只能上传${j}分辨率的图片`)),n(e)},i.onerror=()=>n(!1),i.src=e});if(!(a.url?await e(a.url):await new Promise(n=>{const t=new FileReader;t.onload=t=>{e(t.target.result).then(n)},t.onerror=()=>n(!1),t.readAsDataURL(a.originFileObj)}))){r.push(a);continue}}o.push(a)}}return{validFiles:o,invalidFiles:r}})(e).then(({validFiles:e})=>{g?.(e)})},onPreview:e=>{G&&(B(e.url||e.thumbUrl),L(!0)),h?.(e)},onRemove:e=>(I.current.delete(e.uid),e.originFileObj||w?.(e),f?.(e)),beforeUpload:(e,n)=>!!v&&v(e,n),...P,children:m.length>=E?null:V}),F?Q()&&u("div",{style:{marginTop:10,color:"#ff4d4f"},children:Q()}):null,u(o,{open:z,title:"查看图片",footer:null,onCancel:()=>{L(!1)},children:u("img",{alt:"preview",style:{width:"100%",objectFit:"scale-down"},src:O})})]})};p.displayName="Upload";export{p 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.49",
4
+ "version": "1.1.51",
5
5
  "type": "module",
6
6
  "description": "",
7
7
  "author": "LiuJiaNan",