2.0.1 • Published 4 years ago

@txdfe/uiless-password-confirm v2.0.1

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
4 years ago
  • 成员列表预览

    预览

  • 依赖变量

        window.UILessConfig = {
            appId: ctx.app.config.appId, // current appId
            orgId: ctx.app.config.orgId, // current orgId
            accessToken: token, // current access token
            host: 'http://uiless.teambition.aone.alibaba.net', // host
        };

    对接入了tb导航的页面,appId,orgId,accessToken都可以在页面上找到,host需要后端增加一个配置写到页面上

  • 参数列表

    参数类型可选值默认值说明
    dataSourcearray用于展示的数据源,格式参考示例(暂不支持team)
    typestringnormal(Dialog)/mini(Overlay)normal弹窗尺寸
    customRolesarray格式参考示例[]用户自定义角色(权限)格式
    currentUserIdstring当前登录用户的 _userId
    onChangefunc更改角色信息、删除、新增后的回调
    isAdminbooleantrue/falsefalse当前登录用户是否是管理员,管理员无视customRoles中的manageRoleIds规则
    isOwnerbooleantrue/falsefalse当前登录用户是否是所有者,所有者在管理员基础上增加移交所有者菜单,onChangeOwner回调
    onChangeOwnerfunc点击移交所有者按钮的回调(member) => {}
    footerReactNode自定义footer
    titlestring标题
    loadingbooleantrue/falsefalse是否是loading状态
    hasSearchbooleantrue/falsetrue是否有搜索框
    onClosefunc关闭弹框回调,仅type=normal
    visiblebooleantrue/falsefalse是否展示弹框,仅type=normal生效
    alignstring参见AT.Overlay的align弹层相对于触发元素的定位,仅type=mini时有效
    offsetarraynum, num弹层相对于触发元素的定位的微调,仅type=mini时有效
    triggerReactNode弹层触发元素,仅type=mini时有效
    triggerTypestring/array'click', 'hover'触发弹层显示或隐藏的操作类型,可以是 'click','hover',仅type=mini时有效
  • 使用

      import React from 'react';
      import ReactDOM from 'react-dom';
      import UILessComponent from '@alife/uiless-member-panel';
      import './index.scss';
const customRoles = [{
  label: '浏览者',
  value: '20',
  description: '浏览者浏览者浏览者浏览者浏览者',
  manageRoleIds: [],
}, {
  label: '开发者',
  value: '30',
  description: '开发者开发者开发者',
  manageRoleIds: ['30', '20'],
}, {
  label: '管理员',
  value: '40',
  description: '管理员管理员管理员',
  manageRoleIds: ['40', '30', '20'],
}];

const list = [{
 // type: 'team',  暂不支持team
 // teamId: '',
 // roleId: '40',
 //},
 //{
  type: 'user',
  _userId: '5d27e0dec1a6459902177dae',
  roleId: '30',
  extra: <span>权限继承自:<a href="">上一个对象</a></span>,
}, {
  type: 'user',
  _userId: '5c9e4c9e8449c6dfb693ddbc',
  roleId: '20',
  extra: <span>权限继承自:<a href="">开放平台</a></span>,
}];

class Demo extends React.Component {
  constructor() {
    super();
    this.state = {
      members: list,
      visible: false,
    };
  }

  onChange = (members) => {
    console.log(members);
    this.setState({
      members,
    });
  }

  toggleVisible=() => {
    this.setState({
      visible: !this.state.visible,
    });
  }

  render() {
    return (
      <div style={{ padding: 200 }}>
        <UILessComponent
          customRoles={customRoles}
          dataSource={this.state.members}
          onChange={this.onChange}
          contentHeight="auto"
          footer={<div style={{ padding: 20 }}>当前流水线</div>}
          loading={false}
          currentUserId="5d27e0dec1a6459902177dae"
          isAdmin
          type="mini"
          align="tc bc"
        >
          <button>mini trigger</button>
        </UILessComponent>
        <button onClick={this.toggleVisible}>normal trigger</button>
        <UILessComponent
          customRoles={customRoles}
          dataSource={this.state.members}
          onChange={this.onChange}
          contentHeight={420}
          footer={<div style={{ padding: 20 }}>当前流水线</div>}
          currentUserId="5d27e0dec1a6459902177dae"
          visible={this.state.visible}
          onClose={this.toggleVisible}
        />
        <div style={{ border: '1px solid #e0e0e0', marginTop: 20 }}>
          <UILessComponent.Panel
            customRoles={customRoles}
            dataSource={this.state.members}
            onChange={this.onChange}
            contentHeight="auto"
            loading={false}
            currentUserId="5d27e0dec1a6459902177dae"
            hasSearch
            title="成员列表"
            isOwner
          />
        </div>
      </div>
    );
  }
}

ReactDOM.render(<Demo />, document.getElementById('demo-container'));