UNPKG

app-base-react

Version:
1 lines 6.63 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _table=require("antd/lib/table"),_table2=_interopRequireDefault(_table),_button=require("antd/lib/button"),_button2=_interopRequireDefault(_button),_popconfirm=require("antd/lib/popconfirm"),_popconfirm2=_interopRequireDefault(_popconfirm),_input=require("antd/lib/input"),_input2=_interopRequireDefault(_input),_regenerator=require("babel-runtime/regenerator"),_regenerator2=_interopRequireDefault(_regenerator),_form=require("antd/lib/form"),_form2=_interopRequireDefault(_form),_createClass=function(){function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r,n=arguments[t];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_slicedToArray=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e)){var r=t,n=[],a=!0,t=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!r||n.length!==r);a=!0);}catch(e){t=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(t)throw o}}return n}throw new TypeError("Invalid attempt to destructure non-iterable instance")},_react=(require("antd/lib/table/style/css"),require("antd/lib/button/style/css"),require("antd/lib/popconfirm/style/css"),require("antd/lib/input/style/css"),require("antd/lib/form/style/css"),require("react")),_react2=_interopRequireDefault(_react),_antd=require("antd"),_icons=require("@ant-design/icons");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}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)}function _asyncToGenerator(e){return function(){var l=e.apply(this,arguments);return new Promise(function(o,i){return function t(e,r){try{var n=l[e](r),a=n.value}catch(e){return void i(e)}if(!n.done)return Promise.resolve(a).then(function(e){t("next",e)},function(e){t("throw",e)});o(a)}("next")})}}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _objectWithoutProperties(e,t){var r,n={};for(r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var EditableContext=_react2.default.createContext(),EditableRow=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 n(){s(!d),b.setFieldsValue(_defineProperty({},i,l[i]))}function t(e){return r.apply(this,arguments)}var r,a=e.editable,o=e.children,i=e.dataIndex,l=e.record,u=e.handleSave,e=_objectWithoutProperties(e,["title","editable","children","dataIndex","record","handleSave"]),c=(0,_react.useState)(!1),c=_slicedToArray(c,2),d=c[0],s=c[1],c=(0,_react.useState)(""),c=_slicedToArray(c,2),f=c[0],_=c[1],p=(0,_react.useRef)(),b=(0,_react.useContext)(EditableContext),m=((0,_react.useEffect)(function(){d&&(p.current.focus(),m(p.current))},[d]),function(e){_(e.input.value)}),c=(r=_asyncToGenerator(_regenerator2.default.mark(function e(t){var r;return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,b.validateFields();case 3:r=e.sent,n(),u(_extends({},l,r),f),e.next=10;break;case 8:e.prev=8,e.t0=e.catch(0);case 10:case"end":return e.stop()}},e,void 0,[[0,8]])})),o);return a&&(c=d?_react2.default.createElement(_form2.default.Item,{style:{margin:0},name:i},_react2.default.createElement(_input2.default,{ref:p,onPressEnter:t,onBlur:t})):_react2.default.createElement("div",{style:{paddingRight:24,display:"flex",alignItems:"center",justifyContent:"space-between"},onClick:n},o,_react2.default.createElement(_icons.EditOutlined,null))),_react2.default.createElement("td",e,c)},EditableTable=function(){function t(e){_classCallCheck(this,t);var o=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return o.handleDelete=function(t){var e=[].concat(_toConsumableArray(o.state.dataSource));o.setState({dataSource:e.filter(function(e){return e.paramValue!==t})})},o.handleAdd=function(){var e=o.state.dataSource;o.setState({dataSource:[].concat(_toConsumableArray(e),[{paramValue:""}])})},o.handleSave=function(e,t){var r=[].concat(_toConsumableArray(o.state.dataSource)),n=-1,a=(t&&(n=r.findIndex(function(e){return t===e.paramValue})),r[n]);r.splice(n,1,_extends({},a,e)),o.setState({dataSource:r})},o.columns=[{title:"接收者邮箱",dataIndex:"paramValue",width:"80%",editable:!0},{title:"操作",dataIndex:"operation",width:"20%",render:function(e,t){return 1<=o.state.dataSource.length?_react2.default.createElement(_popconfirm2.default,{title:"确定删除吗?",onConfirm:function(){return o.handleDelete(t.paramValue)}},_react2.default.createElement("a",null,"删除")):null}}],o.state={dataSource:o.props.dataSource||[]},o}return _inherits(t,_react2.default.Component),_createClass(t,[{key:"render",value:function(){var r=this,e=this.state.dataSource,t={body:{row:EditableRow,cell:EditableCell}},n=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:r.handleSave}}}):t});return _react2.default.createElement("div",null,_react2.default.createElement(_button2.default,{onClick:this.handleAdd,type:"primary",style:{marginBottom:16}},"新增行"),_react2.default.createElement(_table2.default,{components:t,rowClassName:function(){return"editable-row"},bordered:!0,dataSource:e,columns:n,pagination:!1,scroll:{y:300}}))}}]),t}();exports.default=EditableTable;