yylib-quick-mobile
Version:
yylib-quick-mobile
74 lines (72 loc) • 2.5 kB
JavaScript
/**
* Created by whh on 2017/12/26.
*/
import React, {Component} from 'react';
import {NavBar} from 'antd-mobile';
import YYIcon from './../icon/YYIcon';
import {isFunction} from '../../utils/FunctionUtil';
import classnames from 'classnames';
import {backOrClose} from '../../utils/lfwUtil';
import './YYNavBar.less';
class YYNavBar extends Component {
/**
* 默认进行返回 or 关闭
*/
onLeftClick = (e) => {
if(this.props.RunInDesign){
return;
}
if (isFunction(this.props.onLeftClick)) {
this.props.onLeftClick(e);
}else{
backOrClose();
}
}
/****右击事件*****/
onRightClick(e){
if(isFunction(this.props.onRightClick)) {
this.props.onRightClick(e);
}
}
render() {
let {mode, leftIcon, leftContent, rightIcon, rightContent, children, className,visible,disabled,uititle,control_event,onRightClick, offline,parentType,uiorigin,RunInDesign,uitype,uikey,nid,findUI, ...restProps} = this.props;
let wrapClz = classnames('yy-navBar',(!visible&&'hidden'), className);
//leftIcon左边按钮 字符串时认为是按钮类型
let leftIconCom=typeof(leftIcon)==='string'?<YYIcon type={leftIcon}/>:leftIcon;
let rightCom=rightIcon?<span className="rightContent" onClick={this.onRightClick.bind(this)}>{rightContent}<YYIcon className="rightIcon" type={rightIcon}/></span>:<span className="rightContent" onClick={this.onRightClick.bind(this)}>{rightContent}</span>;
return (
<NavBar {...restProps}
className={wrapClz}
mode={mode}
icon={!disabled?leftIconCom:null}
leftContent={!disabled?leftContent:null}
onLeftClick={!disabled?this.onLeftClick:null}
rightContent={!disabled?rightCom:null}>
{children}
</NavBar>
);
}
}
YYNavBar.defaultProps = {
mode:'light',
leftIcon:null,
leftContent: null,
rightIcon: null,
rightContent: null,
onLeftClick:null,
visible:true,
disabled:false,
//设计器需要的props,不添加会warning
uititle:'',
control_event:{},
onRightClick:'',
offline:false,
parentType:'',
uiorigin:'',
RunInDesign:false,
uitype:'',
uikey:'',
nid:'',
findUI:''
};
export default YYNavBar;