UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

79 lines (78 loc) 4.13 kB
"use strict"; 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