react-form-ui-y
Version:
440 lines (402 loc) • 15.2 kB
JavaScript
'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