UNPKG

nsn-comp

Version:

NSN核心组件

107 lines (90 loc) 3.78 kB
import "antd/es/popconfirm/style"; import _Popconfirm from "antd/es/popconfirm"; import "antd/es/button/style"; import _Button from "antd/es/button"; import "antd/es/spin/style"; import _Spin from "antd/es/spin"; function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { CloseOutlined } from '@ant-design/icons'; import { NLocale, NType } from 'nsn-util'; import React from 'react'; import { requestPage } from '../../_util'; /** * table 工具栏中的移除按钮 */ var RemoveAction = function RemoveAction(props) { var _newProps$text, _newProps$title; var comp = props.comp; var _comp$props = comp.props, dispatch = _comp$props.dispatch, loading = _comp$props.loading, toolbar = _comp$props.toolbar; var _comp$state$selectedR = comp.state.selectedRows, selectedRows = _comp$state$selectedR === void 0 ? [] : _comp$state$selectedR; // var removeProps = undefined; if (NType.isFunction(toolbar)) { removeProps = toolbar(comp).remove; } else if (toolbar) { removeProps = toolbar.remove; } // var newProps = {}; if (removeProps) { if (NType.isString(removeProps)) { newProps.dtype = removeProps; } else { var _ref = removeProps || {}, onClick = _ref.onClick, text = _ref.text, dtype = _ref.dtype, title = _ref.title, restProps = _objectWithoutProperties(_ref, ["onClick", "text", "dtype", "title"]); newProps.dtype = dtype; newProps.onClick = onClick; newProps.text = text; newProps.restProps = restProps; } } // var removeLoading = false; if (newProps.dtype) { removeLoading = loading.effects[newProps.dtype]; } var removeDom = React.createElement(_Spin, { size: "small", spinning: !!removeLoading }, React.createElement(_Button, Object.assign({ icon: React.createElement(CloseOutlined, null), disabled: removeLoading, danger: true, type: "text" }, newProps.restProps || {}), (_newProps$text = newProps.text) !== null && _newProps$text !== void 0 ? _newProps$text : NLocale.getText('operation.remove'))); ; return removeLoading ? removeDom : React.createElement(_Popconfirm, { placement: "bottomRight", title: (_newProps$title = newProps.title) !== null && _newProps$title !== void 0 ? _newProps$title : NLocale.getText('operation.delete.confirm'), onConfirm: function onConfirm() { if (newProps.onClick) { // 使用自定义事件 newProps.onClick(); } else { if (dispatch && newProps.dtype) { dispatch({ type: newProps.dtype, payload: { id_list: selectedRows.map(function (row) { return row.id; }) }, callback: function callback(_ref2) { var success = _ref2.success; if (success) { requestPage(comp); } } }); } } } }, removeDom); }; export { RemoveAction };