195 lines
4.8 KiB
TypeScript
195 lines
4.8 KiB
TypeScript
|
|
import dayjs from 'dayjs';
|
||
|
|
import type {
|
||
|
|
WorkbenchActivityItemSource,
|
||
|
|
WorkbenchBannerSummarySource,
|
||
|
|
WorkbenchKpiSource,
|
||
|
|
WorkbenchProjectItemSource,
|
||
|
|
WorkbenchTodoItemSource
|
||
|
|
} from './homepage';
|
||
|
|
|
||
|
|
const now = dayjs();
|
||
|
|
const iso = (date: dayjs.Dayjs) => date.format('YYYY-MM-DD HH:mm:ss');
|
||
|
|
|
||
|
|
export const workbenchBannerSummaryMock = {
|
||
|
|
todoCount: 8,
|
||
|
|
upcomingCount: 2,
|
||
|
|
weekDone: 12,
|
||
|
|
weekTotal: 18,
|
||
|
|
weekInProgress: 5,
|
||
|
|
weekOverdue: 1
|
||
|
|
} satisfies WorkbenchBannerSummarySource;
|
||
|
|
|
||
|
|
export const workbenchKpiMock = {
|
||
|
|
todo: { count: 8, diffFromYesterday: 1 },
|
||
|
|
task: { count: 14, diffFromYesterday: -1 },
|
||
|
|
project: { count: 3, activeCount: 2 },
|
||
|
|
requirement: { count: 6, pendingReview: 2 }
|
||
|
|
} satisfies WorkbenchKpiSource;
|
||
|
|
|
||
|
|
export const workbenchTodoMock = [
|
||
|
|
{
|
||
|
|
id: 'todo-1',
|
||
|
|
category: 'review',
|
||
|
|
title: '订单导出 V2 需求评审',
|
||
|
|
deadline: iso(now.add(2, 'day').hour(18).minute(0)),
|
||
|
|
source: '张三 · 收银台 V3',
|
||
|
|
highPriority: true,
|
||
|
|
routeKey: 'product_list'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-2',
|
||
|
|
category: 'task',
|
||
|
|
title: '支付回调接口联调',
|
||
|
|
deadline: iso(now.add(1, 'day').hour(17).minute(30)),
|
||
|
|
source: '收银台 V3 · 后端联调',
|
||
|
|
routeKey: 'project_list'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-3',
|
||
|
|
category: 'ticket',
|
||
|
|
title: '工单 #1024 等待我处理',
|
||
|
|
deadline: iso(now.hour(20).minute(0)),
|
||
|
|
source: '王五 · 客户反馈',
|
||
|
|
routeKey: 'ticket'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-4',
|
||
|
|
category: 'mention',
|
||
|
|
title: '需求「会员等级」中 @ 了你',
|
||
|
|
deadline: null,
|
||
|
|
source: '李四 · 会员中心',
|
||
|
|
routeKey: 'product_list'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-5',
|
||
|
|
category: 'task',
|
||
|
|
title: '订单中心结算文档评审',
|
||
|
|
deadline: iso(now.add(4, 'day').hour(15).minute(0)),
|
||
|
|
source: '订单中心 · 文档',
|
||
|
|
routeKey: 'project_list'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-6',
|
||
|
|
category: 'review',
|
||
|
|
title: 'API 返回结构调整评审',
|
||
|
|
deadline: iso(now.subtract(1, 'day').hour(18).minute(0)),
|
||
|
|
source: '赵六 · 收银台 V3',
|
||
|
|
overdue: true,
|
||
|
|
highPriority: true,
|
||
|
|
routeKey: 'product_list'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-7',
|
||
|
|
category: 'task',
|
||
|
|
title: '会员等级提示文案校对',
|
||
|
|
deadline: iso(now.add(3, 'day').hour(11).minute(0)),
|
||
|
|
source: '会员中心 · 文案',
|
||
|
|
routeKey: 'project_list'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'todo-8',
|
||
|
|
category: 'ticket',
|
||
|
|
title: '工单 #1018 用户登录异常',
|
||
|
|
deadline: iso(now.add(1, 'day').hour(10).minute(0)),
|
||
|
|
source: '客户支持 · 紧急',
|
||
|
|
highPriority: true,
|
||
|
|
routeKey: 'ticket'
|
||
|
|
}
|
||
|
|
] satisfies WorkbenchTodoItemSource[];
|
||
|
|
|
||
|
|
export const workbenchActivityMock = [
|
||
|
|
{
|
||
|
|
id: 'act-1',
|
||
|
|
actor: '张三',
|
||
|
|
action: '提交了需求评审申请',
|
||
|
|
target: '订单导出 V2',
|
||
|
|
targetKind: 'requirement',
|
||
|
|
time: iso(now.subtract(10, 'minute'))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'act-2',
|
||
|
|
actor: '李四',
|
||
|
|
action: '完成了任务',
|
||
|
|
target: '支付回调接口联调',
|
||
|
|
targetKind: 'task',
|
||
|
|
time: iso(now.subtract(2, 'hour'))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'act-3',
|
||
|
|
actor: '李四',
|
||
|
|
action: '在需求中 @ 了你',
|
||
|
|
target: '会员等级',
|
||
|
|
targetKind: 'requirement',
|
||
|
|
time: iso(now.subtract(1, 'day').hour(17).minute(23)),
|
||
|
|
mentioned: true
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'act-4',
|
||
|
|
actor: '王五',
|
||
|
|
action: '提交了工单',
|
||
|
|
target: '#1024 · 客户反馈',
|
||
|
|
targetKind: 'ticket',
|
||
|
|
time: iso(now.subtract(1, 'day').hour(15).minute(8))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'act-5',
|
||
|
|
actor: '赵六',
|
||
|
|
action: '把项目状态调整为',
|
||
|
|
target: '试运行(订单中心)',
|
||
|
|
targetKind: 'project',
|
||
|
|
time: iso(now.subtract(2, 'day').hour(10).minute(0))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'act-6',
|
||
|
|
actor: '系统',
|
||
|
|
action: '提醒:你有 1 项任务即将逾期',
|
||
|
|
target: 'API 返回结构调整评审',
|
||
|
|
targetKind: 'requirement',
|
||
|
|
time: iso(now.subtract(3, 'day').hour(9).minute(30))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'act-7',
|
||
|
|
actor: '钱七',
|
||
|
|
action: '更新了产品资料',
|
||
|
|
target: '收银台 V3 · 定位说明',
|
||
|
|
targetKind: 'product',
|
||
|
|
time: iso(now.subtract(4, 'day').hour(16).minute(45))
|
||
|
|
}
|
||
|
|
] satisfies WorkbenchActivityItemSource[];
|
||
|
|
|
||
|
|
export const workbenchProjectMock = [
|
||
|
|
{
|
||
|
|
id: 'prj-1',
|
||
|
|
name: '收银台 V3',
|
||
|
|
code: 'CASHIER-V3',
|
||
|
|
status: 'active',
|
||
|
|
myRole: '项目负责人',
|
||
|
|
progress: 72,
|
||
|
|
myTaskCount: 6,
|
||
|
|
myPendingTaskCount: 2,
|
||
|
|
lastActiveTime: iso(now.subtract(35, 'minute'))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'prj-2',
|
||
|
|
name: '会员中心',
|
||
|
|
code: 'MEMBER',
|
||
|
|
status: 'active',
|
||
|
|
myRole: '后端负责人',
|
||
|
|
progress: 58,
|
||
|
|
myTaskCount: 4,
|
||
|
|
myPendingTaskCount: 1,
|
||
|
|
lastActiveTime: iso(now.subtract(3, 'hour'))
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 'prj-3',
|
||
|
|
name: '订单中心',
|
||
|
|
code: 'ORDER-CENTER',
|
||
|
|
status: 'preview',
|
||
|
|
myRole: '产品经理',
|
||
|
|
progress: 95,
|
||
|
|
myTaskCount: 4,
|
||
|
|
myPendingTaskCount: 0,
|
||
|
|
lastActiveTime: iso(now.subtract(2, 'day').hour(10))
|
||
|
|
}
|
||
|
|
] satisfies WorkbenchProjectItemSource[];
|