tplus-pos
Version:
pos module
427 lines (355 loc) • 18.1 kB
JavaScript
'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