@dssp/supervision 1.0.0-alpha.27 → 1.0.0-alpha.29
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/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 +1 -1
- package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +2 -1
- package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +36 -11
- package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
- package/dist-client/pages/building-inspection/building-inspection-list.d.ts +6 -2
- package/dist-client/pages/building-inspection/building-inspection-list.js +113 -13
- 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 +9 -4
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +122 -45
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -1
- 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 +1 -1
- package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +1 -1
- package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +1 -1
- package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +2 -1
- package/dist-client/pages/building-inspection/component/inspection-event-provider.js +39 -17
- package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
- package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +2 -2
- package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +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-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.d.ts +3 -0
- package/dist-server/service/building-inspection/building-inspection.js +10 -0
- package/dist-server/service/building-inspection/building-inspection.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 +3 -5
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +29 -71
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +2 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +52 -2
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +10 -3
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +35 -8
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +2 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +6 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -1
- package/dist-server/service/index.d.ts +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -48,7 +48,7 @@ export declare class ActionPlanListPage extends ActionPlanListPage_base {
|
|
|
48
48
|
handler: (records: any) => Promise<void>;
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
|
-
render(): import("lit").TemplateResult<1>;
|
|
51
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
52
52
|
pageInitialized(lifecycle: any): Promise<void>;
|
|
53
53
|
pageUpdated(changes: any, lifecycle: any): Promise<void>;
|
|
54
54
|
fetchHandler({ page, limit, sortings, filters }: FetchOption): Promise<{
|
|
@@ -15,7 +15,7 @@ export declare class BuildingInspectionCamera extends PageView {
|
|
|
15
15
|
get context(): {
|
|
16
16
|
title: string;
|
|
17
17
|
};
|
|
18
|
-
render(): import("lit").TemplateResult<1>;
|
|
18
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
19
19
|
protected updated(changes: PropertyValues): Promise<void>;
|
|
20
20
|
pageUpdated(changes: any, lifecycle: PageLifecycle): Promise<void>;
|
|
21
21
|
initBuildingInspection(buildingInspectionId?: string): Promise<void>;
|
|
@@ -13,7 +13,7 @@ export declare class BuildingInspectionDetailChecklist extends PageView {
|
|
|
13
13
|
get context(): {
|
|
14
14
|
title: string;
|
|
15
15
|
};
|
|
16
|
-
render(): import("lit").TemplateResult<1>;
|
|
16
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
17
17
|
pageUpdated(changes: any, lifecycle: PageLifecycle): Promise<void>;
|
|
18
18
|
initBuildingInspection(buildingInspectionId?: string): Promise<void>;
|
|
19
19
|
private _getProjectByBuildingComplexId;
|
|
@@ -25,11 +25,12 @@ export declare class BuildingInspectionDetailDrawing extends BuildingInspectionD
|
|
|
25
25
|
title: string;
|
|
26
26
|
};
|
|
27
27
|
connectedCallback(): void;
|
|
28
|
-
render(): import("lit").TemplateResult<1>;
|
|
28
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
29
29
|
protected updated(changes: PropertyValues): Promise<void>;
|
|
30
30
|
pageUpdated(changes: any, lifecycle: PageLifecycle): Promise<void>;
|
|
31
31
|
initBuildingInspection(buildingInspectionId?: string): Promise<void>;
|
|
32
32
|
private _getProjectByBuildingComplexId;
|
|
33
33
|
private onClickMarkerSave;
|
|
34
|
+
private parseBoxCoordinates;
|
|
34
35
|
}
|
|
35
36
|
export {};
|
|
@@ -56,19 +56,17 @@ let BuildingInspectionDetailDrawing = class BuildingInspectionDetailDrawing exte
|
|
|
56
56
|
body
|
|
57
57
|
@link-clicked=${async (e) => {
|
|
58
58
|
const { link } = e.detail;
|
|
59
|
-
const { id, type, symbol, box, dwgId } = JSON.parse(link);
|
|
60
|
-
|
|
59
|
+
const { id, type, symbol, box, dwgId } = JSON.parse(link) || {};
|
|
60
|
+
// 좌표 파싱 및 유효성 검증
|
|
61
|
+
const coordinates = this.parseBoxCoordinates(box);
|
|
62
|
+
// 유효하지 않은 좌표면 링크 처리 중단
|
|
63
|
+
if (!coordinates) {
|
|
64
|
+
console.warn('Invalid link coordinates, skipping:', box);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
61
67
|
this.linkUrl = `DWGID:${dwgId}`;
|
|
62
68
|
this.linkShapes = [
|
|
63
|
-
{
|
|
64
|
-
id: id,
|
|
65
|
-
type: 'link',
|
|
66
|
-
x,
|
|
67
|
-
y,
|
|
68
|
-
width,
|
|
69
|
-
height,
|
|
70
|
-
link: '{}'
|
|
71
|
-
}
|
|
69
|
+
Object.assign(Object.assign({ id: id || 'unknown', type: 'link' }, coordinates), { link: '{}' })
|
|
72
70
|
];
|
|
73
71
|
if (this.dialog) {
|
|
74
72
|
this.dialog.showModal();
|
|
@@ -221,6 +219,33 @@ let BuildingInspectionDetailDrawing = class BuildingInspectionDetailDrawing exte
|
|
|
221
219
|
return;
|
|
222
220
|
notify({ message: '저장되었습니다.' });
|
|
223
221
|
}
|
|
222
|
+
parseBoxCoordinates(box) {
|
|
223
|
+
if (!box || typeof box !== 'string') {
|
|
224
|
+
console.warn('Invalid box coordinate for link:', box);
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
const coords = box.split(',').map(str => {
|
|
229
|
+
const num = Number(str.trim());
|
|
230
|
+
return Number.isFinite(num) ? num : NaN;
|
|
231
|
+
});
|
|
232
|
+
if (coords.length !== 4 || coords.some(coord => isNaN(coord))) {
|
|
233
|
+
console.warn('Box coordinate should have 4 valid numbers:', box);
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
const [x, y, width, height] = coords;
|
|
237
|
+
// width, height가 0 이하면 유효하지 않음
|
|
238
|
+
if (width <= 0 || height <= 0) {
|
|
239
|
+
console.warn('Invalid width or height for link:', box);
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
return { x, y, width, height };
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
console.warn('Error parsing box coordinates:', box, error);
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
224
249
|
};
|
|
225
250
|
BuildingInspectionDetailDrawing.styles = [
|
|
226
251
|
ScrollbarStyles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"building-inspection-detail-drawing.js","sourceRoot":"","sources":["../../../client/pages/building-inspection/building-inspection-detail-drawing.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/image-marker/ox-image-marker.js'\nimport '@operato/image-marker/ox-image-marker-view.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, PropertyValues } from 'lit'\nimport { customElement, query, state } from 'lit/decorators.js'\nimport { consume } from '@lit/context'\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements'\n\nimport { PageView } from '@operato/shell'\nimport { CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageLifecycle } from '@operato/shell/dist/src/app/pages/page-view'\nimport { client } from '@operato/graphql'\nimport { notify } from '@operato/layout'\nimport { Shape } from '@operato/image-marker'\n\nimport { DrawingImageProvider } from '@dssp/drawing/dist-client/drawing-management/drawing-image-provider.js'\n\nimport './component/building-inspection-detail-header'\nimport { BuildingInspectionStatus } from './building-inspection-list'\n\n@customElement('building-inspection-detail-drawing')\nexport class BuildingInspectionDetailDrawing extends ScopedElementsMixin(PageView) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: grid;\n grid-template-rows: 55px auto;\n color: #4e5055;\n\n width: 100%;\n background-color: var(--md-sys-color-background, #f6f6f6);\n overflow-y: auto;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n div[body] {\n display: flex;\n justify-content: center;\n\n ox-image-marker-view {\n width: 100%;\n }\n }\n\n dialog ox-image-marker-view {\n width: 80vw;\n height: 80vh;\n }\n `\n ]\n\n @state() project: any = {}\n @state() buildingInspection: any = {}\n @state() buildingInspectionId: string = ''\n @state() imageUrl?: string\n @state() shapes: Shape[] = []\n @state() linkUrl?: string\n @state() linkShapes: Shape[] = []\n\n @state() drawingImageProvider: DrawingImageProvider = new DrawingImageProvider()\n // @consume({ context: OxUserPreferencesContext, subscribe: true })\n\n @query('#image-marker') imageMarker!: any\n @query('#link-viewer') linkViewer!: any\n @query('dialog') dialog!: HTMLDialogElement\n\n get context() {\n return {\n title: '검측 관리 상세 - 검측 도면'\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n\n requestAnimationFrame(() => {\n this.dialog.addEventListener('click', event => {\n const rect = this.dialog.getBoundingClientRect()\n const isInDialog =\n rect.top <= event.clientY && event.clientY <= rect.bottom && rect.left <= event.clientX && event.clientX <= rect.right\n\n // 다이아로그 내부를 클릭한 것이 아니면 다이아로그 닫기\n if (!isInDialog) {\n this.dialog.close()\n }\n })\n })\n }\n\n render() {\n return html`\n <building-inspection-detail-header\n .buildingInspectionId=${this.buildingInspection?.id}\n .buildingLevelId=${this.buildingInspection?.buildingLevel?.id}\n .projectName=${this.project.name}\n .buildingName=${this.buildingInspection?.buildingLevel?.building?.name}\n .buildingLevelFloor=${this.buildingInspection?.buildingLevel?.floor}\n ></building-inspection-detail-header>\n\n <div\n body\n @link-clicked=${async (e: CustomEvent) => {\n const { link } = e.detail\n const { id, type, symbol, box, dwgId } = JSON.parse(link)\n const [x, y, width, height] = box?.split(',').map(Number) || []\n\n this.linkUrl = `DWGID:${dwgId}`\n this.linkShapes = [\n {\n id: id!,\n type: 'link',\n x,\n y,\n width,\n height,\n link: '{}'\n }\n ]\n\n if (this.dialog) {\n this.dialog.showModal()\n\n requestAnimationFrame(() => {\n this.linkViewer.reset()\n })\n }\n }}\n >\n ${this.buildingInspection?.status == BuildingInspectionStatus.PASS\n ? html`<ox-image-marker-view\n id=\"image-marker\"\n .imageUrl=${this.imageUrl}\n .shapes=${this.shapes}\n .imageProvider=${this.drawingImageProvider}\n ></ox-image-marker-view>`\n : html` <ox-image-marker\n id=\"image-marker\"\n .imageUrl=${this.imageUrl}\n .shapes=${this.shapes}\n .imageProvider=${this.drawingImageProvider}\n @shapes-changed=${this.onClickMarkerSave}\n .currentMode=${'view'}\n ></ox-image-marker>`}\n </div>\n\n <dialog>\n <ox-image-marker-view\n id=\"link-viewer\"\n .imageUrl=${this.linkUrl}\n .shapes=${this.linkShapes}\n .imageProvider=${this.drawingImageProvider}\n ></ox-image-marker-view>\n </dialog>\n `\n }\n\n protected async updated(changes: PropertyValues): Promise<void> {\n if (changes.has('buildingInspection') && this.buildingInspection?.checklist) {\n // 1-1. 위치 정보 - 체크리스트에 들어가는 위치정보 텍스트\n const location_1 = this.buildingInspection.checklist?.location\n\n // 1-2. 위치 정보 - 실제 위치정보 텍스트 (동 + 층) - ID 필드를 사용하면 DB ID 필드입니다.\n const location_building = this.buildingInspection.buildingLevel.building.name\n const location_floor = this.buildingInspection.buildingLevel.floor\n\n // 2. 평면도 pdf 파일\n // mainDrawing {\n // id\n // name\n // fullpath\n // }\n const mainDrawing = this.buildingInspection.buildingLevel.mainDrawing\n\n // 3. 선택 도면\n const inspectionDrawingType = this.buildingInspection.checklist.inspectionDrawingType\n\n const shapes = JSON.parse(this.buildingInspection?.drawingMarker || null) || []\n const markers = await this.drawingImageProvider.getMarkers(inspectionDrawingType)\n\n this.imageUrl = String(inspectionDrawingType).normalize('NFC')\n this.shapes = [...shapes, ...markers]\n }\n }\n\n async pageUpdated(changes: any, lifecycle: PageLifecycle) {\n if (this.active) {\n this.buildingInspectionId = lifecycle.resourceId || ''\n await this.initBuildingInspection(this.buildingInspectionId)\n\n this.imageMarker?.reset()\n } else {\n this.dialog?.close()\n }\n }\n\n async initBuildingInspection(buildingInspectionId: string = '') {\n const response = await client.query({\n query: gql`\n query BuildingInspection($buildingInspectionId: String!) {\n buildingInspection(id: $buildingInspectionId) {\n id\n status\n requestDate\n drawingMarker\n checklist {\n location\n inspectionDrawingType\n }\n buildingLevel {\n id\n floor\n mainDrawing {\n id\n name\n fullpath\n }\n mainDrawingImage\n building {\n id\n name\n buildingComplex {\n id\n }\n }\n }\n }\n }\n `,\n variables: {\n buildingInspectionId\n }\n })\n\n if (response.errors) return\n\n this.buildingInspection = response.data.buildingInspection\n\n await this._getProjectByBuildingComplexId(this.buildingInspection?.buildingLevel?.building?.buildingComplex?.id)\n }\n\n private async _getProjectByBuildingComplexId(buildingComplexId) {\n const response = await client.query({\n query: gql`\n query ProjectByBuildingComplexId($buildingComplexId: String!) {\n project: projectByBuildingComplexId(buildingComplexId: $buildingComplexId) {\n id\n name\n }\n }\n `,\n variables: {\n buildingComplexId\n }\n })\n\n if (response.errors) return\n\n this.project = response.data.project\n }\n\n private async onClickMarkerSave(e) {\n const response = await client.query({\n query: gql`\n mutation UpdateBuildingInspection($patch: UpdateBuildingInspection!) {\n updateBuildingInspection(patch: $patch) {\n id\n drawingMarker\n }\n }\n `,\n variables: {\n patch: {\n id: this.buildingInspectionId,\n drawingMarker: JSON.stringify(e.detail)\n }\n }\n })\n\n if (response.errors) return\n\n notify({ message: '저장되었습니다.' })\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"building-inspection-detail-drawing.js","sourceRoot":"","sources":["../../../client/pages/building-inspection/building-inspection-detail-drawing.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/image-marker/ox-image-marker.js'\nimport '@operato/image-marker/ox-image-marker-view.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, PropertyValues } from 'lit'\nimport { customElement, query, state } from 'lit/decorators.js'\nimport { consume } from '@lit/context'\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements'\n\nimport { PageView } from '@operato/shell'\nimport { CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageLifecycle } from '@operato/shell/dist/src/app/pages/page-view'\nimport { client } from '@operato/graphql'\nimport { notify } from '@operato/layout'\nimport { Shape } from '@operato/image-marker'\n\nimport { DrawingImageProvider } from '@dssp/drawing/dist-client/drawing-management/drawing-image-provider.js'\n\nimport './component/building-inspection-detail-header'\nimport { BuildingInspectionStatus } from './building-inspection-list'\n\n@customElement('building-inspection-detail-drawing')\nexport class BuildingInspectionDetailDrawing extends ScopedElementsMixin(PageView) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: grid;\n grid-template-rows: 55px auto;\n color: #4e5055;\n\n width: 100%;\n background-color: var(--md-sys-color-background, #f6f6f6);\n overflow-y: auto;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n div[body] {\n display: flex;\n justify-content: center;\n\n ox-image-marker-view {\n width: 100%;\n }\n }\n\n dialog ox-image-marker-view {\n width: 80vw;\n height: 80vh;\n }\n `\n ]\n\n @state() project: any = {}\n @state() buildingInspection: any = {}\n @state() buildingInspectionId: string = ''\n @state() imageUrl?: string\n @state() shapes: Shape[] = []\n @state() linkUrl?: string\n @state() linkShapes: Shape[] = []\n\n @state() drawingImageProvider: DrawingImageProvider = new DrawingImageProvider()\n // @consume({ context: OxUserPreferencesContext, subscribe: true })\n\n @query('#image-marker') imageMarker!: any\n @query('#link-viewer') linkViewer!: any\n @query('dialog') dialog!: HTMLDialogElement\n\n get context() {\n return {\n title: '검측 관리 상세 - 검측 도면'\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n\n requestAnimationFrame(() => {\n this.dialog.addEventListener('click', event => {\n const rect = this.dialog.getBoundingClientRect()\n const isInDialog =\n rect.top <= event.clientY && event.clientY <= rect.bottom && rect.left <= event.clientX && event.clientX <= rect.right\n\n // 다이아로그 내부를 클릭한 것이 아니면 다이아로그 닫기\n if (!isInDialog) {\n this.dialog.close()\n }\n })\n })\n }\n\n render() {\n return html`\n <building-inspection-detail-header\n .buildingInspectionId=${this.buildingInspection?.id}\n .buildingLevelId=${this.buildingInspection?.buildingLevel?.id}\n .projectName=${this.project.name}\n .buildingName=${this.buildingInspection?.buildingLevel?.building?.name}\n .buildingLevelFloor=${this.buildingInspection?.buildingLevel?.floor}\n ></building-inspection-detail-header>\n\n <div\n body\n @link-clicked=${async (e: CustomEvent) => {\n const { link } = e.detail\n const { id, type, symbol, box, dwgId } = JSON.parse(link) || {}\n \n // 좌표 파싱 및 유효성 검증\n const coordinates = this.parseBoxCoordinates(box)\n \n // 유효하지 않은 좌표면 링크 처리 중단\n if (!coordinates) {\n console.warn('Invalid link coordinates, skipping:', box)\n return\n }\n\n this.linkUrl = `DWGID:${dwgId}`\n this.linkShapes = [\n {\n id: id || 'unknown',\n type: 'link' as const,\n ...coordinates,\n link: '{}'\n }\n ]\n\n if (this.dialog) {\n this.dialog.showModal()\n\n requestAnimationFrame(() => {\n this.linkViewer.reset()\n })\n }\n }}\n >\n ${this.buildingInspection?.status == BuildingInspectionStatus.PASS\n ? html`<ox-image-marker-view\n id=\"image-marker\"\n .imageUrl=${this.imageUrl}\n .shapes=${this.shapes}\n .imageProvider=${this.drawingImageProvider}\n ></ox-image-marker-view>`\n : html` <ox-image-marker\n id=\"image-marker\"\n .imageUrl=${this.imageUrl}\n .shapes=${this.shapes}\n .imageProvider=${this.drawingImageProvider}\n @shapes-changed=${this.onClickMarkerSave}\n .currentMode=${'view'}\n ></ox-image-marker>`}\n </div>\n\n <dialog>\n <ox-image-marker-view\n id=\"link-viewer\"\n .imageUrl=${this.linkUrl}\n .shapes=${this.linkShapes}\n .imageProvider=${this.drawingImageProvider}\n ></ox-image-marker-view>\n </dialog>\n `\n }\n\n protected async updated(changes: PropertyValues): Promise<void> {\n if (changes.has('buildingInspection') && this.buildingInspection?.checklist) {\n // 1-1. 위치 정보 - 체크리스트에 들어가는 위치정보 텍스트\n const location_1 = this.buildingInspection.checklist?.location\n\n // 1-2. 위치 정보 - 실제 위치정보 텍스트 (동 + 층) - ID 필드를 사용하면 DB ID 필드입니다.\n const location_building = this.buildingInspection.buildingLevel.building.name\n const location_floor = this.buildingInspection.buildingLevel.floor\n\n // 2. 평면도 pdf 파일\n // mainDrawing {\n // id\n // name\n // fullpath\n // }\n const mainDrawing = this.buildingInspection.buildingLevel.mainDrawing\n\n // 3. 선택 도면\n const inspectionDrawingType = this.buildingInspection.checklist.inspectionDrawingType\n\n const shapes = JSON.parse(this.buildingInspection?.drawingMarker || null) || []\n const markers = await this.drawingImageProvider.getMarkers(inspectionDrawingType)\n\n this.imageUrl = String(inspectionDrawingType).normalize('NFC')\n this.shapes = [...shapes, ...markers]\n }\n }\n\n async pageUpdated(changes: any, lifecycle: PageLifecycle) {\n if (this.active) {\n this.buildingInspectionId = lifecycle.resourceId || ''\n await this.initBuildingInspection(this.buildingInspectionId)\n\n this.imageMarker?.reset()\n } else {\n this.dialog?.close()\n }\n }\n\n async initBuildingInspection(buildingInspectionId: string = '') {\n const response = await client.query({\n query: gql`\n query BuildingInspection($buildingInspectionId: String!) {\n buildingInspection(id: $buildingInspectionId) {\n id\n status\n requestDate\n drawingMarker\n checklist {\n location\n inspectionDrawingType\n }\n buildingLevel {\n id\n floor\n mainDrawing {\n id\n name\n fullpath\n }\n mainDrawingImage\n building {\n id\n name\n buildingComplex {\n id\n }\n }\n }\n }\n }\n `,\n variables: {\n buildingInspectionId\n }\n })\n\n if (response.errors) return\n\n this.buildingInspection = response.data.buildingInspection\n\n await this._getProjectByBuildingComplexId(this.buildingInspection?.buildingLevel?.building?.buildingComplex?.id)\n }\n\n private async _getProjectByBuildingComplexId(buildingComplexId) {\n const response = await client.query({\n query: gql`\n query ProjectByBuildingComplexId($buildingComplexId: String!) {\n project: projectByBuildingComplexId(buildingComplexId: $buildingComplexId) {\n id\n name\n }\n }\n `,\n variables: {\n buildingComplexId\n }\n })\n\n if (response.errors) return\n\n this.project = response.data.project\n }\n\n private async onClickMarkerSave(e) {\n const response = await client.query({\n query: gql`\n mutation UpdateBuildingInspection($patch: UpdateBuildingInspection!) {\n updateBuildingInspection(patch: $patch) {\n id\n drawingMarker\n }\n }\n `,\n variables: {\n patch: {\n id: this.buildingInspectionId,\n drawingMarker: JSON.stringify(e.detail)\n }\n }\n })\n\n if (response.errors) return\n\n notify({ message: '저장되었습니다.' })\n }\n\n private parseBoxCoordinates(box: string | undefined): {\n x: number; y: number; width: number; height: number\n } | null {\n if (!box || typeof box !== 'string') {\n console.warn('Invalid box coordinate for link:', box)\n return null\n }\n\n try {\n const coords = box.split(',').map(str => {\n const num = Number(str.trim())\n return Number.isFinite(num) ? num : NaN\n })\n \n if (coords.length !== 4 || coords.some(coord => isNaN(coord))) {\n console.warn('Box coordinate should have 4 valid numbers:', box)\n return null\n }\n\n const [x, y, width, height] = coords\n \n // width, height가 0 이하면 유효하지 않음\n if (width <= 0 || height <= 0) {\n console.warn('Invalid width or height for link:', box)\n return null\n }\n \n return { x, y, width, height }\n \n } catch (error) {\n console.warn('Error parsing box coordinates:', box, error)\n return null\n }\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@material/web/icon/icon.js';
|
|
2
2
|
import '@operato/data-grist';
|
|
3
|
+
import '@operato/image-marker/ox-image-marker-view.js';
|
|
3
4
|
import { PageView } from '@operato/shell';
|
|
4
|
-
import { TemplateResult } from 'lit';
|
|
5
5
|
import { PageLifecycle } from '@operato/shell/dist/src/app/pages/page-view';
|
|
6
6
|
import { FetchOption } from '@operato/data-grist';
|
|
7
7
|
import './inspection-create-popup';
|
|
@@ -50,6 +50,7 @@ export declare class BuildingInspectionList extends BuildingInspectionList_base
|
|
|
50
50
|
calendarData?: EventProvider;
|
|
51
51
|
selectedYearMonth: string;
|
|
52
52
|
selectedDate?: string;
|
|
53
|
+
dailyWorklog: any;
|
|
53
54
|
private grist;
|
|
54
55
|
private eventView;
|
|
55
56
|
get context(): {
|
|
@@ -66,7 +67,7 @@ export declare class BuildingInspectionList extends BuildingInspectionList_base
|
|
|
66
67
|
action: () => void;
|
|
67
68
|
}[];
|
|
68
69
|
};
|
|
69
|
-
render(): TemplateResult<1>;
|
|
70
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
70
71
|
pageUpdated(changes: any, lifecycle: PageLifecycle): Promise<void>;
|
|
71
72
|
initProject(buildingLevelId?: string): Promise<void>;
|
|
72
73
|
pageInitialized(lifecycle: any): Promise<void>;
|
|
@@ -82,5 +83,8 @@ export declare class BuildingInspectionList extends BuildingInspectionList_base
|
|
|
82
83
|
_openInspectionRequestDocument(buildingInspectionId: string): Promise<void>;
|
|
83
84
|
private _showNameListPreview;
|
|
84
85
|
private _openDailyWorklogPopup;
|
|
86
|
+
private _refreshCalendar;
|
|
87
|
+
private _fetchDailyWorklog;
|
|
88
|
+
private _openDrawingPopup;
|
|
85
89
|
}
|
|
86
90
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import '@material/web/icon/icon.js';
|
|
3
3
|
import '@operato/data-grist';
|
|
4
|
+
import '@operato/image-marker/ox-image-marker-view.js';
|
|
4
5
|
import { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles';
|
|
5
6
|
import { PageView, navigate } from '@operato/shell';
|
|
6
7
|
import { css, html } from 'lit';
|
|
@@ -22,6 +23,8 @@ import { InspectionEventProvider } from './component/inspection-event-provider';
|
|
|
22
23
|
import { getBuildingInspectionForChecklist } from '../../graphql/building-inspection';
|
|
23
24
|
import { InspectionMode } from './component/inspection-document/inspection-request-document';
|
|
24
25
|
import moment from 'moment-timezone';
|
|
26
|
+
import { DailyWorklogMode } from './component/daily-worklog-popup';
|
|
27
|
+
import { DrawingImageProvider } from '@dssp/drawing/dist-client/drawing-management/drawing-image-provider.js';
|
|
25
28
|
export var ChecklistTypeMainType;
|
|
26
29
|
(function (ChecklistTypeMainType) {
|
|
27
30
|
ChecklistTypeMainType["BASIC"] = "10";
|
|
@@ -65,6 +68,11 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
65
68
|
this.buildingInspectionSummary = {};
|
|
66
69
|
this.selectedYearMonth = moment().tz('Asia/Seoul').format('YYYY-MM');
|
|
67
70
|
this.selectedDate = moment().tz('Asia/Seoul').format('YYYY-MM-DD');
|
|
71
|
+
this.dailyWorklog = {};
|
|
72
|
+
// 캘린더 객체 재 생성하여 재 랜더링
|
|
73
|
+
this._refreshCalendar = (e) => {
|
|
74
|
+
this.calendarData = new InspectionEventProvider(this.buildingLevelId, this.project.id);
|
|
75
|
+
};
|
|
68
76
|
}
|
|
69
77
|
get context() {
|
|
70
78
|
return {
|
|
@@ -129,10 +137,13 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
129
137
|
.eventProvider=${this.calendarData}
|
|
130
138
|
@select-date=${(e) => {
|
|
131
139
|
this.selectedDate = moment(e.detail[0]).format('YYYY-MM-DD');
|
|
140
|
+
this._fetchDailyWorklog(this.selectedDate);
|
|
132
141
|
}}
|
|
133
142
|
@change-month=${(e) => {
|
|
134
|
-
|
|
135
|
-
|
|
143
|
+
var _a, _b, _c;
|
|
144
|
+
const year = e.detail.year;
|
|
145
|
+
const month = (_c = (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.month) === null || _b === void 0 ? void 0 : _b.toString()) === null || _c === void 0 ? void 0 : _c.padStart(2, '0');
|
|
146
|
+
this.selectedYearMonth = `${year}-${month}`;
|
|
136
147
|
this.grist.fetch();
|
|
137
148
|
}}
|
|
138
149
|
>
|
|
@@ -142,9 +153,13 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
142
153
|
|
|
143
154
|
<div bottom>
|
|
144
155
|
<div daily-worklog-actions>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
${this.dailyWorklog.id
|
|
157
|
+
? html `<md-filled-button green @click=${this._openDailyWorklogPopup}>
|
|
158
|
+
<md-icon slot="icon">edit</md-icon>일일 업무일지 수정
|
|
159
|
+
</md-filled-button>`
|
|
160
|
+
: html `<md-filled-button @click=${this._openDailyWorklogPopup}>
|
|
161
|
+
<md-icon slot="icon">note_add</md-icon>일일 업무일지 작성
|
|
162
|
+
</md-filled-button>`}
|
|
148
163
|
</div>
|
|
149
164
|
<ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>
|
|
150
165
|
</div>
|
|
@@ -200,7 +215,7 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
200
215
|
return;
|
|
201
216
|
this.project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.projectByBuildingLevelId;
|
|
202
217
|
this.buildingInspectionSummary = (_b = response.data) === null || _b === void 0 ? void 0 : _b.buildingInspectionSummaryOfBuildingLevel;
|
|
203
|
-
this.calendarData = new InspectionEventProvider(buildingLevelId);
|
|
218
|
+
this.calendarData = new InspectionEventProvider(buildingLevelId, this.project.id);
|
|
204
219
|
// 캘린더 최소 높이 속성 수정
|
|
205
220
|
this.eventView.style.setProperty('--calendar-monthly-date-min-height', '50px');
|
|
206
221
|
}
|
|
@@ -230,13 +245,23 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
230
245
|
type: 'string',
|
|
231
246
|
name: 'location',
|
|
232
247
|
header: '위치',
|
|
233
|
-
width: 150
|
|
248
|
+
width: 150,
|
|
249
|
+
handlers: {
|
|
250
|
+
click: (columns, data, column, record, rowIndex) => {
|
|
251
|
+
navigate(`building-inspection-detail-drawing/${record.id}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
234
254
|
},
|
|
235
255
|
{
|
|
236
256
|
type: 'string',
|
|
237
257
|
name: 'constructionType',
|
|
238
258
|
header: '공종',
|
|
239
|
-
width: 120
|
|
259
|
+
width: 120,
|
|
260
|
+
handlers: {
|
|
261
|
+
click: (columns, data, column, record, rowIndex) => {
|
|
262
|
+
navigate(`building-inspection-detail-drawing/${record.id}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
240
265
|
},
|
|
241
266
|
{
|
|
242
267
|
type: 'string',
|
|
@@ -245,13 +270,23 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
245
270
|
record: {
|
|
246
271
|
renderer: value => (value === null || value === void 0 ? void 0 : value.join(', ')) || ''
|
|
247
272
|
},
|
|
248
|
-
width: 200
|
|
273
|
+
width: 200,
|
|
274
|
+
handlers: {
|
|
275
|
+
click: (columns, data, column, record, rowIndex) => {
|
|
276
|
+
navigate(`building-inspection-detail-drawing/${record.id}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
249
279
|
},
|
|
250
280
|
{
|
|
251
281
|
type: 'string',
|
|
252
282
|
name: 'requestDate',
|
|
253
283
|
header: '검측 요청일',
|
|
254
|
-
width: 120
|
|
284
|
+
width: 120,
|
|
285
|
+
handlers: {
|
|
286
|
+
click: (columns, data, column, record, rowIndex) => {
|
|
287
|
+
navigate(`building-inspection-detail-drawing/${record.id}`);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
255
290
|
},
|
|
256
291
|
{
|
|
257
292
|
type: 'string',
|
|
@@ -260,7 +295,12 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
260
295
|
record: {
|
|
261
296
|
renderer: value => BUILDING_INSPECTION_STATUS_DISPLAY[value]
|
|
262
297
|
},
|
|
263
|
-
width: 120
|
|
298
|
+
width: 120,
|
|
299
|
+
handlers: {
|
|
300
|
+
click: (columns, data, column, record, rowIndex) => {
|
|
301
|
+
navigate(`building-inspection-detail-drawing/${record.id}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
264
304
|
},
|
|
265
305
|
{
|
|
266
306
|
type: 'gutter',
|
|
@@ -270,7 +310,7 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
270
310
|
width: 50,
|
|
271
311
|
handlers: {
|
|
272
312
|
click: (columns, data, column, record, rowIndex) => {
|
|
273
|
-
|
|
313
|
+
this._openDrawingPopup(record);
|
|
274
314
|
}
|
|
275
315
|
}
|
|
276
316
|
},
|
|
@@ -344,6 +384,8 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
344
384
|
id
|
|
345
385
|
status
|
|
346
386
|
requestDate
|
|
387
|
+
drawingMarker
|
|
388
|
+
|
|
347
389
|
checklist {
|
|
348
390
|
checklistId: id
|
|
349
391
|
name
|
|
@@ -351,6 +393,8 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
351
393
|
constructionDetailType
|
|
352
394
|
location
|
|
353
395
|
inspectionParts
|
|
396
|
+
inspectionDrawingType
|
|
397
|
+
|
|
354
398
|
nameListAttachment {
|
|
355
399
|
id
|
|
356
400
|
name
|
|
@@ -507,12 +551,60 @@ let BuildingInspectionList = class BuildingInspectionList extends ScopedElements
|
|
|
507
551
|
}
|
|
508
552
|
_openDailyWorklogPopup() {
|
|
509
553
|
const date = this.selectedDate;
|
|
510
|
-
openPopup(html `<daily-worklog-popup
|
|
554
|
+
openPopup(html `<daily-worklog-popup
|
|
555
|
+
.project=${this.project}
|
|
556
|
+
.date=${date}
|
|
557
|
+
.dailyWorklog=${this.dailyWorklog}
|
|
558
|
+
.mode=${this.dailyWorklog.id ? DailyWorklogMode.EDIT : DailyWorklogMode.CREATE}
|
|
559
|
+
@createdDailyWorklog=${this._refreshCalendar}
|
|
560
|
+
></daily-worklog-popup>`, {
|
|
511
561
|
backdrop: true,
|
|
512
562
|
size: 'large',
|
|
513
563
|
title: '일일 업무일지 작성'
|
|
514
564
|
});
|
|
515
565
|
}
|
|
566
|
+
async _fetchDailyWorklog(date) {
|
|
567
|
+
var _a;
|
|
568
|
+
const response = await client.query({
|
|
569
|
+
query: gql `
|
|
570
|
+
query ($projectId: String!, $date: String!) {
|
|
571
|
+
buildingInspectionDailyWorklogByProjectIdAndDate(projectId: $projectId, date: $date) {
|
|
572
|
+
id
|
|
573
|
+
date
|
|
574
|
+
documentNo
|
|
575
|
+
worklogs
|
|
576
|
+
memo
|
|
577
|
+
directiveMemo
|
|
578
|
+
|
|
579
|
+
buildingInspections {
|
|
580
|
+
id
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
`,
|
|
585
|
+
variables: { projectId: this.project.id, date }
|
|
586
|
+
});
|
|
587
|
+
this.dailyWorklog = ((_a = response.data) === null || _a === void 0 ? void 0 : _a.buildingInspectionDailyWorklogByProjectIdAndDate) || {};
|
|
588
|
+
}
|
|
589
|
+
async _openDrawingPopup(buildingInspection) {
|
|
590
|
+
const drawingImageProvider = new DrawingImageProvider();
|
|
591
|
+
const inspectionDrawingType = buildingInspection.checklist.inspectionDrawingType;
|
|
592
|
+
const drawingShapes = JSON.parse((buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.drawingMarker) || null) || [];
|
|
593
|
+
const markers = await drawingImageProvider.getMarkers(inspectionDrawingType);
|
|
594
|
+
const imageUrl = String(inspectionDrawingType).normalize('NFC');
|
|
595
|
+
const shapes = [...drawingShapes, ...markers];
|
|
596
|
+
openPopup(html `<ox-image-marker-view
|
|
597
|
+
style="pointer-events: none;"
|
|
598
|
+
id="image-marker"
|
|
599
|
+
.imageUrl=${imageUrl}
|
|
600
|
+
.shapes=${shapes}
|
|
601
|
+
.imageProvider=${drawingImageProvider}
|
|
602
|
+
></ox-image-marker-view>`, {
|
|
603
|
+
backdrop: true,
|
|
604
|
+
size: 'large',
|
|
605
|
+
title: '검측 도면'
|
|
606
|
+
});
|
|
607
|
+
}
|
|
516
608
|
};
|
|
517
609
|
BuildingInspectionList.styles = [
|
|
518
610
|
ScrollbarStyles,
|
|
@@ -538,6 +630,10 @@ BuildingInspectionList.styles = [
|
|
|
538
630
|
--md-filled-button-leading-space: 15px;
|
|
539
631
|
}
|
|
540
632
|
|
|
633
|
+
md-filled-button[green] {
|
|
634
|
+
--md-filled-button-container-color: #008000;
|
|
635
|
+
}
|
|
636
|
+
|
|
541
637
|
md-outlined-button {
|
|
542
638
|
--md-outlined-button-container-height: 30px;
|
|
543
639
|
--md-outlined-button-trailing-space: var(--spacing-medium, 8px);
|
|
@@ -757,6 +853,10 @@ __decorate([
|
|
|
757
853
|
state(),
|
|
758
854
|
__metadata("design:type", String)
|
|
759
855
|
], BuildingInspectionList.prototype, "selectedDate", void 0);
|
|
856
|
+
__decorate([
|
|
857
|
+
state(),
|
|
858
|
+
__metadata("design:type", Object)
|
|
859
|
+
], BuildingInspectionList.prototype, "dailyWorklog", void 0);
|
|
760
860
|
__decorate([
|
|
761
861
|
query('ox-grist'),
|
|
762
862
|
__metadata("design:type", DataGrist)
|