Skip to content

Commit

Permalink
资产授权增加筛选功能
Browse files Browse the repository at this point in the history
  • Loading branch information
dushixiang committed Nov 20, 2022
1 parent 4301766 commit 528c9df
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 14 deletions.
62 changes: 55 additions & 7 deletions web/src/components/asset/AssetUserBind.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, {useEffect, useState} from 'react';
import {Form, Modal, Select} from "antd";
import authorisedApi from "../../api/authorised";
import strategyApi from "../../api/strategy";
import commandFilterApi from "../../api/command-filter";
import userApi from "../../api/user";

const formItemLayout = {
Expand All @@ -14,6 +15,7 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) =>

let [selectedUserIds, setSelectedUserIds] = useState([]);
let [users, setUsers] = useState([]);
let [commandFilters, setCommandFilters] = useState([]);
let [strategies, setStrategies] = useState([]);

useEffect(() => {
Expand All @@ -29,6 +31,9 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) =>

let strategies = await strategyApi.getAll();
setStrategies(strategies);

let commandFilters = await commandFilterApi.getAll();
setCommandFilters(commandFilters);
}

if (visible) {
Expand All @@ -38,6 +43,29 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) =>
}
}, [visible])

let strategyOptions = strategies.map(item => {
return {
value: item.id,
label: item.name
}
});

let commandFilterOptions = commandFilters.map(item => {
return {
value: item.id,
label: item.name
}
});


let userOptions = users.map(item => {
return {
value: item.id,
label: item.name,
disabled: selectedUserIds.includes(item.id)
}
});

return (
<Modal
title={'用户授权'}
Expand Down Expand Up @@ -71,11 +99,28 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) =>
allowClear
style={{width: '100%'}}
placeholder="请选择用户"
showSearch
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={userOptions}
>

</Select>
</Form.Item>

<Form.Item label="命令过滤器" name='commandFilterId' extra={'可控制授权用户允许或不允许执行某些指令'}>
<Select
allowClear
style={{width: '100%'}}
placeholder="此字段不是必填的"
showSearch
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={commandFilterOptions}
>
{users.map(item => {
return <Select.Option key={item.id}
disabled={selectedUserIds.includes(item.id)}>{item.nickname}</Select.Option>
})}

</Select>
</Form.Item>

Expand All @@ -84,10 +129,13 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) =>
allowClear
style={{width: '100%'}}
placeholder="此字段不是必填的"
showSearch
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={strategyOptions}
>
{strategies.map(item => {
return <Select.Option key={item.id}>{item.name}</Select.Option>
})}

</Select>
</Form.Item>

Expand Down
61 changes: 54 additions & 7 deletions web/src/components/user/user/UserAuthorised.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, {useEffect, useState} from 'react';
import {Form, Modal, Select} from "antd";
import assetApi from "../../../api/asset";
import strategyApi from "../../../api/strategy";
import commandFilterApi from "../../../api/command-filter";
import authorisedApi from "../../../api/authorised";

const formItemLayout = {
Expand All @@ -14,6 +15,7 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi

let [selectedAssetIds, setSelectedAssetIds] = useState([]);
let [assets, setAssets] = useState([]);
let [commandFilters, setCommandFilters] = useState([]);
let [strategies, setStrategies] = useState([]);

useEffect(() => {
Expand All @@ -35,6 +37,9 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi

let strategies = await strategyApi.GetAll();
setStrategies(strategies);

let commandFilters = await commandFilterApi.GetAll();
setCommandFilters(commandFilters);
}

if (visible) {
Expand All @@ -44,6 +49,29 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi
}
}, [visible])

let strategyOptions = strategies.map(item=>{
return {
value: item.id,
label: item.name
}
});

let commandFilterOptions = commandFilters.map(item=>{
return {
value: item.id,
label: item.name
}
});


let assetOptions = assets.map(item=>{
return {
value: item.id,
label: item.name,
disabled: selectedAssetIds.includes(item.id)
}
});

return (
<Modal
title={'资产授权'}
Expand Down Expand Up @@ -77,11 +105,27 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi
allowClear
style={{width: '100%'}}
placeholder="请选择资产"
showSearch
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={assetOptions}
>

</Select>
</Form.Item>

<Form.Item label="命令过滤器" name='commandFilterId' extra={'可控制授权用户允许或不允许执行某些指令'}>
<Select
allowClear
style={{width: '100%'}}
placeholder="此字段不是必填的"
showSearch
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={commandFilterOptions}
>
{assets.map(item => {
return <Select.Option key={item.id}
disabled={selectedAssetIds.includes(item.id)}>{item.name}</Select.Option>
})}
</Select>
</Form.Item>

Expand All @@ -90,10 +134,13 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi
allowClear
style={{width: '100%'}}
placeholder="此字段不是必填的"
showSearch
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={strategyOptions}
>
{strategies.map(item => {
return <Select.Option key={item.id}>{item.name}</Select.Option>
})}

</Select>
</Form.Item>

Expand Down

0 comments on commit 528c9df

Please sign in to comment.