v1.9.0 - 事件交叉Taskbar展示优化
This commit is contained in:
+28
-19
@@ -86,7 +86,7 @@ const applyDataSource = (source: RawDataSource) => {
|
||||
tasks.value = cloneData(payload.tasks ?? [])
|
||||
milestones.value = cloneData(payload.milestones ?? [])
|
||||
|
||||
// 从独立的资源数据文件加载资源数据
|
||||
// v1.9.0 从资源数据文件加载
|
||||
const resourcePayload = resourcesData as { resources?: any[] }
|
||||
if (resourcePayload.resources) {
|
||||
resources.value = resourcePayload.resources.map(resData => {
|
||||
@@ -100,9 +100,18 @@ const applyDataSource = (source: RawDataSource) => {
|
||||
department: resData.department,
|
||||
skills: resData.skills,
|
||||
utilization: resData.utilization,
|
||||
color: resData.color,
|
||||
tasks: resData.tasks || []
|
||||
})
|
||||
})
|
||||
|
||||
// 更新assigneeOptions,添加资源作为责任人选项
|
||||
const resourceAssigneeOptions = resources.value.map(res => ({
|
||||
value: res.id as string,
|
||||
label: res.name,
|
||||
avatar: res.avatar
|
||||
}))
|
||||
assigneeOptions.value = [...resourceAssigneeOptions]
|
||||
} else {
|
||||
// 向后兼容:如果没有独立的资源数据,从任务中生成
|
||||
const resourceMap = new Map<string, Resource>()
|
||||
@@ -278,23 +287,9 @@ const resourceListConfig = computed<ResourceListConfig>(() => ({
|
||||
key: 'name',
|
||||
label: '资源名称',
|
||||
visible: true,
|
||||
width: 150,
|
||||
width: 200,
|
||||
formatter: (resource: Resource) => resource.name || '-',
|
||||
},
|
||||
{
|
||||
key: 'type',
|
||||
label: '类型',
|
||||
visible: true,
|
||||
width: 100,
|
||||
formatter: (resource: Resource) => resource.type || '-',
|
||||
},
|
||||
{
|
||||
key: 'taskCount',
|
||||
label: '任务数',
|
||||
visible: true,
|
||||
width: 100,
|
||||
formatter: (resource: Resource) => resource.tasks?.length?.toString() || '0',
|
||||
},
|
||||
{
|
||||
key: 'utilization',
|
||||
label: '利用率',
|
||||
@@ -310,6 +305,20 @@ const resourceListConfig = computed<ResourceListConfig>(() => ({
|
||||
return `${utilizationPercent}%`
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'type',
|
||||
label: '类型',
|
||||
visible: true,
|
||||
width: 100,
|
||||
formatter: (resource: Resource) => resource.type || '-',
|
||||
},
|
||||
{
|
||||
key: 'taskCount',
|
||||
label: '任务数',
|
||||
visible: true,
|
||||
width: 100,
|
||||
formatter: (resource: Resource) => resource.tasks?.length?.toString() || '0',
|
||||
},
|
||||
],
|
||||
defaultWidth:
|
||||
widthUnit.value === '%'
|
||||
@@ -2145,7 +2154,7 @@ const handleCustomMenuAction = (action: string, task: Task) => {
|
||||
<template #header-name>
|
||||
<div style="display: flex; align-items: center; gap: 6px;">
|
||||
<img src="https://foruda.gitee.com/avatar/1764902889653058860/565633_nelson820125_1764902889.png!avatar200" width="32" height="32" style="border-radius: 50%;" />
|
||||
<strong style="font-size: 14px;">{{ t.taskName }}</strong>
|
||||
<strong style="font-size: 14px;">{{ viewMode === 'task' ? t.taskName : t.resourceName }}</strong>
|
||||
</div>
|
||||
</template>
|
||||
<template #column-name="{ task, column, value }">
|
||||
@@ -2203,10 +2212,10 @@ const handleCustomMenuAction = (action: string, task: Task) => {
|
||||
</template>
|
||||
|
||||
<!-- 使用 TaskListColumn 组件自定义列 声明式模式 -->
|
||||
<TaskListColumn prop="name" :label="t.taskName" width="300" align="center">
|
||||
<TaskListColumn prop="name" :label="viewMode === 'task' ? t.taskName : t.resourceName" width="300" align="center">
|
||||
<template #header>
|
||||
<img src="https://foruda.gitee.com/avatar/1764902889653058860/565633_nelson820125_1764902889.png!avatar200" width="32" height="32" style="border-radius: 50%;" />
|
||||
<strong style="font-size: 14px;">{{ t.taskName }}</strong>
|
||||
<strong style="font-size: 14px;">{{ viewMode === 'task' ? t.taskName : t.resourceName }}</strong>
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<div style="display: flex; align-items: center; gap: 6px;">
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"id": "resource-zhang",
|
||||
"name": "张三 (前端开发)",
|
||||
"type": "开发工程师",
|
||||
"avatar": "https://i.pravatar.cc/150?img=11",
|
||||
"department": "技术部",
|
||||
"skills": ["Vue3", "TypeScript", "前端架构"],
|
||||
"utilization": 125,
|
||||
"color": "#2196f3",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 1001,
|
||||
"name": "用户管理模块开发",
|
||||
"startDate": "2026-01-20",
|
||||
"endDate": "2026-01-30",
|
||||
"progress": 60,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhang", "name": "张三", "percent": 50 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1002,
|
||||
"name": "权限系统重构",
|
||||
"startDate": "2026-01-22",
|
||||
"endDate": "2026-02-05",
|
||||
"progress": 30,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhang", "name": "张三", "percent": 75 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1003,
|
||||
"name": "性能优化任务",
|
||||
"startDate": "2026-02-08",
|
||||
"endDate": "2026-02-15",
|
||||
"progress": 0,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhang", "name": "张三", "percent": 100 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-li",
|
||||
"name": "李四 (后端开发)",
|
||||
"type": "开发工程师",
|
||||
"avatar": "https://i.pravatar.cc/150?img=12",
|
||||
"department": "技术部",
|
||||
"skills": ["Java", "Spring Boot", "微服务"],
|
||||
"utilization": 80,
|
||||
"color": "#4caf50",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 2001,
|
||||
"name": "API接口开发",
|
||||
"startDate": "2026-01-15",
|
||||
"endDate": "2026-01-28",
|
||||
"progress": 80,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-li", "name": "李四", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2002,
|
||||
"name": "数据库优化",
|
||||
"startDate": "2026-02-01",
|
||||
"endDate": "2026-02-10",
|
||||
"progress": 20,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-li", "name": "李四", "percent": 50 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-wang",
|
||||
"name": "王五 (测试工程师)",
|
||||
"type": "测试工程师",
|
||||
"avatar": "https://i.pravatar.cc/150?img=13",
|
||||
"department": "质量部",
|
||||
"skills": ["自动化测试", "性能测试", "测试用例设计"],
|
||||
"utilization": 60,
|
||||
"color": "#ff9800",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 3001,
|
||||
"name": "用户模块测试",
|
||||
"startDate": "2026-01-25",
|
||||
"endDate": "2026-02-03",
|
||||
"progress": 40,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-wang", "name": "王五", "percent": 75 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3002,
|
||||
"name": "集成测试",
|
||||
"startDate": "2026-02-05",
|
||||
"endDate": "2026-02-12",
|
||||
"progress": 10,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-wang", "name": "王五", "percent": 25 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3003,
|
||||
"name": "回归测试",
|
||||
"startDate": "2026-02-14",
|
||||
"endDate": "2026-02-20",
|
||||
"progress": 0,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-wang", "name": "王五", "percent": 50 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-zhao",
|
||||
"name": "赵六 (项目经理) [超负荷]",
|
||||
"type": "项目管理",
|
||||
"avatar": "https://i.pravatar.cc/150?img=14",
|
||||
"department": "项目管理部",
|
||||
"skills": ["项目管理", "敏捷开发", "团队协作"],
|
||||
"utilization": 150,
|
||||
"color": "#f56c6c",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 4001,
|
||||
"name": "项目A管理",
|
||||
"startDate": "2026-01-18",
|
||||
"endDate": "2026-02-10",
|
||||
"progress": 50,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhao", "name": "赵六", "percent": 60 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4002,
|
||||
"name": "项目B管理",
|
||||
"startDate": "2026-01-20",
|
||||
"endDate": "2026-02-08",
|
||||
"progress": 45,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhao", "name": "赵六", "percent": 50 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4003,
|
||||
"name": "周报汇总",
|
||||
"startDate": "2026-01-24",
|
||||
"endDate": "2026-02-05",
|
||||
"progress": 30,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhao", "name": "赵六", "percent": 20 }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+268
-11
@@ -8,6 +8,7 @@
|
||||
"department": "临床研究部",
|
||||
"skills": ["临床试验管理", "项目规划", "团队领导"],
|
||||
"utilization": 85,
|
||||
"color": "#2196f3",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 1000,
|
||||
@@ -15,7 +16,10 @@
|
||||
"startDate": "2025-01-01",
|
||||
"endDate": "2027-12-31",
|
||||
"progress": 15,
|
||||
"type": "story"
|
||||
"type": "story",
|
||||
"resources": [
|
||||
{ "id": "resource-chen", "name": "首席研究员 Dr. Chen", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5001,
|
||||
@@ -23,7 +27,10 @@
|
||||
"startDate": "2025-03-01",
|
||||
"endDate": "2025-03-15",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-chen", "name": "首席研究员 Dr. Chen", "percent": 75 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5002,
|
||||
@@ -31,7 +38,10 @@
|
||||
"startDate": "2025-06-10",
|
||||
"endDate": "2025-06-12",
|
||||
"progress": 80,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-chen", "name": "首席研究员 Dr. Chen", "percent": 50 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -43,6 +53,7 @@
|
||||
"department": "I期临床研究组",
|
||||
"skills": ["I期试验设计", "药代动力学", "安全性评估"],
|
||||
"utilization": 92,
|
||||
"color": "#4caf50",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 1100,
|
||||
@@ -50,7 +61,10 @@
|
||||
"startDate": "2025-01-01",
|
||||
"endDate": "2025-08-31",
|
||||
"progress": 65,
|
||||
"type": "story"
|
||||
"type": "story",
|
||||
"resources": [
|
||||
{ "id": "resource-wang", "name": "I期试验主任 Dr. Wang", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5003,
|
||||
@@ -58,7 +72,10 @@
|
||||
"startDate": "2025-03-01",
|
||||
"endDate": "2025-04-30",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-wang", "name": "I期试验主任 Dr. Wang", "percent": 75 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5004,
|
||||
@@ -66,7 +83,10 @@
|
||||
"startDate": "2025-05-01",
|
||||
"endDate": "2025-07-31",
|
||||
"progress": 45,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-wang", "name": "I期试验主任 Dr. Wang", "percent": 50 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -85,7 +105,10 @@
|
||||
"startDate": "2025-01-01",
|
||||
"endDate": "2025-02-28",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-li", "name": "方案设计师 李明", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5005,
|
||||
@@ -93,7 +116,11 @@
|
||||
"startDate": "2025-07-01",
|
||||
"endDate": "2025-08-15",
|
||||
"progress": 30,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"barColor": "#7B3FF2",
|
||||
"resources": [
|
||||
{ "id": "resource-li", "name": "方案设计师 李明", "percent": 75 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -105,6 +132,7 @@
|
||||
"department": "数据管理与统计部",
|
||||
"skills": ["统计分析", "数据可视化", "报告撰写"],
|
||||
"utilization": 68,
|
||||
"color": "#ff9800",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 1103,
|
||||
@@ -112,7 +140,10 @@
|
||||
"startDate": "2025-05-01",
|
||||
"endDate": "2025-08-15",
|
||||
"progress": 50,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhang", "name": "数据分析师 张伟", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5006,
|
||||
@@ -120,7 +151,10 @@
|
||||
"startDate": "2025-06-15",
|
||||
"endDate": "2025-07-01",
|
||||
"progress": 70,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhang", "name": "数据分析师 张伟", "percent": 50 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5007,
|
||||
@@ -128,7 +162,10 @@
|
||||
"startDate": "2025-07-15",
|
||||
"endDate": "2025-08-10",
|
||||
"progress": 25,
|
||||
"type": "task"
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhang", "name": "数据分析师 张伟", "percent": 75 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -229,6 +266,7 @@
|
||||
"department": "III期临床研究组",
|
||||
"skills": ["大型试验管理", "多中心协调", "里程碑管理"],
|
||||
"utilization": 35,
|
||||
"color": "#9c27b0",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 1300,
|
||||
@@ -239,6 +277,225 @@
|
||||
"type": "story"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-sun",
|
||||
"name": "生物统计师 孙丽",
|
||||
"type": "生物统计师",
|
||||
"avatar": "https://i.pravatar.cc/150?img=9",
|
||||
"department": "数据管理与统计部",
|
||||
"skills": ["统计建模", "样本量计算", "数据分析"],
|
||||
"utilization": 95,
|
||||
"color": "#ff5733",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 6001,
|
||||
"name": "I期统计分析计划",
|
||||
"startDate": "2025-04-01",
|
||||
"endDate": "2025-04-30",
|
||||
"progress": 100,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-sun", "name": "生物统计师 孙丽", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6002,
|
||||
"name": "中期数据分析",
|
||||
"startDate": "2025-05-15",
|
||||
"endDate": "2025-06-15",
|
||||
"progress": 75,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-sun", "name": "生物统计师 孙丽", "percent": 75 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6003,
|
||||
"name": "II期样本量计算",
|
||||
"startDate": "2025-05-20",
|
||||
"endDate": "2025-06-10",
|
||||
"progress": 85,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-sun", "name": "生物统计师 孙丽", "percent": 50 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6004,
|
||||
"name": "最终报告统计",
|
||||
"startDate": "2025-08-01",
|
||||
"endDate": "2025-08-25",
|
||||
"progress": 30,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-sun", "name": "生物统计师 孙丽", "percent": 100 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-zhou",
|
||||
"name": "临床监查员 周杰",
|
||||
"type": "临床监查员",
|
||||
"avatar": "https://i.pravatar.cc/150?img=10",
|
||||
"department": "临床监查部",
|
||||
"skills": ["现场监查", "数据核查", "问题解决"],
|
||||
"utilization": 110,
|
||||
"color": "#3498db",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 6005,
|
||||
"name": "中心A启动访视",
|
||||
"startDate": "2025-03-10",
|
||||
"endDate": "2025-03-15",
|
||||
"progress": 100,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhou", "name": "临床监查员 周杰", "percent": 100 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6006,
|
||||
"name": "中心B监查访视",
|
||||
"startDate": "2025-03-12",
|
||||
"endDate": "2025-03-18",
|
||||
"progress": 100,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhou", "name": "临床监查员 周杰", "percent": 75 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6007,
|
||||
"name": "中心C数据核查",
|
||||
"startDate": "2025-04-01",
|
||||
"endDate": "2025-04-10",
|
||||
"progress": 90,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhou", "name": "临床监查员 周杰", "percent": 50 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6008,
|
||||
"name": "中心D关闭访视",
|
||||
"startDate": "2025-04-05",
|
||||
"endDate": "2025-04-12",
|
||||
"progress": 70,
|
||||
"type": "task",
|
||||
"resources": [
|
||||
{ "id": "resource-zhou", "name": "临床监查员 周杰", "percent": 25 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-xu",
|
||||
"name": "医学撰写员 徐静",
|
||||
"type": "医学撰写员",
|
||||
"avatar": "https://i.pravatar.cc/150?img=11",
|
||||
"department": "医学事务部",
|
||||
"skills": ["研究报告撰写", "文献检索", "医学翻译"],
|
||||
"utilization": 72,
|
||||
"color": "#e74c3c",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 6009,
|
||||
"name": "研究方案撰写",
|
||||
"startDate": "2025-01-15",
|
||||
"endDate": "2025-02-15",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
},
|
||||
{
|
||||
"id": 6010,
|
||||
"name": "中期报告撰写",
|
||||
"startDate": "2025-06-01",
|
||||
"endDate": "2025-07-01",
|
||||
"progress": 60,
|
||||
"type": "task"
|
||||
},
|
||||
{
|
||||
"id": 6011,
|
||||
"name": "研究者手册更新",
|
||||
"startDate": "2025-07-15",
|
||||
"endDate": "2025-08-15",
|
||||
"progress": 20,
|
||||
"type": "task"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-ma",
|
||||
"name": "药物警戒专员 马云飞",
|
||||
"type": "药物警戒",
|
||||
"avatar": "https://i.pravatar.cc/150?img=12",
|
||||
"department": "药物警戒部",
|
||||
"skills": ["不良事件管理", "安全性报告", "信号检测"],
|
||||
"utilization": 88,
|
||||
"color": "#f39c12",
|
||||
"tasks": [
|
||||
{
|
||||
"id": 6012,
|
||||
"name": "SAE快速报告",
|
||||
"startDate": "2025-03-01",
|
||||
"endDate": "2025-03-31",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
},
|
||||
{
|
||||
"id": 6013,
|
||||
"name": "安全性季度报告",
|
||||
"startDate": "2025-03-15",
|
||||
"endDate": "2025-04-01",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
},
|
||||
{
|
||||
"id": 6014,
|
||||
"name": "DSUR年度报告",
|
||||
"startDate": "2025-06-01",
|
||||
"endDate": "2025-07-15",
|
||||
"progress": 45,
|
||||
"type": "task"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "resource-gao",
|
||||
"name": "注册事务专员 高敏",
|
||||
"type": "注册事务",
|
||||
"avatar": "https://i.pravatar.cc/150?img=13",
|
||||
"department": "注册事务部",
|
||||
"skills": ["IND申报", "监管沟通", "文件管理"],
|
||||
"utilization": 65,
|
||||
"tasks": [
|
||||
{
|
||||
"id": 6015,
|
||||
"name": "IND申报准备",
|
||||
"startDate": "2024-12-01",
|
||||
"endDate": "2025-01-15",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
},
|
||||
{
|
||||
"id": 6016,
|
||||
"name": "与NMPA沟通会议",
|
||||
"startDate": "2025-02-10",
|
||||
"endDate": "2025-02-12",
|
||||
"progress": 100,
|
||||
"type": "task"
|
||||
},
|
||||
{
|
||||
"id": 6017,
|
||||
"name": "II期IND补充申请",
|
||||
"startDate": "2025-08-01",
|
||||
"endDate": "2025-08-31",
|
||||
"progress": 15,
|
||||
"type": "task"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user