joywok-material-components
Version:
<h1 align="center"> Joywok Material Components </h1>
747 lines (740 loc) • 29.4 kB
JavaScript
/**
*
* @api {} 自定义用户组
* @apiName 自定义用户组
* @apiGroup 组件使用
*
* @apiParam { String } oid 对象id 比如是某个订阅号 或 某个应用下的自定义用户组
* @apiParam { String } otype 对象类别 比如是订阅号 subscription
* @apiParam { Bool } openExportDepts 是否开启导入团队的功能, true 开启 false 不开启, 默认 不开启
* @apiParam { Bool } openExportUsers 是否开启导入用户的功能, true 开启 false 不开启,默认 不开启
* @apiParam { String } className 自定义样式名
* @apiParam { function } onChange 数据变化后回调,会回传1个参数, onChange(usergroup) ,usergroup: 自定义用户组数据
*
* @apiSuccessExample {json} 使用案例:
*import { CustomUserGroup } from 'joywok-material-components'; //路径需要自行更改
<CustomUserGroup
oid={'xxxx'}
otype={'subscription'}
openExportDepts={true}
openExportUsers={true}
className=''
onChange={(usergroup)=>self.onChangeCustomGroup(usergroup)}
/>
*
*
*/
import React from 'react';
import ReactDOM from 'react-dom';
import request from '../utils/request';
import Button from './../button/index';
import MenuItem from '@material-ui/core/MenuItem';
import MenuList from '@material-ui/core/MenuList';
import MoreVertIcon from '@material-ui/icons/MoreVert';
import AloneTip from './../tips/aloneTip';
import Menu from './../menu/customMenu';
import DialogFD from './../utils/Dialog';
import LoadingView from './../loading/horizontalLoading';
import SimpleDialog from './../dialog/simpleDialog';
import AddGroupDialog from './AddGroupDialog';
import AddUserGroup from './AddUserGroup';
import TeamScope from './../teamscope/TeamScope';
const curLang = (window.language || window.cur_lang) || 'zh';
require('./style/index.css');
class CustomUserGroup extends React.Component{
constructor(props) {
super(props);
let objectInfo = {
oid: props.oid || '',
otype: props.otype || ''
}
let defaultUserGroupData = {
name:'',
cid:''
}
this.state = _.extend({
loadingList:true, // 获取自定义用户组分组及自定义用户组列表
loadingDetail: true, // 获取自定义用户组详细信息
oid: '',
otype: '',
openExportDepts: false,
openExportUsers: false,
className: '',
addGroupDialog: false, //false:隐藏 true:显示
addUserGroupDialog: false, //false:隐藏 true:显示
objectInfo: $.extend(true,{},objectInfo),
defaultGroupData: $.extend(true,{},objectInfo),
defaultUserGroupData: $.extend(true,{},defaultUserGroupData),
// 用户组分组表单
groupData: $.extend(true,{},objectInfo),
// 用户组表单
userGroupData: $.extend(true,{},defaultUserGroupData),
// 用户组列表
usergroup_list: [],
// 用户组条件
conditions: [
// {
// "id": 0,
// "name": i18n('label.form.select.placeholder'), //'请选择'
// "type": "jw_select_please"
// },
// {
// "id": 1,
// "name": i18n('label.usergroup.belong.team'),
// "type": "jw_n_dept",
// "placeholder": i18n('label.usergroup.team.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&type=2&s=",
// },
// {
// "id": 2,
// "name": i18n('label.usergroup.belong.brand'),
// "type": "jw_n_brand",
// "placeholder": i18n('label.usergroup.brand.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=2048&s=",
// },
// {
// "id": 3,
// "name": i18n('label.usergroup.belong.office'),
// "type": "jw_n_office",
// "placeholder": i18n('label.usergroup.office.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=1024&s=",
// },
// {
// "id": 4,
// "name": i18n('label.usergroup.belong.area'),
// "type": "jw_n_region",
// "placeholder": i18n('label.usergroup.area.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=64&s=",
// },
// {
// "id": 5,
// "name": i18n('label.usergroup.location'),
// "type": "jw_n_area",
// "placeholder": i18n('label.usergroup.add.address'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&type=32&s=",
// },
// {
// "id": 6,
// "name": i18n('label.usergroup.sex'),
// "type": "jw_n_sex",
// "placeholder": i18n('label.usergroup.sex.placeholder'),
// "url": "",
// },
// {
// "id": 7,
// "name": i18n('label.usergroup.category'),
// "type": "jw_n_user_category",
// "placeholder": i18n('label.usergroup.category.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=16&s=",
// },
// {
// "id": 8,
// "name": i18n('label.usergroup.role'),
// "type": "jw_n_role",
// "placeholder": i18n('label.usergroup.role.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&type=8&s=",
// },
// {
// "id": 9,
// "name": i18n('label.usergroup.post'),
// "type": "jw_n_post",
// "placeholder": i18n('label.usergroup.post.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=4&s=",
// },
// {
// "id": 10,
// "name": i18n('label.console.iam.member.category'),
// "type": "jw_n_personnel_category",
// "placeholder": i18n('label.usergroup.add.personnel'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=128&s=",
// },
// {
// "id": 11,
// "name": i18n('label.usergroup.function'),
// "type": "jw_n_function_level",
// "placeholder": i18n('label.usergroup.function.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=512&s=",
// },
// {
// "id": 12,
// "name": i18n('label.usergroup.safety'),
// "type": "jw_n_safety_level",
// "placeholder": i18n('label.usergroup.safety.placeholder'),
// "url": "",
// },
// {
// "id": 13,
// "name": i18n('label.usergroup.user'),
// "type": "jw_n_user",
// "placeholder": i18n('label.usergroup.user.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&type=1&s=",
// },
// {
// "id": 14,
// "name": i18n('label.console.iam.blolegal'),
// "type": "jw_n_corporation",
// "placeholder": i18n('label.console.iam.add.blolegal'),
// "url": "/api/suggestion/searchobjs?op=1&pagesize=100&show_entry=0&type=16384&s=",
// },
// {
// "id": 15,
// "name": i18n('label.console.iam.personnel.group'),
// "type": "jw_n_personnel_group",
// "placeholder": i18n('label.console.iam.personnel.group.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&show_entry=0&type=32768&s=",
// },
// {
// "id": 16,
// "name": i18n('label.console.iam.assign.category'),
// "type": "jw_n_assign_category",
// "placeholder": i18n('label.console.iam.assign.category.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&show_entry=0&type=65536&s=",
// },
// {
// "id": 17,
// "name": i18n('label.console.usergroup.org.category'),
// "type": "jw_n_origanization",
// "placeholder": i18n('label.console.usergroup.org.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&show_entry=0&type=131072&s=",
// },
// {
// "id": 18,
// "name": i18n('label.console.usergroup.dept.category'),
// "type": "jw_n_teamtype",
// "placeholder": i18n('label.console.usergroup.dept.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&show_entry=0&type=256&s=",
// },
// {
// "id": 19,
// "name": i18n('label.console.iam.store.category'),
// "type": "jw_n_store_category",
// "placeholder": i18n('label.console.usergroup.store.placeholder'),
// "url": "/api/suggestion/searchobjs?op=1&show_entry=0&type=4096&s=",
// },
],
// 每组条件
// user_scope: [],
// 当前展开的菜单(展开的用户组分组)
openedMenuIDs: [],
// 选中的用户组id
selectedUserGroupID: '',
// 选中的用户组信息
usergroup_info:{}
}, props)
// console.log('this.props:',this.props);
}
// 用户组 选中
menuClick(childItem){
this.setState({
selectedUserGroupID: childItem&&childItem.id || ''
},()=>this.getUserGroupInfo())
}
// 展开 / 收起 用户组分组
toggleMenu(item){
let self = this;
let newIDs = this.state.openedMenuIDs;
if(_.indexOf(this.state.openedMenuIDs,item.id)==-1){
newIDs.push(item.id)
}else{
newIDs = _.filter(newIDs,function(i){return i != item.id})
}
self.setState({
openedMenuIDs: newIDs
})
}
// 关闭弹框
closeDialog(type){
if(type=='group'){
this.setState({
addGroupDialog: false
})
}else{
this.setState({
addUserGroupDialog: false
})
}
}
confirmDlg(title,content,agreeCallback){
let a = DialogFD({
app: window.dvaApp,
data: {
open: true,
title: title,
content: content,
actions: [
{
key: 'cancel', value: i18n('btn.cancel'), className: 'jw-portal-confirm-cancel'
}, {
key: 'agree', value: i18n("btn.sure"), className: 'jw-portal-confirm-sure'
}
],
onClose:()=>{
a.close();
}
},
component: SimpleDialog,
})
a.events.on('click', function (target, datas) {
if (datas['key'] == 'agree') {
a.close();
target.setState({open: false})
agreeCallback();
} else {
a.close();
target.setState({open: false})
}
})
a.events.on('cancel', function (target, datas) {
a.close();
target.setState({open: false})
})
}
// 用户组分组 添加
addGroup(){
this.setState({
addGroupDialog: true,
groupData: $.extend(true,{},this.state.defaultGroupData)
})
}
// 用户组分组 编辑/删除
groupActions(action,item){
let self = this;
if(action.key=='edit'){
this.setState({
addGroupDialog: true,
groupData: _.extend({},this.state.defaultGroupData,{id:item.id, name:item.name})
})
}else if(action.key=='delete'){
// '确认删除分组{ name }吗?其中的用户组也将同时被删除'
let delTip = i18n('label.usergroup.delete.grouping');
self.confirmDlg(
i18n('tip.usergroup.delete.prompt'), // '删除提示',
delTip.replace('{ name }',item.name),
()=>{
let url = '/api/customusergroup/'+item.id+'/class';
if(self.state.objectInfo.otype == 'raffle'){
url = '/api/raffleconsole/usergroupclass?id=' + item.id + '&oid=' + self.state.objectInfo.oid + '&utype=' + self.props.utype;
}
request(url, {
method: 'DELETE'
}).then((resp) => {
let data = resp.data;
if (data.JMStatus && data.JMStatus.code == 0) {
let groupList = self.state.usergroup_list;
groupList = _.filter(groupList,(group)=>{return group.id!=item.id})
let selectedUserGroupID = '';
if(groupList.length > 0){
groupList.map(function(item){
if(_.find(item.groups,{id:self.state.selectedUserGroupID})){
selectedUserGroupID = self.state.selectedUserGroupID;
}
})
}
self.setState({
usergroup_list: groupList,
selectedUserGroupID: selectedUserGroupID,
});
AloneTip({ type: 'success', duration: 2000, hasclose: false, autoHideDuration: 2000, message: i18n('label.form.del.success') }) //'删除成功'
} else {
// request中有错误提示
}
});
}
)
}
}
// 用户组分组 保存成功
addGroupDataSuccess(data){
this.closeDialog('group')
let groupList = this.state.usergroup_list;
// 编辑
if(this.state.groupData.id){
let editIndex = _.findIndex(groupList,{id:this.state.groupData.id});
if(editIndex==-1) return;
groupList[editIndex] = _.extend(groupList[editIndex],data)
// 新建
}else{
groupList.push(data);
}
this.setState({
usergroup_list: groupList
},()=>this.scrollToGroup(data))
}
// 用户组 添加
addUserGroup(data){
if(data){
this.setState({
addUserGroupDialog: true,
userGroupData: {name:'',cid:data.id}
})
}else{
this.setState({
addUserGroupDialog: true,
userGroupData: $.extend(true,{},this.state.defaultUserGroupData)
})
}
}
// 用户组 编辑/删除
usergroupActions(action,item){
let self = this;
if(action.key=='edit'){
this.setState({
addUserGroupDialog: true,
userGroupData: _.extend({},this.state.defaultUserGroupData,{id:item.id, name:item.name,cid:item.cid})
})
}else if(action.key=='delete'){
let delTip = i18n('label.usergroup.delete.group'); //'确认删除{ name }吗?'
self.confirmDlg(
i18n('tip.usergroup.delete.prompt'), //'删除提示',
delTip.replace('{ name }',item.name),
()=>{
let url = '/api/customusergroup/usergroup/'+item.id;
if(self.state.objectInfo.otype == 'raffle'){
url = '/api/raffleconsole/usergroup?id=' + item.id + '&oid=' + self.state.objectInfo.oid + '&utype=' + self.props.utype;
}
request(url, {
method: 'DELETE'
}).then((resp) => {
let data = resp.data;
if (data.JMStatus && data.JMStatus.code == 0) {
// 把列表中的该条用户组数据移除
let groupList = self.state.usergroup_list;
let curGroupClassIndex = _.findIndex(groupList,{id:item.cid})
if(curGroupClassIndex==-1) return;
if(!groupList[curGroupClassIndex]['groups']) return;
groupList[curGroupClassIndex]['groups'] = _.filter(groupList[curGroupClassIndex]['groups'],(tmp)=>{ return tmp.id!=item.id })
let newdata = {usergroup_list: groupList};
if(self.state.selectedUserGroupID == item.id){
newdata.selectedUserGroupID = '';
newdata.usergroup_info = {};
}
self.setState(newdata);
AloneTip({ type: 'success', duration: 2000, hasclose: false, autoHideDuration: 2000, message: i18n('label.form.del.success') }) // '删除成功'
} else {
// request中已有错误提示
}
});
}
)
}
}
// 用户组 保存成功
addUserGroupDataSuccess(data,groupData){
this.closeDialog('usergroup');
let self = this;
let usergroup_list = this.state.usergroup_list;
let id = groupData ? groupData.cid : this.state.userGroupData.cid;
let groupIndex = _.findIndex(usergroup_list,{id: id});
if(groupIndex==-1) return;
if(!usergroup_list[groupIndex].groups) usergroup_list[groupIndex].groups=[];
// 编辑
if(this.state.userGroupData.id){
let usergroupIndex = _.findIndex(usergroup_list[groupIndex].groups,{id:this.state.userGroupData.id});
if(usergroupIndex==-1) return;
usergroup_list[groupIndex].groups[usergroupIndex] = _.extend(usergroup_list[groupIndex].groups[usergroupIndex],data)
// 新建
}else{
usergroup_list[groupIndex].groups.push(data);
}
this.state.openedMenuIDs.push(data.cid);
// 只有新增的会默认选中,编辑的,不做选中操作
let params = {};
if(!this.state.userGroupData.id){
params.selectedUserGroupID = data.id;
params.usergroup_info = {};
}
this.setState(_.extend({
usergroup_list: usergroup_list,
openedMenuIDs: this.state.openedMenuIDs,
userGroupData: {
name: groupData.name,
cid: groupData.cid
}
},params),()=>{
if(params.selectedUserGroupID){
self.getUserGroupInfo()
}
self.scrollToGroup(data)
})
}
// 使用户组分组跳转到视野中
scrollToGroup(data){
setTimeout(()=>{
if($('#'+data.id).length==0) return;
// 如果元素在视野范围外,那么让页面滚动到露出该元素的位置
let curHeight = $('#'+data.id).offset().top;
if(($(window).scrollTop() + $(window).height())<curHeight){
$(document).scrollTop(curHeight)
}
})
}
// BaseShare onchange 改变已有对象
changeShare(data){
let curGroupInfo = this.state.usergroup_info;
curGroupInfo.scope = data;
this.setState({
usergroup_info: curGroupInfo
})
}
// 获取自定义用户组的详细信息
getUserGroupInfo(){
if(!this.state.selectedUserGroupID) return;
let self = this;
let url = '/api/customusergroup/usergroup/'+this.state.selectedUserGroupID;
if(self.state.objectInfo.otype == 'raffle'){
url = '/api/raffleconsole/usergroup?id=' + this.state.selectedUserGroupID;
}
request(url,{
method:"GET",
})
.then(function(resp){
let params = {loadingDetail:false}
if (resp.data &&resp.data.JMStatus && resp.data.JMStatus.code == 0) {
params.usergroup_info = resp.data.JMUsergroup||{};
}else{
// request 中对错误有输出,所以这里不需要再出错误提示
}
self.setState(params)
})
}
// 保存自定义用户组的范围
saveUserGroupScope(){
let self = this;
let newdata = this.state.usergroup_info.scope ? this.state.usergroup_info.scope : [];
let empty = false;
if(newdata.length>0){
_.each(newdata,(item)=>{
for(let i = 0; i <item.length; i++){
if(JSON.stringify(item[i]) == "{}") {
item.splice(i,1);
i--;
}else {
if(item[i].objs==undefined || (item[i].objs && item[i].objs.length==0)){
empty = true;
break;
}
}
}
})
}
if(empty==true){
let a = AloneTip({ type: 'error', duration: 3000, hasclose: false, autoHideDuration: 3000, message: i18n('tip.usergroup.save.check') }) //'请给每个条件选择对象后再保存'
return;
}
let saveData = [];
saveData = _.filter(newdata,(item)=>{
return item.length!=0
})
this.state.usergroup_info.scope = saveData;
this.setState({saving:true});
let params = this.state.usergroup_info;
let url = '/api/customusergroup/usergroup/'+this.state.usergroup_info.id;
if(self.state.objectInfo.otype == 'raffle'){
url = '/api/raffleconsole/usergroup';
params.utype = this.props.utype;
params.oid = self.state.objectInfo.oid;
}
request(url,{
method:"PUT",
body: JSON.stringify(params)
})
.then(function(resp){
let params = {
saving: false
}
if(resp.data &&resp.data.JMStatus && resp.data.JMStatus.code == 0){
let a = AloneTip({ type: 'success', duration: 2000, hasclose: false, autoHideDuration: 2000, message: i18n('label.save-success') }) //'保存成功'
}else{
// request 中对错误有输出,所以这里不需要再出错误提示
}
self.setState(params)
})
}
componentWillReceiveProps(nextProps){
let datas = nextProps;
this.setState(nextProps);
}
componentDidMount(){
let self = this;
let url = '/api/customusergroup/usergroupclasses';
let params = _.extend({show_members_numoptional: 0},this.state.objectInfo);
if(this.props.otype == "raffle"){
url = "/api/raffleconsole/usergroupclasses";
params.utype = this.props.utype;
}
// 获取自定义用户组分组及自定义用户组列表
request(url,{
method:"GET",
body: params
})
.then(function(resp){
if(resp.data&&resp.data.JMStatus && resp.data.JMStatus.errmemo){
// request 中对错误有输出,所以这里不需要再出错误提示
self.setState({
loadingList:false
})
}else if(resp.data){
let defaultUserGroupData = self.state.defaultUserGroupData;
let openedMenuIDs = [];
let selectedUserGroupID = '';
// 把那会来的数据更新到state中
if(resp.data.JMUsergroupclasses){
openedMenuIDs = resp.data.JMUsergroupclasses.length>0 ? [resp.data.JMUsergroupclasses[0].id] : [];
selectedUserGroupID = resp.data.JMUsergroupclasses.length>0 ?
(resp.data.JMUsergroupclasses[0].groups&&resp.data.JMUsergroupclasses[0].groups.length>0 ? resp.data.JMUsergroupclasses[0].groups[0].id : '') :
''
}
self.setState({
loadingList:false,
usergroup_list:resp.data.JMUsergroupclasses||[],
openedMenuIDs: openedMenuIDs,
selectedUserGroupID: selectedUserGroupID,
defaultUserGroupData: _.extend(defaultUserGroupData,{
cid: resp.data.JMUsergroupclasses.length>0 ? resp.data.JMUsergroupclasses[0].id : ''
})
})
// 获取选中的用户组的详细范围
if(selectedUserGroupID){
self.getUserGroupInfo()
}
}
})
let conditions = [
{
"id": 0,
"name": i18n('label.form.select.placeholder'), //'请选择'
"type": "jw_select_please"
},
]
request('/api/dict/choiceattrs',{
method:"GET",
}).then(function(resp){
// conditions.push(resp.data.JMAttrs)
self.setState({
conditions: conditions.concat(resp.data.JMAttrs)
})
})
}
combineLeft(){
if(this.state.usergroup_list.length==0){
return <div></div>
}
let self = this;
let openedMenuIDs = this.state.openedMenuIDs;
return <div>
{
_.map(this.state.usergroup_list,function(item,index){
let curmenushow = _.indexOf(openedMenuIDs,item.id)!=-1 ? true : false;
return <div className="usergroup-menu-list" key={index}>
<MenuItem onClick={(items)=>self.toggleMenu(item)} id={item.id}>
<span className={curmenushow ? "menu-show" : "menu-hide"}></span>
<span className="menu-name ellipsis">{item.name}</span>
{
// default_flag = 1 代表是默认生成的(系统的,系统的不允许编辑和删除)。0是新增的
item.default_flag*1==1 ?
<div className="usergroup-operation" onClick={(e)=>{e.stopPropagation()}}>
<i className="icon-add-usergroup" onClick={()=>self.addUserGroup(item)}></i>
<MoreVertIcon className={""}/>
</div> :
<div className="usergroup-operation" onClick={(e)=>{e.stopPropagation()}}>
<i className="icon-add-usergroup" onClick={()=>self.addUserGroup(item)}></i>
<Menu className="usergroup-manage-menu" options={[{key:'edit',value:i18n('btn.edit')},{key:'delete',value:i18n('btn.remove')}]} onChange={(action)=>self.groupActions(action,item)}></Menu>
</div>
}
</MenuItem>
{
item.groups&&item.groups.length>0 ?
<MenuList id={item.id} className={"child-menus " + (curmenushow ? '' : 'child-menus-hidden')} >
{_.map(item.groups,function(childItem,childIndex){
return <MenuItem key={childItem.id} id={childItem.id} onClick={()=>self.menuClick(childItem)} className={self.state.selectedUserGroupID==childItem.id ? 'jwm-usergroup-active' : ''} >
<span className="menu-name ellipsis">{childItem.name}</span>
<Menu options={[{key:'edit',value:i18n('btn.edit')},{key:'delete',value:i18n('btn.remove')}]} onChange={(action)=>self.usergroupActions(action,childItem)} onClick={(e)=>{e.stopPropagation()}}></Menu>
</MenuItem>
})}
</MenuList>
: ''
}
</div>
})
}
</div>
}
combineRight(){
let self = this;
// this.state.selectedUserGroupID = '';
let curGroupInfo = this.state.usergroup_info;
let user_scope = curGroupInfo.scope&&curGroupInfo.scope.length>0 ? curGroupInfo.scope : [[]];
let equalFlag = false;
return <div className="define-usergroup-right">
{
this.state.selectedUserGroupID=='' ?
<div className="usergroup-empty-page ">
<i className="icon-user-empty"></i>
<p className="usergroup-empty-desc1">{i18n('tip.usergroup.uncheck.prompt')} </p>
{
curLang == 'en' ? <p className="usergroup-empty-desc2">Click <span className="add-usergroup-btn1" onClick={()=>this.addUserGroup()}> here </span> to add a user group</p> : <p className="usergroup-empty-desc2">{i18n('tip.usergroup.click.here')}<span className="add-usergroup-btn1" onClick={()=>this.addUserGroup()}> {i18n('btn.usergroup.add')} </span>{i18n('label.usergroup.title')}</p>
}
</div> :
<div className="usergroup-right-content">
<div className="define-usergroup-title">
<span className="title-name ellipsis">{curGroupInfo.name||''}</span>
{
(this.state.saving==true||equalFlag==true) ?
<Button color="primary" className="usergroup-save" disabled>
{this.state.saving==true ? i18n('btn.saving'):i18n('btn.save')}
</Button> :
<Button color="primary" className="usergroup-save" onClick={()=>this.saveUserGroupScope()}>
{i18n('btn.save')}
</Button>
}
<Button color="primary" className="usergroup-view-member hide" >
查看人员
</Button>
</div>
<p className="user-obj-select-rules">{i18n('label.usergroup.rules.title')}</p>
<p className="user-obj-select-rules-desc">{i18n('label.usergroup.rules.details')}</p>
<TeamScope otypeOptions={this.state.conditions} scope={user_scope} onChange={(data)=>this.changeShare(data)} openExportDepts={this.state.openExportDepts} openExportUsers={this.state.openExportUsers}/>
</div>
}
</div>
}
render(){
let self = this;
let openedMenuIDs = this.state.openedMenuIDs;
// this.state.usergroup_list=[];
// loading 状态
if(this.state.loadingList==true){
return (
<div>
<div className="jw-m-define-usergroup">
<LoadingView />
</div>
</div>
)
}
// loading 结束
return (
<div>
<div className="jw-m-define-usergroup">
<div className="define-usergroup-left">
<Button color="primary" className="users-add-group-btn" onClick={()=>this.addGroup()}>
+ {i18n('label.usergroup.add.groupclass')}
</Button>
<Button color="primary" className="users-add-usegroup-btn" onClick={()=>this.addUserGroup()}>
+ {i18n('label.usergroup.add.group')}
</Button>
{
this.combineLeft()
}
</div>
<div className="define-usergroup-line"></div>
{
this.combineRight()
}
</div>
<AddGroupDialog open={this.state.addGroupDialog} data={this.state.groupData} utype={this.props.utype} onSubmitSuccess={(data)=>{ self.addGroupDataSuccess(data) }} onClose={()=>this.closeDialog('group')}/>
<AddUserGroup open={this.state.addUserGroupDialog} data={this.state.userGroupData} utype={this.props.utype} groupClasses={this.state.usergroup_list} objectInfo={this.state.objectInfo} onSubmitSuccess={(data,groupData)=>this.addUserGroupDataSuccess(data,groupData)} onClose={()=>this.closeDialog('usergroup')}/>
</div>)
}
}
export default CustomUserGroup;