tplus-pos
Version:
pos module
458 lines (395 loc) • 15.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _Tabs3 = require('tinper-bee/dist/Tabs');
var _Tabs4 = _interopRequireDefault(_Tabs3);
var _Button6 = require('tinper-bee/dist/Button');
var _Button7 = _interopRequireDefault(_Button6);
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/Tabs/index.css');
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 _mutantsMicrofx = require('mutants-microfx');
var _mutantsAppfx = require('mutants-appfx');
var _common = require('../../../util/common');
var _common2 = _interopRequireDefault(_common);
var _tplusComponentsTouch = require('tplus-components-touch');
var _tplusPoslogin = require('tplus-poslogin');
var _mutantsUtil = require('mutants-util');
require('./style.less');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TabPane = _Tabs4.default.TabPane;
var DataList = (_dec = (0, _mutantsMicrofx.translate)('posTouch'), _dec(_class = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = function (_TemplateComponent) {
(0, _inherits3.default)(DataList, _TemplateComponent);
function DataList(props, context) {
(0, _classCallCheck3.default)(this, DataList);
//是否移动端
var _this = (0, _possibleConstructorReturn3.default)(this, (DataList.__proto__ || (0, _getPrototypeOf2.default)(DataList)).call(this));
_this.state = {
eventHanding: false
};
_this.reduceTabbarKeyControll = function () {
setTimeout(function () {
// 阻止tinper-bee 组件库通过上下左右键控制tabbar
var tabbar = document.querySelector(".u-tabs-bar");
tabbar ? tabbar.onkeydown = function (e) {
console.log(e);
} : null;
}, 1000);
};
_this.fireEvent = function () {
var _this$context;
_this.setState({
eventHanding: true
});
return (_this$context = _this.context).onEvent.apply(_this$context, arguments).then(function () {
_this.setState({
eventHanding: false
});
});
};
_this.handleOk = function () {
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
var dataList = planList.activeDetail;
_this.fireEvent(planList, 'onDetailOk').then(function () {
dataList.hide('ok');
});
_this.setState({
text: ''
});
};
_this.handleCancel = function () {
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
var dataList = planList.activeDetail;
dataList.hide('cancel');
_this.fireEvent(planList, 'onDetailCancel');
planList.activeItem.remove();
_this.setState({
text: ''
});
};
_this.handleRowClick = function (type, index, record, fieldName, rowItem) {
var tabIndex = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
var fieldEditor = _this.context.viewModel.items.find(function (it) {
return it.type === 'TextBoxModal';
});
var column = void 0;
switch (type) {
case 'click':
planList.activeDetail.tabs[tabIndex].setCurrent(record.key);
if (planList.activeDetail.tabs[tabIndex].clickType === 'update') {
planList.activeDetail.tabs[tabIndex].updateRow(record.key, record);
} else {
planList.activeDetail.tabs[tabIndex].copyRow(record.key);
}
_this.fireEvent(planList, 'onRowClick', {
index: index,
tabIndex: tabIndex
});
break;
case 'update':
planList.activeDetail.tabs[tabIndex].updateRow(record.key, record);
break;
case 'updateField':
// if (planList.detailEditor.has(fieldName)) {
// fieldEditor.inputForm({
// formData: {...planList.detailEditor.get(fieldName),Data:[record]},
// cancelable: true
// }, (value) => {
// planList.activeDetail.tabs[tabIndex].updateRow(index, record);
// });
// }
if (!_common2.default.getIsModifyQuantityAuth() && fieldName === 'Quantity') return;
column = planList.activeDetail.tabs[tabIndex].columns.find(function (it) {
return it.key === fieldName;
});
fieldEditor.inputForm({
Title: column.title,
Data: [{
ControlType: column.controlType,
FieldName: fieldName,
Title: column.title,
State: '',
Label: '',
Value: record[fieldName],
type: column.minValue >= 0 ? 'positive' : null,
maxLength: column.maxLength,
precisionLength: column.precision
}],
okable: true,
cancelable: true
}, function (value) {
if (value !== undefined) {
planList.activeDetail.tabs[tabIndex].updateRow(record.key, value);
}
});
break;
case 'delete':
planList.activeDetail.tabs[tabIndex].deleteRow(planList.activeDetail.tabs[tabIndex].data[record.key]);
break;
}
};
_this.handleRowCheck = function (checked, index, tabIndex) {
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
planList.activeDetail.tabs[tabIndex].select(index, checked);
};
_this.handleMoreClick = function (action) {
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
_this.fireEvent(planList, 'onMoreClick', {
action: action
});
};
_this.handleInput = function (val) {
_this.setState({
text: val
});
};
_this.handleSearch = function () {
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
//const row = planList.activeDetail.search(val);
_this.fireEvent(planList, 'onSearch', {
value: _this.state.text
});
_this.setState({
text: ''
});
// if (row){
// planList.activeDetail.addRow(row);
// }
};
_this.handleTabChange = function (tabIndex) {
var planList = _this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
planList.activeDetail.setActiveTab(tabIndex);
};
_this.changeScanProduct = function () {
if (_this.scanObj) _this.scanObj.startScan();
};
_this.onScanResult = function (res) {
_this.setState({
text: res
}, function () {
_this.handleSearch();
});
};
_this.setCurrentSta = function (currentIndex, list) {
return list.findIndex(function (item) {
return item.key == currentIndex;
});
};
var _ref = _mutantsUtil.platform || {},
isHorizontalPad = _ref.isHorizontalPad;
_this.isHorizontalPad = !!isHorizontalPad;
var watchDataChange = function watchDataChange(detial) {
if (_this.disposer) {
_this.disposer();
_this.disposer = null;
}
if (detial) {
var planList = context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
_this.disposer = (0, _mutantsMicrofx.reaction)(function () {
return detial.tabs[0].rows;
}, function (rows) {
_this.fireEvent(planList, 'onDetailChange', rows);
});
}
};
(0, _mutantsMicrofx.reaction)(function () {
return context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
}).activeDetail;
}, watchDataChange);
return _this;
}
(0, _createClass3.default)(DataList, [{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
if (this.disposer) {
this.disposer();
this.disposer = null;
}
}
}, {
key: 'componentDidUpdate',
value: function componentDidUpdate() {
this.reduceTabbarKeyControll();
}
}, {
key: 'componentDidMount',
value: function componentDidMount() {
this.reduceTabbarKeyControll();
}
//移动端:扫描商品
}, {
key: 'render',
value: function render() {
var _this2 = this;
var t = this.props.t;
var planList = this.context.viewModel.items.find(function (it) {
return it.type === 'PlanListModel';
});
var dataList = planList.activeDetail;
if (!dataList) {
return null;
}
return _react2.default.createElement(
_tplusComponentsTouch.ModalWraper,
{
key: 'dataList',
className: 'dataListModal',
show: dataList.visible,
modalType: 'big',
exclueBoard: true,
title: dataList.title,
onHide: this.handleCancel,
footer: _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'span',
{ className: 'tabinfo' },
dataList.activeTab.info
),
_react2.default.createElement(
_Button7.default,
{ disabled: !dataList.activeTab.cancel, onClick: this.handleCancel },
t('取消')
),
_react2.default.createElement(
_Button7.default,
{ type: 'primary', disabled: !dataList.activeTab.ok || this.state.eventHanding, className: 'ok', onClick: this.handleOk },
t('确定')
)
)
},
_react2.default.createElement(
'div',
{ className: 'voucher-body ' + _tplusComponentsTouch.hotKey.hotKeyBindClass('9') },
_react2.default.createElement(
'div',
{ className: ['content', dataList.tabs.length === 1 && planList.extraLabel ? 'showExtra' : '', dataList.tabs.length > 1 ? 'hasTabs' : ''].join(' ') },
_react2.default.createElement(
'div',
{ className: 'kb' },
_react2.default.createElement(_tplusComponentsTouch.Keyboard, { type: 'letter+modal+input', prefix: 'sousuo', placeholder: planList.placeholder, value: this.state.text, onChange: this.handleInput, handleOk: this.handleSearch, handleEnter: this.handleSearch }),
//扫描
this.isHorizontalPad && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'saomiao1', className: 'product-saomiao', onClick: this.changeScanProduct }),
_react2.default.createElement(
_Button7.default,
{ type: 'primary', className: 'ok', onClick: this.handleSearch },
t('搜索')
),
dataList.tabs.length <= 1 ? planList.moreBtns.filter(function (it) {
return it.visible;
}).reverse().map(function (btn, i) {
return _react2.default.createElement(
_Button7.default,
{ key: i, type: 'default', className: 'more', onClick: function onClick() {
return _this2.handleMoreClick(btn.action);
} },
btn.name
);
}) : null,
/* 扫描组件 */
this.isHorizontalPad && _react2.default.createElement(_tplusComponentsTouch.Scan, { ref: function ref(scan) {
return _this2.scanObj = scan;
}, onChange: this.onScanResult })
),
_react2.default.createElement(
'div',
{ className: 'extra' },
dataList.tabs.length === 1 ? planList.extraLabel : null,
_react2.default.createElement(
'span',
null,
dataList.tabs.length === 1 ? dataList.extraMessage : null
)
),
dataList.tabs.length > 1 ? _react2.default.createElement(
_Tabs4.default,
{ defaultActiveKey: '0', activeKey: dataList.activeTabIndex.toString(), className: 'tabs', onChange: this.handleTabChange, extraContent: dataList.activeTabIndex.toString() === '0' ? planList.moreBtns.filter(function (it) {
return it.visible;
}).reverse().map(function (btn, i) {
return _react2.default.createElement(
_Button7.default,
{ key: i, type: 'default', className: 'more', onClick: function onClick() {
return _this2.handleMoreClick(btn.action);
} },
btn.name
);
}) : null },
dataList.tabs.map(function (it, i) {
return _react2.default.createElement(
TabPane,
{ tab: it.title, key: i },
_react2.default.createElement(_tplusComponentsTouch.TouchTable, {
tableHeight: 250,
rowIndex: _this2.setCurrentSta(it.currentIndex, it.rows),
delRow: i === 0,
className: 'table',
checkbox: it.checkEnabled,
cboxClick: function cboxClick() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _this2.handleRowCheck.apply(_this2, args.concat([i]));
},
dataSource: it.rows.slice(),
columns: it.columns.slice(),
rowClick: function rowClick(type, index, record, fieldName) {
return _this2.handleRowClick(type, index, record, fieldName, i);
} })
);
})
) : dataList.tabs.length === 1 ? _react2.default.createElement(_tplusComponentsTouch.TouchTable, {
tableHeight: 250,
rowIndex: this.setCurrentSta(dataList.tabs[0].currentIndex, dataList.tabs[0].rows),
delRow: false,
className: 'table',
checkbox: dataList.tabs[0].checkEnabled,
cboxClick: this.handleRowCheck,
dataSource: dataList.tabs[0].rows.slice(),
columns: dataList.tabs[0].columns.slice(),
rowClick: this.handleRowClick }) : null
)
)
);
}
}]);
return DataList;
}(_mutantsAppfx.TemplateComponent), _class2.propTypes = {
t: _propTypes2.default.func
}, _temp)) || _class) || _class);
exports.default = DataList;
//# sourceMappingURL=index.js.map