feat(前端):user and device list
parent
3ed1ee5549
commit
46263f8d0d
|
@ -45,7 +45,7 @@ export default defineConfig({
|
||||||
npmClient: 'pnpm',
|
npmClient: 'pnpm',
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api/nex/v1/': {
|
'/api/nex/v1/': {
|
||||||
target: 'http://10.100.51.85:8112',
|
target: 'http://10.100.51.85:8113',
|
||||||
// changeOrigin: true,
|
// changeOrigin: true,
|
||||||
},
|
},
|
||||||
'/api/files': {
|
'/api/files': {
|
||||||
|
|
|
@ -7,9 +7,9 @@ import { deleteUserGroup, getGroupTree } from '@/services/userList';
|
||||||
import {
|
import {
|
||||||
DeleteOutlined,
|
DeleteOutlined,
|
||||||
DownOutlined,
|
DownOutlined,
|
||||||
|
GoldOutlined,
|
||||||
PlusOutlined,
|
PlusOutlined,
|
||||||
RedoOutlined,
|
RedoOutlined,
|
||||||
GoldOutlined,
|
|
||||||
} from '@ant-design/icons';
|
} from '@ant-design/icons';
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
|
@ -387,19 +387,41 @@ const UserListPage: React.FC = () => {
|
||||||
};
|
};
|
||||||
const onDeleteGroup = async () => {
|
const onDeleteGroup = async () => {
|
||||||
if (selectedOrg) {
|
if (selectedOrg) {
|
||||||
try {
|
const params: any = {
|
||||||
const params = {
|
page_size: pageSize,
|
||||||
id: selectedOrg,
|
page_num: currentPage,
|
||||||
};
|
};
|
||||||
const res = await deleteUserGroup(params);
|
if (selectedOrg) {
|
||||||
const { code } = res || {};
|
params.device_group_id = selectedOrg;
|
||||||
if (code === ERROR_CODE) {
|
|
||||||
message.success('分组删除成功');
|
|
||||||
getGroupList();
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
message.error('分组删除失败');
|
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
const result: any = await getTerminalList(params);
|
||||||
|
const { data } = result || {};
|
||||||
|
const { total = 0 } = data || {};
|
||||||
|
if (total > 0) {
|
||||||
|
message.info("该分组下有终端,请先删除该分组下的所有终端");
|
||||||
|
} else {
|
||||||
|
onDeleteGroupSave();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const onDeleteGroupSave = async () => {
|
||||||
|
try {
|
||||||
|
const params = {
|
||||||
|
id: selectedOrg,
|
||||||
|
};
|
||||||
|
const res = await deleteUserGroup(params);
|
||||||
|
const { code } = res || {};
|
||||||
|
if (code === ERROR_CODE) {
|
||||||
|
message.success('分组删除成功');
|
||||||
|
getGroupList();
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
message.error('分组删除失败');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -486,7 +508,7 @@ const UserListPage: React.FC = () => {
|
||||||
showIcon={true}
|
showIcon={true}
|
||||||
selectedKeys={selectedOrg ? [selectedOrg] : []}
|
selectedKeys={selectedOrg ? [selectedOrg] : []}
|
||||||
// switcherIcon={<TeamOutlined style={{ fontSize: '15px' }}/>}
|
// switcherIcon={<TeamOutlined style={{ fontSize: '15px' }}/>}
|
||||||
icon={<GoldOutlined style={{ fontSize: '15px' }} />}
|
icon={<GoldOutlined style={{ fontSize: '15px' }} />}
|
||||||
/>
|
/>
|
||||||
</Spin>
|
</Spin>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -61,30 +61,27 @@ const BindUserModal: React.FC<UserEditModalProps> = ({
|
||||||
const handleOk = async () => {
|
const handleOk = async () => {
|
||||||
try {
|
try {
|
||||||
const values = await form.validateFields();
|
const values = await form.validateFields();
|
||||||
const { image_list } = values || {};
|
const { image_list = [] } = values || {};
|
||||||
console.log('image_list=====', image_list);
|
console.log('image_list=====', image_list);
|
||||||
if (image_list && image_list.length > 0) {
|
const list: any[] = [];
|
||||||
const list: any[] = [];
|
image_list.forEach((item: any) => {
|
||||||
image_list.forEach((item: any) => {
|
const obj: any = {
|
||||||
const obj: any = {
|
device_id: device_id,
|
||||||
device_id: device_id,
|
image_id: item.id,
|
||||||
image_id: item.id,
|
|
||||||
};
|
|
||||||
const newData = dataSource.filter(
|
|
||||||
(record) => record.image_id === item.id,
|
|
||||||
);
|
|
||||||
if (newData && newData.length === 1) {
|
|
||||||
obj.id = newData[0].id;
|
|
||||||
}
|
|
||||||
list.push({ ...obj });
|
|
||||||
});
|
|
||||||
const payload: any = {
|
|
||||||
data: list,
|
|
||||||
};
|
};
|
||||||
onBind(payload);
|
const newData = dataSource.filter(
|
||||||
} else {
|
(record) => record.image_id === item.id,
|
||||||
message.info('请先选择绑定的镜像');
|
);
|
||||||
}
|
if (newData && newData.length === 1) {
|
||||||
|
obj.id = newData[0].id;
|
||||||
|
}
|
||||||
|
list.push({ ...obj });
|
||||||
|
});
|
||||||
|
const payload: any = {
|
||||||
|
data: list,
|
||||||
|
device_id:device_id,
|
||||||
|
};
|
||||||
|
onBind(payload);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
message.error('请检查表单字段');
|
message.error('请检查表单字段');
|
||||||
}
|
}
|
||||||
|
@ -131,7 +128,7 @@ const BindUserModal: React.FC<UserEditModalProps> = ({
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="image_list"
|
name="image_list"
|
||||||
label="选择镜像"
|
label="选择镜像"
|
||||||
rules={[{ required: true, message: '请输入终端型号' }]}
|
rules={[{ required: false, message: '请输入终端型号' }]}
|
||||||
>
|
>
|
||||||
<SelectedTable />
|
<SelectedTable />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
|
@ -112,46 +112,45 @@ const BindUserModal: React.FC<UserEditModalProps> = ({
|
||||||
const values = await form.validateFields();
|
const values = await form.validateFields();
|
||||||
const { user_list = [] } = values || {};
|
const { user_list = [] } = values || {};
|
||||||
const list: any[] = [];
|
const list: any[] = [];
|
||||||
if (user_list && user_list.length > 0) {
|
user_list.forEach((item: any) => {
|
||||||
user_list.forEach((item: any) => {
|
const { type, id } = item || {};
|
||||||
const { type, id } = item || {};
|
if (type === 1) {
|
||||||
if (type === 1) {
|
// 用户
|
||||||
// 用户
|
const obj: any = {
|
||||||
const obj: any = {
|
device_id,
|
||||||
device_id,
|
device_group_id,
|
||||||
device_group_id,
|
type: type,
|
||||||
type: type,
|
user_id: id,
|
||||||
user_id: id,
|
};
|
||||||
};
|
const newData = userDataSource.filter(
|
||||||
const newData = userDataSource.filter(
|
(record) => record.user_id === item.id && record.type === 1,
|
||||||
(record) => record.user_id === item.id && record.type === 1,
|
);
|
||||||
);
|
if (newData && newData.length === 1) {
|
||||||
if (newData && newData.length === 1) {
|
obj.id = newData[0].id;
|
||||||
obj.id = newData[0].id;
|
|
||||||
}
|
|
||||||
list.push(obj);
|
|
||||||
} else {
|
|
||||||
//用户分组
|
|
||||||
const obj: any = {
|
|
||||||
device_id,
|
|
||||||
device_group_id,
|
|
||||||
type: type,
|
|
||||||
user_group_id: id,
|
|
||||||
};
|
|
||||||
const newData = userDataSource.filter(
|
|
||||||
(record) => record.user_group_id === item.id && record.type === 2,
|
|
||||||
);
|
|
||||||
if (newData && newData.length === 1) {
|
|
||||||
obj.id = newData[0].id;
|
|
||||||
}
|
|
||||||
list.push(obj);
|
|
||||||
}
|
}
|
||||||
});
|
list.push(obj);
|
||||||
const payload = {
|
} else {
|
||||||
data: list,
|
//用户分组
|
||||||
};
|
const obj: any = {
|
||||||
onBind(payload);
|
device_id,
|
||||||
}
|
device_group_id,
|
||||||
|
type: type,
|
||||||
|
user_group_id: id,
|
||||||
|
};
|
||||||
|
const newData = userDataSource.filter(
|
||||||
|
(record) => record.user_group_id === item.id && record.type === 2,
|
||||||
|
);
|
||||||
|
if (newData && newData.length === 1) {
|
||||||
|
obj.id = newData[0].id;
|
||||||
|
}
|
||||||
|
list.push(obj);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const payload = {
|
||||||
|
data: list,
|
||||||
|
device_id:device_id,
|
||||||
|
};
|
||||||
|
onBind(payload);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
message.error('请检查表单字段');
|
message.error('请检查表单字段');
|
||||||
}
|
}
|
||||||
|
@ -198,7 +197,7 @@ const BindUserModal: React.FC<UserEditModalProps> = ({
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="user_list"
|
name="user_list"
|
||||||
label="选择用户"
|
label="选择用户"
|
||||||
rules={[{ required: true, message: '请选择绑定用户' }]}
|
rules={[{ required: false, message: '请选择绑定用户' }]}
|
||||||
>
|
>
|
||||||
<SelectedTable orgTreeData={orgTreeData} />
|
<SelectedTable orgTreeData={orgTreeData} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
|
@ -394,20 +394,54 @@ const UserListPage: React.FC = () => {
|
||||||
|
|
||||||
const onDeleteGroup = async () => {
|
const onDeleteGroup = async () => {
|
||||||
if (selectedOrg) {
|
if (selectedOrg) {
|
||||||
try {
|
// try {
|
||||||
const params = {
|
// const params = {
|
||||||
id: selectedOrg,
|
// id: selectedOrg,
|
||||||
};
|
// };
|
||||||
const res = await deleteUserGroup(params);
|
// const res = await deleteUserGroup(params);
|
||||||
const { code } = res || {};
|
// const { code } = res || {};
|
||||||
if (code === ERROR_CODE) {
|
// if (code === ERROR_CODE) {
|
||||||
message.success('分组删除成功');
|
// message.success('分组删除成功');
|
||||||
setSelectedOrg(null);
|
// setSelectedOrg(null);
|
||||||
getUserGroupList();
|
// getUserGroupList();
|
||||||
}
|
// }
|
||||||
} catch (error) {
|
// } catch (error) {
|
||||||
message.error('分组删除失败');
|
// message.error('分组删除失败');
|
||||||
|
// }
|
||||||
|
const params: any = {
|
||||||
|
page_size: pageSize,
|
||||||
|
page_num: currentPage,
|
||||||
|
};
|
||||||
|
if (selectedOrg) {
|
||||||
|
params.user_group_id = selectedOrg;
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
const result = await getUserList(params);
|
||||||
|
const { data = {} } = result || {};
|
||||||
|
const { total = 0 } = data || {};
|
||||||
|
if (total > 0) {
|
||||||
|
message.info('当前分组下有用户,请先删除用户', 5);
|
||||||
|
} else {
|
||||||
|
ondeleteCroupSave();
|
||||||
|
}
|
||||||
|
} catch (err) {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const ondeleteCroupSave = async () => {
|
||||||
|
try {
|
||||||
|
const params = {
|
||||||
|
id: selectedOrg,
|
||||||
|
};
|
||||||
|
const res = await deleteUserGroup(params);
|
||||||
|
const { code } = res || {};
|
||||||
|
if (code === ERROR_CODE) {
|
||||||
|
message.success('分组删除成功');
|
||||||
|
setSelectedOrg(null);
|
||||||
|
getUserGroupList();
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
message.error('分组删除失败');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue