1.0.1 • Published 5 years ago

@beisen-cmps/ux-userlist-view v1.0.1

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
5 years ago

人员列表组件,此组件兼容 react15 和 16

可以用于展示人员列表

参数,详情请看 interface 定义

// 关于文本输入框的一些配置参数
interface IUser {
	userId: number | string //userId
	name: string //用户名称
	hasAvatar: boolean //是否有头像
	img?: string //头像图片地址
	color?: string //没有头像时显示的颜色
}

调用示范

import * as React from 'react'
import UserListView from './../../src'
import { userData } from './mock'
import { UserType } from './../../src/interface'
import './test.scss'
type posType =
	| 'absolute'
	| 'initial'
	| 'inherit'
	| 'unset'
	| 'static'
	| 'relative'
	| 'fixed'
	| 'sticky'
interface IState {
	data: UserType
}
export default class extends React.Component<any, IState> {
	constructor(props) {
		super(props)
		this.state = {
			data: userData
		}
		this.handleDelete = this.handleDelete.bind(this)
		this.handleUserClick = this.handleUserClick.bind(this)
	}
	handleDelete(userId, e) {
		this.setState(preState => {
			return {
				data: preState.data.filter(item => {
					return item.userId != userId
				})
			}
		})
	}
	handleUserClick(e) {
		this.setState(preState => {
			return {
				data: [
					{
						userId: Math.random(),
						name: '李帅',
						hasAvatar: true,
						img:
							'//stcms.beisen.com/Image/110006/4ac2a2169b9c409aa3826587e9222702_m.png',
						color: ''
					},
					...preState.data
				]
			}
		})
	}
	render(): JSX.Element {
		const { data } = this.state
		const testProps = {
			data,
			limit: 4,
			onDeleteClick: this.handleDelete,
			onAddClick: this.handleUserClick,
			wraperClass: 'test'
		}
		const styleObj = {
			position: 'absolute' as posType,
			top: 0,
			right: 0
		}
		return (
			<div>
				<h3>浮层自适应上</h3>
				<UserListView {...testProps} />

				<h3>浮层自适应下</h3>
				<UserListView {...testProps} />
				<div style={styleObj}>
					<h3>浮层自适应右极限</h3>
					<UserListView {...testProps} />
				</div>
			</div>
		)
	}
}