@dssp/supervision 1.0.0-alpha.3 → 1.0.0-alpha.31

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 (168) 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 -1
  8. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +93 -25
  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 +327 -27
  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 +22 -0
  16. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +431 -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 +48 -0
  36. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +1030 -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/notice-comment-popup.d.ts +1 -0
  42. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js +304 -0
  43. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js.map +1 -0
  44. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +15 -0
  45. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js +430 -0
  46. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js.map +1 -0
  47. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  48. package/dist-client/pages/checklist/attachment-list-popup.js +250 -67
  49. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  50. package/dist-client/pages/checklist/checklist-view.d.ts +7 -0
  51. package/dist-client/pages/checklist/checklist-view.js +363 -185
  52. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  53. package/dist-client/pages/checklist/comment-list-popup.js +14 -3
  54. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  55. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  56. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  57. package/dist-client/pages/checklist/inspection-info-popup.d.ts +50 -0
  58. package/dist-client/pages/checklist/inspection-info-popup.js +684 -0
  59. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  60. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  61. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  62. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  63. package/dist-client/pages/checklist-template/checklist-template-item.js +8 -3
  64. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  65. package/dist-client/pages/checklist-template/checklist-template-list.js +2 -2
  66. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  67. package/dist-client/route.d.ts +1 -1
  68. package/dist-client/route.js +3 -0
  69. package/dist-client/route.js.map +1 -1
  70. package/dist-client/stt/speech-to-text.d.ts +36 -0
  71. package/dist-client/stt/speech-to-text.js +89 -0
  72. package/dist-client/stt/speech-to-text.js.map +1 -0
  73. package/dist-client/stt/stt-utils.d.ts +28 -0
  74. package/dist-client/stt/stt-utils.js +146 -0
  75. package/dist-client/stt/stt-utils.js.map +1 -0
  76. package/dist-client/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/service/action-plan/index.d.ts +0 -1
  78. package/dist-server/service/action-plan/index.js +1 -2
  79. package/dist-server/service/action-plan/index.js.map +1 -1
  80. package/dist-server/service/building-inspection/building-inspection-history.d.ts +1 -0
  81. package/dist-server/service/building-inspection/building-inspection-history.js +5 -0
  82. package/dist-server/service/building-inspection/building-inspection-history.js.map +1 -1
  83. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +3 -3
  84. package/dist-server/service/building-inspection/building-inspection-mutation.js +145 -34
  85. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  86. package/dist-server/service/building-inspection/building-inspection-query.d.ts +3 -4
  87. package/dist-server/service/building-inspection/building-inspection-query.js +46 -30
  88. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  89. package/dist-server/service/building-inspection/building-inspection-type.d.ts +28 -9
  90. package/dist-server/service/building-inspection/building-inspection-type.js +96 -17
  91. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  92. package/dist-server/service/building-inspection/building-inspection.d.ts +13 -0
  93. package/dist-server/service/building-inspection/building-inspection.js +55 -2
  94. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  95. package/dist-server/service/building-inspection/index.d.ts +3 -5
  96. package/dist-server/service/building-inspection/index.js +10 -4
  97. package/dist-server/service/building-inspection/index.js.map +1 -1
  98. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  99. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +56 -0
  100. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  101. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +14 -0
  102. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +135 -0
  103. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  104. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +19 -0
  105. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +74 -0
  106. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  107. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +27 -0
  108. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +104 -0
  109. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  110. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  111. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  112. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  113. package/dist-server/service/checklist/checklist-history.d.ts +8 -0
  114. package/dist-server/service/checklist/checklist-history.js +36 -0
  115. package/dist-server/service/checklist/checklist-history.js.map +1 -1
  116. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  117. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  118. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  119. package/dist-server/service/checklist/checklist-query.d.ts +6 -0
  120. package/dist-server/service/checklist/checklist-query.js +63 -0
  121. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  122. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  123. package/dist-server/service/checklist/checklist-type.js +1 -49
  124. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  125. package/dist-server/service/checklist/checklist.d.ts +38 -3
  126. package/dist-server/service/checklist/checklist.js +131 -15
  127. package/dist-server/service/checklist/checklist.js.map +1 -1
  128. package/dist-server/service/checklist/index.d.ts +0 -2
  129. package/dist-server/service/checklist/index.js +1 -3
  130. package/dist-server/service/checklist/index.js.map +1 -1
  131. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  132. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  133. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  134. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  135. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  136. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  137. package/dist-server/service/checklist-item-comment/index.d.ts +0 -2
  138. package/dist-server/service/checklist-item-comment/index.js +1 -3
  139. package/dist-server/service/checklist-item-comment/index.js.map +1 -1
  140. package/dist-server/service/checklist-template-item/checklist-template-item.js +2 -4
  141. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  142. package/dist-server/service/index.d.ts +3 -2
  143. package/dist-server/service/index.js +8 -13
  144. package/dist-server/service/index.js.map +1 -1
  145. package/dist-server/service/issue/index.d.ts +0 -1
  146. package/dist-server/service/issue/index.js +1 -2
  147. package/dist-server/service/issue/index.js.map +1 -1
  148. package/dist-server/service/project-report/index.d.ts +0 -1
  149. package/dist-server/service/project-report/index.js +1 -2
  150. package/dist-server/service/project-report/index.js.map +1 -1
  151. package/dist-server/service/project-report/project-report.d.ts +0 -2
  152. package/dist-server/service/project-report/project-report.js +0 -6
  153. package/dist-server/service/project-report/project-report.js.map +1 -1
  154. package/dist-server/service/supervisor/index.d.ts +0 -1
  155. package/dist-server/service/supervisor/index.js +1 -2
  156. package/dist-server/service/supervisor/index.js.map +1 -1
  157. package/dist-server/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +13 -13
  159. package/things-factory.config.js +3 -1
  160. package/dist-server/service/building-inspection/event-subscriber.d.ts +0 -7
  161. package/dist-server/service/building-inspection/event-subscriber.js +0 -21
  162. package/dist-server/service/building-inspection/event-subscriber.js.map +0 -1
  163. package/dist-server/service/checklist/event-subscriber.d.ts +0 -7
  164. package/dist-server/service/checklist/event-subscriber.js +0 -21
  165. package/dist-server/service/checklist/event-subscriber.js.map +0 -1
  166. package/dist-server/service/checklist-item-comment/event-subscriber.d.ts +0 -7
  167. package/dist-server/service/checklist-item-comment/event-subscriber.js +0 -21
  168. package/dist-server/service/checklist-item-comment/event-subscriber.js.map +0 -1
@@ -0,0 +1,431 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/button/elevated-button.js';
3
+ import '@material/web/icon/icon.js';
4
+ import { css, html, LitElement } from 'lit';
5
+ import { customElement, property } from 'lit/decorators.js';
6
+ import { ScrollbarStyles } from '@operato/styles';
7
+ import gql from 'graphql-tag';
8
+ import { client } from '@operato/graphql';
9
+ import moment from 'moment-timezone';
10
+ import { notify } from '@operato/layout';
11
+ export var DailyWorklogMode;
12
+ (function (DailyWorklogMode) {
13
+ DailyWorklogMode["EDIT"] = "edit";
14
+ DailyWorklogMode["CREATE"] = "create";
15
+ })(DailyWorklogMode || (DailyWorklogMode = {}));
16
+ let DailyWorklogPopup = class DailyWorklogPopup extends LitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.dailyWorklog = {};
20
+ this.mode = DailyWorklogMode.CREATE;
21
+ this._addRow = () => {
22
+ const current = Array.isArray(this.dailyWorklog.worklogs) ? this.dailyWorklog.worklogs : [];
23
+ const newWorklogs = [...current, { constructionType: '', supervisoryTitle: '', supervisorContent: '' }];
24
+ this.dailyWorklog = Object.assign(Object.assign({}, this.dailyWorklog), { worklogs: newWorklogs });
25
+ };
26
+ }
27
+ render() {
28
+ var _a, _b, _c;
29
+ return html `
30
+ <div class="container">
31
+ <div class="sheet">
32
+ <div class="title">공사감리일지</div>
33
+ <div class="body">
34
+ <table class="header-table">
35
+ <tr>
36
+ <th>문서번호</th>
37
+ <td colspan="3">${((_a = this.dailyWorklog) === null || _a === void 0 ? void 0 : _a.documentNo) || ''}</td>
38
+ </tr>
39
+ <tr>
40
+ <th>공종별 감리 책임자</th>
41
+ <td></td>
42
+ <th>총괄 감리 책임자</th>
43
+ <td></td>
44
+ </tr>
45
+ <tr>
46
+ <th>공사명</th>
47
+ <td colspan="3">
48
+ <span class="construction-name">${((_b = this.project) === null || _b === void 0 ? void 0 : _b.name) || ''}</span>
49
+ <span class="date-display">${this.dailyWorklog.date || this._formatSelectedDate()}</span>
50
+ </td>
51
+ </tr>
52
+ </table>
53
+
54
+ <div class="work-section">
55
+ <div class="left-title">작업사항</div>
56
+ <table class="work-table">
57
+ <thead>
58
+ <tr>
59
+ <th class="col-job">공종</th>
60
+ <th>감리확인사항</th>
61
+ <th>감리내용</th>
62
+ <th class="col-action">삭제</th>
63
+ </tr>
64
+ </thead>
65
+ <tbody>
66
+ ${(_c = this.dailyWorklog.worklogs) === null || _c === void 0 ? void 0 : _c.map((r, i) => html `
67
+ <tr>
68
+ <td>
69
+ <input
70
+ type="text"
71
+ .value=${r.constructionType}
72
+ @input=${(e) => this._updateWorklogs(i, 'constructionType', e.target.value)}
73
+ />
74
+ </td>
75
+ <td>
76
+ <input
77
+ type="text"
78
+ .value=${r.supervisoryTitle}
79
+ @input=${(e) => this._updateWorklogs(i, 'supervisoryTitle', e.target.value)}
80
+ />
81
+ </td>
82
+ <td>
83
+ <input
84
+ type="text"
85
+ .value=${r.supervisorContent}
86
+ @input=${(e) => this._updateWorklogs(i, 'supervisorContent', e.target.value)}
87
+ />
88
+ </td>
89
+ <td class="action">
90
+ <md-icon class="clickable" @click=${() => this._remove(i)}>delete</md-icon>
91
+ </td>
92
+ </tr>
93
+ `)}
94
+ <tr>
95
+ <td colspan="4" class="add-row">
96
+ <md-elevated-button @click=${this._addRow}><md-icon slot="icon">add</md-icon>행 추가</md-elevated-button>
97
+ </td>
98
+ </tr>
99
+ </tbody>
100
+ </table>
101
+ </div>
102
+
103
+ <div>
104
+ <div class="section-title">특기사항</div>
105
+ <textarea
106
+ class="small"
107
+ placeholder="특기사항을 입력하세요."
108
+ .value=${this.dailyWorklog.memo || ''}
109
+ @input=${(e) => (this.dailyWorklog.memo = e.target.value)}
110
+ ></textarea>
111
+ </div>
112
+
113
+ <div>
114
+ <div class="section-title">지적사항 및 처리결과</div>
115
+ <textarea
116
+ class="small"
117
+ placeholder="지적사항 및 처리결과를 입력하세요."
118
+ .value=${this.dailyWorklog.directiveMemo || ''}
119
+ @input=${(e) => (this.dailyWorklog.directiveMemo = e.target.value)}
120
+ ></textarea>
121
+ </div>
122
+ </div>
123
+ </div>
124
+
125
+ <div class="footer">
126
+ ${this.mode === DailyWorklogMode.CREATE
127
+ ? html `<md-elevated-button blue @click=${this._create}><md-icon slot="icon">save</md-icon>저장</md-elevated-button>`
128
+ : html `<md-elevated-button green @click=${this._update}><md-icon slot="icon">save</md-icon>수정</md-elevated-button>`}
129
+ </div>
130
+ </div>
131
+ `;
132
+ }
133
+ connectedCallback() {
134
+ super.connectedCallback();
135
+ }
136
+ _formatSelectedDate() {
137
+ return moment.tz(this.date, 'Asia/Seoul').locale('ko').format('YYYY-MM-DD (dddd)');
138
+ }
139
+ _updateWorklogs(index, field, value) {
140
+ const current = Array.isArray(this.dailyWorklog.worklogs) ? this.dailyWorklog.worklogs : [];
141
+ const newWorklogs = [...current];
142
+ newWorklogs[index] = Object.assign(Object.assign({}, newWorklogs[index]), { [field]: value });
143
+ this.dailyWorklog = Object.assign(Object.assign({}, this.dailyWorklog), { worklogs: newWorklogs });
144
+ }
145
+ _remove(index) {
146
+ const current = Array.isArray(this.dailyWorklog.worklogs) ? this.dailyWorklog.worklogs : [];
147
+ const newWorklogs = [...current];
148
+ newWorklogs.splice(index, 1);
149
+ this.dailyWorklog = Object.assign(Object.assign({}, this.dailyWorklog), { worklogs: newWorklogs });
150
+ }
151
+ async _create() {
152
+ var _a;
153
+ const response = await client.mutate({
154
+ mutation: gql `
155
+ mutation CreateBuildingInspectionDailyWorklog($patch: BuildingInspectionDailyWorklogNew!) {
156
+ createBuildingInspectionDailyWorklog(patch: $patch) {
157
+ id
158
+ }
159
+ }
160
+ `,
161
+ variables: {
162
+ patch: {
163
+ memo: this.dailyWorklog.memo,
164
+ directiveMemo: this.dailyWorklog.directiveMemo,
165
+ worklogs: this.dailyWorklog.worklogs,
166
+ projectId: (_a = this.project) === null || _a === void 0 ? void 0 : _a.id,
167
+ date: this.date,
168
+ buildingInspectionIds: this.dailyWorklog.buildingInspections.map(v => v.id)
169
+ }
170
+ }
171
+ });
172
+ if (!response.errors) {
173
+ this.dispatchEvent(new CustomEvent('createdDailyWorklog', { detail: { date: this.date } }));
174
+ notify({ message: '일일 업무일지가 생성되었습니다.', level: 'info' });
175
+ history.back();
176
+ }
177
+ }
178
+ async _update() {
179
+ const response = await client.mutate({
180
+ mutation: gql `
181
+ mutation UpdateBuildingInspectionDailyWorklog($patch: BuildingInspectionDailyWorklogPatch!) {
182
+ updateBuildingInspectionDailyWorklog(patch: $patch) {
183
+ id
184
+ }
185
+ }
186
+ `,
187
+ variables: {
188
+ patch: {
189
+ id: this.dailyWorklog.id,
190
+ worklogs: this.dailyWorklog.worklogs,
191
+ memo: this.dailyWorklog.memo,
192
+ directiveMemo: this.dailyWorklog.directiveMemo
193
+ }
194
+ }
195
+ });
196
+ if (!response.errors) {
197
+ notify({ message: '일일 업무일지가 수정되었습니다.', level: 'info' });
198
+ history.back();
199
+ }
200
+ }
201
+ };
202
+ DailyWorklogPopup.styles = [
203
+ ScrollbarStyles,
204
+ css `
205
+ :host {
206
+ display: block;
207
+ background: #fff;
208
+ width: 100%;
209
+ height: 100%;
210
+ overflow: hidden;
211
+ }
212
+
213
+ .container {
214
+ display: flex;
215
+ flex-direction: column;
216
+ gap: 12px;
217
+ padding: 20px;
218
+ height: 100%;
219
+ box-sizing: border-box;
220
+ }
221
+
222
+ .sheet {
223
+ flex: 1;
224
+ overflow: auto;
225
+ background: #fff;
226
+ border: 2px solid #333;
227
+ }
228
+
229
+ .title {
230
+ text-align: center;
231
+ padding: 16px 12px;
232
+ border-bottom: 1px solid #333;
233
+ font-weight: 800;
234
+ font-size: 18px;
235
+ letter-spacing: 1px;
236
+ }
237
+
238
+ .body {
239
+ padding: 16px;
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: 14px;
243
+ }
244
+
245
+ .header-table,
246
+ .work-table {
247
+ width: 100%;
248
+ border-collapse: collapse;
249
+ }
250
+
251
+ .header-table th,
252
+ .header-table td {
253
+ border: 1px solid #333;
254
+ padding: 8px;
255
+ font-size: 14px;
256
+ text-align: left;
257
+ }
258
+
259
+ .header-table th {
260
+ width: 140px;
261
+ background-color: #f5f5f5;
262
+ white-space: nowrap;
263
+ }
264
+
265
+ .inline {
266
+ display: grid;
267
+ grid-template-columns: 1fr 1fr;
268
+ gap: 8px;
269
+ }
270
+
271
+ .inline > * {
272
+ width: 100%;
273
+ }
274
+
275
+ .inline.readonly {
276
+ align-items: center;
277
+ grid-template-columns: auto;
278
+ }
279
+
280
+ .field {
281
+ display: flex;
282
+ flex-direction: column;
283
+ gap: 4px;
284
+ }
285
+
286
+ .field label {
287
+ font-size: 12px;
288
+ font-weight: 600;
289
+ color: #333;
290
+ }
291
+
292
+ .work-table th,
293
+ .work-table td {
294
+ border: 1px solid #333;
295
+ padding: 8px;
296
+ vertical-align: middle;
297
+ }
298
+
299
+ .work-table thead th {
300
+ background-color: #f5f5f5;
301
+ text-align: center;
302
+ }
303
+
304
+ .work-table .col-job {
305
+ width: 140px;
306
+ }
307
+
308
+ .work-table .col-action {
309
+ width: 60px;
310
+ text-align: center;
311
+ }
312
+
313
+ .work-table td.action {
314
+ text-align: center;
315
+ }
316
+
317
+ .work-section {
318
+ display: grid;
319
+ grid-template-columns: 40px 1fr;
320
+ gap: 0;
321
+ align-items: stretch;
322
+ }
323
+
324
+ .left-title {
325
+ display: flex;
326
+ align-items: center;
327
+ justify-content: center;
328
+ border: 1px solid #333;
329
+ border-right: none;
330
+ background-color: #f5f5f5;
331
+ writing-mode: vertical-rl;
332
+ text-orientation: upright;
333
+ font-weight: 600;
334
+ letter-spacing: 2px;
335
+ }
336
+
337
+ .construction-name {
338
+ width: 50% !important;
339
+ }
340
+
341
+ .date-display {
342
+ font-size: 14px;
343
+ font-weight: 700;
344
+ margin-left: 15px;
345
+ }
346
+
347
+ input[type='text'],
348
+ input[type='date'],
349
+ textarea {
350
+ width: 100%;
351
+ box-sizing: border-box;
352
+ border: 1px solid #ddd;
353
+ padding: 8px;
354
+ font-size: 14px;
355
+ border-radius: 4px;
356
+ background: #fff;
357
+ }
358
+
359
+ textarea.small {
360
+ min-height: 80px;
361
+ resize: vertical;
362
+ }
363
+
364
+ .section-title {
365
+ font-weight: bold;
366
+ margin-top: 4px;
367
+ margin-bottom: 4px;
368
+ }
369
+
370
+ .footer {
371
+ display: flex;
372
+ justify-content: center;
373
+ padding: 12px 0;
374
+ border-top: 1px solid #ddd;
375
+ }
376
+
377
+ .add-row {
378
+ text-align: center;
379
+ background: #fafafa;
380
+ }
381
+
382
+ .clickable {
383
+ cursor: pointer;
384
+ }
385
+
386
+ md-elevated-button[blue] {
387
+ --md-elevated-button-container-color: #0595e5;
388
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
389
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
390
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
391
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
392
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
393
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
394
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
395
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
396
+ }
397
+
398
+ md-elevated-button[green] {
399
+ --md-elevated-button-container-color: #008000;
400
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
401
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
402
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
403
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
404
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
405
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
406
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
407
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
408
+ }
409
+ `
410
+ ];
411
+ __decorate([
412
+ property({ type: String }),
413
+ __metadata("design:type", String)
414
+ ], DailyWorklogPopup.prototype, "date", void 0);
415
+ __decorate([
416
+ property({ type: Object }),
417
+ __metadata("design:type", Object)
418
+ ], DailyWorklogPopup.prototype, "project", void 0);
419
+ __decorate([
420
+ property({ type: Object }),
421
+ __metadata("design:type", Object)
422
+ ], DailyWorklogPopup.prototype, "dailyWorklog", void 0);
423
+ __decorate([
424
+ property({ type: String }),
425
+ __metadata("design:type", String)
426
+ ], DailyWorklogPopup.prototype, "mode", void 0);
427
+ DailyWorklogPopup = __decorate([
428
+ customElement('daily-worklog-popup')
429
+ ], DailyWorklogPopup);
430
+ export { DailyWorklogPopup };
431
+ //# sourceMappingURL=daily-worklog-popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-worklog-popup.js","sourceRoot":"","sources":["../../../../client/pages/building-inspection/component/daily-worklog-popup.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/button/elevated-button.js'\nimport '@material/web/icon/icon.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, state, property } from 'lit/decorators.js'\nimport { ScrollbarStyles } from '@operato/styles'\nimport gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\nimport moment from 'moment-timezone'\nimport { notify } from '@operato/layout'\n\nexport enum DailyWorklogMode {\n EDIT = 'edit',\n CREATE = 'create'\n}\n\n@customElement('daily-worklog-popup')\nexport class DailyWorklogPopup extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: block;\n background: #fff;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 20px;\n height: 100%;\n box-sizing: border-box;\n }\n\n .sheet {\n flex: 1;\n overflow: auto;\n background: #fff;\n border: 2px solid #333;\n }\n\n .title {\n text-align: center;\n padding: 16px 12px;\n border-bottom: 1px solid #333;\n font-weight: 800;\n font-size: 18px;\n letter-spacing: 1px;\n }\n\n .body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n }\n\n .header-table,\n .work-table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .header-table th,\n .header-table td {\n border: 1px solid #333;\n padding: 8px;\n font-size: 14px;\n text-align: left;\n }\n\n .header-table th {\n width: 140px;\n background-color: #f5f5f5;\n white-space: nowrap;\n }\n\n .inline {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n }\n\n .inline > * {\n width: 100%;\n }\n\n .inline.readonly {\n align-items: center;\n grid-template-columns: auto;\n }\n\n .field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .field label {\n font-size: 12px;\n font-weight: 600;\n color: #333;\n }\n\n .work-table th,\n .work-table td {\n border: 1px solid #333;\n padding: 8px;\n vertical-align: middle;\n }\n\n .work-table thead th {\n background-color: #f5f5f5;\n text-align: center;\n }\n\n .work-table .col-job {\n width: 140px;\n }\n\n .work-table .col-action {\n width: 60px;\n text-align: center;\n }\n\n .work-table td.action {\n text-align: center;\n }\n\n .work-section {\n display: grid;\n grid-template-columns: 40px 1fr;\n gap: 0;\n align-items: stretch;\n }\n\n .left-title {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #333;\n border-right: none;\n background-color: #f5f5f5;\n writing-mode: vertical-rl;\n text-orientation: upright;\n font-weight: 600;\n letter-spacing: 2px;\n }\n\n .construction-name {\n width: 50% !important;\n }\n\n .date-display {\n font-size: 14px;\n font-weight: 700;\n margin-left: 15px;\n }\n\n input[type='text'],\n input[type='date'],\n textarea {\n width: 100%;\n box-sizing: border-box;\n border: 1px solid #ddd;\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n background: #fff;\n }\n\n textarea.small {\n min-height: 80px;\n resize: vertical;\n }\n\n .section-title {\n font-weight: bold;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n\n .footer {\n display: flex;\n justify-content: center;\n padding: 12px 0;\n border-top: 1px solid #ddd;\n }\n\n .add-row {\n text-align: center;\n background: #fafafa;\n }\n\n .clickable {\n cursor: pointer;\n }\n\n md-elevated-button[blue] {\n --md-elevated-button-container-color: #0595e5;\n --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-icon-color: var(--md-sys-color-on-primary);\n --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);\n --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);\n --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);\n }\n\n md-elevated-button[green] {\n --md-elevated-button-container-color: #008000;\n --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);\n --md-elevated-button-icon-color: var(--md-sys-color-on-primary);\n --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);\n --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);\n --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);\n }\n `\n ]\n\n @property({ type: String }) date?: string\n @property({ type: Object }) project?: any\n @property({ type: Object }) dailyWorklog: any = {}\n @property({ type: String }) mode?: DailyWorklogMode = DailyWorklogMode.CREATE\n\n render() {\n return html`\n <div class=\"container\">\n <div class=\"sheet\">\n <div class=\"title\">공사감리일지</div>\n <div class=\"body\">\n <table class=\"header-table\">\n <tr>\n <th>문서번호</th>\n <td colspan=\"3\">${this.dailyWorklog?.documentNo || ''}</td>\n </tr>\n <tr>\n <th>공종별 감리 책임자</th>\n <td></td>\n <th>총괄 감리 책임자</th>\n <td></td>\n </tr>\n <tr>\n <th>공사명</th>\n <td colspan=\"3\">\n <span class=\"construction-name\">${this.project?.name || ''}</span>\n <span class=\"date-display\">${this.dailyWorklog.date || this._formatSelectedDate()}</span>\n </td>\n </tr>\n </table>\n\n <div class=\"work-section\">\n <div class=\"left-title\">작업사항</div>\n <table class=\"work-table\">\n <thead>\n <tr>\n <th class=\"col-job\">공종</th>\n <th>감리확인사항</th>\n <th>감리내용</th>\n <th class=\"col-action\">삭제</th>\n </tr>\n </thead>\n <tbody>\n ${this.dailyWorklog.worklogs?.map(\n (r, i) => html`\n <tr>\n <td>\n <input\n type=\"text\"\n .value=${r.constructionType}\n @input=${(e: any) => this._updateWorklogs(i, 'constructionType', e.target.value)}\n />\n </td>\n <td>\n <input\n type=\"text\"\n .value=${r.supervisoryTitle}\n @input=${(e: any) => this._updateWorklogs(i, 'supervisoryTitle', e.target.value)}\n />\n </td>\n <td>\n <input\n type=\"text\"\n .value=${r.supervisorContent}\n @input=${(e: any) => this._updateWorklogs(i, 'supervisorContent', e.target.value)}\n />\n </td>\n <td class=\"action\">\n <md-icon class=\"clickable\" @click=${() => this._remove(i)}>delete</md-icon>\n </td>\n </tr>\n `\n )}\n <tr>\n <td colspan=\"4\" class=\"add-row\">\n <md-elevated-button @click=${this._addRow}><md-icon slot=\"icon\">add</md-icon>행 추가</md-elevated-button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div>\n <div class=\"section-title\">특기사항</div>\n <textarea\n class=\"small\"\n placeholder=\"특기사항을 입력하세요.\"\n .value=${this.dailyWorklog.memo || ''}\n @input=${(e: any) => (this.dailyWorklog.memo = e.target.value)}\n ></textarea>\n </div>\n\n <div>\n <div class=\"section-title\">지적사항 및 처리결과</div>\n <textarea\n class=\"small\"\n placeholder=\"지적사항 및 처리결과를 입력하세요.\"\n .value=${this.dailyWorklog.directiveMemo || ''}\n @input=${(e: any) => (this.dailyWorklog.directiveMemo = e.target.value)}\n ></textarea>\n </div>\n </div>\n </div>\n\n <div class=\"footer\">\n ${this.mode === DailyWorklogMode.CREATE\n ? html`<md-elevated-button blue @click=${this._create}><md-icon slot=\"icon\">save</md-icon>저장</md-elevated-button>`\n : html`<md-elevated-button green @click=${this._update}><md-icon slot=\"icon\">save</md-icon>수정</md-elevated-button>`}\n </div>\n </div>\n `\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n }\n\n private _formatSelectedDate(): string {\n return moment.tz(this.date, 'Asia/Seoul').locale('ko').format('YYYY-MM-DD (dddd)')\n }\n\n private _updateWorklogs(index: number, field: string, value: string) {\n const current = Array.isArray(this.dailyWorklog.worklogs) ? this.dailyWorklog.worklogs : []\n const newWorklogs = [...current]\n newWorklogs[index] = { ...newWorklogs[index], [field]: value }\n this.dailyWorklog = { ...this.dailyWorklog, worklogs: newWorklogs }\n }\n\n private _addRow = () => {\n const current = Array.isArray(this.dailyWorklog.worklogs) ? this.dailyWorklog.worklogs : []\n const newWorklogs = [...current, { constructionType: '', supervisoryTitle: '', supervisorContent: '' }]\n this.dailyWorklog = { ...this.dailyWorklog, worklogs: newWorklogs }\n }\n\n private _remove(index: number) {\n const current = Array.isArray(this.dailyWorklog.worklogs) ? this.dailyWorklog.worklogs : []\n const newWorklogs = [...current]\n newWorklogs.splice(index, 1)\n this.dailyWorklog = { ...this.dailyWorklog, worklogs: newWorklogs }\n }\n\n private async _create() {\n const response = await client.mutate({\n mutation: gql`\n mutation CreateBuildingInspectionDailyWorklog($patch: BuildingInspectionDailyWorklogNew!) {\n createBuildingInspectionDailyWorklog(patch: $patch) {\n id\n }\n }\n `,\n variables: {\n patch: {\n memo: this.dailyWorklog.memo,\n directiveMemo: this.dailyWorklog.directiveMemo,\n worklogs: this.dailyWorklog.worklogs,\n projectId: this.project?.id,\n date: this.date,\n buildingInspectionIds: this.dailyWorklog.buildingInspections.map(v => v.id)\n }\n }\n })\n\n if (!response.errors) {\n this.dispatchEvent(new CustomEvent('createdDailyWorklog', { detail: { date: this.date } }))\n notify({ message: '일일 업무일지가 생성되었습니다.', level: 'info' })\n history.back()\n }\n }\n\n private async _update() {\n const response = await client.mutate({\n mutation: gql`\n mutation UpdateBuildingInspectionDailyWorklog($patch: BuildingInspectionDailyWorklogPatch!) {\n updateBuildingInspectionDailyWorklog(patch: $patch) {\n id\n }\n }\n `,\n variables: {\n patch: {\n id: this.dailyWorklog.id,\n worklogs: this.dailyWorklog.worklogs,\n memo: this.dailyWorklog.memo,\n directiveMemo: this.dailyWorklog.directiveMemo\n }\n }\n })\n\n if (!response.errors) {\n notify({ message: '일일 업무일지가 수정되었습니다.', level: 'info' })\n history.back()\n }\n }\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import '@material/web/button/elevated-button.js';
2
+ import '@material/web/icon/icon.js';
3
+ import { LitElement } from 'lit';
4
+ export declare class ImagePreviewPopup extends LitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ images: any[];
7
+ currentIndex: number;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ private _previousImage;
10
+ private _nextImage;
11
+ private _close;
12
+ private _onImageError;
13
+ private _initImageZoom;
14
+ disconnectedCallback(): void;
15
+ }