UNPKG

tplus-pos

Version:

pos module

427 lines (355 loc) 18.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _Row2 = require('tinper-bee/dist/Row'); var _Row3 = _interopRequireDefault(_Row2); var _Col2 = require('tinper-bee/dist/Col'); var _Col3 = _interopRequireDefault(_Col2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); 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, _temp; require('tinper-bee/dist/Row/index.css'); require('tinper-bee/dist/Col/index.css'); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _mobx = require('mobx'); var _mobx2 = _interopRequireDefault(_mobx); var _tplusComponentsTouch = require('tplus-components-touch'); var _mutantsMicrofx = require('mutants-microfx'); var _mutantsAppfx = require('mutants-appfx'); var _pageStores = require('../../pageStores'); var _tools = require('../../util/tools.js'); var _tools2 = _interopRequireDefault(_tools); var _common = require('../../util/common.js'); var _common2 = _interopRequireDefault(_common); var _get2 = require('lodash/get'); var _get3 = _interopRequireDefault(_get2); var _throttle2 = require('lodash/throttle'); var _throttle3 = _interopRequireDefault(_throttle2); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _uiCommon = require('../../util/uiCommon.js'); var _uiCommon2 = _interopRequireDefault(_uiCommon); var _ControlSerialNumberProcessor = require('../../domain/retail/validate/controlSerialNumber/ControlSerialNumberProcessor'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Footer = _tplusComponentsTouch.Layout.Footer, Content = _tplusComponentsTouch.Layout.Content; var VoucherBody = (_dec = (0, _mutantsAppfx.injectViewModel)('Voucher'), _dec(_class = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = function (_Component) { (0, _inherits3.default)(VoucherBody, _Component); function VoucherBody(props, context) { (0, _classCallCheck3.default)(this, VoucherBody); var _this = (0, _possibleConstructorReturn3.default)(this, (VoucherBody.__proto__ || (0, _getPrototypeOf2.default)(VoucherBody)).call(this, props, context)); _this.resize = function () { _this.setTableHeight(); _this.getCarPostion(); }; _this.setTableHeight = function () { setTimeout(function () { var height = Number(_this.tableDom.clientHeight); _this.setState({ tableHeight: height }); }, 0); }; _this.isReturn = function () { var dataModel = _this.props.viewModel.store.data; var idBusiType = dataModel.IdbusiType; var isReturn = idBusiType === 35; return isReturn; }; _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 }); controllerEvent('setInventoryFocus'); 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) _tplusComponentsTouch.Message.info(uiState.disableTip); return; } controllerEvent('updateFieldFlow', { index: index, record: record, fieldName: fieldName }); break; case 'click': controllerEvent('selectRow', { index: index, record: record }); } }; _this.authorityValidate = function (_ref) { var _callback = _ref.callback; var controllerEvent = _this.props.controllerEvent; _uiCommon2.default.mask({}); // 需要异步校验 return new _promise2.default(function (resolve, reject) { controllerEvent('authorityValidate', { callback: function callback(result) { _uiCommon2.default.deleteMask({ async: true }); _callback && _callback(result); resolve(result); } }); }); }; _this.openClick = function () { var openStatus = _this.state.openStatus; _this.setState({ openStatus: !openStatus }); }; _this.state = { tableHeight: 200, openStatus: false }; _this.height = 50; return _this; } (0, _createClass3.default)(VoucherBody, [{ key: 'componentWillMount', value: function componentWillMount() { this.resizeThrottled = (0, _throttle3.default)(this.resize, 100); } }, { key: 'componentDidMount', value: function componentDidMount() { this.resize(); /* 监听页面resize */ window.addEventListener('resize', this.resizeThrottled); } }, { key: 'componentWillReact', value: function componentWillReact() { var _this2 = this; setTimeout(function () { var viewInfo = _this2.props.viewModel; var dataSource = _mobx2.default.toJS(viewInfo.data); if (dataSource && !dataSource.length || !dataSource) { _this2.setState({ openStatus: false }); } }); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { window.removeEventListener('resize', this.resizeThrottled); } }, { key: 'componentDidUpdate', value: function componentDidUpdate() { this.scrollIntoView(); } }, { key: 'scrollIntoView', value: function scrollIntoView() { var viewInfo = this.props.viewModel; var targetIndex = _mobx2.default.toJS(viewInfo.targetIndex); var scrollDom = this.tableDom.getElementsByClassName('u-table-body')[0]; if (scrollDom) { var scrollTopMin = this.height * (targetIndex + 1) - scrollDom.clientHeight; var scrollTopMax = this.height * targetIndex; var scrollTop = scrollDom.scrollTop; if (scrollTopMin > 5) { if (scrollTop < scrollTopMin) scrollDom.scrollTop = scrollTopMin; if (scrollTop > scrollTopMax) scrollDom.scrollTop = scrollTopMax; } } } }, { key: 'getCarPostion', value: function getCarPostion() { var _this3 = this; setTimeout(function () { var boundingClientRect = _this3.detailElement.getBoundingClientRect(); var y = boundingClientRect.y; var x = boundingClientRect.x; _pageStores.voucherStateStore.changeCarPosition({ x: x, y: y }); }, 0); } }, { key: 'getWaterMark', value: function getWaterMark() { var isReturn = this.isReturn(); var stateStore = _pageStores.voucherStateStore; var waterMark = ''; if (isReturn && stateStore.mode === 'practice') { waterMark = '练习退货'; } if (!isReturn && stateStore.mode === 'practice') { waterMark = '练习收银'; } if (isReturn && stateStore.mode === 'formal') { waterMark = '零售退货'; } return waterMark; } /* 结算校验 */ }, { key: 'render', value: function render() { var _this4 = this; var viewInfo = this.props.viewModel; var dataSource = _mobx2.default.toJS(viewInfo.data), columns = _mobx2.default.toJS(viewInfo.columns), targetIndex = _mobx2.default.toJS(viewInfo.targetIndex); var targetData = _mobx2.default.toJS(viewInfo.retailDetails[targetIndex]); var voucherDetail = _mobx2.default.toJS(viewInfo.voucherDetail); console.log('voucher_voucherDetail=======', voucherDetail); console.log('voucher_columns=======', columns); console.log('targetData=======', targetData); var voucherDetailPropsShowCount = 0; var waterMark = this.getWaterMark(); var nameField = voucherDetail.find(function (el) { return el.FieldName === 'Inventory.Name'; }); var codeField = voucherDetail.find(function (el) { return el.FieldName === 'Inventory.Code'; }); var hasDataSource = !!dataSource.length; var footerStyle = { opacity: hasDataSource ? 1 : 0 }; var openStatus = this.state.openStatus; console.log(openStatus, 'status---'); return _react2.default.createElement( _tplusComponentsTouch.Layout, { className: this.props.className, style: { height: '100%', position: 'relative' } }, _react2.default.createElement( Content, { className: _tplusComponentsTouch.hotKey.hotKeyBindClass('1', 'voucher-table') }, _react2.default.createElement( 'div', { style: { height: "100%", 'overflow': 'hidden' }, ref: function ref(dom) { _this4.tableDom = dom; } }, _react2.default.createElement(_tplusComponentsTouch.TouchTable, { badge: true, mergeQuantityUnit: true, waterMark: waterMark, waterMarkOption: { color: '#bebebe' }, headerHeight: 40, height: this.height, tableHeight: this.state.tableHeight - (hasDataSource ? 90 : 0), dataSource: dataSource, columns: columns, rowIndex: targetIndex, emptyStyle: waterMark ? 'none' : undefined, authorityValidate: this.authorityValidate, rowClick: function rowClick(type, index, record, fieldName) { _this4.rowClick(type, index, record, fieldName); } }) ) ), _react2.default.createElement( Footer, { className: 'voucher-RetailDetails ' + (openStatus && 'open'), style: targetData ? footerStyle : (0, _extends3.default)({ 'background': 'white', 'boxShadow': 'none' }, footerStyle) }, _react2.default.createElement( 'div', { className: 'openBtn', onClick: this.openClick }, _react2.default.createElement( 'span', null, openStatus ? '收起' : '展开' ), openStatus ? _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'iconBtn', type: 'shouqi1' }) : _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'iconBtn', type: 'zhankai' }) ), _react2.default.createElement( 'div', { className: 'voucher-RetailDetails-content scroll-bar ' + (openStatus && 'open'), style: targetData ? {} : { 'background': 'white', 'boxShadow': 'none' }, ref: function ref(dom) { _this4.detailElement = dom; } }, _react2.default.createElement( _tplusComponentsTouch.TouchScroll, null, !!targetData && _react2.default.createElement( 'div', { style: { padding: 10 } }, _react2.default.createElement( 'div', { className: 'u-title', style: { "overflow": 'hidden' } }, _react2.default.createElement( 'span', { className: 'left' }, nameField && nameField.Visible ? JSON.getCellValue(targetData, 'Inventory.Name') : null ), _react2.default.createElement('br', null), codeField && codeField.Visible && _react2.default.createElement( 'span', { className: 'left2' }, '商品编码:' + JSON.getCellValue(targetData, 'Inventory.Code') ) ), _react2.default.createElement( _Row3.default, null, voucherDetail.map(function (el, index) { if (!el.Visible) return; if (el.Name === 'Quantity' || el.Name === 'TaxPrice' || el.Name === 'TaxAmount') return; // 隐藏数量、单价、金额 var textAlign = void 0, value = void 0, title = void 0; if (el.FieldName === 'Inventory.Name' || el.FieldName === 'Inventory.Code') return null; /* 获取title/value */ title = el.Title; value = JSON.getCellValue(targetData, el.FieldName); /* 数据格式化 */ value = _common2.default.formatValue(el, value); console.log('voucherdetail======', title, value); // let show=!tools.isNull(value);//暂时全部显示 var show = true; if (show) { voucherDetailPropsShowCount++; if (voucherDetailPropsShowCount % 2 === 0) { textAlign = 'right'; } else { textAlign = 'left'; } } return show && _react2.default.createElement( _Col3.default, { className: 'col', md: 6, xs: 6, sm: 6, key: index, style: { textAlign: textAlign } }, _react2.default.createElement( 'span', { className: 'title' }, title, ':' ), _react2.default.createElement( 'span', { className: 'value' }, value ) ); }) ) ) ) ) ) ); } }]); return VoucherBody; }(_react.Component), _class2.contextTypes = { onEvent: _propTypes2.default.func }, _temp)) || _class) || _class); exports.default = VoucherBody; //# sourceMappingURL=voucherBody.js.map