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