@dssp/project 0.0.31 → 0.0.32

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 (52) hide show
  1. package/client/pages/lib/select2-component.ts +21 -16
  2. package/client/pages/project/component/project-update-header.ts +16 -13
  3. package/client/pages/project/project-detail.ts +74 -60
  4. package/client/pages/project/project-plan-management.ts +39 -29
  5. package/client/pages/project/project-schedule.ts +4 -3
  6. package/client/pages/project/project-setting-list.ts +9 -9
  7. package/client/pages/project/project-update.ts +53 -29
  8. package/dist-client/pages/lib/select2-component.js +21 -16
  9. package/dist-client/pages/lib/select2-component.js.map +1 -1
  10. package/dist-client/pages/project/component/project-update-header.js +16 -13
  11. package/dist-client/pages/project/component/project-update-header.js.map +1 -1
  12. package/dist-client/pages/project/project-detail.js +74 -60
  13. package/dist-client/pages/project/project-detail.js.map +1 -1
  14. package/dist-client/pages/project/project-plan-management.js +39 -29
  15. package/dist-client/pages/project/project-plan-management.js.map +1 -1
  16. package/dist-client/pages/project/project-schedule.js +4 -3
  17. package/dist-client/pages/project/project-schedule.js.map +1 -1
  18. package/dist-client/pages/project/project-setting-list.js +9 -9
  19. package/dist-client/pages/project/project-setting-list.js.map +1 -1
  20. package/dist-client/pages/project/project-update.js +53 -29
  21. package/dist-client/pages/project/project-update.js.map +1 -1
  22. package/dist-client/tsconfig.tsbuildinfo +1 -1
  23. package/dist-server/controllers/{project-to-excel.js → export-tasks.js} +1 -1
  24. package/dist-server/controllers/export-tasks.js.map +1 -0
  25. package/dist-server/controllers/import-task.d.ts +1 -17
  26. package/dist-server/controllers/import-task.js +24 -14
  27. package/dist-server/controllers/import-task.js.map +1 -1
  28. package/dist-server/controllers/parse-excel.d.ts +4 -0
  29. package/dist-server/controllers/parse-excel.js +75 -0
  30. package/dist-server/controllers/parse-excel.js.map +1 -0
  31. package/dist-server/controllers/types.d.ts +18 -0
  32. package/dist-server/controllers/types.js +3 -0
  33. package/dist-server/controllers/types.js.map +1 -0
  34. package/dist-server/routes.js +2 -2
  35. package/dist-server/routes.js.map +1 -1
  36. package/dist-server/service/project/project-mutation.d.ts +2 -1
  37. package/dist-server/service/project/project-mutation.js +52 -24
  38. package/dist-server/service/project/project-mutation.js.map +1 -1
  39. package/dist-server/service/task/task.d.ts +1 -0
  40. package/dist-server/service/task/task.js +5 -0
  41. package/dist-server/service/task/task.js.map +1 -1
  42. package/dist-server/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +3 -3
  44. package/server/controllers/import-task.ts +25 -31
  45. package/server/controllers/parse-excel.ts +86 -0
  46. package/server/controllers/types.ts +20 -0
  47. package/server/routes.ts +1 -1
  48. package/server/service/project/project-mutation.ts +40 -24
  49. package/server/service/task/task.ts +4 -0
  50. package/dist-server/controllers/project-to-excel.js.map +0 -1
  51. /package/dist-server/controllers/{project-to-excel.d.ts → export-tasks.d.ts} +0 -0
  52. /package/server/controllers/{project-to-excel.ts → export-tasks.ts} +0 -0
@@ -6,17 +6,19 @@ export class Select2Component extends LitElement {
6
6
  static styles = css`
7
7
  div[select-container] {
8
8
  position: relative;
9
- width: 300px;
10
- border: 1px solid #000;
11
- border-radius: 6px;
12
- padding: 4px 16px;
9
+ border: 1px solid rgba(51,51,51,.20);
10
+ border-radius: 5px;
11
+ padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);
13
12
  font-size: 14px;
14
13
  color: var(--md-sys-color-primary);
15
14
  }
15
+ div[select-container]:focus {
16
+ border: 1px solid #1f7fd9;
17
+ }
16
18
 
17
19
  div[dropdown] {
18
20
  border: 1px solid #ccc;
19
- padding: 5px;
21
+ padding: var(--spacing-small, 4px);
20
22
  cursor: pointer;
21
23
  }
22
24
 
@@ -24,9 +26,10 @@ export class Select2Component extends LitElement {
24
26
  position: absolute;
25
27
  left: 0;
26
28
  top: 30px;
27
- width: 100%;
29
+ min-width: 50%;
28
30
  border: 1px solid #ccc;
29
- background-color: white;
31
+ background-color: var(--md-sys-color-surface-tint);
32
+ color:var(--md-sys-color-on-primary);
30
33
  max-height: 150px;
31
34
  overflow-y: auto;
32
35
  display: block;
@@ -34,42 +37,44 @@ export class Select2Component extends LitElement {
34
37
  }
35
38
 
36
39
  div[option] {
37
- padding: 10px;
40
+ padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);
38
41
  cursor: pointer;
39
- border-bottom: 1px solid #ccc;
42
+ border-bottom: 1px solid rgba(0,0,0,.4);
40
43
  }
41
44
  div[option]:last-child {
42
45
  border-bottom: none;
43
46
  }
44
47
 
45
48
  div[option]:hover {
46
- background-color: #f0f0f0;
49
+ background-color: var(--md-sys-color-tertiary-container);
47
50
  }
48
51
 
49
52
  div[option][selected] {
50
- background-color: #d3f9d8;
53
+ background-color: var(--md-sys-color-tertiary-container);
54
+ font-weight: bold;
55
+ color:var(--md-sys-color-on-primary);
51
56
  }
52
57
 
53
58
  div[selected-tags] {
54
59
  display: flex;
55
60
  flex-wrap: wrap;
56
- gap: 5px;
57
- margin-top: 10px;
61
+ gap: var(--spacing-small, 4px);
62
+ margin-top: var(--spacing-small, 4px);
58
63
  }
59
64
 
60
65
  div[tag] {
61
66
  background-color: #2e79be;
62
67
  color: white;
63
- padding: 5px 10px;
68
+ padding: var(--spacing-tiny, 2px) var(--spacing-medium, 8px);
64
69
  border-radius: 20px;
65
- font-size: 13px;
70
+ font-size: 12px;
66
71
  display: inline-flex;
67
72
  align-items: center;
68
73
  cursor: pointer;
69
74
  }
70
75
 
71
76
  span[tag-close] {
72
- margin-left: 8px;
77
+ margin-left: var(--spacing-small, 4px);
73
78
  }
74
79
  `
75
80
 
@@ -11,11 +11,13 @@ class ProjectUpdateHeader extends LitElement {
11
11
  css`
12
12
  div[header] {
13
13
  display: flex;
14
- margin: 0px 20px;
14
+ margin: 0px var(--spacing-large, 12px);
15
15
 
16
16
  h2 {
17
- flex: 0.5;
17
+ flex: 1;
18
+ margin-bottom: var(--spacing-medium, 8px);
18
19
  color: #3f71a0;
20
+ font-size:18px;
19
21
  }
20
22
  }
21
23
 
@@ -23,23 +25,24 @@ class ProjectUpdateHeader extends LitElement {
23
25
  display: flex;
24
26
  align-items: center;
25
27
  justify-content: end;
26
- flex: 0.5;
28
+ flex: 1;
29
+ padding-top: var(--spacing-medium, 8px);
27
30
 
28
31
  md-elevated-button {
29
- margin: 0px 3px;
32
+ margin: 0 var(--spacing-small, 4px);
30
33
 
31
- --md-elevated-button-container-height: 35px;
34
+ --md-elevated-button-container-height: 32px;
32
35
  --md-elevated-button-label-text-size: 16px;
33
36
  --md-elevated-button-container-color: #0595e5;
34
37
 
35
- --md-elevated-button-label-text-color: #fff;
36
- --md-elevated-button-hover-label-text-color: #fff;
37
- --md-elevated-button-pressed-label-text-color: #fff;
38
- --md-elevated-button-focus-label-text-color: #fff;
39
- --md-elevated-button-icon-color: #fff;
40
- --md-elevated-button-hover-icon-color: #fff;
41
- --md-elevated-button-pressed-icon-color: #fff;
42
- --md-elevated-button-focus-icon-color: #fff;
38
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
39
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
40
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
41
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
42
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
43
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
44
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
45
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
43
46
 
44
47
  &[green] {
45
48
  --md-elevated-button-container-color: #42b382;
@@ -37,11 +37,11 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
37
37
  css`
38
38
  :host {
39
39
  display: grid;
40
- grid-template-rows: 75px auto;
40
+ grid-template-rows: 55px auto;
41
41
  color: #4e5055;
42
42
 
43
43
  width: 100%;
44
- background-color: #f7f7f7;
44
+ background-color: var(--md-sys-color-background, #f6f6f6);
45
45
  overflow-y: auto;
46
46
 
47
47
  --grid-record-emphasized-background-color: red;
@@ -50,8 +50,9 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
50
50
 
51
51
  md-outlined-button {
52
52
  --md-outlined-button-container-height: 30px;
53
- --md-outlined-button-trailing-space: 15px;
54
- --md-outlined-button-leading-space: 15px;
53
+ --md-outlined-button-trailing-space: var(--spacing-medium, 8px);
54
+ --md-outlined-button-leading-space: var(--spacing-medium, 8px);
55
+ --md-sys-color-outline: rgba(51,51,51,.20);
55
56
  }
56
57
 
57
58
  *[bold] {
@@ -60,11 +61,12 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
60
61
 
61
62
  div[header] {
62
63
  display: flex;
63
- margin: 0px 20px;
64
+ margin: 0px var(--spacing-large, 12px);
64
65
 
65
66
  h2 {
66
67
  flex: 0.5;
67
68
  color: #3f71a0;
69
+ font-size:18px;
68
70
  }
69
71
 
70
72
  div[button-container] {
@@ -74,32 +76,33 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
74
76
  flex: 0.5;
75
77
 
76
78
  md-elevated-button {
77
- margin: 0px 3px;
79
+ margin: 0 var(--spacing-small, 4px);
78
80
 
79
- --md-elevated-button-container-height: 35px;
81
+ --md-elevated-button-container-height: 32px;
80
82
  --md-elevated-button-label-text-size: 16px;
81
83
  --md-elevated-button-container-color: #0595e5;
82
84
 
83
- --md-elevated-button-label-text-color: #fff;
84
- --md-elevated-button-hover-label-text-color: #fff;
85
- --md-elevated-button-pressed-label-text-color: #fff;
86
- --md-elevated-button-focus-label-text-color: #fff;
87
- --md-elevated-button-icon-color: #fff;
88
- --md-elevated-button-hover-icon-color: #fff;
89
- --md-elevated-button-pressed-icon-color: #fff;
90
- --md-elevated-button-focus-icon-color: #fff;
85
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
86
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
87
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
88
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
89
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
90
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
91
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
92
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
91
93
  }
92
94
  }
93
95
  }
94
96
 
95
97
  div[body] {
96
98
  display: flex;
97
- margin: 0px 25px 25px 25px;
98
- gap: 10px;
99
+ margin: var(--spacing-large, 12px);
100
+ margin-top:0;
101
+ gap: var(--spacing-medium, 8px);
99
102
 
100
103
  h3 {
101
104
  color: #2e79be;
102
- font-size: 18px;
105
+ font-size: 16px;
103
106
  margin: 0px;
104
107
 
105
108
  a {
@@ -111,16 +114,16 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
111
114
  & > div {
112
115
  display: flex;
113
116
  flex: 1;
114
- gap: 10px;
117
+ gap: var(--spacing-medium, 8px);
115
118
  flex-direction: column;
116
119
 
117
120
  & > div {
118
121
  display: flex;
119
122
  flex-direction: column;
120
- background-color: #ffffff;
123
+ background-color: var(--md-sys-color-on-primary);
121
124
  border: 1px solid #cccccc80;
122
- gap: 10px;
123
- padding: 15px;
125
+ gap: var(--spacing-medium, 8px);
126
+ padding: var(--spacing-large, 12px);
124
127
  border-radius: 5px;
125
128
  }
126
129
 
@@ -128,25 +131,24 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
128
131
  div[content-1] {
129
132
  display: flex;
130
133
  align-items: center;
131
- gap: 15px;
134
+ gap: var(--spacing-medium, 8px);
135
+ font-size: 14px;
132
136
 
133
137
  img {
134
138
  width: 42%;
135
139
  height: auto;
136
140
  aspect-ratio: 1920 / 1080;
141
+ border: 1px solid #cccccc80;
137
142
  }
138
143
  img[no-image] {
139
144
  object-fit: contain;
140
145
  opacity: 0.5;
141
146
  }
142
-
143
- div[row] {
144
- line-height: 25px;
145
- }
146
147
  }
147
148
  div[content-2] {
148
149
  height: 65px;
149
150
  overflow-y: auto;
151
+ font-size: 14px;
150
152
  }
151
153
  }
152
154
 
@@ -167,15 +169,21 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
167
169
  }
168
170
 
169
171
  div[subject] {
170
- margin-bottom: 7px;
172
+ margin-bottom: var(--spacing-small, 4px);
171
173
  }
172
174
 
173
175
  div[building-container] {
174
176
  display: block;
175
177
 
176
178
  & > * {
177
- margin-right: 10px;
178
- margin-bottom: 7px;
179
+ margin-right: var(--spacing-medium, 8px);
180
+ margin-bottom: var(--spacing-medium, 8px);
181
+ }
182
+ md-outlined-button {
183
+ --md-outlined-button-container-height: 30px;
184
+ --md-outlined-button-trailing-space: var(--spacing-medium, 8px);
185
+ --md-outlined-button-leading-space: var(--spacing-medium, 8px);
186
+ --md-sys-color-outline: rgba(51,51,51,.20);
179
187
  }
180
188
  }
181
189
  }
@@ -184,10 +192,10 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
184
192
  div[state] {
185
193
  display: grid;
186
194
  grid-template-columns: 0.95fr 0.95fr 1.1fr;
187
- gap: 15px;
195
+ gap: var(--spacing-large, 12px);
188
196
 
189
197
  span[progress] {
190
- max-width: 170px;
198
+ max-width: 150px;
191
199
  text-align: center;
192
200
  display: flex;
193
201
  justify-self: center;
@@ -198,7 +206,7 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
198
206
  font-weight: bold;
199
207
  color: #2e79be;
200
208
  font-size: 12px;
201
- margin-top: 5px;
209
+ margin-top: var(--spacing-small, 4px);
202
210
  }
203
211
  & > div[week] {
204
212
  color: #06b5af;
@@ -207,15 +215,20 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
207
215
  span[weather] {
208
216
  display: flex;
209
217
  flex-direction: column;
210
- gap: 5px;
211
- margin-left: 10px;
218
+ gap: var(--spacing-small, 4px);
219
+ margin-left: var(--spacing-medium, 8px);
220
+ font-size:14px;
212
221
 
213
222
  & > div {
214
223
  display: flex;
215
224
  justify-content: space-between;
225
+ --md-icon-size: 18px;
226
+ margin-right: var(--spacing-small, 4px);
216
227
 
217
228
  & > span {
218
229
  display: flex;
230
+ align-item:center;
231
+ var(--spacing-tiny, 2px);
219
232
  }
220
233
  }
221
234
  }
@@ -223,10 +236,10 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
223
236
  div[inspection] {
224
237
  display: grid;
225
238
  grid-template-columns: 1.4fr 0.9fr 0.9fr 0.9fr 0.9fr;
226
- margin-top: 5px;
239
+ margin-top: var(--spacing-small, 4px);
227
240
  background: #f6f6f6;
228
241
  border-radius: 7px;
229
- padding: 7px 0px;
242
+ padding: var(--spacing-small, 4px) 0px;
230
243
 
231
244
  & > span {
232
245
  display: flex;
@@ -250,7 +263,8 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
250
263
  & > span[name] {
251
264
  flex-direction: row;
252
265
  text-align: right;
253
- gap: 10px;
266
+ gap: var(--spacing-medium, 8px);
267
+ line-height:1.3;
254
268
 
255
269
  md-icon {
256
270
  width: 40px;
@@ -262,7 +276,7 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
262
276
  }
263
277
  }
264
278
  div[notice] {
265
- margin-top: 7px;
279
+ margin-top: var(--spacing-medium, 8px);
266
280
 
267
281
  div[name] {
268
282
  margin-left: 4px;
@@ -270,9 +284,9 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
270
284
  div[content] {
271
285
  background-color: #ebc8321a;
272
286
  border-radius: 10px;
273
- padding: 10px;
287
+ padding: var(--spacing-medium, 8px);
274
288
  font-size: 14px;
275
- margin-top: 6px;
289
+ margin-top: var(--spacing-small, 4px);
276
290
  }
277
291
  }
278
292
  }
@@ -306,21 +320,21 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
306
320
 
307
321
  thead {
308
322
  position: sticky;
309
- top: 2px;
323
+ top: var(--spacing-tiny, 2px);
310
324
  background-color: #464651;
311
- color: #fff;
325
+ color: var(--md-sys-color-on-primary);
312
326
  z-index: 1;
313
327
  }
314
328
 
315
329
  thead th {
316
- padding: 5px;
330
+ padding: var(--spacing-tiny, 2px) var(--spacing-small, 4px);
317
331
  font-size: 15px;
318
332
  text-wrap: pretty;
319
333
  }
320
334
 
321
335
  tbody td {
322
- border-bottom: 1px solid #cccccc;
323
- padding: 5px 3px;
336
+ border-bottom: 1px solid rgba(51,51,51,.20);
337
+ padding: var(--spacing-small, 4px);
324
338
  text-align: center;
325
339
  white-space: nowrap;
326
340
  text-overflow: ellipsis;
@@ -329,20 +343,20 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
329
343
  }
330
344
 
331
345
  md-elevated-button {
332
- margin: 0px 3px;
346
+ margin: 0 var(--spacing-small, 4px);
333
347
 
334
- --md-elevated-button-container-height: 35px;
348
+ --md-elevated-button-container-height: 32px;
335
349
  --md-elevated-button-label-text-size: 16px;
336
350
  --md-elevated-button-container-color: #0595e5;
337
351
 
338
- --md-elevated-button-label-text-color: #fff;
339
- --md-elevated-button-hover-label-text-color: #fff;
340
- --md-elevated-button-pressed-label-text-color: #fff;
341
- --md-elevated-button-focus-label-text-color: #fff;
342
- --md-elevated-button-icon-color: #fff;
343
- --md-elevated-button-hover-icon-color: #fff;
344
- --md-elevated-button-pressed-icon-color: #fff;
345
- --md-elevated-button-focus-icon-color: #fff;
352
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
353
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
354
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
355
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
356
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
357
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
358
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
359
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
346
360
 
347
361
  &[red] {
348
362
  --md-elevated-button-container-color: #e15757;
@@ -423,8 +437,8 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
423
437
  <span>${this.project.buildingComplex?.area?.toLocaleString()} ㎡</span>
424
438
  </div>
425
439
  <div row>
426
- <span>- 착공 ~ 준공 : </span>
427
- <span bold>${this.project.startDate} ~ ${this.project.endDate}</span>
440
+ <span>- 착공~준공 : </span>
441
+ <span bold>${this.project.startDate}~${this.project.endDate}</span>
428
442
  </div>
429
443
  <div row>
430
444
  <span>- 발주처 : </span>
@@ -572,10 +586,10 @@ export class ProjectDetail extends ScopedElementsMixin(PageView) {
572
586
  <table>
573
587
  <thead>
574
588
  <tr>
575
- <th width="5%"></th>
589
+ <th width="3%"></th>
576
590
  <th width="10%">검측 위치</th>
577
591
  <th width="10%">공종</th>
578
- <th width="20%">내용</th>
592
+ <th width="22%">내용</th>
579
593
  <th width="15%">검측 요청일</th>
580
594
  <th width="10%">검측 결과</th>
581
595
  </tr>
@@ -24,10 +24,10 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
24
24
  css`
25
25
  :host {
26
26
  display: grid;
27
- grid-template-rows: 75px auto;
27
+ grid-template-rows: 55px auto;
28
28
  color: #4e5055;
29
29
 
30
- background-color: #f7f7f7;
30
+ background-color: var(--md-sys-color-background, #f6f6f6);
31
31
  overflow: hidden;
32
32
  overflow-y: auto;
33
33
 
@@ -39,10 +39,15 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
39
39
  width: 100%;
40
40
 
41
41
  --md-outlined-text-field-container-shape: 5px;
42
+ --md-outlined-text-field-outline-color: rgba(51,51,51,.20);
43
+ --md-outlined-text-field-focus-outline-color: #1f7fd9;
44
+ --md-outlined-text-field-focus-outline-width: 1px;
42
45
  --md-sys-color-primary: #586878;
43
46
  --md-outlined-text-field-input-text-size: 14px;
44
- --md-outlined-field-bottom-space: 4px;
45
- --md-outlined-field-top-space: 4px;
47
+ --md-outlined-field-bottom-space: 3px;
48
+ --md-outlined-field-top-space: 3px;
49
+ --md-outlined-field-leading-space: var(--spacing-medium, 8px);
50
+ --md-outlined-field-trailing-space: var(--spacing-medium, 8px);
46
51
  }
47
52
 
48
53
  ox-input-image {
@@ -56,22 +61,23 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
56
61
 
57
62
  div[body] {
58
63
  display: grid;
59
- grid-template-rows: 240px 1fr 60px;
60
- margin: 0px 25px 25px 25px;
61
- gap: 8px;
64
+ grid-template-rows: 205px 1fr 60px;
65
+ margin: var(--spacing-large, 12px);
66
+ margin-top:0;
67
+ gap: var(--spacing-medium, 8px);
62
68
 
63
69
  & > div {
64
70
  display: grid;
65
71
  grid-template-rows: 25px auto;
66
- padding: 15px;
67
- background-color: #ffffff;
72
+ padding: var(--spacing-large, 12px);
73
+ background-color: var(--md-sys-color-on-primary);
68
74
  border: 1px solid #cccccc80;
69
75
  border-radius: 5px;
70
- gap: 14px;
76
+ gap: var(--spacing-medium, 8px);
71
77
 
72
78
  h3 {
73
79
  color: #2e79be;
74
- font-size: 18px;
80
+ font-size: 16px;
75
81
  margin: 0px;
76
82
  text-wrap: nowrap;
77
83
  }
@@ -79,12 +85,12 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
79
85
 
80
86
  & > div[building-container] > div {
81
87
  display: flex;
82
- gap: 16px;
88
+ gap: var(--spacing-medium, 8px);
83
89
  overflow-x: auto;
84
90
  overflow-y: hidden;
85
91
 
86
92
  ox-input-file {
87
- height: 120px;
93
+ height: 100px;
88
94
  }
89
95
 
90
96
  span[building] {
@@ -93,7 +99,8 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
93
99
 
94
100
  div {
95
101
  color: #586878;
96
- margin-top: 7px;
102
+ margin-top:var(--spacing-small, 4px);
103
+ font-size: 14px;
97
104
  }
98
105
  }
99
106
  }
@@ -103,38 +110,40 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
103
110
  display: flex;
104
111
  justify-content: space-between;
105
112
  height: fit-content;
106
- gap: 50px;
113
+ gap: var(--spacing-huge, 24px);
107
114
  overflow: hidden;
108
115
 
109
116
  span[building-button] {
110
117
  display: flex;
111
118
  margin-left: auto;
112
- gap: 10px;
119
+ gap: var(--spacing-small, 4px);
113
120
  overflow-x: auto;
114
121
  overflow-y: hidden;
115
122
 
116
123
  md-filled-button {
117
124
  --md-filled-button-container-color: #0595e5;
118
125
  --md-filled-button-container-height: 30px;
119
- --md-filled-button-trailing-space: 15px;
120
- --md-filled-button-leading-space: 15px;
126
+ --md-filled-button-trailing-space: var(--spacing-medium, 8px);
127
+ --md-filled-button-leading-space: var(--spacing-medium, 8px);
121
128
  }
122
129
  md-outlined-button {
123
130
  --md-outlined-button-container-height: 30px;
124
- --md-outlined-button-trailing-space: 15px;
125
- --md-outlined-button-leading-space: 15px;
131
+ --md-outlined-button-trailing-space: var(--spacing-medium, 8px);
132
+ --md-outlined-button-leading-space: var(--spacing-medium, 8px);
133
+ --md-sys-color-outline: rgba(51,51,51,.20);
126
134
  }
127
135
  }
128
136
  }
129
137
 
130
138
  div[floor-plan] {
131
139
  overflow-y: auto;
132
- margin-top: 10px;
140
+ margin-top: var(--spacing-medium, 8px);
133
141
 
134
142
  & > span {
135
143
  display: inline-block;
136
144
  text-align: center;
137
- margin: 0px 10px 15px 0px;
145
+ margin-right:var(--spacing-medium, 8px);
146
+ margin-bottom:var(--spacing-medium, 8px);
138
147
  cursor: pointer;
139
148
 
140
149
  & > [name='building-plan'] {
@@ -143,19 +152,20 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
143
152
  display: flex;
144
153
  flex-direction: column;
145
154
  justify-content: center;
146
- border: 1px solid #333;
147
- box-shadow: 2px 2px 2px #0000001a;
155
+ border: 1px solid rgba(51,51,51,.1);
156
+ box-shadow: 1px 1px 1px #0000001a;
148
157
  align-items: center;
149
- border-radius: 7px;
158
+ border-radius: 5px;
150
159
  font-size: 13px;
151
160
 
152
161
  md-icon {
153
- margin-bottom: 6px;
162
+ margin-bottom: var(--spacing-small, 4px);
154
163
  }
155
164
  }
156
165
 
157
166
  & > div[floor-name] {
158
- margin-top: 7px;
167
+ margin-top: var(--spacing-small, 4px);
168
+ font-size:14px;
159
169
 
160
170
  &[no-data] {
161
171
  color: #f16154;
@@ -172,8 +182,8 @@ export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
172
182
  & > div {
173
183
  display: flex;
174
184
  align-items: center;
175
- gap: 12px;
176
- margin-left: 10px;
185
+ gap: var(--spacing-medium, 8px);
186
+ margin-left: var(--spacing-medium, 8px);
177
187
 
178
188
  md-outlined-text-field {
179
189
  width: 100px;
@@ -29,6 +29,7 @@ const TaskFragment = gql`
29
29
  endDate
30
30
  dependsOn
31
31
  progress
32
+ style
32
33
  resources {
33
34
  type
34
35
  allocated
@@ -192,7 +193,7 @@ export class ProjectSchedule extends ScopedElementsMixin(PageView) {
192
193
  @state() constructionTypeList = []
193
194
 
194
195
  @state() private fromDate = '2024-01-01'
195
- @state() private toDate = '2024-12-31'
196
+ @state() private toDate = '2026-12-31'
196
197
 
197
198
  @query('input[name="startDate"]') inputStartDate!: HTMLInputElement
198
199
  @query('input[name="endDate"]') inputEndDate!: HTMLInputElement
@@ -251,7 +252,7 @@ export class ProjectSchedule extends ScopedElementsMixin(PageView) {
251
252
  ?extend-grid-lines=${this.extendGridLines}
252
253
  .columnConfigProvider=${this.columnConfigProvider}
253
254
  .colorProvider=${task => {
254
- return task.type == 'group' ? 'green' : 'orange'
255
+ return task.style || 'gray'
255
256
  }}
256
257
  >
257
258
  </ox-gantt>
@@ -343,7 +344,7 @@ export class ProjectSchedule extends ScopedElementsMixin(PageView) {
343
344
 
344
345
  if (this.project) {
345
346
  this.fromDate = this.project.startDate || '2024-01-01' /* TODO default: start date of this year - 3 */
346
- this.toDate = this.project.endDate || '2024-12-31' /* TODO defaule: end date of this year + 3 */
347
+ this.toDate = this.project.endDate || '2026-12-31' /* TODO defaule: end date of this year + 3 */
347
348
  }
348
349
 
349
350
  console.log('init project : ', this.project)