mini-check
Version:
54 lines • 5.27 kB
JavaScript
import Nerv from "nervjs";
import Taro from "@tarojs/taro-h5";
import { View } from '@tarojs/components';
import { CustomInput, CustomDatePicker, Digit, CustomCheckboxGroup, Picture, RadioButtonGroup, UserCitySelection, CustomMap, CustomTextArea, MultilineText, CustomLabel } from '../index';
import { getArea, getUserCitySelection, loadData, getDicService } from '../../service/global';
import './index.scss';
class Index extends Taro.Component {
render() {
let node;
const { formItems, onView, listItemChildren, values, parentTerm, formDataOnChange, term, help, getInitialValue } = this.props;
if (formItems && formItems.length !== 0) {
node = formItems.map(item => {
let el;
if (item.comp === 'Text') {
el = <CustomInput onView={onView} name={item.props.name} term={item.props.term} onChange={value => formDataOnChange(value, item, parentTerm)} key={item.name} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
} else if (item.comp === 'DateTime') {
el = <CustomDatePicker onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
} else if (item.comp === 'Digit') {
el = <Digit onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
} else if (item.comp === 'MultilineText') {
if (Taro.getEnv() !== 'WEAPP') {
el = <MultilineText onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
} else {
el = <CustomTextArea onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
}
} else if (item.comp === 'SingleSelection') {
el = <RadioButtonGroup onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} loadDicData={getDicService} listItemChildren={listItemChildren} />;
} else if (item.comp === 'MultipleSelection') {
el = <CustomCheckboxGroup onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : []} loadDicData={getDicService} listItemChildren={listItemChildren} />;
} else if (item.comp === 'MobilePhone') {
el = <CustomInput onView={onView} {...item.props} onChange={value => formDataOnChange(value, item, parentTerm)} type="phone" key={item.name} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : []} listItemChildren={listItemChildren} />;
} else if (item.comp === 'Link') {
el = <CustomInput onView={onView} {...item.props} onChange={value => formDataOnChange(value, item, parentTerm)} type="link" key={item.name} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
} else if (item.comp === 'Picture') {
el = <Picture onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : []} listItemChildren={listItemChildren} />;
} else if (item.comp === 'UserCitySelection') {
el = <UserCitySelection onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} loadData={loadData} getArea={getArea} getUserCitySelection={getUserCitySelection} listItemChildren={listItemChildren} />;
} else if (item.comp === 'PositionMap') {
el = <CustomMap onView={onView} {...item.props} key={item.name} onChange={value => formDataOnChange(value, item, parentTerm)} value={values[parentTerm] && values[parentTerm][item.props.name] ? values[parentTerm][item.props.name] : ''} listItemChildren={listItemChildren} />;
}
return el;
});
} else {
node = <View></View>;
}
return <View className="list-item-container">
<View className="list-item-wrap">
<CustomLabel term={term} help={help} />
</View>
{node}
</View>;
}
}
export default Index;