Commit 088b6cbc authored by wangchunxiang's avatar wangchunxiang

Initial commit

parent c7db38c1
Pipeline #2374 passed with stage
in 1 second
APP_HOST_URL='http://testonlinenightclub.srccwl.com/api' APP_HOST_URL='http://test-business-data.sky-shark.com/business-data-api/admin'
env=dev env=dev
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1"> <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<title>夜店后台管理</title> <title>聚合后台管理</title>
</head> </head>
<body> <body>
<div id="ice-container"></div> <div id="ice-container"></div>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1"> <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<title>夜店后台管理</title> <title>聚合后台管理</title>
<link rel="shortcut icon" href="./favicon.png"><link href="./css\1.css" rel="stylesheet"><link href="./css\index.css" rel="stylesheet"></head> <link rel="shortcut icon" href="./favicon.png"><link href="./css\1.css" rel="stylesheet"><link href="./css\index.css" rel="stylesheet"></head>
<body> <body>
<div id="ice-container"></div> <div id="ice-container"></div>
......
...@@ -7,60 +7,34 @@ import {clear, get} from "../../service/Global"; ...@@ -7,60 +7,34 @@ import {clear, get} from "../../service/Global";
import HttpClient from "../../service/HttpClient"; import HttpClient from "../../service/HttpClient";
import Api from '../../service/Api' import Api from '../../service/Api'
let old = [{ let old = [{
name: '监控预警', name: '组织关系配置',
path: '/monitor', path: '/main',
icon: '&#xe654;', icon: '&#xe654;',
authority: 'user', authority: 'user',
children: [{ children: [{
name: '提现监控管理', name: '主体配置',
path: '/monitor/manage', path: '/main/config',
authority: 'user', authority: 'user',
}, },
{
name: '通知管理人',
path: '/monitor/manger',
authority: 'user',
},
{
name: '报警通知',
path: '/monitor/inform',
authority: 'user',
},
] ]
}, },
{ {
name: '玩家查询', name: '显示管理',
path: '/query', path: '/show',
icon: '&#xe657;', icon: '&#xe657;',
authority: 'user', authority: 'user',
children:[ children:[
{ {
name: '玩家货币查询', name: '显示目录管理',
path: '/query/player', path: '/show/mange',
authority: 'user', authority: 'user',
}, },
] ]
}, },
{
name: '白名单',
path: '/white',
icon: '&#xe657;',
authority: 'user',
children:[
{
name: '白名单管理',
path: '/white/mange',
authority: 'user',
},
]
},
{ {
name: '系统设置', name: '系统设置',
path: '/set', path: '/set',
......
...@@ -11,60 +11,34 @@ import { asideMenuConfig } from '../../../../menuConfig'; ...@@ -11,60 +11,34 @@ import { asideMenuConfig } from '../../../../menuConfig';
const SubMenu = Menu.SubMenu; const SubMenu = Menu.SubMenu;
const { Sider } = Layout; const { Sider } = Layout;
let old = [{ let old = [{
name: '监控预警', name: '组织关系配置',
path: '/monitor', path: '/main',
icon: '&#xe654;', icon: '&#xe654;',
authority: 'user', authority: 'user',
children: [{ children: [{
name: '提现监控管理', name: '主体配置',
path: '/monitor/manage', path: '/main/config',
authority: 'user', authority: 'user',
}, },
{
name: '通知管理人',
path: '/monitor/manger',
authority: 'user',
},
{
name: '报警通知',
path: '/monitor/inform',
authority: 'user',
},
] ]
}, },
{ {
name: '玩家查询', name: '显示管理',
path: '/query', path: '/show',
icon: '&#xe657;',
authority: 'user',
children:[
{
name: '玩家货币查询',
path: '/query/player',
authority: 'user',
},
]
},
{
name: '白名单',
path: '/white',
icon: '&#xe657;', icon: '&#xe657;',
authority: 'user', authority: 'user',
children:[ children:[
{ {
name: '白名单管理', name: '显示目录管理',
path: '/white/mange', path: '/show/mange',
authority: 'user', authority: 'user',
}, },
] ]
}, },
{ {
name: '系统设置', name: '系统设置',
path: '/set', path: '/set',
......
...@@ -7,7 +7,7 @@ export default class Logo extends PureComponent { ...@@ -7,7 +7,7 @@ export default class Logo extends PureComponent {
render() { render() {
return ( return (
<div className="logo"> <div className="logo">
<Link to="/" className="logo-text"><i className="iconfont" style={{color:''}}>&#xe659;</i><span className="ml-10">夜店后台管理</span></Link> <Link to="/" className="logo-text"><i className="iconfont" style={{color:''}}>&#xe659;</i><span className="ml-10">聚合后台管理</span></Link>
</div> </div>
); );
} }
......
...@@ -3,60 +3,34 @@ import Api from './service/Api' ...@@ -3,60 +3,34 @@ import Api from './service/Api'
import { get } from "./service/Global"; import { get } from "./service/Global";
let asideMenuConfig =[{ let asideMenuConfig =[{
name: '监控预警', name: '组织关系配置',
path: '/monitor', path: '/main',
icon: '&#xe654;', icon: '&#xe654;',
authority: 'user', authority: 'user',
children: [{ children: [{
name: '提现监控管理', name: '主体配置',
path: '/monitor/manage', path: '/main/config',
authority: 'user', authority: 'user',
}, },
{
name: '通知管理人',
path: '/monitor/manger',
authority: 'user',
},
{
name: '报警通知',
path: '/monitor/inform',
authority: 'user',
},
] ]
}, },
{ {
name: '玩家查询', name: '显示管理',
path: '/query', path: '/show',
icon: '&#xe657;', icon: '&#xe657;',
authority: 'user', authority: 'user',
children:[ children:[
{ {
name: '玩家货币查询', name: '显示目录管理',
path: '/query/player', path: '/show/mange',
authority: 'user', authority: 'user',
}, },
] ]
}, },
{
name: '白名单',
path: '/white',
icon: '&#xe657;',
authority: 'user',
children:[
{
name: '白名单管理',
path: '/white/mange',
authority: 'user',
},
]
},
{ {
name: '系统设置', name: '系统设置',
path: '/set', path: '/set',
......
import React from 'react' import React from 'react'
import {Form, Icon, Input, Button} from 'antd' import {Form, Icon, Input, Button, message} from 'antd'
import {withRouter} from "react-router-dom"; import {withRouter} from "react-router-dom";
import {set, setObj,clear} from "../../service/Global"; import {set, setObj,clear} from "../../service/Global";
import HttpClient from '../../service/HttpClient' import HttpClient from '../../service/HttpClient'
...@@ -12,7 +12,8 @@ class LoginTpl extends React.Component{ ...@@ -12,7 +12,8 @@ class LoginTpl extends React.Component{
super(props) super(props)
this.state={ this.state={
loginType:0, loginType:0,
display:0 display:0,
inputValue:''
} }
} }
handleSubmit = (e) => { handleSubmit = (e) => {
...@@ -40,63 +41,15 @@ class LoginTpl extends React.Component{ ...@@ -40,63 +41,15 @@ class LoginTpl extends React.Component{
// clear(); // clear();
// } // }
componentWillMount(){ componentWillMount(){
//引入“微信内嵌二维码”脚本
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = false;
script.src = 'https://rescdn.qqmail.com/node/ww/wwopenmng/js/sso/wwLogin-1.0.0.js';
document.head.appendChild(script);
} }
componentDidMount(){ componentDidMount(){
clear();
var data=location.href.split('=')[1]
if(data){
var lists=Base64.decode(data);
var email=lists.split('&')[0].split('=')[1]
var password=lists.split('&')[1].split('=')[1]
var obj={
email:email,
password:password
}
this.loginTo(obj);
}
/**
* ... other code
* */
//加载微信二维码
setTimeout(function() {
/**
* 微信内嵌二维码自定义样式有两种方式实现
* 第一种是把自定义样式写在一个css文件里面,部署到一个https链接上
* 第二种是把自定义样式通过base64加密后设置在href上
* */
var customeStyle = "data:text/css;base64,Lnd4X3FyY29kZSBpZnJhbWUgeyB3aWR0aDogMTYwcHg7IGhlaWdodDogMTYwcHg7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQ0KLmxvZ2luUGFuZWwgeyBtYXJnaW46MDsgcGFkZGluZzogMDsgfQ0KLmxvZ2luUGFuZWwgLnRpdGxlLCAubG9naW5QYW5lbCAuaW5mbyB7IGRpc3BsYXk6IG5vbmU7IH0NCi5pbXBvd2VyQm94IC5xcmNvZGUgeyBtYXJnaW46IDA7IHdpZHRoOiAxNjBweDsgYm9yZGVyOiBub25lOyB9";
window.WwLogin({
// self_redirect: false,
id: "wx_login_container",
appid: "wwa846aeddd5ae71bf", //微信开放平台网站应用appid
// scope: "snsapi_login",
agentid:"1000021",
redirect_uri: encodeURI('http://test.auth.ahg-op.com/wx-api/user/permission'), //设置扫码成功后回调页面
state: "1",
style: "black",
href: customeStyle, //location.origin + "/css/wx_qrcode.css", //自定义微信二维码样式文件
});
//设置iframe标签可以进行跨域跳转
var qrcodeBox = document.getElementById("wx_login_container");
var iframes = qrcodeBox.getElementsByTagName("iframe");
if (iframes.length){
var ifr = iframes[0];
ifr.setAttribute("sandbox", "allow-scripts allow-top-navigation allow-same-origin");
}
}, 1000)
} }
handleType=(e)=>{ handleType=(e)=>{
e.preventDefault(); e.preventDefault();
...@@ -105,45 +58,58 @@ class LoginTpl extends React.Component{ ...@@ -105,45 +58,58 @@ class LoginTpl extends React.Component{
display:0 display:0
}) })
} }
handleType1=(e)=>{ // 获取input的值
e.preventDefault(); handleChange=(e)=>{
console.log(e.target.value)
this.setState({ this.setState({
loginType:1, inputValue:e.target.value
display:1
}) })
} }
// 发送验证码
handleSendCode=()=>{
let inputValue=this.state.inputValue;
if(inputValue==''){
message.info('请先输入手机号!');
return;
}
HttpClient.get(Api.sendCode,{phone:inputValue}).then(data => {
console.log(data)
})
}
render() { render() {
const { getFieldDecorator } = this.props.form; const { getFieldDecorator } = this.props.form;
return( return(
<section> <section>
<div className="login_panel"> <div className="login_panel">
<div className="title">夜店管理后台</div> <div className="title">聚合管理后台</div>
<div className='tab'> <div className='tab'>
<a href="#" className={this.state.display==0?'first active':'first'} onClick={this.handleType}>账号登录</a> <a href="#" className={this.state.display==0?'first active':'first'} onClick={this.handleType}>手机号登录</a>
{/* <a href="#" onClick={this.handleType1} className={this.state.display==1?'active':''}>注册</a> */}
</div> </div>
<Form onSubmit={this.handleSubmit} className="login-form" style={{display:this.state.loginType==0?'block':'none'}}> <Form onSubmit={this.handleSubmit} className="login-form" style={{display:this.state.loginType==0?'block':'none'}}>
<Form.Item> <Form.Item>
{getFieldDecorator('name', { {getFieldDecorator('phone', {
rules: [{ required: true, message: '请输入用户名!' }], rules: [{ required: true, message: '请输入手机号!' },{
pattern:/^1[3|4|5|7|8][0-9]\d{8}$/, message: '请输入正确的手机号'
}],
})( })(
<Input prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />} placeholder="用户名" /> <Input placeholder="请输入手机号" onChange={this.handleChange}/>
)} )}
</Form.Item> </Form.Item>
<Form.Item> <Form.Item>
{getFieldDecorator('pwd', { {getFieldDecorator('pwd', {
rules: [{ required: true, message: '请输入码!' }], rules: [{ required: true, message: '请输入验证码!' }],
})( })(
<Input prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />} type="password" placeholder="密码" /> <div style={{display:'flex'}}>
<Input placeholder="请输入验证码" />
<Button type='primary' style={{marginLeft:'10px'}} onClick={this.handleSendCode}>发送验证码</Button>
</div>
)} )}
</Form.Item> </Form.Item>
<Button type="primary" htmlType="submit" className="login-form-button"> <Button type="primary" htmlType="submit" className="login-form-button">
登录 登录
</Button> </Button>
</Form> </Form>
{/* <div className='codeContainer' style={{display:this.state.loginType==1?'block':'none'}}>
<div id='wx_login_container' className="wx_qrcode"></div>
</div> */}
</div> </div>
</section> </section>
) )
......
import React,{Fragment} from 'react';
import moment from 'moment';
import { withRouter } from "react-router-dom";
import ItemNav from "../../components/ItemNav";
import ItemTableQuery from "../../components/ItemTableQuery";
import ItemTable from "../../components/ItemTable";
import HttpClient from "../../service/HttpClient";
import Api from "../../service/Api";
import { set, get } from "../../service/Global";
import {Radio, Button, Empty, Modal, Table, Input,Form, Select,Popconfirm,message, Upload, Icon,DatePicker} from 'antd';
import {dateFormat, parseParams} from "../../service/utils";
import {Store} from "marine";
import './index.scss'
const { TextArea } = Input;
const { RangePicker } = DatePicker;
@withRouter
class MainConfig extends React.Component{
constructor(props){
super(props);
this.state={
visible: false,
platData:[],
channelData:[],
dataSource:{},
currencyData:[],
list:{},
selectedRowKeys:[],
loading: false,
}
}
form;
defaultParams = {
page:1,
pageSize:10
};
itemNav = {
list: [{ anchor: "主体配置" }],
};
columns = [
{ title: "序号", dataIndex: "platform", key: "platform",},
{ title: "主体名称", dataIndex: "channel", key: "channel", },
{ title: "关联项目", dataIndex: "type", key: "type", },
{ title: "操作", dataIndex: "operate", key: "operate",render:(text,record)=>{
return <div>
<Button type='default' className='ml-10 edit' onClick={()=> this.showBatchModal(record)}>修改</Button>
{/* <Popconfirm
title="你确定删除吗?"
onConfirm={()=>{this.handleDelete(record.id)}}
//onCancel={this.cancel}
okText="Yes"
cancelText="No"
>
<Button type='link ml-20 delete-red' >删除</Button>
</Popconfirm> */}
</div>
}}
];
handleDelete=(id)=>{
return HttpClient.post(Api.warnDelete,{id:id}).then(data => {
if(data){
message.success('删除成功!');
this.getList(this.defaultParams)
}
})
}
getList(params){
return HttpClient.post(Api.warnList,{...params,}).then(data => {
this.setState({
dataSource: data,
})
})
}
getPlatList(){
return HttpClient.post(Api.platformList).then(data => {
let tmp=[]
for(var i in data){
if(i!=0){
let obj= {id:i,name:data[i]}
tmp.push(obj)
}
}
this.setState({
platData:tmp
})
})
}
channelList=()=>{
return HttpClient.post(Api.channelList).then(data => {
let tmp=[]
for(var i in data){
if(i!=0){
let obj= {id:i,name:data[i]}
tmp.push(obj)
}
}
this.setState({
channelData:tmp
})
})
}
currencyList=()=>{
return HttpClient.post(Api.currencyList).then(data => {
let tmp=[]
for(var i in data){
if(i!=0){
let obj= {id:i,name:data[i]}
tmp.push(obj)
}
}
this.setState({
currencyData:tmp
})
})
}
pager = (page) => {
this.defaultParams = Object.assign({},this.defaultParams,{page:page});
this.getList(this.defaultParams);
};
onShowSizeChange=(current, pageSize)=> {
this.defaultParams = Object.assign({},this.defaultParams,{page:current,pageSize:pageSize});
this.getList(this.defaultParams);
}
getTableQuery=(params)=>{
this.defaultParams = Object.assign(this.defaultParams,{...params});
this.getList(this.defaultParams);
};
resetParams = ()=>{
this.defaultParams = {};
this.setState({
tableData:{}
})
};
handleCancel = () => {
this.setState({ visible: false });
};
handleOk=()=>{
const id=this.state.list.id;
this.props.form.validateFields((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
if(id){
HttpClient.post(Api.warnEdit,{...values,id:id}).then(data => {
this.setState({ visible: false });
this.getList(this.defaultParams)
})
}else{
HttpClient.post(Api.warnAdd,{...values}).then(data => {
this.setState({ visible: false });
this.getList(this.defaultParams)
})
}
}
});
}
showBatchModal = (list) => {
// if(list){
// this.setState({visible: true,list});
// }else{
// this.setState({visible: true,list:{}});
// }
this.props.history.push('/main/detail');
};
handleStart=(status)=>{
const that=this;
const {selectedRowKeys}=this.state;
if(selectedRowKeys.length==0){
message.info('请至少选择一个!');
return;
}
return HttpClient.post(Api.warnStatusAll,{status,ids:selectedRowKeys.join('#')}).then(data => {
if(data){
message.success('操作成功');
this.getList(this.defaultParams);
that.setState({
selectedRowKeys:null,
})
}
})
}
componentDidMount() {
// this.getPlatList();
// this.channelList()
// this.currencyList()
this.getList(this.defaultParams)
}
render() {
return(
<Fragment>
<ItemNav itemNav={this.itemNav} />
<section className='content-base'>
<div className='mb-20 formwrapper'>
<Button type='primary' className='ml-20' onClick={()=> this.showBatchModal()}>新增</Button>
</div>
<ItemTable columns={this.columns} dataSource={this.state.dataSource} pager={this.pager} onShowSizeChange={this.onShowSizeChange} />
</section>
</Fragment>
)
}
}
export default MainConfig;
\ No newline at end of file
import MonitorMange from './MonitorMange' import MainConfig from './MainConfig'
export default MonitorMange; export default MainConfig;
\ No newline at end of file \ No newline at end of file
.formwrapper{ .formBg{
width: 90%;
display: flex; display: flex;
.formBg{ align-items: center;
width: 90%; label{
width: 83px;
}
input{
width: 200px;
} }
} }
\ No newline at end of file
import React,{Fragment} from 'react';
import moment from 'moment';
import { withRouter } from "react-router-dom";
import ItemNav from "../../components/ItemNav";
import ItemTableQuery from "../../components/ItemTableQuery";
import ItemTable from "../../components/ItemTable";
import HttpClient from "../../service/HttpClient";
import Api from "../../service/Api";
import { set, get } from "../../service/Global";
import {Switch, Button, Empty, Modal, Table, Input,Form, Select,Popconfirm,message, Upload, Icon,DatePicker} from 'antd';
import {dateFormat, parseParams} from "../../service/utils";
import {Store} from "marine";
import './index.css'
const { TextArea } = Input;
const { RangePicker } = DatePicker;
@withRouter
class ShowMange extends React.Component{
constructor(props){
super(props);
this.state={
visible: false,
platData:[],
channelData:[],
dataSource:{},
currencyData:[],
list:{},
selectedRowKeys:[],
loading: false,
}
}
form;
defaultParams = {
page:1,
pageSize:10
};
itemNav = {
list: [{ anchor: "目录管理" }],
};
columns = [
{ title: "序号/ID", dataIndex: "platform", key: "platform",},
{ title: "一级目录", dataIndex: "channel", key: "channel",},
{ title: "二级目录", dataIndex: "type", key: "type", },
{ title: "状态", dataIndex: "oneWithdrawal", key: "oneWithdrawal",
render:(text)=>{
return <div>
<Switch defaultChecked onChange={this.onChange}/>
</div>
}
},
];
onChange=(checked)=> {
console.log(`switch to ${checked}`);
}
pager = (page) => {
this.defaultParams = Object.assign({},this.defaultParams,{page:page});
this.getList(this.defaultParams);
};
onShowSizeChange=(current, pageSize)=> {
this.defaultParams = Object.assign({},this.defaultParams,{page:current,pageSize:pageSize});
this.getList(this.defaultParams);
}
getTableQuery=(params)=>{
this.defaultParams = Object.assign(this.defaultParams,{...params});
this.getList(this.defaultParams);
};
resetParams = ()=>{
this.defaultParams = {};
this.setState({
tableData:{}
})
};
getList(params){
return HttpClient.post(Api.warnList,{...params,}).then(data => {
this.setState({
dataSource: data,
})
})
}
componentDidMount() {
this.getList(this.defaultParams)
}
render() {
return(
<Fragment>
<ItemNav itemNav={this.itemNav} />
<section className='content-base'>
<ItemTable columns={this.columns} dataSource={this.state.dataSource} pager={this.pager} onShowSizeChange={this.onShowSizeChange} />
<div>
<Button type='primary'>提交</Button>
</div>
</section>
</Fragment>
)
}
}
export default ShowMange
\ No newline at end of file
.modalt{
width: 700px !important;
}
\ No newline at end of file
import ShowMange from "./ShowMange";
export default ShowMange;
\ No newline at end of file
...@@ -7,7 +7,7 @@ import ItemTable from "../../components/ItemTable"; ...@@ -7,7 +7,7 @@ import ItemTable from "../../components/ItemTable";
import HttpClient from "../../service/HttpClient"; import HttpClient from "../../service/HttpClient";
import Api from "../../service/Api"; import Api from "../../service/Api";
import { set, get } from "../../service/Global"; import { set, get } from "../../service/Global";
import {Tag, Button, Empty, Modal, Table, Input,Form, Popconfirm,message} from 'antd'; import {Select, Button, Empty, Modal, Table, Input,Form, Popconfirm,message} from 'antd';
import {dateFormat, parseParams} from "../../service/utils"; import {dateFormat, parseParams} from "../../service/utils";
import {Store} from "marine"; import {Store} from "marine";
import ItemModal from '../../components/ItemModal/ItemModal'; import ItemModal from '../../components/ItemModal/ItemModal';
...@@ -38,14 +38,15 @@ const { TextArea } = Input; ...@@ -38,14 +38,15 @@ const { TextArea } = Input;
list: [{ anchor: "用户管理" }], list: [{ anchor: "用户管理" }],
}; };
columns = [ columns = [
{ title: "姓名", dataIndex: "name", key: "name" }, { title: "序号", dataIndex: "id", key: "id" },
{ title: "真实姓名", dataIndex: "realName", key: "realName"}, { title: "用户ID", dataIndex: "name", key: "name" },
{ title: "手机号", dataIndex: "phone", key: "phone",}, { title: "用户姓名", dataIndex: "realName", key: "realName"},
{ title: "邮箱", dataIndex: "email", key: "email", }, { title: "最后登录时间", dataIndex: "phone", key: "phone",},
{ title: "创建时间", dataIndex: "created_at", key: "created_at",}, { title: "最后登录IP", dataIndex: "email", key: "email", },
{ title: "操作", dataIndex: "operate", key: "operate",render:(text,record)=>{ { title: "操作", dataIndex: "operate", key: "operate",render:(text,record)=>{
return <div> return <div>
<Button type='link start-color' onClick={()=> this.handleStart(record.id,record.status)}>{record.status==0?'启用':'封停'}</Button> <Button type='link ' onClick={()=> this.showBatchModal(record)}>编辑</Button>
{/* <Button type='link start-color' onClick={()=> this.handleStart(record.id,record.status)}>{record.status==0?'启用':'封停'}</Button>
<Button type='link ' onClick={()=> this.handleEditPwd(record)}>重置密码</Button> <Button type='link ' onClick={()=> this.handleEditPwd(record)}>重置密码</Button>
<Popconfirm <Popconfirm
title="你确定删除吗?" title="你确定删除吗?"
...@@ -55,7 +56,7 @@ const { TextArea } = Input; ...@@ -55,7 +56,7 @@ const { TextArea } = Input;
cancelText="No" cancelText="No"
> >
<Button type='link ml-20 delete-red' >删除</Button> <Button type='link ml-20 delete-red' >删除</Button>
</Popconfirm> </Popconfirm> */}
</div> </div>
}}, }},
...@@ -144,11 +145,36 @@ const { TextArea } = Input; ...@@ -144,11 +145,36 @@ const { TextArea } = Input;
} }
showBatchModal = () => { showBatchModal = (list) => {
this.addModal.showModal() this.setState({visible: true,list});
}; };
handleCancel = () => {
this.setState({ visible: false });
};
handleOk=()=>{
const id=this.state.list.id;
this.props.form.validateFields((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
if(id){
HttpClient.post(Api.warnEdit,{...values,id:id}).then(data => {
this.setState({ visible: false });
this.getList(this.defaultParams)
})
}else{
HttpClient.post(Api.warnAdd,{...values}).then(data => {
this.setState({ visible: false });
this.getList(this.defaultParams)
})
}
}
});
}
componentDidMount() { componentDidMount() {
this.getList(this.defaultParams) this.getList(this.defaultParams)
...@@ -158,6 +184,7 @@ const { TextArea } = Input; ...@@ -158,6 +184,7 @@ const { TextArea } = Input;
const itemTableQuery= [ const itemTableQuery= [
{ {
label:'用户姓名',
type:'input', type:'input',
key:'key', key:'key',
placeholder:'请输入姓名' placeholder:'请输入姓名'
...@@ -170,82 +197,83 @@ const { TextArea } = Input; ...@@ -170,82 +197,83 @@ const { TextArea } = Input;
]; ];
const {list}=this.state; const {list}=this.state;
const configAdd={
title:'添加用户', const { getFieldDecorator } = this.props.form;
render:[ const formItemLayout = {
{ labelCol: {
label:'姓名', xs: { span: 24 },
type:"input", sm: { span: 8 },
key:'name',
required:true
},
{
label:'真实姓名',
type:"input",
key:'realName',
required:true
},
{
label:'密码',
type:"password",
key:'pwd',
required:true
}, },
{ wrapperCol: {
label:'手机号', xs: { span: 24 },
type:"input", sm: { span: 12 },
key:'phone', },
//required:true };
},
{
label:'邮箱',
type:"input",
key:'email',
//required:true
},
{
label:'备注',
type:"input",
key:'remark',
//required:true
}
],
getOutput:this.handleOk,
}
const config={
title:'重置密码',
render:[
{
label:'用户ID',
type:"input",
key:'id',
disabled:true,
required:true
},
{
label:'密码',
type:"password",
key:'pwd',
required:true
}
],
dataSource:list,
getOutput:this.handleOkEdit,
}
return( return(
<Fragment> <Fragment>
<ItemNav itemNav={this.itemNav} /> <ItemNav itemNav={this.itemNav} />
<section className='content-base'> <section className='content-base'>
<div className='mb-20 formwrapper'> <div className='mb-20 formwrapper'>
<div className='formBg'><ItemTableQuery getTableQuery={this.getTableQuery} resetParams={this.resetParams} itemTableQuery={itemTableQuery} /></div> <div className='formBg'><ItemTableQuery getTableQuery={this.getTableQuery} resetParams={this.resetParams} itemTableQuery={itemTableQuery} /></div>
<Button type='primary' className='ml-20' onClick={()=> this.showBatchModal()}>添加</Button>
</div> </div>
<ItemTable columns={this.columns} dataSource={this.state.dataSource} pager={this.pager} onShowSizeChange={this.onShowSizeChange}/> <ItemTable columns={this.columns} dataSource={this.state.dataSource} pager={this.pager} onShowSizeChange={this.onShowSizeChange}/>
</section> </section>
<ItemModal config={configAdd} ref={r=> this.addModal =r}/> {/* <ItemModal config={configAdd} ref={r=> this.addModal =r}/>
<ItemModal config={config} ref={r=> this.resetModal =r}/> <ItemModal config={config} ref={r=> this.resetModal =r}/> */}
<Modal
className='modal'
title="用户详情"
visible={this.state.visible}
onOk={this.handleOk}
onCancel={this.handleCancel}>
<Form {...formItemLayout} >
<Form.Item label="用户ID">
{getFieldDecorator('userId', {
initialValue:list?list.userId:'',
rules: [
{
required: true,
message: '请选择',
},
],
})(
<Input disabled/>
)}
</Form.Item>
<Form.Item label="用户姓名">
{getFieldDecorator('userName', {
initialValue:list?list.userName:'',
rules: [
{
required: true,
message: '请选择',
},
],
})(
<Input/>
)}
</Form.Item>
<Form.Item label="主体权限">
{getFieldDecorator('relatedCompanies', {
initialValue:list?list.relatedCompanies:'',
rules: [
{
required: true,
message: '请选择',
},
],
})(
<Select >
<Select.Option value="lucy">Lucy</Select.Option>
</Select>
)}
</Form.Item>
</Form>
</Modal>
</Fragment> </Fragment>
) )
......
...@@ -2,11 +2,19 @@ import BasicLayout from './layouts/BasicLayout' ...@@ -2,11 +2,19 @@ import BasicLayout from './layouts/BasicLayout'
import MonitorManger from "./pages/MonitorManger"; import MonitorManger from "./pages/MonitorManger";
import MonitorInform from "./pages/MonitorInform"; import MonitorInform from "./pages/MonitorInform";
import QueryPlayer from "./pages/QueryPlayer"; import QueryPlayer from "./pages/QueryPlayer";
import MonitorMange from './pages/MonitorMange'
import User from './pages/User'; import User from './pages/User';
import WhiteMange from './pages/WhiteMange/WhiteMange'; import WhiteMange from './pages/WhiteMange/WhiteMange';
import AccountChangePassword from './pages/AccountChangePassword' import AccountChangePassword from './pages/AccountChangePassword'
import ShowMange from './pages/ShowMange';
import MainConfig from './pages/MonitorMange';
import MainConfigDetail from './pages/MonitorMange/MainConfigDetail';
const routerConfig = [ const routerConfig = [
{
path: '/show/mange',
layout: BasicLayout,
component: ShowMange,
authority: 'admin',
},
{ {
path: '/account/change_password', path: '/account/change_password',
layout: BasicLayout, layout: BasicLayout,
...@@ -14,15 +22,15 @@ const routerConfig = [ ...@@ -14,15 +22,15 @@ const routerConfig = [
authority: 'admin', authority: 'admin',
}, },
{ {
path: '/monitor/manage', path: '/main/config',
layout: BasicLayout, layout: BasicLayout,
component: MonitorMange, component: MainConfig,
authority: 'admin', authority: 'admin',
}, },
{ {
path: '/monitor/manger', path: '/main/detail',
layout: BasicLayout, layout: BasicLayout,
component: MonitorManger, component: MainConfigDetail,
authority: 'admin', authority: 'admin',
}, },
......
const APP_HOST_URL = process.env.APP_HOST_URL; const APP_HOST_URL = process.env.APP_HOST_URL;
const domain = window.location.host; // const domain = window.location.host;
let AMS_API_URL; // let AMS_API_URL;
switch (domain) { // switch (domain) {
case 'os-ams.gamehaza.com': // case 'os-ams.gamehaza.com':
AMS_API_URL = process.env.AMS_API_URL_01; // AMS_API_URL = process.env.AMS_API_URL_01;
break; // break;
default: // default:
AMS_API_URL = process.env.AMS_API_URL_02; // AMS_API_URL = process.env.AMS_API_URL_02;
break; // break;
} // }
const Api = { const Api = {
login: APP_HOST_URL + "/login", //登录 login: APP_HOST_URL + "/login", //登录
addUser:APP_HOST_URL + "/user/add", //新增用户post sendCode:APP_HOST_URL + "/sendSmsCode", //发送验证码
getUserList:APP_HOST_URL + "/user/list", //获取用户列表post getUserList:APP_HOST_URL + "/user/list", //获取用户列表post
deleteUserList:APP_HOST_URL + "/user/del", //获取用户列表post deleteUserList:APP_HOST_URL + "/user/del", //获取用户列表post
rePwd:APP_HOST_URL + "/user/reset/pwd", //重置密码 rePwd:APP_HOST_URL + "/user/reset/pwd", //重置密码
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment