@dssp/project 1.0.0-alpha.0 → 1.0.0-alpha.14

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 (259) hide show
  1. package/dist-client/pages/lib/select2-component.js +1 -1
  2. package/dist-client/pages/lib/select2-component.js.map +1 -1
  3. package/dist-client/pages/lib/waether.d.ts +2 -1
  4. package/dist-client/pages/lib/waether.js +7 -3
  5. package/dist-client/pages/lib/waether.js.map +1 -1
  6. package/dist-client/pages/project/component/project-update-header.js.map +1 -1
  7. package/dist-client/pages/project/popup/checklist/attachment-list-popup.d.ts +1 -0
  8. package/dist-client/pages/project/popup/checklist/attachment-list-popup.js +309 -0
  9. package/dist-client/pages/project/popup/checklist/attachment-list-popup.js.map +1 -0
  10. package/dist-client/pages/project/popup/checklist/comment-list-popup.d.ts +1 -0
  11. package/dist-client/pages/project/popup/checklist/comment-list-popup.js +357 -0
  12. package/dist-client/pages/project/popup/checklist/comment-list-popup.js.map +1 -0
  13. package/dist-client/pages/project/popup/checklist/schedule-checklist-create-popup.d.ts +2 -0
  14. package/dist-client/pages/project/popup/checklist/schedule-checklist-create-popup.js +684 -0
  15. package/dist-client/pages/project/popup/checklist/schedule-checklist-create-popup.js.map +1 -0
  16. package/dist-client/pages/project/popup/checklist/schedule-checklist-view.d.ts +37 -0
  17. package/dist-client/pages/project/popup/checklist/schedule-checklist-view.js +627 -0
  18. package/dist-client/pages/project/popup/checklist/schedule-checklist-view.js.map +1 -0
  19. package/dist-client/pages/project/popup/popup-plan-export.d.ts +10 -0
  20. package/dist-client/pages/project/popup/popup-plan-export.js +236 -0
  21. package/dist-client/pages/project/popup/popup-plan-export.js.map +1 -0
  22. package/dist-client/pages/project/popup/popup-plan-upload.d.ts +3 -0
  23. package/dist-client/pages/project/popup/popup-plan-upload.js +130 -4
  24. package/dist-client/pages/project/popup/popup-plan-upload.js.map +1 -1
  25. package/dist-client/pages/project/popup/popup-project-create.js.map +1 -1
  26. package/dist-client/pages/project/popup/popup-schedule-upload.js.map +1 -1
  27. package/dist-client/pages/project/project-completed-list.js +0 -1
  28. package/dist-client/pages/project/project-completed-list.js.map +1 -1
  29. package/dist-client/pages/project/project-detail.d.ts +2 -1
  30. package/dist-client/pages/project/project-detail.js +269 -80
  31. package/dist-client/pages/project/project-detail.js.map +1 -1
  32. package/dist-client/pages/project/project-list.d.ts +12 -0
  33. package/dist-client/pages/project/project-list.js +15 -8
  34. package/dist-client/pages/project/project-list.js.map +1 -1
  35. package/dist-client/pages/project/project-plan-management.js +29 -13
  36. package/dist-client/pages/project/project-plan-management.js.map +1 -1
  37. package/dist-client/pages/project/project-schedule-list.js.map +1 -1
  38. package/dist-client/pages/project/project-schedule.d.ts +2 -0
  39. package/dist-client/pages/project/project-schedule.js +16 -1
  40. package/dist-client/pages/project/project-schedule.js.map +1 -1
  41. package/dist-client/pages/project/project-setting-list.js +25 -24
  42. package/dist-client/pages/project/project-setting-list.js.map +1 -1
  43. package/dist-client/pages/project/project-update.d.ts +1 -0
  44. package/dist-client/pages/project/project-update.js +128 -17
  45. package/dist-client/pages/project/project-update.js.map +1 -1
  46. package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -1
  47. package/dist-client/pages/resource/construction-type-management.js.map +1 -1
  48. package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -1
  49. package/dist-client/pages/resource/inspection-part-popup.js.map +1 -1
  50. package/dist-client/pages/resource/resource-importer.js.map +1 -1
  51. package/dist-client/pages/resource/resource-list-page.js.map +1 -1
  52. package/dist-client/pages/resource/worker-type-management.js.map +1 -1
  53. package/dist-client/pages/task/task-importer.js.map +1 -1
  54. package/dist-client/pages/task/task-list-page.js.map +1 -1
  55. package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -1
  56. package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -1
  57. package/dist-client/route.js.map +1 -1
  58. package/dist-client/tsconfig.tsbuildinfo +1 -1
  59. package/dist-server/controllers/export-tasks.js +1 -2
  60. package/dist-server/controllers/export-tasks.js.map +1 -1
  61. package/dist-server/controllers/import-task.js +1 -2
  62. package/dist-server/controllers/import-task.js.map +1 -1
  63. package/dist-server/controllers/parse-excel.d.ts +0 -2
  64. package/dist-server/controllers/parse-excel.js +1 -2
  65. package/dist-server/controllers/parse-excel.js.map +1 -1
  66. package/dist-server/middlewares/index.js +1 -2
  67. package/dist-server/middlewares/index.js.map +1 -1
  68. package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -1
  69. package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -1
  70. package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -1
  71. package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -1
  72. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -1
  73. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +2 -2
  74. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -1
  75. package/dist-server/service/construction-detail-type/construction-detail-type-query.js +2 -2
  76. package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -1
  77. package/dist-server/service/construction-detail-type/construction-detail-type-type.js +4 -4
  78. package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -1
  79. package/dist-server/service/construction-detail-type/construction-detail-type.js +2 -2
  80. package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -1
  81. package/dist-server/service/construction-type/construction-type-mutation.js +2 -2
  82. package/dist-server/service/construction-type/construction-type-mutation.js.map +1 -1
  83. package/dist-server/service/construction-type/construction-type-query.js +2 -2
  84. package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
  85. package/dist-server/service/construction-type/construction-type-type.js +4 -4
  86. package/dist-server/service/construction-type/construction-type-type.js.map +1 -1
  87. package/dist-server/service/construction-type/construction-type.js +2 -2
  88. package/dist-server/service/construction-type/construction-type.js.map +1 -1
  89. package/dist-server/service/index.d.ts +1 -0
  90. package/dist-server/service/index.js +1 -0
  91. package/dist-server/service/index.js.map +1 -1
  92. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +2 -2
  93. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -1
  94. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +2 -2
  95. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -1
  96. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +4 -4
  97. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -1
  98. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +2 -2
  99. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -1
  100. package/dist-server/service/inspection-part/inspection-part-mutation.js +2 -2
  101. package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -1
  102. package/dist-server/service/inspection-part/inspection-part-query.js +2 -2
  103. package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -1
  104. package/dist-server/service/inspection-part/inspection-part-type.js +4 -4
  105. package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -1
  106. package/dist-server/service/inspection-part/inspection-part.js +2 -2
  107. package/dist-server/service/inspection-part/inspection-part.js.map +1 -1
  108. package/dist-server/service/manager/index.d.ts +2 -0
  109. package/dist-server/service/manager/index.js +3 -1
  110. package/dist-server/service/manager/index.js.map +1 -1
  111. package/dist-server/service/manager/manager-mutation.js +2 -2
  112. package/dist-server/service/manager/manager-mutation.js.map +1 -1
  113. package/dist-server/service/manager/manager-query.js +3 -3
  114. package/dist-server/service/manager/manager-query.js.map +1 -1
  115. package/dist-server/service/manager/manager-type.js +4 -4
  116. package/dist-server/service/manager/manager-type.js.map +1 -1
  117. package/dist-server/service/manager/manager.js +2 -2
  118. package/dist-server/service/manager/manager.js.map +1 -1
  119. package/dist-server/service/project/project-mutation.d.ts +1 -0
  120. package/dist-server/service/project/project-mutation.js +109 -15
  121. package/dist-server/service/project/project-mutation.js.map +1 -1
  122. package/dist-server/service/project/project-query.d.ts +1 -0
  123. package/dist-server/service/project/project-query.js +14 -3
  124. package/dist-server/service/project/project-query.js.map +1 -1
  125. package/dist-server/service/project/project-type.d.ts +1 -0
  126. package/dist-server/service/project/project-type.js +13 -9
  127. package/dist-server/service/project/project-type.js.map +1 -1
  128. package/dist-server/service/project/project.d.ts +6 -0
  129. package/dist-server/service/project/project.js +15 -4
  130. package/dist-server/service/project/project.js.map +1 -1
  131. package/dist-server/service/resource/resource-mutation.js +2 -2
  132. package/dist-server/service/resource/resource-mutation.js.map +1 -1
  133. package/dist-server/service/resource/resource-query.js +2 -2
  134. package/dist-server/service/resource/resource-query.js.map +1 -1
  135. package/dist-server/service/resource/resource-type.js +6 -6
  136. package/dist-server/service/resource/resource-type.js.map +1 -1
  137. package/dist-server/service/resource/resource.js +3 -3
  138. package/dist-server/service/resource/resource.js.map +1 -1
  139. package/dist-server/service/task/task-mutation.js +2 -2
  140. package/dist-server/service/task/task-mutation.js.map +1 -1
  141. package/dist-server/service/task/task-query.js +4 -4
  142. package/dist-server/service/task/task-query.js.map +1 -1
  143. package/dist-server/service/task/task-type.js +10 -10
  144. package/dist-server/service/task/task-type.js.map +1 -1
  145. package/dist-server/service/task/task.js +7 -8
  146. package/dist-server/service/task/task.js.map +1 -1
  147. package/dist-server/service/task-resource/task-resource-mutation.js +2 -2
  148. package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -1
  149. package/dist-server/service/task-resource/task-resource-query.js +2 -2
  150. package/dist-server/service/task-resource/task-resource-query.js.map +1 -1
  151. package/dist-server/service/task-resource/task-resource-type.js +6 -6
  152. package/dist-server/service/task-resource/task-resource-type.js.map +1 -1
  153. package/dist-server/service/task-resource/task-resource.js +2 -2
  154. package/dist-server/service/task-resource/task-resource.js.map +1 -1
  155. package/dist-server/service/worker-type/worker-type-mutation.js +2 -2
  156. package/dist-server/service/worker-type/worker-type-mutation.js.map +1 -1
  157. package/dist-server/service/worker-type/worker-type-query.js +2 -2
  158. package/dist-server/service/worker-type/worker-type-query.js.map +1 -1
  159. package/dist-server/service/worker-type/worker-type-type.js +4 -4
  160. package/dist-server/service/worker-type/worker-type-type.js.map +1 -1
  161. package/dist-server/service/worker-type/worker-type.js +2 -2
  162. package/dist-server/service/worker-type/worker-type.js.map +1 -1
  163. package/dist-server/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +13 -11
  165. package/client/bootstrap.ts +0 -0
  166. package/client/index.ts +0 -0
  167. package/client/pages/lib/select2-component.ts +0 -175
  168. package/client/pages/lib/waether.ts +0 -159
  169. package/client/pages/project/component/project-update-header.ts +0 -88
  170. package/client/pages/project/popup/popup-plan-upload.ts +0 -138
  171. package/client/pages/project/popup/popup-project-create.ts +0 -147
  172. package/client/pages/project/popup/popup-schedule-upload.ts +0 -102
  173. package/client/pages/project/project-completed-list.ts +0 -281
  174. package/client/pages/project/project-detail.ts +0 -738
  175. package/client/pages/project/project-list.ts +0 -418
  176. package/client/pages/project/project-plan-management.ts +0 -476
  177. package/client/pages/project/project-schedule-list.ts +0 -294
  178. package/client/pages/project/project-schedule.ts +0 -393
  179. package/client/pages/project/project-setting-list.ts +0 -393
  180. package/client/pages/project/project-update.ts +0 -876
  181. package/client/pages/resource/construction-detail-type-popup.ts +0 -201
  182. package/client/pages/resource/construction-type-management.ts +0 -212
  183. package/client/pages/resource/inspection-drawing-type-management.ts +0 -245
  184. package/client/pages/resource/inspection-part-popup.ts +0 -201
  185. package/client/pages/resource/resource-importer.ts +0 -97
  186. package/client/pages/resource/resource-list-page.ts +0 -356
  187. package/client/pages/resource/worker-type-management.ts +0 -192
  188. package/client/pages/task/task-importer.ts +0 -94
  189. package/client/pages/task/task-list-page.ts +0 -340
  190. package/client/pages/task-resource/task-resource-importer.ts +0 -97
  191. package/client/pages/task-resource/task-resource-list-page.ts +0 -356
  192. package/client/route.ts +0 -55
  193. package/client/tsconfig.json +0 -11
  194. package/server/controllers/export-tasks.ts +0 -40
  195. package/server/controllers/import-task.ts +0 -134
  196. package/server/controllers/index.ts +0 -0
  197. package/server/controllers/parse-excel.ts +0 -86
  198. package/server/controllers/types.ts +0 -20
  199. package/server/index.ts +0 -4
  200. package/server/middlewares/index.ts +0 -3
  201. package/server/migrations/1723861466413-seed-roles.ts +0 -128
  202. package/server/migrations/1723861466414-seed-codes.ts +0 -157
  203. package/server/migrations/1723861476419-seed-resources.ts +0 -62
  204. package/server/migrations/1723861478420-seed-/bsample-project.ts +0 -87
  205. package/server/migrations/1723861478421-seed-/bsample-tasks.ts +0 -194
  206. package/server/migrations/index.ts +0 -9
  207. package/server/routes.ts +0 -108
  208. package/server/service/construction-detail-type/construction-detail-type-mutation.ts +0 -57
  209. package/server/service/construction-detail-type/construction-detail-type-query.ts +0 -31
  210. package/server/service/construction-detail-type/construction-detail-type-type.ts +0 -26
  211. package/server/service/construction-detail-type/construction-detail-type.ts +0 -52
  212. package/server/service/construction-detail-type/index.ts +0 -6
  213. package/server/service/construction-type/construction-type-mutation.ts +0 -66
  214. package/server/service/construction-type/construction-type-query.ts +0 -56
  215. package/server/service/construction-type/construction-type-type.ts +0 -26
  216. package/server/service/construction-type/construction-type.ts +0 -74
  217. package/server/service/construction-type/index.ts +0 -6
  218. package/server/service/index.ts +0 -56
  219. package/server/service/inspection-drawing-type/index.ts +0 -6
  220. package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +0 -69
  221. package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +0 -55
  222. package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +0 -23
  223. package/server/service/inspection-drawing-type/inspection-drawing-type.ts +0 -68
  224. package/server/service/inspection-part/index.ts +0 -6
  225. package/server/service/inspection-part/inspection-part-mutation.ts +0 -52
  226. package/server/service/inspection-part/inspection-part-query.ts +0 -41
  227. package/server/service/inspection-part/inspection-part-type.ts +0 -26
  228. package/server/service/inspection-part/inspection-part.ts +0 -51
  229. package/server/service/manager/index.ts +0 -6
  230. package/server/service/manager/manager-mutation.ts +0 -42
  231. package/server/service/manager/manager-query.ts +0 -28
  232. package/server/service/manager/manager-type.ts +0 -40
  233. package/server/service/manager/manager.ts +0 -29
  234. package/server/service/project/index.ts +0 -6
  235. package/server/service/project/project-mutation.ts +0 -255
  236. package/server/service/project/project-query.ts +0 -105
  237. package/server/service/project/project-type.ts +0 -72
  238. package/server/service/project/project.ts +0 -134
  239. package/server/service/resource/index.ts +0 -7
  240. package/server/service/resource/resource-mutation.ts +0 -137
  241. package/server/service/resource/resource-query.ts +0 -50
  242. package/server/service/resource/resource-type.ts +0 -41
  243. package/server/service/resource/resource.ts +0 -82
  244. package/server/service/task/index.ts +0 -6
  245. package/server/service/task/task-mutation.ts +0 -135
  246. package/server/service/task/task-query.ts +0 -169
  247. package/server/service/task/task-type.ts +0 -75
  248. package/server/service/task/task.ts +0 -130
  249. package/server/service/task-resource/index.ts +0 -7
  250. package/server/service/task-resource/task-resource-mutation.ts +0 -140
  251. package/server/service/task-resource/task-resource-query.ts +0 -36
  252. package/server/service/task-resource/task-resource-type.ts +0 -41
  253. package/server/service/task-resource/task-resource.ts +0 -51
  254. package/server/service/worker-type/index.ts +0 -6
  255. package/server/service/worker-type/worker-type-mutation.ts +0 -66
  256. package/server/service/worker-type/worker-type-query.ts +0 -47
  257. package/server/service/worker-type/worker-type-type.ts +0 -26
  258. package/server/service/worker-type/worker-type.ts +0 -68
  259. package/server/tsconfig.json +0 -10
@@ -1,476 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@material/web/button/elevated-button.js'
3
- import '@material/web/textfield/outlined-text-field.js'
4
- import '@material/web/button/filled-button.js'
5
- import '@material/web/button/outlined-button.js'
6
-
7
- import { PageView } from '@operato/shell'
8
- import { PageLifecycle } from '@operato/shell/dist/src/app/pages/page-view'
9
- import { css, html } from 'lit'
10
- import { customElement, state } from 'lit/decorators.js'
11
- import { ScopedElementsMixin } from '@open-wc/scoped-elements'
12
- import { client } from '@operato/graphql'
13
- import { notify } from '@operato/layout'
14
- import { openPopup } from '@operato/layout'
15
-
16
- import gql from 'graphql-tag'
17
- import { Building, BuildingLevel, Project } from './project-list'
18
- import './popup/popup-plan-upload'
19
- import './component/project-update-header'
20
-
21
- @customElement('project-plan-management')
22
- export class ProjectPlanManagement extends ScopedElementsMixin(PageView) {
23
- static styles = [
24
- css`
25
- :host {
26
- display: grid;
27
- grid-template-rows: 55px auto;
28
- color: #4e5055;
29
-
30
- background-color: var(--md-sys-color-background, #f6f6f6);
31
- overflow: hidden;
32
- overflow-y: auto;
33
-
34
- --grid-record-emphasized-background-color: red;
35
- --grid-record-emphasized-color: yellow;
36
- }
37
-
38
- md-outlined-text-field {
39
- width: 100%;
40
-
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;
45
- --md-sys-color-primary: #586878;
46
- --md-outlined-text-field-input-text-size: 14px;
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);
51
- }
52
-
53
- ox-input-image {
54
- width: 100px;
55
- height: 100px;
56
- }
57
-
58
- *[bold] {
59
- font-weight: bold;
60
- }
61
-
62
- div[body] {
63
- display: grid;
64
- grid-template-rows: 205px 1fr 60px;
65
- margin: var(--spacing-large, 12px);
66
- margin-top:0;
67
- gap: var(--spacing-medium, 8px);
68
-
69
- & > div {
70
- display: grid;
71
- grid-template-rows: 25px auto;
72
- padding: var(--spacing-large, 12px);
73
- background-color: var(--md-sys-color-on-primary);
74
- border: 1px solid #cccccc80;
75
- border-radius: 5px;
76
- gap: var(--spacing-medium, 8px);
77
-
78
- h3 {
79
- color: #2e79be;
80
- font-size: 16px;
81
- margin: 0px;
82
- text-wrap: nowrap;
83
- }
84
- }
85
-
86
- & > div[building-container] > div {
87
- display: flex;
88
- gap: var(--spacing-medium, 8px);
89
- overflow-x: auto;
90
- overflow-y: hidden;
91
-
92
- ox-input-file {
93
- height: 100px;
94
- }
95
-
96
- span[building] {
97
- width: 125px;
98
- text-align: center;
99
-
100
- div {
101
- color: #586878;
102
- margin-top:var(--spacing-small, 4px);
103
- font-size: 14px;
104
- }
105
- }
106
- }
107
-
108
- & > div[floor-container] {
109
- div[floor-title] {
110
- display: flex;
111
- justify-content: space-between;
112
- height: fit-content;
113
- gap: var(--spacing-huge, 24px);
114
- overflow: hidden;
115
-
116
- span[building-button] {
117
- display: flex;
118
- margin-left: auto;
119
- gap: var(--spacing-small, 4px);
120
- overflow-x: auto;
121
- overflow-y: hidden;
122
-
123
- md-filled-button {
124
- --md-filled-button-container-color: #0595e5;
125
- --md-filled-button-container-height: 30px;
126
- --md-filled-button-trailing-space: var(--spacing-medium, 8px);
127
- --md-filled-button-leading-space: var(--spacing-medium, 8px);
128
- }
129
- md-outlined-button {
130
- --md-outlined-button-container-height: 30px;
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);
134
- }
135
- }
136
- }
137
-
138
- div[floor-plan] {
139
- overflow-y: auto;
140
- margin-top: var(--spacing-medium, 8px);
141
-
142
- & > span {
143
- display: inline-block;
144
- text-align: center;
145
- margin-right:var(--spacing-medium, 8px);
146
- margin-bottom:var(--spacing-medium, 8px);
147
- cursor: pointer;
148
-
149
- & > [name='building-plan'] {
150
- width: 150px;
151
- height: 100px;
152
- display: flex;
153
- flex-direction: column;
154
- justify-content: center;
155
- border: 1px solid rgba(51,51,51,.1);
156
- box-shadow: 1px 1px 1px #0000001a;
157
- align-items: center;
158
- border-radius: 5px;
159
- font-size: 13px;
160
-
161
- md-icon {
162
- margin-bottom: var(--spacing-small, 4px);
163
- }
164
- }
165
-
166
- & > div[floor-name] {
167
- margin-top: var(--spacing-small, 4px);
168
- font-size:14px;
169
-
170
- &[no-data] {
171
- color: #f16154;
172
- font-weight: bold;
173
- }
174
- }
175
- }
176
- }
177
- }
178
-
179
- & > div[plan-scale-container] {
180
- display: flex;
181
-
182
- & > div {
183
- display: flex;
184
- align-items: center;
185
- gap: var(--spacing-medium, 8px);
186
- margin-left: var(--spacing-medium, 8px);
187
-
188
- md-outlined-text-field {
189
- width: 100px;
190
- --md-outlined-text-container-height: 30px;
191
- }
192
- }
193
- }
194
- }
195
- `
196
- ]
197
-
198
- get context() {
199
- return {
200
- title: '도면 관리'
201
- }
202
- }
203
-
204
- private defaultProject = {
205
- name: '',
206
- buildingComplex: {
207
- address: '',
208
- area: 0,
209
- constructionCompany: '',
210
- clientCompany: '',
211
- supervisoryCompany: '',
212
- designCompany: '',
213
- constructionType: '',
214
- buildings: []
215
- }
216
- }
217
- @state() projectId: string = ''
218
- @state() project: Project = { ...this.defaultProject }
219
- @state() selectedBuildingIdx: number = 0
220
-
221
- render() {
222
- return html`
223
- <project-update-header .projectId=${this.project.id || ''} title="도면 관리" @custom-click=${this._saveProject}>
224
- </project-update-header>
225
-
226
- <div body>
227
- <div building-container>
228
- <h3>동별 도면(BIM)</h3>
229
- <div>
230
- ${this.project.buildingComplex?.buildings?.map((building, idx) => {
231
- return html`
232
- <span building>
233
- <ox-input-file
234
- name="building-drawing"
235
- .value=${building?.drawing || undefined}
236
- label=" "
237
- description="동 도면 업로드"
238
- idx=${idx}
239
- @change=${this._onCreateAttachment.bind(this)}
240
- ></ox-input-file>
241
- <div>${building.name}</div>
242
- </span>
243
- `
244
- })}
245
- </div>
246
- </div>
247
-
248
- <div floor-container>
249
- <div floor-title>
250
- <h3>${this.project.buildingComplex?.buildings?.[this.selectedBuildingIdx]?.name} 층별 도면(PDF)</h3>
251
- <span building-button>
252
- ${this.project.buildingComplex.buildings?.map((building, idx) => {
253
- return this.project.buildingComplex?.buildings?.[this.selectedBuildingIdx]?.id === building.id
254
- ? html`
255
- <md-filled-button @click=${() => this._onClickBuildingChange(idx)}> ${building.name} </md-filled-button>
256
- `
257
- : html`
258
- <md-outlined-button @click=${() => this._onClickBuildingChange(idx)}> ${building.name} </md-outlined-button>
259
- `
260
- })}
261
- </span>
262
- </div>
263
-
264
- <div floor-plan>
265
- ${this.project.buildingComplex?.buildings?.[this.selectedBuildingIdx]?.buildingLevels?.map((buildingLevel, idx) => {
266
- return buildingLevel.mainDrawingThumbnail
267
- ? html`
268
- <span plan>
269
- <img
270
- name="building-plan"
271
- .src=${buildingLevel.mainDrawingThumbnail}
272
- idx=${idx}
273
- @click=${this._onClickImage}
274
- />
275
- <div floor-name>${buildingLevel.floor}층</div>
276
- </span>
277
- `
278
- : html`
279
- <span plan>
280
- <a name="building-plan" idx=${idx} @click=${this._onClickImage}>
281
- <md-icon slot="icon">image</md-icon>
282
- <div bold>도면 파일</div>
283
- <div>업로드</div>
284
- </a>
285
- <div floor-name no-data>${buildingLevel.floor}층</div>
286
- </span>
287
- `
288
- })}
289
- </div>
290
- </div>
291
-
292
- <div plan-scale-container>
293
- <h3>도면 축척 설정</h3>
294
- <div>
295
- <span>가로</span>
296
- <md-outlined-text-field
297
- type="text"
298
- name="planXScale"
299
- numeric
300
- .value=${this.project.buildingComplex.planXScale?.toString() || ''}
301
- @input=${this._onInputChange}
302
- suffix-text="mm"
303
- >
304
- </md-outlined-text-field>
305
- <span>X</span>
306
- <span>세로</span>
307
- <md-outlined-text-field
308
- type="text"
309
- name="planYScale"
310
- numeric
311
- .value=${this.project.buildingComplex.planYScale?.toString() || ''}
312
- @input=${this._onInputChange}
313
- suffix-text="mm"
314
- >
315
- </md-outlined-text-field>
316
- </div>
317
- </div>
318
- </div>
319
- `
320
- }
321
-
322
- async pageInitialized(lifecycle: PageLifecycle) {}
323
-
324
- async pageUpdated(changes: any, lifecycle: PageLifecycle) {
325
- if (this.active) {
326
- this.projectId = lifecycle.resourceId || ''
327
- await this.initProject(this.projectId)
328
- }
329
- }
330
-
331
- async initProject(projectId: string = '') {
332
- const response = await client.query({
333
- query: gql`
334
- query Project($id: String!) {
335
- project(id: $id) {
336
- id
337
- name
338
- buildingComplex {
339
- id
340
- planXScale
341
- planYScale
342
- buildings {
343
- id
344
- name
345
- drawing {
346
- id
347
- name
348
- }
349
- buildingLevels {
350
- id
351
- floor
352
- mainDrawing {
353
- id
354
- name
355
- }
356
- elevationDrawing {
357
- id
358
- name
359
- }
360
- rebarDistributionDrawing {
361
- id
362
- name
363
- }
364
- mainDrawingThumbnail
365
- elevationDrawingThumbnail
366
- rebarDistributionDrawingThumbnail
367
- }
368
- }
369
- }
370
- }
371
- }
372
- `,
373
- variables: {
374
- id: projectId
375
- }
376
- })
377
-
378
- this.project = response.data?.project
379
- }
380
-
381
- private async _saveProject() {
382
- // 첨부 파일 필드 제거 (첨부 파일은 {filename}Upload 로 전송)
383
- for (let buildingKey in this.project.buildingComplex.buildings) {
384
- const building = this.project.buildingComplex.buildings[buildingKey]
385
- delete this.project.buildingComplex.buildings[buildingKey].drawing
386
-
387
- for (let levelKey in building.buildingLevels) {
388
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].mainDrawing
389
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].mainDrawingImage
390
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].mainDrawingThumbnail
391
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].elevationDrawing
392
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].elevationDrawingThumbnail
393
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].rebarDistributionDrawing
394
- delete this.project.buildingComplex.buildings[buildingKey].buildingLevels[levelKey].rebarDistributionDrawingThumbnail
395
- }
396
- }
397
-
398
- const response = await client.mutate({
399
- mutation: gql`
400
- mutation UpdateProjectPlan($project: ProjectPatch!) {
401
- updateProjectPlan(project: $project) {
402
- id
403
- }
404
- }
405
- `,
406
- variables: {
407
- project: this.project
408
- },
409
- context: {
410
- hasUpload: true
411
- }
412
- })
413
-
414
- if (!response.errors) {
415
- notify({ message: '저장에 성공하였습니다.' })
416
-
417
- // 데이터 다시 조회
418
- this.initProject(this.project.id)
419
- }
420
- }
421
-
422
- // Input 요소의 값이 변경될 때 호출되는 콜백 함수
423
- private _onInputChange(event: InputEvent, idx: number) {
424
- const target = event.target as HTMLInputElement
425
- let inputVal: any = target.value
426
- this.project.buildingComplex![target.name] = Number(inputVal.replace(/\D/g, ''))
427
- }
428
-
429
- // 이미지 업로드
430
- async _onCreateAttachment(e: CustomEvent) {
431
- const target = e.target as HTMLInputElement
432
- const file = e.detail[0] || null
433
- const idx = Number(target.getAttribute('idx')) || 0
434
-
435
- this.project.buildingComplex!.buildings![idx].drawingUpload = file
436
-
437
- // re rendering
438
- this.project = { ...this.project }
439
- }
440
-
441
- _onClickBuildingChange(idx: number) {
442
- this.selectedBuildingIdx = idx
443
- }
444
-
445
- _onClickImage(e) {
446
- const target = e.currentTarget as HTMLInputElement
447
- const idx = Number(target.getAttribute('idx')) || 0
448
- const buildingLevel = this.project.buildingComplex!.buildings![this.selectedBuildingIdx].buildingLevels![idx]
449
- const title = buildingLevel.floor?.toString() + '층' || ''
450
-
451
- // 팝업 오픈
452
- this._openPopup(title, buildingLevel, idx)
453
- }
454
-
455
- private _openPopup(title: string, buildingLevel: BuildingLevel, selectedIdx: number) {
456
- openPopup(
457
- html`<popup-plan-upload
458
- .buildingLevel=${buildingLevel}
459
- .selectedIdx=${selectedIdx}
460
- @file_change=${this._onChangeAdditionalDrawing.bind(this)}
461
- ></popup-plan-upload>`,
462
- {
463
- backdrop: true,
464
- size: 'medium',
465
- title: `${title} 도면 관리`
466
- }
467
- )
468
- }
469
-
470
- private _onChangeAdditionalDrawing(e) {
471
- const idx = e.detail?.selectedIdx || null
472
- const buildingLevel: BuildingLevel = e.detail?.buildingLevel || {}
473
-
474
- this.project.buildingComplex!.buildings![this.selectedBuildingIdx]!.buildingLevels![idx] = { ...buildingLevel }
475
- }
476
- }