mp-colorui
Version:
MP ColorUI 是一款基于 Taro 框架并且联合 Color-UI CSS 库开发的多端 UI 组件库(支持小程序端和H5端)
45 lines (43 loc) • 1.7 kB
JavaScript
import Nerv from "nervjs";
import { View } from "@tarojs/components";
import Taro from "@tarojs/taro-h5";
import { BG_COLOR_LIST, TEXT_COLOR_LIST } from "../../lib/model";
import ClFlex from "../flex/index";
import { classNames, generateId } from "../../lib/index";
export default class ClTimeline extends Taro.Component {
render() {
const props = this.props;
const times = props.times || [];
const iconColorClassName = color => color ? TEXT_COLOR_LIST[color] : "";
const iconClassName = icon => icon ? `cuIcon-${icon}` : "";
const bgColorClassName = color => color ? BG_COLOR_LIST[color] : "";
const onClick = index => {
props.onClick && props.onClick(index);
};
const items = times.map((item, index) => item.node ? <View className="cu-time" key={generateId()} onClick={() => {
onClick(index);
}}>
{item.node}
</View> : <View className={`cu-item ${iconColorClassName(item.iconColor)} ${iconClassName(item.icon)}`} key={generateId()} onClick={() => {
onClick(index);
}}>
<View className={`${bgColorClassName(item.bgColor)} content`}>
<ClFlex justify="between" align="end">
<View style={{ fontSize: Taro.pxTransform(36) }}>{item.title}</View>
<View>{item.time}</View>
</ClFlex>
{item.content ? item.content.map((desc, index) => <View key={"key-" + index}>{desc}</View>) : ""}
</View>
</View>);
return <View className={classNames("cu-timeline", props.className)} style={Object.assign({}, props.style)}>
{items}
</View>;
}
}
ClTimeline.options = {
addGlobalClass: true
};
ClTimeline.defaultProps = {
times: [],
onClick: () => {}
};