import { createTextField, jsonServerProvider, ListTable, Resource, Tushan, fetchJSON, TushanContextProps, HTTPClient } from 'tushan'; import { authProvider } from './auth'; import { userFields, payFields, kbFields, AppFields, SystemFields } from './fields'; import { Dashboard } from './Dashboard'; import { IconUser, IconApps, IconBook, IconStamp } from 'tushan/icon'; import { i18nZhTranslation } from 'tushan/client/i18n/resources/zh'; const authStorageKey = 'tushan:auth'; const httpClient: HTTPClient = (url, options = {}) => { try { if (!options.headers) { options.headers = new Headers({ Accept: 'application/json' }); } const { token } = JSON.parse(window.localStorage.getItem(authStorageKey) ?? '{}'); (options.headers as Headers).set('Authorization', `Bearer ${token}`); return fetchJSON(url, options); } catch (err) { return Promise.reject(); } }; const dataProvider = jsonServerProvider(import.meta.env.VITE_PUBLIC_SERVER_URL, httpClient); const i18n: TushanContextProps['i18n'] = { languages: [ { key: 'zh', label: '简体中文', translation: i18nZhTranslation } ] }; function App() { return ( } > } list={ } /> } label="应用" list={ } /> } list={ } /> } list={ } /> } /> ); } export default App;