diff --git a/webapp/packages/supersonic-fe/package.json b/webapp/packages/supersonic-fe/package.json index f1c12e47c..af8966b9d 100644 --- a/webapp/packages/supersonic-fe/package.json +++ b/webapp/packages/supersonic-fe/package.json @@ -64,7 +64,7 @@ "@antv/layout": "^0.3.20", "@antv/xflow": "^1.0.55", "@babel/runtime": "^7.22.5", - "supersonic-chat-sdk": "^0.1.6", + "supersonic-chat-sdk": "^0.1.0", "@types/numeral": "^2.0.2", "@types/react-draft-wysiwyg": "^1.13.2", "@types/react-syntax-highlighter": "^13.5.0", diff --git a/webapp/packages/supersonic-fe/src/app.tsx b/webapp/packages/supersonic-fe/src/app.tsx index ad1b07970..2ccfb6ed9 100644 --- a/webapp/packages/supersonic-fe/src/app.tsx +++ b/webapp/packages/supersonic-fe/src/app.tsx @@ -12,8 +12,6 @@ import defaultSettings from '../config/defaultSettings'; import settings from '../config/themeSettings'; import { deleteUrlQuery } from './utils/utils'; import { AUTH_TOKEN_KEY, FROM_URL_KEY } from '@/common/constants'; -import 'supersonic-chat-sdk/dist/index.css'; -import { setToken as setChatSdkToken } from 'supersonic-chat-sdk'; export { request } from './services/request'; import { ROUTE_AUTH_CODES } from '../config/routes'; @@ -52,7 +50,7 @@ const getToken = async () => { try { const fromUrl = localStorage.getItem(FROM_URL_KEY); const res = await queryToken(data.code as string); - localStorage.setItem(TOKEN_KEY, res.data.authToken); + localStorage.setItem(TOKEN_KEY, res.payload); const newUrl = deleteUrlQuery(window.location.href, 'code'); window.location.href = fromUrl || newUrl; } catch (err) { @@ -98,8 +96,6 @@ export async function getInitialState(): Promise<{ await getToken(); } - setChatSdkToken(localStorage.getItem(AUTH_TOKEN_KEY) || ''); - const currentUser = await fetchUserInfo(); if (currentUser) { diff --git a/webapp/packages/supersonic-fe/src/common/constants.ts b/webapp/packages/supersonic-fe/src/common/constants.ts index f32921677..d0e3aafc2 100644 --- a/webapp/packages/supersonic-fe/src/common/constants.ts +++ b/webapp/packages/supersonic-fe/src/common/constants.ts @@ -1,6 +1,5 @@ // 登陆 token key -export const AUTH_TOKEN_KEY = 'SUPERSONIC_TOKEN'; - +export const AUTH_TOKEN_KEY = process.env.APP_TARGET === 'inner' ? 'TME_TOKEN' : 'SUPERSONIC_TOKEN'; // 记录上次访问页面 export const FROM_URL_KEY = 'FROM_URL'; diff --git a/webapp/packages/supersonic-fe/src/components/SelectTMEPerson/index.tsx b/webapp/packages/supersonic-fe/src/components/SelectTMEPerson/index.tsx index 989812f4b..2f7beff49 100644 --- a/webapp/packages/supersonic-fe/src/components/SelectTMEPerson/index.tsx +++ b/webapp/packages/supersonic-fe/src/components/SelectTMEPerson/index.tsx @@ -22,11 +22,12 @@ const SelectTMEPerson: FC = ({ placeholder, value, isMultiple = true, onC { fetcher: async () => { const res = await getAllUser(); - if (res.code !== 200) { + if (res.code == 200 || Number(res.code) == 0) { + return res.data || []; + } else { message.error(res.msg); throw new Error(res.msg); } - return res.data || []; }, updater: (list) => { const users = list.map((item: UserItem) => { diff --git a/webapp/packages/supersonic-fe/src/pages/Chat/RightSection/Context/index.tsx b/webapp/packages/supersonic-fe/src/pages/Chat/RightSection/Context/index.tsx index dc42669f7..fe7860a17 100644 --- a/webapp/packages/supersonic-fe/src/pages/Chat/RightSection/Context/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/Chat/RightSection/Context/index.tsx @@ -17,15 +17,17 @@ const Context: React.FC = ({ chatContext }) => { 主题域: {domainName} - {dateInfo && ( -
- 时间范围: - - {dateInfo.text || - `近${moment(dateInfo.endDate).diff(moment(dateInfo.startDate), 'days') + 1}天`} - -
- )} + { + dateInfo && ( +
+ 时间范围: + + {dateInfo.text || + `近${moment(dateInfo.endDate).diff(moment(dateInfo.startDate), 'days') + 1}天`} + +
+ ) + } {metrics && metrics.length > 0 && (
指标: diff --git a/webapp/packages/supersonic-fe/src/pages/Chat/index.tsx b/webapp/packages/supersonic-fe/src/pages/Chat/index.tsx index 070e7b59d..41189b8d3 100644 --- a/webapp/packages/supersonic-fe/src/pages/Chat/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/Chat/index.tsx @@ -10,9 +10,16 @@ import Conversation from './Conversation'; import RightSection from './RightSection'; import ChatFooter from './ChatFooter'; import classNames from 'classnames'; -import { DEFAULT_CONVERSATION_NAME, WEB_TITLE } from '@/common/constants'; -import { HistoryMsgItemType, MsgDataType, getHistoryMsg, queryContext } from 'supersonic-chat-sdk'; +import { AUTH_TOKEN_KEY, DEFAULT_CONVERSATION_NAME, WEB_TITLE } from '@/common/constants'; +import { + HistoryMsgItemType, + MsgDataType, + getHistoryMsg, + queryContext, + setToken as setChatSdkToken, +} from 'supersonic-chat-sdk'; import { getConversationContext } from './utils'; +import 'supersonic-chat-sdk/dist/index.css'; const Chat = () => { const [messageList, setMessageList] = useState([]); @@ -27,6 +34,10 @@ const Chat = () => { const conversationRef = useRef(); const chatFooterRef = useRef(); + useEffect(() => { + setChatSdkToken(localStorage.getItem(AUTH_TOKEN_KEY) || ''); + }, []); + const sendHelloRsp = () => { setMessageList([ { diff --git a/webapp/packages/supersonic-fe/src/pages/Login/index.tsx b/webapp/packages/supersonic-fe/src/pages/Login/index.tsx index b4c05b119..804880a9e 100644 --- a/webapp/packages/supersonic-fe/src/pages/Login/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/Login/index.tsx @@ -12,7 +12,6 @@ import { postUserLogin, userRegister } from './services'; import { AUTH_TOKEN_KEY } from '@/common/constants'; import { queryCurrentUser } from '@/services/user'; import { history, useModel } from 'umi'; -// import { setToken as setChatSdkToken } from 'supersonic-chat-sdk'; const { Item } = Form; const LoginPage: React.FC = () => { @@ -25,7 +24,6 @@ const LoginPage: React.FC = () => { const { code, data, msg } = await postUserLogin(values); if (code === 200) { localStorage.setItem(AUTH_TOKEN_KEY, data); - // setChatSdkToken(data || ''); const { code: queryUserCode, data: queryUserData } = await queryCurrentUser(); if (queryUserCode === 200) { const currentUser = { diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/ProjectManager.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/ProjectManager.tsx index edcce689f..3f7467ecb 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/ProjectManager.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/ProjectManager.tsx @@ -26,6 +26,7 @@ type Props = { const DEFAULT_LEFT_SIZE = '300px'; const DomainManger: React.FC = ({ domainManger, dispatch }) => { + window.RUNNING_ENV = 'semantic'; const [collapsed, setCollapsed] = useState(false); const [leftSize, setLeftSize] = useState(''); const { selectDomainId, selectDomainName } = domainManger; diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx index 6f79cdca8..ba6d01565 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx @@ -196,7 +196,6 @@ const DomainManger: React.FC = ({ domainManger, domainId }) => { }; // const [visible, setVisible] = useState(false); useEffect(() => { - console.log(domainId, graphData, 'domainId'); if (!(Array.isArray(graphData.children) && graphData.children.length > 0)) { return; } @@ -356,7 +355,6 @@ const DomainManger: React.FC = ({ domainManger, domainId }) => { labelCfg: { style: { fill: '#3c3c3c' } }, }; }); - console.log(graphData, 'graphData'); // graph.data(graphData); graph.changeData(graphData); graph.render(); @@ -386,7 +384,6 @@ const DomainManger: React.FC = ({ domainManger, domainId }) => { value={graphShowType} onChange={(e) => { const { value } = e.target; - console.log(value, 'value'); setGraphShowType(value); changeGraphData(dataSourceListData, value); }} diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/Permission/PermissionTable.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/Permission/PermissionTable.tsx index 7f154ec00..dcacc302c 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/Permission/PermissionTable.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/Permission/PermissionTable.tsx @@ -53,14 +53,14 @@ const PermissionTable: React.FC = ({ domainManger }) => { const queryDepartmentData = async () => { const { code, data } = await getDepartmentTree(); - if (code === 200) { + if (code === 200 || code === '0') { setDepartmentTreeData(data); } }; const queryTmePersonData = async () => { const { code, data } = await getAllUser(); - if (code === 200) { + if (code === 200 || Number(code) === 0) { setTmePerson(data); } }; diff --git a/webapp/packages/supersonic-fe/src/services/login.ts b/webapp/packages/supersonic-fe/src/services/login.ts index 179904954..2035aa497 100644 --- a/webapp/packages/supersonic-fe/src/services/login.ts +++ b/webapp/packages/supersonic-fe/src/services/login.ts @@ -9,7 +9,7 @@ export type LoginParamsType = { }; export async function queryToken(code: string) { - return request(`${process.env.API_BASE_URL}user/ioaLoginCallback`, { + return request(`/davinciapi/login/tmeloginCallback`, { params: { code }, }); } diff --git a/webapp/packages/supersonic-fe/src/services/request.ts b/webapp/packages/supersonic-fe/src/services/request.ts index b60fa3c12..ddba11cab 100644 --- a/webapp/packages/supersonic-fe/src/services/request.ts +++ b/webapp/packages/supersonic-fe/src/services/request.ts @@ -20,6 +20,7 @@ const authHeaderInterceptor = (url: string, options: RequestOptionsInit) => { const token = query[TOKEN_KEY] || localStorage.getItem(TOKEN_KEY); if (token) { + headers.Authorization = `Bearer ${token}`; headers.auth = `Bearer ${token}`; localStorage.setItem(TOKEN_KEY, token); } @@ -31,25 +32,19 @@ const authHeaderInterceptor = (url: string, options: RequestOptionsInit) => { }; const responseInterceptor = async (response: Response) => { - const data: Result = await response?.clone()?.json?.(); - if (Number(data.code) === 403) { - history.push('/login'); - return response; - } - const redirect = response.headers.get('redirect'); // 若HEADER中含有REDIRECT说明后端想重定向 if (redirect === 'REDIRECT') { localStorage.removeItem(TOKEN_KEY); - let win: any = window; - while (win !== win.top) { - win = win.top; - } - if (!/fromExternal=true/.test(win.location.search)) { - localStorage.setItem(FROM_URL_KEY, win.location.href); - } + const win: any = window; // 将后端重定向的地址取出来,使用win.location.href去实现重定向的要求 const contextpath = response.headers.get('contextpath'); win.location.href = contextpath; + } else { + const data: Result = await response?.clone()?.json?.(); + if (Number(data.code) === 403) { + history.push('/login'); + return response; + } } return response;