fastlion-amis
Version:
一种MIS页面生成工具
86 lines (85 loc) • 3.73 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.StatusFieldRenderer = exports.StatusField = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var factory_1 = require("../factory");
var tpl_1 = require("../utils/tpl");
var icons_1 = require("../components/icons");
var helper_1 = require("../utils/helper");
var setting_1 = require("../utils/setting");
var StatusField = /** @class */ (function (_super) {
(0, tslib_1.__extends)(StatusField, _super);
function StatusField() {
return _super !== null && _super.apply(this, arguments) || this;
}
StatusField.prototype.render = function () {
var _a = this.props, className = _a.className, placeholder = _a.placeholder, map = _a.map, labelMap = _a.labelMap, cx = _a.classnames, data = _a.data;
var value = (0, helper_1.getPropValue)(this.props);
var viewValue = (react_1.default.createElement("span", { className: "text-muted", key: "status-value" }, placeholder));
var wrapClassName = '';
if (value !== undefined && value !== '' && map) {
if (typeof value === 'boolean') {
value = value ? 1 : 0;
}
else if (/^\d+$/.test(value)) {
value = parseInt(value, 10) || 0;
}
wrapClassName = "StatusField--" + value;
var itemClassName = map[value] || '';
var svgIcon_1 = '';
itemClassName = itemClassName.replace(/\bsvg-([^\s|$]+)\b/g, function (_, icon) {
svgIcon_1 = icon;
return 'icon';
});
if (svgIcon_1) {
viewValue = (react_1.default.createElement(icons_1.Icon, { icon: svgIcon_1, className: cx('Status-icon icon', itemClassName), key: "icon" }));
}
else if (itemClassName) {
viewValue = (react_1.default.createElement("i", { className: cx('Status-icon', itemClassName), key: "icon" }));
}
if (labelMap && labelMap[value]) {
viewValue = [
viewValue,
react_1.default.createElement("span", { className: cx('StatusField-label'), key: "label" }, (0, tpl_1.filter)(labelMap[value], data))
];
}
}
return (react_1.default.createElement("span", { className: cx('StatusField', wrapClassName, className) }, viewValue));
};
StatusField.defaultProps = {
placeholder: setting_1.UserSetting.tableEmptyValueSetting,
map: {
0: 'svg-fail',
1: 'svg-success',
success: 'svg-success',
pending: 'rolling',
fail: 'svg-fail',
queue: 'svg-warning',
schedule: 'svg-schedule'
},
labelMap: {
success: '成功',
pending: '运行中',
fail: '失败',
queue: '排队中',
schedule: '调度中'
}
};
return StatusField;
}(react_1.default.Component));
exports.StatusField = StatusField;
var StatusFieldRenderer = /** @class */ (function (_super) {
(0, tslib_1.__extends)(StatusFieldRenderer, _super);
function StatusFieldRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
StatusFieldRenderer = (0, tslib_1.__decorate)([
(0, factory_1.Renderer)({
type: 'status'
})
], StatusFieldRenderer);
return StatusFieldRenderer;
}(StatusField));
exports.StatusFieldRenderer = StatusFieldRenderer;
//# sourceMappingURL=./renderers/Status.js.map
;