antui-mobile
Version:
mobile ui for antd
318 lines (244 loc) • 8.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _storage = require('../../utils/storage');
var _modal2 = require('../modal');
var _modal3 = _interopRequireDefault(_modal2);
var _message = require('../message');
var _message2 = _interopRequireDefault(_message);
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
var _dict = require('../../utils/dict');
var _dict2 = _interopRequireDefault(_dict);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* React组件基类,增加事件函数的支持,可以避免多层组件层层传递的情况,
* 即在一个组件中注册事件,在任意组件中触发注册的事件即可。
*/
var BaseComponent = function (_React$Component) {
(0, _inherits3.default)(BaseComponent, _React$Component);
function BaseComponent(props) {
(0, _classCallCheck3.default)(this, BaseComponent);
//
var _this = (0, _possibleConstructorReturn3.default)(this, (BaseComponent.__proto__ || (0, _getPrototypeOf2.default)(BaseComponent)).call(this));
_this.onSelect = function (keys, selectRows) {
_this.setState({
selectRows: selectRows
});
};
_this.hasBtnPermission = function (btnName) {
return !!btnName && _this.enabledBtns.indexOf(btnName) !== -1;
};
_this.onFetchData = function (_ref, fetchFunction) {
var currentPage = _ref.currentPage,
sortMap = _ref.sortMap,
paramMap = _ref.paramMap,
showCount = _ref.showCount;
var obj = {};
if (sortMap) obj.sortMap = sortMap;
if (paramMap) obj.paramMap = paramMap;
if (showCount) obj.showCount = showCount;
if (currentPage) obj.currentPage = currentPage;
if (_this.options && _this.options.defaultParamMap) {
obj.paramMap = (0, _objectAssign2.default)({}, _this.options.defaultParamMap, obj.paramMap || _this.paramData.paramMap);
}
var _p = (0, _objectAssign2.default)(_this.paramData, obj);
_this.fetchFunction = _this.fetchFunction || fetchFunction;
return _this.fetchFunction && _this.fetchFunction(_p);
};
_this.session = _storage.Session;
_this.application = _storage.Application;
_this.options = props;
//
_this.message = _message2.default;
_this.enabledBtns = _this._getEnabledBtns();
return _this;
}
/**
* 反回按钮权限
* @return <Array> btns
*/
(0, _createClass3.default)(BaseComponent, [{
key: '_getEnabledBtns',
value: function _getEnabledBtns() {
var url2resId = this.session.getAttribute("url2resId");
var resId = url2resId && url2resId[location.pathname.split("/")[1]];
var opers = this.session.getAttribute("opers");
if (resId && opers && opers[resId + ""]) {
return opers[resId + ""];
}
return [];
}
/**
* 点击表格中的行时的回调
* @param keys 行key数组
* @param rows 行数据数组
*/
/**
* 按钮通过这个方法反回是否有权限
*/
}, {
key: 'getPaging',
value: function getPaging(items) {
var _this2 = this;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return {
showSizeChanger: true,
showQuickJumper: true,
total: items.totalResult,
pageSize: items.showCount,
current: items.currentPage,
defaultCurrent: items.currentPage,
showTotal: function showTotal(total) {
return '\u5171 ' + total + ' \u6761';
},
pageSizeOptions: options.pageSizeOptions || ['10', '20', '50', '100'],
onShowSizeChange: function onShowSizeChange(currentPage, showCount) {
return _this2.onFetchData({ currentPage: currentPage, showCount: showCount });
},
onChange: function onChange(pagination, filters, sorter) {
var currentPage = pagination.current || pagination;
_this2.onFetchData({ currentPage: currentPage });
}
};
}
/**
* 阻止冒泡及默认行为
*/
}, {
key: 'nopopup',
value: function nopopup(e) {
e.preventDefault();
e.stopPropagation();
}
}, {
key: '_modal',
value: function _modal() {
var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "info";
var content = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
_modal3.default[type]((0, _extends3.default)({
content: content
}, options));
}
/**
* 提示框组件
*/
}, {
key: 'alert',
value: function alert() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var options = arguments[1];
options = (0, _objectAssign2.default)({}, { title: "通知", onOk: function onOk() {}
}, options);
return this._modal("info", content, options);
}
/**
* 提示框组件
*/
}, {
key: 'info',
value: function info(args) {
return this.alert(args);
}
/**
* 提示框组件
*/
}, {
key: 'warn',
value: function warn() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var options = arguments[1];
options = (0, _objectAssign2.default)({}, { title: "警告", onOk: function onOk() {}
}, options);
return this._modal("warning", content, options);
}
/**
* 提示框组件
*/
}, {
key: 'success',
value: function success() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var options = arguments[1];
options = (0, _objectAssign2.default)({}, { title: "成功", onOk: function onOk() {}
}, options);
return this._modal("success", content, options);
}
/**
* 提示框组件
*/
}, {
key: 'error',
value: function error() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var options = arguments[1];
options = (0, _objectAssign2.default)({}, { title: "错误", onOk: function onOk() {}
}, options);
return this._modal("error", content, options);
}
/**
* 提示框组件
*/
}, {
key: 'confirm',
value: function confirm() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var options = arguments[1];
options = (0, _objectAssign2.default)({}, { title: "确认", onOk: function onOk() {},
onCancel: function onCancel() {}
}, options);
return this._modal("confirm", content, options);
}
/**
* 弹窗组件 options 参考antd Modal配置
*/
}, {
key: 'showModal',
value: function showModal(content, options) {
this.context.ui.showModal(content, options);
}
/**
* 跟据字典类型获取字典值对象
* return [{code: aa, codeName: aa}, {code: bb, codeName: bb}]
* 例 this.getDict("1001"));
*/
}, {
key: 'getDict',
value: function getDict(type) {
return _dict2.default.get(type);
}
/**
* 跟据字典类型与字典值获取对应的名称
* return string
* 例 this.getDictName("1001", "1001001")
*/
}, {
key: 'getDictName',
value: function getDictName(codeType, codeValue) {
return _dict2.default.getDictName(codeType, codeValue);
}
}]);
return BaseComponent;
}(_react2.default.Component);
BaseComponent.contextTypes = {
router: _react.PropTypes.object,
page: _react.PropTypes.object
};
exports.default = BaseComponent;
module.exports = exports['default'];