app-base-web
Version:
web development common base package.
1 lines • 13.1 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var _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),_input=require("antd/lib/input"),_input2=_interopRequireDefault(_input),_form=require("antd/lib/form"),_form2=_interopRequireDefault(_form),_upload=require("antd/lib/upload"),_upload2=_interopRequireDefault(_upload),_button=require("antd/lib/button"),_button2=_interopRequireDefault(_button),_popconfirm=require("antd/lib/popconfirm"),_popconfirm2=_interopRequireDefault(_popconfirm),_tooltip=require("antd/lib/tooltip"),_tooltip2=_interopRequireDefault(_tooltip),_message2=require("antd/lib/message"),_message3=_interopRequireDefault(_message2),_slicedToArray=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],r=!0,n=!1,l=void 0;try{for(var o,i=e[Symbol.iterator]();!(r=(o=i.next()).done)&&(a.push(o.value),!t||a.length!==t);r=!0);}catch(e){n=!0,l=e}finally{try{!r&&i.return&&i.return()}finally{if(n)throw l}}return a}(e,t);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}}();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/input/style/css"),require("antd/lib/form/style/css"),require("antd/lib/upload/style/css"),require("antd/lib/button/style/css"),require("antd/lib/popconfirm/style/css"),require("antd/lib/tooltip/style/css"),require("antd/lib/message/style/css");var _react=require("react"),_react2=_interopRequireDefault(_react),_antd=require("antd"),_utilDate=require("../util-date"),_utilDate2=_interopRequireDefault(_utilDate),_utilAxios=require("../util-axios"),_utilAxios2=_interopRequireDefault(_utilAxios);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _asyncToGenerator(e){return function(){var i=e.apply(this,arguments);return new Promise(function(l,o){return function t(e,a){try{var r=i[e](a),n=r.value}catch(e){return void o(e)}if(!r.done)return Promise.resolve(n).then(function(e){t("next",e)},function(e){t("throw",e)});l(n)}("next")})}}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 _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)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}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(),UploadFile=function(){function t(e){_classCallCheck(this,t);var n=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.onDel=function(a){n.state.data.map(function(e,t){a.uid===e.uid&&n.state.data.splice(t,1)}),n.setState({data:[].concat(_toConsumableArray(n.state.data))},n.onChange)},n.onChange=function(){n.props.onChange&&n.props.onChange(JSON.stringify(n.state.data))},n.download=function(e,t){var a=document.createElement("a");a.setAttribute("target","_bank"),a.setAttribute("href",t),a.setAttribute("download",e),a.click(),console.log(a),a=null},n.onDownload=function(){if(n.state.data.length<1)_message3.default.info("没有附件下载!");else for(var e=0;e<n.state.data.length;e++)n.state.data[e].response&&n.state.data[e].response.data?n.download(n.state.data[e].fileName,n.state.data[e].response.data):_message3.default.error(n.state.data[e].fileName+"无下载地址,下载失败")},n.onSubmit=function(a){var e,r,t=a.files;t&&0!==t.fileList.length?(e=t.fileList,r=[],e&&e.length&&(e.map(function(e,t){r.push({uid:e.uid,fileName:e.name,fileDesc:a["memo"+t],fileSize:e.size,uploadTime:e.lastModifiedDate,path:e.response.data,businessType:n.props.businessType||"",type:n.props.type||"",subType:n.props.subType||""})}),n.formRef.current.resetFields()),n.setState({visible:!1,uploadInfo:[],data:[].concat(_toConsumableArray(n.state.data),r)},n.onChange)):_message3.default.info("文件为空,无法提交!")},n.state={data:n.props.data||[],pagination:"",visible:!1,loading:!1,uploadInfo:[],type:n.props.type||"left"},n.columns=[{title:"序号",dataIndex:"id",width:100,render:function(e,t,a){return a+1}},{title:"文件名",dataIndex:"fileName",onCell:function(){return{style:{maxWidth:200,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:"pointer"}}},render:function(e,t){return _react2.default.createElement(_tooltip2.default,{placement:"top",title:e},_react2.default.createElement("a",{href:t.response&&t.response.data||"",target:"_blank"},e))}},{title:"描述",dataIndex:"fileDesc",editable:!0,onCell:function(){return{style:{maxWidth:200,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:"pointer"}}},render:function(e){return _react2.default.createElement(_tooltip2.default,{placement:"top",title:e},e)}},{title:"大小(kb)",dataIndex:"fileSize",width:100,render:function(e){return _react2.default.createElement("span",null,(e/1024).toFixed(2))}},{title:"上传时间",dataIndex:"uploadTime",width:100,render:function(e){return _react2.default.createElement("span",null,_utilDate2.default.format(e))}},{title:"上传人",dataIndex:"uploadedBy",width:100,render:function(){return _react2.default.createElement("span",null,_utilAxios2.default.getUser().name)}},{title:"操作",width:100,align:"center",fixed:"right",render:function(e,t){return _react2.default.createElement("ul",null,_react2.default.createElement("li",null,_react2.default.createElement("a",{onClick:function(){return console.log("update",t)}},_react2.default.createElement("i",{className:"iconfont icon-reload"}))),_react2.default.createElement("li",null,_react2.default.createElement(_popconfirm2.default,{placement:"topRight",title:"确认删除该文件吗?",onConfirm:function(){return n.onDel(t)}},_react2.default.createElement("a",null,_react2.default.createElement("i",{className:"iconfont icon-del"})))))}}],n.formRef=_react2.default.createRef(),n}return _inherits(t,_react2.default.Component),_createClass(t,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){e.value!==this.props.data&&this.setState({data:JSON.parse(e.value)})}},{key:"render",value:function(){var r=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(a){r.state.data.map(function(e,t){a.uid===e.uid&&(e.memo=a.memo)}),r.setState({data:r.state.data},r.onChange)}}}}):t}),a={scroll:{y:this.props.height||300},size:"middle",rowKey:"uid",columns:t,components:e,rowClassName:function(){return"editable-row"},onRow:function(e){return{onClick:function(){r.setState({selectedRowId:e.uid})}}},dataSource:this.state.data,pagination:!1,loading:this.state.loading,onChange:function(){console.log("table----onchange")}},n={name:"file",multiple:!0,listType:"picture",action:"https://fastdfs.7ipr.com/ipr/fastdfs/upload",headers:{authorization:"authorization-text"},onRemove:function(a){console.log(a),r.state.uploadInfo.map(function(e,t){e.uid===a.uid&&r.state.uploadInfo.splice(t,1)}),r.setState({uploadInfo:r.state.uploadInfo})},onChange:function(e){e.file.status,"done"===e.file.status?(e.fileList.map(function(e){e.memo=""}),r.setState({uploadInfo:[].concat(_toConsumableArray(e.fileList))}),_message3.default.success(e.file.name+" 上传成功")):"error"===e.file.status&&_message3.default.error(e.file.name+" 上传失败")}};return _react2.default.createElement("div",{className:"uploadfile"},_react2.default.createElement(_modal2.default,{title:"上传文件",centered:!0,bodyStyle:{maxHeight:"400px",overflow:"auto"},visible:this.state.visible,onCancel:function(){return r.setState({visible:!1})},footer:[_react2.default.createElement(_button2.default,{key:"back",className:"btn-cancel",onClick:function(){r.setState({visible:!1})}},_react2.default.createElement("i",{className:"iconfont icon-cancel"}),"取消"),_react2.default.createElement(_button2.default,{key:"submit",className:"btn-submit",onClick:function(){return r.formRef.current.submit()}},_react2.default.createElement("i",{className:"iconfont icon-submit"}),"提交")]},_react2.default.createElement(_form2.default,{ref:this.formRef,layout:"vertical",onFinish:this.onSubmit},_react2.default.createElement(_form2.default.Item,{name:"files",label:"上传文件",initialValue:this.state.files},_react2.default.createElement(_upload2.default.Dragger,n,_react2.default.createElement("i",{className:"iconfont icon-upload",style:{fontSize:"40px"}}))),0<this.state.uploadInfo.length&&this.state.uploadInfo.map(function(e,t){return _react2.default.createElement(_form2.default.Item,{key:e.uid,name:"memo"+t,label:'文件 "'+e.name+'" 描述',initialValue:e.memo,rules:[{required:!0,message:"请填写描述!"}]},_react2.default.createElement(_input2.default,null))}))),_react2.default.createElement("div",{style:{marginBottom:"14px"}},"between"===this.state.type&&_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 r.setState({visible:!0})}},_react2.default.createElement("i",{className:"iconfont icon-upload"}),"上传新附件"))),"left"===this.state.type&&_react2.default.createElement(_row2.default,{justify:"space-between"},_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("hr",{style:{marginBottom:"10px",background:"#DDDDDD"}})),_react2.default.createElement(_col2.default,null,_react2.default.createElement(_button2.default,{className:"btn-upload",style:{marginRight:"10px"},onClick:function(){return r.setState({visible:!0})}},_react2.default.createElement("i",{className:"iconfont icon-upload"}),"添加附件"),_react2.default.createElement(_button2.default,{className:"btn-export",onClick:this.onDownload},_react2.default.createElement("i",{className:"iconfont icon-export"}),"批量下载")))),_react2.default.createElement(_table2.default,a))}}]),t}();exports.default=UploadFile;var EditableRow=function(e){e.index;var t=_objectWithoutProperties(e,["index"]),a=_form2.default.useForm(),r=_slicedToArray(a,1)[0];return _react2.default.createElement(_form2.default,{form:r,component:!1},_react2.default.createElement(EditableContext.Provider,{value:r},_react2.default.createElement("tr",t)))},EditableCell=function(e){var t=e.title,a=e.editable,r=e.children,n=e.dataIndex,l=e.record,o=e.handleSave,i=_objectWithoutProperties(e,["title","editable","children","dataIndex","record","handleSave"]),u=(0,_react.useState)(!1),c=_slicedToArray(u,2),s=c[0],d=c[1],f=(0,_react.useRef)(),p=(0,_react.useContext)(EditableContext);(0,_react.useEffect)(function(){s&&f.current.focus()},[s]);function m(){d(!s),p.setFieldsValue(_defineProperty({},n,l[n]))}var _,b=(_=_asyncToGenerator(regeneratorRuntime.mark(function e(t){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,p.validateFields();case 3:a=e.sent,m(),o(_extends({},l,a)),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]])})),function(e){return _.apply(this,arguments)}),h=r;return a&&(h=s?_react2.default.createElement(_form2.default.Item,{style:{margin:0},name:n,rules:[{required:!0,message:t+"不可为空."}]},_react2.default.createElement(_input2.default,{ref:f,onPressEnter:b,onBlur:b})):_react2.default.createElement("div",{className:"editable-cell-value-wrap",style:{paddingRight:24},onClick:m},r)),_react2.default.createElement("td",i,h)};