@dssp/supervision 1.0.0-alpha.25 → 1.0.0-alpha.27
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.
- package/dist-client/graphql/building-inspection.js +17 -0
- package/dist-client/graphql/building-inspection.js.map +1 -1
- package/dist-client/pages/action-plan/action-plan-importer.d.ts +1 -1
- package/dist-client/pages/action-plan/action-plan-list-page.d.ts +1 -1
- package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +1 -1
- package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +6 -1
- package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +86 -9
- package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
- package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -1
- package/dist-client/pages/building-inspection/building-inspection-list.d.ts +7 -0
- package/dist-client/pages/building-inspection/building-inspection-list.js +90 -15
- package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +17 -0
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +354 -0
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
- package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +1 -1
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +3 -4
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +135 -176
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -1
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +30 -0
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +479 -0
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
- package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +1 -1
- package/dist-client/pages/building-inspection/inspection-create-popup.js +17 -5
- package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
- package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +3 -2
- package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +46 -3
- package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -1
- package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +2 -1
- package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -1
- package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +1 -1
- package/dist-client/pages/checklist/attachment-list-popup.js +1 -7
- package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
- package/dist-client/pages/checklist/checklist-view.js +52 -18
- package/dist-client/pages/checklist/checklist-view.js.map +1 -1
- package/dist-client/pages/checklist/inspection-info-popup.d.ts +1 -1
- package/dist-client/pages/checklist/inspection-tab-popup.d.ts +1 -1
- package/dist-client/pages/checklist-template/checklist-template-list.d.ts +1 -1
- package/dist-client/pages/checklist-template/checklist-template-list.js +1 -1
- package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
- package/dist-client/pages/checklist-template/checklist-type-management.d.ts +1 -1
- package/dist-client/pages/issue/issue-importer.d.ts +1 -1
- package/dist-client/pages/issue/issue-list-page.d.ts +1 -1
- package/dist-client/pages/project-report/project-report-importer.d.ts +1 -1
- package/dist-client/pages/project-report/project-report-list-page.d.ts +1 -1
- package/dist-client/pages/supervisor/supervisor-importer.d.ts +1 -1
- package/dist-client/pages/supervisor/supervisor-list-page.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/building-inspection/building-inspection-mutation.js +45 -19
- package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
- package/dist-server/service/building-inspection/building-inspection-query.js +7 -1
- package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
- package/dist-server/service/building-inspection/building-inspection-type.d.ts +7 -0
- package/dist-server/service/building-inspection/building-inspection-type.js +25 -0
- package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
- package/dist-server/service/building-inspection/index.d.ts +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +8 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +98 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +12 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +85 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +12 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +47 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +25 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +98 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
- package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
- package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
- package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
- package/dist-server/service/checklist/checklist-query.d.ts +2 -0
- package/dist-server/service/checklist/checklist-query.js +11 -0
- package/dist-server/service/checklist/checklist-query.js.map +1 -1
- package/dist-server/service/checklist/checklist.d.ts +23 -0
- package/dist-server/service/checklist/checklist.js +73 -1
- package/dist-server/service/checklist/checklist.js.map +1 -1
- package/dist-server/service/index.d.ts +2 -1
- package/dist-server/service/index.js +6 -2
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import '@material/web/button/elevated-button.js';
|
|
3
3
|
import '@material/web/icon/icon.js';
|
|
4
|
+
import '@material/web/button/outlined-button.js';
|
|
4
5
|
import { css, html, LitElement } from 'lit';
|
|
5
6
|
import { customElement, property } from 'lit/decorators.js';
|
|
6
7
|
import { ScrollbarStyles } from '@operato/styles';
|
|
7
|
-
import { openPopup } from '@operato/layout';
|
|
8
8
|
import './photo-album-popup';
|
|
9
9
|
export var InspectionMode;
|
|
10
10
|
(function (InspectionMode) {
|
|
@@ -19,29 +19,30 @@ let InspectionRequestDocument = class InspectionRequestDocument extends LitEleme
|
|
|
19
19
|
this.mode = InspectionMode.VIEW;
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
23
|
-
const
|
|
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
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);
|
|
25
28
|
return html `
|
|
26
|
-
<div class="document-main-title">검측요청결과 통보내용</div>
|
|
27
|
-
|
|
28
29
|
<div class="document-container">
|
|
29
30
|
<div class="document-header">
|
|
30
31
|
<div class="document-title">검측요청서</div>
|
|
31
32
|
</div>
|
|
32
33
|
|
|
33
34
|
<div class="document-body">
|
|
34
|
-
<div class="date-section">${
|
|
35
|
+
<div class="date-section">${headerDate}</div>
|
|
35
36
|
|
|
36
37
|
<div class="request-info">
|
|
37
38
|
<div class="recipient-section">
|
|
38
39
|
<div class="recipient-item">
|
|
39
|
-
<span class="recipient-label"
|
|
40
|
-
<span>${((
|
|
40
|
+
<span class="recipient-label">문서 번호:</span>
|
|
41
|
+
<span>${((_e = this.checklist) === null || _e === void 0 ? void 0 : _e.inspectionRequestDocumentNo) || ''}</span>
|
|
41
42
|
</div>
|
|
42
43
|
<div class="recipient-item">
|
|
43
|
-
<span class="recipient-label"
|
|
44
|
-
<span>${(
|
|
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>
|
|
45
46
|
</div>
|
|
46
47
|
</div>
|
|
47
48
|
|
|
@@ -50,11 +51,11 @@ let InspectionRequestDocument = class InspectionRequestDocument extends LitEleme
|
|
|
50
51
|
<table class="request-table">
|
|
51
52
|
<tr>
|
|
52
53
|
<th>위치 및 공종</th>
|
|
53
|
-
<td>${(((
|
|
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>
|
|
54
55
|
</tr>
|
|
55
56
|
<tr>
|
|
56
57
|
<th>검측 부위</th>
|
|
57
|
-
<td>${((
|
|
58
|
+
<td>${((_o = (_m = this.checklist) === null || _m === void 0 ? void 0 : _m.inspectionParts) === null || _o === void 0 ? void 0 : _o.join(', ')) || ''}</td>
|
|
58
59
|
</tr>
|
|
59
60
|
<tr>
|
|
60
61
|
<th>검측 요구일시</th>
|
|
@@ -63,69 +64,72 @@ let InspectionRequestDocument = class InspectionRequestDocument extends LitEleme
|
|
|
63
64
|
<tr>
|
|
64
65
|
<th>검측 사항</th>
|
|
65
66
|
<td>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
placeholder="검측사항을 입력하세요."
|
|
75
|
-
/>
|
|
76
|
-
`
|
|
77
|
-
: html ` <div class="inspection-memo-text">${(_l = this.buildingInspection) === null || _l === void 0 ? void 0 : _l.memo}</div> `}
|
|
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
|
+
/>
|
|
78
75
|
</td>
|
|
79
76
|
</tr>
|
|
80
77
|
</table>
|
|
81
78
|
</div>
|
|
82
79
|
|
|
83
|
-
<div class="
|
|
84
|
-
<div class="attachment-
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
공사 참여자 실명부
|
|
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>` : ''}
|
|
103
99
|
</div>
|
|
104
100
|
</div>
|
|
105
|
-
</div>
|
|
106
101
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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>
|
|
113
111
|
</div>
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
120
|
</div>
|
|
121
121
|
</div>
|
|
122
122
|
</div>
|
|
123
|
-
|
|
124
|
-
<div class="button-container">
|
|
125
|
-
<md-elevated-button @click=${this._onConfirm}> 확인 </md-elevated-button>
|
|
126
|
-
</div>
|
|
127
123
|
</div>
|
|
128
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
|
+
: ''}
|
|
129
133
|
`;
|
|
130
134
|
}
|
|
131
135
|
_formatDate(date) {
|
|
@@ -133,31 +137,29 @@ let InspectionRequestDocument = class InspectionRequestDocument extends LitEleme
|
|
|
133
137
|
}
|
|
134
138
|
_onInspectionMemoChange(e) {
|
|
135
139
|
const target = e.target;
|
|
136
|
-
this.
|
|
140
|
+
this.checklist = Object.assign(Object.assign({}, this.checklist), { inspectionRequestMemo: target.value });
|
|
137
141
|
// 부모 컴포넌트에 변경사항 전달
|
|
138
142
|
this.dispatchEvent(new CustomEvent('inspection-memo-change', {
|
|
139
|
-
detail: {
|
|
143
|
+
detail: { inspectionRequestMemo: target.value },
|
|
140
144
|
bubbles: true
|
|
141
145
|
}));
|
|
142
146
|
}
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
// TODO: 참여자 실명부 팝업 구현
|
|
160
|
-
console.log('참여자 실명부 클릭');
|
|
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();
|
|
161
163
|
}
|
|
162
164
|
// 확인 버튼
|
|
163
165
|
_onConfirm() {
|
|
@@ -195,16 +197,6 @@ InspectionRequestDocument.styles = [
|
|
|
195
197
|
margin-bottom: 10px;
|
|
196
198
|
}
|
|
197
199
|
|
|
198
|
-
.document-main-title {
|
|
199
|
-
font-size: 20px;
|
|
200
|
-
font-weight: bold;
|
|
201
|
-
text-align: center;
|
|
202
|
-
margin-bottom: 20px;
|
|
203
|
-
background-color: var(--md-sys-color-primary);
|
|
204
|
-
color: white;
|
|
205
|
-
padding: 10px;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
200
|
.document-body {
|
|
209
201
|
padding: 20px;
|
|
210
202
|
}
|
|
@@ -247,55 +239,50 @@ InspectionRequestDocument.styles = [
|
|
|
247
239
|
|
|
248
240
|
.signature-section {
|
|
249
241
|
display: flex;
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
|
|
254
|
-
border-radius: 10px;
|
|
255
|
-
border: 2px solid #e1e8ed;
|
|
242
|
+
flex-direction: column;
|
|
243
|
+
align-items: flex-end;
|
|
244
|
+
gap: 15px;
|
|
256
245
|
}
|
|
257
246
|
|
|
258
247
|
.signature-box {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
padding: 20px;
|
|
264
|
-
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
265
|
-
border: 1px solid #d1d9e6;
|
|
248
|
+
display: flex;
|
|
249
|
+
align-items: center;
|
|
250
|
+
gap: 15px;
|
|
251
|
+
text-align: right;
|
|
266
252
|
}
|
|
267
253
|
|
|
268
254
|
.signature-title {
|
|
255
|
+
font-size: 14px;
|
|
269
256
|
font-weight: bold;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
font-size: 16px;
|
|
273
|
-
border-bottom: 2px solid #3498db;
|
|
274
|
-
padding-bottom: 5px;
|
|
257
|
+
color: #333;
|
|
258
|
+
min-width: 120px;
|
|
275
259
|
}
|
|
276
260
|
|
|
277
261
|
.signature-name {
|
|
278
|
-
font-weight: bold;
|
|
279
|
-
margin-bottom: 15px;
|
|
280
|
-
color: #34495e;
|
|
281
262
|
font-size: 14px;
|
|
282
|
-
|
|
283
|
-
padding: 8px;
|
|
284
|
-
border-radius: 5px;
|
|
263
|
+
color: #333;
|
|
285
264
|
}
|
|
286
265
|
|
|
287
266
|
.signature-container {
|
|
288
267
|
position: relative;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
padding: 10px;
|
|
292
|
-
margin-bottom: 10px;
|
|
293
|
-
min-height: 80px;
|
|
268
|
+
min-width: 100px;
|
|
269
|
+
min-height: 60px;
|
|
294
270
|
display: flex;
|
|
295
271
|
align-items: center;
|
|
296
272
|
justify-content: center;
|
|
297
273
|
}
|
|
298
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
|
+
|
|
299
286
|
.signature-image {
|
|
300
287
|
max-width: 140px;
|
|
301
288
|
max-height: 60px;
|
|
@@ -305,84 +292,50 @@ InspectionRequestDocument.styles = [
|
|
|
305
292
|
|
|
306
293
|
.attachment-section {
|
|
307
294
|
margin-top: 30px;
|
|
308
|
-
|
|
309
|
-
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
|
|
310
|
-
border: 1px solid #dee2e6;
|
|
311
|
-
border-radius: 8px;
|
|
312
|
-
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
295
|
+
margin-bottom: 30px;
|
|
313
296
|
}
|
|
314
297
|
|
|
315
298
|
.attachment-title {
|
|
316
299
|
font-weight: bold;
|
|
317
|
-
font-size:
|
|
318
|
-
color: #
|
|
319
|
-
margin-bottom:
|
|
300
|
+
font-size: 14px;
|
|
301
|
+
color: #333;
|
|
302
|
+
margin-bottom: 10px;
|
|
320
303
|
display: flex;
|
|
321
304
|
align-items: center;
|
|
322
305
|
gap: 8px;
|
|
323
306
|
}
|
|
324
307
|
|
|
325
308
|
.attachment-list {
|
|
326
|
-
|
|
327
|
-
flex-direction: column;
|
|
328
|
-
gap: 12px;
|
|
309
|
+
margin-left: 30px;
|
|
329
310
|
}
|
|
330
311
|
|
|
331
312
|
.attachment-item {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
background-color: white;
|
|
337
|
-
border: 1px solid #dee2e6;
|
|
338
|
-
border-radius: 6px;
|
|
339
|
-
cursor: pointer;
|
|
340
|
-
color: #495057;
|
|
341
|
-
text-decoration: none;
|
|
342
|
-
transition: all 0.2s ease;
|
|
343
|
-
font-weight: 500;
|
|
344
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
.attachment-item:hover {
|
|
348
|
-
background-color: #e3f2fd;
|
|
349
|
-
border-color: #2196f3;
|
|
350
|
-
color: #1976d2;
|
|
351
|
-
transform: translateY(-1px);
|
|
352
|
-
box-shadow: 0 2px 8px rgba(33, 150, 243, 0.15);
|
|
313
|
+
margin-bottom: 5px;
|
|
314
|
+
color: #2196f3;
|
|
315
|
+
font-size: 14px;
|
|
316
|
+
line-height: 1.5;
|
|
353
317
|
}
|
|
354
318
|
|
|
355
|
-
.attachment-item
|
|
356
|
-
|
|
357
|
-
|
|
319
|
+
.attachment-item.upload {
|
|
320
|
+
display: flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
gap: 10px;
|
|
358
323
|
}
|
|
359
324
|
|
|
360
|
-
.attachment-item.
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
color: #
|
|
364
|
-
|
|
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;
|
|
365
330
|
}
|
|
366
331
|
|
|
367
|
-
.attachment-item.
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
color: #6c757d;
|
|
371
|
-
transform: none;
|
|
372
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
332
|
+
.attachment-item.upload span {
|
|
333
|
+
color: #666;
|
|
334
|
+
font-size: 12px;
|
|
373
335
|
}
|
|
374
336
|
|
|
375
337
|
.attachment-icon {
|
|
376
|
-
|
|
377
|
-
color: #6c757d;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
.attachment-item:hover .attachment-icon {
|
|
381
|
-
color: #1976d2;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
.attachment-item.disabled .attachment-icon {
|
|
385
|
-
color: #adb5bd;
|
|
338
|
+
display: none;
|
|
386
339
|
}
|
|
387
340
|
|
|
388
341
|
.date-section {
|
|
@@ -452,6 +405,12 @@ InspectionRequestDocument.styles = [
|
|
|
452
405
|
font-weight: bold;
|
|
453
406
|
border-radius: 8px;
|
|
454
407
|
}
|
|
408
|
+
|
|
409
|
+
.document-footer {
|
|
410
|
+
display: flex;
|
|
411
|
+
justify-content: space-between;
|
|
412
|
+
align-items: center;
|
|
413
|
+
}
|
|
455
414
|
`
|
|
456
415
|
];
|
|
457
416
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspection-request-document.js","sourceRoot":"","sources":["../../../../../client/pages/building-inspection/component/inspection-document/inspection-request-document.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, property } from 'lit/decorators.js'\nimport { ScrollbarStyles } from '@operato/styles'\nimport { openPopup } from '@operato/layout'\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-main-title {\n font-size: 20px;\n font-weight: bold;\n text-align: center;\n margin-bottom: 20px;\n background-color: var(--md-sys-color-primary);\n color: white;\n padding: 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 justify-content: space-around;\n margin-top: 30px;\n padding: 20px;\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\n border-radius: 10px;\n border: 2px solid #e1e8ed;\n }\n\n .signature-box {\n text-align: center;\n width: 220px;\n background: white;\n border-radius: 8px;\n padding: 20px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n border: 1px solid #d1d9e6;\n }\n\n .signature-title {\n font-weight: bold;\n margin-bottom: 15px;\n color: #2c3e50;\n font-size: 16px;\n border-bottom: 2px solid #3498db;\n padding-bottom: 5px;\n }\n\n .signature-name {\n font-weight: bold;\n margin-bottom: 15px;\n color: #34495e;\n font-size: 14px;\n background-color: #ecf0f1;\n padding: 8px;\n border-radius: 5px;\n }\n\n .signature-container {\n position: relative;\n border: 2px solid #333;\n border-radius: 8px;\n padding: 10px;\n margin-bottom: 10px;\n min-height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\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 padding: 20px;\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border: 1px solid #dee2e6;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n }\n\n .attachment-title {\n font-weight: bold;\n font-size: 16px;\n color: #495057;\n margin-bottom: 15px;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .attachment-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .attachment-item {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background-color: white;\n border: 1px solid #dee2e6;\n border-radius: 6px;\n cursor: pointer;\n color: #495057;\n text-decoration: none;\n transition: all 0.2s ease;\n font-weight: 500;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n }\n\n .attachment-item:hover {\n background-color: #e3f2fd;\n border-color: #2196f3;\n color: #1976d2;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.15);\n }\n\n .attachment-item:active {\n transform: translateY(0);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n }\n\n .attachment-item.disabled {\n cursor: not-allowed;\n background-color: #f8f9fa;\n color: #6c757d;\n border-color: #e9ecef;\n }\n\n .attachment-item.disabled:hover {\n background-color: #f8f9fa;\n border-color: #e9ecef;\n color: #6c757d;\n transform: none;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n }\n\n .attachment-icon {\n --md-icon-size: 18px;\n color: #6c757d;\n }\n\n .attachment-item:hover .attachment-icon {\n color: #1976d2;\n }\n\n .attachment-item.disabled .attachment-icon {\n color: #adb5bd;\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 ]\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 today = this._formatDate(new Date())\n const requestDate = this._formatDate(new Date(this.buildingInspection.requestDate))\n\n return html`\n <div class=\"document-main-title\">검측요청결과 통보내용</div>\n\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\">${today}</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?.documentNo || ''}</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 ${this.mode === InspectionMode.EDIT\n ? html`\n <input\n type=\"text\"\n name=\"memo\"\n class=\"inspection-memo-input\"\n .value=${this.buildingInspection?.memo || ''}\n @input=${this._onInspectionMemoChange}\n placeholder=\"검측사항을 입력하세요.\"\n />\n `\n : html` <div class=\"inspection-memo-text\">${this.buildingInspection?.memo}</div> `}\n </td>\n </tr>\n </table>\n </div>\n\n <div class=\"attachment-section\">\n <div class=\"attachment-title\">\n <md-icon class=\"attachment-icon\">attach_file</md-icon>\n 첨부자료\n </div>\n <div class=\"attachment-list\">\n <div\n class=\"attachment-item ${this.mode === InspectionMode.EDIT ? 'disabled' : ''}\"\n @click=${this.mode === InspectionMode.VIEW ? this._onChecklistClick : null}\n >\n <md-icon class=\"attachment-icon\">assignment</md-icon>\n 시공자 검측 체크리스트\n </div>\n <div class=\"attachment-item\" @click=${this._onPhotoAlbumClick}>\n <md-icon class=\"attachment-icon\">photo_library</md-icon>\n 사진대지\n </div>\n <div class=\"attachment-item\" @click=${this._onParticipantListClick}>\n <md-icon class=\"attachment-icon\">people</md-icon>\n 공사 참여자 실명부\n </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 <img class=\"signature-image\" src=\"${this.checklist?.taskConstructorSignature || ''}\" alt=\"서명\" />\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 <img class=\"signature-image\" src=\"${this.checklist?.overallConstructorSignature || ''}\" alt=\"서명\" />\n </div>\n </div>\n </div>\n\n <div class=\"button-container\">\n <md-elevated-button @click=${this._onConfirm}> 확인 </md-elevated-button>\n </div>\n </div>\n </div>\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.buildingInspection = { ...this.buildingInspection, memo: target.value }\n\n // 부모 컴포넌트에 변경사항 전달\n this.dispatchEvent(\n new CustomEvent('inspection-memo-change', {\n detail: { memo: target.value },\n bubbles: true\n })\n )\n }\n\n // 체크리스트 팝업 열기\n private _onChecklistClick() {\n // TODO: 체크리스트 팝업 구현\n console.log('체크리스트 클릭')\n }\n\n // 사진대지 팝업 열기\n private _onPhotoAlbumClick() {\n openPopup(html` <photo-album-popup .checklistId=${this.checklist?.id || ''}></photo-album-popup> `, {\n backdrop: true,\n size: 'large',\n title: '사진대지'\n })\n }\n\n // 참여자 실명부 팝업 열기\n private _onParticipantListClick() {\n // TODO: 참여자 실명부 팝업 구현\n console.log('참여자 실명부 클릭')\n }\n\n // 확인 버튼\n private _onConfirm() {\n this.dispatchEvent(new CustomEvent('popup-close', { bubbles: true }))\n history.back()\n }\n}\n"]}
|
|
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").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
|
+
}
|