From 1b87c4d7d78b2a22154de13b14a3938494a3d759 Mon Sep 17 00:00:00 2001 From: dushixiang Date: Tue, 22 Nov 2022 22:53:01 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E7=B2=98=E8=B4=B4=E6=9D=BF=E5=AF=BC=E8=87=B4=E9=94=AE=E7=9B=98?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E8=BE=93=E5=85=A5=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20-=20=E4=BF=AE=E5=A4=8D=E9=A6=96=E6=AC=A1=E6=89=93=E5=BC=80?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=99=BD=E5=B1=8F=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20-=20=E4=BF=AE=E5=A4=8D=E8=B5=84=E4=BA=A7=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E6=97=B6=E7=94=A8=E6=88=B7=E5=90=8D=E7=A7=B0=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/Redirect.js | 30 ++++++++++++++ web/src/components/access/Guacd.js | 38 +++++++++++------- web/src/components/asset/AssetUserBind.js | 30 +------------- .../components/asset/AssetUserGroupBind.js | 39 +++++++++++++------ .../components/user/user/UserAuthorised.js | 27 ------------- web/src/layout/ManagerLayout.js | 7 +--- 6 files changed, 83 insertions(+), 88 deletions(-) create mode 100644 web/src/components/Redirect.js 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 - - - -