2.3.0 • Published 3 years ago

uxcore-tag v2.3.0

Weekly downloads
16
License
MIT
Repository
github
Last release
3 years ago

uxcore-tag Dependency Status devDependency Status

TL;DR

uxcore-tag ui component for react

setup develop environment

$ git clone https://github.com/uxcore/uxcore-tag
$ cd uxcore-tag
$ npm install
$ gulp server

Usage

const data = [
  {
    tag: 'owner创建0',
    count: 0,
    canAddCount: true,
    createByOwner: true,
    canDelete: true
  },
  {
    tag: 'owner创建1',
    count: 1,
    canAddCount: true,
    createByOwner: true,
    canDelete: false
  }
]

class Demo extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
      data: data
    }
  }

  onClickTag(tag) {

    console.log('点击标签: ', tag)
  }

  onAdd(tag) {
    let me = this,
      data = me.state.data;
    

    let item = {
      tag: tag,
      count: 0,
      canAddCount: false,
      createByOwner: false,
      canDelete: true
    }

    data.push(item);

    me.setState({
      data: data
    })

    console.log('添加标签: ' + tag);
  }

  onLike(tag) {
     let me = this,
      data = me.state.data;

      data = data.map(function (item) {
        if (item.tag == tag) {
          item.count = item.count + 1;
          item.canAddCount = false;
        }
        return item
      })

     me.setState({
      data: data
     }) 

    console.log('赞标签: ', tag);
  }
  
  onDelete(tag, cb) {
    let me = this,
      data = me.state.data;

      data = data.filter(function (item) {
        return item.tag != tag
      })

      cb && cb();
     me.setState({
      data: data
     }) 

    console.log('删除标签: ' + tag);
  }

  render() {
    let me = this;

    let props = {
      className: 'tag-classname',
      addTags: true,
      onAdd: me.onAdd.bind(me),
      locale: 'zh-cn'
      //locale: 'en-us'
    }

    return (
      <div className="demo">
        
        <Tag {...props}>
        {me.state.data.map(function (item, index) {
            return <Item 
                key={"uxcore-tag-item-" + index}
                className={item.createByOwner ? "create-by-owner" : ''}
                tag={item.tag}
                count={item.count}
                canAddCount={item.canAddCount}
                canDelete={item.canDelete}
                onClick={me.onClickTag.bind(me)}
                maxDisplayCount={99}
                onAddCount={me.onLike.bind(me)}
                onDelete={me.onDelete.bind(me)}
                confirmDeleteText="确定删除该标签吗?"
                locale="zh-cn"
                >
                {item.tag}
              </Item>
        })}
          
        </Tag>
      </div>
    );
  }

uxcore-tag

image

API

Props

Tag

配置项类型必填默认值功能/备注
classNamestringoptional''额外的className
addTagsbooleanoptionaltrue是否可以新增tag
onAdd(tagName , callback(keepOpen))functionoptionalnoop新增tag的回调,tagName为新增的标签名;如果传入第二个参数,那么必须要执行callback,keepOpen表示是否保留输入框内容不收起输入框
localestringoptional'zh-cn'语言,另可选'en-us', 'pl-pl'
placeholderstringoptional'请输入标签'添加标签输入框的placeholder自定义

TagItem

通过 Tag.Item 取得。

配置项类型必填默认值功能/备注
classNamestringoptional''额外的className
tagstringrequire''tag的值
typestringoptional枚举值 show, success, warning, info, danger
countnumberoptional0标签后面的数字
canAddCountbooleanoptionalfalse是否可以增加数字
canDeletebooleanoptionalfalse是否可以删除标签
onClick(tagName)functionoptionalnoop点标签回调
maxDisplayCountnumberoptional99最大显示数字
onAddCount(tagName)functionoptionalnoop点击增加数字的加号回调
onDelete(tagName, cb)functionoptionalnoop点击删除icon回调 注意手动调用cb,否则弹窗不会消失
confirmDeleteTextstringoptional''确认删除文案,如果不填则直接触发onDelete回调
2.3.0

3 years ago

2.2.3

6 years ago

2.2.2

6 years ago

2.2.1

6 years ago

2.2.0

6 years ago

2.1.2

6 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.1.0

7 years ago

1.0.2

8 years ago

1.0.1

8 years ago