diff --git a/web/src/hooks/userSettingHook.ts b/web/src/hooks/userSettingHook.ts index f45337f89..2bba749c3 100644 --- a/web/src/hooks/userSettingHook.ts +++ b/web/src/hooks/userSettingHook.ts @@ -64,3 +64,13 @@ export const useSelectParserList = (): Array<{ return parserList; }; + +export const useLogout = () => { + const dispatch = useDispatch(); + + const logout = useCallback((): number => { + return dispatch({ type: 'loginModel/logout' }); + }, [dispatch]); + + return logout; +}; diff --git a/web/src/layouts/components/user/index.tsx b/web/src/layouts/components/user/index.tsx index 260fab6a3..3dc4dd1e3 100644 --- a/web/src/layouts/components/user/index.tsx +++ b/web/src/layouts/components/user/index.tsx @@ -1,19 +1,27 @@ -import { useFetchUserInfo, useSelectUserInfo } from '@/hooks/userSettingHook'; +import { + useFetchUserInfo, + useLogout, + useSelectUserInfo, +} from '@/hooks/userSettingHook'; import authorizationUtil from '@/utils/authorizationUtil'; import type { MenuProps } from 'antd'; import { Avatar, Button, Dropdown } from 'antd'; -import React, { useMemo } from 'react'; +import React, { useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { history } from 'umi'; const App: React.FC = () => { const { t } = useTranslation(); const userInfo = useSelectUserInfo(); + const logout = useLogout(); - const logout = () => { - authorizationUtil.removeAll(); - history.push('/login'); - }; + const handleLogout = useCallback(async () => { + const retcode = await logout(); + if (retcode === 0) { + authorizationUtil.removeAll(); + history.push('/login'); + } + }, [logout]); const toSetting = () => { history.push('/setting'); @@ -23,7 +31,7 @@ const App: React.FC = () => { return [ { key: '1', - onClick: logout, + onClick: handleLogout, label: , }, { @@ -32,7 +40,7 @@ const App: React.FC = () => { label: , }, ]; - }, [t]); + }, [t, handleLogout]); useFetchUserInfo(); diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.less b/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.less index 1ee2e3f5b..956caaa73 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.less +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.less @@ -12,6 +12,10 @@ .chunkText; } +.chunkCard { + width: 100%; +} + .cardSelected { background-color: @selectedBackgroundColor; } diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.tsx b/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.tsx index d021e4768..c1aaf2c73 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/components/chunk-card/index.tsx @@ -1,7 +1,9 @@ import Image from '@/components/image'; import { IChunk } from '@/interfaces/database/knowledge'; import { Card, Checkbox, CheckboxProps, Flex, Popover, Switch } from 'antd'; +import classNames from 'classnames'; import { useState } from 'react'; + import styles from './index.less'; interface IProps { @@ -44,33 +46,35 @@ const ChunkCard = ({ }; return ( -
- - - - {item.img_id && ( - - } - > - - - )} + + + + {item.img_id && ( + + } + > + + + )} -
-
- -
-
-
-
+
+
+ +
+ + ); }; diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/index.less b/web/src/pages/add-knowledge/components/knowledge-chunk/index.less index c97956dd8..4864046e1 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/index.less +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/index.less @@ -12,6 +12,10 @@ justify-content: space-between; } + .pagePdfWrapper { + width: 60%; + } + .pageContent { flex: 1; width: 100%; @@ -29,12 +33,11 @@ } .chunkContainer { - height: calc(100vh - 320px); - overflow: auto; - width: 100%; + height: calc(100vh - 332px); } .pageFooter { + padding-top: 10px; height: 32px; } } diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx b/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx index 01873cec7..ffd330bc8 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx @@ -38,6 +38,7 @@ const Chunk = () => { const { removeChunk } = useDeleteChunkByIds(); const documentInfo = useSelectDocumentInfo(); const { handleChunkCardClick, selectedChunkId } = useHandleChunkCardClick(); + const isPdf = documentInfo.type === 'pdf'; const getChunkList = useCallback(() => { const payload: PayloadType = { @@ -164,7 +165,7 @@ const Chunk = () => { > - +
{
- {documentInfo.type === 'pdf' && ( + {isPdf && (
{isAssistant ? '' : userInfo.nickname}
- {item.content ? ( + {item.content !== '' ? ( = { }; }, }, - subscriptions: { - setup({ dispatch, history }) { - history.listen((location) => {}); - }, - }, effects: { - *login({ payload = {} }, { call, put }) { + *login({ payload = {} }, { call }) { const { data, response } = yield call(userService.login, payload); const { retcode, data: res } = data; const authorization = response.headers.get(Authorization); if (retcode === 0) { - message.success('登录成功!'); + message.success('logged!'); const token = res.access_token; const userInfo = { avatar: res.avatar, @@ -51,15 +46,23 @@ const model: DvaModel = { } return retcode; }, - *register({ payload = {} }, { call, put }) { - const { data, response } = yield call(userService.register, payload); + *register({ payload = {} }, { call }) { + const { data } = yield call(userService.register, payload); console.log(); - const { retcode, data: res, retmsg } = data; + const { retcode } = data; if (retcode === 0) { message.success('注册成功!'); } return retcode; }, + *logout({ payload = {} }, { call }) { + const { data } = yield call(userService.logout, payload); + const { retcode } = data; + if (retcode === 0) { + message.success('logout'); + } + return retcode; + }, }, }; export default model; diff --git a/web/src/services/userService.ts b/web/src/services/userService.ts index 6e11f7344..665a7d587 100644 --- a/web/src/services/userService.ts +++ b/web/src/services/userService.ts @@ -4,6 +4,7 @@ import request from '@/utils/request'; const { login, + logout, register, setting, user_info, @@ -20,6 +21,10 @@ const methods = { url: login, method: 'post', }, + logout: { + url: logout, + method: 'get', + }, register: { url: register, method: 'post', diff --git a/web/src/utils/api.ts b/web/src/utils/api.ts index 7e90d78ce..3b1ec9be4 100644 --- a/web/src/utils/api.ts +++ b/web/src/utils/api.ts @@ -5,6 +5,7 @@ export { api_host }; export default { // 用户 login: `${api_host}/user/login`, + logout: `${api_host}/user/logout`, register: `${api_host}/user/register`, setting: `${api_host}/user/setting`, user_info: `${api_host}/user/info`,