You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				| "use strict"; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| var component_1 = require("../common/component"); | |
| var relation_1 = require("../common/relation"); | |
| (0, component_1.VantComponent)({ | |
|     relation: (0, relation_1.useChildren)('sidebar-item', function () { | |
|         this.setActive(this.data.activeKey); | |
|     }), | |
|     props: { | |
|         activeKey: { | |
|             type: Number, | |
|             value: 0, | |
|             observer: 'setActive', | |
|         }, | |
|     }, | |
|     beforeCreate: function () { | |
|         this.currentActive = -1; | |
|     }, | |
|     methods: { | |
|         setActive: function (activeKey) { | |
|             var _a = this, children = _a.children, currentActive = _a.currentActive; | |
|             if (!children.length) { | |
|                 return Promise.resolve(); | |
|             } | |
|             this.currentActive = activeKey; | |
|             var stack = []; | |
|             if (currentActive !== activeKey && children[currentActive]) { | |
|                 stack.push(children[currentActive].setActive(false)); | |
|             } | |
|             if (children[activeKey]) { | |
|                 stack.push(children[activeKey].setActive(true)); | |
|             } | |
|             return Promise.all(stack); | |
|         }, | |
|     }, | |
| });
 | |
| 
 |