UNPKG

wiz-frameworks

Version:

wizlong react framework

132 lines (116 loc) 4.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /** * 解析路由格式 * @author mll * @date 2019-9-24 */ var _utils = require('../utils'); var _createDynamicRoutes = require('./createDynamicRoutes'); var _createDynamicRoutes2 = _interopRequireDefault(_createDynamicRoutes); var _core = require('./core'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * 构建路由主要方法 * @param {*} app * @param {*} rotues */ exports['default'] = function (app) { var rotues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; if (!rotues || rotues.length === 0) { (0, _utils.onError)('buildCreateRotues: 路由参数不能为空'); return rotues; } var r = []; rotues.forEach(function (config) { if (_checkConfig(config)) { config['childRoutes'] = _buildChildRotues(app, config['childRoutes']); r.push(config); } else { return; } }); return (0, _core.createRoutes)(app, function () { return r; }); }; /** * 构建子路由 * @param {*} rotues */ var _buildChildRotues = function _buildChildRotues(app, rotues) { var r = []; rotues.forEach(function (rotue) { var cr = _checkChildRoutes(app, rotue); cr && r.push(cr); }); return r; }; /** * 检查路由基础属性 * @param {*} config */ var _checkConfig = function _checkConfig(config) { var f = true; if (!config) { (0, _utils.onError)('buildCreateRotues: 路由参数不能为空'); f = false; } else if (!config['path']) { (0, _utils.onError)('buildCreateRotues: path 路由路径不能为空'); f = false; } else if (!config['component']) { (0, _utils.onError)('buildCreateRotues: component 路由基础容器不能为空'); f = false; } else if (!config['indexRoute']) { (0, _utils.onError)('buildCreateRotues: indexRoute 初始路由不能为空'); f = false; } else if (!config['childRoutes'] || config['childRoutes'].length === 0) { (0, _utils.onError)('buildCreateRotues: childRoutes 子路由不能为空'); f = false; } return f; }; /** * 检查子路由属性 * @param {*} rotue:{key,path,component,title} */ var _checkChildRoutes = function _checkChildRoutes(app, rotue) { var f = true; if (!rotue) { (0, _utils.onError)('checkChildRoutes: 子路由 参数 不能为空'); f = false; } else if (!rotue['key']) { (0, _utils.onError)('checkChildRoutes: 子路由 key 不能为空'); f = false; } else if (rotue['key'] !== '404' && !rotue['path']) { (0, _utils.onError)('checkChildRoutes: 子路由 path 不能为空'); f = false; } else if (!rotue['component']) { (0, _utils.onError)('checkChildRoutes: 子路由 component 不能为空'); f = false; } else if (!rotue['title']) { (0, _utils.onError)('checkChildRoutes: 子路由 title 不能为空'); f = false; } return f ? _buildRotue(app, rotue) : undefined; }; /** * 初始化路由结构 * @param {*} title * @param {*} path * @param {*} component * @param {*} model */ var initRotue = function initRotue(rotue) { return _extends({ model: [] }, rotue); }; /** * 构建路由 * @param {*} rotue */ var _buildRotue = function _buildRotue(app, rotue) { return (0, _createDynamicRoutes2['default'])(app, initRotue(rotue)); }; module.exports = exports['default'];