nsn-comp
Version:
NSN核心组件
102 lines (80 loc) • 2.55 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.StatusColumn = void 0;
require("antd/lib/switch/style");
var _switch = _interopRequireDefault(require("antd/lib/switch"));
var _nsnEnum = require("nsn-enum");
var _nsnUtil = require("nsn-util");
var _react = _interopRequireDefault(require("react"));
var _util = require("../../_util");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getToggleNType = function getToggleNType(columnsProps) {
var _ref = columnsProps || {},
status = _ref.status;
var toggleType = undefined;
if (_nsnUtil.NType.isString(status)) {
toggleType = status;
} else if (_nsnUtil.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) {
(0, _util.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.default.createElement(_switch.default, {
size: "small",
loading: toggleLoading && record.id === (toggleRecord === null || toggleRecord === void 0 ? void 0 : toggleRecord.id),
onChange: function onChange() {
return onSubmitStatus(comp, record);
},
checked: _nsnUtil.NStr.isEqual(record['status'], _nsnEnum.StatusEnum.NORMAL)
});
};
exports.StatusColumn = StatusColumn;