UNPKG

react-form-ui-y

Version:

440 lines (402 loc) 15.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyFn = exports.formTypeDom = undefined; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDialogY = require('react-dialog-y'); var _reactDialogY2 = _interopRequireDefault(_reactDialogY); var _reactSvgY = require('react-svg-y'); var _reactSvgY2 = _interopRequireDefault(_reactSvgY); var _reactButtonY = require('react-button-y'); var _reactButtonY2 = _interopRequireDefault(_reactButtonY); var _reactScrollY = require('react-scroll-y'); var _reactScrollY2 = _interopRequireDefault(_reactScrollY); var _publicField = require('../publicField'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var getValue = function getValue(_this) { var formDataValue = _this.props.formData[_this.props.dataType || "default"]; var inputData = formDataValue && formDataValue[_this.props.inputName]; return inputData && inputData.text ? inputData.text : ""; }; //input的校验 var verifyFn = function verifyFn(_this) { var required = _this.props.required || false, regex = _this.props.regex || false, initFocusState = _this.state.initFocusState, value = getValue(_this); var errorText = _this.props.errorText || "该值不能为空!"; var errorState = false; var subVerifyRes = _this.props.subVerifyRes && _this.props.subVerifyRes[_this.props.dataType || "default"]; //如果是必填 if (required) { if (subVerifyRes == "fail" || initFocusState == 1) { validate(value, _this); } else { errorState = false; } } function validate(value, _this) { if (!value) errorState = true; if (value && regex && !regex.test(value)) { errorState = true; errorText = _this.props.regexText; } if (value && !regex || value && regex && regex.test(value)) errorState = false; } //如果非必填 但有正则校验 if (!required && regex && initFocusState == 1) { if (regex.test(value)) { errorState = false; } else { errorState = true; errorText = _this.props.regexText; } } return { errorState: errorState, errorText: errorText }; }; //选中渲染区 var setChoose = function setChoose(chooseData, styles, _this) { var vdom = []; for (var o in chooseData) { vdom.push(_react2.default.createElement( 'div', { style: styles.chooseItem }, _react2.default.createElement( 'label', null, chooseData[o][_this.props.nameText] ), _react2.default.createElement( 'div', { style: styles.chooseItemDel, onClick: _this.deleteChoose.bind(_this, chooseData[o]) }, _react2.default.createElement(_reactSvgY2.default, { type: 'Clear', fill: 'red', width: '1rem', height: '1rem' }) ) )); } if (!vdom.length) { vdom.push(_react2.default.createElement( 'div', { style: styles.chooseItemNull }, '\u8BF7\u9009\u62E9\u503C' )); } return vdom; }; //目录树渲染 var setTree = function setTree(menuObj, styles, _this) { if (!menuObj) return null; var vdom = []; if (menuObj instanceof Array) { var list = []; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = menuObj[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var item = _step.value; list.push(setTree(item, styles, _this)); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } vdom.push(_react2.default.createElement( 'ul', { style: styles.ulBox, key: list }, list )); } else { if (!menuObj[_this.props.idText]) return []; menuObj.subList = menuObj.subList || []; vdom.push(_react2.default.createElement( 'li', { id: menuObj[_this.props.idText], style: styles.liBox, key: menuObj[_this.props.idText] }, _react2.default.createElement( 'div', { style: _this.state.moveItem == menuObj[_this.props.idText] ? styles.treeItemMove : styles.treeItem }, _react2.default.createElement( 'div', { style: styles.textBox, onClick: _this.handleShow.bind(_this, menuObj), onMouseMove: _this.handleMove.bind(_this, menuObj), onMouseLeave: _this.handleLeave.bind(_this, "") }, menuObj.subList.length == 0 ? _react2.default.createElement( 'i', { style: {} }, ' ' ) : _this.state.showData.in_array(menuObj[_this.props.idText]) ? _react2.default.createElement(_reactSvgY2.default, { type: 'Bottom', fill: '#1890ff', width: '1.25rem', height: '1.25rem' }) : _react2.default.createElement(_reactSvgY2.default, { type: 'Right', fill: '#1890ff', width: '1.25rem', height: '1.25rem' }), _react2.default.createElement( 'p', { style: {} }, menuObj[_this.props.nameText] ) ), _react2.default.createElement( 'div', { style: styles.checkBox, onClick: _this.handleCheck.bind(_this, menuObj) }, _this.state.chooseArr.in_array(menuObj[_this.props.idText]) ? _react2.default.createElement(_reactSvgY2.default, { type: 'CheckboxOn', fill: '#1890ff', width: '1.25rem', height: '1.25rem' }) : _react2.default.createElement(_reactSvgY2.default, { type: 'CheckboxUp', fill: '#1890ff', width: '1.25rem', height: '1.25rem' }) ) ), _this.state.showData.in_array(menuObj[_this.props.idText]) ? setTree(menuObj.subList || [], styles, _this) : null )); } return vdom; }; var treeCont = function treeCont(_this, styles, _theme) { return [ /*标题*/ _react2.default.createElement( 'div', { style: styles.treeHead }, _react2.default.createElement( 'span', { style: styles.treeHeadLine }, ' ' ), _react2.default.createElement( 'label', null, _this.props.formText || "树" ) ), /*选中区*/ _react2.default.createElement( 'div', { style: styles.chooseBox }, _react2.default.createElement( _reactScrollY2.default, { shouldUpdate: _this.state.shouldUpdateChoose, initScroll: _this.initScrollChoose, botFixed: false, width: '33rem', maxHeight: '5.5rem', bottomScroll: 'N' }, _react2.default.createElement( 'div', { style: styles.chooseBoxCont }, setChoose(_this.state.chooseData, styles, _this) ) ) ), /*搜索*/ _react2.default.createElement( 'div', { style: styles.searchBox }, _react2.default.createElement('input', { style: styles.searchInput, value: _this.state.inputValue, onChange: _this.onchange, onKeyUp: _this.keyupFn }), _this.state.inputValue ? "" : _react2.default.createElement( 'div', { style: styles.inputTip }, '\u641C\u7D22' ), _react2.default.createElement( 'div', { style: styles.searchBtn, onClick: _this.searchFn }, _react2.default.createElement(_reactSvgY2.default, { type: 'Query', width: '1rem', height: '1rem', fill: _theme.publicForm.inputSvgFill }) ) ), /*树结构展示区*/ _react2.default.createElement( 'div', { style: styles.treeBox }, _react2.default.createElement( _reactScrollY2.default, { shouldUpdate: _this.state.shouldUpdateList, initScroll: _this.initScrollList, botFixed: false, width: '33rem', maxHeight: '24.5rem', bottomScroll: 'N' }, _react2.default.createElement( 'div', { style: styles.treeBoxCont }, setTree(_this.props.dataSource, styles, _this) ) ) )]; }; var defaultSelect = function defaultSelect(_this, styles, _theme) { return [_react2.default.createElement('div', { key: '1', onClick: _this.handleTreeSubmit, style: styles.selectdialogMask }), _react2.default.createElement( 'div', { key: '2', style: styles[(0, _publicField.setLocationClass)(_this)] }, _react2.default.createElement( 'div', { style: styles.treeFieldBoxSelect }, treeCont(_this, styles, _theme) ) )]; }; var defaultDialog = function defaultDialog(_this, styles, _theme) { return _react2.default.createElement( _reactDialogY2.default, { open: _this.state.openTree //onRequestClose={_this.handleTreeClose} , contentStyle: { maxWidth: "38rem", width: "38rem" }, bodyStyle: { padding: 0 } }, _react2.default.createElement( 'div', { style: styles.treeFieldBoxDialog }, treeCont(_this, styles, _theme), _react2.default.createElement( 'div', { style: styles.btnBox }, _react2.default.createElement(_reactButtonY2.default, { scenesType: 'submit', btnText: '\u786E\u8BA4', handleBtn: _this.handleTreeSubmit }), _react2.default.createElement( 'span', { style: { width: "1rem", display: "block" } }, ' ' ), _react2.default.createElement(_reactButtonY2.default, { scenesType: 'back', btnText: '\u8FD4\u56DE', handleBtn: _this.handleTreeClose }) ) ) ); }; /** * input value dom */ var formValueDom = function formValueDom(_this, styles, value, theme) { return [!value ? _react2.default.createElement( 'span', { key: 1, style: styles.inputHintText }, _this.props.hintText ) : null, _this.props.disabled ? _react2.default.createElement( 'div', { key: 2, style: styles.treeInputBoxDis, title: value }, value ) : _react2.default.createElement( 'div', { key: 3, style: _this.state.focusState ? styles.treeInputBoxFocus : styles.treeInputBox, title: value, onClick: _this.showTree }, _react2.default.createElement( 'div', { style: styles.inputText }, value ), _react2.default.createElement( 'div', { style: styles.inputSvg }, _react2.default.createElement(_reactSvgY2.default, { type: 'Date', width: '1rem', height: '1rem', fill: theme.publicForm.inputSvgFill }) ) )]; }; /** * formType 是 default 类型 * @param verifyFlag 校验返回值 */ var defaultDom = function defaultDom(_this, styles, verifyFlag, _theme) { if (!_this.props.inputName) { return _react2.default.createElement( 'div', null, 'inputName\u4E3A\u5FC5\u8981\u53C2\u6570' ); } var selectType = _this.props.selectType || "select"; return _react2.default.createElement( 'div', { ref: 'formBox', style: styles.formBox }, (0, _publicField.formContDefault)(_this, styles, verifyFlag, getValue(_this), formValueDom, _theme), (0, _publicField.defaultError)(verifyFlag, styles), _this.state.openTree && selectType == "select" && defaultSelect(_this, styles, _theme), _this.state.openTree && selectType == "dialog" && defaultDialog(_this, styles, _theme) ); }; /** * formType 是 box 类型 * @param verifyFlag 校验返回值 */ var boxDom = function boxDom(_this, styles, verifyFlag, _theme) { if (!_this.props.inputName) { return _react2.default.createElement( 'div', null, 'inputName\u4E3A\u5FC5\u8981\u53C2\u6570' ); } var selectType = _this.props.selectType || "select"; return _react2.default.createElement( 'div', { ref: 'formBox', style: styles.formBox }, (0, _publicField.formContBox)(_this, styles, verifyFlag, getValue(_this), formValueDom, _theme), (0, _publicField.boxError)(verifyFlag, styles), _this.state.openTree && selectType == "select" && defaultSelect(_this, styles, _theme), _this.state.openTree && selectType == "dialog" && defaultDialog(_this, styles, _theme) ); }; var formTypeDom = { defaultDom: defaultDom, boxDom: boxDom }; exports.formTypeDom = formTypeDom; exports.verifyFn = verifyFn; /*const defaultDom = (_this, styles, verifyFlag, _theme) => { if (!_this.props.inputName) { return <div>inputName为必要参数</div> } let value = getValue(_this); return ( <div ref='formBox' style={styles.formBox}> <div style={styles.formCont_default}> {defaultFormText(_this, styles)} <div style={ _this.state.focusState ? styles.formVInputFocus_delfault : verifyFlag.errorState ? styles.formVInputError_delfault : _this.props.disabled ? styles.formVInputDisabled_delfault : styles.formVInput_delfault }> {formVTreeDom(value, styles, _this, _theme)} </div> </div> {defaultError(verifyFlag, styles)} {defaultDialog(_this, styles)} </div> ) }; const boxDom = (_this, styles, verifyFlag, _theme) => { if (!_this.props.inputName) { return <div>inputName为必要参数</div> } let value = getValue(_this); return ( <div ref='formBox' style={styles.formBox}> <div style={ _this.props.disabled ? styles.formContDiabled_box : _this.state.focusState ? styles.formContFocus_box : styles.formCont_box }> {defaultFormText(_this, styles)} <div style={styles.formVInput_box}> {formVTreeDom(value, styles, _this, _theme)} </div> </div> {defaultError(verifyFlag, styles)} {defaultDialog(_this, styles)} </div> ) }; let formTypeDom = { defaultDom, boxDom };*/ //# sourceMappingURL=subpage.js.map