fastlion-amis
Version:
一种MIS页面生成工具
79 lines (78 loc) • 4.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MenuRenderer = exports.MenuList = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var factory_1 = require("../../../factory");
var Scoped_1 = require("../../../Scoped");
var MenuList = /** @class */ (function (_super) {
(0, tslib_1.__extends)(MenuList, _super);
function MenuList(props) {
var _this = _super.call(this, props) || this;
var keyField = props.keyField, defaultData = props.defaultData;
_this.state = {
activeKey: Array.isArray(defaultData) ? defaultData.length > 0 ? defaultData[keyField] : undefined : undefined,
items: Array.isArray(defaultData) ? defaultData : []
};
return _this;
}
MenuList.prototype.componentDidMount = function () {
var _this = this;
var _a = this.props, api = _a.api, env = _a.env, keyField = _a.keyField, onAction = _a.onAction, itemAction = _a.itemAction;
if (api) {
env.fetcher(api).then(function (res) {
var items = res.data.items;
if (res.ok && Array.isArray(items)) {
if (items.length > 0) {
_this.setState({ items: items, activeKey: items[0][keyField] });
onAction(undefined, itemAction, items[0], undefined, _this.context);
}
}
});
}
};
MenuList.prototype.handleClickItem = function (e, ctx) {
var _a = this.props, itemAction = _a.itemAction, onAction = _a.onAction, keyField = _a.keyField;
this.setState({ activeKey: ctx[keyField] });
onAction(e, itemAction, ctx, undefined, this.context);
};
MenuList.prototype.render = function () {
var _this = this;
var _a = this.state, activeKey = _a.activeKey, items = _a.items;
var _b = this.props, header = _b.header, keyField = _b.keyField, iconField = _b.iconField, labelField = _b.labelField;
return (react_1.default.createElement("div", { className: 'menu-list' },
react_1.default.createElement("div", { className: 'menu-list-header' }, header),
react_1.default.createElement("div", { className: 'menu-list-body' }, items.map(function (item) {
var _a;
return (react_1.default.createElement("div", { key: item[keyField], className: "menu-list-body-item " + (item[keyField] == activeKey ? 'menu-list-body-item-selected' : ''), onClick: function (e) { return _this.handleClickItem(e, item); } },
react_1.default.createElement("i", { className: "menu-list-body-item-icon " + ((_a = item[iconField !== null && iconField !== void 0 ? iconField : '']) !== null && _a !== void 0 ? _a : 'fa fa-folder') }),
react_1.default.createElement("span", { className: 'menu-list-body-item-title' }, item[labelField])));
}))));
};
return MenuList;
}(react_1.default.Component));
exports.MenuList = MenuList;
var MenuRenderer = /** @class */ (function (_super) {
(0, tslib_1.__extends)(MenuRenderer, _super);
function MenuRenderer(props, context) {
var _this = _super.call(this, props) || this;
var scoped = context;
scoped.registerComponent(_this);
return _this;
}
MenuRenderer.prototype.componentWillUnmount = function () {
var scoped = this.context;
scoped.unRegisterComponent(this);
};
var _a;
MenuRenderer.contextType = Scoped_1.ScopedContext;
MenuRenderer = (0, tslib_1.__decorate)([
(0, factory_1.Renderer)({
type: 'menu-list'
}),
(0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (_a = typeof Scoped_1.IScopedContext !== "undefined" && Scoped_1.IScopedContext) === "function" ? _a : Object])
], MenuRenderer);
return MenuRenderer;
}(MenuList));
exports.MenuRenderer = MenuRenderer;
//# sourceMappingURL=./renderers/Lion/MenuList/index.js.map