@robot-admin/naive-ui-components 0.4.3 → 0.4.4

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.
Files changed (285) hide show
  1. package/dist/C_ActionBar.cjs +1 -5
  2. package/dist/C_ActionBar.js +1 -4
  3. package/dist/C_ActionBar.js.map +1 -0
  4. package/dist/C_ActionBar2.js +1 -195
  5. package/dist/C_ActionBar2.js.map +1 -1
  6. package/dist/C_AntV.cjs +1 -8
  7. package/dist/C_AntV.js +1 -4
  8. package/dist/C_AntV.js.map +1 -0
  9. package/dist/C_AntV2.js +4 -3149
  10. package/dist/C_AntV2.js.map +1 -1
  11. package/dist/C_Barcode.cjs +1 -4
  12. package/dist/C_Barcode.js +1 -3
  13. package/dist/C_Barcode.js.map +1 -0
  14. package/dist/C_Barcode2.js +1 -67
  15. package/dist/C_Barcode2.js.map +1 -1
  16. package/dist/C_Captcha.cjs +1 -4
  17. package/dist/C_Captcha.js +1 -3
  18. package/dist/C_Captcha.js.map +1 -0
  19. package/dist/C_Captcha2.js +1 -154
  20. package/dist/C_Captcha2.js.map +1 -1
  21. package/dist/C_Cascade.cjs +1 -4
  22. package/dist/C_Cascade.js +1 -3
  23. package/dist/C_Cascade.js.map +1 -0
  24. package/dist/C_Cascade2.js +1 -102
  25. package/dist/C_Cascade2.js.map +1 -1
  26. package/dist/C_City.cjs +1 -4
  27. package/dist/C_City.js +1 -3
  28. package/dist/C_City.js.map +1 -0
  29. package/dist/C_City2.js +1 -840
  30. package/dist/C_City2.js.map +1 -1
  31. package/dist/C_Code.cjs +1 -5
  32. package/dist/C_Code.js +1 -4
  33. package/dist/C_Code.js.map +1 -0
  34. package/dist/C_Code2.js +1 -346
  35. package/dist/C_Code2.js.map +1 -1
  36. package/dist/C_CollapsePanel.cjs +1 -6
  37. package/dist/C_CollapsePanel.js +1 -4
  38. package/dist/C_CollapsePanel.js.map +1 -0
  39. package/dist/C_CollapsePanel2.js +1 -318
  40. package/dist/C_CollapsePanel2.js.map +1 -1
  41. package/dist/C_Cron.cjs +1 -15
  42. package/dist/C_Cron.js +1 -4
  43. package/dist/C_Cron.js.map +1 -0
  44. package/dist/C_Cron2.js +1 -1209
  45. package/dist/C_Cron2.js.map +1 -1
  46. package/dist/C_Date.cjs +1 -4
  47. package/dist/C_Date.js +1 -3
  48. package/dist/C_Date.js.map +1 -0
  49. package/dist/C_Date2.js +1 -218
  50. package/dist/C_Date2.js.map +1 -1
  51. package/dist/C_Draggable.cjs +1 -5
  52. package/dist/C_Draggable.js +1 -3
  53. package/dist/C_Draggable.js.map +1 -0
  54. package/dist/C_Draggable2.js +1 -294
  55. package/dist/C_Draggable2.js.map +1 -1
  56. package/dist/C_Editor.cjs +1 -4
  57. package/dist/C_Editor.js +1 -3
  58. package/dist/C_Editor.js.map +1 -0
  59. package/dist/C_Editor2.js +1 -159
  60. package/dist/C_Editor2.js.map +1 -1
  61. package/dist/C_FilePreview.cjs +1 -7
  62. package/dist/C_FilePreview.js +1 -4
  63. package/dist/C_FilePreview.js.map +1 -0
  64. package/dist/C_FilePreview2.js +1 -1031
  65. package/dist/C_FilePreview2.js.map +1 -1
  66. package/dist/C_Form.cjs +1 -16
  67. package/dist/C_Form.js +1 -5
  68. package/dist/C_Form.js.map +1 -0
  69. package/dist/C_Form2.js +1 -2569
  70. package/dist/C_Form2.js.map +1 -1
  71. package/dist/C_FormSearch.cjs +1 -6
  72. package/dist/C_FormSearch.js +1 -3
  73. package/dist/C_FormSearch.js.map +1 -0
  74. package/dist/C_FormSearch2.js +1 -355
  75. package/dist/C_FormSearch2.js.map +1 -1
  76. package/dist/C_FormulaEditor.cjs +1 -13
  77. package/dist/C_FormulaEditor.js +1 -4
  78. package/dist/C_FormulaEditor.js.map +1 -0
  79. package/dist/C_FormulaEditor2.js +1 -1432
  80. package/dist/C_FormulaEditor2.js.map +1 -1
  81. package/dist/C_FullCalendar.cjs +1 -9
  82. package/dist/C_FullCalendar.js +1 -3
  83. package/dist/C_FullCalendar.js.map +1 -0
  84. package/dist/C_FullCalendar2.js +1 -376
  85. package/dist/C_FullCalendar2.js.map +1 -1
  86. package/dist/C_GlobalSearch.cjs +1 -5
  87. package/dist/C_GlobalSearch.js +1 -3
  88. package/dist/C_GlobalSearch.js.map +1 -0
  89. package/dist/C_GlobalSearch2.js +1 -335
  90. package/dist/C_GlobalSearch2.js.map +1 -1
  91. package/dist/C_Guide.cjs +1 -5
  92. package/dist/C_Guide.js +1 -4
  93. package/dist/C_Guide.js.map +1 -0
  94. package/dist/C_Guide2.js +1 -60
  95. package/dist/C_Guide2.js.map +1 -1
  96. package/dist/C_Icon.cjs +1 -4
  97. package/dist/C_Icon.js +1 -3
  98. package/dist/C_Icon.js.map +1 -0
  99. package/dist/C_Icon2.js +1 -285
  100. package/dist/C_Icon2.js.map +1 -1
  101. package/dist/C_ImageCropper.cjs +1 -6
  102. package/dist/C_ImageCropper.js +1 -4
  103. package/dist/C_ImageCropper.js.map +1 -0
  104. package/dist/C_ImageCropper2.js +1 -722
  105. package/dist/C_ImageCropper2.js.map +1 -1
  106. package/dist/C_Language.cjs +1 -5
  107. package/dist/C_Language.js +1 -4
  108. package/dist/C_Language.js.map +1 -0
  109. package/dist/C_Language2.js +1 -78
  110. package/dist/C_Language2.js.map +1 -1
  111. package/dist/C_Map.cjs +1 -7
  112. package/dist/C_Map.js +1 -3
  113. package/dist/C_Map.js.map +1 -0
  114. package/dist/C_Map2.js +1 -198
  115. package/dist/C_Map2.js.map +1 -1
  116. package/dist/C_Markdown.cjs +1 -4
  117. package/dist/C_Markdown.js +1 -3
  118. package/dist/C_Markdown.js.map +1 -0
  119. package/dist/C_Markdown2.js +1 -185
  120. package/dist/C_Markdown2.js.map +1 -1
  121. package/dist/C_NotificationCenter.cjs +1 -20
  122. package/dist/C_NotificationCenter.js +1 -4
  123. package/dist/C_NotificationCenter.js.map +1 -0
  124. package/dist/C_NotificationCenter2.js +1 -1383
  125. package/dist/C_NotificationCenter2.js.map +1 -1
  126. package/dist/C_Progress.cjs +1 -4
  127. package/dist/C_Progress.js +1 -3
  128. package/dist/C_Progress.js.map +1 -0
  129. package/dist/C_Progress2.js +1 -102
  130. package/dist/C_Progress2.js.map +1 -1
  131. package/dist/C_QRCode.cjs +1 -5
  132. package/dist/C_QRCode.js +1 -3
  133. package/dist/C_QRCode.js.map +1 -0
  134. package/dist/C_QRCode2.js +1 -217
  135. package/dist/C_QRCode2.js.map +1 -1
  136. package/dist/C_Signature.cjs +1 -8
  137. package/dist/C_Signature.js +1 -4
  138. package/dist/C_Signature.js.map +1 -0
  139. package/dist/C_Signature2.js +1 -617
  140. package/dist/C_Signature2.js.map +1 -1
  141. package/dist/C_SplitPane.cjs +1 -6
  142. package/dist/C_SplitPane.js +1 -4
  143. package/dist/C_SplitPane.js.map +1 -0
  144. package/dist/C_SplitPane2.js +1 -355
  145. package/dist/C_SplitPane2.js.map +1 -1
  146. package/dist/C_Steps.cjs +1 -4
  147. package/dist/C_Steps.js +1 -3
  148. package/dist/C_Steps.js.map +1 -0
  149. package/dist/C_Steps2.js +1 -81
  150. package/dist/C_Steps2.js.map +1 -1
  151. package/dist/C_Table.cjs +1 -20
  152. package/dist/C_Table.js +1 -6
  153. package/dist/C_Table.js.map +1 -0
  154. package/dist/C_Table2.js +1 -3023
  155. package/dist/C_Table2.js.map +1 -1
  156. package/dist/C_Theme.cjs +1 -5
  157. package/dist/C_Theme.js +1 -4
  158. package/dist/C_Theme.js.map +1 -0
  159. package/dist/C_Theme2.js +1 -63
  160. package/dist/C_Theme2.js.map +1 -1
  161. package/dist/C_Time.cjs +1 -5
  162. package/dist/C_Time.js +1 -3
  163. package/dist/C_Time.js.map +1 -0
  164. package/dist/C_Time2.js +1 -198
  165. package/dist/C_Time2.js.map +1 -1
  166. package/dist/C_Tree.cjs +1 -7
  167. package/dist/C_Tree.js +1 -4
  168. package/dist/C_Tree.js.map +1 -0
  169. package/dist/C_Tree2.js +1 -440
  170. package/dist/C_Tree2.js.map +1 -1
  171. package/dist/C_Upload.cjs +1 -12
  172. package/dist/C_Upload.js +1 -4
  173. package/dist/C_Upload.js.map +1 -0
  174. package/dist/C_Upload2.js +2 -1365
  175. package/dist/C_Upload2.js.map +1 -1
  176. package/dist/C_VideoPlayer.cjs +1 -23
  177. package/dist/C_VideoPlayer.js +1 -3
  178. package/dist/C_VideoPlayer.js.map +1 -0
  179. package/dist/C_VideoPlayer2.js +3 -1932
  180. package/dist/C_VideoPlayer2.js.map +1 -1
  181. package/dist/C_VtableGantt.cjs +1 -6
  182. package/dist/C_VtableGantt.js +1 -4
  183. package/dist/C_VtableGantt.js.map +1 -0
  184. package/dist/C_VtableGantt2.js +1 -872
  185. package/dist/C_VtableGantt2.js.map +1 -1
  186. package/dist/C_WaterFall.cjs +1 -13
  187. package/dist/C_WaterFall.js +1 -3
  188. package/dist/C_WaterFall.js.map +1 -0
  189. package/dist/C_WaterFall2.js +1 -364
  190. package/dist/C_WaterFall2.js.map +1 -1
  191. package/dist/C_WorkFlow.cjs +1 -8
  192. package/dist/C_WorkFlow.js +1 -4
  193. package/dist/C_WorkFlow.js.map +1 -0
  194. package/dist/C_WorkFlow2.js +1 -1983
  195. package/dist/C_WorkFlow2.js.map +1 -1
  196. package/dist/chunk.js +1 -18
  197. package/dist/city.js +1 -4816
  198. package/dist/constants.d.ts +2 -2
  199. package/dist/constants2.d.ts +3 -3
  200. package/dist/constants3.d.ts +3 -3
  201. package/dist/constants4.d.ts +5 -5
  202. package/dist/constants5.d.ts +2 -2
  203. package/dist/data.d.ts +1 -1
  204. package/dist/export-helper.js +1 -9
  205. package/dist/index.cjs +2 -413
  206. package/dist/index.cjs.map +1 -0
  207. package/dist/index.d.cts +1 -2
  208. package/dist/index.d.ts +1 -2
  209. package/dist/index.js +1 -231
  210. package/dist/index.js.map +1 -1
  211. package/dist/index.vue.d.ts +2 -2
  212. package/dist/index10.vue.d.ts +5 -5
  213. package/dist/index12.vue.d.ts +3 -3
  214. package/dist/index13.vue.d.ts +3 -3
  215. package/dist/index14.vue.d.ts +3 -3
  216. package/dist/index16.vue.d.ts +3 -3
  217. package/dist/index3.vue.d.ts +3 -3
  218. package/dist/index5.vue.d.ts +1 -1
  219. package/dist/index7.vue.d.ts +4 -4
  220. package/dist/index8.vue.d.ts +2 -2
  221. package/dist/resolver.cjs +2 -89
  222. package/dist/resolver.cjs.map +1 -0
  223. package/dist/resolver.js +1 -86
  224. package/dist/resolver.js.map +1 -1
  225. package/dist/storage.js +1 -30
  226. package/dist/storage.js.map +1 -1
  227. package/dist/useCollapsePanel.d.ts +2 -2
  228. package/dist/useCropperCore.d.ts +8 -8
  229. package/dist/useDraggableLayout.d.ts +4 -4
  230. package/dist/useDynamicFormState.d.ts +7 -7
  231. package/dist/useEdgeInteraction.d.ts +1 -1
  232. package/dist/useFullscreen.d.ts +2 -2
  233. package/dist/useInfiniteScroll.d.ts +1 -1
  234. package/dist/useModalEdit.d.ts +1 -1
  235. package/dist/useQRCode.d.ts +3 -3
  236. package/dist/useSearchState.d.ts +2 -2
  237. package/dist/useSignatureHistory.d.ts +1 -1
  238. package/dist/useSplitResize.d.ts +6 -6
  239. package/dist/useTimeSelection.d.ts +2 -2
  240. package/dist/useTreeOperations.d.ts +6 -6
  241. package/dist/useWorkflowValidation.d.ts +4 -4
  242. package/package.json +1 -2
  243. package/dist/constants.d.ts.map +0 -1
  244. package/dist/constants2.d.ts.map +0 -1
  245. package/dist/constants3.d.ts.map +0 -1
  246. package/dist/constants4.d.ts.map +0 -1
  247. package/dist/constants5.d.ts.map +0 -1
  248. package/dist/data.d.ts.map +0 -1
  249. package/dist/index.d.cts.map +0 -1
  250. package/dist/index.d.ts.map +0 -1
  251. package/dist/index.vue.d.ts.map +0 -1
  252. package/dist/index10.vue.d.ts.map +0 -1
  253. package/dist/index11.vue.d.ts.map +0 -1
  254. package/dist/index12.vue.d.ts.map +0 -1
  255. package/dist/index13.vue.d.ts.map +0 -1
  256. package/dist/index14.vue.d.ts.map +0 -1
  257. package/dist/index15.vue.d.ts.map +0 -1
  258. package/dist/index16.vue.d.ts.map +0 -1
  259. package/dist/index2.vue.d.ts.map +0 -1
  260. package/dist/index3.vue.d.ts.map +0 -1
  261. package/dist/index4.vue.d.ts.map +0 -1
  262. package/dist/index5.vue.d.ts.map +0 -1
  263. package/dist/index6.vue.d.ts.map +0 -1
  264. package/dist/index7.vue.d.ts.map +0 -1
  265. package/dist/index8.vue.d.ts.map +0 -1
  266. package/dist/index9.vue.d.ts.map +0 -1
  267. package/dist/resolver.d.cts.map +0 -1
  268. package/dist/resolver.d.ts.map +0 -1
  269. package/dist/useCalendarEvents.d.ts.map +0 -1
  270. package/dist/useCollapsePanel.d.ts.map +0 -1
  271. package/dist/useCropperCore.d.ts.map +0 -1
  272. package/dist/useDraggableLayout.d.ts.map +0 -1
  273. package/dist/useDynamicFormState.d.ts.map +0 -1
  274. package/dist/useEdgeInteraction.d.ts.map +0 -1
  275. package/dist/useFullscreen.d.ts.map +0 -1
  276. package/dist/useGlobalSearch.d.ts.map +0 -1
  277. package/dist/useInfiniteScroll.d.ts.map +0 -1
  278. package/dist/useModalEdit.d.ts.map +0 -1
  279. package/dist/useQRCode.d.ts.map +0 -1
  280. package/dist/useSearchState.d.ts.map +0 -1
  281. package/dist/useSignatureHistory.d.ts.map +0 -1
  282. package/dist/useSplitResize.d.ts.map +0 -1
  283. package/dist/useTimeSelection.d.ts.map +0 -1
  284. package/dist/useTreeOperations.d.ts.map +0 -1
  285. package/dist/useWorkflowValidation.d.ts.map +0 -1
@@ -1,873 +1,2 @@
1
- import { t as C_Icon_default } from "./C_Icon2.js";
2
- import { t as export_helper_default } from "./export-helper.js";
3
- import { NButton } from "naive-ui";
4
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeStyle, onMounted, onUnmounted, openBlock, ref, toDisplayString, unref, watch, withCtx } from "vue";
5
-
6
- //#region src/components/C_VtableGantt/data.ts
7
- const commonTheme = {
8
- headerStyle: {
9
- borderColor: "rgba(128, 128, 128, 0.2)",
10
- borderLineWidth: 1,
11
- fontSize: 14,
12
- fontWeight: "bold"
13
- },
14
- bodyStyle: {
15
- borderColor: "rgba(128, 128, 128, 0.2)",
16
- borderLineWidth: [
17
- 1,
18
- 0,
19
- 1,
20
- 0
21
- ],
22
- fontSize: 13
23
- }
24
- };
25
- const presetConfigs = {
26
- basic: {
27
- overscrollBehavior: "none",
28
- headerRowHeight: 40,
29
- rowHeight: 40,
30
- taskListTable: {
31
- columns: [
32
- {
33
- field: "title",
34
- title: "任务名称",
35
- width: 220,
36
- tree: true
37
- },
38
- {
39
- field: "start",
40
- title: "开始时间",
41
- width: 120
42
- },
43
- {
44
- field: "end",
45
- title: "结束时间",
46
- width: 120
47
- },
48
- {
49
- field: "progress",
50
- title: "进度",
51
- width: 80
52
- }
53
- ],
54
- tableWidth: 420,
55
- minTableWidth: 300,
56
- theme: commonTheme
57
- },
58
- frame: {
59
- outerFrameStyle: {
60
- borderLineWidth: 1,
61
- borderColor: "#e1e4e8",
62
- cornerRadius: 6
63
- },
64
- verticalSplitLineMoveable: true,
65
- verticalSplitLine: {
66
- lineColor: "#e1e4e8",
67
- lineWidth: 2
68
- }
69
- },
70
- grid: {
71
- verticalLine: {
72
- lineWidth: 1,
73
- lineColor: "rgba(128, 128, 128, 0.2)"
74
- },
75
- horizontalLine: {
76
- lineWidth: 1,
77
- lineColor: "rgba(128, 128, 128, 0.2)"
78
- }
79
- },
80
- taskBar: {
81
- startDateField: "start",
82
- endDateField: "end",
83
- progressField: "progress",
84
- moveable: true,
85
- resizable: true,
86
- labelText: "{title}",
87
- labelTextStyle: {
88
- fontSize: 12,
89
- textAlign: "left"
90
- },
91
- barStyle: {
92
- width: 18,
93
- barColor: "#1890ff",
94
- completedBarColor: "#52c41a",
95
- cornerRadius: 4,
96
- borderLineWidth: 0
97
- },
98
- milestoneStyle: {
99
- borderColor: "#fa8c16",
100
- borderLineWidth: 1,
101
- fillColor: "#ffd666",
102
- width: 12
103
- }
104
- },
105
- timelineHeader: {
106
- colWidth: 60,
107
- horizontalLine: {
108
- lineWidth: 1,
109
- lineColor: "rgba(128, 128, 128, 0.2)"
110
- },
111
- verticalLine: {
112
- lineWidth: 1,
113
- lineColor: "rgba(128, 128, 128, 0.2)"
114
- },
115
- scales: [{
116
- unit: "week",
117
- step: 1,
118
- format: (date) => `第${date.dateIndex}周`,
119
- style: {
120
- fontSize: 12,
121
- fontWeight: "bold"
122
- }
123
- }, {
124
- unit: "day",
125
- step: 1,
126
- format: (date) => `${date.dateIndex}`,
127
- style: { fontSize: 11 }
128
- }]
129
- },
130
- scrollStyle: {
131
- scrollRailColor: "rgba(246,246,246,0.5)",
132
- visible: "scrolling",
133
- width: 6,
134
- scrollSliderCornerRadius: 2,
135
- scrollSliderColor: "#1890ff"
136
- }
137
- },
138
- project: {
139
- overscrollBehavior: "none",
140
- headerRowHeight: 40,
141
- rowHeight: 40,
142
- taskListTable: {
143
- columns: [
144
- {
145
- field: "title",
146
- title: "任务名称",
147
- width: 200,
148
- tree: true,
149
- editor: "input"
150
- },
151
- {
152
- field: "start",
153
- title: "开始时间",
154
- width: 120,
155
- editor: "date-input"
156
- },
157
- {
158
- field: "end",
159
- title: "结束时间",
160
- width: 120,
161
- editor: "date-input"
162
- },
163
- {
164
- field: "priority",
165
- title: "优先级",
166
- width: 80,
167
- editor: "input"
168
- },
169
- {
170
- field: "progress",
171
- title: "进度%",
172
- width: 80,
173
- editor: "input"
174
- }
175
- ],
176
- tableWidth: 480,
177
- minTableWidth: 350,
178
- maxTableWidth: 800,
179
- theme: commonTheme,
180
- hierarchyExpandLevel: 2
181
- },
182
- frame: {
183
- outerFrameStyle: {
184
- borderLineWidth: 2,
185
- borderColor: "#e1e4e8",
186
- cornerRadius: 8
187
- },
188
- verticalSplitLineMoveable: true,
189
- verticalSplitLine: {
190
- lineColor: "#e1e4e8",
191
- lineWidth: 3
192
- }
193
- },
194
- grid: {
195
- verticalLine: {
196
- lineWidth: 1,
197
- lineColor: "rgba(128, 128, 128, 0.2)"
198
- },
199
- horizontalLine: {
200
- lineWidth: 1,
201
- lineColor: "rgba(128, 128, 128, 0.2)"
202
- }
203
- },
204
- taskBar: {
205
- startDateField: "start",
206
- endDateField: "end",
207
- progressField: "progress",
208
- moveable: true,
209
- resizable: true,
210
- hoverBarStyle: { barOverlayColor: "rgba(24, 144, 255, 0.3)" },
211
- labelText: "{title} {progress}%",
212
- labelTextStyle: {
213
- fontSize: 12,
214
- textAlign: "left",
215
- textOverflow: "ellipsis"
216
- },
217
- barStyle: {
218
- width: 20,
219
- barColor: "#1890ff",
220
- completedBarColor: "#52c41a",
221
- cornerRadius: 6,
222
- borderLineWidth: 0
223
- }
224
- },
225
- timelineHeader: {
226
- colWidth: 60,
227
- horizontalLine: {
228
- lineWidth: 1,
229
- lineColor: "rgba(128, 128, 128, 0.2)"
230
- },
231
- verticalLine: {
232
- lineWidth: 1,
233
- lineColor: "rgba(128, 128, 128, 0.2)"
234
- },
235
- scales: [{
236
- unit: "week",
237
- step: 1,
238
- startOfWeek: "monday",
239
- format: (date) => `第${date.dateIndex}周`,
240
- style: {
241
- fontSize: 13,
242
- fontWeight: "bold",
243
- textAlign: "center"
244
- }
245
- }, {
246
- unit: "day",
247
- step: 1,
248
- format: (date) => `${date.dateIndex}`,
249
- style: {
250
- fontSize: 11,
251
- textAlign: "center"
252
- }
253
- }]
254
- },
255
- rowSeriesNumber: {
256
- title: "序号",
257
- dragOrder: true,
258
- headerStyle: { borderColor: "rgba(128, 128, 128, 0.2)" },
259
- style: { borderColor: "rgba(128, 128, 128, 0.2)" }
260
- },
261
- scrollStyle: {
262
- scrollRailColor: "rgba(246,246,246,0.5)",
263
- visible: "scrolling",
264
- width: 6,
265
- scrollSliderCornerRadius: 2,
266
- scrollSliderColor: "#1890ff"
267
- }
268
- },
269
- timeline: {
270
- overscrollBehavior: "none",
271
- headerRowHeight: 45,
272
- rowHeight: 40,
273
- taskListTable: {
274
- columns: [{
275
- field: "title",
276
- title: "事件名称",
277
- width: 250,
278
- tree: true
279
- }, {
280
- field: "start",
281
- title: "时间",
282
- width: 150
283
- }],
284
- tableWidth: 400,
285
- minTableWidth: 300,
286
- theme: {
287
- headerStyle: { ...commonTheme.headerStyle },
288
- bodyStyle: commonTheme.bodyStyle
289
- }
290
- },
291
- frame: {
292
- outerFrameStyle: {
293
- borderLineWidth: 1,
294
- borderColor: "rgba(128, 128, 128, 0.3)",
295
- cornerRadius: 4
296
- },
297
- verticalSplitLineMoveable: true
298
- },
299
- grid: {
300
- verticalLine: {
301
- lineWidth: 1,
302
- lineColor: "rgba(128, 128, 128, 0.2)"
303
- },
304
- horizontalLine: {
305
- lineWidth: 1,
306
- lineColor: "rgba(128, 128, 128, 0.2)"
307
- }
308
- },
309
- taskBar: {
310
- startDateField: "start",
311
- endDateField: "end",
312
- progressField: "progress",
313
- moveable: true,
314
- resizable: true,
315
- labelText: "{title}",
316
- labelTextStyle: {
317
- fontSize: 12,
318
- textAlign: "left"
319
- },
320
- barStyle: {
321
- width: 22,
322
- barColor: "#722ed1",
323
- completedBarColor: "#b37feb",
324
- cornerRadius: 8,
325
- borderLineWidth: 0
326
- }
327
- },
328
- timelineHeader: {
329
- colWidth: 60,
330
- scales: [{
331
- unit: "month",
332
- step: 1,
333
- format: (date) => `${date.dateIndex}月`,
334
- style: {
335
- fontSize: 13,
336
- fontWeight: "bold"
337
- }
338
- }, {
339
- unit: "day",
340
- step: 1,
341
- format: (date) => `${date.dateIndex}`,
342
- style: { fontSize: 11 }
343
- }]
344
- },
345
- scrollStyle: {
346
- scrollRailColor: "rgba(246,246,246,0.5)",
347
- visible: "scrolling",
348
- width: 6,
349
- scrollSliderCornerRadius: 2,
350
- scrollSliderColor: "#1890ff"
351
- }
352
- },
353
- milestone: {
354
- overscrollBehavior: "none",
355
- headerRowHeight: 40,
356
- rowHeight: 38,
357
- taskListTable: {
358
- columns: [
359
- {
360
- field: "title",
361
- title: "里程碑",
362
- width: 200,
363
- tree: true
364
- },
365
- {
366
- field: "start",
367
- title: "目标日期",
368
- width: 120
369
- },
370
- {
371
- field: "priority",
372
- title: "重要性",
373
- width: 100
374
- }
375
- ],
376
- tableWidth: 400,
377
- minTableWidth: 300,
378
- theme: {
379
- headerStyle: {
380
- ...commonTheme.headerStyle,
381
- borderColor: "#ffa940"
382
- },
383
- bodyStyle: {
384
- ...commonTheme.bodyStyle,
385
- borderColor: "#ffa940"
386
- }
387
- }
388
- },
389
- frame: {
390
- outerFrameStyle: {
391
- borderLineWidth: 2,
392
- borderColor: "#ffa940",
393
- cornerRadius: 6
394
- },
395
- verticalSplitLineMoveable: true
396
- },
397
- grid: {
398
- verticalLine: {
399
- lineWidth: 1,
400
- lineColor: "rgba(255, 168, 64, 0.3)"
401
- },
402
- horizontalLine: {
403
- lineWidth: 1,
404
- lineColor: "rgba(255, 168, 64, 0.3)"
405
- }
406
- },
407
- taskBar: {
408
- startDateField: "start",
409
- endDateField: "start",
410
- labelText: "{title}",
411
- labelTextStyle: {
412
- fontSize: 12,
413
- fontWeight: "bold"
414
- },
415
- barStyle: {
416
- width: 0,
417
- barColor: "transparent"
418
- },
419
- milestoneStyle: {
420
- borderColor: "#fa8c16",
421
- borderLineWidth: 2,
422
- fillColor: "#ffd666",
423
- width: 16
424
- }
425
- },
426
- timelineHeader: {
427
- colWidth: 80,
428
- scales: [{
429
- unit: "month",
430
- step: 1,
431
- format: (date) => `${date.dateIndex}月`,
432
- style: {
433
- fontSize: 13,
434
- fontWeight: "bold"
435
- }
436
- }, {
437
- unit: "week",
438
- step: 1,
439
- format: (date) => `第${date.dateIndex}周`,
440
- style: { fontSize: 11 }
441
- }]
442
- },
443
- scrollStyle: {
444
- scrollRailColor: "rgba(246,246,246,0.5)",
445
- visible: "scrolling",
446
- width: 6,
447
- scrollSliderCornerRadius: 2,
448
- scrollSliderColor: "#1890ff"
449
- }
450
- },
451
- official: {
452
- overscrollBehavior: "none",
453
- headerRowHeight: 40,
454
- rowHeight: 40,
455
- taskListTable: {
456
- columns: [
457
- {
458
- field: "title",
459
- title: "title",
460
- width: 180,
461
- sort: true,
462
- tree: true,
463
- editor: "input"
464
- },
465
- {
466
- field: "start",
467
- title: "start",
468
- width: 120,
469
- sort: true,
470
- editor: "date-input"
471
- },
472
- {
473
- field: "end",
474
- title: "end",
475
- width: 120,
476
- sort: true,
477
- editor: "date-input"
478
- },
479
- {
480
- field: "priority",
481
- title: "priority",
482
- width: 80,
483
- sort: true,
484
- editor: "input"
485
- },
486
- {
487
- field: "progress",
488
- title: "progress",
489
- width: 80,
490
- sort: true,
491
- editor: "input"
492
- }
493
- ],
494
- tableWidth: 460,
495
- minTableWidth: 350,
496
- maxTableWidth: 800,
497
- theme: {
498
- headerStyle: {
499
- ...commonTheme.headerStyle,
500
- fontSize: 18,
501
- color: "red"
502
- },
503
- bodyStyle: {
504
- ...commonTheme.bodyStyle,
505
- fontSize: 16,
506
- color: "#4D4D4D"
507
- }
508
- },
509
- hierarchyExpandLevel: 2
510
- },
511
- frame: {
512
- outerFrameStyle: {
513
- borderLineWidth: 2,
514
- borderColor: "#e1e4e8",
515
- cornerRadius: 8
516
- },
517
- verticalSplitLineMoveable: true,
518
- verticalSplitLine: {
519
- lineColor: "#e1e4e8",
520
- lineWidth: 3
521
- },
522
- horizontalSplitLine: {
523
- lineColor: "#e1e4e8",
524
- lineWidth: 3
525
- }
526
- },
527
- grid: {
528
- verticalLine: {
529
- lineWidth: 1,
530
- lineColor: "rgba(128, 128, 128, 0.2)"
531
- },
532
- horizontalLine: {
533
- lineWidth: 1,
534
- lineColor: "rgba(128, 128, 128, 0.2)"
535
- }
536
- },
537
- taskBar: {
538
- startDateField: "start",
539
- endDateField: "end",
540
- progressField: "progress",
541
- moveable: true,
542
- resizable: true,
543
- hoverBarStyle: { barOverlayColor: "rgba(99, 144, 0, 0.4)" },
544
- labelText: "{title} {progress}%",
545
- labelTextStyle: {
546
- fontSize: 16,
547
- textAlign: "left",
548
- textOverflow: "ellipsis"
549
- },
550
- barStyle: {
551
- width: 20,
552
- barColor: "#ee8800",
553
- completedBarColor: "#91e8e0",
554
- cornerRadius: 8,
555
- borderLineWidth: 1,
556
- borderColor: "black"
557
- },
558
- milestoneStyle: {
559
- borderColor: "red",
560
- borderLineWidth: 1,
561
- fillColor: "green",
562
- width: 15
563
- }
564
- },
565
- timelineHeader: {
566
- backgroundColor: "#EEF1F5",
567
- colWidth: 60,
568
- horizontalLine: {
569
- lineWidth: 1,
570
- lineColor: "#e1e4e8"
571
- },
572
- verticalLine: {
573
- lineWidth: 1,
574
- lineColor: "#e1e4e8"
575
- },
576
- scales: [{
577
- unit: "week",
578
- step: 1,
579
- startOfWeek: "sunday",
580
- format: (date) => `Week ${date.dateIndex}`,
581
- style: {
582
- fontSize: 20,
583
- fontWeight: "bold",
584
- color: "white",
585
- strokeColor: "black",
586
- textAlign: "right",
587
- textBaseline: "bottom",
588
- textStick: true
589
- }
590
- }, {
591
- unit: "day",
592
- step: 1,
593
- format: (date) => date.dateIndex.toString(),
594
- style: {
595
- fontSize: 20,
596
- fontWeight: "bold",
597
- color: "white",
598
- strokeColor: "black",
599
- textAlign: "right",
600
- textBaseline: "bottom"
601
- }
602
- }]
603
- },
604
- markLine: [{
605
- date: "2024-07-28",
606
- style: {
607
- lineWidth: 1,
608
- lineColor: "blue",
609
- lineDash: [8, 4]
610
- }
611
- }, {
612
- date: "2024-08-17",
613
- style: {
614
- lineWidth: 2,
615
- lineColor: "red",
616
- lineDash: [8, 4]
617
- }
618
- }],
619
- rowSeriesNumber: {
620
- title: "行号",
621
- dragOrder: true,
622
- headerStyle: { borderColor: "rgba(128, 128, 128, 0.2)" },
623
- style: { borderColor: "rgba(128, 128, 128, 0.2)" }
624
- },
625
- scrollStyle: {
626
- scrollRailColor: "rgba(246,246,246,0.5)",
627
- visible: "scrolling",
628
- width: 6,
629
- scrollSliderCornerRadius: 2,
630
- scrollSliderColor: "#1890ff"
631
- }
632
- }
633
- };
634
-
635
- //#endregion
636
- //#region src/components/C_VtableGantt/index.vue?vue&type=script&setup=true&lang.ts
637
- const _hoisted_1 = { class: "c-vtable-gantt-wrapper" };
638
- const _hoisted_2 = {
639
- key: 0,
640
- class: "gantt-toolbar"
641
- };
642
- const _hoisted_3 = { class: "toolbar-left" };
643
- const _hoisted_4 = { class: "gantt-title" };
644
- const _hoisted_5 = { class: "toolbar-right" };
645
- var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
646
- name: "C_VtableGantt",
647
- __name: "index",
648
- props: {
649
- data: { default: () => [] },
650
- options: { default: () => ({}) },
651
- preset: { default: "basic" },
652
- height: { default: "600px" },
653
- title: { default: "" },
654
- showToolbar: {
655
- type: Boolean,
656
- default: true
657
- },
658
- showFullscreenButton: {
659
- type: Boolean,
660
- default: true
661
- },
662
- theme: { default: "light" }
663
- },
664
- emits: [
665
- "ganttCreated",
666
- "taskClick",
667
- "taskChange"
668
- ],
669
- setup(__props, { expose: __expose, emit: __emit }) {
670
- const props = __props;
671
- const emit = __emit;
672
- const ganttContainerRef = ref();
673
- const ganttInstance = ref();
674
- const isFullscreen = ref(false);
675
- const containerHeight = computed(() => typeof props.height === "number" ? `${props.height}px` : props.height);
676
- const deepMerge = (target, source, seen = /* @__PURE__ */ new WeakMap()) => {
677
- if (!isObject(target)) return source;
678
- if (!isObject(source)) return target;
679
- if (seen.has(source)) return seen.get(source);
680
- return createMergeResult(target, source, seen);
681
- };
682
- const isObject = (value) => {
683
- return value !== null && typeof value === "object";
684
- };
685
- const isSpecialObject = (value) => {
686
- return value instanceof Date || value instanceof RegExp;
687
- };
688
- const createMergeResult = (target, source, seen) => {
689
- const result = Array.isArray(target) ? [...target] : { ...target };
690
- seen.set(source, result);
691
- for (const key in source) {
692
- if (!source.hasOwnProperty(key)) continue;
693
- const sourceValue = source[key];
694
- result[key] = isObject(sourceValue) && !Array.isArray(sourceValue) && !isSpecialObject(sourceValue) ? deepMerge(target[key] || {}, sourceValue, seen) : sourceValue;
695
- }
696
- return result;
697
- };
698
- const processData = (data) => {
699
- return data.map((item) => ({
700
- ...item,
701
- title: item.title || `任务${item.id}`,
702
- children: item.children ? processData(item.children) : void 0
703
- }));
704
- };
705
- const getThemeConfig = (isDark) => ({
706
- underlayBackgroundColor: isDark ? "#1e1e1e" : "#ffffff",
707
- timelineHeaderBg: isDark ? "#2d2d2d" : "#EEF1F5",
708
- gridBg: isDark ? "#1e1e1e" : "#ffffff",
709
- lineColor: isDark ? "rgba(255, 255, 255, 0.1)" : "rgba(128, 128, 128, 0.2)",
710
- textColor: isDark ? "#ffffff" : "#000000"
711
- });
712
- const applyThemeToTimelineHeader = (timelineHeader, themeColors) => ({
713
- ...timelineHeader,
714
- backgroundColor: themeColors.timelineHeaderBg,
715
- horizontalLine: {
716
- ...timelineHeader?.horizontalLine,
717
- lineColor: themeColors.lineColor
718
- },
719
- verticalLine: {
720
- ...timelineHeader?.verticalLine,
721
- lineColor: themeColors.lineColor
722
- },
723
- scales: timelineHeader?.scales?.map((scale) => ({
724
- ...scale,
725
- style: {
726
- ...scale.style,
727
- color: themeColors.textColor
728
- }
729
- }))
730
- });
731
- const applyThemeToGrid = (grid, themeColors) => ({
732
- ...grid,
733
- backgroundColor: themeColors.gridBg,
734
- horizontalLine: {
735
- ...grid?.horizontalLine,
736
- lineColor: themeColors.lineColor
737
- },
738
- verticalLine: {
739
- ...grid?.verticalLine,
740
- lineColor: themeColors.lineColor
741
- }
742
- });
743
- const buildGanttOptions = (finalConfig, processedData, tableTheme, themeColors) => ({
744
- ...finalConfig,
745
- records: processedData,
746
- underlayBackgroundColor: themeColors.underlayBackgroundColor,
747
- taskListTable: {
748
- ...finalConfig.taskListTable,
749
- theme: tableTheme
750
- },
751
- timelineHeader: applyThemeToTimelineHeader(finalConfig.timelineHeader, themeColors),
752
- grid: applyThemeToGrid(finalConfig.grid, themeColors)
753
- });
754
- const bindGanttEvents = (instance) => {
755
- instance.on("click_cell", (args) => {
756
- const { record, event } = args || {};
757
- if (record) emit("taskClick", record, event);
758
- });
759
- instance.on("change_data", (args) => {
760
- const { record, changes } = args || {};
761
- if (record && changes) emit("taskChange", record, changes);
762
- });
763
- };
764
- const initGantt = async () => {
765
- if (!ganttContainerRef.value) return;
766
- try {
767
- const { Gantt } = await import("@visactor/vtable-gantt");
768
- const { themes } = await import("@visactor/vtable");
769
- const isDark = props.theme === "dark";
770
- const finalConfig = deepMerge(presetConfigs[props.preset] || presetConfigs.basic, props.options);
771
- const processedData = processData(props.data || []);
772
- if (ganttInstance.value) ganttInstance.value.release();
773
- const ganttOptions = buildGanttOptions(finalConfig, processedData, isDark ? themes.DARK : themes.DEFAULT, getThemeConfig(isDark));
774
- ganttInstance.value = new Gantt(ganttContainerRef.value, ganttOptions);
775
- bindGanttEvents(ganttInstance.value);
776
- emit("ganttCreated", ganttInstance.value);
777
- } catch (error) {
778
- console.error("甘特图初始化失败:", error);
779
- }
780
- };
781
- const toggleFullscreen = async () => {
782
- if (!ganttContainerRef.value) return;
783
- try {
784
- if (!document.fullscreenElement) {
785
- await ganttContainerRef.value.requestFullscreen();
786
- isFullscreen.value = true;
787
- } else {
788
- await document.exitFullscreen();
789
- isFullscreen.value = false;
790
- }
791
- setTimeout(() => ganttInstance.value?.resize?.(), 100);
792
- } catch (error) {
793
- console.warn("全屏切换失败:", error);
794
- isFullscreen.value = !isFullscreen.value;
795
- nextTick(() => ganttInstance.value?.resize?.());
796
- }
797
- };
798
- const handleFullscreenChange = () => {
799
- isFullscreen.value = !!document.fullscreenElement;
800
- nextTick(() => ganttInstance.value?.resize?.());
801
- };
802
- const updateData = (newData) => {
803
- if (ganttInstance.value && newData) try {
804
- ganttInstance.value.setRecords(processData(newData));
805
- } catch (error) {
806
- console.warn("更新数据失败:", error);
807
- }
808
- };
809
- const updateOptions = (newOptions) => {
810
- if (ganttInstance.value && newOptions) try {
811
- ganttInstance.value.updateOption(newOptions);
812
- } catch (error) {
813
- console.warn("更新配置失败:", error);
814
- }
815
- };
816
- const destroyGantt = () => {
817
- if (ganttInstance.value) try {
818
- ganttInstance.value.release();
819
- } catch (error) {
820
- console.warn("销毁甘特图失败:", error);
821
- } finally {
822
- ganttInstance.value = void 0;
823
- }
824
- };
825
- watch(() => props.data, (newData) => {
826
- if (newData && ganttInstance.value) updateData(newData);
827
- }, { deep: true });
828
- watch(() => [props.options, props.preset], () => nextTick(() => initGantt()), { deep: true });
829
- watch(() => props.theme, () => nextTick(() => initGantt()));
830
- onMounted(() => {
831
- document.addEventListener("fullscreenchange", handleFullscreenChange);
832
- nextTick(() => setTimeout(() => initGantt(), 100));
833
- });
834
- onUnmounted(() => {
835
- document.removeEventListener("fullscreenchange", handleFullscreenChange);
836
- destroyGantt();
837
- });
838
- __expose({
839
- ganttInstance,
840
- updateData,
841
- updateOptions,
842
- toggleFullscreen
843
- });
844
- return (_ctx, _cache) => {
845
- return openBlock(), createElementBlock("div", _hoisted_1, [_ctx.showToolbar ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("div", _hoisted_3, [createElementVNode("span", _hoisted_4, toDisplayString(_ctx.title || "甘特图"), 1)]), createElementVNode("div", _hoisted_5, [_ctx.showFullscreenButton ? (openBlock(), createBlock(unref(NButton), {
846
- key: 0,
847
- size: "small",
848
- onClick: toggleFullscreen
849
- }, {
850
- icon: withCtx(() => [createVNode(C_Icon_default, {
851
- name: isFullscreen.value ? "carbon:minimize" : "carbon:maximize",
852
- size: 16,
853
- color: "currentColor"
854
- }, null, 8, ["name"])]),
855
- default: withCtx(() => [createTextVNode(" " + toDisplayString(isFullscreen.value ? "退出全屏" : "全屏"), 1)]),
856
- _: 1
857
- })) : createCommentVNode("v-if", true)])])) : createCommentVNode("v-if", true), createElementVNode("div", {
858
- ref_key: "ganttContainerRef",
859
- ref: ganttContainerRef,
860
- class: "gantt-container",
861
- style: normalizeStyle({ height: containerHeight.value })
862
- }, null, 4)]);
863
- };
864
- }
865
- });
866
-
867
- //#endregion
868
- //#region src/components/C_VtableGantt/index.vue
869
- var C_VtableGantt_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f7a9da66"]]);
870
-
871
- //#endregion
872
- export { presetConfigs as n, C_VtableGantt_default as t };
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{NButton as n}from"naive-ui";import{computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,nextTick as d,normalizeStyle as f,onMounted as p,onUnmounted as m,openBlock as h,ref as g,toDisplayString as _,unref as v,watch as y,withCtx as b}from"vue";const x={headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:1,fontSize:14,fontWeight:`bold`},bodyStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:[1,0,1,0],fontSize:13}},S={basic:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:220,tree:!0},{field:`start`,title:`开始时间`,width:120},{field:`end`,title:`结束时间`,width:120},{field:`progress`,title:`进度`,width:80}],tableWidth:420,minTableWidth:300,theme:x},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`#e1e4e8`,cornerRadius:6},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:2}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:18,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:4,borderLineWidth:0},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:1,fillColor:`#ffd666`,width:12}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:12,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},project:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:200,tree:!0,editor:`input`},{field:`start`,title:`开始时间`,width:120,editor:`date-input`},{field:`end`,title:`结束时间`,width:120,editor:`date-input`},{field:`priority`,title:`优先级`,width:80,editor:`input`},{field:`progress`,title:`进度%`,width:80,editor:`input`}],tableWidth:480,minTableWidth:350,maxTableWidth:800,theme:x,hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(24, 144, 255, 0.3)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:12,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:6,borderLineWidth:0}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,startOfWeek:`monday`,format:e=>`第${e.dateIndex}周`,style:{fontSize:13,fontWeight:`bold`,textAlign:`center`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11,textAlign:`center`}}]},rowSeriesNumber:{title:`序号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},timeline:{overscrollBehavior:`none`,headerRowHeight:45,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`事件名称`,width:250,tree:!0},{field:`start`,title:`时间`,width:150}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...x.headerStyle},bodyStyle:x.bodyStyle}},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`rgba(128, 128, 128, 0.3)`,cornerRadius:4},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:22,barColor:`#722ed1`,completedBarColor:`#b37feb`,cornerRadius:8,borderLineWidth:0}},timelineHeader:{colWidth:60,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},milestone:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:38,taskListTable:{columns:[{field:`title`,title:`里程碑`,width:200,tree:!0},{field:`start`,title:`目标日期`,width:120},{field:`priority`,title:`重要性`,width:100}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...x.headerStyle,borderColor:`#ffa940`},bodyStyle:{...x.bodyStyle,borderColor:`#ffa940`}}},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#ffa940`,cornerRadius:6},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`},horizontalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`}},taskBar:{startDateField:`start`,endDateField:`start`,labelText:`{title}`,labelTextStyle:{fontSize:12,fontWeight:`bold`},barStyle:{width:0,barColor:`transparent`},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:2,fillColor:`#ffd666`,width:16}},timelineHeader:{colWidth:80,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},official:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`title`,width:180,sort:!0,tree:!0,editor:`input`},{field:`start`,title:`start`,width:120,sort:!0,editor:`date-input`},{field:`end`,title:`end`,width:120,sort:!0,editor:`date-input`},{field:`priority`,title:`priority`,width:80,sort:!0,editor:`input`},{field:`progress`,title:`progress`,width:80,sort:!0,editor:`input`}],tableWidth:460,minTableWidth:350,maxTableWidth:800,theme:{headerStyle:{...x.headerStyle,fontSize:18,color:`red`},bodyStyle:{...x.bodyStyle,fontSize:16,color:`#4D4D4D`}},hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3},horizontalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(99, 144, 0, 0.4)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:16,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#ee8800`,completedBarColor:`#91e8e0`,cornerRadius:8,borderLineWidth:1,borderColor:`black`},milestoneStyle:{borderColor:`red`,borderLineWidth:1,fillColor:`green`,width:15}},timelineHeader:{backgroundColor:`#EEF1F5`,colWidth:60,horizontalLine:{lineWidth:1,lineColor:`#e1e4e8`},verticalLine:{lineWidth:1,lineColor:`#e1e4e8`},scales:[{unit:`week`,step:1,startOfWeek:`sunday`,format:e=>`Week ${e.dateIndex}`,style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`,textStick:!0}},{unit:`day`,step:1,format:e=>e.dateIndex.toString(),style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`}}]},markLine:[{date:`2024-07-28`,style:{lineWidth:1,lineColor:`blue`,lineDash:[8,4]}},{date:`2024-08-17`,style:{lineWidth:2,lineColor:`red`,lineDash:[8,4]}}],rowSeriesNumber:{title:`行号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}}},C={class:`c-vtable-gantt-wrapper`},w={key:0,class:`gantt-toolbar`},T={class:`toolbar-left`},E={class:`gantt-title`},D={class:`toolbar-right`};var O=t(u({name:`C_VtableGantt`,__name:`index`,props:{data:{default:()=>[]},options:{default:()=>({})},preset:{default:`basic`},height:{default:`600px`},title:{default:``},showToolbar:{type:Boolean,default:!0},showFullscreenButton:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ganttCreated`,`taskClick`,`taskChange`],setup(t,{expose:u,emit:x}){let O=t,k=x,A=g(),j=g(),M=g(!1),N=r(()=>typeof O.height==`number`?`${O.height}px`:O.height),P=(e,t,n=new WeakMap)=>F(e)?F(t)?n.has(t)?n.get(t):L(e,t,n):e:t,F=e=>typeof e==`object`&&!!e,I=e=>e instanceof Date||e instanceof RegExp,L=(e,t,n)=>{let r=Array.isArray(e)?[...e]:{...e};n.set(t,r);for(let i in t){if(!t.hasOwnProperty(i))continue;let a=t[i];r[i]=F(a)&&!Array.isArray(a)&&!I(a)?P(e[i]||{},a,n):a}return r},R=e=>e.map(e=>({...e,title:e.title||`任务${e.id}`,children:e.children?R(e.children):void 0})),z=e=>({underlayBackgroundColor:e?`#1e1e1e`:`#ffffff`,timelineHeaderBg:e?`#2d2d2d`:`#EEF1F5`,gridBg:e?`#1e1e1e`:`#ffffff`,lineColor:e?`rgba(255, 255, 255, 0.1)`:`rgba(128, 128, 128, 0.2)`,textColor:e?`#ffffff`:`#000000`}),B=(e,t)=>({...e,backgroundColor:t.timelineHeaderBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor},scales:e?.scales?.map(e=>({...e,style:{...e.style,color:t.textColor}}))}),V=(e,t)=>({...e,backgroundColor:t.gridBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor}}),H=(e,t,n,r)=>({...e,records:t,underlayBackgroundColor:r.underlayBackgroundColor,taskListTable:{...e.taskListTable,theme:n},timelineHeader:B(e.timelineHeader,r),grid:V(e.grid,r)}),U=e=>{e.on(`click_cell`,e=>{let{record:t,event:n}=e||{};t&&k(`taskClick`,t,n)}),e.on(`change_data`,e=>{let{record:t,changes:n}=e||{};t&&n&&k(`taskChange`,t,n)})},W=async()=>{if(A.value)try{let{Gantt:e}=await import(`@visactor/vtable-gantt`),{themes:t}=await import(`@visactor/vtable`),n=O.theme===`dark`,r=P(S[O.preset]||S.basic,O.options),i=R(O.data||[]);j.value&&j.value.release();let a=H(r,i,n?t.DARK:t.DEFAULT,z(n));j.value=new e(A.value,a),U(j.value),k(`ganttCreated`,j.value)}catch(e){console.error(`甘特图初始化失败:`,e)}},G=async()=>{if(A.value)try{document.fullscreenElement?(await document.exitFullscreen(),M.value=!1):(await A.value.requestFullscreen(),M.value=!0),setTimeout(()=>j.value?.resize?.(),100)}catch(e){console.warn(`全屏切换失败:`,e),M.value=!M.value,d(()=>j.value?.resize?.())}},K=()=>{M.value=!!document.fullscreenElement,d(()=>j.value?.resize?.())},q=e=>{if(j.value&&e)try{j.value.setRecords(R(e))}catch(e){console.warn(`更新数据失败:`,e)}},J=e=>{if(j.value&&e)try{j.value.updateOption(e)}catch(e){console.warn(`更新配置失败:`,e)}},Y=()=>{if(j.value)try{j.value.release()}catch(e){console.warn(`销毁甘特图失败:`,e)}finally{j.value=void 0}};return y(()=>O.data,e=>{e&&j.value&&q(e)},{deep:!0}),y(()=>[O.options,O.preset],()=>d(()=>W()),{deep:!0}),y(()=>O.theme,()=>d(()=>W())),p(()=>{document.addEventListener(`fullscreenchange`,K),d(()=>setTimeout(()=>W(),100))}),m(()=>{document.removeEventListener(`fullscreenchange`,K),Y()}),u({ganttInstance:j,updateData:q,updateOptions:J,toggleFullscreen:G}),(t,r)=>(h(),o(`div`,C,[t.showToolbar?(h(),o(`div`,w,[s(`div`,T,[s(`span`,E,_(t.title||`甘特图`),1)]),s(`div`,D,[t.showFullscreenButton?(h(),i(v(n),{key:0,size:`small`,onClick:G},{icon:b(()=>[l(e,{name:M.value?`carbon:minimize`:`carbon:maximize`,size:16,color:`currentColor`},null,8,[`name`])]),default:b(()=>[c(` `+_(M.value?`退出全屏`:`全屏`),1)]),_:1})):a(`v-if`,!0)])])):a(`v-if`,!0),s(`div`,{ref_key:`ganttContainerRef`,ref:A,class:`gantt-container`,style:f({height:N.value})},null,4)]))}}),[[`__scopeId`,`data-v-f7a9da66`]]);export{S as n,O as t};
873
2
  //# sourceMappingURL=C_VtableGantt2.js.map