yyuap-ref
Version:
cloud os fe ref project which is based on tinper
378 lines (319 loc) • 13.3 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
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 _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _Ref = require('../components/ref/Ref');
var _Ref2 = _interopRequireDefault(_Ref);
var _modal = require('../bee/modal');
var _modal2 = _interopRequireDefault(_modal);
var _formControl = require('../bee/form-control');
var _formControl2 = _interopRequireDefault(_formControl);
require('./index.css');
var _index = {
'contentWrap': 'contentWrap__index___3vxel',
'modalTitleStyle': 'modalTitleStyle__index___2-8E6',
'rightSearchStyle': 'rightSearchStyle__index___3TQAA',
'closeBtnStyle': 'closeBtnStyle__index___2G9j-',
'leftRect': 'leftRect__index___11sRT',
'leftRectTitle': 'leftRectTitle__index___10sof',
'rightRect': 'rightRect__index___3JS5D',
'rightRectTitle': 'rightRectTitle__index___unIxQ'
};
var _button = require('../bee/button');
var _button2 = _interopRequireDefault(_button);
var _icon = require('../bee/icon');
var _icon2 = _interopRequireDefault(_icon);
var _transfer = require('./supportComponents/transfer');
var _transfer2 = _interopRequireDefault(_transfer);
var _leftTree = require('./supportComponents/leftTree');
var _leftTree2 = _interopRequireDefault(_leftTree);
var _utils = require('../utils');
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; }
// import '../assets/index.css';
//refpk
var RefTreeTransfer = function (_Component) {
_inherits(RefTreeTransfer, _Component);
function RefTreeTransfer(props) {
_classCallCheck(this, RefTreeTransfer);
var _this = _possibleConstructorReturn(this, (RefTreeTransfer.__proto__ || Object.getPrototypeOf(RefTreeTransfer)).call(this, props));
var option = _this.props.option;
_this.state = {
isShowModal: true, //是否显示弹窗
searchvalue: '',
treeData: [],
searchContent: '',
transferData: [],
targetKeys: []
};
return _this;
}
_createClass(RefTreeTransfer, [{
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextProps) {
var checkedArray = nextProps.option.checkedArray;
var tempKey = checkedArray && checkedArray.map(function (v) {
return v.refpk;
});
this.setState({
targetKeys: tempKey,
transferData: checkedArray
});
}
}, {
key: 'componentWillMount',
value: function componentWillMount() {
var _this2 = this;
var option = this.props.option;
var language = option.param.locale || 'zh_CN';
(0, _utils.get)(option.refModelUrl.TreeUrl, option.param).then(function (response) {
if (_this2.props.option.onAfterAjax) {
_this2.props.option.onAfterAjax(response);
}
var data = response.data;
_this2.setState({
treeData: data
});
});
var checkedArray = this.props.option.checkedArray;
var tempKey = checkedArray && checkedArray.map(function (v) {
return v.refpk;
});
this.setState({
targetKeys: tempKey,
transferData: checkedArray,
language: language
});
}
}, {
key: 'handleTreeSelect',
value: function handleTreeSelect(data) {
var _this3 = this;
var self = this;
var refpk = data.refpk;
var TableBodyUrl = this.props.option.refModelUrl.TableBodyUrl;
(0, _utils.get)(TableBodyUrl, _extends({ condition: refpk }, self.props.option.param)).then(function (response) {
var data = response.data;
var _self$state = self.state,
transferData = _self$state.transferData,
targetKeys = _self$state.targetKeys;
var selectedData = transferData.filter(function (v) {
return targetKeys.some(function (key) {
return key == v.refpk;
});
});
var temp = data.filter(function (v, k) {
return selectedData.every(function (v1) {
return v1.refpk != v.refpk;
});
});
var tempTransferData = temp.concat(selectedData);
_this3.setState({
transferData: tempTransferData
});
});
}
}, {
key: 'transferSave',
value: function transferSave(targetKeys, needTransferData) {
this.setState({
targetKeys: targetKeys,
transferData: needTransferData
});
this.props.option.onSave(needTransferData);
this.setState({
isShowModal: false
});
this.props.option.destory();
}
}, {
key: 'transferCancel',
value: function transferCancel() {
this.setState({
isShowModal: false
});
this.props.option.onCancel();
this.props.option.destory();
}
}, {
key: 'setTargetKeys',
value: function setTargetKeys(targetKeys) {
this.setState({
targetKeys: targetKeys
});
}
}, {
key: 'onSearchrightSearch',
value: function onSearchrightSearch(e) {
var _this4 = this;
var searchvalue = this.state.searchvalue;
console.log(encodeURI(searchvalue));
if (e.keyCode === 13) {
var self = this;
var TableBodyUrlSearch = this.props.option.refModelUrl.TableBodyUrlSearch;
(0, _utils.get)(TableBodyUrlSearch, _extends({ content: encodeURI(searchvalue) }, self.props.option.param)).then(function (response) {
var data = response.data;
var _self$state2 = self.state,
transferData = _self$state2.transferData,
targetKeys = _self$state2.targetKeys;
var selectedData = transferData.filter(function (v) {
return targetKeys.some(function (key) {
return key == v.refpk;
});
});
var temp = data.filter(function (v, k) {
return selectedData.every(function (v1) {
return v1.refpk != v.refpk;
});
});
var tempTransferData = temp.concat(selectedData);
_this4.setState({
transferData: tempTransferData
});
});
}
}
}, {
key: 'onChangerightSearch',
value: function onChangerightSearch(value) {
this.setState({
searchvalue: value
});
}
}, {
key: 'render',
value: function render() {
var _state = this.state,
searchContent = _state.searchContent,
treeData = _state.treeData,
transferData = _state.transferData,
targetKeys = _state.targetKeys,
language = _state.language;
var _props = this.props,
option = _props.option,
_props$modalOptions = _props.modalOptions,
modalOptions = _props$modalOptions === undefined ? {} : _props$modalOptions;
var isHasSearch = option.refModelUrl.TableBodyUrlSearch ? true : false;
var isShowModal = this.state.isShowModal;
var _option$title = option.title,
title = _option$title === undefined ? '参照默认标题' : _option$title;
var _option$textOption = option.textOption,
textOption = _option$textOption === undefined ? {} : _option$textOption;
var _textOption$leftTitle = textOption.leftTitle,
leftTitle = _textOption$leftTitle === undefined ? '默认树标题' : _textOption$leftTitle,
_textOption$rightTitl = textOption.rightTitle,
rightTitle = _textOption$rightTitl === undefined ? '默认穿梭框' : _textOption$rightTitl;
var searchtext = "搜索";
var nodata = "没有查询到数据";
switch (language) {
case "zh_CN":
searchtext = '搜索';
nodata = '没有查询到数据';
break;
case "en_US":
searchtext = 'Search';
nodata = 'No query to data';
break;
case "zh_TW":
searchtext = '搜索';
nodata = '沒有査詢到數據';
break;
case "fr_FR":
searchtext = 'Recherche';
nodata = 'Pas de données';
break;
case "de_DE":
searchtext = 'Suche';
nodata = 'Keine abfrage zu Daten';
break;
case "ja_JP":
searchtext = '検索';
nodata = 'データが検索されていません';
break;
default:
searchtext = '搜索';
nodata = '没有查询到数据';
}
return _react2.default.createElement(
'div',
null,
isShowModal ? _react2.default.createElement(
_modal2.default,
_extends({
show: true, className: option.className + ' yyuap-ref ' + _index.contentWrap,
backdrop: option.backdrop,
enforceFocus: false
}, modalOptions),
_react2.default.createElement(
_modal2.default.Body,
null,
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'div',
{ className: 'yyuap5-modalTitleStyle ' + _index.modalTitleStyle },
title
),
_react2.default.createElement(_icon2.default, { onClick: this.transferCancel.bind(this), className: 'yyuap5-closeBtnStyle ' + _index.closeBtnStyle, type: 'uf-close-bold' })
),
_react2.default.createElement(
'div',
{ className: 'yyuap5-leftRect ' + _index.leftRect },
_react2.default.createElement(
'div',
{ className: 'yyuap5-leftRectTitle ' + _index.leftRectTitle },
leftTitle
),
_react2.default.createElement(_leftTree2.default, { data: treeData, handleTreeSelect: this.handleTreeSelect.bind(this), searchtext: searchtext })
),
_react2.default.createElement(
'div',
{ className: 'yyuap5-rightRect ' + _index.rightRect },
_react2.default.createElement(
'div',
{ className: 'yyuap5-rightRect ' + _index.rightRectTitle },
rightTitle,
isHasSearch ? _react2.default.createElement(
'div',
{ className: 'yyuap5-rightRect ' + _index.rightSearchStyle },
_react2.default.createElement(_formControl2.default, {
onKeyUp: this.onSearchrightSearch.bind(this),
onChange: this.onChangerightSearch.bind(this),
placeholder: searchtext
}),
_react2.default.createElement('i', { className: 'uf uf-search' })
) : null
),
_react2.default.createElement(_transfer2.default, {
textOption: textOption,
transferData: transferData,
targetKeys: targetKeys,
showKey: option.showKey,
setTargetKeys: this.setTargetKeys.bind(this),
transferSave: this.transferSave.bind(this),
transferCancel: this.transferCancel.bind(this),
buttonText: option.buttonText,
isHasSearch: isHasSearch,
language: language,
searchtext: searchtext,
nodata: nodata
})
)
)
) : null
);
}
}]);
return RefTreeTransfer;
}(_react.Component);
exports.default = RefTreeTransfer;
module.exports = exports['default'];