import React, { useState, useEffect, useRef } from 'react';
import { Button, Popconfirm, Modal, Form, Input, message, Radio, Select } from 'antd';
import { PlusOutlined } from '@ant-design/icons';
import { getCooperativeList } from '@/services/cooperative';
import {
getUserList,
addUser,
deleteUser,
updateUser,
getDefaultPassword,
getUserDetail,
} from '@/services/user';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import PageTable from '@/components/PageTable';
import Search from '@/components/CooperativeSearch';
const FormItem = Form.Item;
const { Option } = Select;
export default (props) => {
//编辑弹窗
const formItemLayout = { labelCol: { span: 6 }, wrapperCol: { span: 14 } };
const [form] = Form.useForm();
const [editModal, setEditModal] = useState(false);
const [loading, setLoading] = useState(false);
const [userId, setuserId] = useState();
const [password, setPassWord] = useState('');
const [cooperativeList, setCooperativeList] = useState([]);
//列表数据
const actionRef = useRef();
// 编辑弹窗的表单提交
const Submit = (values) => {
const newData = { ...values };
if (!newData.sex && newData.sex !== 0) {
newData.sex = 1;
}
setLoading(true);
if (!/^1[0-9]{10}$/.test(newData.phone)) {
message.warning('请输入正确的十一位手机号');
setLoading(false);
return false;
}
if (userId) {
updateUser(userId, newData).then(() => {
setLoading(false);
message.success(`修改成功`);
onCancel();
actionRef.current.reload();
});
} else {
addUser(newData)
.then(() => {
setLoading(false);
message.success(`保存成功`);
onCancel();
actionRef.current.reload();
})
.catch((err) => {
setLoading(false);
message.error(err.message || err);
});
}
};
//表单点击取消按钮
const onCancel = () => {
setuserId();
form.resetFields();
setEditModal(false);
};
// 弹窗表单中机构搜索框改变事件目前没用
const handelChange = () => {};
// 列表点击编辑按钮
const handelEdit = (val) => {
setuserId(val.userId);
setEditModal(true);
};
//列表点击删除按钮
const handleDelete = (id) => {
deleteUser(id)
.then(() => {
message.success('删除成功');
actionRef.current.reload();
})
.catch((err) => {
message.error(err);
});
};
//列表切换人员状态方法
const handleOK = (record, data) => {
const title = record.status
? '您确定要将该人员状态变更为禁用吗? 禁用后该人员将不能登录'
: '您确定要将该人员状态变更为启用吗? 启用后该人员可以登录!';
Modal.confirm({
title: title,
okText: '确认',
cancelText: '取消',
onOk() {
updateUser(record.userId, { ...record, status: record.status === 1 ? 0 : 1 })
.then((res) => {
message.success('操作成功');
actionRef.current.reload();
})
.catch((err) => {
message.error(err);
});
},
});
};
useEffect(() => {
//获取账号默认密码
getDefaultPassword().then((res) => {
setPassWord(res);
});
//获取机构列表数据
getCooperativeList().then((res) => {
setCooperativeList(res.records);
});
if (userId) {
getUserDetail(userId).then((res) => {
if (res.orgId === '-1') {
form.setFieldsValue({ ...res, orgId: cooperativeList[0].orgId });
} else {
form.setFieldsValue(res);
}
});
} else {
form.resetFields();
}
}, [userId]);
const actions = () => [
} onClick={() => setEditModal(true)}>
新增
,
];
const columns = [
{
title: '用户名',
dataIndex: 'userName',
key: 'userName',
},
{
title: '性别',
dataIndex: 'sex',
key: 'sex',
width: 80,
render: (_, record) => {
return record.sex === 1 ? '男' : record.sex === 0 ? '女' : '未知';
},
search: false,
},
{
title: '手机号',
dataIndex: 'phone',
key: 'phone',
width: 120,
},
{
title: '邮箱',
dataIndex: 'email',
key: 'email',
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
renderFormItem: () => {
return (
);
},
render: (_, record) => {
return record.status === 1 ? '启用' : '未启用';
},
},
{
title: '操作',
valueType: 'option',
render: (_, record) => [
,
handelEdit(record)}>
编辑
,
handleDelete(record.userId)}
okText="确定"
cancelText="取消"
>
删除
,
],
},
];
return (
);
};