tplus-pos
Version:
pos module
282 lines (241 loc) • 12 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
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 _dec, _class, _class2, _temp2;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _mutantsAppfx = require('mutants-appfx');
var _mobx = require('mobx');
var _mobx2 = _interopRequireDefault(_mobx);
var _mutantsMicrofx = require('mutants-microfx');
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _tplusComponentsTouch = require('tplus-components-touch');
var _tools = require('../../../util/tools.js');
var _tools2 = _interopRequireDefault(_tools);
var _common = require('../../../util/common.js');
var _common2 = _interopRequireDefault(_common);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var VoucherBody = (_dec = (0, _mutantsAppfx.injectViewModel)('Voucher'), _dec(_class = (0, _mutantsMicrofx.observer)(_class = (_temp2 = _class2 = function (_React$Component) {
(0, _inherits3.default)(VoucherBody, _React$Component);
function VoucherBody() {
var _ref;
var _temp, _this, _ret;
(0, _classCallCheck3.default)(this, VoucherBody);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = VoucherBody.__proto__ || (0, _getPrototypeOf2.default)(VoucherBody)).call.apply(_ref, [this].concat(args))), _this), _this.rowClick = function (type, index, record, fieldName) {
var controllerEvent = _this.props.controllerEvent;
if (_tools2.default.isNull(index) || _tools2.default.isNull(record)) return;
//业务逻辑
switch (type) {
case 'delete':
if (record.uiState.record && !record.uiState.record.delete) return;
controllerEvent('deleteBodyItem', { index: index });
break;
case 'update':
controllerEvent('updateBodyItem', { index: index, record: record });
break;
case 'updateField':
if (_tools2.default.isNull(fieldName)) return;
var uiState = record.uiState;
if (uiState[fieldName] && uiState[fieldName].disable) {
if (!!uiState.disableTip) Message.info(uiState.disableTip);
return;
}
controllerEvent('updateFieldFlow', { index: index, record: record, fieldName: fieldName });
break;
case 'click':
controllerEvent('selectRow', { index: index, record: record });
}
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
}
(0, _createClass3.default)(VoucherBody, [{
key: 'changeQuantity',
value: function changeQuantity(index, record, type) {
var Quantity = void 0;
var isAllow = this.isChangeQuantity(record);
switch (type) {
case 'minus':
{
if (!isAllow.minus) return;
Quantity = record.Quantity - 1;
break;
}
case 'plus':
{
if (!isAllow.plus) return;
Quantity = record.Quantity + 1;
break;
}
default:
Quantity = record.Quantity;
}
this.rowClick('update', index, { Quantity: Quantity });
}
}, {
key: 'getValue',
value: function getValue(retail, fieldName) {
var viewInfo = this.props.viewModel;
var voucherDetail = viewInfo.voucherDetail;
return _common2.default.formatValue(voucherDetail.find(function (column) {
return column.FieldName == fieldName;
}), retail[fieldName]);
}
}, {
key: 'componentDidUpdate',
value: function componentDidUpdate() {
this.scrollIntoView();
}
}, {
key: 'scrollIntoView',
value: function scrollIntoView() {
if (!this.container) return;
var viewInfo = this.props.viewModel;
var curLi = this.container.querySelectorAll("li")[viewInfo.targetIndex];
if (curLi) {
curLi.scrollIntoView();
}
}
}, {
key: 'isChangeQuantity',
value: function isChangeQuantity(record) {
var quantityUiState = record.uiState && record.uiState.Quantity;
var max = quantityUiState.max.value;
var min = quantityUiState.min.value;
var abs = quantityUiState.abs;
var isAllow = {
plus: true,
minus: true
};
if (max !== null && record.Quantity >= max) isAllow.plus = false;
if (min !== null && record.Quantity <= min) isAllow.minus = false;
//自助够不允许为 负数(强行写死,应该viewblock控制)
if (record.Quantity <= 1) isAllow.minus = false;
//如果uistate只允许正数,当数量小于1 不允许点击-;(暂时 领域viewblock 没有控制)
if (abs && record.Quantity <= 1) isAllow.minus = false;
//称重商品不允许修改数量
if (record.Inventory.IsWeigh) {
isAllow = {
plus: false,
minus: false
};
}
return isAllow;
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var viewInfo = this.props.viewModel;
var dataSource = viewInfo.data;
var targetIndex = viewInfo.targetIndex;
if (!viewInfo.totalQuantity) {
return _react2.default.createElement(
'div',
{ className: 'blank-page' },
_react2.default.createElement(
'span',
null,
'\u8BF7\u5C06\u5546\u54C1\u6761\u5F62\u7801'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'span',
null,
'\u5BF9\u51C6\u53F3\u4E0B\u65B9\u626B\u63CF\u53E3'
)
);
}
return _react2.default.createElement(
'div',
{ style: { height: '100%', overflow: 'scroll' }, ref: function ref(e) {
_this2.container = e;
} },
_react2.default.createElement(
'ul',
null,
dataSource.map(function (retail, index) {
var name = retail.Inventory && retail.Inventory.Name;
var taxPrice = _this2.getValue(retail, 'TaxPrice');
var retailPrice = _this2.getValue(retail, 'RetailPrice');
var quantity = _this2.getValue(retail, 'Quantity');
var taxAmount = _this2.getValue(retail, 'TaxAmount');
var isAllow = _this2.isChangeQuantity(retail);
var select = targetIndex == index;
return _react2.default.createElement(
'li',
{ key: retail.Code, className: 'sku ' + (select ? 'sku-select' : ''), onClick: function onClick() {
_this2.rowClick('click', index, retail);
} },
_react2.default.createElement(
'div',
{ className: 'top' },
retail.badge && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'zeng', className: 'zeng' }),
_react2.default.createElement(
'span',
{ className: 'name' },
name
),
_react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'shanchu', className: 'delete', onClick: function onClick(e) {
e.stopPropagation();
_this2.rowClick('delete', index, retail);
} })
),
_react2.default.createElement(
'div',
{ className: 'bottom' },
_react2.default.createElement(
'span',
{ className: 'tax-price' },
'\u5355\u4EF7: \uFFE5',
taxPrice
),
_react2.default.createElement(
'span',
{ className: 'retail-price ' + (taxPrice == retailPrice ? '' : 'retail-price-through') },
'\u539F\u4EF7: \uFFE5',
retailPrice
),
_react2.default.createElement(
'span',
{ className: 'quantity' },
_react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'jianqu', className: 'minus ' + (!isAllow.minus ? 'no-effect' : ''), onClick: function onClick() {
_this2.changeQuantity(index, retail, 'minus');
} }),
quantity,
_react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'zengjia', className: 'plus ' + (!isAllow.plus ? 'no-effect' : ''), onClick: function onClick() {
_this2.changeQuantity(index, retail, 'plus');
} })
),
_react2.default.createElement(
'span',
{ className: 'tax-amount' },
'\uFFE5',
taxAmount
)
)
);
})
)
);
}
}]);
return VoucherBody;
}(_react2.default.Component), _class2.contextTypes = {
onEvent: _propTypes2.default.func
}, _temp2)) || _class) || _class);
exports.default = VoucherBody;
//# sourceMappingURL=voucherBody.js.map