@dssp/project 1.0.0-alpha.7 → 1.0.0-alpha.74
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/index.d.ts +1 -0
- package/dist-client/index.js +1 -1
- package/dist-client/index.js.map +1 -1
- package/dist-client/pages/lib/chatbot-widget.d.ts +53 -0
- package/dist-client/pages/lib/chatbot-widget.js +631 -0
- package/dist-client/pages/lib/chatbot-widget.js.map +1 -0
- package/dist-client/pages/lib/select2-component.d.ts +1 -1
- package/dist-client/pages/lib/select2-component.js +35 -35
- package/dist-client/pages/lib/select2-component.js.map +1 -1
- package/dist-client/pages/project/component/pagenation.d.ts +18 -0
- package/dist-client/pages/project/component/pagenation.js +142 -0
- package/dist-client/pages/project/component/pagenation.js.map +1 -0
- package/dist-client/pages/project/component/project-update-header.js +26 -3
- package/dist-client/pages/project/component/project-update-header.js.map +1 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.d.ts +1 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.js +308 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.js.map +1 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.d.ts +1 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.js +356 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.js.map +1 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.d.ts +1 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.js +681 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.js.map +1 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-view.d.ts +32 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-view.js +620 -0
- package/dist-client/pages/project/popup/checklist/task-checklist-view.js.map +1 -0
- package/dist-client/pages/project/popup/popup-plan-export.js +8 -2
- package/dist-client/pages/project/popup/popup-plan-export.js.map +1 -1
- package/dist-client/pages/project/popup/{popup-schedule-upload.d.ts → popup-task-upload.d.ts} +1 -1
- package/dist-client/pages/project/popup/{popup-schedule-upload.js → popup-task-upload.js} +9 -9
- package/dist-client/pages/project/popup/popup-task-upload.js.map +1 -0
- package/dist-client/pages/project/project-completed-list.d.ts +5 -0
- package/dist-client/pages/project/project-completed-list.js +32 -3
- package/dist-client/pages/project/project-completed-list.js.map +1 -1
- package/dist-client/pages/project/project-detail.d.ts +6 -0
- package/dist-client/pages/project/project-detail.js +366 -159
- package/dist-client/pages/project/project-detail.js.map +1 -1
- package/dist-client/pages/project/project-list.d.ts +57 -0
- package/dist-client/pages/project/project-list.js +80 -9
- package/dist-client/pages/project/project-list.js.map +1 -1
- package/dist-client/pages/project/project-plan-management.js +3 -1
- package/dist-client/pages/project/project-plan-management.js.map +1 -1
- package/dist-client/pages/project/project-setting-list.d.ts +7 -0
- package/dist-client/pages/project/project-setting-list.js +61 -7
- package/dist-client/pages/project/project-setting-list.js.map +1 -1
- package/dist-client/pages/project/{project-schedule-list.d.ts → project-task-list.d.ts} +2 -2
- package/dist-client/pages/project/{project-schedule-list.js → project-task-list.js} +11 -11
- package/dist-client/pages/project/project-task-list.js.map +1 -0
- package/dist-client/pages/project/{project-schedule.d.ts → project-task.d.ts} +17 -4
- package/dist-client/pages/project/project-task.js +686 -0
- package/dist-client/pages/project/project-task.js.map +1 -0
- package/dist-client/pages/project/project-update.d.ts +8 -0
- package/dist-client/pages/project/project-update.js +333 -33
- package/dist-client/pages/project/project-update.js.map +1 -1
- package/dist-client/pages/resource/construction-type-management.js +14 -0
- package/dist-client/pages/resource/construction-type-management.js.map +1 -1
- package/dist-client/pages/resource/resource-list-page.d.ts +1 -2
- package/dist-client/pages/resource/resource-list-page.js +1 -2
- package/dist-client/pages/resource/resource-list-page.js.map +1 -1
- package/dist-client/pages/task/task-list-page.d.ts +1 -2
- package/dist-client/pages/task/task-list-page.js +1 -2
- package/dist-client/pages/task/task-list-page.js.map +1 -1
- package/dist-client/pages/task-resource/task-resource-list-page.d.ts +1 -2
- package/dist-client/pages/task-resource/task-resource-list-page.js +1 -2
- package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +4 -4
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/controllers/parse-excel.js.map +1 -1
- package/dist-server/migrations/1723861466414-seed-codes.js +1 -1
- package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -1
- package/dist-server/service/construction-type/construction-type-query.d.ts +2 -2
- package/dist-server/service/construction-type/construction-type-query.js +5 -10
- package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
- package/dist-server/service/construction-type/construction-type-type.d.ts +1 -0
- package/dist-server/service/construction-type/construction-type-type.js +4 -0
- package/dist-server/service/construction-type/construction-type-type.js.map +1 -1
- package/dist-server/service/construction-type/construction-type.d.ts +1 -0
- package/dist-server/service/construction-type/construction-type.js +5 -0
- package/dist-server/service/construction-type/construction-type.js.map +1 -1
- package/dist-server/service/index.d.ts +2 -2
- package/dist-server/service/index.js +5 -2
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.d.ts +2 -2
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +5 -10
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -1
- package/dist-server/service/manager/manager-query.d.ts +1 -1
- package/dist-server/service/manager/manager-query.js +2 -6
- package/dist-server/service/manager/manager-query.js.map +1 -1
- package/dist-server/service/project/issue-project-code.d.ts +7 -0
- package/dist-server/service/project/issue-project-code.js +27 -0
- package/dist-server/service/project/issue-project-code.js.map +1 -0
- package/dist-server/service/project/project-mutation.d.ts +2 -0
- package/dist-server/service/project/project-mutation.js +96 -9
- package/dist-server/service/project/project-mutation.js.map +1 -1
- package/dist-server/service/project/project-query.d.ts +13 -2
- package/dist-server/service/project/project-query.js +138 -13
- package/dist-server/service/project/project-query.js.map +1 -1
- package/dist-server/service/project/project-type.d.ts +8 -1
- package/dist-server/service/project/project-type.js +27 -1
- package/dist-server/service/project/project-type.js.map +1 -1
- package/dist-server/service/project/project.d.ts +22 -0
- package/dist-server/service/project/project.js +80 -2
- package/dist-server/service/project/project.js.map +1 -1
- package/dist-server/service/resource/resource-mutation.js +5 -6
- package/dist-server/service/resource/resource-mutation.js.map +1 -1
- package/dist-server/service/resource/resource-query.d.ts +2 -2
- package/dist-server/service/resource/resource-query.js +5 -10
- package/dist-server/service/resource/resource-query.js.map +1 -1
- package/dist-server/service/task/task-query.d.ts +2 -0
- package/dist-server/service/task/task-query.js +11 -0
- package/dist-server/service/task/task-query.js.map +1 -1
- package/dist-server/service/task/task.d.ts +2 -0
- package/dist-server/service/task/task.js +6 -0
- package/dist-server/service/task/task.js.map +1 -1
- package/dist-server/service/task-checklist-binding/index.d.ts +5 -0
- package/dist-server/service/task-checklist-binding/index.js +9 -0
- package/dist-server/service/task-checklist-binding/index.js.map +1 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.d.ts +5 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.js +186 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.js.map +1 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-query.d.ts +8 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-query.js +61 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-query.js.map +1 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-type.d.ts +15 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-type.js +57 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding-type.js.map +1 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding.d.ts +22 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding.js +106 -0
- package/dist-server/service/task-checklist-binding/task-checklist-binding.js.map +1 -0
- package/dist-server/service/task-resource/task-resource-query.d.ts +2 -2
- package/dist-server/service/task-resource/task-resource-query.js +4 -9
- package/dist-server/service/task-resource/task-resource-query.js.map +1 -1
- package/dist-server/service/worker-type/worker-type-query.d.ts +2 -2
- package/dist-server/service/worker-type/worker-type-query.js +5 -10
- package/dist-server/service/worker-type/worker-type-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -13
- package/things-factory.config.js +3 -3
- package/translations/en.json +10 -9
- package/translations/ja.json +15 -1
- package/translations/ko.json +3 -0
- package/translations/ms.json +15 -1
- package/translations/zh.json +15 -1
- package/dist-client/pages/project/popup/popup-schedule-upload.js.map +0 -1
- package/dist-client/pages/project/project-schedule-list.js.map +0 -1
- package/dist-client/pages/project/project-schedule.js +0 -407
- package/dist-client/pages/project/project-schedule.js.map +0 -1
|
@@ -9,6 +9,7 @@ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
|
|
|
9
9
|
import { client } from '@operato/graphql';
|
|
10
10
|
import { notify } from '@operato/layout';
|
|
11
11
|
import gql from 'graphql-tag';
|
|
12
|
+
import { SITE_TYPE_DISPLAY } from './project-list';
|
|
12
13
|
import '../lib/select2-component';
|
|
13
14
|
import './component/project-update-header';
|
|
14
15
|
let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
@@ -16,6 +17,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
16
17
|
super(...arguments);
|
|
17
18
|
this.defaultProject = {
|
|
18
19
|
name: '',
|
|
20
|
+
documentNaming: '',
|
|
19
21
|
buildingComplex: {
|
|
20
22
|
address: '',
|
|
21
23
|
area: 0,
|
|
@@ -36,12 +38,13 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
36
38
|
this.overallSupervisoryList = [];
|
|
37
39
|
}
|
|
38
40
|
get context() {
|
|
41
|
+
var _a, _b;
|
|
39
42
|
return {
|
|
40
|
-
title: '프로젝트 정보 관리'
|
|
43
|
+
title: ((_a = this.project) === null || _a === void 0 ? void 0 : _a.name) ? `프로젝트 정보 관리 - ${(_b = this.project) === null || _b === void 0 ? void 0 : _b.name}` : '프로젝트 정보 관리'
|
|
41
44
|
};
|
|
42
45
|
}
|
|
43
46
|
render() {
|
|
44
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31;
|
|
47
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50;
|
|
45
48
|
return html `
|
|
46
49
|
<project-update-header .projectId=${this.project.id || ''} title="프로젝트 정보 관리" @custom-click=${this._saveProject}>
|
|
47
50
|
</project-update-header>
|
|
@@ -61,6 +64,25 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
61
64
|
></md-outlined-text-field>
|
|
62
65
|
</span>
|
|
63
66
|
</div>
|
|
67
|
+
<div row>
|
|
68
|
+
<span>프로젝트 문서 네이밍</span>
|
|
69
|
+
<span>
|
|
70
|
+
<md-outlined-text-field
|
|
71
|
+
type="text"
|
|
72
|
+
name="documentNaming"
|
|
73
|
+
project
|
|
74
|
+
.value=${this.project.documentNaming || ''}
|
|
75
|
+
@input=${this._onInputChange}
|
|
76
|
+
placeholder="프로젝트 문서 네이밍"
|
|
77
|
+
></md-outlined-text-field>
|
|
78
|
+
</span>
|
|
79
|
+
</div>
|
|
80
|
+
<div row>
|
|
81
|
+
<span></span>
|
|
82
|
+
<span>
|
|
83
|
+
<div document-preview>📄 문서 생성 예시: <br />${this.project.documentNaming} 검측 제01-00001호</div>
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
64
86
|
<div row>
|
|
65
87
|
<span>프로젝트 주소</span>
|
|
66
88
|
<span>
|
|
@@ -100,7 +122,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
100
122
|
</span>
|
|
101
123
|
</div>
|
|
102
124
|
<div row>
|
|
103
|
-
<span
|
|
125
|
+
<span>연 면적</span>
|
|
104
126
|
<span align-end
|
|
105
127
|
><md-outlined-text-field
|
|
106
128
|
type="text"
|
|
@@ -109,10 +131,56 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
109
131
|
building-complex
|
|
110
132
|
.value=${((_l = (_k = (_j = this.project) === null || _j === void 0 ? void 0 : _j.buildingComplex) === null || _k === void 0 ? void 0 : _k.area) === null || _l === void 0 ? void 0 : _l.toString()) || ''}
|
|
111
133
|
@input=${this._onInputChange}
|
|
134
|
+
suffix-text="㎡"
|
|
112
135
|
></md-outlined-text-field>
|
|
113
|
-
|
|
114
|
-
|
|
136
|
+
</span>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<div row>
|
|
140
|
+
<span>건폐율</span>
|
|
141
|
+
<span align-end>
|
|
142
|
+
<md-outlined-text-field
|
|
143
|
+
type="text"
|
|
144
|
+
name="coverageRatio"
|
|
145
|
+
numeric
|
|
146
|
+
building-complex
|
|
147
|
+
.value=${((_p = (_o = (_m = this.project) === null || _m === void 0 ? void 0 : _m.buildingComplex) === null || _o === void 0 ? void 0 : _o.coverageRatio) === null || _p === void 0 ? void 0 : _p.toString()) || ''}
|
|
148
|
+
@input=${this._onInputChange}
|
|
149
|
+
suffix-text="%"
|
|
150
|
+
></md-outlined-text-field>
|
|
151
|
+
</span>
|
|
152
|
+
</div>
|
|
153
|
+
<div row>
|
|
154
|
+
<span>용적률</span>
|
|
155
|
+
<span align-end>
|
|
156
|
+
<md-outlined-text-field
|
|
157
|
+
type="text"
|
|
158
|
+
name="floorAreaRatio"
|
|
159
|
+
numeric
|
|
160
|
+
building-complex
|
|
161
|
+
.value=${((_s = (_r = (_q = this.project) === null || _q === void 0 ? void 0 : _q.buildingComplex) === null || _r === void 0 ? void 0 : _r.floorAreaRatio) === null || _s === void 0 ? void 0 : _s.toString()) || ''}
|
|
162
|
+
@input=${this._onInputChange}
|
|
163
|
+
suffix-text="%"
|
|
164
|
+
></md-outlined-text-field>
|
|
165
|
+
</span>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div row>
|
|
169
|
+
<span>현장유형</span>
|
|
170
|
+
<span
|
|
171
|
+
><md-filled-select name="siteType" building-complex @change=${this._onInputChange}>
|
|
172
|
+
${Object.entries(SITE_TYPE_DISPLAY).map(([key, display]) => {
|
|
173
|
+
var _a, _b;
|
|
174
|
+
return html `
|
|
175
|
+
<md-select-option ?selected=${((_b = (_a = this.project) === null || _a === void 0 ? void 0 : _a.buildingComplex) === null || _b === void 0 ? void 0 : _b.siteType) === key} .value=${key}>
|
|
176
|
+
<div slot="headline">${display}</div>
|
|
177
|
+
</md-select-option>
|
|
178
|
+
`;
|
|
179
|
+
})}
|
|
180
|
+
</md-filled-select>
|
|
181
|
+
</span>
|
|
115
182
|
</div>
|
|
183
|
+
|
|
116
184
|
<div row>
|
|
117
185
|
<span>착공일정 ~ 준공일정</span>
|
|
118
186
|
<span
|
|
@@ -142,7 +210,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
142
210
|
type="text"
|
|
143
211
|
name="clientCompany"
|
|
144
212
|
building-complex
|
|
145
|
-
.value=${((
|
|
213
|
+
.value=${((_u = (_t = this.project) === null || _t === void 0 ? void 0 : _t.buildingComplex) === null || _u === void 0 ? void 0 : _u.clientCompany) || ''}
|
|
146
214
|
@input=${this._onInputChange}
|
|
147
215
|
></md-outlined-text-field>
|
|
148
216
|
</span>
|
|
@@ -154,7 +222,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
154
222
|
type="text"
|
|
155
223
|
name="constructionCompany"
|
|
156
224
|
building-complex
|
|
157
|
-
.value=${((
|
|
225
|
+
.value=${((_w = (_v = this.project) === null || _v === void 0 ? void 0 : _v.buildingComplex) === null || _w === void 0 ? void 0 : _w.constructionCompany) || ''}
|
|
158
226
|
@input=${this._onInputChange}
|
|
159
227
|
></md-outlined-text-field>
|
|
160
228
|
</span>
|
|
@@ -166,7 +234,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
166
234
|
type="text"
|
|
167
235
|
name="designCompany"
|
|
168
236
|
building-complex
|
|
169
|
-
.value=${((
|
|
237
|
+
.value=${((_y = (_x = this.project) === null || _x === void 0 ? void 0 : _x.buildingComplex) === null || _y === void 0 ? void 0 : _y.designCompany) || ''}
|
|
170
238
|
@input=${this._onInputChange}
|
|
171
239
|
></md-outlined-text-field>
|
|
172
240
|
</span>
|
|
@@ -178,7 +246,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
178
246
|
type="text"
|
|
179
247
|
name="supervisoryCompany"
|
|
180
248
|
building-complex
|
|
181
|
-
.value=${((
|
|
249
|
+
.value=${((_0 = (_z = this.project) === null || _z === void 0 ? void 0 : _z.buildingComplex) === null || _0 === void 0 ? void 0 : _0.supervisoryCompany) || ''}
|
|
182
250
|
@input=${this._onInputChange}
|
|
183
251
|
></md-outlined-text-field>
|
|
184
252
|
</span>
|
|
@@ -190,17 +258,30 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
190
258
|
type="text"
|
|
191
259
|
name="constructionType"
|
|
192
260
|
building-complex
|
|
193
|
-
.value=${((
|
|
261
|
+
.value=${((_2 = (_1 = this.project) === null || _1 === void 0 ? void 0 : _1.buildingComplex) === null || _2 === void 0 ? void 0 : _2.constructionType) || ''}
|
|
194
262
|
@input=${this._onInputChange}
|
|
195
263
|
></md-outlined-text-field>
|
|
196
264
|
</span>
|
|
197
265
|
</div>
|
|
266
|
+
<div row>
|
|
267
|
+
<span>구조 유형</span>
|
|
268
|
+
<span
|
|
269
|
+
><md-outlined-text-field
|
|
270
|
+
type="text"
|
|
271
|
+
name="structureType"
|
|
272
|
+
building-complex
|
|
273
|
+
.value=${((_4 = (_3 = this.project) === null || _3 === void 0 ? void 0 : _3.buildingComplex) === null || _4 === void 0 ? void 0 : _4.structureType) || ''}
|
|
274
|
+
@input=${this._onInputChange}
|
|
275
|
+
></md-outlined-text-field>
|
|
276
|
+
</span>
|
|
277
|
+
</div>
|
|
278
|
+
|
|
198
279
|
<div row>
|
|
199
280
|
<span>대표사진 업로드</span>
|
|
200
281
|
<span>
|
|
201
282
|
<ox-input-image
|
|
202
283
|
name="mainPhoto"
|
|
203
|
-
value=${((
|
|
284
|
+
value=${((_6 = (_5 = this.project) === null || _5 === void 0 ? void 0 : _5.mainPhoto) === null || _6 === void 0 ? void 0 : _6.fullpath) || ''}
|
|
204
285
|
@change=${this.onCreateAttachment.bind(this)}
|
|
205
286
|
></ox-input-image>
|
|
206
287
|
</span>
|
|
@@ -212,7 +293,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
212
293
|
name="drawing"
|
|
213
294
|
label=" "
|
|
214
295
|
description="IFC 업로드"
|
|
215
|
-
.value=${((
|
|
296
|
+
.value=${((_8 = (_7 = this.project) === null || _7 === void 0 ? void 0 : _7.buildingComplex) === null || _8 === void 0 ? void 0 : _8.drawing) || ''}
|
|
216
297
|
@change=${this.onCreateAttachment.bind(this)}
|
|
217
298
|
></ox-input-file>
|
|
218
299
|
</span>
|
|
@@ -225,8 +306,23 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
225
306
|
name="constructionCost"
|
|
226
307
|
numeric
|
|
227
308
|
building-complex
|
|
228
|
-
.value=${((
|
|
309
|
+
.value=${((_11 = (_10 = (_9 = this.project) === null || _9 === void 0 ? void 0 : _9.buildingComplex) === null || _10 === void 0 ? void 0 : _10.constructionCost) === null || _11 === void 0 ? void 0 : _11.toString()) || ''}
|
|
310
|
+
@input=${this._onInputChange}
|
|
311
|
+
suffix-text="억원"
|
|
312
|
+
></md-outlined-text-field>
|
|
313
|
+
</span>
|
|
314
|
+
</div>
|
|
315
|
+
<div row>
|
|
316
|
+
<span>투입 인력</span>
|
|
317
|
+
<span
|
|
318
|
+
><md-outlined-text-field
|
|
319
|
+
type="text"
|
|
320
|
+
name="workerCount"
|
|
321
|
+
numeric
|
|
322
|
+
building-complex
|
|
323
|
+
.value=${((_14 = (_13 = (_12 = this.project) === null || _12 === void 0 ? void 0 : _12.buildingComplex) === null || _13 === void 0 ? void 0 : _13.workerCount) === null || _14 === void 0 ? void 0 : _14.toString()) || ''}
|
|
229
324
|
@input=${this._onInputChange}
|
|
325
|
+
suffix-text="명"
|
|
230
326
|
></md-outlined-text-field>
|
|
231
327
|
</span>
|
|
232
328
|
</div>
|
|
@@ -237,7 +333,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
237
333
|
type="textarea"
|
|
238
334
|
name="etc"
|
|
239
335
|
building-complex
|
|
240
|
-
.value=${((
|
|
336
|
+
.value=${((_16 = (_15 = this.project) === null || _15 === void 0 ? void 0 : _15.buildingComplex) === null || _16 === void 0 ? void 0 : _16.etc) || ''}
|
|
241
337
|
@input=${this._onInputChange}
|
|
242
338
|
></md-outlined-text-field>
|
|
243
339
|
</span>
|
|
@@ -249,7 +345,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
249
345
|
placeholder="총괄 시공 관리자 리스트"
|
|
250
346
|
name="overallConstructorEmails"
|
|
251
347
|
.options=${this.overallConstructorList}
|
|
252
|
-
.selectedValues=${((
|
|
348
|
+
.selectedValues=${((_18 = (_17 = this.project) === null || _17 === void 0 ? void 0 : _17.buildingComplex) === null || _18 === void 0 ? void 0 : _18.overallConstructorEmails) || []}
|
|
253
349
|
@selection-changed=${this._handleSelectionChange}
|
|
254
350
|
></select2-component>
|
|
255
351
|
</span>
|
|
@@ -261,7 +357,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
261
357
|
placeholder="공종별 시공 관리자 리스트"
|
|
262
358
|
name="taskConstructorEmails"
|
|
263
359
|
.options=${this.taskConstructorList}
|
|
264
|
-
.selectedValues=${((
|
|
360
|
+
.selectedValues=${((_20 = (_19 = this.project) === null || _19 === void 0 ? void 0 : _19.buildingComplex) === null || _20 === void 0 ? void 0 : _20.taskConstructorEmails) || []}
|
|
265
361
|
@selection-changed=${this._handleSelectionChange}
|
|
266
362
|
></select2-component>
|
|
267
363
|
</span>
|
|
@@ -273,7 +369,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
273
369
|
placeholder="총괄 감리 책임자 리스트"
|
|
274
370
|
name="overallSupervisoryEmails"
|
|
275
371
|
.options=${this.overallSupervisoryList}
|
|
276
|
-
.selectedValues=${((
|
|
372
|
+
.selectedValues=${((_22 = (_21 = this.project) === null || _21 === void 0 ? void 0 : _21.buildingComplex) === null || _22 === void 0 ? void 0 : _22.overallSupervisoryEmails) || []}
|
|
277
373
|
@selection-changed=${this._handleSelectionChange}
|
|
278
374
|
></select2-component>
|
|
279
375
|
</span>
|
|
@@ -285,7 +381,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
285
381
|
placeholder="공종별 감리 책임자 리스트"
|
|
286
382
|
name="taskSupervisoryEmails"
|
|
287
383
|
.options=${this.taskSupervisoryList}
|
|
288
|
-
.selectedValues=${((
|
|
384
|
+
.selectedValues=${((_24 = (_23 = this.project) === null || _23 === void 0 ? void 0 : _23.buildingComplex) === null || _24 === void 0 ? void 0 : _24.taskSupervisoryEmails) || []}
|
|
289
385
|
@selection-changed=${this._handleSelectionChange}
|
|
290
386
|
></select2-component
|
|
291
387
|
></span>
|
|
@@ -293,6 +389,44 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
293
389
|
</div>
|
|
294
390
|
|
|
295
391
|
<div detail-info>
|
|
392
|
+
<div>
|
|
393
|
+
<h3>테넌트 관리</h3>
|
|
394
|
+
<div row>
|
|
395
|
+
<span>관리번호</span>
|
|
396
|
+
<span>
|
|
397
|
+
${this.project.tenantDomain
|
|
398
|
+
? html `<a href=${`/project/${this.project.code}/`} target="_blank" title="테넌트로 이동"
|
|
399
|
+
>${this.project.code} <md-icon style="font-size:14px;vertical-align:middle">open_in_new</md-icon></a
|
|
400
|
+
>`
|
|
401
|
+
: this.project.code
|
|
402
|
+
? html `${this.project.code}`
|
|
403
|
+
: html `<span style="color:#999">미발번 (승격 시 자동 부여)</span>`}
|
|
404
|
+
</span>
|
|
405
|
+
</div>
|
|
406
|
+
<div row>
|
|
407
|
+
<span>현재 상태</span>
|
|
408
|
+
<span>
|
|
409
|
+
${this.project.tenantDomain
|
|
410
|
+
? html `<b style="color:#42b382">활성 테넌트</b>`
|
|
411
|
+
: this.project.code
|
|
412
|
+
? html `<b style="color:#aa6633">강등됨</b> (재승격 시 ${this.project.code} 재사용)`
|
|
413
|
+
: html `<b style="color:#999">미승격</b>`}
|
|
414
|
+
</span>
|
|
415
|
+
</div>
|
|
416
|
+
<div row>
|
|
417
|
+
<span></span>
|
|
418
|
+
<span tenant-actions>
|
|
419
|
+
${this.project.tenantDomain
|
|
420
|
+
? html `<md-elevated-button @click=${this._demoteTenant} ?disabled=${!this.project.id}>
|
|
421
|
+
<md-icon slot="icon">link_off</md-icon>테넌트 강등
|
|
422
|
+
</md-elevated-button>`
|
|
423
|
+
: html `<md-elevated-button green @click=${this._promoteTenant} ?disabled=${!this.project.id}>
|
|
424
|
+
<md-icon slot="icon">verified</md-icon>테넌트 승격
|
|
425
|
+
</md-elevated-button>`}
|
|
426
|
+
</span>
|
|
427
|
+
</div>
|
|
428
|
+
</div>
|
|
429
|
+
|
|
296
430
|
<div>
|
|
297
431
|
<h3>건설구분 상세 정보</h3>
|
|
298
432
|
<div row>
|
|
@@ -303,7 +437,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
303
437
|
numeric
|
|
304
438
|
building-complex
|
|
305
439
|
name="householdCount"
|
|
306
|
-
.value=${((
|
|
440
|
+
.value=${((_27 = (_26 = (_25 = this.project) === null || _25 === void 0 ? void 0 : _25.buildingComplex) === null || _26 === void 0 ? void 0 : _26.householdCount) === null || _27 === void 0 ? void 0 : _27.toString()) || ''}
|
|
307
441
|
@input=${this._onInputChange}
|
|
308
442
|
></md-outlined-text-field>
|
|
309
443
|
</span>
|
|
@@ -316,7 +450,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
316
450
|
numeric
|
|
317
451
|
building-complex
|
|
318
452
|
name="buildingCount"
|
|
319
|
-
value=${((
|
|
453
|
+
value=${((_30 = (_29 = (_28 = this.project) === null || _28 === void 0 ? void 0 : _28.buildingComplex) === null || _29 === void 0 ? void 0 : _29.buildingCount) === null || _30 === void 0 ? void 0 : _30.toString()) || ''}
|
|
320
454
|
@input=${this._onInputChange}
|
|
321
455
|
></md-outlined-text-field>
|
|
322
456
|
<md-outlined-button @click=${this._setBuilding}>적용</md-outlined-button>
|
|
@@ -325,7 +459,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
325
459
|
<hr />
|
|
326
460
|
<div warn>* 동/층의 정보를 수정하면 기존의 동/층 정보는 모두 제거됩니다.</div>
|
|
327
461
|
<div separate-container>
|
|
328
|
-
${(
|
|
462
|
+
${(_33 = (_32 = (_31 = this.project) === null || _31 === void 0 ? void 0 : _31.buildingComplex) === null || _32 === void 0 ? void 0 : _32.buildings) === null || _33 === void 0 ? void 0 : _33.map((building, idx) => {
|
|
329
463
|
var _a, _b;
|
|
330
464
|
return html `
|
|
331
465
|
<div>
|
|
@@ -393,7 +527,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
393
527
|
numeric
|
|
394
528
|
project
|
|
395
529
|
name="totalProgress"
|
|
396
|
-
.value=${((
|
|
530
|
+
.value=${((_34 = this.project.totalProgress) === null || _34 === void 0 ? void 0 : _34.toString()) || ''}
|
|
397
531
|
@input=${this._onInputChange}
|
|
398
532
|
suffix-text="%"
|
|
399
533
|
></md-outlined-text-field>
|
|
@@ -407,7 +541,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
407
541
|
numeric
|
|
408
542
|
project
|
|
409
543
|
name="inspPassRate"
|
|
410
|
-
.value=${((
|
|
544
|
+
.value=${((_35 = this.project.inspPassRate) === null || _35 === void 0 ? void 0 : _35.toString()) || ''}
|
|
411
545
|
@input=${this._onInputChange}
|
|
412
546
|
suffix-text="%"
|
|
413
547
|
></md-outlined-text-field>
|
|
@@ -423,7 +557,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
423
557
|
numeric
|
|
424
558
|
project
|
|
425
559
|
name="weeklyProgress"
|
|
426
|
-
.value=${((
|
|
560
|
+
.value=${((_36 = this.project.weeklyProgress) === null || _36 === void 0 ? void 0 : _36.toString()) || ''}
|
|
427
561
|
@input=${this._onInputChange}
|
|
428
562
|
suffix-text="%"
|
|
429
563
|
></md-outlined-text-field>
|
|
@@ -437,7 +571,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
437
571
|
numeric
|
|
438
572
|
project
|
|
439
573
|
name="robotProgressRate"
|
|
440
|
-
.value=${((
|
|
574
|
+
.value=${((_37 = this.project.robotProgressRate) === null || _37 === void 0 ? void 0 : _37.toString()) || ''}
|
|
441
575
|
@input=${this._onInputChange}
|
|
442
576
|
suffix-text="%"
|
|
443
577
|
></md-outlined-text-field>
|
|
@@ -453,7 +587,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
453
587
|
numeric
|
|
454
588
|
project
|
|
455
589
|
name="kpi"
|
|
456
|
-
.value=${((
|
|
590
|
+
.value=${((_38 = this.project.kpi) === null || _38 === void 0 ? void 0 : _38.toString()) || ''}
|
|
457
591
|
@input=${this._onInputChange}
|
|
458
592
|
suffix-text="%"
|
|
459
593
|
></md-outlined-text-field>
|
|
@@ -467,7 +601,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
467
601
|
numeric
|
|
468
602
|
project
|
|
469
603
|
name="structuralSafetyRate"
|
|
470
|
-
.value=${((
|
|
604
|
+
.value=${((_39 = this.project.structuralSafetyRate) === null || _39 === void 0 ? void 0 : _39.toString()) || ''}
|
|
471
605
|
@input=${this._onInputChange}
|
|
472
606
|
suffix-text="%"
|
|
473
607
|
></md-outlined-text-field>
|
|
@@ -484,11 +618,60 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
484
618
|
numeric
|
|
485
619
|
project
|
|
486
620
|
name="robotCount"
|
|
487
|
-
.value=${((
|
|
621
|
+
.value=${((_40 = this.project.robotCount) === null || _40 === void 0 ? void 0 : _40.toString()) || ''}
|
|
622
|
+
@input=${this._onInputChange}
|
|
623
|
+
></md-outlined-text-field>
|
|
624
|
+
</span>
|
|
625
|
+
</div>
|
|
626
|
+
</div>
|
|
627
|
+
|
|
628
|
+
<hr />
|
|
629
|
+
|
|
630
|
+
<div row separate-container>
|
|
631
|
+
<div>
|
|
632
|
+
<span>설계 변경 횟수</span>
|
|
633
|
+
<span
|
|
634
|
+
><md-outlined-text-field
|
|
635
|
+
type="text"
|
|
636
|
+
numeric
|
|
637
|
+
building-complex
|
|
638
|
+
name="designChangeCount"
|
|
639
|
+
.value=${((_42 = (_41 = this.project.buildingComplex) === null || _41 === void 0 ? void 0 : _41.designChangeCount) === null || _42 === void 0 ? void 0 : _42.toString()) || ''}
|
|
488
640
|
@input=${this._onInputChange}
|
|
489
641
|
></md-outlined-text-field>
|
|
490
642
|
</span>
|
|
491
643
|
</div>
|
|
644
|
+
<div>
|
|
645
|
+
<span>계획 공정률</span>
|
|
646
|
+
<span
|
|
647
|
+
><md-outlined-text-field
|
|
648
|
+
type="text"
|
|
649
|
+
numeric
|
|
650
|
+
building-complex
|
|
651
|
+
name="plannedProgress"
|
|
652
|
+
.value=${((_44 = (_43 = this.project.buildingComplex) === null || _43 === void 0 ? void 0 : _43.plannedProgress) === null || _44 === void 0 ? void 0 : _44.toString()) || ''}
|
|
653
|
+
@input=${this._onInputChange}
|
|
654
|
+
suffix-text="%"
|
|
655
|
+
></md-outlined-text-field>
|
|
656
|
+
</span>
|
|
657
|
+
</div>
|
|
658
|
+
</div>
|
|
659
|
+
|
|
660
|
+
<div row separate-container>
|
|
661
|
+
<div>
|
|
662
|
+
<span>실제 공정률</span>
|
|
663
|
+
<span
|
|
664
|
+
><md-outlined-text-field
|
|
665
|
+
type="text"
|
|
666
|
+
numeric
|
|
667
|
+
building-complex
|
|
668
|
+
name="actualProgress"
|
|
669
|
+
.value=${((_46 = (_45 = this.project.buildingComplex) === null || _45 === void 0 ? void 0 : _45.actualProgress) === null || _46 === void 0 ? void 0 : _46.toString()) || ''}
|
|
670
|
+
@input=${this._onInputChange}
|
|
671
|
+
suffix-text="%"
|
|
672
|
+
></md-outlined-text-field>
|
|
673
|
+
</span>
|
|
674
|
+
</div>
|
|
492
675
|
</div>
|
|
493
676
|
</div>
|
|
494
677
|
|
|
@@ -501,7 +684,23 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
501
684
|
type="textarea"
|
|
502
685
|
name="notice"
|
|
503
686
|
building-complex
|
|
504
|
-
.value=${((
|
|
687
|
+
.value=${((_48 = (_47 = this.project) === null || _47 === void 0 ? void 0 : _47.buildingComplex) === null || _48 === void 0 ? void 0 : _48.notice) || ''}
|
|
688
|
+
@input=${this._onInputChange}
|
|
689
|
+
></md-outlined-text-field>
|
|
690
|
+
</span>
|
|
691
|
+
</div>
|
|
692
|
+
</div>
|
|
693
|
+
|
|
694
|
+
<div>
|
|
695
|
+
<h3>Virtual Tour Link</h3>
|
|
696
|
+
<div>
|
|
697
|
+
<span></span>
|
|
698
|
+
<span>
|
|
699
|
+
<md-outlined-text-field
|
|
700
|
+
type="text"
|
|
701
|
+
name="virtualTourLink"
|
|
702
|
+
building-complex
|
|
703
|
+
.value=${((_50 = (_49 = this.project) === null || _49 === void 0 ? void 0 : _49.buildingComplex) === null || _50 === void 0 ? void 0 : _50.virtualTourLink) || ''}
|
|
505
704
|
@input=${this._onInputChange}
|
|
506
705
|
></md-outlined-text-field>
|
|
507
706
|
</span>
|
|
@@ -513,10 +712,30 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
513
712
|
}
|
|
514
713
|
async pageInitialized(lifecycle) { }
|
|
515
714
|
async pageUpdated(changes, lifecycle) {
|
|
516
|
-
if (this.active)
|
|
517
|
-
|
|
518
|
-
|
|
715
|
+
if (!this.active)
|
|
716
|
+
return;
|
|
717
|
+
this.projectId = await this._resolveProjectId(lifecycle.resourceId || '');
|
|
718
|
+
await this.initProject(this.projectId);
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* resourceId 를 정상 Project.id (UUID) 로 변환한다.
|
|
722
|
+
* - UUID 형식이면 그대로 사용
|
|
723
|
+
* - 그 외 (code 또는 비어있음) 에는 현재 테넌트 컨텍스트의 프로젝트 조회
|
|
724
|
+
*/
|
|
725
|
+
async _resolveProjectId(resourceId) {
|
|
726
|
+
var _a, _b;
|
|
727
|
+
if (resourceId && resourceId.length === 36)
|
|
728
|
+
return resourceId;
|
|
729
|
+
const response = await client.query({
|
|
730
|
+
query: gql `
|
|
731
|
+
query CurrentProject {
|
|
732
|
+
currentProject {
|
|
733
|
+
id
|
|
734
|
+
}
|
|
519
735
|
}
|
|
736
|
+
`
|
|
737
|
+
});
|
|
738
|
+
return ((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.currentProject) === null || _b === void 0 ? void 0 : _b.id) || '';
|
|
520
739
|
}
|
|
521
740
|
async initProject(projectId = '') {
|
|
522
741
|
var _a, _b, _c;
|
|
@@ -525,7 +744,14 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
525
744
|
query Project($id: String!, $filters: [Filter!]) {
|
|
526
745
|
project(id: $id) {
|
|
527
746
|
id
|
|
747
|
+
code
|
|
748
|
+
tenantDomain {
|
|
749
|
+
id
|
|
750
|
+
subdomain
|
|
751
|
+
name
|
|
752
|
+
}
|
|
528
753
|
name
|
|
754
|
+
documentNaming
|
|
529
755
|
startDate
|
|
530
756
|
endDate
|
|
531
757
|
mainPhoto {
|
|
@@ -541,9 +767,17 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
541
767
|
buildingComplex {
|
|
542
768
|
id
|
|
543
769
|
address
|
|
770
|
+
siteType
|
|
544
771
|
latitude
|
|
545
772
|
longitude
|
|
546
773
|
area
|
|
774
|
+
coverageRatio
|
|
775
|
+
floorAreaRatio
|
|
776
|
+
structureType
|
|
777
|
+
workerCount
|
|
778
|
+
designChangeCount
|
|
779
|
+
plannedProgress
|
|
780
|
+
actualProgress
|
|
547
781
|
clientCompany
|
|
548
782
|
constructionCompany
|
|
549
783
|
supervisoryCompany
|
|
@@ -562,6 +796,7 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
562
796
|
taskConstructorEmails
|
|
563
797
|
overallSupervisoryEmails
|
|
564
798
|
taskSupervisoryEmails
|
|
799
|
+
virtualTourLink
|
|
565
800
|
buildings {
|
|
566
801
|
id
|
|
567
802
|
name
|
|
@@ -603,12 +838,13 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
603
838
|
]
|
|
604
839
|
}
|
|
605
840
|
});
|
|
606
|
-
this.project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.project;
|
|
841
|
+
this.project = ((_a = response.data) === null || _a === void 0 ? void 0 : _a.project) || Object.assign({}, this.defaultProject);
|
|
607
842
|
const items = ((_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.employees) === null || _c === void 0 ? void 0 : _c.items) || [];
|
|
608
843
|
this.overallConstructorList = this._filterUserByPermission(items, 'OVERALL_CONSTRUCTOR');
|
|
609
844
|
this.taskConstructorList = this._filterUserByPermission(items, 'TASK_CONSTRUCTOR');
|
|
610
845
|
this.overallSupervisoryList = this._filterUserByPermission(items, 'OVERALL_SUPERVISORY');
|
|
611
846
|
this.taskSupervisoryList = this._filterUserByPermission(items, 'TASK_SUPERVISORY');
|
|
847
|
+
this.updateContext();
|
|
612
848
|
}
|
|
613
849
|
_filterUserByPermission(userList, permission) {
|
|
614
850
|
return userList
|
|
@@ -638,6 +874,47 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
638
874
|
notify({ message: '저장에 성공하였습니다.' });
|
|
639
875
|
}
|
|
640
876
|
}
|
|
877
|
+
async _promoteTenant() {
|
|
878
|
+
if (!this.project.id)
|
|
879
|
+
return;
|
|
880
|
+
if (!confirm('이 프로젝트를 테넌트로 승격하시겠습니까?\n승격 시 관리번호(YYYY-NNNNN)가 자동 발번되며 변경할 수 없습니다.')) {
|
|
881
|
+
return;
|
|
882
|
+
}
|
|
883
|
+
const response = await client.mutate({
|
|
884
|
+
mutation: gql `
|
|
885
|
+
mutation PromoteProjectToTenant($projectId: String!) {
|
|
886
|
+
promoteProjectToTenant(projectId: $projectId) {
|
|
887
|
+
id
|
|
888
|
+
code
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
`,
|
|
892
|
+
variables: { projectId: this.project.id }
|
|
893
|
+
});
|
|
894
|
+
if (!response.errors) {
|
|
895
|
+
notify({ message: `테넌트로 승격되었습니다. 관리번호: ${response.data.promoteProjectToTenant.code}` });
|
|
896
|
+
await this.initProject(this.projectId);
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
async _demoteTenant() {
|
|
900
|
+
if (!this.project.id)
|
|
901
|
+
return;
|
|
902
|
+
if (!confirm('이 프로젝트의 테넌트를 강등하시겠습니까?\n관리번호는 보존되며 재승격 시 같은 번호가 재사용됩니다.')) {
|
|
903
|
+
return;
|
|
904
|
+
}
|
|
905
|
+
const response = await client.mutate({
|
|
906
|
+
mutation: gql `
|
|
907
|
+
mutation DemoteProjectTenant($projectId: String!) {
|
|
908
|
+
demoteProjectTenant(projectId: $projectId)
|
|
909
|
+
}
|
|
910
|
+
`,
|
|
911
|
+
variables: { projectId: this.project.id }
|
|
912
|
+
});
|
|
913
|
+
if (!response.errors) {
|
|
914
|
+
notify({ message: '테넌트가 강등되었습니다.' });
|
|
915
|
+
await this.initProject(this.projectId);
|
|
916
|
+
}
|
|
917
|
+
}
|
|
641
918
|
// 동 적용 버튼을 누르면 입력한 수 만큼 해당 단지에 동 데이터 생성
|
|
642
919
|
_setBuilding() {
|
|
643
920
|
var _a, _b, _c, _d, _e;
|
|
@@ -670,6 +947,10 @@ let ProjectUpdate = class ProjectUpdate extends ScopedElementsMixin(PageView) {
|
|
|
670
947
|
}
|
|
671
948
|
if (target.hasAttribute('project')) {
|
|
672
949
|
this.project[target.name] = inputVal;
|
|
950
|
+
// documentNaming 필드가 변경되면 실시간으로 미리보기 업데이트
|
|
951
|
+
if (target.name === 'documentNaming') {
|
|
952
|
+
this.requestUpdate();
|
|
953
|
+
}
|
|
673
954
|
}
|
|
674
955
|
else if (target.hasAttribute('building-complex')) {
|
|
675
956
|
this.project.buildingComplex[target.name] = inputVal;
|
|
@@ -737,6 +1018,13 @@ ProjectUpdate.styles = [
|
|
|
737
1018
|
select2-component {
|
|
738
1019
|
width: 100%;
|
|
739
1020
|
}
|
|
1021
|
+
md-filled-select {
|
|
1022
|
+
width: 100%;
|
|
1023
|
+
--md-filled-select-text-field-container-color: transparent;
|
|
1024
|
+
--md-filled-select-text-field-active-indicator-color: #999;
|
|
1025
|
+
--md-filled-select-text-field-input-text-size: 14px;
|
|
1026
|
+
--md-filled-select-text-field-input-text-line-height: 6px;
|
|
1027
|
+
}
|
|
740
1028
|
input[type='date'] {
|
|
741
1029
|
border: 1px solid rgba(51, 51, 51, 0.2);
|
|
742
1030
|
padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);
|
|
@@ -808,6 +1096,18 @@ ProjectUpdate.styles = [
|
|
|
808
1096
|
flex: 0.55;
|
|
809
1097
|
}
|
|
810
1098
|
|
|
1099
|
+
div[document-preview] {
|
|
1100
|
+
width: 100%;
|
|
1101
|
+
font-size: 12px;
|
|
1102
|
+
color: #2e79be;
|
|
1103
|
+
font-weight: 500;
|
|
1104
|
+
background-color: #f8f9fa;
|
|
1105
|
+
padding: 8px 12px;
|
|
1106
|
+
border-radius: 4px;
|
|
1107
|
+
border-left: 3px solid #2e79be;
|
|
1108
|
+
margin-top: 4px;
|
|
1109
|
+
}
|
|
1110
|
+
|
|
811
1111
|
div[detail-info] {
|
|
812
1112
|
flex: 0.45;
|
|
813
1113
|
padding: 0px;
|