feat: refactor agent manager, media library, and player UX
- Split admin users page into player/tier-1/tier-2 tabs with affiliation labels and context-specific create dialogs - Add media library with uploaded_files migration, list/delete unused files API, and admin nav route - Enforce player username format (alphanumeric 3-32) on frontend and backend via shared package - Improve admin dialog/panel styling; refine player parlay and match bet card kickoff display Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,6 +11,27 @@ export const PARLAY_MARKET_TYPES = [
|
||||
|
||||
export type ParlayMarketType = (typeof PARLAY_MARKET_TYPES)[number]['key'];
|
||||
|
||||
/** 按全场 / 半场分组(headerKey 对应 bet.ft / bet.ht) */
|
||||
export const PARLAY_MARKET_GROUPS = [
|
||||
{
|
||||
headerKey: 'ft',
|
||||
columns: [
|
||||
{ key: 'FT_HANDICAP', labelKey: 'parlay_lbl_handicap' },
|
||||
{ key: 'FT_OVER_UNDER', labelKey: 'parlay_lbl_ou' },
|
||||
{ key: 'FT_1X2', labelKey: 'parlay_lbl_1x2' },
|
||||
{ key: 'FT_ODD_EVEN', labelKey: 'parlay_lbl_oe' },
|
||||
],
|
||||
},
|
||||
{
|
||||
headerKey: 'ht',
|
||||
columns: [
|
||||
{ key: 'HT_HANDICAP', labelKey: 'parlay_lbl_handicap' },
|
||||
{ key: 'HT_OVER_UNDER', labelKey: 'parlay_lbl_ou' },
|
||||
{ key: 'HT_1X2', labelKey: 'parlay_lbl_1x2' },
|
||||
],
|
||||
},
|
||||
] as const;
|
||||
|
||||
/** 选项简称 i18n key(串关格内展示) */
|
||||
export const PARLAY_SELECTION_KEYS: Record<string, string> = {
|
||||
HOME: 'parlay_sel_home',
|
||||
|
||||
Reference in New Issue
Block a user