@dssp/supervision 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (217) hide show
  1. package/dist-client/graphql/building-inspection.d.ts +1 -0
  2. package/dist-client/graphql/building-inspection.js +100 -0
  3. package/dist-client/graphql/building-inspection.js.map +1 -0
  4. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +9 -0
  5. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +130 -72
  6. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  7. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -0
  8. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +77 -14
  9. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  10. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +18 -2
  11. package/dist-client/pages/building-inspection/building-inspection-list.js +360 -28
  12. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  13. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +31 -9
  14. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  15. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +27 -0
  16. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +542 -0
  17. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  18. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  19. package/dist-client/pages/building-inspection/component/image-preview-popup.js +351 -0
  20. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  21. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +20 -0
  22. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +432 -0
  23. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  24. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +30 -0
  25. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +479 -0
  26. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  27. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  28. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +401 -0
  29. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  30. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +2 -1
  31. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +39 -17
  32. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  33. package/dist-client/pages/building-inspection/inspection-create-popup.js +22 -9
  34. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  35. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +60 -0
  36. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +1132 -0
  37. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -0
  38. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.d.ts +2 -0
  39. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +740 -0
  40. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -0
  41. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.d.ts +19 -0
  42. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js +205 -0
  43. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js.map +1 -0
  44. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.d.ts +1 -0
  45. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js +304 -0
  46. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js.map +1 -0
  47. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +15 -0
  48. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js +430 -0
  49. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js.map +1 -0
  50. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  51. package/dist-client/pages/checklist/attachment-list-popup.js +250 -67
  52. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  53. package/dist-client/pages/checklist/checklist-view.d.ts +7 -0
  54. package/dist-client/pages/checklist/checklist-view.js +363 -185
  55. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  56. package/dist-client/pages/checklist/comment-list-popup.js +14 -3
  57. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  58. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  59. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  60. package/dist-client/pages/checklist/inspection-info-popup.d.ts +50 -0
  61. package/dist-client/pages/checklist/inspection-info-popup.js +684 -0
  62. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  63. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  64. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  65. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  66. package/dist-client/pages/checklist-template/checklist-template-item.js +8 -3
  67. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  68. package/dist-client/pages/checklist-template/checklist-template-list.js +2 -2
  69. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  70. package/dist-client/route.d.ts +1 -1
  71. package/dist-client/route.js +3 -0
  72. package/dist-client/route.js.map +1 -1
  73. package/dist-client/stt/speech-to-text.d.ts +36 -0
  74. package/dist-client/stt/speech-to-text.js +89 -0
  75. package/dist-client/stt/speech-to-text.js.map +1 -0
  76. package/dist-client/stt/stt-utils.d.ts +28 -0
  77. package/dist-client/stt/stt-utils.js +146 -0
  78. package/dist-client/stt/stt-utils.js.map +1 -0
  79. package/dist-client/tsconfig.tsbuildinfo +1 -1
  80. package/dist-server/service/action-plan/index.d.ts +0 -1
  81. package/dist-server/service/action-plan/index.js +1 -2
  82. package/dist-server/service/action-plan/index.js.map +1 -1
  83. package/dist-server/service/building-inspection/building-inspection-history.d.ts +1 -0
  84. package/dist-server/service/building-inspection/building-inspection-history.js +5 -0
  85. package/dist-server/service/building-inspection/building-inspection-history.js.map +1 -1
  86. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +3 -3
  87. package/dist-server/service/building-inspection/building-inspection-mutation.js +145 -34
  88. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  89. package/dist-server/service/building-inspection/building-inspection-query.d.ts +3 -4
  90. package/dist-server/service/building-inspection/building-inspection-query.js +46 -30
  91. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  92. package/dist-server/service/building-inspection/building-inspection-type.d.ts +28 -9
  93. package/dist-server/service/building-inspection/building-inspection-type.js +96 -17
  94. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  95. package/dist-server/service/building-inspection/building-inspection.d.ts +13 -0
  96. package/dist-server/service/building-inspection/building-inspection.js +55 -2
  97. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  98. package/dist-server/service/building-inspection/index.d.ts +5 -8
  99. package/dist-server/service/building-inspection/index.js +11 -6
  100. package/dist-server/service/building-inspection/index.js.map +1 -1
  101. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  102. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +56 -0
  103. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  104. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +16 -0
  105. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +171 -0
  106. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  107. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +23 -0
  108. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +90 -0
  109. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  110. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +33 -0
  111. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +132 -0
  112. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  113. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  114. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  115. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  116. package/dist-server/service/building-inspection-history/building-inspection-history-query.d.ts +16 -0
  117. package/dist-server/service/building-inspection-history/building-inspection-history-query.js +120 -0
  118. package/dist-server/service/building-inspection-history/building-inspection-history-query.js.map +1 -0
  119. package/dist-server/service/building-inspection-history/building-inspection-history-type.d.ts +5 -0
  120. package/dist-server/service/building-inspection-history/building-inspection-history-type.js +21 -0
  121. package/dist-server/service/building-inspection-history/building-inspection-history-type.js.map +1 -0
  122. package/dist-server/service/building-inspection-history/building-inspection-history.d.ts +34 -0
  123. package/dist-server/service/building-inspection-history/building-inspection-history.js +157 -0
  124. package/dist-server/service/building-inspection-history/building-inspection-history.js.map +1 -0
  125. package/dist-server/service/{building-inspection → building-inspection-history}/event-subscriber.d.ts +1 -1
  126. package/dist-server/service/{building-inspection → building-inspection-history}/event-subscriber.js +1 -1
  127. package/dist-server/service/building-inspection-history/event-subscriber.js.map +1 -0
  128. package/dist-server/service/building-inspection-history/index.d.ts +6 -0
  129. package/dist-server/service/building-inspection-history/index.js +10 -0
  130. package/dist-server/service/building-inspection-history/index.js.map +1 -0
  131. package/dist-server/service/checklist/checklist-history.d.ts +8 -0
  132. package/dist-server/service/checklist/checklist-history.js +36 -0
  133. package/dist-server/service/checklist/checklist-history.js.map +1 -1
  134. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  135. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  136. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  137. package/dist-server/service/checklist/checklist-query.d.ts +6 -0
  138. package/dist-server/service/checklist/checklist-query.js +63 -0
  139. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  140. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  141. package/dist-server/service/checklist/checklist-type.js +1 -49
  142. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  143. package/dist-server/service/checklist/checklist.d.ts +38 -3
  144. package/dist-server/service/checklist/checklist.js +131 -15
  145. package/dist-server/service/checklist/checklist.js.map +1 -1
  146. package/dist-server/service/checklist/event-subscriber.d.ts +2 -2
  147. package/dist-server/service/checklist/event-subscriber.js +2 -2
  148. package/dist-server/service/checklist/event-subscriber.js.map +1 -1
  149. package/dist-server/service/checklist/index.d.ts +1 -4
  150. package/dist-server/service/checklist/index.js +2 -5
  151. package/dist-server/service/checklist/index.js.map +1 -1
  152. package/dist-server/service/checklist-history/checklist-history-query.d.ts +11 -0
  153. package/dist-server/service/checklist-history/checklist-history-query.js +77 -0
  154. package/dist-server/service/checklist-history/checklist-history-query.js.map +1 -0
  155. package/dist-server/service/checklist-history/checklist-history-type.d.ts +5 -0
  156. package/dist-server/service/checklist-history/checklist-history-type.js +21 -0
  157. package/dist-server/service/checklist-history/checklist-history-type.js.map +1 -0
  158. package/dist-server/service/checklist-history/checklist-history.d.ts +50 -0
  159. package/dist-server/service/checklist-history/checklist-history.js +239 -0
  160. package/dist-server/service/checklist-history/checklist-history.js.map +1 -0
  161. package/dist-server/service/checklist-history/event-subscriber.d.ts +7 -0
  162. package/dist-server/service/checklist-history/event-subscriber.js +21 -0
  163. package/dist-server/service/checklist-history/event-subscriber.js.map +1 -0
  164. package/dist-server/service/checklist-history/index.d.ts +6 -0
  165. package/dist-server/service/checklist-history/index.js +10 -0
  166. package/dist-server/service/checklist-history/index.js.map +1 -0
  167. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  168. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  169. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  170. package/dist-server/service/checklist-item/index.d.ts +0 -1
  171. package/dist-server/service/checklist-item/index.js +1 -2
  172. package/dist-server/service/checklist-item/index.js.map +1 -1
  173. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  174. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  175. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  176. package/dist-server/service/checklist-item-comment/index.d.ts +0 -2
  177. package/dist-server/service/checklist-item-comment/index.js +1 -3
  178. package/dist-server/service/checklist-item-comment/index.js.map +1 -1
  179. package/dist-server/service/checklist-item-history/checklist-item-history-query.d.ts +16 -0
  180. package/dist-server/service/checklist-item-history/checklist-item-history-query.js +123 -0
  181. package/dist-server/service/checklist-item-history/checklist-item-history-query.js.map +1 -0
  182. package/dist-server/service/checklist-item-history/checklist-item-history-type.d.ts +5 -0
  183. package/dist-server/service/checklist-item-history/checklist-item-history-type.js +21 -0
  184. package/dist-server/service/checklist-item-history/checklist-item-history-type.js.map +1 -0
  185. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +25 -0
  186. package/dist-server/service/checklist-item-history/checklist-item-history.js +123 -0
  187. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -0
  188. package/dist-server/service/checklist-item-history/event-subscriber.d.ts +7 -0
  189. package/dist-server/service/checklist-item-history/event-subscriber.js +21 -0
  190. package/dist-server/service/checklist-item-history/event-subscriber.js.map +1 -0
  191. package/dist-server/service/checklist-item-history/index.d.ts +6 -0
  192. package/dist-server/service/checklist-item-history/index.js +10 -0
  193. package/dist-server/service/checklist-item-history/index.js.map +1 -0
  194. package/dist-server/service/checklist-template-item/checklist-template-item.js +2 -4
  195. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  196. package/dist-server/service/index.d.ts +4 -2
  197. package/dist-server/service/index.js +22 -13
  198. package/dist-server/service/index.js.map +1 -1
  199. package/dist-server/service/issue/index.d.ts +0 -1
  200. package/dist-server/service/issue/index.js +1 -2
  201. package/dist-server/service/issue/index.js.map +1 -1
  202. package/dist-server/service/project-report/index.d.ts +0 -1
  203. package/dist-server/service/project-report/index.js +1 -2
  204. package/dist-server/service/project-report/index.js.map +1 -1
  205. package/dist-server/service/project-report/project-report.d.ts +0 -2
  206. package/dist-server/service/project-report/project-report.js +0 -6
  207. package/dist-server/service/project-report/project-report.js.map +1 -1
  208. package/dist-server/service/supervisor/index.d.ts +0 -1
  209. package/dist-server/service/supervisor/index.js +1 -2
  210. package/dist-server/service/supervisor/index.js.map +1 -1
  211. package/dist-server/tsconfig.tsbuildinfo +1 -1
  212. package/package.json +13 -13
  213. package/things-factory.config.js +3 -1
  214. package/dist-server/service/building-inspection/event-subscriber.js.map +0 -1
  215. package/dist-server/service/checklist-item-comment/event-subscriber.d.ts +0 -7
  216. package/dist-server/service/checklist-item-comment/event-subscriber.js +0 -21
  217. package/dist-server/service/checklist-item-comment/event-subscriber.js.map +0 -1
@@ -0,0 +1,432 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/button/elevated-button.js';
3
+ import '@material/web/icon/icon.js';
4
+ import '@material/web/button/outlined-button.js';
5
+ import { css, html, LitElement } from 'lit';
6
+ import { customElement, property } from 'lit/decorators.js';
7
+ import { ScrollbarStyles } from '@operato/styles';
8
+ import './photo-album-popup';
9
+ export var InspectionMode;
10
+ (function (InspectionMode) {
11
+ InspectionMode["EDIT"] = "EDIT";
12
+ InspectionMode["VIEW"] = "VIEW";
13
+ })(InspectionMode || (InspectionMode = {}));
14
+ let InspectionRequestDocument = class InspectionRequestDocument extends LitElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.checklist = {};
18
+ this.buildingInspection = {};
19
+ this.mode = InspectionMode.VIEW;
20
+ }
21
+ render() {
22
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
23
+ const headerDate = this._formatDate(new Date(((_a = this.checklist) === null || _a === void 0 ? void 0 : _a.inspectionRequestUpdatedAt) || Date.now()));
24
+ const requestDate = this._formatDate(new Date(this.buildingInspection.requestDate));
25
+ const attachmentCount = (_d = (_c = (_b = this.buildingInspection) === null || _b === void 0 ? void 0 : _b.checklist) === null || _c === void 0 ? void 0 : _c.checklistItems) === null || _d === void 0 ? void 0 : _d.reduce((acc, item) => {
26
+ return acc + item.checklistItemAttachmentCount;
27
+ }, 0);
28
+ return html `
29
+ <div class="document-container">
30
+ <div class="document-header">
31
+ <div class="document-title">검측요청서</div>
32
+ </div>
33
+
34
+ <div class="document-body">
35
+ <div class="date-section">${headerDate}</div>
36
+
37
+ <div class="request-info">
38
+ <div class="recipient-section">
39
+ <div class="recipient-item">
40
+ <span class="recipient-label">문서 번호:</span>
41
+ <span>${((_e = this.checklist) === null || _e === void 0 ? void 0 : _e.inspectionRequestDocumentNo) || ''}</span>
42
+ </div>
43
+ <div class="recipient-item">
44
+ <span class="recipient-label">수신:</span>
45
+ <span>${(_j = (_h = (_g = (_f = this.buildingInspection) === null || _f === void 0 ? void 0 : _f.buildingLevel) === null || _g === void 0 ? void 0 : _g.building) === null || _h === void 0 ? void 0 : _h.buildingComplex) === null || _j === void 0 ? void 0 : _j.supervisoryCompany}</span>
46
+ </div>
47
+ </div>
48
+
49
+ <div style="margin: 15px 0;">다음과 같은 세부공종에 대하여 검측요청 하오니 검사 후 승인하여 주시 기 바랍니다.</div>
50
+
51
+ <table class="request-table">
52
+ <tr>
53
+ <th>위치 및 공종</th>
54
+ <td>${(((_k = this.checklist) === null || _k === void 0 ? void 0 : _k.location) || '') + ' - ' + (((_l = this.checklist) === null || _l === void 0 ? void 0 : _l.constructionType) || '')}</td>
55
+ </tr>
56
+ <tr>
57
+ <th>검측 부위</th>
58
+ <td>${((_o = (_m = this.checklist) === null || _m === void 0 ? void 0 : _m.inspectionParts) === null || _o === void 0 ? void 0 : _o.join(', ')) || ''}</td>
59
+ </tr>
60
+ <tr>
61
+ <th>검측 요구일시</th>
62
+ <td>${requestDate}</td>
63
+ </tr>
64
+ <tr>
65
+ <th>검측 사항</th>
66
+ <td>
67
+ <input
68
+ type="text"
69
+ class="inspection-memo-input"
70
+ .value=${((_p = this.checklist) === null || _p === void 0 ? void 0 : _p.inspectionRequestMemo) || ''}
71
+ @input=${this._onInspectionMemoChange}
72
+ ?disabled=${this.mode === InspectionMode.VIEW}
73
+ placeholder="검측사항을 입력하세요."
74
+ />
75
+ </td>
76
+ </tr>
77
+ </table>
78
+ </div>
79
+
80
+ <div class="document-footer">
81
+ <div class="attachment-section">
82
+ <div class="attachment-title">첨부 파일</div>
83
+ <div class="attachment-list">
84
+ <div class="attachment-item">시공자의 검측 체크리스트</div>
85
+ ${this.mode === InspectionMode.EDIT
86
+ ? html `
87
+ <div class="attachment-item upload">
88
+ 실명부
89
+ <md-outlined-button @click=${this._onNameListUpload.bind(this)}>
90
+ ${((_q = this.checklist) === null || _q === void 0 ? void 0 : _q.nameListAttachment) ? '다시 업로드' : '업로드'}
91
+ </md-outlined-button>
92
+ ${((_r = this.checklist) === null || _r === void 0 ? void 0 : _r.nameListAttachment) ? html `<span>(업로드 완료)</span>` : ''}
93
+ </div>
94
+ `
95
+ : ((_s = this.checklist) === null || _s === void 0 ? void 0 : _s.nameListAttachment)
96
+ ? html `<div class="attachment-item">실명부</div>`
97
+ : ''}
98
+ ${attachmentCount > 0 ? html `<div class="attachment-item">첨부 사진 ${attachmentCount}개</div>` : ''}
99
+ </div>
100
+ </div>
101
+
102
+ <div class="signature-section">
103
+ <div class="signature-box">
104
+ <div class="signature-title">공종별 시공 관리자</div>
105
+ <div class="signature-name">${(_u = (_t = this.checklist) === null || _t === void 0 ? void 0 : _t.taskConstructor) === null || _u === void 0 ? void 0 : _u.name}</div>
106
+ <div class="signature-container">
107
+ ${((_v = this.checklist) === null || _v === void 0 ? void 0 : _v.taskConstructorSignature)
108
+ ? html `<img class="signature-image" src="${this.checklist.taskConstructorSignature}" alt="서명" />`
109
+ : ''}
110
+ </div>
111
+ </div>
112
+ <div class="signature-box">
113
+ <div class="signature-title">총괄 시공 책임자</div>
114
+ <div class="signature-name">${(_x = (_w = this.checklist) === null || _w === void 0 ? void 0 : _w.overallConstructor) === null || _x === void 0 ? void 0 : _x.name}</div>
115
+ <div class="signature-container">
116
+ ${((_y = this.checklist) === null || _y === void 0 ? void 0 : _y.overallConstructorSignature)
117
+ ? html `<img class="signature-image" src="${this.checklist.overallConstructorSignature}" alt="서명" />`
118
+ : ''}
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ </div>
125
+
126
+ ${this.mode === InspectionMode.EDIT
127
+ ? html `
128
+ <div class="button-container">
129
+ <md-elevated-button @click=${this._onConfirm}> 확인 </md-elevated-button>
130
+ </div>
131
+ `
132
+ : ''}
133
+ `;
134
+ }
135
+ _formatDate(date) {
136
+ return `${date.getFullYear()}. ${String(date.getMonth() + 1).padStart(2, '0')}. ${String(date.getDate()).padStart(2, '0')}.`;
137
+ }
138
+ _onInspectionMemoChange(e) {
139
+ const target = e.target;
140
+ this.checklist = Object.assign(Object.assign({}, this.checklist), { inspectionRequestMemo: target.value });
141
+ // 부모 컴포넌트에 변경사항 전달
142
+ this.dispatchEvent(new CustomEvent('inspection-memo-change', {
143
+ detail: { inspectionRequestMemo: target.value },
144
+ bubbles: true
145
+ }));
146
+ }
147
+ // 실명부 업로드
148
+ _onNameListUpload() {
149
+ const input = document.createElement('input');
150
+ input.type = 'file';
151
+ input.accept = '.pdf,.doc,.docx,.jpg,.jpeg,.png';
152
+ input.onchange = (e) => {
153
+ const file = e.target.files[0];
154
+ if (file) {
155
+ // checklist에 파일과 업로드 플래그 저장
156
+ this.checklist = Object.assign(Object.assign({}, this.checklist), { nameListAttachment: file, isNameListAttachmentUploaded: true });
157
+ // 부모 컴포넌트에 변경사항 알림
158
+ this.dispatchEvent(new CustomEvent('name-list-file-selected', { detail: { file } }));
159
+ this.requestUpdate();
160
+ }
161
+ };
162
+ input.click();
163
+ }
164
+ // 확인 버튼
165
+ _onConfirm() {
166
+ this.dispatchEvent(new CustomEvent('popup-close', { bubbles: true }));
167
+ history.back();
168
+ }
169
+ };
170
+ InspectionRequestDocument.styles = [
171
+ ScrollbarStyles,
172
+ css `
173
+ :host {
174
+ display: block;
175
+ padding: 20px;
176
+ font-family: 'Noto Sans KR', sans-serif;
177
+ line-height: 1.4;
178
+ overflow-y: auto;
179
+ }
180
+
181
+ .document-container {
182
+ max-width: 800px;
183
+ margin: 0 auto;
184
+ background: white;
185
+ border: 2px solid #333;
186
+ }
187
+
188
+ .document-header {
189
+ text-align: center;
190
+ padding: 15px;
191
+ border-bottom: 1px solid #333;
192
+ }
193
+
194
+ .document-title {
195
+ font-size: 18px;
196
+ font-weight: bold;
197
+ margin-bottom: 10px;
198
+ }
199
+
200
+ .document-body {
201
+ padding: 20px;
202
+ }
203
+
204
+ .request-info {
205
+ margin-bottom: 20px;
206
+ }
207
+
208
+ .request-table {
209
+ width: 100%;
210
+ border-collapse: collapse;
211
+ margin-bottom: 20px;
212
+ }
213
+
214
+ .request-table th,
215
+ .request-table td {
216
+ border: 1px solid #333;
217
+ padding: 8px;
218
+ text-align: left;
219
+ }
220
+
221
+ .request-table th {
222
+ background-color: #f5f5f5;
223
+ font-weight: bold;
224
+ width: 120px;
225
+ }
226
+
227
+ .inspection-items {
228
+ margin: 20px 0;
229
+ }
230
+
231
+ .inspection-items textarea {
232
+ width: 100%;
233
+ min-height: 100px;
234
+ border: 1px solid #ddd;
235
+ padding: 10px;
236
+ font-family: inherit;
237
+ resize: vertical;
238
+ }
239
+
240
+ .signature-section {
241
+ display: flex;
242
+ flex-direction: column;
243
+ align-items: flex-end;
244
+ gap: 15px;
245
+ }
246
+
247
+ .signature-box {
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 15px;
251
+ text-align: right;
252
+ }
253
+
254
+ .signature-title {
255
+ font-size: 14px;
256
+ font-weight: bold;
257
+ color: #333;
258
+ min-width: 120px;
259
+ }
260
+
261
+ .signature-name {
262
+ font-size: 14px;
263
+ color: #333;
264
+ }
265
+
266
+ .signature-container {
267
+ position: relative;
268
+ min-width: 100px;
269
+ min-height: 60px;
270
+ display: flex;
271
+ align-items: center;
272
+ justify-content: center;
273
+ }
274
+
275
+ .signature-container::after {
276
+ content: '(인)';
277
+ position: absolute;
278
+ bottom: 5px;
279
+ right: 5px;
280
+ font-size: 12px;
281
+ color: #333;
282
+ font-weight: bold;
283
+ z-index: 2;
284
+ }
285
+
286
+ .signature-image {
287
+ max-width: 140px;
288
+ max-height: 60px;
289
+ width: auto;
290
+ height: auto;
291
+ }
292
+
293
+ .attachment-section {
294
+ margin-top: 30px;
295
+ margin-bottom: 30px;
296
+ }
297
+
298
+ .attachment-title {
299
+ font-weight: bold;
300
+ font-size: 14px;
301
+ color: #333;
302
+ margin-bottom: 10px;
303
+ display: flex;
304
+ align-items: center;
305
+ gap: 8px;
306
+ }
307
+
308
+ .attachment-list {
309
+ margin-left: 30px;
310
+ }
311
+
312
+ .attachment-item {
313
+ margin-bottom: 5px;
314
+ color: #2196f3;
315
+ font-size: 14px;
316
+ line-height: 1.5;
317
+ }
318
+
319
+ .attachment-item.upload {
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 10px;
323
+ }
324
+
325
+ .attachment-item.upload md-outlined-button {
326
+ --md-outlined-button-container-height: 24px;
327
+ --md-outlined-button-label-text-size: 12px;
328
+ --md-outlined-button-outline-color: #666;
329
+ --md-outlined-button-label-text-color: #666;
330
+ }
331
+
332
+ .attachment-item.upload span {
333
+ color: #666;
334
+ font-size: 12px;
335
+ }
336
+
337
+ .attachment-icon {
338
+ display: none;
339
+ }
340
+
341
+ .date-section {
342
+ text-align: right;
343
+ margin-bottom: 20px;
344
+ font-size: 14px;
345
+ }
346
+
347
+ .form-row {
348
+ display: flex;
349
+ align-items: flex-start;
350
+ margin-bottom: 10px;
351
+ }
352
+
353
+ .form-label {
354
+ font-weight: bold;
355
+ width: 100px;
356
+ margin-right: 10px;
357
+ }
358
+
359
+ .recipient-section {
360
+ margin-bottom: 30px;
361
+ }
362
+
363
+ .recipient-item {
364
+ display: flex;
365
+ margin-bottom: 5px;
366
+ }
367
+
368
+ .recipient-label {
369
+ font-weight: bold;
370
+ margin-right: 18px;
371
+ }
372
+
373
+ .inspection-memo-input {
374
+ width: 100%;
375
+ max-width: -webkit-fill-available;
376
+ height: 40px;
377
+ border: 1px solid #ddd;
378
+ padding: 10px;
379
+ font-size: 15px;
380
+ border-radius: 5px;
381
+ }
382
+
383
+ .inspection-memo-text {
384
+ padding: 10px;
385
+ font-size: 15px;
386
+ color: #495057;
387
+ border: 1px solid #e9ecef;
388
+ border-radius: 5px;
389
+ min-height: 20px;
390
+ }
391
+
392
+ .button-container {
393
+ display: flex;
394
+ justify-content: center;
395
+ margin-top: 20px;
396
+ padding: 15px 0;
397
+ border-top: 1px solid #ddd;
398
+ }
399
+
400
+ .button-container md-elevated-button {
401
+ background-color: #3498db;
402
+ color: white;
403
+ padding: 12px 30px;
404
+ font-size: 16px;
405
+ font-weight: bold;
406
+ border-radius: 8px;
407
+ }
408
+
409
+ .document-footer {
410
+ display: flex;
411
+ justify-content: space-between;
412
+ align-items: center;
413
+ }
414
+ `
415
+ ];
416
+ __decorate([
417
+ property({ type: Object }),
418
+ __metadata("design:type", Object)
419
+ ], InspectionRequestDocument.prototype, "checklist", void 0);
420
+ __decorate([
421
+ property({ type: Object }),
422
+ __metadata("design:type", Object)
423
+ ], InspectionRequestDocument.prototype, "buildingInspection", void 0);
424
+ __decorate([
425
+ property({ type: String }),
426
+ __metadata("design:type", String)
427
+ ], InspectionRequestDocument.prototype, "mode", void 0);
428
+ InspectionRequestDocument = __decorate([
429
+ customElement('inspection-request-document')
430
+ ], InspectionRequestDocument);
431
+ export { InspectionRequestDocument };
432
+ //# sourceMappingURL=inspection-request-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection-request-document.js","sourceRoot":"","sources":["../../../../../client/pages/building-inspection/component/inspection-document/inspection-request-document.ts"],"names":[],"mappings":";AAAA,OAAO,yCAAyC,CAAA;AAChD,OAAO,4BAA4B,CAAA;AACnC,OAAO,yCAAyC,CAAA;AAEhD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,qBAAqB,CAAA;AAE5B,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAGM,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,UAAU;IAAlD;;QAwPuB,cAAS,GAAQ,EAAE,CAAA;QACnB,uBAAkB,GAAQ,EAAE,CAAA;QAC5B,SAAI,GAAmB,cAAc,CAAC,IAAI,CAAA;IAkKxE,CAAC;IAhKC,MAAM;;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,0BAA0B,KAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACvG,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAA;QACnF,MAAM,eAAe,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,kBAAkB,0CAAE,SAAS,0CAAE,cAAc,0CAAE,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/F,OAAO,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAA;QAChD,CAAC,EAAE,CAAC,CAAC,CAAA;QAEL,OAAO,IAAI,CAAA;;;;;;;sCAOuB,UAAU;;;;;;wBAMxB,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,2BAA2B,KAAI,EAAE;;;;wBAIjD,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAE,QAAQ,0CAAE,eAAe,0CAAE,kBAAkB;;;;;;;;;sBASvF,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,KAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,gBAAgB,KAAI,EAAE,CAAC;;;;sBAInF,CAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,eAAe,0CAAE,IAAI,CAAC,IAAI,CAAC,KAAI,EAAE;;;;sBAIjD,WAAW;;;;;;;;6BAQJ,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,qBAAqB,KAAI,EAAE;6BAC3C,IAAI,CAAC,uBAAuB;gCACzB,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;;;;;;;;;;;;;kBAa/C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;YACjC,CAAC,CAAC,IAAI,CAAA;;;qDAG6B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC1D,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,kBAAkB,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;;0BAEvD,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,kBAAkB,EAAC,CAAC,CAAC,IAAI,CAAA,uBAAuB,CAAC,CAAC,CAAC,EAAE;;qBAE1E;YACH,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,kBAAkB;gBAClC,CAAC,CAAC,IAAI,CAAA,wCAAwC;gBAC9C,CAAC,CAAC,EAAE;kBACN,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,sCAAsC,eAAe,SAAS,CAAC,CAAC,CAAC,EAAE;;;;;;;8CAOjE,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,eAAe,0CAAE,IAAI;;oBAE/D,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,wBAAwB;YACxC,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,SAAS,CAAC,wBAAwB,eAAe;YACjG,CAAC,CAAC,EAAE;;;;;8CAKsB,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,kBAAkB,0CAAE,IAAI;;oBAElE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,2BAA2B;YAC3C,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,SAAS,CAAC,2BAA2B,eAAe;YACpG,CAAC,CAAC,EAAE;;;;;;;;QAQhB,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;YACjC,CAAC,CAAC,IAAI,CAAA;;2CAE6B,IAAI,CAAC,UAAU;;WAE/C;YACH,CAAC,CAAC,EAAE;KACP,CAAA;IACH,CAAC;IAEO,WAAW,CAAC,IAAU;QAC5B,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAA;IAC9H,CAAC;IAEO,uBAAuB,CAAC,CAAQ;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC3C,IAAI,CAAC,SAAS,mCAAQ,IAAI,CAAC,SAAS,KAAE,qBAAqB,EAAE,MAAM,CAAC,KAAK,GAAE,CAAA;QAE3E,mBAAmB;QACnB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,wBAAwB,EAAE;YACxC,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,CAAC,KAAK,EAAE;YAC/C,OAAO,EAAE,IAAI;SACd,CAAC,CACH,CAAA;IACH,CAAC;IAED,UAAU;IACF,iBAAiB;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC7C,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA;QACnB,KAAK,CAAC,MAAM,GAAG,iCAAiC,CAAA;QAChD,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACT,4BAA4B;gBAC5B,IAAI,CAAC,SAAS,mCACT,IAAI,CAAC,SAAS,KACjB,kBAAkB,EAAE,IAAI,EACxB,4BAA4B,EAAE,IAAI,GACnC,CAAA;gBAED,mBAAmB;gBACnB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;gBACpF,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;QACH,CAAC,CAAA;QACD,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;IAED,QAAQ;IACA,UAAU;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;;AA1ZM,gCAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkPF;CACF,AArPY,CAqPZ;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4DAAoB;AACnB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qEAA6B;AAC5B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uDAA2C;AA1P3D,yBAAyB;IADrC,aAAa,CAAC,6BAA6B,CAAC;GAChC,yBAAyB,CA4ZrC","sourcesContent":["import '@material/web/button/elevated-button.js'\nimport '@material/web/icon/icon.js'\nimport '@material/web/button/outlined-button.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ScrollbarStyles } from '@operato/styles'\nimport './photo-album-popup'\n\nexport enum InspectionMode {\n EDIT = 'EDIT',\n VIEW = 'VIEW'\n}\n\n@customElement('inspection-request-document')\nexport class InspectionRequestDocument extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: block;\n padding: 20px;\n font-family: 'Noto Sans KR', sans-serif;\n line-height: 1.4;\n overflow-y: auto;\n }\n\n .document-container {\n max-width: 800px;\n margin: 0 auto;\n background: white;\n border: 2px solid #333;\n }\n\n .document-header {\n text-align: center;\n padding: 15px;\n border-bottom: 1px solid #333;\n }\n\n .document-title {\n font-size: 18px;\n font-weight: bold;\n margin-bottom: 10px;\n }\n\n .document-body {\n padding: 20px;\n }\n\n .request-info {\n margin-bottom: 20px;\n }\n\n .request-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 20px;\n }\n\n .request-table th,\n .request-table td {\n border: 1px solid #333;\n padding: 8px;\n text-align: left;\n }\n\n .request-table th {\n background-color: #f5f5f5;\n font-weight: bold;\n width: 120px;\n }\n\n .inspection-items {\n margin: 20px 0;\n }\n\n .inspection-items textarea {\n width: 100%;\n min-height: 100px;\n border: 1px solid #ddd;\n padding: 10px;\n font-family: inherit;\n resize: vertical;\n }\n\n .signature-section {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 15px;\n }\n\n .signature-box {\n display: flex;\n align-items: center;\n gap: 15px;\n text-align: right;\n }\n\n .signature-title {\n font-size: 14px;\n font-weight: bold;\n color: #333;\n min-width: 120px;\n }\n\n .signature-name {\n font-size: 14px;\n color: #333;\n }\n\n .signature-container {\n position: relative;\n min-width: 100px;\n min-height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .signature-container::after {\n content: '(인)';\n position: absolute;\n bottom: 5px;\n right: 5px;\n font-size: 12px;\n color: #333;\n font-weight: bold;\n z-index: 2;\n }\n\n .signature-image {\n max-width: 140px;\n max-height: 60px;\n width: auto;\n height: auto;\n }\n\n .attachment-section {\n margin-top: 30px;\n margin-bottom: 30px;\n }\n\n .attachment-title {\n font-weight: bold;\n font-size: 14px;\n color: #333;\n margin-bottom: 10px;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .attachment-list {\n margin-left: 30px;\n }\n\n .attachment-item {\n margin-bottom: 5px;\n color: #2196f3;\n font-size: 14px;\n line-height: 1.5;\n }\n\n .attachment-item.upload {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .attachment-item.upload md-outlined-button {\n --md-outlined-button-container-height: 24px;\n --md-outlined-button-label-text-size: 12px;\n --md-outlined-button-outline-color: #666;\n --md-outlined-button-label-text-color: #666;\n }\n\n .attachment-item.upload span {\n color: #666;\n font-size: 12px;\n }\n\n .attachment-icon {\n display: none;\n }\n\n .date-section {\n text-align: right;\n margin-bottom: 20px;\n font-size: 14px;\n }\n\n .form-row {\n display: flex;\n align-items: flex-start;\n margin-bottom: 10px;\n }\n\n .form-label {\n font-weight: bold;\n width: 100px;\n margin-right: 10px;\n }\n\n .recipient-section {\n margin-bottom: 30px;\n }\n\n .recipient-item {\n display: flex;\n margin-bottom: 5px;\n }\n\n .recipient-label {\n font-weight: bold;\n margin-right: 18px;\n }\n\n .inspection-memo-input {\n width: 100%;\n max-width: -webkit-fill-available;\n height: 40px;\n border: 1px solid #ddd;\n padding: 10px;\n font-size: 15px;\n border-radius: 5px;\n }\n\n .inspection-memo-text {\n padding: 10px;\n font-size: 15px;\n color: #495057;\n border: 1px solid #e9ecef;\n border-radius: 5px;\n min-height: 20px;\n }\n\n .button-container {\n display: flex;\n justify-content: center;\n margin-top: 20px;\n padding: 15px 0;\n border-top: 1px solid #ddd;\n }\n\n .button-container md-elevated-button {\n background-color: #3498db;\n color: white;\n padding: 12px 30px;\n font-size: 16px;\n font-weight: bold;\n border-radius: 8px;\n }\n\n .document-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n `\n ]\n\n @property({ type: Object }) checklist: any = {}\n @property({ type: Object }) buildingInspection: any = {}\n @property({ type: String }) mode: InspectionMode = InspectionMode.VIEW\n\n render() {\n const headerDate = this._formatDate(new Date(this.checklist?.inspectionRequestUpdatedAt || Date.now()))\n const requestDate = this._formatDate(new Date(this.buildingInspection.requestDate))\n const attachmentCount = this.buildingInspection?.checklist?.checklistItems?.reduce((acc, item) => {\n return acc + item.checklistItemAttachmentCount\n }, 0)\n\n return html`\n <div class=\"document-container\">\n <div class=\"document-header\">\n <div class=\"document-title\">검측요청서</div>\n </div>\n\n <div class=\"document-body\">\n <div class=\"date-section\">${headerDate}</div>\n\n <div class=\"request-info\">\n <div class=\"recipient-section\">\n <div class=\"recipient-item\">\n <span class=\"recipient-label\">문서 번호:</span>\n <span>${this.checklist?.inspectionRequestDocumentNo || ''}</span>\n </div>\n <div class=\"recipient-item\">\n <span class=\"recipient-label\">수신:</span>\n <span>${this.buildingInspection?.buildingLevel?.building?.buildingComplex?.supervisoryCompany}</span>\n </div>\n </div>\n\n <div style=\"margin: 15px 0;\">다음과 같은 세부공종에 대하여 검측요청 하오니 검사 후 승인하여 주시 기 바랍니다.</div>\n\n <table class=\"request-table\">\n <tr>\n <th>위치 및 공종</th>\n <td>${(this.checklist?.location || '') + ' - ' + (this.checklist?.constructionType || '')}</td>\n </tr>\n <tr>\n <th>검측 부위</th>\n <td>${this.checklist?.inspectionParts?.join(', ') || ''}</td>\n </tr>\n <tr>\n <th>검측 요구일시</th>\n <td>${requestDate}</td>\n </tr>\n <tr>\n <th>검측 사항</th>\n <td>\n <input\n type=\"text\"\n class=\"inspection-memo-input\"\n .value=${this.checklist?.inspectionRequestMemo || ''}\n @input=${this._onInspectionMemoChange}\n ?disabled=${this.mode === InspectionMode.VIEW}\n placeholder=\"검측사항을 입력하세요.\"\n />\n </td>\n </tr>\n </table>\n </div>\n\n <div class=\"document-footer\">\n <div class=\"attachment-section\">\n <div class=\"attachment-title\">첨부 파일</div>\n <div class=\"attachment-list\">\n <div class=\"attachment-item\">시공자의 검측 체크리스트</div>\n ${this.mode === InspectionMode.EDIT\n ? html`\n <div class=\"attachment-item upload\">\n 실명부\n <md-outlined-button @click=${this._onNameListUpload.bind(this)}>\n ${this.checklist?.nameListAttachment ? '다시 업로드' : '업로드'}\n </md-outlined-button>\n ${this.checklist?.nameListAttachment ? html`<span>(업로드 완료)</span>` : ''}\n </div>\n `\n : this.checklist?.nameListAttachment\n ? html`<div class=\"attachment-item\">실명부</div>`\n : ''}\n ${attachmentCount > 0 ? html`<div class=\"attachment-item\">첨부 사진 ${attachmentCount}개</div>` : ''}\n </div>\n </div>\n\n <div class=\"signature-section\">\n <div class=\"signature-box\">\n <div class=\"signature-title\">공종별 시공 관리자</div>\n <div class=\"signature-name\">${this.checklist?.taskConstructor?.name}</div>\n <div class=\"signature-container\">\n ${this.checklist?.taskConstructorSignature\n ? html`<img class=\"signature-image\" src=\"${this.checklist.taskConstructorSignature}\" alt=\"서명\" />`\n : ''}\n </div>\n </div>\n <div class=\"signature-box\">\n <div class=\"signature-title\">총괄 시공 책임자</div>\n <div class=\"signature-name\">${this.checklist?.overallConstructor?.name}</div>\n <div class=\"signature-container\">\n ${this.checklist?.overallConstructorSignature\n ? html`<img class=\"signature-image\" src=\"${this.checklist.overallConstructorSignature}\" alt=\"서명\" />`\n : ''}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n ${this.mode === InspectionMode.EDIT\n ? html`\n <div class=\"button-container\">\n <md-elevated-button @click=${this._onConfirm}> 확인 </md-elevated-button>\n </div>\n `\n : ''}\n `\n }\n\n private _formatDate(date: Date): string {\n return `${date.getFullYear()}. ${String(date.getMonth() + 1).padStart(2, '0')}. ${String(date.getDate()).padStart(2, '0')}.`\n }\n\n private _onInspectionMemoChange(e: Event) {\n const target = e.target as HTMLInputElement\n this.checklist = { ...this.checklist, inspectionRequestMemo: target.value }\n\n // 부모 컴포넌트에 변경사항 전달\n this.dispatchEvent(\n new CustomEvent('inspection-memo-change', {\n detail: { inspectionRequestMemo: target.value },\n bubbles: true\n })\n )\n }\n\n // 실명부 업로드\n private _onNameListUpload() {\n const input = document.createElement('input')\n input.type = 'file'\n input.accept = '.pdf,.doc,.docx,.jpg,.jpeg,.png'\n input.onchange = (e: any) => {\n const file = e.target.files[0]\n if (file) {\n // checklist에 파일과 업로드 플래그 저장\n this.checklist = {\n ...this.checklist,\n nameListAttachment: file,\n isNameListAttachmentUploaded: true\n }\n\n // 부모 컴포넌트에 변경사항 알림\n this.dispatchEvent(new CustomEvent('name-list-file-selected', { detail: { file } }))\n this.requestUpdate()\n }\n }\n input.click()\n }\n\n // 확인 버튼\n private _onConfirm() {\n this.dispatchEvent(new CustomEvent('popup-close', { bubbles: true }))\n history.back()\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import '@material/web/button/elevated-button.js';
2
+ import '@material/web/icon/icon.js';
3
+ import '@material/web/radio/radio.js';
4
+ import '@material/web/textfield/outlined-text-field.js';
5
+ import { LitElement } from 'lit';
6
+ import { InspectionMode } from './inspection-request-document';
7
+ export declare enum InspectionResultStatus {
8
+ PASS = "PASS",// 합격
9
+ FAIL = "FAIL"
10
+ }
11
+ export declare enum InspectionResultType {
12
+ GENERAL = "GENERAL",// 일반
13
+ FOCUS = "FOCUS",// 중점
14
+ CONCEALED_WORK = "CONCEALED_WORK"
15
+ }
16
+ export declare class InspectionResultNotification extends LitElement {
17
+ static styles: import("lit").CSSResult[];
18
+ checklist: any;
19
+ buildingInspection: any;
20
+ project: any;
21
+ mode: InspectionMode;
22
+ render(): import("lit-html").TemplateResult<1>;
23
+ protected updated(): void;
24
+ private _formatDate;
25
+ private _getAttachmentCount;
26
+ private _getOverallResult;
27
+ private _onInspectionTypeChange;
28
+ private _onInstructionsChange;
29
+ private _onConfirm;
30
+ }