64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
| import PropTypes from '../_util/vue-types'
 | |
| import classNames from 'classnames'
 | |
| // import PureRenderMixin from 'rc-util/lib/PureRenderMixin'
 | |
| import Lazyload from '../vc-lazy-load'
 | |
| import Checkbox from '../checkbox'
 | |
| 
 | |
| function noop () {
 | |
| }
 | |
| 
 | |
| export default {
 | |
|   // shouldComponentUpdate (...args: any[]) {
 | |
|   //   return PureRenderMixin.shouldComponentUpdate.apply(this, args)
 | |
|   // }
 | |
|   props: {
 | |
|     renderedText: PropTypes.any,
 | |
|     renderedEl: PropTypes.any,
 | |
|     item: PropTypes.any,
 | |
|     lazy: PropTypes.oneOfType([
 | |
|       PropTypes.bool,
 | |
|       PropTypes.object,
 | |
|     ]),
 | |
|     checked: PropTypes.bool,
 | |
|     prefixCls: PropTypes.string,
 | |
|   },
 | |
|   name: 'Item',
 | |
|   render () {
 | |
|     const { renderedText, renderedEl, item, lazy, checked, prefixCls } = this.$props
 | |
| 
 | |
|     const className = classNames({
 | |
|       [`${prefixCls}-content-item`]: true,
 | |
|       [`${prefixCls}-content-item-disabled`]: item.disabled,
 | |
|     })
 | |
| 
 | |
|     const listItem = (
 | |
|       <li
 | |
|         class={className}
 | |
|         title={renderedText}
 | |
|         onClick={item.disabled ? noop : () => {
 | |
|           this.$emit('click', item)
 | |
|         }}
 | |
|       >
 | |
|         <Checkbox checked={checked} disabled={item.disabled} />
 | |
|         <span>{renderedEl}</span>
 | |
|       </li>
 | |
|     )
 | |
|     let children = null
 | |
|     if (lazy) {
 | |
|       const lazyProps = {
 | |
|         props: {
 | |
|           height: 32,
 | |
|           offset: 500,
 | |
|           throttle: 0,
 | |
|           debounce: false,
 | |
|           ...lazy,
 | |
|         },
 | |
|       }
 | |
|       children = <Lazyload {...lazyProps}>{listItem}</Lazyload>
 | |
|     } else {
 | |
|       children = listItem
 | |
|     }
 | |
|     return children
 | |
|   },
 | |
| }
 |