UNPKG

yyuap-ref

Version:

cloud os fe ref project which is based on tinper

508 lines (465 loc) 18.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _transfer = require('../../bee/transfer'); var _transfer2 = _interopRequireDefault(_transfer); require('./transfer.css'); var _transfer3 = { 'transferDivWrap': 'transferDivWrap__transfer___1Ip7o', 'transferWrap': 'transferWrap__transfer___WQ4OL', 'allTransferRightBtnStyle': 'allTransferRightBtnStyle__transfer___3Larh', 'allTransferLeftBtnStyle': 'allTransferLeftBtnStyle__transfer___2Vt3-', 'allTransferTopBtnStyle': 'allTransferTopBtnStyle__transfer___IgWo1', 'allTransferBottomBtnStyle': 'allTransferBottomBtnStyle__transfer___2oYi5', 'allTransferTopUpBtnStyle': 'allTransferTopUpBtnStyle__transfer___9pdrY', 'allTransferBottomDownBtnStyle': 'allTransferBottomDownBtnStyle__transfer___1_y7S', 'topInfo': 'topInfo__transfer___HvP3M', 'topLeftInfo': 'topLeftInfo__transfer___2PIMJ', 'topRightInfo': 'topRightInfo__transfer___26zgg', 'buttomInfoWrap': 'buttomInfoWrap__transfer___3rWe5', 'leftInfoStyle': 'leftInfoStyle__transfer___w8K9n', 'rightInfoStyle': 'rightInfoStyle__transfer___22uaf', 'saveBtnStyle': 'saveBtnStyle__transfer___WPcA7', 'delBtnStyle': 'delBtnStyle__transfer___3avTn' }; var _icon = require('../../bee/icon'); var _icon2 = _interopRequireDefault(_icon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var TransferDiv = function (_Component) { _inherits(TransferDiv, _Component); function TransferDiv(props) { _classCallCheck(this, TransferDiv); var _this = _possibleConstructorReturn(this, (TransferDiv.__proto__ || Object.getPrototypeOf(TransferDiv)).call(this, props)); _this.filterOption = function (inputValue, option) { return option.title.indexOf(inputValue) > -1; }; _this.handleChange = function (targetKeys) { _this.setState({ targetKeys: targetKeys }); _this.props.setTargetKeys(targetKeys); }; _this.state = { transferData: [], //全部 targetKeys: props.targetKeys, //右边框 selectedKeys: [], //标记选中 sourceDesc: {}, //记录左边信息 targetDesc: {}, //记录右边信息 buttonText: _this.props.buttonText }; _this.allTransferSave = _this.allTransferSave.bind(_this); _this.allTransferCancel = _this.allTransferCancel.bind(_this); _this.TransferSelectUp = _this.TransferSelectUp.bind(_this); _this.TransferSelectDown = _this.TransferSelectDown.bind(_this); _this.downTransferSelectDown = _this.downTransferSelectDown.bind(_this); _this.upTransferSelectUp = _this.upTransferSelectUp.bind(_this); return _this; } _createClass(TransferDiv, [{ key: 'componentDidMount', value: function componentDidMount() { var _props = this.props, transferData = _props.transferData, targetKeys = _props.targetKeys; this.setState({ transferData: transferData, targetKeys: targetKeys }); } }, { key: 'componentWillReceiveProps', value: function componentWillReceiveProps(nextProps) { var transferData = nextProps.transferData; this.setState({ transferData: transferData }); } }, { key: 'allTransferSave', value: function allTransferSave() { var transferData = this.state.transferData; var tempKey = transferData.map(function (v) { return v.key; }); this.setState({ targetKeys: tempKey }); this.props.setTargetKeys(tempKey); } }, { key: 'allTransferCancel', value: function allTransferCancel() { this.setState({ targetKeys: [] }); this.props.setTargetKeys([]); } }, { key: 'TransferSelectUp', value: function TransferSelectUp() { var _state = this.state, targetKeys = _state.targetKeys, selectedKeys = _state.selectedKeys; var selectedTargetKeys = []; targetKeys.forEach(function (v, i) { selectedKeys.forEach(function (v2, i2) { if (v2 == v) { selectedTargetKeys.push({ key: v, index: i }); } }); }); console.log(targetKeys, selectedKeys, selectedTargetKeys); if (selectedTargetKeys.length == 1) { this.scopeupRecord(targetKeys, selectedTargetKeys[0].index); this.setState({ targetKeys: targetKeys }); } } }, { key: 'upTransferSelectUp', value: function upTransferSelectUp() { var _state2 = this.state, targetKeys = _state2.targetKeys, selectedKeys = _state2.selectedKeys; var selectedTargetKeys = []; targetKeys.forEach(function (v, i) { selectedKeys.forEach(function (v2, i2) { if (v2 == v) { selectedTargetKeys.push({ key: v, index: i }); } }); }); console.log(targetKeys, selectedKeys, selectedTargetKeys); if (selectedTargetKeys.length == 1) { this.scopeupupRecord(targetKeys, selectedTargetKeys[0].index); this.setState({ targetKeys: targetKeys }); } } }, { key: 'swapItems', value: function swapItems(arr, index1, index2) { arr[index1] = arr.splice(index2, 1, arr[index1])[0]; return arr; } }, { key: 'scopeupRecord', value: function scopeupRecord(arr, $index) { if ($index == 0) { return; } this.swapItems(arr, $index, $index - 1); } }, { key: 'scopedownRecord', // 下移 value: function scopedownRecord(arr, $index) { if ($index == arr.length - 1) { return; } this.swapItems(arr, $index, $index + 1); } }, { key: 'scopedowndownRecord', value: function scopedowndownRecord(arr, $index) { if ($index == arr.length - 1) { return; } this.swapItems(arr, $index, arr.length - 1); } }, { key: 'scopeupupRecord', value: function scopeupupRecord(arr, $index) { if ($index == 0) { return; } this.swapItems(arr, $index, 0); } }, { key: 'TransferSelectDown', value: function TransferSelectDown() { var _state3 = this.state, targetKeys = _state3.targetKeys, selectedKeys = _state3.selectedKeys; var selectedTargetKeys = []; targetKeys.forEach(function (v, i) { selectedKeys.forEach(function (v2, i2) { if (v2 == v) { selectedTargetKeys.push({ key: v, index: i }); } }); }); console.log(targetKeys, selectedKeys, selectedTargetKeys); if (selectedTargetKeys.length == 1) { this.scopedownRecord(targetKeys, selectedTargetKeys[0].index); this.setState({ targetKeys: targetKeys }); } } }, { key: 'downTransferSelectDown', value: function downTransferSelectDown() { var _state4 = this.state, targetKeys = _state4.targetKeys, selectedKeys = _state4.selectedKeys; var selectedTargetKeys = []; targetKeys.forEach(function (v, i) { selectedKeys.forEach(function (v2, i2) { if (v2 == v) { selectedTargetKeys.push({ key: v, index: i }); } }); }); console.log(targetKeys, selectedKeys, selectedTargetKeys); if (selectedTargetKeys.length == 1) { this.scopedowndownRecord(targetKeys, selectedTargetKeys[0].index); this.setState({ targetKeys: targetKeys }); } } }, { key: 'onSelectChange', value: function onSelectChange(sourceSelectedKeys, targetSelectedKeys) { var tempSourceKey = '', tempTargetKey = ''; if (sourceSelectedKeys.length > 0) { var tempSourceKey = sourceSelectedKeys[sourceSelectedKeys.length - 1]; } if (targetSelectedKeys.length > 0) { var tempTargetKey = targetSelectedKeys[targetSelectedKeys.length - 1]; } var transferData = this.state.transferData; var sourceDesc = transferData.filter(function (v, k) { return v.refpk === tempSourceKey; }); var targetDesc = transferData.filter(function (v, k) { return v.refpk === tempTargetKey; }); this.setState({ sourceDesc: sourceDesc[0] || {}, targetDesc: targetDesc[0] || {}, selectedKeys: sourceSelectedKeys.concat(targetSelectedKeys) }); } }, { key: 'saveBtnClick', value: function saveBtnClick() { var _state5 = this.state, transferData = _state5.transferData, targetKeys = _state5.targetKeys; // var needTransferData = transferData.filter((v,k)=>{ // return targetKeys.some(targetCode => v.refpk === targetCode ) // }) var needTransferData = []; targetKeys.forEach(function (v, i) { transferData.forEach(function (v2, i2) { if (v == v2.refpk) { needTransferData.push(v2); } }); }); this.props.transferSave(targetKeys, needTransferData); } }, { key: 'cancelBtnClick', value: function cancelBtnClick() { this.props.transferCancel(); } }, { key: 'render', value: function render() { var _state6 = this.state, transferData = _state6.transferData, sourceDesc = _state6.sourceDesc, targetDesc = _state6.targetDesc, selectedKeys = _state6.selectedKeys, targetKeys = _state6.targetKeys, buttonText = _state6.buttonText; var _props2 = this.props, showKey = _props2.showKey, isHasSearch = _props2.isHasSearch, language = _props2.language; var saveButton = "确认"; var cancelButton = "取消"; if (buttonText) { saveButton = buttonText.ok; cancelButton = buttonText.cancel; } switch (language) { case "zh_CN": break; case "en_US": saveButton = 'Ok'; cancelButton = 'Cancel'; break; case "zh_TW": saveButton = '確認'; break; case "fr_FR": saveButton = 'Confirmation'; cancelButton = 'Annuler'; break; case "de_DE": saveButton = 'Bestätigt'; cancelButton = 'Abgesagt'; break; case "ja_JP": saveButton = '確認する'; cancelButton = '取り消す'; break; default: break; } var tempTransferData = transferData.filter(function (v) { return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) == 'object'; }).map(function (v, k) { v.key = v.refpk; v.title = v[showKey] || v.peoname; //*****&*&*&*&*&*修改 return v; }); var _props3 = this.props, _props3$textOption = _props3.textOption, textOption = _props3$textOption === undefined ? {} : _props3$textOption, searchtext = _props3.searchtext, nodata = _props3.nodata; var _textOption$leftTrans = textOption.leftTransferText, leftTransferText = _textOption$leftTrans === undefined ? '左穿梭框' : _textOption$leftTrans, _textOption$rightTran = textOption.rightTransferText, rightTransferText = _textOption$rightTran === undefined ? '右穿梭框' : _textOption$rightTran; var _textOption$leftInfo = textOption.leftInfo, leftInfo = _textOption$leftInfo === undefined ? [] : _textOption$leftInfo, _textOption$rightInfo = textOption.rightInfo, rightInfo = _textOption$rightInfo === undefined ? [] : _textOption$rightInfo; var leftInfoList = leftInfo.map(function (v, k) { if (v.text.length == 0) { return; } return _react2.default.createElement( 'div', { key: k }, v.text, ':', sourceDesc[v.key] ); }); var rightInfoList = rightInfo.map(function (v, k) { if (v.text.length == 0) { return; } return _react2.default.createElement( 'div', { key: k }, v.text, ':', targetDesc[v.key] ); }); var noDataDisplay = function noDataDisplay() { return _react2.default.createElement( 'div', null, nodata ); }; return _react2.default.createElement( 'div', { className: 'yyuap5-transferDivWrap ' + _transfer3.transferDivWrap }, _react2.default.createElement( 'div', { className: 'yyuap5-topInfo ' + _transfer3.topInfo }, _react2.default.createElement( 'div', { className: 'yyuap5-topLeftInfo ' + _transfer3.topLeftInfo }, leftTransferText ), _react2.default.createElement( 'div', { className: 'yyuap5-topRightInfo ' + _transfer3.topRightInfo }, rightTransferText ) ), _react2.default.createElement( 'div', { className: 'yyuap5-topRightInfo ' + _transfer3.transferWrap }, _react2.default.createElement(_transfer2.default, { showSearch: isHasSearch ? false : true, dataSource: tempTransferData, onSelectChange: this.onSelectChange.bind(this), selectedKeys: selectedKeys, filterOption: this.filterOption, targetKeys: targetKeys, onChange: this.handleChange, render: function render(item) { return item.title; } // render={<Dnd list={item} onStart={this.onDragStart} onStop={this.onDragEnd} />} , searchPlaceholder: searchtext, notFoundContent: noDataDisplay() }), _react2.default.createElement( 'button', { onClick: this.allTransferCancel, className: _transfer3.allTransferLeftBtnStyle }, _react2.default.createElement(_icon2.default, { type: 'uf-2arrow-left' }) ), _react2.default.createElement( 'button', { onClick: this.allTransferSave, className: _transfer3.allTransferRightBtnStyle }, _react2.default.createElement(_icon2.default, { type: 'uf-2arrow-right' }) ) ), _react2.default.createElement( 'div', { className: _transfer3.buttomInfoWrap }, _react2.default.createElement( 'div', { className: _transfer3.leftInfoStyle }, leftInfoList ), _react2.default.createElement( 'div', { className: _transfer3.rightInfoStyle }, rightInfoList ) ), _react2.default.createElement( 'button', { onClick: this.upTransferSelectUp, className: _transfer3.allTransferTopUpBtnStyle }, _react2.default.createElement(_icon2.default, { type: 'uf-2arrow-up' }) ), _react2.default.createElement( 'button', { onClick: this.downTransferSelectDown, className: _transfer3.allTransferBottomDownBtnStyle }, _react2.default.createElement(_icon2.default, { type: 'uf-2arrow-down' }) ), _react2.default.createElement( 'button', { onClick: this.TransferSelectUp, className: _transfer3.allTransferTopBtnStyle }, _react2.default.createElement(_icon2.default, { type: 'uf-arrow-up' }) ), _react2.default.createElement( 'button', { onClick: this.TransferSelectDown, className: _transfer3.allTransferBottomBtnStyle }, _react2.default.createElement(_icon2.default, { type: 'uf-arrow-down' }) ), _react2.default.createElement( 'button', { className: 'Ref5delBtnStyle ' + _transfer3.delBtnStyle, onClick: this.cancelBtnClick.bind(this) }, cancelButton ), _react2.default.createElement( 'button', { className: 'Ref5saveBtnStyle ' + _transfer3.saveBtnStyle, onClick: this.saveBtnClick.bind(this) }, saveButton ) ); } }]); return TransferDiv; }(_react.Component); exports.default = TransferDiv; module.exports = exports['default'];