vxe-gantt 0.0.1 → 0.0.3

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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +72 -0
  3. package/README.ja-JP.md +72 -0
  4. package/README.md +82 -2
  5. package/README.zh-TW.md +73 -0
  6. package/es/components.js +12 -0
  7. package/es/gantt/index.js +13 -0
  8. package/es/gantt/src/emits.js +4 -0
  9. package/es/gantt/src/gantt-body.js +103 -0
  10. package/es/gantt/src/gantt-chart.js +77 -0
  11. package/es/gantt/src/gantt-header.js +70 -0
  12. package/es/gantt/src/gantt-view.js +768 -0
  13. package/es/gantt/src/gantt.js +1746 -0
  14. package/es/gantt/src/grid-emits.js +16 -0
  15. package/es/gantt/src/grid-props.js +7 -0
  16. package/es/gantt/src/props.js +2 -0
  17. package/es/gantt/src/table-emits.js +97 -0
  18. package/es/gantt/src/table-props.js +298 -0
  19. package/es/gantt/src/util.js +12 -0
  20. package/es/gantt/style.css +599 -0
  21. package/es/gantt/style.min.css +1 -0
  22. package/es/index.esm.js +3 -0
  23. package/es/style.css +1 -0
  24. package/es/style.min.css +1 -0
  25. package/es/ui/index.js +52 -0
  26. package/es/ui/src/comp.js +2 -0
  27. package/es/ui/src/dom.js +169 -0
  28. package/es/ui/src/log.js +4 -0
  29. package/es/ui/src/utils.js +41 -0
  30. package/es/ui/src/vn.js +1 -0
  31. package/es/ui/style.css +0 -0
  32. package/es/ui/style.min.css +0 -0
  33. package/es/vxe-gantt/index.js +3 -0
  34. package/es/vxe-gantt/style.css +599 -0
  35. package/es/vxe-gantt/style.min.css +1 -0
  36. package/es/vxe-ui/index.js +3 -0
  37. package/es/vxe-ui/style.css +0 -0
  38. package/es/vxe-ui/style.min.css +0 -0
  39. package/helper/vetur/attributes.json +1 -0
  40. package/helper/vetur/tags.json +1 -0
  41. package/lib/components.js +42 -0
  42. package/lib/components.min.js +1 -0
  43. package/lib/gantt/index.js +20 -0
  44. package/lib/gantt/index.min.js +1 -0
  45. package/lib/gantt/src/emits.js +8 -0
  46. package/lib/gantt/src/emits.min.js +1 -0
  47. package/lib/gantt/src/gantt-body.js +118 -0
  48. package/lib/gantt/src/gantt-body.min.js +1 -0
  49. package/lib/gantt/src/gantt-chart.js +94 -0
  50. package/lib/gantt/src/gantt-chart.min.js +1 -0
  51. package/lib/gantt/src/gantt-header.js +78 -0
  52. package/lib/gantt/src/gantt-header.min.js +1 -0
  53. package/lib/gantt/src/gantt-view.js +810 -0
  54. package/lib/gantt/src/gantt-view.min.js +1 -0
  55. package/lib/gantt/src/gantt.js +1997 -0
  56. package/lib/gantt/src/gantt.min.js +1 -0
  57. package/lib/gantt/src/grid-emits.js +8 -0
  58. package/lib/gantt/src/grid-emits.min.js +1 -0
  59. package/lib/gantt/src/grid-props.js +24 -0
  60. package/lib/gantt/src/grid-props.min.js +1 -0
  61. package/lib/gantt/src/props.js +13 -0
  62. package/lib/gantt/src/props.min.js +1 -0
  63. package/lib/gantt/src/table-emits.js +7 -0
  64. package/lib/gantt/src/table-emits.min.js +1 -0
  65. package/lib/gantt/src/table-props.js +306 -0
  66. package/lib/gantt/src/table-props.min.js +1 -0
  67. package/lib/gantt/src/util.js +19 -0
  68. package/lib/gantt/src/util.min.js +1 -0
  69. package/lib/gantt/style/index.js +1 -0
  70. package/lib/gantt/style/style.css +599 -0
  71. package/lib/gantt/style/style.min.css +1 -0
  72. package/lib/index.common.js +21 -0
  73. package/lib/index.umd.js +6731 -0
  74. package/lib/index.umd.min.js +1 -0
  75. package/lib/style.css +1 -0
  76. package/lib/style.min.css +1 -0
  77. package/lib/ui/index.js +69 -0
  78. package/lib/ui/index.min.js +1 -0
  79. package/lib/ui/src/comp.js +8 -0
  80. package/lib/ui/src/comp.min.js +1 -0
  81. package/lib/ui/src/dom.js +217 -0
  82. package/lib/ui/src/dom.min.js +1 -0
  83. package/lib/ui/src/log.js +10 -0
  84. package/lib/ui/src/log.min.js +1 -0
  85. package/lib/ui/src/utils.js +59 -0
  86. package/lib/ui/src/utils.min.js +1 -0
  87. package/lib/ui/src/vn.js +1 -0
  88. package/lib/ui/src/vn.min.js +0 -0
  89. package/lib/ui/style/index.js +1 -0
  90. package/lib/ui/style/style.css +0 -0
  91. package/lib/ui/style/style.min.css +0 -0
  92. package/lib/vxe-gantt/index.js +21 -0
  93. package/lib/vxe-gantt/index.min.js +1 -0
  94. package/lib/vxe-gantt/style/index.js +1 -0
  95. package/lib/vxe-gantt/style/style.css +599 -0
  96. package/lib/vxe-gantt/style/style.min.css +1 -0
  97. package/lib/vxe-ui/index.js +21 -0
  98. package/lib/vxe-ui/index.min.js +1 -0
  99. package/lib/vxe-ui/style/index.js +1 -0
  100. package/lib/vxe-ui/style/style.css +0 -0
  101. package/lib/vxe-ui/style/style.min.css +0 -0
  102. package/package.json +58 -21
  103. package/packages/components.ts +19 -0
  104. package/packages/gantt/index.ts +17 -0
  105. package/packages/gantt/src/emits.ts +7 -0
  106. package/packages/gantt/src/gantt-body.ts +119 -0
  107. package/packages/gantt/src/gantt-chart.ts +92 -0
  108. package/packages/gantt/src/gantt-header.ts +79 -0
  109. package/packages/gantt/src/gantt-view.ts +840 -0
  110. package/packages/gantt/src/gantt.ts +1869 -0
  111. package/packages/gantt/src/grid-emits.ts +19 -0
  112. package/packages/gantt/src/grid-props.ts +23 -0
  113. package/packages/gantt/src/props.ts +13 -0
  114. package/packages/gantt/src/table-emits.ts +109 -0
  115. package/packages/gantt/src/table-props.ts +304 -0
  116. package/packages/gantt/src/util.ts +15 -0
  117. package/packages/index.ts +4 -0
  118. package/packages/ui/index.ts +58 -0
  119. package/packages/ui/src/comp.ts +3 -0
  120. package/packages/ui/src/dom.ts +196 -0
  121. package/packages/ui/src/log.ts +6 -0
  122. package/packages/ui/src/utils.ts +50 -0
  123. package/packages/ui/src/vn.ts +0 -0
  124. package/styles/all.scss +3 -0
  125. package/styles/base.scss +2 -0
  126. package/styles/components/gantt-module/all.scss +1 -0
  127. package/styles/components/gantt-module/gantt-chart.scss +46 -0
  128. package/styles/components/gantt.scss +586 -0
  129. package/styles/components/ui.scss +0 -0
  130. package/styles/cssvar.scss +0 -0
  131. package/styles/helpers/baseMixin.scss +96 -0
  132. package/styles/helpers/baseVar.scss +4 -0
  133. package/styles/helpers/placement.scss +39 -0
  134. package/styles/theme/base.scss +7 -0
  135. package/styles/theme/dark.scss +7 -0
  136. package/styles/theme/light.scss +7 -0
  137. package/styles/variable.scss +0 -0
  138. package/types/all.d.ts +16 -0
  139. package/types/index.d.ts +4 -0
@@ -0,0 +1,586 @@
1
+ @use '../helpers/baseMixin.scss';
2
+ @use './gantt-module/all.scss';
3
+
4
+ .vxe-gantt {
5
+ position: relative;
6
+ overflow: auto;
7
+ display: flex;
8
+ flex-direction: column;
9
+ &.is--loading {
10
+ &:before {
11
+ content: "";
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ width: 100%;
16
+ height: 100%;
17
+ z-index: 99;
18
+ user-select: none;
19
+ background-color: var(--vxe-ui-loading-background-color);
20
+ }
21
+ & > .vxe-gantt-view {
22
+ .vxe-loading {
23
+ background-color: transparent;
24
+ }
25
+ }
26
+ }
27
+ &.is--maximize {
28
+ position: fixed;
29
+ top: 0;
30
+ left: 0;
31
+ width: 100%;
32
+ height: 100%;
33
+ padding: 0.5em 1em;
34
+ background-color: var(--vxe-ui-layout-background-color);
35
+ }
36
+ &.is--split-drag {
37
+ cursor: col-resize;
38
+ .vxe-gantt--table-wrapper,
39
+ .vxe-gantt--view-wrapper {
40
+ &::after {
41
+ content: "";
42
+ position: absolute;
43
+ top: 0;
44
+ left: 0;
45
+ width: 100%;
46
+ height: 100%;
47
+ z-index: 1;
48
+ background: transparent;
49
+ user-select: none;
50
+ }
51
+ }
52
+ }
53
+ .vxe-gantt--form-wrapper,
54
+ .vxe-gantt--top-wrapper,
55
+ .vxe-gantt--bottom-wrapper {
56
+ position: relative;
57
+ }
58
+ .vxe-gantt--gantt-container {
59
+ position: relative;
60
+ display: flex;
61
+ flex-direction: row;
62
+ }
63
+ .vxe-gantt--left-wrapper,
64
+ .vxe-gantt--right-wrapper {
65
+ flex-shrink: 0;
66
+ overflow: auto;
67
+ outline: 0;
68
+ }
69
+ .vxe-gantt--table-wrapper,
70
+ .vxe-gantt--view-wrapper {
71
+ display: none;
72
+ position: relative;
73
+ flex-grow: 1;
74
+ overflow: hidden;
75
+ }
76
+ .vxe-gantt--view-split-bar {
77
+ flex-shrink: 0;
78
+ cursor: col-resize;
79
+ width: var(--vxe-ui-gantt-view-split-bar-width);
80
+ background-color: var(--vxe-ui-gantt-view-split-bar-background-color);
81
+ }
82
+ &.show--left {
83
+ .vxe-gantt--table-wrapper {
84
+ display: block;
85
+ }
86
+ &.show--right {
87
+ .vxe-gantt--table-wrapper {
88
+ flex-grow: unset;
89
+ flex-shrink: 0;
90
+ width: 30%;
91
+ }
92
+ }
93
+ }
94
+ &.show--right {
95
+ .vxe-gantt--view-wrapper {
96
+ display: block;
97
+ }
98
+ }
99
+ }
100
+
101
+ .vxe-gantt--layout-body-wrapper {
102
+ display: flex;
103
+ flex-direction: row;
104
+ overflow: auto;
105
+ flex-grow: 1;
106
+ }
107
+ .vxe-gantt--layout-body-content-wrapper {
108
+ flex-grow: 1;
109
+ overflow: hidden;
110
+ }
111
+ .vxe-gantt--layout-header-wrapper,
112
+ .vxe-gantt--layout-footer-wrapper,
113
+ .vxe-gantt--layout-aside-left-wrapper,
114
+ .vxe-gantt--layout-aside-left-wrapper {
115
+ flex-shrink: 0;
116
+ overflow: auto;
117
+ }
118
+
119
+ /*边框线*/
120
+ .vxe-gantt--border-line {
121
+ position: absolute;
122
+ top: 0;
123
+ left: 0;
124
+ width: 100%;
125
+ height: 100%;
126
+ z-index: 10;
127
+ pointer-events: none;
128
+ border: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
129
+ }
130
+ .vxe-gantt {
131
+ &.border--default,
132
+ &.border--full,
133
+ &.border--outer {
134
+ .vxe-gantt-view--header-wrapper {
135
+ background-color: var(--vxe-ui-table-header-background-color);
136
+ }
137
+ }
138
+ &.border--full {
139
+ .vxe-gantt-view--header-column,
140
+ .vxe-gantt-view--body-column,
141
+ .vxe-gantt-view--footer-column {
142
+ background-image: linear-gradient(var(--vxe-ui-table-border-color), var(--vxe-ui-table-border-color)), linear-gradient(var(--vxe-ui-table-border-color), var(--vxe-ui-table-border-color));
143
+ background-repeat: no-repeat;
144
+ background-size: var(--vxe-ui-table-border-width) 100%, 100% var(--vxe-ui-table-border-width);
145
+ background-position: right top, right bottom;
146
+ }
147
+ }
148
+ &.border--default,
149
+ &.border--full,
150
+ &.border--outer,
151
+ &.border--inner {
152
+ .vxe-gantt-view--scroll-y-top-corner,
153
+ .vxe-gantt-view--scroll-y-bottom-corner {
154
+ &::before {
155
+ content: "";
156
+ position: absolute;
157
+ top: 0;
158
+ left: 0;
159
+ width: 100%;
160
+ height: 100%;
161
+ z-index: 1;
162
+ border-width: 0;
163
+ border-style: solid;
164
+ border-color: var(--vxe-ui-table-border-color);
165
+ }
166
+ }
167
+ .vxe-gantt-view--scroll-y-top-corner {
168
+ &::before {
169
+ border-bottom-width: var(--vxe-ui-table-border-width);
170
+ }
171
+ }
172
+ .vxe-gantt-view--scroll-y-bottom-corner {
173
+ border-top: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
174
+ }
175
+ .vxe-gantt-view--scroll-x-wrapper {
176
+ &::after {
177
+ content: "";
178
+ position: absolute;
179
+ left: 0;
180
+ width: 100%;
181
+ height: 100%;
182
+ z-index: 1;
183
+ pointer-events: none;
184
+ }
185
+ }
186
+ &.sx-pos--top {
187
+ .vxe-gantt-view--scroll-x-wrapper {
188
+ &::after {
189
+ top: 0;
190
+ border-bottom: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
191
+ }
192
+ }
193
+ }
194
+ &.sx-pos--bottom {
195
+ .vxe-gantt-view--scroll-x-wrapper {
196
+ &::after {
197
+ bottom: 0;
198
+ height: calc(100% + var(--vxe-ui-table-border-width));
199
+ border-top: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
200
+ }
201
+ }
202
+ }
203
+ }
204
+
205
+ &.border--default,
206
+ &.border--full {
207
+ .vxe-gantt-view--scroll-y-top-corner {
208
+ &::before {
209
+ border-left-width: var(--vxe-ui-table-border-width);
210
+ border-right-width: var(--vxe-ui-table-border-width);
211
+ }
212
+ }
213
+ .vxe-gantt-view--scroll-y-bottom-corner {
214
+ &::before {
215
+ border-left-width: var(--vxe-ui-table-border-width);
216
+ border-right-width: var(--vxe-ui-table-border-width);
217
+ }
218
+ }
219
+ &.sy-pos--right {
220
+ .vxe-gantt-view--scroll-y-top-corner,
221
+ .vxe-gantt-view--scroll-y-bottom-corner {
222
+ &::before {
223
+ width: calc(100% + 1px);
224
+ left: -1px;
225
+ }
226
+ }
227
+ }
228
+ .vxe-gantt-view--scroll-y-wrapper {
229
+ &::after {
230
+ content: "";
231
+ position: absolute;
232
+ top: 0;
233
+ width: 100%;
234
+ height: 100%;
235
+ z-index: 1;
236
+ pointer-events: none;
237
+ }
238
+ }
239
+ &.sy-pos--left {
240
+ .vxe-gantt-view--scroll-y-wrapper {
241
+ &::after {
242
+ left: 0;
243
+ border-right: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
244
+ }
245
+ }
246
+ }
247
+ &.sy-pos--right {
248
+ .vxe-gantt-view--scroll-y-wrapper {
249
+ &::after {
250
+ right: 0;
251
+ width: calc(100% + var(--vxe-ui-table-border-width));
252
+ border-left: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
253
+ }
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ /*分割条*/
260
+ .vxe-gantt--view-split-bar {
261
+ position: relative;
262
+ user-select: none;
263
+ }
264
+ .vxe-gantt--view-split-bar-handle {
265
+ position: absolute;
266
+ top: 0;
267
+ left: 0;
268
+ width: 100%;
269
+ height: 100%;
270
+ z-index: 13;
271
+ }
272
+ .vxe-gantt--view-split-bar-btn-wrapper {
273
+ display: flex;
274
+ flex-direction: column;
275
+ align-items: center;
276
+ position: absolute;
277
+ left: 50%;
278
+ top: 50%;
279
+ transform: translate(-50%, -50%);
280
+ z-index: 15;
281
+ pointer-events: none;
282
+ }
283
+ .vxe-gantt--view-split-bar-left-btn,
284
+ .vxe-gantt--view-split-bar-right-btn {
285
+ display: flex;
286
+ flex-direction: row;
287
+ align-items: center;
288
+ justify-content: center;
289
+ font-size: 0.5em;
290
+ height: var(--vxe-ui-gantt-view-split-bar-height);
291
+ width: var(--vxe-ui-gantt-view-split-bar-width);
292
+ color: var(--vxe-ui-layout-background-color);
293
+ border-radius: var(--vxe-ui-base-border-radius);
294
+ background-color: var(--vxe-ui-gantt-view-handle-background-color);
295
+ border: 1px solid var(--vxe-ui-input-border-color);
296
+ pointer-events: all;
297
+ cursor: pointer;
298
+ user-select: none;
299
+ @include baseMixin.createAnimationTransition(all, 0.1s);
300
+ &:hover {
301
+ background-color: var(--vxe-ui-font-primary-lighten-color);
302
+ }
303
+ &:active {
304
+ transform: scale(0.9);
305
+ }
306
+ }
307
+ .vxe-gantt--view-split-bar-right-btn {
308
+ margin-top: 1em;
309
+ }
310
+ .vxe-gantt--resizable-split-tip {
311
+ display: none;
312
+ position: absolute;
313
+ top: 0;
314
+ left: 0;
315
+ width: 1px;
316
+ height: 100%;
317
+ z-index: 18;
318
+ pointer-events: none;
319
+ user-select: none;
320
+ cursor: col-resize;
321
+ &:before {
322
+ content: "";
323
+ display: block;
324
+ height: 100%;
325
+ background-color: var(--vxe-ui-table-resizable-drag-line-color);
326
+ }
327
+ }
328
+ .vxe-gantt--resizable-split-tip-number {
329
+ position: absolute;
330
+ top: 0;
331
+ left: 0;
332
+ user-select: none;
333
+ pointer-events: none;
334
+ }
335
+ .vxe-gantt--resizable-split-number-left,
336
+ .vxe-gantt--resizable-split-number-right {
337
+ position: absolute;
338
+ padding: 0.25em 0.25em;
339
+ font-size: 12px;
340
+ border-radius: var(--vxe-ui-border-radius);
341
+ white-space: nowrap;
342
+ color: #ffffff;
343
+ background-color: var(--vxe-ui-table-resizable-drag-line-color);
344
+ }
345
+ .vxe-gantt--resizable-split-number-left {
346
+ right: 0;
347
+ }
348
+ .vxe-gantt--resizable-split-number-right {
349
+ left: 1px;
350
+ }
351
+
352
+ /*滚动条*/
353
+ .vxe-gantt {
354
+ &.is--loading {
355
+ & > .vxe-gantt-view--scroll-x-virtual {
356
+ visibility: hidden;
357
+ }
358
+ & > .vxe-gantt-view--layout-wrapper {
359
+ & > .vxe-gantt-view--scroll-y-virtual {
360
+ visibility: hidden;
361
+ }
362
+ }
363
+ }
364
+ .vxe-gantt-view--scroll-x-virtual {
365
+ height: 0;
366
+ }
367
+ .vxe-gantt-view--scroll-y-virtual {
368
+ width: 0;
369
+ }
370
+ .vxe-gantt-view--scroll-x-virtual,
371
+ .vxe-gantt-view--scroll-y-virtual {
372
+ visibility: hidden;
373
+ position: relative;
374
+ flex-shrink: 0;
375
+ z-index: 7;
376
+ }
377
+ .vxe-gantt-view--scroll-x-handle,
378
+ .vxe-gantt-view--scroll-y-handle,
379
+ .vxe-gantt-view--scroll-x-wrapper,
380
+ .vxe-gantt-view--scroll-y-wrapper,
381
+ .vxe-gantt-view--scroll-y-top-corner,
382
+ .vxe-gantt-view--scroll-y-bottom-corner,
383
+ .vxe-gantt-view--scroll-x-left-corner,
384
+ .vxe-gantt-view--scroll-x-right-corner {
385
+ position: absolute;
386
+ }
387
+ .vxe-gantt-view--scroll-x-handle,
388
+ .vxe-gantt-view--scroll-x-wrapper {
389
+ width: 100%;
390
+ left: 0;
391
+ bottom: 0;
392
+ }
393
+ .vxe-gantt-view--scroll-x-handle {
394
+ overflow-y: hidden;
395
+ overflow-x: scroll;
396
+ height: 18px;
397
+ }
398
+ .vxe-gantt-view--scroll-x-wrapper {
399
+ height: 100%;
400
+ }
401
+ .vxe-gantt-view--scroll-y-handle,
402
+ .vxe-gantt-view--scroll-y-wrapper {
403
+ width: 100%;
404
+ height: 100%;
405
+ right: 0;
406
+ top: 0;
407
+ }
408
+ .vxe-gantt-view--scroll-y-handle {
409
+ overflow-y: scroll;
410
+ overflow-x: hidden;
411
+ width: 18px;
412
+ height: 100%;
413
+ }
414
+ .vxe-gantt-view--scroll-x-space {
415
+ height: 1px;
416
+ }
417
+ .vxe-gantt-view--scroll-y-space {
418
+ width: 1px;
419
+ }
420
+ .vxe-gantt-view--scroll-x-left-corner,
421
+ .vxe-gantt-view--scroll-x-right-corner,
422
+ .vxe-gantt-view--scroll-y-top-corner,
423
+ .vxe-gantt-view--scroll-y-bottom-corner {
424
+ display: none;
425
+ position: absolute;
426
+ }
427
+ .vxe-gantt-view--scroll-x-left-corner,
428
+ .vxe-gantt-view--scroll-x-right-corner {
429
+ bottom: 0;
430
+ width: 0;
431
+ height: 100%;
432
+ &::before {
433
+ content: "";
434
+ position: absolute;
435
+ top: 0;
436
+ left: 0;
437
+ width: 100%;
438
+ height: 100%;
439
+ z-index: 1;
440
+ border-width: var(--vxe-ui-table-border-width);
441
+ border-style: solid;
442
+ border-color: var(--vxe-ui-table-border-color);
443
+ }
444
+ }
445
+ .vxe-gantt-view--scroll-x-left-corner {
446
+ left: 0;
447
+ }
448
+ .vxe-gantt-view--scroll-x-right-corner {
449
+ right: 0;
450
+ }
451
+ &.sy-pos--right {
452
+ .vxe-gantt-view--scroll-x-right-corner {
453
+ right: 1px;
454
+ &::before {
455
+ border-right: 0;
456
+ }
457
+ }
458
+ }
459
+ &.sx-pos--bottom {
460
+ .vxe-gantt-view--scroll-x-right-corner {
461
+ bottom: 1px;
462
+ &::before {
463
+ border-bottom: 0;
464
+ }
465
+ }
466
+ }
467
+ .vxe-gantt-view--scroll-y-top-corner {
468
+ background-color: var(--vxe-ui-table-header-background-color);
469
+ }
470
+ .vxe-gantt-view--scroll-y-top-corner,
471
+ .vxe-gantt-view--scroll-y-bottom-corner {
472
+ top: 0;
473
+ right: 0;
474
+ width: 100%;
475
+ height: 0;
476
+ }
477
+ .vxe-gantt-view--scroll-y-bottom-corner {
478
+ margin-top: -1px;
479
+ }
480
+ }
481
+
482
+ .vxe-gantt-view--layout-wrapper {
483
+ display: flex;
484
+ flex-direction: row;
485
+ background-color: var(--vxe-ui-layout-background-color)
486
+ }
487
+ .vxe-gantt-view--viewport-wrapper {
488
+ position: relative;
489
+ overflow: hidden;
490
+ flex-grow: 1;
491
+ }
492
+
493
+ .vxe-gantt-view--render-vars {
494
+ width: 0;
495
+ height: 0;
496
+ overflow: hidden;
497
+ }
498
+ .vxe-gantt-view--column-info {
499
+ width: var(--vxe-ui-gantt-view-column-width);
500
+ }
501
+
502
+ // 任务视图
503
+ .vxe-gantt-view {
504
+ flex-grow: 1;
505
+ overflow: hidden;
506
+ .vxe-body--x-space {
507
+ width: 100%;
508
+ height: 1px;
509
+ margin-bottom: -1px;
510
+ }
511
+ .vxe-body--y-space {
512
+ width: 0;
513
+ float: left;
514
+ }
515
+ }
516
+ .vxe-gantt-view--header-table {
517
+ height: 100%;
518
+ }
519
+ .vxe-gantt-view--header-table,
520
+ .vxe-gantt-view--body-table {
521
+ border: 0;
522
+ border-spacing: 0;
523
+ border-collapse: separate;
524
+ table-layout: fixed;
525
+ col {
526
+ width: var(--vxe-ui-gantt-view-column-width);
527
+ }
528
+ }
529
+ .vxe-gantt-view--header-wrapper,
530
+ .vxe-gantt-view--body-wrapper {
531
+ overflow: hidden;
532
+ }
533
+ .vxe-gantt-view--header-inner-wrapper {
534
+ overflow-y: hidden;
535
+ overflow-x: scroll;
536
+ }
537
+ .vxe-gantt-view--body-inner-wrapper {
538
+ overflow-y: auto;
539
+ overflow-x: auto;
540
+ }
541
+ .vxe-gantt-view--header-inner-wrapper,
542
+ .vxe-gantt-view--body-inner-wrapper {
543
+ position: relative;
544
+ width: 100%;
545
+ height: 100%;
546
+ scrollbar-width: none;
547
+ -ms-overflow-style: none;
548
+ -webkit-overflow-scrolling: touch;
549
+ }
550
+ .vxe-gantt-view--header-column {
551
+ text-align: center;
552
+ font-size: 1em;
553
+ }
554
+ .vxe-gantt-view--body-column {
555
+ height: 48px;
556
+ }
557
+ .vxe-gantt-view--header-column,
558
+ .vxe-gantt-view--body-column,
559
+ .vxe-gantt-view--footer-column {
560
+ position: relative;
561
+ overflow: hidden;
562
+ text-overflow: ellipsis;
563
+ white-space: nowrap;
564
+ }
565
+
566
+ .vxe-gantt-view {
567
+ &.mode--day {
568
+ .vxe-gantt-view--header-column {
569
+ height: 50%;
570
+ }
571
+ }
572
+ }
573
+
574
+ .vxe-gantt {
575
+ font-size: var(--vxe-ui-font-size-default);
576
+ &.size--medium {
577
+ font-size: var(--vxe-ui-font-size-medium);
578
+ }
579
+ &.size--small {
580
+ font-size: var(--vxe-ui-font-size-small);
581
+ }
582
+ &.size--mini {
583
+ font-size: var(--vxe-ui-font-size-mini);
584
+ }
585
+ }
586
+
File without changes
File without changes
@@ -0,0 +1,96 @@
1
+ @mixin createAnimationTransition ($property, $duration: .1s, $func: ease-in-out) {
2
+ transition: $property $duration $func;
3
+ }
4
+
5
+ @mixin createCheckboxIcon {
6
+ .vxe-checkbox--icon {
7
+ font-size: 1.22em;
8
+ }
9
+ .vxe-checkbox--icon {
10
+ color: var(--vxe-ui-input-border-color);
11
+ vertical-align: middle;
12
+ font-weight: 700;
13
+ user-select: none;
14
+ }
15
+ &.is--checked,
16
+ &.is--indeterminate {
17
+ color: var(--vxe-ui-font-primary-color);
18
+ .vxe-checkbox--icon {
19
+ color: var(--vxe-ui-font-primary-color);
20
+ }
21
+ }
22
+ &:not(.is--disabled) {
23
+ cursor: pointer;
24
+ &:hover {
25
+ .vxe-checkbox--icon {
26
+ color: var(--vxe-ui-font-primary-color);
27
+ }
28
+ }
29
+ }
30
+ &.is--hidden {
31
+ cursor: default;
32
+ }
33
+ &.is--disabled {
34
+ color: var(--vxe-ui-font-disabled-color);
35
+ cursor: not-allowed;
36
+ .vxe-checkbox--icon {
37
+ color: var(--vxe-ui-input-disabled-color);
38
+ }
39
+ }
40
+ .vxe-checkbox--label {
41
+ padding-left: 0.5em;
42
+ vertical-align: middle;
43
+ }
44
+ }
45
+
46
+ @mixin createRadioIcon {
47
+ cursor: pointer;
48
+ .vxe-radio--icon {
49
+ font-size: 1.26em;
50
+ }
51
+ .vxe-radio--icon {
52
+ color: var(--vxe-ui-input-border-color);
53
+ border-radius: 50%;
54
+ vertical-align: middle;
55
+ font-weight: 700;
56
+ user-select: none;
57
+ }
58
+ &.is--checked {
59
+ color: var(--vxe-ui-font-primary-color);
60
+ .vxe-radio--icon {
61
+ color: var(--vxe-ui-font-primary-color);
62
+ }
63
+ }
64
+ &:not(.is--disabled) {
65
+ cursor: pointer;
66
+ &:hover {
67
+ .vxe-radio--icon {
68
+ color: var(--vxe-ui-font-primary-color);
69
+ }
70
+ }
71
+ }
72
+ &.is--disabled {
73
+ color: var(--vxe-ui-font-disabled-color);
74
+ cursor: not-allowed;
75
+ .vxe-radio--icon {
76
+ color: var(--vxe-ui-input-disabled-color);
77
+ }
78
+ }
79
+ .vxe-radio--label {
80
+ padding-left: 0.5em;
81
+ vertical-align: middle;
82
+ }
83
+ }
84
+
85
+ @mixin createEmptyMask {
86
+ &::after {
87
+ content: "";
88
+ position: absolute;
89
+ top: 0;
90
+ left: 0;
91
+ width: 100%;
92
+ height: 100%;
93
+ z-index: 1;
94
+ user-select: none;
95
+ }
96
+ }
@@ -0,0 +1,4 @@
1
+ // 24 栅格布局
2
+ $colSpanList: 4.16667%, 8.33333%, 12.5%, 16.66667%, 20.83333%, 25%, 29.16667%, 33.33333%,
3
+ 37.5%, 41.66667%, 45.83333%, 50%, 54.16667%, 58.33333%, 62.5%, 66.66667%,
4
+ 70.83333%, 75%, 79.16667%, 83.33333%, 87.5%, 91.66667%, 95.83333%, 100%;
@@ -0,0 +1,39 @@
1
+ @use './baseMixin.scss';
2
+
3
+ @mixin createPlacementPanel {
4
+ display: none;
5
+ position: absolute;
6
+ left: 0;
7
+ padding: 4px 0;
8
+ color: var(--vxe-ui-font-color);
9
+ text-align: left;
10
+ &:not(.is--transfer) {
11
+ min-width: 100%;
12
+ }
13
+ &.is--transfer {
14
+ position: fixed;
15
+ }
16
+ &.ani--leave {
17
+ display: block;
18
+ opacity: 0;
19
+ transform: scaleY(0.5);
20
+ transition: transform .3s cubic-bezier(.23,1,.32,1), opacity .3s cubic-bezier(.23,1,.32,1);
21
+ transform-origin: center top;
22
+ backface-visibility: hidden;
23
+ &[placement="top"] {
24
+ transform-origin: center bottom;
25
+ }
26
+ }
27
+ &.ani--enter {
28
+ opacity: 1;
29
+ transform: scaleY(1);
30
+ & > div {
31
+ &::after {
32
+ display: none;
33
+ }
34
+ }
35
+ }
36
+ & > div {
37
+ @include baseMixin.createEmptyMask();
38
+ }
39
+ }