@dssp/supervision 1.0.0-alpha.9 → 1.0.0-y.0

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 (202) 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-ai-defect.d.ts +22 -0
  5. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js +169 -0
  6. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js.map +1 -0
  7. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.d.ts +57 -0
  8. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +825 -0
  9. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -0
  10. package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +8 -6
  11. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +115 -65
  12. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -1
  13. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +9 -0
  14. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +130 -72
  15. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  16. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -0
  17. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +77 -14
  18. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  19. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +18 -2
  20. package/dist-client/pages/building-inspection/building-inspection-list.js +358 -27
  21. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  22. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +3 -0
  23. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +104 -17
  24. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  25. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +27 -0
  26. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +542 -0
  27. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  28. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  29. package/dist-client/pages/building-inspection/component/image-preview-popup.js +351 -0
  30. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  31. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +20 -0
  32. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +432 -0
  33. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  34. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +30 -0
  35. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +479 -0
  36. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  37. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  38. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +416 -0
  39. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  40. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +2 -1
  41. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +39 -17
  42. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  43. package/dist-client/pages/building-inspection/inspection-create-popup.js +18 -8
  44. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  45. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +16 -2
  46. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +245 -43
  47. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -1
  48. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +9 -5
  49. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -1
  50. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.d.ts +19 -0
  51. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js +205 -0
  52. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js.map +1 -0
  53. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  54. package/dist-client/pages/checklist/attachment-list-popup.js +250 -67
  55. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  56. package/dist-client/pages/checklist/checklist-view.d.ts +5 -4
  57. package/dist-client/pages/checklist/checklist-view.js +95 -23
  58. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  59. package/dist-client/pages/checklist/comment-list-popup.js +14 -3
  60. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  61. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  62. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  63. package/dist-client/pages/checklist/inspection-info-popup.d.ts +50 -0
  64. package/dist-client/pages/checklist/inspection-info-popup.js +684 -0
  65. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  66. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  67. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  68. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  69. package/dist-client/pages/checklist-template/checklist-template-item.js +14 -3
  70. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  71. package/dist-client/pages/checklist-template/checklist-template-list.js +1 -1
  72. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  73. package/dist-client/route.d.ts +1 -1
  74. package/dist-client/route.js +6 -0
  75. package/dist-client/route.js.map +1 -1
  76. package/dist-client/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +2 -3
  78. package/dist-server/service/building-inspection/building-inspection-mutation.js +63 -29
  79. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  80. package/dist-server/service/building-inspection/building-inspection-query.d.ts +3 -5
  81. package/dist-server/service/building-inspection/building-inspection-query.js +16 -29
  82. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  83. package/dist-server/service/building-inspection/building-inspection-type.d.ts +22 -10
  84. package/dist-server/service/building-inspection/building-inspection-type.js +77 -23
  85. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  86. package/dist-server/service/building-inspection/building-inspection.d.ts +4 -0
  87. package/dist-server/service/building-inspection/building-inspection.js +17 -2
  88. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  89. package/dist-server/service/building-inspection/index.d.ts +3 -4
  90. package/dist-server/service/building-inspection/index.js +10 -3
  91. package/dist-server/service/building-inspection/index.js.map +1 -1
  92. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  93. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +56 -0
  94. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  95. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +16 -0
  96. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +171 -0
  97. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  98. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +23 -0
  99. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +90 -0
  100. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  101. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +33 -0
  102. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +132 -0
  103. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  104. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  105. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  106. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  107. package/dist-server/service/building-inspection-history/building-inspection-history-query.d.ts +16 -0
  108. package/dist-server/service/building-inspection-history/building-inspection-history-query.js +120 -0
  109. package/dist-server/service/building-inspection-history/building-inspection-history-query.js.map +1 -0
  110. package/dist-server/service/building-inspection-history/building-inspection-history-type.d.ts +5 -0
  111. package/dist-server/service/building-inspection-history/building-inspection-history-type.js +21 -0
  112. package/dist-server/service/building-inspection-history/building-inspection-history-type.js.map +1 -0
  113. package/dist-server/service/building-inspection-history/building-inspection-history.d.ts +34 -0
  114. package/dist-server/service/building-inspection-history/building-inspection-history.js +157 -0
  115. package/dist-server/service/building-inspection-history/building-inspection-history.js.map +1 -0
  116. package/dist-server/service/building-inspection-history/event-subscriber.d.ts +7 -0
  117. package/dist-server/service/building-inspection-history/event-subscriber.js +21 -0
  118. package/dist-server/service/building-inspection-history/event-subscriber.js.map +1 -0
  119. package/dist-server/service/building-inspection-history/index.d.ts +6 -0
  120. package/dist-server/service/building-inspection-history/index.js +10 -0
  121. package/dist-server/service/building-inspection-history/index.js.map +1 -0
  122. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  123. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  124. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  125. package/dist-server/service/checklist/checklist-query.d.ts +7 -0
  126. package/dist-server/service/checklist/checklist-query.js +83 -0
  127. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  128. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  129. package/dist-server/service/checklist/checklist-type.js +1 -49
  130. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  131. package/dist-server/service/checklist/checklist.d.ts +24 -7
  132. package/dist-server/service/checklist/checklist.js +75 -30
  133. package/dist-server/service/checklist/checklist.js.map +1 -1
  134. package/dist-server/service/checklist/event-subscriber.d.ts +7 -0
  135. package/dist-server/service/checklist/event-subscriber.js +21 -0
  136. package/dist-server/service/checklist/event-subscriber.js.map +1 -0
  137. package/dist-server/service/checklist/index.d.ts +1 -2
  138. package/dist-server/service/checklist/index.js +1 -2
  139. package/dist-server/service/checklist/index.js.map +1 -1
  140. package/dist-server/service/checklist-history/checklist-history-query.d.ts +11 -0
  141. package/dist-server/service/checklist-history/checklist-history-query.js +77 -0
  142. package/dist-server/service/checklist-history/checklist-history-query.js.map +1 -0
  143. package/dist-server/service/checklist-history/checklist-history-type.d.ts +5 -0
  144. package/dist-server/service/checklist-history/checklist-history-type.js +21 -0
  145. package/dist-server/service/checklist-history/checklist-history-type.js.map +1 -0
  146. package/dist-server/service/{checklist → checklist-history}/checklist-history.d.ts +19 -1
  147. package/dist-server/service/{checklist → checklist-history}/checklist-history.js +97 -14
  148. package/dist-server/service/checklist-history/checklist-history.js.map +1 -0
  149. package/dist-server/service/checklist-history/event-subscriber.d.ts +7 -0
  150. package/dist-server/service/checklist-history/event-subscriber.js +21 -0
  151. package/dist-server/service/checklist-history/event-subscriber.js.map +1 -0
  152. package/dist-server/service/checklist-history/index.d.ts +6 -0
  153. package/dist-server/service/checklist-history/index.js +10 -0
  154. package/dist-server/service/checklist-history/index.js.map +1 -0
  155. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  156. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  157. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  158. package/dist-server/service/checklist-item/index.d.ts +0 -1
  159. package/dist-server/service/checklist-item/index.js +1 -2
  160. package/dist-server/service/checklist-item/index.js.map +1 -1
  161. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  162. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  163. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  164. package/dist-server/service/checklist-item-history/checklist-item-history-query.d.ts +16 -0
  165. package/dist-server/service/checklist-item-history/checklist-item-history-query.js +123 -0
  166. package/dist-server/service/checklist-item-history/checklist-item-history-query.js.map +1 -0
  167. package/dist-server/service/checklist-item-history/checklist-item-history-type.d.ts +5 -0
  168. package/dist-server/service/checklist-item-history/checklist-item-history-type.js +21 -0
  169. package/dist-server/service/checklist-item-history/checklist-item-history-type.js.map +1 -0
  170. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +25 -0
  171. package/dist-server/service/checklist-item-history/checklist-item-history.js +123 -0
  172. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -0
  173. package/dist-server/service/checklist-item-history/event-subscriber.d.ts +7 -0
  174. package/dist-server/service/checklist-item-history/event-subscriber.js +21 -0
  175. package/dist-server/service/checklist-item-history/event-subscriber.js.map +1 -0
  176. package/dist-server/service/checklist-item-history/index.d.ts +6 -0
  177. package/dist-server/service/checklist-item-history/index.js +10 -0
  178. package/dist-server/service/checklist-item-history/index.js.map +1 -0
  179. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +4 -1
  180. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -1
  181. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +2 -0
  182. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +5 -0
  183. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -1
  184. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +6 -0
  185. package/dist-server/service/checklist-template-item/checklist-template-item.js +16 -1
  186. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  187. package/dist-server/service/checklist-template-item/spec-matching-service.d.ts +2 -0
  188. package/dist-server/service/checklist-template-item/spec-matching-service.js +50 -0
  189. package/dist-server/service/checklist-template-item/spec-matching-service.js.map +1 -0
  190. package/dist-server/service/index.d.ts +4 -1
  191. package/dist-server/service/index.js +22 -3
  192. package/dist-server/service/index.js.map +1 -1
  193. package/dist-server/service/project-report/project-report.d.ts +0 -2
  194. package/dist-server/service/project-report/project-report.js +0 -6
  195. package/dist-server/service/project-report/project-report.js.map +1 -1
  196. package/dist-server/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +7 -6
  198. package/things-factory.config.js +2 -0
  199. package/dist-server/service/building-inspection/building-inspection-history.d.ts +0 -17
  200. package/dist-server/service/building-inspection/building-inspection-history.js +0 -86
  201. package/dist-server/service/building-inspection/building-inspection-history.js.map +0 -1
  202. package/dist-server/service/checklist/checklist-history.js.map +0 -1
@@ -13,9 +13,11 @@ import { notify, openPopup } from '@operato/layout';
13
13
  import './component/notice-comment-popup';
14
14
  import './component/grid-inspection-create-popup';
15
15
  import { BUILDING_INSPECTION_STATUS_DISPLAY, BuildingInspectionStatus } from '../building-inspection/building-inspection-list';
16
+ import '../checklist/inspection-tab-popup';
16
17
  import { verifyBiometric } from '@things-factory/auth-base/dist-client';
17
18
  import { OxPrompt } from '@operato/popup';
18
19
  import './component/plan-preview-popup';
20
+ import './component/grid-inspection-list-layer';
19
21
  let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends ScopedElementsMixin(PageView) {
20
22
  constructor() {
21
23
  super(...arguments);
@@ -27,12 +29,14 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
27
29
  };
28
30
  this.project = Object.assign({}, this.defaultProject);
29
31
  this.buildingInspections = [];
32
+ this.cellToInspections = {};
30
33
  this.buildingInspectionSummaryOfProject = {};
31
34
  this.buildingInspectionSummaryOfBuildingLevel = {};
32
35
  this.selectedBuilding = {};
33
36
  this.selectedLevel = {};
34
37
  this.selectedInspection = {};
35
38
  this.cell = '';
39
+ this.listLayer = { open: false, cell: '', items: [] };
36
40
  }
37
41
  get context() {
38
42
  return {
@@ -40,13 +44,16 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
40
44
  };
41
45
  }
42
46
  render() {
43
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
47
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
44
48
  // 그리드 가로, 세로 길이 배열 생성
45
49
  const planXScale = Array.from({ length: ((_b = (_a = this.project) === null || _a === void 0 ? void 0 : _a.buildingComplex) === null || _b === void 0 ? void 0 : _b.planXScale) || 0 }, (_, i) => i);
46
50
  const planYScale = Array.from({ length: ((_d = (_c = this.project) === null || _c === void 0 ? void 0 : _c.buildingComplex) === null || _d === void 0 ? void 0 : _d.planYScale) || 0 }, (_, i) => i);
47
51
  return html `
48
52
  <div header>
49
- <h2>${this.project.name} ${(_e = this.selectedBuilding) === null || _e === void 0 ? void 0 : _e.name} ${(_f = this.selectedLevel) === null || _f === void 0 ? void 0 : _f.floorDisplayName}층</h2>
53
+ <h2>
54
+ <md-icon slot="icon" back @click=${() => history.back()}>arrow_back</md-icon>
55
+ ${this.project.name} ${(_e = this.selectedBuilding) === null || _e === void 0 ? void 0 : _e.name} ${(_f = this.selectedLevel) === null || _f === void 0 ? void 0 : _f.floorDisplayName}층
56
+ </h2>
50
57
  <div button-container>
51
58
  <md-elevated-button href=${`project-update/${this.project.id}`}>
52
59
  <md-icon slot="icon">assignment</md-icon>프로젝트 정보 수정
@@ -110,20 +117,30 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
110
117
  <div grid>
111
118
  ${planXScale.map(v => html ` <div row=${v}>
112
119
  ${planYScale.map(vv => {
113
- const buildingInspection = this.buildingInspections.find(i => i.cellX === v && i.cellY === vv);
114
- const status = (buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.status) || '';
115
- return html `<div
116
- column=${vv}
117
- cell=${`${v},${vv}`}
118
- buildingInspectionId=${buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.id}
119
- status=${status}
120
- @click=${this._onClickGrid}
121
- >
122
- ${this._getIconHtmlByStatus(status)}
120
+ const cellKey = `${v},${vv}`;
121
+ const inspections = this.cellToInspections[cellKey] || [];
122
+ const count = inspections.length;
123
+ let countClass = '';
124
+ if (count > 0) {
125
+ const allPass = inspections.every(i => i.status === BuildingInspectionStatus.PASS);
126
+ const anyFail = inspections.some(i => i.status === BuildingInspectionStatus.FAIL);
127
+ countClass = allPass ? 'green' : anyFail ? 'red' : 'black';
128
+ }
129
+ return html `<div column=${vv} cell=${cellKey} @click=${this._onClickGrid}>
130
+ ${count > 0 ? html `<span class="cell-count ${countClass}">${count}</span>` : ''}
123
131
  </div>`;
124
132
  })}
125
133
  </div>`)}
126
134
  </div>
135
+ ${this.listLayer.open
136
+ ? html `<grid-inspection-list-layer
137
+ .items=${this.listLayer.items}
138
+ .anchorEl=${this._getCellElement(this.listLayer.cell)}
139
+ .containerEl=${this.drawingContainer}
140
+ @select=${this._onSelectListItem}
141
+ @close=${this._closeListLayer}
142
+ ></grid-inspection-list-layer>`
143
+ : ''}
127
144
  </div>
128
145
  </div>
129
146
 
@@ -175,6 +192,7 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
175
192
  </div>
176
193
 
177
194
  <hr />
195
+
178
196
  <div>
179
197
  <div date>검측일 : ${this.selectedInspection.requestDate}</div>
180
198
  </div>
@@ -185,7 +203,28 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
185
203
  담당자 : ${(_u = (_t = this.selectedInspection) === null || _t === void 0 ? void 0 : _t.manager) === null || _u === void 0 ? void 0 : _u.name} <br />
186
204
  ${(_w = (_v = this.selectedInspection) === null || _v === void 0 ? void 0 : _v.manager) === null || _w === void 0 ? void 0 : _w.phone}
187
205
  </div>
206
+
188
207
  <hr />
208
+
209
+ ${this.selectedInspection.memo
210
+ ? html `
211
+ <div>
212
+ <div date>메모 : ${this.selectedInspection.memo}</div>
213
+ </div>
214
+ <hr />
215
+ `
216
+ : html ``}
217
+ ${((_x = this.selectedInspection.attachments) === null || _x === void 0 ? void 0 : _x.length) > 0
218
+ ? html `
219
+ <div class="attachment-info">
220
+ <span class="attachment-count">첨부파일: ${this.selectedInspection.attachments.length}개</span>
221
+ <md-elevated-button @click=${() => this._onClickUpdateInspection(1)}>
222
+ <md-icon slot="icon">attach_file</md-icon>첨부파일 보기
223
+ </md-elevated-button>
224
+ </div>
225
+ <hr />
226
+ `
227
+ : html ``}
189
228
  </div>
190
229
 
191
230
  <!-- 전층 동일 적용 버튼 -->
@@ -194,13 +233,22 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
194
233
  : html ``}
195
234
 
196
235
  <!-- 검측 정보 등록, 수정 버튼 -->
197
- ${!this.cell || this.selectedInspection.status == BuildingInspectionStatus.PASS
236
+ ${!this.cell
198
237
  ? html ``
199
238
  : !this.selectedInspection.status
200
239
  ? html `<md-outlined-button @click=${() => this._onClickCreateInspection()}>검측 정보 등록 </md-outlined-button>`
201
- : html `<md-filled-button update @click=${() => this._onClickUpdateInspection()}
202
- >검측 정보 수정
203
- </md-filled-button> `}
240
+ : this.selectedInspection.status == BuildingInspectionStatus.PASS
241
+ ? html `<md-filled-button @click=${() => this._onClickUpdateInspection()}>검측 정보 보기 </md-filled-button> `
242
+ : html `
243
+ <md-filled-button update @click=${() => this._onClickUpdateInspection()}>
244
+ 검측 정보 수정
245
+ </md-filled-button>
246
+ ${this.selectedInspection.status == BuildingInspectionStatus.WAIT
247
+ ? html `<md-filled-button delete @click=${() => this._onClickDeleteInspection()}>
248
+ 삭제
249
+ </md-filled-button>`
250
+ : html ``}
251
+ `}
204
252
  `}
205
253
  </div>
206
254
  </div>
@@ -227,6 +275,7 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
227
275
  project(id: $id) {
228
276
  id
229
277
  name
278
+ projectType
230
279
  buildingComplex {
231
280
  id
232
281
  planXScale
@@ -264,6 +313,10 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
264
313
  cellY
265
314
  status
266
315
  requestDate
316
+ checklist {
317
+ constructionType
318
+ constructionDetailType
319
+ }
267
320
  creator {
268
321
  id
269
322
  name
@@ -283,6 +336,7 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
283
336
  return;
284
337
  this.project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.project;
285
338
  this.buildingInspections = (_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.buildingInspectionsOfBuildingLevel) === null || _c === void 0 ? void 0 : _c.items;
339
+ this._groupInspectionsByCell();
286
340
  this.buildingInspectionSummaryOfProject = (_d = response.data) === null || _d === void 0 ? void 0 : _d.buildingInspectionSummaryOfProject;
287
341
  this.buildingInspectionSummaryOfBuildingLevel = (_e = response.data) === null || _e === void 0 ? void 0 : _e.buildingInspectionSummaryOfBuildingLevel;
288
342
  // buildingId 파라미터가 있으면 선택된 빌딩, 없으면 첫번째 빌딩 선택
@@ -343,6 +397,10 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
343
397
  cellY
344
398
  status
345
399
  requestDate
400
+ memo
401
+ attachments {
402
+ id
403
+ }
346
404
 
347
405
  checklist {
348
406
  id
@@ -405,14 +463,22 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
405
463
  async _onClickGrid(e) {
406
464
  var _a;
407
465
  const target = e.currentTarget;
408
- const buildingInspectionId = target.getAttribute('buildingInspectionId');
409
466
  const cell = target.getAttribute('cell');
410
467
  // active 속성 모두 제거후 클릭한 셀만 active로 변경
411
- (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('div[cell][active]').forEach(e => e.removeAttribute('active'));
412
- target.setAttribute('active', true);
413
- const [cellX, cellY] = cell.split(',');
414
- this.selectedInspection = buildingInspectionId ? await this._getBuildingInspection(buildingInspectionId) : { cellX, cellY };
415
- this.cell = cell;
468
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('div[cell][active]').forEach(el => el.removeAttribute('active'));
469
+ target.setAttribute('active', 'true');
470
+ const [cellX, cellY] = (cell || '').split(',');
471
+ const items = this.cellToInspections[cell || ''] || [];
472
+ // 검측이 없으면 기존처럼 등록 가능하도록 선택만 처리
473
+ if (items.length === 0) {
474
+ this._closeListLayer();
475
+ this.selectedInspection = { cellX, cellY };
476
+ this.cell = cell || '';
477
+ return;
478
+ }
479
+ // 검측이 있으면 레이어 오픈
480
+ this.cell = cell || '';
481
+ this._openListLayer(target, items, this.cell);
416
482
  }
417
483
  _onClicPopupNotice() {
418
484
  var _a, _b;
@@ -447,26 +513,17 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
447
513
  ></grid-inspection-create-popup>
448
514
  `, { backdrop: true, size: 'large', title: '검측 요청서 등록' });
449
515
  }
450
- _onClickUpdateInspection() {
451
- var _a;
516
+ _onClickUpdateInspection(initialTab = 0) {
452
517
  openPopup(html `
453
- <div style="overflow-y: auto; height: 100%;">
454
- <checklist-view
455
- .mode=${"EDITOR" /* ChecklistMode.EDITOR */}
456
- .status=${this.selectedInspection.status}
457
- .checklist=${this.selectedInspection.checklist || {}}
458
- .buildingComplex=${((_a = this.project) === null || _a === void 0 ? void 0 : _a.buildingComplex) || {}}
459
- ></checklist-view>
460
-
461
- <div style="text-align: right; margin-right: 20px; margin-bottom: 15px">
462
- <md-elevated-button
463
- ?disabled=${this.selectedInspection.status == BuildingInspectionStatus.PASS}
464
- @click=${this._onClickModifyChecklist.bind(this)}
465
- >
466
- <md-icon slot="icon">assignment</md-icon>등록
467
- </md-elevated-button>
468
- </div>
469
- </div>
518
+ <inspection-tab-popup
519
+ .selectedInspection=${this.selectedInspection}
520
+ .project=${this.project}
521
+ .initialTab=${initialTab}
522
+ @modify-checklist=${(e) => this.validateChecklist(e.detail.checklist)}
523
+ @requestRefresh=${async (e) => {
524
+ await this.refresh(e.detail.buildingInspectionId);
525
+ }}
526
+ ></inspection-tab-popup>
470
527
  `, { backdrop: true, size: 'large', title: '검측 요청서 수정' });
471
528
  }
472
529
  async refresh(buildingInspectionId = '') {
@@ -489,8 +546,38 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
489
546
  }
490
547
  return html `<md-icon fail slot="icon">close</md-icon>`;
491
548
  }
492
- _onClickModifyChecklist() {
493
- this.validateChecklist(this.selectedInspection.checklist);
549
+ _groupInspectionsByCell() {
550
+ const map = {};
551
+ for (const item of this.buildingInspections || []) {
552
+ const key = `${item.cellX},${item.cellY}`;
553
+ if (!map[key])
554
+ map[key] = [];
555
+ map[key].push(item);
556
+ }
557
+ this.cellToInspections = map;
558
+ }
559
+ _openListLayer(anchorEl, items, cell) {
560
+ this.listLayer = { open: true, cell, items };
561
+ }
562
+ _closeListLayer() {
563
+ if (!this.listLayer.open)
564
+ return;
565
+ this.listLayer = { open: false, cell: '', items: [] };
566
+ }
567
+ async _onSelectListItem(e) {
568
+ var _a;
569
+ const id = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.id;
570
+ if (!id)
571
+ return;
572
+ const inspection = await this._getBuildingInspection(id);
573
+ this.selectedInspection = inspection;
574
+ this._closeListLayer();
575
+ }
576
+ _getCellElement(cell) {
577
+ var _a;
578
+ if (!cell)
579
+ return null;
580
+ return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`div[cell='${cell}']`);
494
581
  }
495
582
  async validateChecklist(checklist) {
496
583
  var _a, _b;
@@ -576,6 +663,39 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
576
663
  title: '추가 도면 보기'
577
664
  });
578
665
  }
666
+ async _onClickDeleteInspection() {
667
+ var _a, _b, _c;
668
+ if (!((_a = this.selectedInspection) === null || _a === void 0 ? void 0 : _a.id)) {
669
+ notify({ message: '삭제할 검측을 선택해주세요.', level: 'info' });
670
+ return;
671
+ }
672
+ const confirmed = await OxPrompt.open({
673
+ title: '검측 삭제',
674
+ text: '해당 검측을 삭제하시겠습니까? 삭제 후 되돌릴 수 없습니다.',
675
+ confirmButton: { text: '삭제' },
676
+ cancelButton: { text: '취소' }
677
+ });
678
+ if (confirmed === false)
679
+ return;
680
+ const response = await client.mutate({
681
+ mutation: gql `
682
+ mutation ($ids: [String!]!) {
683
+ deleteBuildingInspections(ids: $ids)
684
+ }
685
+ `,
686
+ variables: {
687
+ ids: [this.selectedInspection.id]
688
+ }
689
+ });
690
+ if (!response.errors) {
691
+ notify({ message: '삭제되었습니다.' });
692
+ this.selectedInspection = {};
693
+ await this.refresh();
694
+ }
695
+ else {
696
+ notify({ message: ((_c = (_b = response.errors) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.message) || '삭제에 실패하였습니다.', level: 'error' });
697
+ }
698
+ }
579
699
  };
580
700
  BuildingInspectionGridDetail.styles = [
581
701
  css `
@@ -604,6 +724,9 @@ BuildingInspectionGridDetail.styles = [
604
724
  md-filled-button[apply-to-all] {
605
725
  --md-filled-button-container-color: #aaa;
606
726
  }
727
+ md-filled-button[delete] {
728
+ --md-filled-button-container-color: #ff4444;
729
+ }
607
730
  md-outlined-button {
608
731
  color: #586878;
609
732
  font-weight: bold;
@@ -656,8 +779,28 @@ BuildingInspectionGridDetail.styles = [
656
779
  margin: 0px 20px;
657
780
 
658
781
  h2 {
782
+ display: flex;
783
+ gap: 7px;
659
784
  flex: 0.5;
660
785
  color: #3f71a0;
786
+ font-size: 18px;
787
+
788
+ md-icon[back] {
789
+ background: linear-gradient(135deg, #3f71a0 0%, #5a8cc7 100%);
790
+ color: white;
791
+ padding: 8px;
792
+ border-radius: 50%;
793
+ cursor: pointer;
794
+ box-shadow: 0 2px 8px rgba(63, 113, 160, 0.3);
795
+ width: 14px;
796
+ height: 14px;
797
+ --md-icon-size: 20px;
798
+ }
799
+
800
+ md-icon[back]:hover {
801
+ background: linear-gradient(135deg, #2e5c89 0%, #4a7bb0 100%);
802
+ box-shadow: 0 4px 12px rgba(63, 113, 160, 0.4);
803
+ }
661
804
  }
662
805
 
663
806
  div[button-container] {
@@ -768,6 +911,7 @@ BuildingInspectionGridDetail.styles = [
768
911
  display: flex;
769
912
  justify-content: center;
770
913
  align-items: center;
914
+ position: relative;
771
915
  }
772
916
  }
773
917
 
@@ -881,6 +1025,52 @@ BuildingInspectionGridDetail.styles = [
881
1025
  }
882
1026
  }
883
1027
  }
1028
+
1029
+ .attachment-info {
1030
+ display: flex;
1031
+ align-items: center;
1032
+ justify-content: space-between;
1033
+ margin-bottom: 8px;
1034
+ gap: 5px;
1035
+ flex-direction: column;
1036
+ align-items: flex-start;
1037
+ }
1038
+
1039
+ .attachment-count {
1040
+ font-size: 14px;
1041
+ color: #586878;
1042
+ }
1043
+ .cell-count {
1044
+ position: absolute;
1045
+ top: 4px;
1046
+ right: 4px;
1047
+ display: flex;
1048
+ align-items: center;
1049
+ justify-content: center;
1050
+ justify-self: anchor-center;
1051
+ align-self: anchor-center;
1052
+ width: 22px;
1053
+ height: 22px;
1054
+ background: #ffffff;
1055
+ border: 2px solid #cccccc;
1056
+ border-radius: 50%;
1057
+ font-weight: 700;
1058
+ font-size: 13px;
1059
+ line-height: 1;
1060
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
1061
+ }
1062
+ .cell-count.green {
1063
+ color: #2e7d32;
1064
+ border-color: #4bbb4a;
1065
+ }
1066
+ .cell-count.red {
1067
+ color: #b71c1c;
1068
+ border-color: #ff4444;
1069
+ }
1070
+ .cell-count.black {
1071
+ color: #333333;
1072
+ border-color: #4e5055;
1073
+ }
884
1074
  `
885
1075
  ];
886
1076
  __decorate([
@@ -891,6 +1081,10 @@ __decorate([
891
1081
  state(),
892
1082
  __metadata("design:type", Object)
893
1083
  ], BuildingInspectionGridDetail.prototype, "buildingInspections", void 0);
1084
+ __decorate([
1085
+ state(),
1086
+ __metadata("design:type", Object)
1087
+ ], BuildingInspectionGridDetail.prototype, "cellToInspections", void 0);
894
1088
  __decorate([
895
1089
  state(),
896
1090
  __metadata("design:type", Object)
@@ -915,6 +1109,10 @@ __decorate([
915
1109
  state(),
916
1110
  __metadata("design:type", String)
917
1111
  ], BuildingInspectionGridDetail.prototype, "cell", void 0);
1112
+ __decorate([
1113
+ state(),
1114
+ __metadata("design:type", Object)
1115
+ ], BuildingInspectionGridDetail.prototype, "listLayer", void 0);
918
1116
  __decorate([
919
1117
  query('md-filled-select[building]'),
920
1118
  __metadata("design:type", Object)
@@ -923,6 +1121,10 @@ __decorate([
923
1121
  query('md-filled-select[level]'),
924
1122
  __metadata("design:type", Object)
925
1123
  ], BuildingInspectionGridDetail.prototype, "htmlSelectLevel", void 0);
1124
+ __decorate([
1125
+ query('div[drawing]'),
1126
+ __metadata("design:type", HTMLDivElement)
1127
+ ], BuildingInspectionGridDetail.prototype, "drawingContainer", void 0);
926
1128
  BuildingInspectionGridDetail = __decorate([
927
1129
  customElement('building-inspection-grid-detail')
928
1130
  ], BuildingInspectionGridDetail);