@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,147 +0,0 @@
1
- import { css, html, LitElement } from 'lit'
2
- import { customElement, property, state } from 'lit/decorators.js'
3
- import { client } from '@operato/graphql'
4
- import { notify } from '@operato/layout'
5
- import gql from 'graphql-tag'
6
- import '@material/web/textfield/outlined-text-field.js'
7
- import '@material/web/button/elevated-button.js'
8
-
9
- @customElement('popup-project-create')
10
- export class PopupProjectCreate extends LitElement {
11
- static styles = [
12
- css`
13
- :host {
14
- display: flex;
15
- flex-direction: column;
16
- background-color: #fff;
17
- width: 100%;
18
- }
19
-
20
- div[body] {
21
- flex: 1;
22
-
23
- label {
24
- color: #4e5055;
25
- font-size: 16px;
26
- }
27
-
28
- div[input-container] {
29
- display: flex;
30
- align-items: center;
31
- justify-content: center;
32
- margin-top: 22px;
33
-
34
- md-outlined-text-field {
35
- width: 60%;
36
- margin-left: 15px;
37
-
38
- --md-outlined-text-field-container-shape: 9px;
39
- --md-sys-color-primary: #586878;
40
- --md-sys-color-surface-container-highest: transparent;
41
- --md-outlined-text-field-label-text-color: #999999;
42
- --md-outlined-text-field-input-text-line-height: 20px;
43
- --md-outlined-text-field-input-text-size: 16px;
44
- --md-outlined-field-bottom-space: 10px;
45
- --md-outlined-field-top-space: 10px;
46
- }
47
- }
48
-
49
- div[button-container] {
50
- margin-top: 50px;
51
- margin-bottom: 20px;
52
- text-align: center;
53
-
54
- md-elevated-button {
55
- margin: 0px 5px;
56
-
57
- --md-elevated-button-container-height: 40px;
58
- --md-elevated-button-container-color: #fff;
59
- --md-elevated-button-label-text-size: 16px;
60
- }
61
- md-elevated-button:first-child {
62
- --md-elevated-button-container-color: #0595e5;
63
- --md-elevated-button-label-text-color: #fff;
64
- --md-elevated-button-hover-label-text-color: #fff;
65
- --md-elevated-button-pressed-label-text-color: #fff;
66
- --md-elevated-button-focus-label-text-color: #fff;
67
- --md-elevated-button-icon-color: #fff;
68
- --md-elevated-button-hover-icon-color: #fff;
69
- --md-elevated-button-pressed-icon-color: #fff;
70
- --md-elevated-button-focus-icon-color: #fff;
71
- }
72
- }
73
- }
74
- `
75
- ]
76
-
77
- @state() private projectName: string = ''
78
- @property({ type: Function }) private refreshFn!: Function
79
-
80
- render() {
81
- return html`
82
- <div body>
83
- <div input-container>
84
- <label>프로젝트 이름</label>
85
- <md-outlined-text-field
86
- name="projectName"
87
- type="text"
88
- placeholder="신규 프로젝트명"
89
- .value=${this.projectName}
90
- @input=${this._onInputChange}
91
- >
92
- </md-outlined-text-field>
93
- </div>
94
-
95
- <div button-container>
96
- <md-elevated-button @click=${this._createProject}>
97
- <md-icon slot="icon">add</md-icon>프로젝트 생성
98
- </md-elevated-button>
99
- <md-elevated-button @click=${this._close}> <md-icon slot="icon">close</md-icon>취소 </md-elevated-button>
100
- </div>
101
- </div>
102
- `
103
- }
104
-
105
- // 프로젝트 생성
106
- private async _createProject() {
107
- if (!this.projectName) {
108
- notify({ level: 'warn', message: '프로젝트 이름은 필수 값 입니다.' })
109
- return
110
- }
111
-
112
- const response = await client.mutate({
113
- mutation: gql`
114
- mutation CreateProject($project: NewProject!) {
115
- response: createProject(project: $project) {
116
- id
117
- }
118
- }
119
- `,
120
- variables: {
121
- project: {
122
- name: this.projectName
123
- }
124
- }
125
- })
126
-
127
- if (!response.errors) {
128
- notify({ message: '저장되었습니다.' })
129
- }
130
-
131
- // 설정 정보 리스트 다시 조회
132
- this.refreshFn()
133
-
134
- // 팝업 템플릿을 닫기 위한 동작
135
- history.back()
136
- }
137
-
138
- private _close() {
139
- history.back()
140
- }
141
-
142
- // Input 요소의 값이 변경될 때 호출되는 콜백 함수
143
- private _onInputChange(event: InputEvent) {
144
- const target = event.target as HTMLInputElement
145
- this.projectName = target.value
146
- }
147
- }
@@ -1,102 +0,0 @@
1
- import { css, html, LitElement } from 'lit'
2
- import { customElement, property } from 'lit/decorators.js'
3
- import { client } from '@operato/graphql'
4
- import { notify } from '@operato/layout'
5
- import gql from 'graphql-tag'
6
- import { Attachment } from '@things-factory/attachment-base'
7
-
8
- @customElement('popup-schedule-upload')
9
- export class PopupScheduleUpload extends LitElement {
10
- static styles = [
11
- css`
12
- :host {
13
- display: flex;
14
- flex-direction: column;
15
- background-color: #fff;
16
- width: 100%;
17
- }
18
-
19
- div[body] {
20
- flex: 1;
21
-
22
- div[input-container] {
23
- display: flex;
24
- align-items: center;
25
- justify-content: center;
26
- gap: 25px;
27
- background-color: #f7f7f7;
28
- padding: 35px 27px 27px 27px;
29
-
30
- ox-input-file {
31
- height: 100px;
32
- width: 120px;
33
- line-height: 100%;
34
- }
35
- }
36
-
37
- div[button-container] {
38
- display: flex;
39
- align-items: center;
40
- justify-content: center;
41
- margin-top: 20px;
42
- }
43
- }
44
- `
45
- ]
46
-
47
- @property({ type: Object }) private scheduleTable: Attachment | undefined
48
- @property({ type: String }) private projectId: string | undefined
49
-
50
- render() {
51
- const icon = this.scheduleTable ? '' : 'upload'
52
- const description = this.scheduleTable?.name ? ' ' : '공정표 업로드'
53
-
54
- return html`
55
- <div body>
56
- <div input-container>
57
- <ox-input-file
58
- icon=${icon}
59
- label=${this.scheduleTable?.name || ''}
60
- description=${description}
61
- @change=${this._onChangeAttachment.bind(this)}
62
- ></ox-input-file>
63
- </div>
64
-
65
- <div button-container>
66
- <md-outlined-button @click=${this._close}><md-icon slot="icon">cancel</md-icon>취소</md-outlined-button>
67
- </div>
68
- </div>
69
- `
70
- }
71
-
72
- private _close() {
73
- history.back()
74
- }
75
-
76
- // 공정표 업로드
77
- async _onChangeAttachment(e: CustomEvent) {
78
- const file = e.detail[0] || null
79
-
80
- const response = await client.mutate({
81
- mutation: gql`
82
- mutation UploadProjectScheduleTable($param: UploadProjectScheduleTable!) {
83
- uploadProjectScheduleTable(param: $param)
84
- }
85
- `,
86
- variables: {
87
- param: {
88
- projectId: this.projectId,
89
- scheduleTable: file
90
- }
91
- },
92
- context: {
93
- hasUpload: true
94
- }
95
- })
96
-
97
- if (!response.errors) {
98
- notify({ message: '공정표가 업로드 되었습니다.' })
99
- this.dispatchEvent(new CustomEvent('uploaded'))
100
- }
101
- }
102
- }
@@ -1,281 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
-
3
- import { PageView } from '@operato/shell'
4
- import { css, html } from 'lit'
5
- import { customElement, state } from 'lit/decorators.js'
6
- import { ScopedElementsMixin } from '@open-wc/scoped-elements'
7
- import { client } from '@operato/graphql'
8
- import gql from 'graphql-tag'
9
- import { Project, ProjectState } from './project-list'
10
-
11
- @customElement('project-completed-list')
12
- export class ProjectCompletedListPage extends ScopedElementsMixin(PageView) {
13
- static styles = [
14
- css`
15
- :host {
16
- display: flex;
17
- flex-direction: column;
18
- overflow-y: auto;
19
-
20
- width: 100%;
21
- height: 100%;
22
- background-color: #f7f7f7;
23
-
24
- --grid-record-emphasized-background-color: red;
25
- --grid-record-emphasized-color: yellow;
26
- }
27
-
28
- div[header] {
29
- display: flex;
30
- height: 100px;
31
- align-items: center;
32
- background-color: #2ea4df1a;
33
- border: 1px solid #2ea4df33;
34
- margin: 15px 23px;
35
- font-size: 18px;
36
- padding: 7px;
37
- border-radius: 5px;
38
-
39
- md-filled-text-field[type='search'] {
40
- margin-left: 5px;
41
- margin-right: 26px;
42
-
43
- --md-filled-text-field-container-shape: 0px;
44
- --md-sys-color-primary: #006a6a;
45
- --md-sys-color-surface-container-highest: transparent;
46
- --md-filled-text-field-label-text-color: #999999;
47
- --md-filled-text-field-input-text-color: #4e5055;
48
- }
49
-
50
- md-elevated-button[add-project] {
51
- font-weight: bold;
52
- font-size: 16px;
53
- margin-left: 17px;
54
- padding: 13px 20px;
55
-
56
- --md-sys-color-surface-container-low: #24be7b;
57
- --md-sys-color-primary: #ffffff;
58
- --md-elevated-button-container-shape: 7px;
59
- }
60
- }
61
-
62
- div[body] {
63
- div[project-container] {
64
- height: 140px;
65
- margin: 17px 23px;
66
- background-color: #ffffff;
67
- border: 1px solid #cccccc80;
68
- border-radius: 5px;
69
-
70
- & > a {
71
- display: flex;
72
- width: 100%;
73
- height: 100%;
74
- text-decoration: none;
75
- color: #000;
76
- }
77
-
78
- img[project-img] {
79
- width: 285px;
80
- background-color: #cccccc80;
81
- }
82
- img[project-img][no-image] {
83
- object-fit: contain;
84
- opacity: 0.5;
85
- }
86
-
87
- span[project-info] {
88
- flex: 0.45;
89
- padding: 6px 15px;
90
- font-size: 16px;
91
-
92
- white-space: nowrap;
93
- overflow: hidden;
94
- text-overflow: ellipsis;
95
-
96
- div[name] {
97
- color: #2e79be;
98
- font-weight: bold;
99
- font-size: 19px;
100
- margin-bottom: 2px;
101
- }
102
- }
103
-
104
- span[project-state] {
105
- flex: 0.55;
106
- padding: 10px 20px;
107
-
108
- & > div {
109
- margin-bottom: 3px;
110
- }
111
-
112
- div[progress] {
113
- position: relative;
114
-
115
- md-linear-progress {
116
- --md-linear-progress-track-height: 18px;
117
- --md-linear-progress-active-indicator-height: 18px;
118
- --md-linear-progress-track-shape: 5px;
119
- --md-sys-color-primary: #1bb40133;
120
- --md-sys-color-surface-container-highest: #0595e533;
121
- --md-linear-progress-track-color: #1bb4011a;
122
- }
123
-
124
- span {
125
- position: absolute;
126
- top: 0;
127
- left: 12px;
128
- font-size: 12px;
129
- font-weight: bold;
130
- color: #1bb401;
131
-
132
- &:last-child {
133
- left: unset;
134
- right: 12px;
135
- }
136
- }
137
- }
138
- }
139
- }
140
- }
141
- `
142
- ]
143
-
144
- get context() {
145
- return {
146
- title: '완료 프로젝트'
147
- }
148
- }
149
-
150
- @state() private projectName: string = ''
151
- @state() private projectList: Project[] = []
152
- @state() private projectCount: number = 0
153
-
154
- render() {
155
- return html`
156
- <div header>
157
- <label>프로젝트 이름</label>
158
- <md-filled-text-field
159
- name="projectName"
160
- type="search"
161
- label="프로젝트 이름"
162
- .value=${this.projectName}
163
- @input=${this._onInputChange}
164
- @keypress=${this._onKeypress}
165
- >
166
- <md-icon slot="leading-icon">search</md-icon>
167
- </md-filled-text-field>
168
-
169
- <strong>총 ${this.projectCount}개</strong>
170
- </div>
171
-
172
- <div body>
173
- ${this.projectList?.map((project: Project) => {
174
- return html`
175
- <div project-container>
176
- <a href=${`project-detail/${project.id}`}>
177
- <img
178
- ?no-image=${!project.mainPhoto?.fullpath}
179
- project-img
180
- src=${project.mainPhoto?.fullpath || '/assets/images/no-image.png'}
181
- />
182
-
183
- <span project-info>
184
- <div name>${project.name}</div>
185
- <div content>${project.buildingComplex.address}</div>
186
- <div content>면적: ${project.buildingComplex?.area?.toLocaleString() || ''}㎡</div>
187
- <div content>착공~준공: ${project.startDate} ~ ${project.endDate}</div>
188
- <div content>발주처: <strong>${project.buildingComplex.clientCompany}</strong></div>
189
- </span>
190
-
191
- <span project-state>
192
- <div progress>
193
- <md-linear-progress buffer="100" max="100" value=${project.totalProgress || 0}> </md-linear-progress>
194
- <span>전체</span>
195
- <span>${project.totalProgress || 0}%</span>
196
- </div>
197
- <div>시공사: ${project.buildingComplex.constructionCompany}</div>
198
- <div>건설구분: ${project.buildingComplex.constructionType}</div>
199
- <div>세대수: ${project.buildingComplex?.householdCount?.toLocaleString() || ''}세대</div>
200
- <div>기타: ${project.buildingComplex.etc}</div>
201
- </span>
202
- </a>
203
- </div>
204
- `
205
- })}
206
- </div>
207
- `
208
- }
209
-
210
- async pageUpdated(changes: any, lifecycle: any) {
211
- if (this.active) {
212
- this.getProjectList()
213
- }
214
- }
215
-
216
- async getProjectList() {
217
- const response = await client.query({
218
- query: gql`
219
- query Projects($filters: [Filter!]) {
220
- projects(filters: $filters) {
221
- items {
222
- id
223
- name
224
- startDate
225
- endDate
226
- mainPhoto {
227
- fullpath
228
- }
229
- totalProgress
230
- weeklyProgress
231
- kpi
232
- inspPassRate
233
- robotProgressRate
234
- structuralSafetyRate
235
- buildingComplex {
236
- address
237
- area
238
- clientCompany
239
- constructionCompany
240
- constructionType
241
- householdCount
242
- etc
243
- }
244
- }
245
- total
246
- }
247
- }
248
- `,
249
- variables: {
250
- filters: [
251
- {
252
- name: 'name',
253
- operator: 'search',
254
- value: `%${this.projectName}%`
255
- },
256
- {
257
- name: 'state',
258
- operator: 'eq',
259
- value: ProjectState.COMPLETED
260
- }
261
- ]
262
- }
263
- })
264
-
265
- this.projectList = response.data.projects?.items || []
266
- this.projectCount = response.data.projects?.total || 0
267
- }
268
-
269
- // Input 요소의 값이 변경될 때 호출되는 콜백 함수
270
- private _onInputChange(event: InputEvent) {
271
- const target = event.target as HTMLInputElement
272
- this[target.name] = target.value
273
- }
274
-
275
- // 검색창에서 엔터입력시 검색
276
- private _onKeypress(event: KeyboardEvent) {
277
- if (event.code === 'Enter') {
278
- this.getProjectList()
279
- }
280
- }
281
- }