| 
					
				 | 
			
			
				@@ -0,0 +1,206 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import React, { PureComponent } from 'react'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { connect } from 'react-redux'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { BrowserRouter, Route,Link } from 'react-router-dom'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { actionCreators } from './store'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import { CSSTransition } from 'react-transition-group'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// const Submenu = (props) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//     return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//         <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//             <input onFocus={props.handleInputFocus} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//             {props.menu}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 可替换成无状态组件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class Content extends PureComponent { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getListArea() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { list, menu } = this.props; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // const newList = list.toJS(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // const pageList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // if (newList.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 	for (let i = (page - 1) * 10; i < page * 10; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 		pageList.push( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 			<SearchInfoItem key={newList[i]}>{newList[i]}</SearchInfoItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 		) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //可以直接获得输入框里的内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        menu; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    list.map((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return <span className='ispan' type="text" key={item} >{item}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    render() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { inputValue, handleInputFocus,handleInputChange, menu, list } = this.props; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <BrowserRouter> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <aside className="page-sidebar"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div className="page-logo"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <a href="#modal-shortcut" className="page-logo-link press-scale-down d-flex align-items-center position-relative" data-toggle="modal"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div className="icon-stack fa-2x"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <i className="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <i className="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <i className="fal fa-box icon-stack-1x opacity-100 color-white"></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span className="page-logo-text mr-1">产品</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span className="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <i className="ni ni-my-apps d-inline-block ml-1 fs-lg color-primary-300"></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <nav id="js-primary-nav" className="primary-nav" role="navigation"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <ul id="js-nav-menu" className="nav-menu"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <li className="active open"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <a href="#" title="软件锁" data-filter-tags="软件锁" className="waves-effect waves-themed"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <i className="fal fa-magic "></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <span className="nav-link-text">软件锁</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <li className="active"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a href="/product" title="Analytics Dashboard" data-filter-tags="application intel analytics dashboard"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <span class="nav-link-text">公共锁库</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <Link to='/product'>公共锁库</Link> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a href="/product/lockStatistics" title="Analytics Dashboard" data-filter-tags="application intel analytics dashboard"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <span class="nav-link-text">使用统计</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <Link to='/product/lockStatistics'>使用统计</Link> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </nav> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </aside> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div  id="content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {/* <Route path='/product' exact component={Lockstore} ></Route> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <Route path='/product/lockStatistics' exact render={()=><div>使用统计</div>} ></Route> */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </BrowserRouter> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //组件即将要被挂在的时候执行的方法-- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    componentDidMount(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //逻辑代码可以写在mapDispathToProps里 this.props.方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // axios.get('/api/submenuList.json').then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     const data = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     dispatch(changeList(data.data)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }).catch(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     console.log('error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * store里的数据映射到这个组件里的state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {*} state  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const mapStateToProps = (state) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //menu: state.submenu.menu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        menu: state.getIn(['submenu', 'menu']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list: state.getIn(['submenu', 'list']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        inputValue: state.getIn(['submenu', 'inputValue']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	focused: state.getIn(['header', 'focused']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	list: state.getIn(['header', 'list']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	page: state.getIn(['header', 'page']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	totalPage: state.getIn(['header', 'totalPage']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	mouseIn: state.getIn(['header', 'mouseIn']) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 要改变store里的内容需要调用dispatch方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {*} dispatch  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const mapDispathToProps = (dispatch) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handleInputFocus(list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // const action = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     type: 'aearch_focus' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //发送给store--提取出action--避免发送重复的ajax请求 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (list.size === 0) && dispatch(actionCreators.getList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // if(list.size>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     dispatch(actionCreators.getList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dispatch(actionCreators.searchFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        handleInputChange(ivalueElem){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dispatch(actionCreators.changeInputValue(ivalueElem.value)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	handleInputFocus(list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		(list.size === 0) && dispatch(actionCreators.getList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		dispatch(actionCreators.searchFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	handleInputBlur() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		dispatch(actionCreators.searchBlur()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	handleMouseEnter() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		dispatch(actionCreators.mouseEnter()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	handleMouseLeave() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		dispatch(actionCreators.mouseLeave()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	handleChangePage(page, totalPage, spin) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		let originAngle = spin.style.transform.replace(/[^0-9]/ig, ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		if (originAngle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 			originAngle = parseInt(originAngle, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 			originAngle = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		spin.style.transform = 'rotate(' + (originAngle + 360) + 'deg)'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		if (page < totalPage) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 			dispatch(actionCreators.changePage(page + 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 			dispatch(actionCreators.changePage(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default connect(mapStateToProps, mapDispathToProps)(Content); 
			 |