UNPKG

app-base-react

Version:
1 lines 5.67 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _button=require("antd/lib/button"),_button2=_interopRequireDefault(_button),_upload=require("antd/lib/upload"),_upload2=_interopRequireDefault(_upload),_message2=require("antd/lib/message"),_message3=_interopRequireDefault(_message2),_createClass=function(){function r(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(e,t,i){return t&&r(e.prototype,t),i&&r(e,i),e}}(),_antd=(require("antd/lib/button/style/css"),require("antd/lib/upload/style/css"),require("antd/lib/message/style/css"),require("antd")),_react=require("react"),_react2=_interopRequireDefault(_react),_utilAxios=require("../util-axios"),_utilAxios2=_interopRequireDefault(_utilAxios),_utilString=require("../util-string"),_utilString2=_interopRequireDefault(_utilString);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var File=function(){function t(e){_classCallCheck(this,t);e=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return e.isImageUrl=function(e){return"image/tiff"!==e.type&&!!(e.type&&0<=e.type.indexOf("image"))},e.compatibleWithPath=function(e){return e&&Array.isArray(e)&&0<e.length&&e.map(function(e){"path"in e&&(e.url=e.path),"fileName"in e&&!e.name&&(e.name=e.fileName),"name"in e&&!e.fileName&&(e.fileName=e.name)}),e},e.state={fileList:"[]",listType:e.props.listType||"picture",maxCount:e.props.maxCount,accept:e.props.accept||"",openPdf:e.props.openPdf||!0},e}return _inherits(t,_react2.default.Component),_createClass(t,[{key:"componentDidMount",value:function(){this.props.onRef&&this.props.onRef(this)}},{key:"onChange",value:function(e){var t=(t=[].concat(_toConsumableArray(e.fileList))).map(function(e){return e.response&&(e.url=e.response.data,e.uploadedBy=e.uploadedBy||_utilAxios2.default.getUser().name,delete e.thumbUrl,delete e.lastModifiedDate,delete e.originFileObj,delete e.response),e});"error"!==e.file.status?(t=t&&JSON.stringify(t),this.props.onChange?this.props.onChange(t="[]"===t?"":t):this.setState({fileList:t})):_message3.default.error(e.file.name+" 文件上传失败.")}},{key:"render",value:function(){var e,t,a=this,i=[],r=!0;try{i=JSON.parse(this.props.fileList||this.state.fileList),i=this.compatibleWithPath(i),r=this.props.multiple&&!0,(i=i&&!r&&0<i.length?[i.pop()]:i)instanceof Object||(i=0<(e=(i=this.props.fileList).lastIndexOf("attname="))?(t=i.substring(e+"attname=".length),[{uid:_utilString2.default.uuid(),lastModified:1581676081373,name:t,size:692032,type:"image/png",percent:100,status:"done",uploadedBy:_utilAxios2.default.getUser().name,xhr:{},url:this.props.fileList}]):[])}catch(e){for(var n=this.props.fileList.split(","),s=0;s<n.length;s++){var o,l,u=n[s];0<u.lastIndexOf("attname=")?(o=u.lastIndexOf("attname="),o=u.substring(o+"attname=".length),i.push({uid:_utilString2.default.uuid(),lastModified:1581676081373,name:o,size:692032,type:"image/png",percent:100,status:"done",xhr:{},uploadedBy:_utilAxios2.default.getUser().name,url:u})):0<u.lastIndexOf("/")?(o=u.lastIndexOf("/"),l=u.substring(o+1),i.push({uid:_utilString2.default.uuid(),lastModified:1581676081373,name:l,size:692032,type:"image/png",percent:100,status:"done",xhr:{},uploadedBy:_utilAxios2.default.getUser().name,url:u})):i=[]}}return _react2.default.createElement(_upload2.default,{disabled:"true"==this.props.hide,className:this.props.cls||"app-upload",isImageUrl:this.isImageUrl,action:this.props.action||_utilAxios2.default.config().uploadPath,multiple:r,onChange:this.onChange.bind(this),fileList:i,listType:this.state.listType,maxCount:this.state.maxCount,beforeUpload:function(e){if(e){if(60<e.size/1024/1024)return _message3.default.warn("对不起,您上传的文件大小不能超过60M,请重新选择文件并确保其大小符合要求,谢谢!"),_upload2.default.LIST_IGNORE;var e=e.name,t=e.substring(e.lastIndexOf(".")).toLowerCase(),e=a.state.accept||".doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.pdf,.zip,.gz,.rar,.jpg,.jpeg,.png,.jpe,.bmp,.mp3,.mp4,.avi,.rmvb,.mkv,.dat,.webp";if(e){var i=e.split(","),r=!0;if(i.map(function(e){e===t&&(r=!1)}),r)return _message3.default.warn("文件上传只支持如下格式:"+e),_upload2.default.LIST_IGNORE}}return!0},onPreview:function(e){var t;a.state.openPdf&&("application/pdf"===e.type||/\.pdf$/.test(e.name))?(t=e.url+"&download=false",console.log(t,"pdfUrl"),window.open(t)):window.open(e.url)}},_react2.default.createElement(_button2.default,{style:{display:"true"==this.props.hide?"none":""}},_react2.default.createElement("i",{className:"iconfont icon-upload"}),this.props.buttonText||"上传"),_react2.default.createElement("i",{style:{display:"true"==this.props.hide?"none":""}},"   提示:本系统限制上传文件大小最大为60M。"))}}]),t}();exports.default=File;