UNPKG

tplus-pos

Version:

pos module

506 lines (434 loc) 18.1 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 _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _set = require('babel-runtime/core-js/set'); var _set2 = _interopRequireDefault(_set); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); 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; var _mobx = require('mobx'); var _mutantsAppfx = require('mutants-appfx'); var _get2 = require('lodash/get'); var _get3 = _interopRequireDefault(_get2); var _cloneDeep2 = require('lodash/cloneDeep'); var _cloneDeep3 = _interopRequireDefault(_cloneDeep2); var _common = require('../util/common'); var _common2 = _interopRequireDefault(_common); var _mutantsMicrofx = require('mutants-microfx'); 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.'); } /** * @props bodyState=[{ * code, * Quantity:state * }] * * @props RetailDetail.uiState * { * [FieldName]:state, * } */ var defaultState = { disable: false, disableTip: null, min: { value: null, include: true, tip: null }, max: { value: null, include: true, tip: null }, abs: false }; var Voucher = (_class = function (_ViewBase) { (0, _inherits3.default)(Voucher, _ViewBase); (0, _createClass3.default)(Voucher, [{ key: 'enableSettlement', value: function enableSettlement(settlementVisiable) { this.settlementVisiable = settlementVisiable; } }, { key: 'type', get: function get() { return 'Voucher'; } //明细columns // 是否可以结算 //底部详情columns //剩余总金额(结算组件需要 ) }, { key: 'data', get: function get() { console.log('datamodel更新:', this.store.data); var that = this; var retailDetails = this.store.data.RetailDetails.map(function (el) { var detail = (0, _extends3.default)({}, el); if (el.IsPresent) { detail.badge = { text: '赠', position: 'leftTop', className: '' }; } //添加 uistate var uiState = {}; var keys = (0, _keys2.default)(el); var uiUpdateState = that.bodyState.find(function (singleBodyState) { return el.Code == singleBodyState.code; }) || {}; keys.forEach(function (key) { var computedUiState = (0, _cloneDeep3.default)(defaultState); that.assign(computedUiState, uiUpdateState[key] || {}); uiState[key] = computedUiState; }); detail.uiState = uiState; return detail; }); return retailDetails; } }, { key: 'guide', get: function get() { if (this.store.data) { var retaildetails = this.store.data.RetailDetails; console.log('retaildetailslength', retaildetails.length); console.log('guide', !(0, _mobx.isObservableArray)(retaildetails)); if (!(0, _mobx.isObservableArray)(retaildetails) || !retaildetails.length) return {}; var standrad = retaildetails[0].Idperson; var diff = retaildetails.find(function (el) { return el.Idperson !== standrad; }); if (!diff && standrad !== null) { return retaildetails[0].Person; } } return {}; } }, { key: 'columns', get: function get() { //明细columns (对数量value大小 作出限制) var isReturn = _common2.default.getIsReturn(this.store.data); var initialColumns = (0, _cloneDeep3.default)(this.initialColumns); var quantityColumn = {}; quantityColumn = initialColumns.find(function (el) { return el.FieldName === 'Quantity'; }); if (!quantityColumn) return initialColumns; /* 数量取值范围 控制 */ if (!isReturn) { quantityColumn.minValue = 0; } /* 数量是否可以更改 控制 */ var isModifyQuantity = _common2.default.getIsModifyQuantityAuth(); if (!isModifyQuantity) { quantityColumn.quick = false; } return initialColumns; } }, { key: 'retailDetails', get: function get() { return this.store.data.RetailDetails; } }, { key: 'quantityDetail', get: function get() { var data = this.store.data; var returnQuantity = 0; var buyQuantity = 0; if (!data) return { returnQuantity: returnQuantity, buyQuantity: buyQuantity }; var retailDetails = data.RetailDetails; retailDetails.forEach(function (el) { var quantity = 0; if (el.Inventory.IsWeigh) { quantity = el.Quantity > 0 ? 1 : -1; } else { quantity = el.Quantity; } if (quantity >= 0) { buyQuantity = buyQuantity + Math.abs(quantity); } else { returnQuantity = returnQuantity + Math.abs(quantity); } }); console.log('quantityDetail===', { returnQuantity: returnQuantity, buyQuantity: buyQuantity }); return { returnQuantity: returnQuantity, buyQuantity: buyQuantity }; } }, { key: 'totalQuantity', get: function get() { var data = this.store.data; if (!data) return 0; var retailDetails = data.RetailDetails; var totalQuantity = 0; retailDetails.forEach(function (el) { if (el.Inventory.IsWeigh) { totalQuantity++; } else { totalQuantity = Math.abs(el.Quantity) + totalQuantity; } }); return totalQuantity; } }, { key: 'totalVariety', get: function get() { var data = this.store.data; if (!data) return 0; var retailDetails = data.RetailDetails; return new _set2.default(retailDetails.map(function (retailDetail) { return retailDetail.Idinventory; })).size; } }]); function Voucher(store, name) { var columns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var voucherDetail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; (0, _classCallCheck3.default)(this, Voucher); var _this = (0, _possibleConstructorReturn3.default)(this, (Voucher.__proto__ || (0, _getPrototypeOf2.default)(Voucher)).call(this, store, name)); _initDefineProp(_this, 'voucherDetail', _descriptor, _this); _initDefineProp(_this, 'bodyState', _descriptor2, _this); _initDefineProp(_this, 'targetIndex', _descriptor3, _this); _this.getScreenType = function () { var flag = false; var _ref = _mutantsUtil.platform || {}, isHorizontalSunMi = _ref.isHorizontalSunMi; if (_mutantsMicrofx.env.platform === _mutantsMicrofx.env.constant.platform.electron || !!isHorizontalSunMi) { var data = _mutantsMicrofx.localStore.get('setting_setData') || []; data = data.filter(function (item) { return item.Name === 'EnableDoubleScreen'; }); data = data && data.length > 0 ? data.shift() : null; if (data && data.Value === '1') { flag = true; } } return flag; }; _this.voucherDetail = voucherDetail; _this.initialColumns = _this.createVoucherColumns(columns); (0, _mobx.autorun)(function () { var data = _this.store.data; _this.setIpcRendererMethod(data); }, { delay: 50 }); return _this; } (0, _createClass3.default)(Voucher, [{ key: 'setIpcRendererMethod', value: function setIpcRendererMethod(data) { console.time('screen sync data need time'); if (!data) return; var RetailDetails = data.RetailDetails, TotalTaxAmount = data.TotalTaxAmount; var columnNames = ["Inventory", "Quantity", "TaxPrice", "TaxAmount"]; var retaildetails = RetailDetails.map(function (recode) { var newRecord = {}; columnNames.forEach(function (key) { newRecord[key] = recode[key]; }); return newRecord; }); console.log('setIpcRendererMethod=>retaildetails', retaildetails); if (this.getScreenType() === true) { //副屏幕交互 var _ref2 = _mutantsUtil.platform || {}, isHorizontalSunMi = _ref2.isHorizontalSunMi; if (RetailDetails && RetailDetails.length > 0) { var params = { step: 2, data: { RetailDetails: retaildetails, TotalTaxAmount: TotalTaxAmount } }; if (!!isHorizontalSunMi) { window.sunMi_PresentationManager && window.sunMi_PresentationManager.sendMessageToSecondScreen(params); } else { _mutantsMicrofx.nativeMs.setIpcRendererMethod('ReplyScreen', params); } } else { if (!!isHorizontalSunMi) { window.sunMi_PresentationManager && window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 }); } else { _mutantsMicrofx.nativeMs.setIpcRendererMethod('ReplyScreen', { step: 1 }); } } } console.timeEnd('screen sync data need time'); } }, { key: 'assign', value: function assign(oldObj, newObj) { var that = this; var keys = (0, _keys2.default)(oldObj); keys.forEach(function (key) { if ((0, _typeof3.default)(oldObj[key]) == 'object' && oldObj[key] !== null) { that.assign(oldObj[key], newObj[key] || {}); } else { if (key in newObj) { oldObj[key] = newObj[key]; } } }); } }, { key: 'changeUiState', value: function changeUiState() { var that = this; for (var _len = arguments.length, update = Array(_len), _key = 0; _key < _len; _key++) { update[_key] = arguments[_key]; } update.forEach(function (_ref3) { var code = _ref3.code, _ref3$options = _ref3.options, options = _ref3$options === undefined ? {} : _ref3$options; var curIndex = void 0; var cur = that.bodyState.find(function (singleState, index) { if (singleState.code && singleState.code == code) { curIndex = index; return true; } return false; }); if (!cur) that.bodyState.push((0, _extends3.default)({ code: code }, options)); if (cur) { that.bodyState.splice(curIndex, 1, (0, _extends3.default)({ code: code }, options)); } }); } }, { key: 'clearUiState', value: function clearUiState() { var length = this.bodyState.length; this.bodyState.splice(0, length); } // 获取副屏的状态 }, { key: 'getIsTakeTheir', //是否退货 value: function getIsTakeTheir() { return _common2.default.getIsTakeTheir(this.store.data); } }, { key: 'createVoucherColumns', value: function createVoucherColumns(voucherColumns) { var _this2 = this; var columns = []; var voucherType = _mutantsMicrofx.localStore && _mutantsMicrofx.localStore.get("voucherDefaultPosMode") || 'touch'; if (voucherType == 'voucher') { this.voucherDetail.forEach(function (el) { var realColumn = voucherColumns.find(function (it) { return it.FieldName === el.FieldName; }) || {}; var propertys = el.FieldType == "number" ? { textAlign: 'right' } : { textAlign: 'left' }; var column = (0, _extends3.default)({}, el, propertys, { title: el.Title, key: el.FieldName, dataIndex: el.FieldName, precision: el.Precision, maxLength: el.MaxLength, controlType: el.ControlType }, realColumn, { width: el.Width }); columns.push(column); }); } else { voucherColumns.forEach(function (el) { var realColumn = _this2.voucherDetail.find(function (it) { return it.FieldName === el.FieldName; }) || {}; var column = (0, _extends3.default)({}, realColumn, { title: realColumn.Title, precision: realColumn.Precision, maxLength: realColumn.MaxLength, controlType: realColumn.ControlType }, el); columns.push(column); }); } return columns; } }, { key: 'setCurRow', value: function setCurRow(_ref4) { var type = _ref4.type, index = _ref4.index, record = _ref4.record; var retailDetails = this.store.data.RetailDetails; if (!retailDetails[index]) return; this.targetIndex = index; } }], [{ key: 'fromJS', value: function fromJS(store, _ref5) { var voucherViewInfo = _ref5.Voucher; var columns = voucherViewInfo.VoucherColumns; var voucherDetail = voucherViewInfo.VoucherDetail; return new Voucher(store, 'Voucher', columns, voucherDetail); } }]); return Voucher; }(_mutantsAppfx.ViewBase), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'voucherDetail', [_mobx.observable], { enumerable: true, initializer: null }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'bodyState', [_mobx.observable], { enumerable: true, initializer: function initializer() { return []; } }), _applyDecoratedDescriptor(_class.prototype, 'enableSettlement', [_mobx.action], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'enableSettlement'), _class.prototype), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'targetIndex', [_mobx.observable], { enumerable: true, initializer: function initializer() { return -1; } }), _applyDecoratedDescriptor(_class.prototype, 'data', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'data'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'guide', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'guide'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'columns', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'columns'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'retailDetails', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'retailDetails'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'quantityDetail', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'quantityDetail'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'totalQuantity', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'totalQuantity'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'totalVariety', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'totalVariety'), _class.prototype), _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), _applyDecoratedDescriptor(_class.prototype, 'createVoucherColumns', [_mobx.action], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'createVoucherColumns'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'setCurRow', [_mobx.action], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'setCurRow'), _class.prototype)), _class); exports.default = Voucher; //# sourceMappingURL=Voucher.js.map