UNPKG

nsn-comp

Version:

NSN核心组件

88 lines (74 loc) 2.21 kB
import "antd/es/switch/style"; import _Switch from "antd/es/switch"; import { StatusEnum } from "nsn-enum"; import { NStr, NType } from "nsn-util"; import React from "react"; import { refreshStatus } from '../../_util'; var getToggleNType = function getToggleNType(columnsProps) { var _ref = columnsProps || {}, status = _ref.status; var toggleType = undefined; if (NType.isString(status)) { toggleType = status; } else if (NType.isNotUndefined(status)) { toggleType = status === null || status === void 0 ? void 0 : status.dtype; } return toggleType; }; var onSubmitStatus = function onSubmitStatus(comp, record) { // 此状态设置,为了渲染表格行StatusColumn中的loading状态 comp.setState({ record: record }); // var _comp$props = comp.props, dispatch = _comp$props.dispatch, table = _comp$props.table; var columnsProps = table.columnsProps; var toggleType = getToggleNType(columnsProps); if (dispatch && toggleType) { dispatch({ message: { success: true }, type: toggleType, payload: { id: record.id }, callback: function callback(_ref2) { var success = _ref2.success; comp.setState({ record: undefined }); if (success) { refreshStatus(comp, record); } } }); } }; /** * 渲染状态列 */ var StatusColumn = function StatusColumn(props) { var comp = props.comp, record = props.record; var toggleRecord = comp.state.record; var _comp$props2 = comp.props, table = _comp$props2.table, loading = _comp$props2.loading; var columnsProps = table.columnsProps; var toggleType = getToggleNType(columnsProps); // var toggleLoading = false; if (toggleType) { toggleLoading = loading.effects[toggleType]; } return React.createElement(_Switch, { size: "small", loading: toggleLoading && record.id === (toggleRecord === null || toggleRecord === void 0 ? void 0 : toggleRecord.id), onChange: function onChange() { return onSubmitStatus(comp, record); }, checked: NStr.isEqual(record['status'], StatusEnum.NORMAL) }); }; export { StatusColumn };