UNPKG

tplus-pos

Version:

pos module

655 lines (569 loc) 25.8 kB
'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