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
-
-
-
-