tplus-pos
Version:
pos module
655 lines (569 loc) • 25.8 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _Button2 = require('tinper-bee/dist/Button');
var _Button3 = _interopRequireDefault(_Button2);
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
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 _class, _class2, _temp;
require('tinper-bee/dist/Button/index.css');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _mobxReact = require('mobx-react');
var _map2 = require('lodash/map');
var _map3 = _interopRequireDefault(_map2);
var _filter2 = require('lodash/filter');
var _filter3 = _interopRequireDefault(_filter2);
var _truncate2 = require('lodash/truncate');
var _truncate3 = _interopRequireDefault(_truncate2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _mutantsMicrofx = require('mutants-microfx');
var _tplusApi = require('tplus-api');
var _tplusPoslogin = require('tplus-poslogin');
var _tplusComponentsTouch = require('tplus-components-touch');
var _utils = require('./utils');
var _tipNumKbModalVertical = require('../components/tipNumKbModalVertical');
var _tipNumKbModalVertical2 = _interopRequireDefault(_tipNumKbModalVertical);
var _common = require('../util/common.js');
var _common2 = _interopRequireDefault(_common);
var _MemberApi = require('../api/MemberApi.js');
var _MemberApi2 = _interopRequireDefault(_MemberApi);
var _pwd = require('./pwd.js');
var _pwd2 = _interopRequireDefault(_pwd);
var _popover = require('./popover.js');
var _popover2 = _interopRequireDefault(_popover);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_Component) {
(0, _inherits3.default)(_default, _Component);
function _default(props) {
var _this3 = this;
(0, _classCallCheck3.default)(this, _default);
var _this2 = (0, _possibleConstructorReturn3.default)(this, (_default.__proto__ || (0, _getPrototypeOf2.default)(_default)).call(this, props));
_this2.bindBodyClick = function () {
var _this = _this2;
setTimeout(function () {
_common2.default.setFocus();
document.body.addEventListener("click", _common2.default.activeEl);
_this.getInput();
}, 0);
};
_this2.removeBodyClick = function () {
document.body.removeEventListener("click", _common2.default.activeEl);
};
_this2.addInvent = function (val) {
var input = val || "";
if (!input) {
_tplusComponentsTouch.Message.toast('请输入付款码');
return;
}
_this2.store.authCode = input;
_this2.handleSettle();
};
_this2.searchMember = function (input) {
_MemberApi2.default.getSearchMember({
currentPage: 1,
pageSize: 10,
key: input,
isSingleMember: true
}).then(function (ret) {
var _ref = ret || {},
columnInfo = _ref.ColumnInfo,
Data = _ref.Data;
var data = JSON.parse(Data) || [];
var info = data[0];
if (info) {
_this2.setState({ showModal: false });
// controllerEvent('changeMember', info)
_this2.store.setMember(info);
if (_this2.store.member.needPwd) {
_this2.removeBodyClick();
_this2.setState({ showPwd: true });
} else {
_this2.handleSettle();
}
} else {
_tplusComponentsTouch.Message.toast('会员信息不存在');
}
});
};
_this2.validePwd = function () {
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(value) {
var result;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _this2.store.validePwd(value);
case 2:
result = _context.sent;
if (result == "") {
//成功
//返回
_this2.setState({ showPwd: false });
_this2.store.authCode = value;
_this2.handleSettle();
} else {
_tplusComponentsTouch.Message.toast(result);
}
case 4:
case 'end':
return _context.stop();
}
}
}, _callee, _this3);
}));
return function (_x) {
return _ref2.apply(this, arguments);
};
}();
_this2.onTabsClick = function (mode, czkenabled) {
if (mode.paymentType == _utils.PayStyle.hyczk && czkenabled) {
_this2.store.setTheMode(mode);
_this2.setState({ showModal: true });
}
};
_this2.btnClick = function () {
_mutantsMicrofx.stores.voucherStore.cancelSettle && _mutantsMicrofx.stores.voucherStore.cancelSettle();
_mutantsMicrofx.history.push('/RE/RE01');
};
_this2.openLoadingModal = function () {
return (0, _tplusComponentsTouch.modalShower)({
maskClosable: false,
closable: false,
width: '200px',
content: _react2.default.createElement(
'div',
{ className: 'billingSettling' },
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'div',
{ className: 'ant-spin ant-spin-lg ant-spin-spinning' },
_react2.default.createElement(
'span',
{
className: 'ant-spin-dot ant-spin-dot-spin' },
_react2.default.createElement('i', null),
_react2.default.createElement('i', null),
_react2.default.createElement('i', null),
_react2.default.createElement('i', null)
)
)
),
_react2.default.createElement(
'div',
null,
'\u652F\u4ED8\u4E2D...'
)
)
});
};
_this2.handleSettle = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {
var payingModal, result;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
payingModal = _this2.openLoadingModal();
_context2.next = 3;
return _this2.store.commit();
case 3:
result = _context2.sent;
if (!(result === true)) {
_context2.next = 11;
break;
}
//成功
//提示成功
payingModal && payingModal.destroy();
_mutantsMicrofx.stores.voucherStore.settleSuccess && _mutantsMicrofx.stores.voucherStore.settleSuccess({ openCashBox: false });
_mutantsMicrofx.history.push('/selfSuccess');
_promise2.default.resolve();
_context2.next = 15;
break;
case 11:
payingModal && payingModal.destroy();
_mutantsMicrofx.history.push('/selfFailure');
_context2.next = 15;
return _promise2.default.reject();
case 15:
case 'end':
return _context2.stop();
}
}
}, _callee2, _this3);
}));
_this2.state = {
showModal: false,
showPwd: false
// isOpen:false,
};
_this2.close = _this2.close.bind(_this2);
_this2.open = _this2.open.bind(_this2);
return _this2;
}
(0, _createClass3.default)(_default, [{
key: 'getQueryString',
value: function getQueryString(search, type) {
var reg = new RegExp("(^|&)" + type + "=([^&]*)(&|$)", "i");
var r = search.substr(1).match(reg);
if (r != null) return r[2];return null;
}
}, {
key: 'close',
value: function close() {
this.setState({
showModal: false
});
}
}, {
key: 'open',
value: function open() {
this.setState({
showModal: true
});
}
}, {
key: 'componentWillMount',
value: function componentWillMount() {
var selfSettlementStore = this.context.stores.selfSettlementStore;
this.store = selfSettlementStore;
}
}, {
key: 'componentDidMount',
value: function componentDidMount() {
this.store.getPaymodes();
this.store.init(_mutantsMicrofx.stores.voucherStore);
this.bindBodyClick();
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.removeBodyClick();
}
}, {
key: 'getInput',
value: function getInput() {
var el = document.querySelector('.active-el');
console.log("get input ..........");
var _this = this;
var code = "";
var lastTime = void 0,
nextTime = void 0;
var lastCode = void 0,
nextCode = void 0;
el.onkeypress = function (e) {
nextCode = e.which;
nextTime = new Date().getTime();
if (lastCode != null && lastTime != null && nextTime - lastTime <= 30) {
code += String.fromCharCode(lastCode);
} else if (lastCode != null && lastTime != null && nextTime - lastTime > 100) {
code = "";
}
lastCode = nextCode;
lastTime = nextTime;
if (e.which == 13) {
console.log("付款码信息" + ('' + code));
var barcode = code;
code = "";
_this.addInvent(barcode);
}
};
}
}, {
key: 'renderLeft',
value: function renderLeft() {
return _react2.default.createElement(
'div',
{ className: 'member-input-left' },
_react2.default.createElement(
'span',
null,
'\u8BF7\u5C06\u4F1A\u5458\u5361'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'span',
null,
'\u5BF9\u51C6\u53F3\u4E0B\u65B9\u626B\u63CF\u53E3'
)
);
}
}, {
key: 'renderToolbtn',
value: function renderToolbtn(mode, index, czkenabled) {
var _this4 = this;
return _react2.default.createElement(
'div',
{ key: index + "", className: (0, _classnames2.default)({ 'paymode': true, 'paymodeSelected': false, 'paymodeDisabled': !czkenabled }), onClick: function onClick() {
_this4.onTabsClick(mode, czkenabled);
} },
_react2.default.createElement(
'div',
{ className: 'logo' },
_react2.default.createElement(
'div',
{ className: 'icon' },
_react2.default.createElement(_tplusComponentsTouch.Ticon, { type: _utils.PayIcon[mode.paymentType] || _utils.PayIcon['default'] })
)
),
_react2.default.createElement(
'div',
{ className: 'text' },
mode.name.length > 8 ? (0, _truncate3.default)(mode.name, { length: 7, omission: '' }) + '...' : mode.name
)
);
}
}, {
key: 'getValue',
value: function getValue(retail, fieldName) {
var voucherDetail = _mutantsMicrofx.stores.voucherStore.voucherVM.voucherDetail;
return _common2.default.formatValue(voucherDetail.find(function (column) {
return column.FieldName == fieldName;
}), retail[fieldName]);
}
}, {
key: 'render',
value: function render() {
var _this5 = this;
var _store = this.store,
paymodes = _store.paymodes,
amount = _store.amount,
quantity = _store.quantity,
discount = _store.discount,
member = _store.member,
czkenabled = _store.czkenabled,
quickmode = _store.quickmode;
var that = this;
var dto = _mutantsMicrofx.stores.voucherStore.data.dto;
var content = _react2.default.createElement(
'div',
{ className: 'detailContent' },
_react2.default.createElement(
'ul',
null,
dto.RetailDetails.map(function (retail, index) {
var name = retail.Inventory && retail.Inventory.Name;
var taxPrice = _this5.getValue(retail, 'TaxPrice');
var retailPrice = _this5.getValue(retail, 'RetailPrice');
var quantity = _this5.getValue(retail, 'Quantity');
var taxAmount = _this5.getValue(retail, 'TaxAmount');
var select = false;
return _react2.default.createElement(
'li',
{ key: retail.Code, className: 'sku ' + (select ? 'sku-select' : '') },
_react2.default.createElement(
'div',
{ className: 'top' },
retail.badge && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'zeng', className: 'zeng' }),
_react2.default.createElement(
'span',
{ className: 'dname' },
name
)
),
_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: 'dquantity' },
'X ',
quantity
),
_react2.default.createElement(
'span',
{ className: 'tax-amount' },
'\uFFE5',
taxAmount
)
)
);
})
)
);
var scanname = quickmode ? quickmode.paymentType == _utils.PayStyle.smzf ? '微信或支付宝' : quickmode.name : '';
return _react2.default.createElement(
'div',
{ tabIndex: '-1', className: 'selfSettle active-el' },
_react2.default.createElement(
'div',
{ className: 'content' },
_react2.default.createElement(
'div',
{ className: 'quantity' },
'\u5171' + quantity + '\u4EF6'
),
_react2.default.createElement(
'div',
{ className: 'amount' },
(0, _utils.getFixedNumber)(amount)
),
member && member.id && _react2.default.createElement(
'div',
{ className: 'member' },
_react2.default.createElement(
'span',
{ className: 'title' },
member.type
),
_react2.default.createElement(
'span',
{ className: 'value' },
member.cardNo
)
),
_react2.default.createElement(
'div',
{ className: 'seperator' },
_react2.default.createElement('div', { className: 'left' }),
_react2.default.createElement('div', { className: 'middle' }),
_react2.default.createElement('div', { className: 'right' })
),
_react2.default.createElement(
'div',
{ className: 'total' },
_react2.default.createElement(
'span',
{ className: 'title' },
'\u5546\u54C1\u91D1\u989D'
),
_react2.default.createElement(
'span',
{ className: 'value' },
(0, _utils.getFixedNumber)(Math.Add(amount, discount))
)
),
_react2.default.createElement(
'div',
{ className: 'discount' },
_react2.default.createElement(
'span',
{ className: 'title' },
'\u4F18\u60E0\u91D1\u989D'
),
_react2.default.createElement(
'span',
{ className: 'value' },
(0, _utils.getFixedNumber)(discount)
)
),
_react2.default.createElement(
'div',
{ className: 'detail' },
_react2.default.createElement(
'span',
{ className: 'value' },
_react2.default.createElement(_popover2.default, { content: content })
)
),
_react2.default.createElement(
'div',
{ className: 'barcodecontainer' },
_react2.default.createElement('div', { className: 'barcode' })
),
_react2.default.createElement(
'div',
{ className: 'tips1' },
'\u8BF7\u6253\u5F00 ' + scanname + ' \u4ED8\u6B3E\u7801'
),
_react2.default.createElement(
'div',
{ className: 'tips2' },
'\u5BF9\u51C6\u53F3\u4E0B\u65B9\u626B\u63CF\u533A'
),
(0, _filter3.default)(paymodes, function (mode) {
return !mode.isQuick;
}).length > 0 && _react2.default.createElement(
'div',
{ className: 'otherpaymodes' },
'\u5176\u4ED6\u652F\u4ED8\u65B9\u5F0F'
),
_react2.default.createElement(
'div',
{ className: 'paymodes' },
(0, _map3.default)((0, _filter3.default)(paymodes, function (mode) {
return !mode.isQuick;
}), function (mode, index) {
return _this5.renderToolbtn(mode, index, czkenabled);
})
),
_react2.default.createElement(
'div',
{ className: 'button' },
_react2.default.createElement(
_Button3.default,
{ className: 'pay', onClick: this.btnClick },
'\u53D6\u6D88\u652F\u4ED8'
)
)
),
_react2.default.createElement(_tipNumKbModalVertical2.default, {
className: 'member-tipmodal',
visible: this.state.showModal,
placeholder: '请输入储值卡号或手机号',
value: member && member.id ? member.cardNo : '',
cancel: function cancel() {
that.store.setQuickmode();that.setState({ showModal: false });
},
title: '使用储值卡',
leftView: this.renderLeft,
ok: function ok(input) {
_this5.searchMember(input);
}
}),
this.state.showPwd && _react2.default.createElement(_pwd2.default, {
visible: this.state.showPwd,
cancel: function cancel() {
that.store.setQuickmode();that.bindBodyClick();that.setState({ showPwd: false });
},
title: '储值卡密码',
placeholder: '请输入密码',
cardno: member && member.cardNo,
balance: member && member.balance,
ok: function ok(val) {
return _this5.validePwd(val);
}
})
);
}
}]);
return _default;
}(_react.Component), _class2.contextTypes = {
stores: _propTypes2.default.object
}, _temp)) || _class;
exports.default = _default;
//# sourceMappingURL=selfSettlement.js.map