UNPKG

tplus-pos

Version:

pos module

510 lines (428 loc) 17.2 kB
'use strict'; 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