tplus-pos
Version:
pos module
510 lines (428 loc) • 17.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty = require('babel-runtime/core-js/object/define-property');
var _defineProperty2 = _interopRequireDefault(_defineProperty);
var _getOwnPropertyDescriptor = require('babel-runtime/core-js/object/get-own-property-descriptor');
var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _desc, _value, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;
var _mobx = require('mobx');
var _mutantsAppfx = require('mutants-appfx');
var _tplusPoslogin = require('tplus-poslogin');
var _SiderLeft = require('./SiderLeft');
var _SiderLeft2 = _interopRequireDefault(_SiderLeft);
var _cloneDeep2 = require('lodash/cloneDeep');
var _cloneDeep3 = _interopRequireDefault(_cloneDeep2);
var _pageStores = require('../pageStores');
var _mutantsUtil = require('mutants-util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _initDefineProp(target, property, descriptor, context) {
if (!descriptor) return;
(0, _defineProperty2.default)(target, property, {
enumerable: descriptor.enumerable,
configurable: descriptor.configurable,
writable: descriptor.writable,
value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
});
}
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
var desc = {};
Object['ke' + 'ys'](descriptor).forEach(function (key) {
desc[key] = descriptor[key];
});
desc.enumerable = !!desc.enumerable;
desc.configurable = !!desc.configurable;
if ('value' in desc || desc.initializer) {
desc.writable = true;
}
desc = decorators.slice().reverse().reduce(function (desc, decorator) {
return decorator(target, property, desc) || desc;
}, desc);
if (context && desc.initializer !== void 0) {
desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
desc.initializer = undefined;
}
if (desc.initializer === void 0) {
Object['define' + 'Property'](target, property, desc);
desc = null;
}
return desc;
}
function _initializerWarningHelper(descriptor, context) {
throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');
}
var stateDefault = {
visible: true,
enable: true,
tip: ''
};
var Operations = (_class = function (_ViewBase) {
(0, _inherits3.default)(Operations, _ViewBase);
(0, _createClass3.default)(Operations, [{
key: 'type',
get: function get() {
return 'Operations';
}
}, {
key: 'operations',
get: function get() {
var that = this;
return this.bottomOperations.map(function (el) {
var updateObj = that.uiStateUpdate.find(function (update) {
return el.Name == update.name;
}) || {};
var uiState = (0, _extends3.default)({}, stateDefault, updateObj);
return (0, _extends3.default)({}, el, {
uiState: uiState
});
});
}
}, {
key: 'menu',
get: function get() {
var data, length;
if (this.store && this.store.getViewItem) {
data = this.store.getViewItem('Voucher').data;
}
length = data && data.length || 0;
var menu = (0, _cloneDeep3.default)((0, _mobx.toJS)(this.validMenu));
/* 挂单&解挂 */
menu = menu.filter(function (el) {
if (el.key === 'list' && !length) return false;
if (el.key === 'list2' && length) return false;
return true;
});
/* 超出menu最大数量进入更多 */
var moreBar = menu.splice(menu.length - 1, 1)[0];
var menus = void 0;
if (menu.length > this.leftMenuCounts) {
menus = menu.splice(0, this.leftMenuCounts - 1);
moreBar.subs = [].concat((0, _toConsumableArray3.default)(menu));
menus.push(moreBar);
} else {
menus = menu;
}
return menus;
} //左侧菜单全集
}]);
function Operations(store, name) {
var operations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
(0, _classCallCheck3.default)(this, Operations);
var _this = (0, _possibleConstructorReturn3.default)(this, (Operations.__proto__ || (0, _getPrototypeOf2.default)(Operations)).call(this, store, name));
_initDefineProp(_this, 'bottomOperations', _descriptor, _this);
_initDefineProp(_this, 'uiStateUpdate', _descriptor2, _this);
_this.leftOperations = [];
_initDefineProp(_this, 'validMenu', _descriptor3, _this);
_this.leftMenuCounts = 7;
_initDefineProp(_this, 'changeMenu', _descriptor4, _this);
_this.filterLeft = function () {
_this.filterMenuList();
_this.permissionControl();
};
_this.filterMenuList = function () {
var validMenu = _this.validMenu;
// /* 启用会员模块 */
var isEnableMember = (0, _tplusPoslogin.PosInitData)('isEnableMember');
if (!isEnableMember) {
validMenu = validMenu.filter(function (el) {
return el.key !== 'member';
});
}
/* 电商模块判断 */
var isEnableUMember = (0, _tplusPoslogin.PosInitData)('IsEnableUMember'); //是否U会员
var isCommerce = (0, _tplusPoslogin.PosInitData)('ECommerce'); //是否开启电商
var isMain = (0, _tplusPoslogin.PosInitData)('IsMain'); //是否主POS
var isControlMeiTuan = !!(0, _tplusPoslogin.PosInitData)('ControlMeiTuan'); //是否阻止电商开启
var arr = [];
if (isCommerce) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator3.default)(validMenu), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var item = _step.value;
if (isMain && isEnableUMember) {
if (item.key == 'online') {
item.subs = [].concat((0, _toConsumableArray3.default)(validMenu.filter(function (v) {
return v.key == 'takeTheir' || v.key == 'delivery';
})));
}
if (item.key == 'takeTheir' || item.key == 'delivery') {
continue;
}
} else {
if (item.key == 'takeTheir' && !isEnableUMember) {
continue;
}
if (item.key == 'delivery' && (isControlMeiTuan || !isMain)) {
continue;
}
}
arr.push(item);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
} else {
arr = validMenu.filter(function (el) {
if (el.key == 'online' || el.key == 'takeTheir' && !isEnableUMember || el.key == 'delivery' && (isControlMeiTuan || !isMain)) {
return false;
}
return true;
});
}
_this.validMenu = arr;
};
_this.createMenu = function () {
(0, _mobx.reaction)(function () {
var data;
if (_this.store && _this.store.getViewItem) {
data = _this.store.getViewItem('Voucher').data;
}
return data && data.length || 0;
}, function (length) {
var menu = (0, _cloneDeep3.default)(_this.validMenu);
/* 挂单&解挂 */
menu = menu.filter(function (el) {
if (el.key === 'list' && !length) return false;
if (el.key === 'list2' && length) return false;
return true;
});
/* 超出menu最大数量进入更多 */
var moreBar = menu.splice(menu.length - 1, 1)[0];
if (menu.length > _this.leftMenuCounts - 1) {
var moreBarSubs = menu.splice(_this.leftMenuCounts - 1);
moreBar.subs = [].concat((0, _toConsumableArray3.default)(moreBar.subs), (0, _toConsumableArray3.default)(moreBarSubs));
}
if (moreBar.subs && !!moreBar.subs.length) {
menu.push(moreBar);
}
_this.menu = menu;
}, {
fireImmediately: true
});
};
var operationsButtomObj = [];
var leftOperations = [];
operations.forEach(function (operation) {
if (operation.Position.indexOf('bottom') > -1) {
operationsButtomObj[operation.TabIndex] = operation;
} else {
leftOperations.push(operation);
}
});
//底部菜单生成
(0, _mobx.runInAction)(function () {
for (var i = 0; i < operationsButtomObj.length; i++) {
if (operationsButtomObj[i] !== undefined) _this.bottomOperations.push(operationsButtomObj[i]);
}
/* 启用u会员,去掉u会员才能称重的判断 */
// const isEnableUMember = PosInitData('IsEnableUMember');
// if (!isEnableUMember) {
// this.bottomOperations = this.bottomOperations.filter((el) => el.Name !== 'Balance')
// }
});
/* 获取练习模式下的参数 */
if (_pageStores.voucherStateStore) _pageStores.voucherStateStore.init();
/* 左侧菜单生成 */
_this.leftOperations = leftOperations;
console.log('leftOperations===', leftOperations);
_this.validMenu = (0, _cloneDeep3.default)(_SiderLeft2.default);
_this.filterLeft();
return _this;
}
(0, _createClass3.default)(Operations, [{
key: 'changeUiState',
value: function changeUiState() {
var that = this;
var length = that.uiStateUpdate.length;
that.uiStateUpdate.splice(0, length);
for (var _len = arguments.length, update = Array(_len), _key = 0; _key < _len; _key++) {
update[_key] = arguments[_key];
}
update.forEach(function (_ref) {
var name = _ref.name,
_ref$state = _ref.state,
state = _ref$state === undefined ? {} : _ref$state;
that.uiStateUpdate.push((0, _extends3.default)({ name: name }, state));
});
}
}, {
key: 'clearUiState',
value: function clearUiState() {
var length = this.uiStateUpdate.length;
this.uiStateUpdate.splice(0, length);
}
/* 整理左侧菜单Tree结构,方便展示
* 例如:同时存在自提、配送时,就要显示一级菜单电商;假如只有自提或配送时,就以一级菜单展示
*/
}, {
key: 'permissionControl',
/* menus 权限控制 */
value: function permissionControl() {
var map = this.createPermissionObj();
this.filterMenu(this.validMenu, map);
}
/* 权限对象 */
}, {
key: 'createPermissionObj',
value: function createPermissionObj() {
var _this2 = this;
//选项“必须原单退货”权限判断。
var isMustReturnByOrig = (0, _tplusPoslogin.PosInitData)('isMustReturnByOrig');
var isCommerce = (0, _tplusPoslogin.PosInitData)('ECommerce') && !(0, _tplusPoslogin.PosInitData)('ControlMeiTuan'); //是否开启电商
var map = {
'home': 'Quit',
'refund': true,
'refundCurrent': 'ReturnInventoy',
'refundBefore': 'ReturnInventoy',
'list': 'PendingVoucher',
'list2': 'PendingVoucher',
'member': true,
'memberManager': 'MemberSearch',
'memberAdd': 'MemberAdd',
'search': true,
'searchbill': 'VoucherSearch',
'searchstock': 'StockSearch',
"online": "online",
'takeTheir': 'Deliver',
"delivery": 'Delivery',
'cashbox': 'OpenBox',
'lock': 'Lock',
'quickKey': true,
'more': true
};
var _loop = function _loop(key) {
var name = map[key];
if (name !== true) {
if (!!_this2.leftOperations.find(function (el) {
return el.Name === name;
})) {
if (key == 'refundCurrent' && isMustReturnByOrig == '1') {
//对“原单退货”权限判断
map[key] = false;
} else {
map[key] = true;
}
// 练习模式
if (_pageStores.voucherStateStore.mode === 'practice' && ['memberAdd', 'takeTheir', 'delivery'].indexOf(key) > -1) {
map[key] = false;
}
} else {
if (key == 'online' && isCommerce && _pageStores.voucherStateStore.mode !== 'practice') {
map[key] = true;
} else {
map[key] = false;
}
}
}
};
for (var key in map) {
_loop(key);
}
//pad 去除快捷键
map['quickKey'] = !(_mutantsUtil.localStore.get('isHorizontalPad') == 'true');
console.log('map=========', (0, _stringify2.default)(map));
return map;
}
/* 删除没有权限的menu */
}, {
key: 'filterMenu',
value: function filterMenu(menus, map) {
var length = menus.length;
for (var index = length - 1; index >= 0; index--) {
var el = menus[index];
if (el.subs) {
//带有子节点
el.subs = this.filterMenu(el.subs, map);
if (!el.subs.length && el.key != 'more') {
menus.splice(index, 1);
}
} else {
if (!map[el.key]) {
menus.splice(index, 1);
}
}
}
return menus;
}
/* 生成视图模型 */
}], [{
key: 'fromJS',
value: function fromJS(store, _ref2) {
var _ref2$Operations = _ref2.Operations,
operations = _ref2$Operations === undefined ? [] : _ref2$Operations;
(0, _tplusPoslogin.PosSetData)({ Operations: operations.map(function (operation) {
return operation.Name;
}) });
return new Operations(store, 'Operations', operations);
}
}]);
return Operations;
}(_mutantsAppfx.ViewBase), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'bottomOperations', [_mobx.observable], {
enumerable: true,
initializer: function initializer() {
return [];
}
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'uiStateUpdate', [_mobx.observable], {
enumerable: true,
initializer: function initializer() {
return [];
}
}), _applyDecoratedDescriptor(_class.prototype, 'operations', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'operations'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'menu', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'menu'), _class.prototype), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'validMenu', [_mobx.observable], {
enumerable: true,
initializer: function initializer() {
return [];
}
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, 'changeMenu', [_mobx.action], {
enumerable: true,
initializer: function initializer() {
var _this3 = this;
return function (num) {
var items = _this3.validMenu;
items && items.map(function (item) {
if (item.isTotal == true) {
item.totalNum = num;
var arrs = item.subs;
arrs && arrs.length > 0 && arrs.map(function (v) {
if (v.isTotal == true) {
v.totalNum = num;
}
});
}
});
};
}
}), _applyDecoratedDescriptor(_class.prototype, 'changeUiState', [_mobx.action], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'changeUiState'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'clearUiState', [_mobx.action], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'clearUiState'), _class.prototype)), _class);
exports.default = Operations;
//# sourceMappingURL=Operations.js.map