import React from 'react'; import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Tree} from 'antd'; import ajax from 'jquery/src/ajax/xhr.js'; import $ from 'jquery/src/ajax'; import './userMangagement.less'; const TreeNodet = Tree.TreeNode; const Newrole = Form.create()(React.createClass({ addloadData() { this.setState({ loading: true }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/permissions', data: { }, success: function(data) { let theArr = []; if(!data.data || !data.data.one) { if(data.error && data.error.length) { message.warning(data.error[0].message); }; } else { this.setState({ Interface: data.data.one, }); }; }.bind(this), }).always(function() { this.setState({ loading: false }); }.bind(this)); }, getInitialState() { return { loading: false, visible: false, expandedKeys: [], autoExpandParent: true, checkedKeys: [], selectedKeys: [], renderTreeNodes: undefined, Interface:[] }; }, handleSubmit(e) { e.preventDefault(); this.props.form.validateFields((err, values) => { let selectAllId = this.state.checkedKeys||[]; if(!err) { this.setState({ loading: true }); // if(selectAllId){ // if(selectAllId[0]==null){ // selectAllId.splice(0,1) // } // } $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/role', data: { data:JSON.stringify({ 'id':this.state.ids?this.state.ids:null, 'roleName': this.state.roleName, 'roleType': this.state.roleType, 'permissions': selectAllId.checked?selectAllId.checked:selectAllId }) } }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('保存成功!'); this.handleOk() } else { message.warning(data.error[0].message); } }.bind(this)); } }); }, //查看基本详情基本信息 loaduser(record){ if(record){ $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/role/rolePermission', data: { id: record.id }, success: function (data) { let thisData = data.data; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; thisData = {}; }; let idList=[]; thisData.map(function(item){ idList.push( item.pid ) }) this.setState({ ids:record.id, roleName:thisData[0].rname, roleType:thisData[0].roleType, checkedKeys:idList, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); } }, handleOk(e) { this.setState({ visible: false, }); this.props.closeDesc(false, true); }, handleCancel(e) { this.setState({ visible: false, }); this.props.closeDesc(false); }, componentWillMount() { this.addloadData() }, componentWillReceiveProps(nextProps) { //props改变时触发 this.state.visible = nextProps.showDesc; if(nextProps.userDetaile && nextProps.showDesc) { if(nextProps.datauser && nextProps.datauser.id) { this.loaduser(nextProps.datauser) } }else{ this.setState({ checkedKeys: [], datauser: {}, roleName:'', roleType:'', ids:'', }) } }, //权限多选 onExpand(expandedKeys){ this.setState({ expandedKeys, autoExpandParent: false, }); }, onCheck(checkedKeys){ this.setState({checkedKeys:checkedKeys }); }, onSelect(selectedKeys, info){ this.setState({ selectedKeys }); }, renderTreeNodes(data){ return data.map((item) => { if(item.children) { return( {this.renderTreeNodes(item.children)} ); } return ; }); }, tableRowClick(record, index) { }, render() { const FormItem = Form.Item const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; return(
{this.setState({roleName:e.target.value})}} style={{width:'200px'}} required="required"/> * {this.setState({roleType:e.target.value})}} style={{width:'200px'}}/>
{this.renderTreeNodes(this.state.Interface)}
) } })); export default Newrole;