diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d2074e1..f522f299 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1567,8 +1567,8 @@ importers: specifier: workspace:^ version: link:../packages/sdk tushan: - specifier: ^0.2.36 - version: 0.2.36(prop-types@15.8.1)(ts-node@10.9.1) + specifier: ^0.2.37 + version: 0.2.37(prop-types@15.8.1)(ts-node@10.9.1) vite-express: specifier: 0.8.0 version: 0.8.0(patch_hash=u6touqej4dt3zxnslnszarl7vq)(express@4.18.2)(vite@4.2.0) @@ -33966,8 +33966,8 @@ packages: domino: 2.1.6 dev: false - /tushan@0.2.36(prop-types@15.8.1)(ts-node@10.9.1): - resolution: {integrity: sha512-ij4yi75TFSGREa4zMn6va2E+Wg/vGKbrEDL7cgoTN9tgtQ3E3csAHQBKOTFhQody2C/CMWH3SU0+/8eQQhE2mw==} + /tushan@0.2.37(prop-types@15.8.1)(ts-node@10.9.1): + resolution: {integrity: sha512-q/imSg1CnvRCD8Q99ueqbjlGS0uFW21fRNVlgwIvG8YEtfQYntOdBZE6gs1xqxWD9qOLInWFDpkcplE2LJR/SA==} dependencies: '@arco-design/web-react': 2.49.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query': 4.29.3(react-dom@18.2.0)(react@18.2.0) diff --git a/server/admin/package.json b/server/admin/package.json index fd543781..74000079 100644 --- a/server/admin/package.json +++ b/server/admin/package.json @@ -29,7 +29,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "tailchat-server-sdk": "workspace:^", - "tushan": "^0.2.36", + "tushan": "^0.2.37", "vite-express": "0.8.0" }, "devDependencies": { diff --git a/server/admin/src/client/App.tsx b/server/admin/src/client/App.tsx index 84b388f2..3377456e 100644 --- a/server/admin/src/client/App.tsx +++ b/server/admin/src/client/App.tsx @@ -1,4 +1,5 @@ import { + Category, createTextField, CustomRoute, jsonServerProvider, @@ -7,6 +8,7 @@ import { Tushan, } from 'tushan'; import { + IconCompass, IconDashboard, IconEmail, IconFile, @@ -20,7 +22,13 @@ import { } from 'tushan/icon'; import { authHTTPClient, authProvider } from './auth'; import { Dashboard } from './components/Dashboard'; -import { fileFields, groupFields, mailFields, messageFields } from './fields'; +import { + discoverFields, + fileFields, + groupFields, + mailFields, + messageFields, +} from './fields'; import { i18n } from './i18n'; import { UserList } from './resources/user'; import { CacheManager } from './routes/cache'; @@ -100,6 +108,19 @@ function App() { list={} /> + + } + list={ + + } + /> + + }> diff --git a/server/admin/src/client/fields.ts b/server/admin/src/client/fields.ts index 8155d563..6e882911 100644 --- a/server/admin/src/client/fields.ts +++ b/server/admin/src/client/fields.ts @@ -158,3 +158,23 @@ export const mailFields = [ createTextField('error'), createDateTimeField('createdAt'), ]; + +export const discoverFields = [ + createReferenceField('groupId', { + reference: 'groups', + displayField: 'name', + }), + createBooleanField('active', { + edit: { + default: true, + }, + }), + createNumberField('order', { + edit: { + default: 0, + }, + list: { + sort: true, + }, + }), +]; diff --git a/server/admin/src/client/i18n.ts b/server/admin/src/client/i18n.ts index 511ca452..e58c37d0 100644 --- a/server/admin/src/client/i18n.ts +++ b/server/admin/src/client/i18n.ts @@ -9,6 +9,16 @@ export const i18n: TushanContextProps['i18n'] = { label: 'English', translation: { ...i18nEnTranslation, + resources: { + p_discover: { + name: 'Discover', + fields: { + groupId: 'Group ID', + active: 'Is Active', + order: 'Order', + }, + }, + }, custom: { action: { resetPassword: 'Reset Password', @@ -154,6 +164,14 @@ export const i18n: TushanContextProps['i18n'] = { createdAt: '创建时间', }, }, + p_discover: { + name: '探索', + fields: { + groupId: '群组ID', + active: '是否活跃', + order: '排序', + }, + }, system: { name: '系统设置', }, @@ -170,6 +188,9 @@ export const i18n: TushanContextProps['i18n'] = { name: '系统通知', }, }, + category: { + plugins: '插件', + }, custom: { action: { resetPassword: '重置密码', diff --git a/server/admin/src/server/router/api.ts b/server/admin/src/server/router/api.ts index 9bd43639..30a50a79 100644 --- a/server/admin/src/server/router/api.ts +++ b/server/admin/src/server/router/api.ts @@ -253,5 +253,12 @@ router.use( auth(), raExpressMongoose(require('../../../../models/user/mail').default) ); +router.use( + '/p_discover', + auth(), + raExpressMongoose( + require('../../../../plugins/com.msgbyte.discover/models/discover').default + ) +); export { router as apiRouter };