UNPKG

app-base-react

Version:
1 lines 17.5 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _input=require("antd/lib/input"),_input2=_interopRequireDefault(_input),_configProvider=require("antd/lib/config-provider"),_configProvider2=_interopRequireDefault(_configProvider),_table=require("antd/lib/table"),_table2=_interopRequireDefault(_table),_row=require("antd/lib/row"),_row2=_interopRequireDefault(_row),_col=require("antd/lib/col"),_col2=_interopRequireDefault(_col),_modal=require("antd/lib/modal"),_modal2=_interopRequireDefault(_modal),_form=require("antd/lib/form"),_form2=_interopRequireDefault(_form),_button=require("antd/lib/button"),_button2=_interopRequireDefault(_button),_upload=require("antd/lib/upload"),_upload2=_interopRequireDefault(_upload),_switch=require("antd/lib/switch"),_switch2=_interopRequireDefault(_switch),_popconfirm=require("antd/lib/popconfirm"),_popconfirm2=_interopRequireDefault(_popconfirm),_tooltip=require("antd/lib/tooltip"),_tooltip2=_interopRequireDefault(_tooltip),_regenerator=require("babel-runtime/regenerator"),_regenerator2=_interopRequireDefault(_regenerator),_message2=require("antd/lib/message"),_message3=_interopRequireDefault(_message2),_slicedToArray=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e)){var a=t,r=[],n=!0,t=!1,i=void 0;try{for(var l,o=e[Symbol.iterator]();!(n=(l=o.next()).done)&&(r.push(l.value),!a||r.length!==a);n=!0);}catch(e){t=!0,i=e}finally{try{!n&&o.return&&o.return()}finally{if(t)throw i}}return r}throw new TypeError("Invalid attempt to destructure non-iterable instance")},_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a,r=arguments[t];for(a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_createClass=function(){function r(e,t){for(var a=0;a<t.length;a++){var r=t[a];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(e,t,a){return t&&r(e.prototype,t),a&&r(e,a),e}}(),_icons=(require("antd/lib/input/style/css"),require("antd/lib/config-provider/style/css"),require("antd/lib/table/style/css"),require("antd/lib/row/style/css"),require("antd/lib/col/style/css"),require("antd/lib/modal/style/css"),require("antd/lib/form/style/css"),require("antd/lib/button/style/css"),require("antd/lib/upload/style/css"),require("antd/lib/switch/style/css"),require("antd/lib/popconfirm/style/css"),require("antd/lib/tooltip/style/css"),require("antd/lib/message/style/css"),require("@ant-design/icons")),_antd=require("antd"),_zh_CN=require("antd/lib/locale/zh_CN"),_zh_CN2=_interopRequireDefault(_zh_CN),_react=require("react"),_react2=_interopRequireDefault(_react),_jquery=require("../jquery"),_jquery2=_interopRequireDefault(_jquery),_utilAxios=require("../util-axios"),_utilAxios2=_interopRequireDefault(_utilAxios),_utilDate=require("../util-date"),_utilDate2=_interopRequireDefault(_utilDate),_jszip=require("jszip"),_jszip2=_interopRequireDefault(_jszip),_axios=require("axios"),_axios2=_interopRequireDefault(_axios);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function _objectWithoutProperties(e,t){var a,r={};for(a in e)0<=t.indexOf(a)||Object.prototype.hasOwnProperty.call(e,a)&&(r[a]=e[a]);return r}function _asyncToGenerator(e){return function(){var o=e.apply(this,arguments);return new Promise(function(i,l){return function t(e,a){try{var r=o[e](a),n=r.value}catch(e){return void l(e)}if(!r.done)return Promise.resolve(n).then(function(e){t("next",e)},function(e){t("throw",e)});i(n)}("next")})}}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}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)}require("./style");var EditableContext=_react2.default.createContext(null),UploadTable=function(){function a(e){var t=this,l=(_classCallCheck(this,a),_possibleConstructorReturn(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e)));return l.addFileName=function(e,t){return e&&"string"==typeof e?-1<e.indexOf("?attname=")?e:e+"?filename="+t:""},l.onDel=function(a){l.state.data.map(function(e,t){a.uid===e.uid&&l.state.data.splice(t,1)}),l.setState({data:[].concat(_toConsumableArray(l.state.data))},function(){return l.onChange()})},l.onChange=function(){l.props.onChange&&l.props.onChange(JSON.stringify(l.state.data))},l.onDownload=_asyncToGenerator(_regenerator2.default.mark(function e(){return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(l.state.data.length<1)return _message3.default.info("没有附件下载!"),e.abrupt("return");e.next=3;break;case 3:console.log(l.state.data,"this.state.data2"),l.downloadZip(l.state.data);case 5:case"end":return e.stop()}},e,t)})),l.makeForm=function(e){var t,a,r=document.createElement("form");for(t in document.body.appendChild(r),e)void 0!==e[t]&&Object.hasOwnProperty.call(e,t)&&((a=document.createElement("input")).type="hidden",a.name=t,a.value=e[t],r.appendChild(a));r.method="POST",r.target="_blank",r.action=l.state.downloadUrl,r.style="display:none",r.submit(),document.body.removeChild(r)},l.downloadZip=function(e){var a=[],a=e.map(function(e){return e.path}),r=new _jszip2.default;Promise.all(a.map(function(e){return _axios2.default.get(e,{responseType:"blob"})})).then(function(e){e.forEach(function(e,t){t=a[t],t=new URL(t),t=new URLSearchParams(t.search).get("attname");r.file(t,e.data)}),r.generateAsync({type:"blob"}).then(function(e){var t=document.createElement("a");t.href=URL.createObjectURL(e),t.download="填报文档清单.zip",t.click()})}).catch(function(e){console.error(e)})},l.onSubmit=function(n){var i,e=n.files;console.log(n),e&&0!==e.fileList.length?(e=(e=e.fileList).filter(function(e){return!!e.status}),i=[],e&&e.length&&(e.map(function(e,t){var a=[],r=(n["fileDesc3"+t]&&n["fileDesc3"+t].fileList.map(function(e){a.push({uid:e.uid,fileName:e.name,fileSize:e.size,uploadTime:new Date,path:e.response.data})}),l.state.data.length+t);i.push({uid:e.uid,fileName:e.name,fileDesc1:n["fileDesc1"+t]||"填报申报文档"+(r+1),fileDesc2:n["fileDesc2"+t],fileDesc3:a,fileSize:e.size,uploadTime:new Date,uploadedBy:_utilAxios2.default.getUser().name,uniqueCode:_utilAxios2.default.getUser().code,path:e.response.data,businessType:l.props.businessType||"",type:l.props.type||"",subType:l.props.subType||"",suffix:e.name?e.name.split(".")[1]:""})}),l.formRef.current.resetFields()),e=l.state.data||[],l.setState({visible:!1,uploadInfo:[],data:[].concat(_toConsumableArray(e),i)},function(){return l.onChange()})):_message3.default.info("文件为空,无法提交!")},l.state={data:l.props.value?JSON.parse(l.props.value):[],pagination:"",visible:!1,loading:!1,uploadInfo:[],isView:l.props.isView,position:l.props.position||"left",parentId:l.props.parentId||"",disabled:l.props.disabled||"",downloadUrl:l.props.downloadUrl||_utilAxios2.default.config().serverPath+"IssueDoc/loadByFileStr",uploadUrl:l.props.uploadUrl||_utilAxios2.default.config().uploadPath,canUpload:l.props.canUpload||"",isUsed:l.props.isUsed||!1,isUsedText:l.props.isUsedText||"设为使用证据",accept:l.props.accept||".doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.pdf,.zip,.gz,.rar,.jpg,.jpeg,.png,.jpe,.bmp,.mp3,.mp4,.avi,.rmvb,.mkv,.dat"},l.columns=[{title:"序号",dataIndex:"id",width:100,render:function(e,t,a){return a+1}},{title:"文档名称",dataIndex:"fileDesc1",editable:!l.props.disabled,align:"left",ellipsis:{showTitle:!1},render:function(e){return _react2.default.createElement(_tooltip2.default,{placement:"topLeft",title:e},e)}},{title:"形式要求",dataIndex:"fileDesc2",editable:!l.props.disabled,align:"left",ellipsis:{showTitle:!1},render:function(e){return _react2.default.createElement(_tooltip2.default,{placement:"topLeft",title:e},e)}},{title:"示例文档",dataIndex:"fileName",align:"left",ellipsis:!0,render:function(e,t){var a=(a=e?e.split(".")[1]:"").toLowerCase();return!e||"jpg"!==a&&"png"!==a&&"gif"!==a&&"jpeg"!==a&&"pdf"!==a?_react2.default.createElement("span",null,_react2.default.createElement("a",{href:l.addFileName(t.path,t.fileName),download:t.fileName,target:"_blank"},e)):_react2.default.createElement("span",null,_react2.default.createElement("a",{href:l.addFileName(t.path,t.fileName),download:t.fileName,target:"_blank"},e),_react2.default.createElement(_icons.SearchOutlined,{style:{marginLeft:"4px",color:"coral"},onClick:function(){return l.onSee(t.path,t.fileName)}}))}},{title:"上传时间",dataIndex:"uploadTime",align:"left",width:180,render:function(e,t){return _utilDate2.default.format(e)}},{title:"上传人",dataIndex:"uploadedBy",align:"left",width:100},{title:"操作",width:100,align:"center",fixed:"right",render:function(e,t){return _react2.default.createElement("ul",{style:{minHeight:"50px",display:"flex",alignItems:"center",justifyContent:"center"}},_react2.default.createElement("li",null,_react2.default.createElement("a",{onClick:function(){}},_react2.default.createElement("i",{className:"iconfont icon-reload"}))),_utilAxios2.default.getUser().code===t.uniqueCode?_react2.default.createElement("li",null,_react2.default.createElement(_popconfirm2.default,{getPopupContainer:function(e){return document.body},placement:"topLeft",title:"确认删除该文件吗?",onConfirm:function(){return l.onDel(t)}},_react2.default.createElement("a",null,_react2.default.createElement("i",{className:"iconfont icon-del"})))):"")}}],l.formRef=_react2.default.createRef(),l}return _inherits(a,_react2.default.Component),_createClass(a,[{key:"componentDidMount",value:function(){var e,t;(0,_jquery2.default)(window).resize(),this.props.value&&JSON.parse(this.props.value)&&JSON.parse(this.props.value).length&&(e=JSON.parse(this.props.value),t=[],e.forEach(function(e){e.name&&e.size?t.push({uid:e.uid,fileName:e.name,fileDesc1:e.fileDesc1,fileDesc2:e.fileDesc2,fileDesc3:e.fileDesc3,fileSize:e.size,uploadTime:_utilDate2.default.getDate(new Date(e.lastModified)),uploadedBy:e.uploadedBy||"-",path:e.url}):e.fileName&&e.fileSize&&t.push(e)}),this.setState({data:t}))}},{key:"onSee",value:function(e){window.open(e+"?openStyle=inline")}},{key:"render",value:function(){var l=this,e={body:{row:EditableRow,cell:EditableCell}},t=this.columns.map(function(t){return t.editable?_extends({},t,{onCell:function(e){return{record:e,editable:t.editable,dataIndex:t.dataIndex,title:t.title,handleSave:function(t){var e=[].concat(_toConsumableArray(l.state.data)),a=e.findIndex(function(e){return t.uid===e.uid}),r=e[a];e.splice(a,1,_extends({},r,t)),l.setState({data:e},function(){return l.onChange()})}}}}):t}),t=(this.state.disabled&&t.splice(-1,1),this.state.isUsed&&t.splice(t.length,0,{title:this.state.isUsedText,dataIndex:"isUsedProve",align:"left",width:100,render:function(e,t){return _react2.default.createElement(_switch2.default,{checked:e,onChange:function(e){return l.props.getIsUsedProve(_extends({},t,{isUsedProve:e}))}})}}),{scroll:{y:this.props.height||300},size:"middle",rowKey:"uid",columns:t,components:e,rowClassName:function(){return"editable-row"},onRow:function(t){return{onClick:function(e){l.setState({selectedRowId:t.uid})}}},dataSource:this.state.data,pagination:!1,loading:this.state.loading}),e={name:"file",multiple:!0,listType:"picture",action:this.state.uploadUrl,headers:{authorization:"authorization-text"},onRemove:function(a){l.state.uploadInfo.map(function(e,t){e.uid===a.uid&&l.state.uploadInfo.splice(t,1)}),l.setState({uploadInfo:l.state.uploadInfo})},beforeUpload:function(t){var a=!0;if(t){var e=t.name,r=e.substring(e.lastIndexOf(".")).toLowerCase(),e=l.state.accept;if(e){var n=e.split(","),i=!0;if(n.map(function(e){e===r&&(i=!1)}),i)return _message3.default.warn("文件上传只支持如下格式:"+e),_upload2.default.LIST_IGNORE}}return l.state.uploadInfo&&l.state.uploadInfo.length&&l.state.uploadInfo.map(function(e){if(e.name===t.name)return _message3.default.error(e.name+" 文件已存在"),a=!1}),l.state.data&&l.state.data.length&&l.state.data.map(function(e){if(e.fileName===t.name)return _message3.default.error(e.fileName+" 文件已存在"),a=!1}),a},onChange:function(e){var t=e.fileList.filter(function(e){return!!e.status});e.file.status,"done"===e.file.status?(t.map(function(e){e.fileDesc1="",e.fileDesc2="",e.fileDesc3=[]}),l.setState({uploadInfo:[].concat(_toConsumableArray(t))}),_message3.default.success(e.file.name+" 上传成功")):"error"===e.file.status&&_message3.default.error(e.file.name+" 上传失败")}};this.state.uploadUrl;return _react2.default.createElement(_configProvider2.default,{locale:_zh_CN2.default},_react2.default.createElement("div",{className:"upload_table uploadfile"},_react2.default.createElement(_modal2.default,{title:"上传文件",centered:!0,bodyStyle:{maxHeight:"400px",overflow:"auto"},visible:this.state.visible,onCancel:function(){return l.setState({visible:!1})},footer:[_react2.default.createElement(_button2.default,{key:"back",className:"btn-cancel",onClick:function(){l.setState({visible:!1})}},_react2.default.createElement("i",{className:"iconfont icon-cancel"}),"取消"),_react2.default.createElement(_button2.default,{key:"submit",className:"btn-submit",onClick:function(){return l.formRef.current.submit()}},_react2.default.createElement("i",{className:"iconfont icon-submit"}),"提交")]},_react2.default.createElement(_form2.default,{ref:this.formRef,layout:"vertical",onFinish:this.onSubmit},0<this.state.uploadInfo.length&&this.state.uploadInfo.map(function(e,t){return _react2.default.createElement(_react.Fragment,null)}),_react2.default.createElement(_form2.default.Item,{name:"files",label:"示例文档上传",valuePropName:"files",initialValue:this.state.files},_react2.default.createElement(_upload2.default.Dragger,e,_react2.default.createElement("i",{className:"iconfont icon-upload",style:{fontSize:"40px"}}),_react2.default.createElement("i",null,"   提示:本系统限制上传文件大小最大为60M。"))))),this.state.isView?"":_react2.default.createElement("div",{style:{marginBottom:"14px"}},"between"===this.state.position&&_react2.default.createElement(_row2.default,{justify:"space-between"},_react2.default.createElement(_col2.default,{xs:6,style:{color:"#666666"}},this.props.title||相关附件),_react2.default.createElement(_col2.default,null,_react2.default.createElement(_button2.default,{className:"btn-upload",onClick:function(){return l.setState({visible:!0})}},_react2.default.createElement("i",{className:"iconfont icon-upload"}),"上传新附件"))),"left"===this.state.position&&_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,null,!this.state.disabled||this.state.canUpload?_react2.default.createElement(_button2.default,{className:this.props.className||"btn-upload",style:{marginRight:"10px"},onClick:function(){return l.setState({visible:!0})}},_react2.default.createElement("i",{className:"iconfont icon-upload"}),this.props.title||"添加附件"):"",this.state.data&&1<this.state.data.length?_react2.default.createElement(_button2.default,{className:"btn-export",onClick:this.onDownload},_react2.default.createElement("i",{className:"iconfont icon-export"}),"批量下载"):""))),_react2.default.createElement(_table2.default,t)))}}]),a}(),EditableRow=(exports.default=UploadTable,function(e){e.index;var e=_objectWithoutProperties(e,["index"]),t=_form2.default.useForm(),t=_slicedToArray(t,1)[0];return _react2.default.createElement(_form2.default,{form:t,component:!1},_react2.default.createElement(EditableContext.Provider,{value:t},_react2.default.createElement("tr",e)))}),EditableCell=function(e){e.title;function a(){d(!c),p.setFieldsValue(_defineProperty({},l,o[l]))}function t(){return r.apply(this,arguments)}var r,n=e.editable,i=e.children,l=e.dataIndex,o=e.record,u=e.handleSave,e=_objectWithoutProperties(e,["title","editable","children","dataIndex","record","handleSave"]),s=(0,_react.useState)(!1),s=_slicedToArray(s,2),c=s[0],d=s[1],f=(0,_react.useRef)(null),p=(0,_react.useContext)(EditableContext),s=((0,_react.useEffect)(function(){c&&f.current.focus()},[c]),r=_asyncToGenerator(_regenerator2.default.mark(function e(){var t;return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,p.validateFields();case 3:t=e.sent,a(),u(_extends({},o,t)),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),console.log("Save failed:",e.t0);case 11:case"end":return e.stop()}},e,void 0,[[0,8]])})),i);return n&&(s=c?_react2.default.createElement(_form2.default.Item,{style:{margin:0},name:l},_react2.default.createElement(_input2.default,{ref:f,onPressEnter:t,onBlur:t})):_react2.default.createElement("div",{className:"editable-cell-value-wrap",style:{paddingRight:24},onClick:a},i)),_react2.default.createElement("td",e,s)};