Pure moves only — zero behavior change, template untouched:
- types.ts (447), utils.ts (51), data/{auth,navigation,practice,mentor,
home,supervisor,icons}.ts, styles/app.css (4690, still global non-scoped
via <style src>)
- App.vue 9006 → 3559 lines; 98 moved declarations verbatim except
export/import syntax
- Built CSS hash identical to pre-refactor (byte-equal styles); reactive
state, computed, watchers, lifecycle and templates all stay in App.vue
- Component-level split deferred to phase two after 2026-07-10 Alpha
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import type { RoleKey, SupervisorPanelKey, UserPanelKey } from '../types';
|
|
|
|
export const aliases: Record<string, RoleKey> = {
|
|
h5: 'user',
|
|
user: 'user',
|
|
employee: 'user',
|
|
candidate: 'candidate',
|
|
supervisor: 'supervisor',
|
|
admin: 'supervisor',
|
|
manager: 'supervisor'
|
|
};
|
|
|
|
export const rolePaths: Record<RoleKey, string> = {
|
|
user: '/h5/user',
|
|
candidate: '/h5/candidate',
|
|
supervisor: '/h5/supervisor'
|
|
};
|
|
|
|
export const userPanelSegments: Record<Exclude<UserPanelKey, ''>, string> = {
|
|
tasks: 'training',
|
|
practice: 'practice',
|
|
sop: 'knowledge',
|
|
cases: 'cases',
|
|
submit: 'submit',
|
|
profile: 'profile',
|
|
history: 'history',
|
|
recommend: 'recommend'
|
|
};
|
|
|
|
export const candidatePanelSegments: Record<Exclude<UserPanelKey, ''>, string> = {
|
|
tasks: 'interview',
|
|
practice: 'interview',
|
|
sop: 'sop',
|
|
cases: 'cases',
|
|
submit: 'materials',
|
|
profile: 'profile',
|
|
history: 'history',
|
|
recommend: 'recommend'
|
|
};
|
|
|
|
export const supervisorPanelSegments: Record<Exclude<SupervisorPanelKey, ''>, string> = {
|
|
team: 'team',
|
|
reviews: 'reviews',
|
|
assign: 'assign',
|
|
weakness: 'weakness',
|
|
case: 'cases',
|
|
sop: 'sop',
|
|
profile: 'profile'
|
|
};
|