UNPKG

yyuap-ref

Version:

cloud os fe ref project which is based on tinper

535 lines (474 loc) 18 kB
'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 _utils = require('../utils'); var _createApiEs = require('../createApi/createApi.es.js'); var _createApiEs2 = _interopRequireDefault(_createApiEs); var _icon = require('../bee/icon'); var _icon2 = _interopRequireDefault(_icon); var _formControl = require('../bee/form-control'); var _formControl2 = _interopRequireDefault(_formControl); var _form = require('../bee/form'); var _form2 = _interopRequireDefault(_form); var _select = require('../bee/select'); var _select2 = _interopRequireDefault(_select); require('./style.css'); 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 Option = _select2.default.Option; var OptGroup = _select2.default.OptGroup; var FormItem = _form2.default.FormItem; var TransferRef = function (_Component) { _inherits(TransferRef, _Component); function TransferRef(props) { _classCallCheck(this, TransferRef); var _this = _possibleConstructorReturn(this, (TransferRef.__proto__ || Object.getPrototypeOf(TransferRef)).call(this, props)); _this.state = { savedData: [], savedShow: '', isClick: false, searchKeyArr: [], // select value 选中的值的 key searchList: [], // 下拉列表 searchData: [], // 默认选中的值 key - value // inputValue:'', // 输入框的值 searchListRestore: [] // 存储list }; _this.handleClick = _this.handleClick.bind(_this); _this.handleChange = _this.handleChange.bind(_this); _this.onSearch = _this.onSearch.bind(_this); return _this; } _createClass(TransferRef, [{ key: 'componentDidMount', value: function componentDidMount() { var showKey = this.props.option.showKey; if (this.props.option.checkedArray && this.props.option.ifInputChange) { var tempData = this.props.option.checkedArray; tempData = tempData.map(function (v) { v.key = v.refpk; return v; }); var tempShow2 = tempData.map(function (v) { return v[showKey]; }); this.setState({ searchData: tempData, searchList: tempData, searchKeyArr: tempShow2 }); } this.setState({ savedShow: this.props.option.showVal || '' }); } }, { key: 'componentWillReceiveProps', value: function componentWillReceiveProps(nextProps) { // const {showKey}=nextProps.option // const {option}=nextProps // if(option.checkedArray && option.ifInputChange){ // var tempData = option.checkedArray // tempData = tempData.map(v=>{ // v.key = v.refpk; // return v // }) // var tempShow2 = tempData.map(v=>v[showKey]) // this.setState({ // searchData:tempData, // searchList:tempData, // searchKeyArr:tempShow2 // }) // } if (nextProps.option.showVal) { this.setState({ savedShow: nextProps.option.showVal }); } } }, { key: 'handleClick', value: function handleClick() { var _this2 = this; var _state = this.state, isClick = _state.isClick, searchList = _state.searchList; if (this.props.disabled || isClick) { return; } this.setState({ isClick: true }); var self = this; var tempCreateModal = function tempCreateModal() { var option = self.props.option; var onPropsSave = option.onSave; var onPropsCancel = option.onCancel; var showKey = _this2.props.option.showKey || 'refname'; var searchDataNew = self.state.searchData; if (searchDataNew) { searchDataNew = searchDataNew.map(function (v) { v.key = v.refpk; return v; }); } console.log(self.state.searchData); var appendOption = { checkedArray: option.ifInputChange ? searchDataNew : self.state.savedData, onCancel: function onCancel(p) { self.setState({ isClick: false }); onPropsCancel(p); }, onSave: function onSave(sels) { var searchList = self.state.searchList; var tempKey = sels.map(function (v) { return v[option.searchKey]; }); var searchKey = searchList.map(function (v) { return v[option.searchKey]; }); var tempShow = sels.map(function (v) { return v[showKey]; }).join(';'); console.log('searchKeyArr' + tempShow); self.setState({ savedData: sels, savedShow: tempShow, isClick: false, searchData: sels, searchList: sels, searchKeyArr: tempKey }, function () { onPropsSave(sels, tempShow); }); } }; option = Object.assign({}, option, appendOption); (0, _createApiEs2.default)(option); }; var showKey = self.props.option.showKey || 'refname'; if (this.props.option.checkedArray && this.props.option.checkedArray.length > 0) { var tempData = this.props.option.checkedArray; tempData = tempData.map(function (v) { v.key = v.refpk; return v; }); var tempShow = tempData.map(function (v) { return v[showKey]; }).join(';'); this.setState({ savedData: tempData, savedShow: tempShow }, function () { tempCreateModal(); }); } else if (this.props.option.keyList && this.props.option.keyList.length > 0) { var _props$option = this.props.option, refCode = _props$option.param.refCode, filterRefUrl = _props$option.filterRefUrl; var postParamList = this.props.option.keyList.map(function (v) { var tempData = {}; tempData.refCode = refCode, tempData.id = v; return tempData; }); (0, _utils.post)(filterRefUrl, postParamList).then(function (response) { var tempData = response || []; tempData = tempData.map(function (v) { v.key = v.refpk; return v; }); var tempKey = tempData.map(function (v) { return v.key; }); var tempShow = tempData.map(function (v) { return v[showKey]; }).join(';'); _this2.setState({ savedData: tempData, savedShow: tempShow }, function () { tempCreateModal(); }); }).catch(function () { _this2.setState({ savedData: [], savedShow: '' }, function () { tempCreateModal(); }); }); } else { tempCreateModal(); } } }, { key: 'onRefClick', value: function onRefClick(inputid, propForm) { var _this3 = this; var isClick = this.state.isClick; if (this.props.disabled || isClick) { return; } this.setState({ isClick: true }); var self = this; var tempCreateModal = function tempCreateModal() { var option = self.props.option; var onPropsSave = option.onSave; var onPropsCancel = option.onCancel; var showKey = self.props.option.showKey || 'refname'; var appendOption = { checkedArray: self.state.savedData, onCancel: function onCancel(p) { self.setState({ isClick: false }); onPropsCancel(p); }, onSave: function onSave(sels) { self.setState({ savedData: sels, isClick: false }); var tempShow = sels.map(function (v) { return v[showKey]; }); var showValue = tempShow.join(';'); var setFieldsValue = propForm.setFieldsValue; var obj = {}; obj[inputid + ""] = showValue; setFieldsValue(obj); onPropsSave(sels); } }; option = Object.assign({}, option, appendOption); (0, _createApiEs2.default)(option); }; var showKey = self.props.option.showKey || 'refname'; if (this.props.option.checkedArray) { var tempData = this.props.option.checkedArray; tempData = tempData.map(function (v) { v.key = v.refpk; return v; }); var tempShow = tempData.map(function (v) { return v[showKey]; }).join(';'); this.setState({ savedData: tempData, savedShow: tempShow }, function () { tempCreateModal(); }); } else { var _props$option2 = this.props.option, refCode = _props$option2.param.refCode, filterRefUrl = _props$option2.filterRefUrl; var postParamList = this.props.option.keyList.map(function (v) { var tempData = {}; tempData.refCode = refCode, tempData.id = v; return tempData; }); (0, _utils.post)(filterRefUrl, postParamList).then(function (response) { var tempData = response; tempData = tempData.map(function (v) { v.key = v.refpk; return v; }); var tempKey = tempData.map(function (v) { return v.key; }); var tempShow = tempData.map(function (v) { return v[showKey]; }).join(';'); _this3.setState({ savedData: tempData, savedShow: tempShow }, function () { tempCreateModal(); }); }).catch(function () { _this3.setState({ savedData: [], savedShow: '' }, function () { tempCreateModal(); }); }); } } }, { key: 'handleChange', value: function handleChange(value) { console.log('value', value); var option = this.props.option; typeof value == 'string' ? value = value.split(',') : null; var searchList = this.state.searchList; if (option.multiple) { if (value.length > 1) { value = value[1]; } } else {} var searchData = searchList.filter(function (item) { return value.includes(item[option.searchKey]); }); console.log('searchData', searchData); this.setState({ searchData: searchData, searchKeyArr: value, searchList: searchData }); this.props.searchChange && this.props.searchChange(searchData); } }, { key: 'getSearchList', value: function getSearchList(value) { var _this4 = this; if (value === '') { var _searchData = this.state.searchData; this.setState({ searchList: _searchData }); return; } var option = this.props.option; var searchData = this.state.searchData; (0, _utils.get)(option.refModelUrl.SearchListUrl, Object.assign({}, option.param, { size: option.searchPageSize || 10, content: value })).then(function (response) { var data = response.data; var dataKey = data.map(function (v) { return v[option.searchKey]; }); console.log('dataKey', dataKey); searchData.forEach(function (item) { if (!dataKey.includes(item[option.searchKey])) { data.push(item); } }); console.log('data', data); _this4.setState({ searchList: data }); }); } }, { key: 'onSearch', value: function onSearch(value) { this.getSearchList(value); } }, { key: 'render', value: function render() { var _this5 = this; var _state2 = this.state, savedShow = _state2.savedShow, searchList = _state2.searchList, searchKeyArr = _state2.searchKeyArr; var searchshowvalue = void 0; var _props = this.props, disabled = _props.disabled, option = _props.option; if (this.props.option.verification) { var _props$form = this.props.form, getFieldProps = _props$form.getFieldProps, getFieldError = _props$form.getFieldError, getFieldDecorator = _props$form.getFieldDecorator; var _props$option3 = this.props.option, verKey = _props$option3.verKey, verVal = _props$option3.verVal; } if (option.ifInputChange && option.searchshowKey) { searchshowvalue = function searchshowvalue(item) { console.log(item); var data = option.searchshowKey.map(function (v) { return item[v]; }).join(" "); return data; }; } else { searchshowvalue = function searchshowvalue(item) { return item[option.showKey]; }; } if (this.props.option.verification && !this.props.option.ifInputChange) { return _react2.default.createElement( 'div', { className: 'yyuapRef refInputWrap' }, _react2.default.createElement( FormItem, null, _react2.default.createElement(_formControl2.default, _extends({ disabled: true, className: !disabled ? "formInput" : "formInput formDisable", placeholder: '', value: '' }, getFieldProps(verKey, { initialValue: verVal, validateTrigger: 'onBlur', rules: [{ required: true, type: 'string', message: option.verShowMessage || '请选择相关参照' }] }))), _react2.default.createElement(_icon2.default, { type: 'uf-navmenu', key: "icon", className: 'refIconStyle', onClick: function onClick() { return _this5.onRefClick(verKey, _this5.props.form); } }), _react2.default.createElement( 'span', { className: 'error' }, getFieldError(verKey) ) ) ); } else if (this.props.option.ifInputChange) { var _option = this.props.option; return _react2.default.createElement( 'div', { className: 'yyuapRef' }, _react2.default.createElement( 'div', { className: 'refSelectWrap' }, _react2.default.createElement( _select2.default, { multiple: true, style: { width: "97%" }, searchPlaceholder: '', onChange: this.handleChange, value: searchKeyArr, onSearch: this.onSearch, filterOption: false, notFoundContent: 'no data' }, searchList.map(function (item) { return _react2.default.createElement( Option, { key: item[_option.searchKey] }, searchshowvalue(item) ); }) ), _react2.default.createElement(_icon2.default, { className: 'refIconStyle', type: 'uf-symlist', onClick: this.handleClick.bind(this) }) ) ); } else { return _react2.default.createElement( 'div', { className: 'yyuapRef refInputWrap' }, _react2.default.createElement('input', { value: savedShow, disabled: disabled }), _react2.default.createElement(_icon2.default, { className: 'refIconStyle', type: 'uf-symlist', onClick: this.handleClick.bind(this) }) ); } } }]); return TransferRef; }(_react.Component); TransferRef.defaultProps = { option: { keyList: [], filterRef: '/filterRef', param: { refCode: 'common_ref' }, searchPageSize: 10 } }; exports.default = _form2.default.createForm()(TransferRef); module.exports = exports['default'];