nsn-comp
Version:
NSN核心组件
107 lines (90 loc) • 3.78 kB
JavaScript
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 };