refactor(mobile): extract types, static data, utils, styles from App.vue
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
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import type { PracticeRecentItem, PracticeScenario, PracticeStyleKey } from '../types';
|
||||
|
||||
export const practiceScenarios: PracticeScenario[] = [
|
||||
{
|
||||
id: 'complaint-water',
|
||||
title: '投诉接待',
|
||||
badge: '高频',
|
||||
desc: '业主投诉服务或设施问题的接待与处置',
|
||||
progressText: '2/3',
|
||||
progress: '66%'
|
||||
},
|
||||
{
|
||||
id: 'fee-collection',
|
||||
title: '催费沟通',
|
||||
badge: '高频',
|
||||
desc: '逾期费用提醒与关系维护',
|
||||
progressText: '1/3',
|
||||
progress: '33%'
|
||||
},
|
||||
{
|
||||
id: 'repair-elevator-delay',
|
||||
title: '电梯故障',
|
||||
badge: '应急',
|
||||
desc: '电梯故障期间的安抚、解释与反馈',
|
||||
progressText: '0/3',
|
||||
progress: '0%'
|
||||
},
|
||||
{
|
||||
id: 'fee-parking',
|
||||
title: '停车费催缴',
|
||||
badge: '高频',
|
||||
desc: '停车费到期提醒、异议解释与关系维护',
|
||||
progressText: '1/3',
|
||||
progress: '33%'
|
||||
},
|
||||
{
|
||||
id: 'emergency-elder-fall',
|
||||
title: '突发求助',
|
||||
badge: '基础',
|
||||
desc: '老人摔倒等突发情况的响应与协同',
|
||||
progressText: '0/3',
|
||||
progress: '0%'
|
||||
}
|
||||
];
|
||||
|
||||
export const practiceRecentFallback: PracticeRecentItem[] = [
|
||||
{
|
||||
scenarioId: 'complaint-water',
|
||||
title: '投诉接待 · 电梯故障投诉',
|
||||
time: '今天 09:18',
|
||||
score: '4.0'
|
||||
},
|
||||
{
|
||||
scenarioId: 'fee-collection',
|
||||
title: '催费沟通 · 逾期费用提醒',
|
||||
time: '昨天 14:32',
|
||||
score: '3.5'
|
||||
}
|
||||
];
|
||||
|
||||
export const practiceTotalRounds = 3;
|
||||
|
||||
export const waveBars = [12, 20, 28, 16, 34, 24, 18, 32, 22, 30, 14, 26, 18, 35, 20, 12];
|
||||
|
||||
export const practiceStyleOptions: { key: PracticeStyleKey; label: string }[] = [
|
||||
{ key: 'serious', label: '再严肃' },
|
||||
{ key: 'gentle', label: '再温柔' },
|
||||
{ key: 'detailed', label: '更细致' },
|
||||
{ key: 'professional', label: '更专业' }
|
||||
];
|
||||
|
||||
export const todayPracticeTarget = 1;
|
||||
Reference in New Issue
Block a user