123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import { MockRequest, MockStatusError } from '@delon/mock';
- import { Menu } from '@delon/theme';
- import { deepCopy } from '@delon/util';
- const DATA: Menu[] = [
- {
- id: 1,
- parent_id: 0,
- text: '主导航',
- i18n: 'menu.main',
- group: true,
- hideInBreadcrumb: true,
- },
- {
- id: 2,
- parent_id: 1,
- text: '仪表盘',
- i18n: 'menu.dashboard',
- icon: 'dashboard',
- },
- {
- id: 3,
- parent_id: 2,
- text: '分析页',
- link: '/dashboard/analysis',
- i18n: 'menu.dashboard.analysis',
- },
- {
- id: 4,
- parent_id: 2,
- text: '监控页',
- link: '/dashboard/monitor',
- i18n: 'menu.dashboard.monitor',
- },
- {
- id: 5,
- parent_id: 2,
- text: '工作台',
- link: '/dashboard/workplace',
- i18n: 'menu.dashboard.workplace',
- },
- {
- id: 6,
- parent_id: 0,
- text: 'Pro',
- i18n: 'menu.pro',
- group: true,
- hideInBreadcrumb: true,
- },
- {
- id: 7,
- parent_id: 6,
- text: 'Form Page',
- i18n: 'menu.form',
- link: '/pro/form',
- icon: 'anticon anticon-edit',
- hideInBreadcrumb: true,
- },
- {
- id: 8,
- parent_id: 6,
- text: 'Basic Form',
- link: '/pro/form/basic-form',
- i18n: 'menu.form.basicform',
- shortcut: true,
- },
- {
- id: 9,
- parent_id: 6,
- text: 'Step Form',
- link: '/pro/form/step-form',
- i18n: 'menu.form.stepform',
- },
- ];
- function getIdx(id: number): number {
- id = +id;
- const idx = DATA.findIndex((w) => w.id === id);
- if (idx === -1) {
- throw new MockStatusError(404);
- }
- return idx;
- }
- export const MENUS = {
- '/menus': () => deepCopy(DATA),
- 'POST /menus': (req: MockRequest) => {
- const id = req.body.id || 0;
- if (id > 0) {
- const idx = getIdx(id);
- DATA[idx] = { ...DATA[idx], ...req.body };
- return { msg: 'ok', item: DATA[idx] };
- }
- const item = { ...req.body, id: DATA.sort((a, b) => b.id - a.id)[0].id + 1 };
- DATA.push(item);
- return { msg: 'ok', item };
- },
- 'DELETE /menus/:id': (req: MockRequest) => {
- const idx = getIdx(req.params.id || 0);
- DATA.splice(idx, 1);
- return { msg: 'ok' };
- },
- 'POST /menus/move': (req: MockRequest) => {
- const idx = getIdx(req.body.from || 0);
- DATA[idx].parent_id = req.body.to || 0;
- return { msg: 'ok', item: DATA[idx] };
- },
- };
|