UNPKG

wiz-frameworks

Version:

wizlong react framework

355 lines (298 loc) 11.5 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; }; exports.initLocalSetting = initLocalSetting; exports.initGlobal = initGlobal; exports.initNetworkInfoListerner = initNetworkInfoListerner; exports.initReduxFramework = initReduxFramework; exports.initPlugIn = initPlugIn; exports.initRequest = initRequest; exports.initRoutes = initRoutes; exports.initDynamicLoading = initDynamicLoading; exports.initRecodeLog = initRecodeLog; exports.initTemplateComponent = initTemplateComponent; exports.init = init; var _tool = require('../tool'); var _utils = require('../utils'); var _models2 = require('../models'); var _dvaLoading = require('dva-loading'); var _dvaLoading2 = _interopRequireDefault(_dvaLoading); var _dynamic = require('dva/dynamic'); var _dynamic2 = _interopRequireDefault(_dynamic); var _dva = require('dva'); var _dva2 = _interopRequireDefault(_dva); var _createHashHistory = require('history/createHashHistory'); var _createHashHistory2 = _interopRequireDefault(_createHashHistory); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _router = require('dva/router'); var _request2 = require('../request'); var _request3 = _interopRequireDefault(_request2); var _request4 = require('../utils/request'); var _request5 = _interopRequireDefault(_request4); var _buildCreateRoutes = require('../rotues/buildCreateRoutes'); var _buildCreateRoutes2 = _interopRequireDefault(_buildCreateRoutes); var _log = require('../log'); var _upload = require('../models/upload'); var _upload2 = _interopRequireDefault(_upload); var _user = require('../models/user'); var _user2 = _interopRequireDefault(_user); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * 框架启动方法 * @author mll * @date 2019-9-19 */ var log = _tool.utils_tool.log, Storage = _tool.utils_tool.Storage, network = _tool.utils_tool.network; var WizNotice = _tool.component_tool.WizNotice, WizPageLoading = _tool.component_tool.WizPageLoading, WizLocaleProvider = _tool.component_tool.WizLocaleProvider, zh_CN = _tool.component_tool.zh_CN; global.rotueHistory = (0, _createHashHistory2['default'])({ basename: '/' }); /** * 初始本地化设置,并设置全局数据 * @param {*} g * @param {*} constants * @param {*} settings */ function initLocalSetting(_ref) { var _ref$g = _ref.g, g = _ref$g === undefined ? global : _ref$g, _ref$constants = _ref.constants, constants = _ref$constants === undefined ? 'constants' : _ref$constants, _ref$initLocalSetting = _ref.initLocalSetting, initLocalSetting = _ref$initLocalSetting === undefined ? {} : _ref$initLocalSetting; g[constants] = {}; (0, _utils.ergodicObj)(initLocalSetting, function (obj, key) { g[constants][key] = obj[key]; }); log.info('config localSetting finish'); } /** * 初始全局的变量 * 1\注册缓存工具 * 2\注册全局log方法 * 3\注册全局提示 * 4\注册全局网络状态 */ function initGlobal(_ref2) { var _ref2$g = _ref2.g, g = _ref2$g === undefined ? global : _ref2$g, _ref2$initGlobal = _ref2.initGlobal, initGlobal = _ref2$initGlobal === undefined ? {} : _ref2$initGlobal; g.log = log; g.storage = Storage; g.wizNotice = WizNotice; g.network = network.getNetworkState; g.networkListerner = network.startNetInfoListerner; g.request = _request5['default']; (0, _utils.ergodicObj)(initGlobal, function (obj, key) { g[key] = obj[key]; }); log.info('config global finish'); } /** * 网络监控 * @param {*} callback */ function initNetworkInfoListerner(_ref3) { var networkCallback = _ref3.networkCallback; network.startNetInfoListerner(function (connection) { if (connection) { if (networkCallback) { networkCallback(true); } else { WizNotice.warn({ description: '网络已连接', key: 'networkNotice', message: '网络情况', duration: 3 }); } } else { if (networkCallback) { networkCallback(false); } else { WizNotice.error({ description: '当前网络不可用,请切换网络', key: 'networkNotice', message: '网络错误', duration: null }); } } }); log.info('config networkInfoListerner finish'); } /** * 初始化redeux模型 * @param {*} app * @param {*} {models,appDevModels} */ function initReduxFramework(app, _ref4) { var models = _ref4.models, appDevModels = _ref4.appDevModels; // 注册全局模型 var _models = models ? [].concat(_toConsumableArray(models), [_upload2['default'], _user2['default']]) : [_upload2['default'], _user2['default']]; (0, _models2.registerModels)(app, _models); // 注册动态模型 (0, _models2.registerDynamicModels)(app, appDevModels); !models && !appDevModels ? log.warn('config reduxFramework:未传入rudex数据模型') : log.info('config reduxFramework finish'); } /** * 初始化插件 * @param {*} app * @param {*} {use} */ function initPlugIn(app, _ref5) { var _ref5$use = _ref5.use, use = _ref5$use === undefined ? [] : _ref5$use; app.use((0, _dvaLoading2['default'])()); app.use({ onError: _utils.exception }); use.forEach(function (u) { app.use(u); }); log.info('config Plug-in finish'); } /** * 初始化请求 * @param {*} {request,requestConfig} */ function initRequest(_ref6) { var _ref6$request = _ref6.request, request = _ref6$request === undefined ? _request5['default'] : _ref6$request, _ref6$requestConfig = _ref6.requestConfig, requestConfig = _ref6$requestConfig === undefined ? _request3['default'] : _ref6$requestConfig; requestConfig.headers.endpoint = global.endpoint || 'admin'; request.config(requestConfig); log.info('config request finish'); } /** * 初始化路由 * @param {*} app * @param {*} {router,createRoutes} */ function initRoutes(app, _ref7) { var router = _ref7.router, createRoutes = _ref7.createRoutes; var f = true; if (router) { app.router(router); } else if (createRoutes) { app.router(function (_ref8) { var history = _ref8.history, app = _ref8.app; return _react2['default'].createElement( WizLocaleProvider, { locale: zh_CN }, _react2['default'].createElement( _router.Router, { history: history }, (0, _buildCreateRoutes2['default'])(app, createRoutes) ) ); }); } else { f = false; } f ? log.info('config routes finish') : (0, _utils.onError)('config routes:请传入 <路由:router> 或者 设置<路由参数:createRoutes>'); } /** * 初始化动态模型loading * @param {*} {pageLoading} */ function initDynamicLoading(_ref9) { var pageLoading = _ref9.pageLoading; _dynamic2['default'].setDefaultLoadingComponent(pageLoading || function () { return _react2['default'].createElement(WizPageLoading, { loading: true }); }); log.info('config dynamicLoading finish'); } /** * 初始化记录日志 * @param {*} app * @param {*} {recodeLog} * click日志记录方式 * 1、通过传值 例:recodeLogParams.clickNeedRecord : ['a','button'] ,会自动记录 a标签和button标签的日志 * 2、通过'data-wiz-log'标示 例: <div data-wiz-log>点击我会被记录</div> */ function initRecodeLog(app, _ref10) { var _ref10$recodeLog = _ref10.recodeLog, recodeLog = _ref10$recodeLog === undefined ? true : _ref10$recodeLog, _ref10$recodeLogParam = _ref10.recodeLogParams, recodeLogParams = _ref10$recodeLogParam === undefined ? {} : _ref10$recodeLogParam; //用户行为日志 _utils.logStorageUtils.setKey(recodeLogParams['userLogKey'] ? recodeLogParams['userLogKey'] : 'wiz-frameworks-user-log'); if (recodeLog) { //暂时不使用记录action的日志 //app.use(action); app.model(_log.rotue); _log.click && (0, _log.click)(recodeLogParams['clickNeedRecord']); log.info('config recodeLog finish'); } else { log.warn('recode log not enabled'); } //系统日志 _log.error && (0, _log.error)(recodeLogParams['sysLogKey']); } /** * 初始化动态模型loading * @param {*} {pageLoading} */ function initTemplateComponent(_ref11) { var templates = _ref11.templates; var form = _tool.component_tool; templates && _extends(form, templates); _utils.templateUtils.setTemplates(form); log.info('config template component finish'); } /** * 项目启动方法 * @param {*} settings */ function init() { var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; log.warn('framework start loading'); var storageKey = settings['storageKey'] ? settings['storageKey'] : 'wiz-frameworks'; Storage.setKey(storageKey); var app = settings.app || (0, _dva2['default'])({ history: rotueHistory }); // -> 本地设置 initLocalSetting(settings); // -> 全局变量 initGlobal(settings); // -> 网络检查 initNetworkInfoListerner(settings); // -> 数据模型 initReduxFramework(app, settings); // -> 插件 initPlugIn(app, settings); // -> 请求 initRequest(settings); // -> loading initDynamicLoading(settings); // -> 记录日志 initRecodeLog(app, settings); // -> 初始化路由 initRoutes(app, settings); // -> 初始化模版组件 initTemplateComponent(settings); // -> Start app.start('#root'); log.warn('framework loading success'); return { app: app, store: app._store, dispatch: app._store.dispatch }; } exports['default'] = function (e) { return init(e); };