67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| Component({
 | |
|     externalClasses: ['i-class'],
 | |
| 
 | |
|     relations: {
 | |
|         '../tab-bar-item/index': {
 | |
|             type: 'child',
 | |
|             linked () {
 | |
|                 this.changeCurrent();
 | |
|             },
 | |
|             linkChanged () {
 | |
|                 this.changeCurrent();
 | |
|             },
 | |
|             unlinked () {
 | |
|                 this.changeCurrent();
 | |
|             }
 | |
|         }
 | |
|     },
 | |
| 
 | |
|     properties: {
 | |
|         current: {
 | |
|             type: String,
 | |
|             value: '',
 | |
|             observer: 'changeCurrent'
 | |
|         },
 | |
|         color: {
 | |
|             type: String,
 | |
|             value: ''
 | |
|         },
 | |
|         fixed: {
 | |
|             type: Boolean,
 | |
|             value: false
 | |
|         }
 | |
|     },
 | |
| 
 | |
|     data: {
 | |
|         list: []
 | |
|     },
 | |
| 
 | |
|     methods: {
 | |
|         changeCurrent (val = this.data.current) {
 | |
|             let items = this.getRelationNodes('../tab-bar-item/index');
 | |
|             const len = items.length;
 | |
| 
 | |
|             if (len > 0) {
 | |
|                 const list = [];
 | |
|                 items.forEach(item => {
 | |
|                     item.changeCurrent(item.data.key === val);
 | |
|                     item.changeCurrentColor(this.data.color);
 | |
|                     list.push({
 | |
|                         key: item.data.key
 | |
|                     });
 | |
|                 });
 | |
|                 this.setData({
 | |
|                     list: list
 | |
|                 });
 | |
|             }
 | |
|         },
 | |
|         emitEvent (key) {
 | |
|             this.triggerEvent('change', { key });
 | |
|         },
 | |
|         handleClickItem (e) {
 | |
|             const key = e.currentTarget.dataset.key;
 | |
|             this.emitEvent(key);
 | |
|         }
 | |
|     }
 | |
| });
 |