diff --git a/web/src/components/Redirect.js b/web/src/components/Redirect.js new file mode 100644 index 0000000..637af06 --- /dev/null +++ b/web/src/components/Redirect.js @@ -0,0 +1,30 @@ +import React from 'react'; +import {useQuery} from "react-query"; +import accountApi from "../api/account"; +import {setCurrentUser} from "../service/permission"; +import {useNavigate} from "react-router-dom"; +import Landing from "./Landing"; + +const Redirect = () => { + + let navigate = useNavigate(); + + let infoQuery = useQuery('infoQuery', accountApi.getUserInfo, { + onSuccess: data => { + setCurrentUser(data); + if (data.type === 'user') { + navigate('/my-asset'); + } else { + navigate('/dashboard'); + } + } + }); + + return ( +
+ +
+ ); +}; + +export default Redirect; \ No newline at end of file diff --git a/web/src/components/access/Guacd.js b/web/src/components/access/Guacd.js index f767bb0..156372c 100644 --- a/web/src/components/access/Guacd.js +++ b/web/src/components/access/Guacd.js @@ -115,13 +115,36 @@ const Guacd = () => { )) } + const sink = new Guacamole.InputSink(); + displayEle.appendChild(sink.getElement()); + sink.focus(); + + const keyboard = new Guacamole.Keyboard(sink.getElement()); + + keyboard.onkeydown = (keysym) => { + console.log('aaa') + client.sendKeyEvent(1, keysym); + if (keysym === 65288) { + return false; + } + }; + keyboard.onkeyup = (keysym) => { + client.sendKeyEvent(0, keysym); + }; + + const sinkFocus = debounce(() => { + sink.focus(); + }); + const mouse = new Guacamole.Mouse(element); mouse.onmousedown = mouse.onmouseup = function (mouseState) { + sinkFocus(); client.sendMouseState(mouseState); } mouse.onmousemove = function (mouseState) { + sinkFocus(); client.getDisplay().showCursor(false); mouseState.x = mouseState.x / display.getScale(); mouseState.y = mouseState.y / display.getScale(); @@ -134,21 +157,7 @@ const Guacd = () => { client.sendMouseState(state); }; - const sink = new Guacamole.InputSink(); - displayEle.appendChild(sink.getElement()); - sink.focus(); - const keyboard = new Guacamole.Keyboard(sink.getElement()); - - keyboard.onkeydown = (keysym) => { - client.sendKeyEvent(1, keysym); - if (keysym === 65288) { - return false; - } - }; - keyboard.onkeyup = (keysym) => { - client.sendKeyEvent(0, keysym); - }; setGuacd({ client, @@ -193,6 +202,7 @@ const Guacd = () => { } const focus = () => { + console.log(guacd.sink) if (guacd.sink) { guacd.sink.focus(); } diff --git a/web/src/components/asset/AssetUserBind.js b/web/src/components/asset/AssetUserBind.js index 2a09290..c953efd 100644 --- a/web/src/components/asset/AssetUserBind.js +++ b/web/src/components/asset/AssetUserBind.js @@ -2,7 +2,6 @@ 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 = { @@ -15,7 +14,6 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) => let [selectedUserIds, setSelectedUserIds] = useState([]); let [users, setUsers] = useState([]); - let [commandFilters, setCommandFilters] = useState([]); let [strategies, setStrategies] = useState([]); useEffect(() => { @@ -31,9 +29,6 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) => let strategies = await strategyApi.getAll(); setStrategies(strategies); - - let commandFilters = await commandFilterApi.getAll(); - setCommandFilters(commandFilters); } if (visible) { @@ -50,18 +45,10 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) => } }); - let commandFilterOptions = commandFilters.map(item => { - return { - value: item.id, - label: item.name - } - }); - - let userOptions = users.map(item => { return { value: item.id, - label: item.name, + label: item.nickname, disabled: selectedUserIds.includes(item.id) } }); @@ -109,21 +96,6 @@ const AssetUserBind = ({id, visible, handleOk, handleCancel, confirmLoading}) => - - - - @@ -90,10 +102,13 @@ const AssetUserGroupBind = ({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 {item.name} - })} + diff --git a/web/src/components/user/user/UserAuthorised.js b/web/src/components/user/user/UserAuthorised.js index b964527..175dc64 100644 --- a/web/src/components/user/user/UserAuthorised.js +++ b/web/src/components/user/user/UserAuthorised.js @@ -2,7 +2,6 @@ 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 = { @@ -15,7 +14,6 @@ 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(() => { @@ -37,9 +35,6 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi let strategies = await strategyApi.GetAll(); setStrategies(strategies); - - let commandFilters = await commandFilterApi.GetAll(); - setCommandFilters(commandFilters); } if (visible) { @@ -56,14 +51,6 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi } }); - let commandFilterOptions = commandFilters.map(item=>{ - return { - value: item.id, - label: item.name - } - }); - - let assetOptions = assets.map(item=>{ return { value: item.id, @@ -115,20 +102,6 @@ const UserAuthorised = ({type, id, visible, handleOk, handleCancel, confirmLoadi - - - -