tplus-pos
Version:
pos module
506 lines (434 loc) • 18.1 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 _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