|
@@ -6,6 +6,7 @@ import { createUser, editUser, queryRoleUser, queryTreeList } from '@/services/s
|
|
|
import { LoadingOutlined, PlusOutlined } from '@ant-design/icons';
|
|
|
import md5 from 'js-md5';
|
|
|
import { queryRoleList } from '@/services/role';
|
|
|
+import { infoQuery } from '@/services/ReportingManagement';
|
|
|
|
|
|
interface userEditPros {
|
|
|
visible: boolean;
|
|
@@ -29,6 +30,7 @@ const Edit: React.FC<userEditPros> = (props) => {
|
|
|
const [roleList, setRoleList] = useState([]);
|
|
|
const [selectList, setSelectList] = useState([]);
|
|
|
const [areaList, setAreaList] = useState([]);
|
|
|
+ const [isCurrent, setIsCurrent] = useState(false);
|
|
|
|
|
|
const getBase64 = (img: any) => {
|
|
|
const reader = new FileReader();
|
|
@@ -42,28 +44,59 @@ const Edit: React.FC<userEditPros> = (props) => {
|
|
|
useEffect(() => {
|
|
|
// 编辑时
|
|
|
if (detailData) {
|
|
|
+ infoQuery().then((res) => {
|
|
|
+ if (res?.code === 0) {
|
|
|
+ // 判断当前编辑用户数据和登录账号是否为同一个
|
|
|
+ // 同一个则直接显示用户数据中user_role(角色名称)和parent_name(所属名称)
|
|
|
+ if (res.data.record_id === detailData.record_id) {
|
|
|
+ setIsCurrent(true);
|
|
|
+ const user_role_list: any = [];
|
|
|
+ const obj = {
|
|
|
+ name: '',
|
|
|
+ record_id: '',
|
|
|
+ };
|
|
|
+ detailData.user_role.forEach((el: { role_id: string; role_name: string }) => {
|
|
|
+ obj.name = el.role_name;
|
|
|
+ obj.record_id = el.role_id;
|
|
|
+ user_role_list.push(obj);
|
|
|
+ });
|
|
|
+ setRoleList(user_role_list);
|
|
|
+ } else {
|
|
|
+ // 角色列表
|
|
|
+ queryRoleList({ q: 'list' }).then((item) => {
|
|
|
+ if (item.code === 0) {
|
|
|
+ setRoleList(item.data.list);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 编辑时,所属地区根据角色id回显数据
|
|
|
const data = [...detailData?.user_role].sort((a: any, b: any) => b.level - a.level);
|
|
|
if (data && data.length) {
|
|
|
const param = {
|
|
|
q: 'list',
|
|
|
- role_id: data[0].record_id,
|
|
|
+ role_id: data[0].role_id,
|
|
|
+ user_id: detailData.record_id,
|
|
|
};
|
|
|
// 根据角色id请求用户列表接口 保证所属名称字段编辑时回显
|
|
|
- queryRoleUser(param).then((res) => {
|
|
|
- if (res.code === 0) {
|
|
|
- setSelectList(res?.data || []);
|
|
|
+ queryRoleUser(param).then((item) => {
|
|
|
+ if (item.code === 0) {
|
|
|
+ setSelectList(item?.data || []);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // 新增
|
|
|
+ // 角色列表
|
|
|
+ queryRoleList({ q: 'list' }).then((res) => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ setRoleList(res.data.list);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
- // 角色列表
|
|
|
- queryRoleList({ q: 'list' }).then((res) => {
|
|
|
- if (res.code === 0) {
|
|
|
- setRoleList(res.data.list);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
// 地区列表
|
|
|
queryTreeList({ q: 'tree' }).then((res) => {
|
|
|
if (res && res.code === 0) {
|
|
@@ -293,6 +326,7 @@ const Edit: React.FC<userEditPros> = (props) => {
|
|
|
value: option.record_id,
|
|
|
record_id: option.record_id,
|
|
|
}))}
|
|
|
+ disabled={isCurrent}
|
|
|
onChange={onRoleChange}
|
|
|
/>
|
|
|
</Form.Item>
|
|
@@ -301,11 +335,11 @@ const Edit: React.FC<userEditPros> = (props) => {
|
|
|
<Form.Item
|
|
|
{...formItemLayoutTwo}
|
|
|
name="parent_id"
|
|
|
- label="所属名称"
|
|
|
- rules={[{ required: true, message: '请选择所属名称' }]}
|
|
|
+ label="上级用户"
|
|
|
+ rules={[{ required: true, message: '请选择上级用户' }]}
|
|
|
initialValue={detailData?.parent_id || ''}
|
|
|
>
|
|
|
- <Select placeholder="请选择所属名称">
|
|
|
+ <Select placeholder="请选择所属名称" disabled={isCurrent}>
|
|
|
{selectList && selectList.length
|
|
|
? selectList.map(
|
|
|
(res: { user_name: string; record_id: string; parent_id: string }) => {
|
|
@@ -326,9 +360,9 @@ const Edit: React.FC<userEditPros> = (props) => {
|
|
|
name="area"
|
|
|
label="所属地区"
|
|
|
initialValue={
|
|
|
- detailData?.province
|
|
|
- ? `${detailData?.province}/${detailData?.city}/${detailData?.district}`
|
|
|
- : ''
|
|
|
+ detailData?.province || detailData?.city || detailData?.district
|
|
|
+ ? [detailData?.province, detailData?.city, detailData?.district]
|
|
|
+ : []
|
|
|
}
|
|
|
>
|
|
|
<Cascader
|