wiz-frameworks
Version:
wizlong react framework
355 lines (298 loc) • 11.5 kB
JavaScript
'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);
};