jordium-gantt-vue3 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,36 +56,33 @@ pnpm add jordium-gantt-vue3
56
56
 
57
57
  ---
58
58
 
59
- > 💡 **徽章下载**:
60
- > - npm 版本徽章:https://img.shields.io/npm/v/jordium-gantt-vue3.svg
61
- > - MIT 许可证徽章:https://img.shields.io/badge/license-MIT-blue.svg
62
- > - Vue 版本徽章:https://img.shields.io/badge/vue-3.x-green.svg
63
- > - TypeScript 徽章:https://img.shields.io/badge/typescript-5.x-blue.svg
64
-
65
59
  ## 📁 项目结构
66
60
 
67
61
  ```
68
62
  jordium-gantt-vue3/
69
- ├── src/ # 源码目录
70
- │ ├── components/ # 核心组件
71
- ├── GanttChart.vue # 主入口组件
72
- ├── TaskList.vue # 任务列表
73
- ├── Timeline.vue # 时间轴
74
- │ ├── TaskBar.vue # 任务条
75
- │ │ ├── MilestonePoint.vue # 里程碑
76
- │ │ └── ... # 其他组件
77
- ├── models/ # 数据模型
78
- │ │ ├── classes/ # 类定义
79
- │ │ └── configs/ # 配置接口
80
- ├── composables/ # 组合式函数
81
- ├── styles/ # 样式文件
82
- │ └── index.ts # 导出入口
83
- ├── demo/ # 开发演示
84
- ├── dist/ # 构建产物
85
- ├── docs/ # 文档
86
- └── package.json
63
+ ├── src/ # 组件源码与核心逻辑
64
+ │ ├── components/ # 主要 Vue 组件
65
+ │ ├── models/ # 数据类型与配置
66
+ │ ├── composables/ # 组合式函数
67
+ │ ├── styles/ # 样式文件
68
+ └── index.ts # 入口导出
69
+ ├── demo/ # 组件开发与交互演示(本地开发/预览用)
70
+ ├── packageDemo/ # npm 包集成演示(模拟外部项目集成效果)
71
+ ├── dist/ # 构建产物(发布/静态站点/打包输出)
72
+ ├── docs/ # 相关文档(如部署、API 说明等)
73
+ ├── design/ # 设计资源与截图
74
+ ├── public/ # 公共静态资源
75
+ ├── README.md # 中文说明文档
76
+ ├── README-EN.md # 英文说明文档
77
+ └── ... # 其他配置、脚本与元数据
87
78
  ```
88
79
 
80
+ - `demo/`:用于本地开发和功能演示,包含完整的交互页面。
81
+ - `packageDemo/`:用于模拟 npm 包在外部项目中的集成与使用场景。
82
+ - `dist/`:构建输出目录,包含发布到 npm 或静态站点的产物。
83
+ - `docs/`:项目相关文档,如部署说明、API 参考等。
84
+ - 其余目录请参考注释。
85
+
89
86
  ## 🔧 API 参考
90
87
 
91
88
  ### GanttChart 属性
@@ -117,11 +114,72 @@ jordium-gantt-vue3/
117
114
 
118
115
  ### GanttChart 事件
119
116
 
120
- | 事件名 | 参数 | 说明 |
121
- |--------|------|------|
117
+ | 事件名 | 参数 | 说明 |
118
+ |----------------------|----------------------------|------------------------------|
122
119
  | `taskbar-drag-end` | `task: Task` | 任务条拖拽结束 |
123
120
  | `taskbar-resize-end` | `task: Task` | 任务条大小调整结束 |
124
121
  | `milestone-drag-end` | `milestone: Task` | 里程碑拖拽结束 |
122
+ | `predecessor-added` | `{ targetTask, newTask }` | 添加前置任务后触发。<br>参数说明:<br>• `targetTask`:被添加前置任务的目标任务(Task对象)<br>• `newTask`:新添加的前置任务(Task对象) |
123
+ | `successor-added` | `{ targetTask, newTask }` | 添加后置任务后触发。<br>参数说明:<br>• `targetTask`:被添加后置任务的目标任务(Task对象)<br>• `newTask`:新添加的后置任务(Task对象) |
124
+ | `task-deleted` | `{ task }` | 删除任务后触发 |
125
+ | `task-added` | `{ task }` | 新建任务后触发 |
126
+ | `task-updated` | `{ task }` | 更新任务后触发 |
127
+
128
+ #### 计时事件用法示例
129
+
130
+ ```vue
131
+ <GanttChart
132
+ ...
133
+ @timer-started="onTimerStarted"
134
+ @timer-stopped="onTimerStopped"
135
+ />
136
+
137
+ <script setup>
138
+ function onTimerStarted(task) {
139
+ // 这里可以自定义提示、日志或业务逻辑
140
+ alert(`任务【${task.name}】开始计时:${new Date(task.timerStartTime).toLocaleString()}`)
141
+ }
142
+ function onTimerStopped(task) {
143
+ alert(`任务【${task.name}】停止计时`)
144
+ }
145
+ </script>
146
+ ```
147
+
148
+ #### 任务事件用法示例
149
+
150
+ ```vue
151
+ <GanttChart
152
+ ...
153
+ @predecessor-added="onPredecessorAdded"
154
+ @successor-added="onSuccessorAdded"
155
+ @task-deleted="onTaskDeleted"
156
+ @task-added="onTaskAdded"
157
+ @task-updated="onTaskUpdated"
158
+ />
159
+
160
+ <script setup>
161
+ function onPredecessorAdded(e) {
162
+ // e: { targetTask: Task, newTask: Task }
163
+ alert(`任务【${e.targetTask.name}】添加前置任务【${e.newTask.name}】`)
164
+ }
165
+ function onSuccessorAdded(e) {
166
+ // e: { targetTask: Task, newTask: Task }
167
+ alert(`任务【${e.targetTask.name}】添加后置任务【${e.newTask.name}】`)
168
+ }
169
+ function onTaskDeleted(e) {
170
+ // e: { task: Task }
171
+ alert(`任务【${e.task.name}】已删除`)
172
+ }
173
+ function onTaskAdded(e) {
174
+ // e: { task: Task }
175
+ alert(`任务【${e.task.name}】已创建`)
176
+ }
177
+ function onTaskUpdated(e) {
178
+ // e: { task: Task }
179
+ alert(`任务【${e.task.name}】已更新`)
180
+ }
181
+ </script>
182
+ ```
125
183
 
126
184
  ### 数据类型
127
185
 
@@ -129,24 +187,30 @@ jordium-gantt-vue3/
129
187
 
130
188
  **Task 任务类型**
131
189
  ```typescript
132
- interface Task {
133
- id: number // 任务唯一标识
134
- name: string // 任务名称
135
- predecessor?: string // 前置任务ID
136
- assignee?: string // 负责人
137
- startDate?: string // 开始日期 (YYYY-MM-DD格式)
138
- endDate?: string // 结束日期 (YYYY-MM-DD格式)
139
- progress?: number // 完成进度 (0-100)
140
- estimatedHours?: number // 预估工时
141
- actualHours?: number // 实际工时
142
- parentId?: number // 上级任务ID
143
- children?: Task[] // 子任务数组(支持嵌套结构)
144
- collapsed?: boolean // 是否折叠子任务
145
- isParent?: boolean // 是否为父级任务
146
- type?: string // 任务类型 (task/story/bug/milestone)
147
- description?: string // 任务描述
148
- icon?: string // 任务图标
149
- level?: number // 任务层级
190
+ export interface Task {
191
+ id: number // 任务唯一ID
192
+ name: string // 任务名称
193
+ predecessor?: number[] // 前置任务ID数组
194
+ assignee?: string // 负责人
195
+ startDate?: string // 开始日期(ISO字符串)
196
+ endDate?: string // 结束日期(ISO字符串)
197
+ progress?: number // 进度百分比 0-100
198
+ estimatedHours?: number // 预估工时
199
+ actualHours?: number // 实际工时
200
+ parentId?: number // 上级任务ID
201
+ children?: Task[] // 子任务数组
202
+ collapsed?: boolean // 是否折叠
203
+ isParent?: boolean // 是否为父任务
204
+ type?: string // 任务类型(如 taskstorymilestone 等)
205
+ description?: string // 任务描述
206
+ icon?: string // 图标
207
+ level?: number // 层级
208
+ // 计时相关字段
209
+ isTimerRunning?: boolean // 计时是否进行中
210
+ timerStartTime?: number // 计时开始时间(时间戳)
211
+ timerEndTime?: number // 计时结束时间(时间戳)
212
+ timerStartDesc?: string // 计时开始时的描述
213
+ timerElapsedTime?: number // 已累计计时时长(秒)
150
214
  }
151
215
  ```
152
216