@dssp/project 1.0.0-alpha.0 → 1.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist-client/tsconfig.tsbuildinfo +1 -1
  2. package/dist-server/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +11 -11
  4. package/client/bootstrap.ts +0 -0
  5. package/client/index.ts +0 -0
  6. package/client/pages/lib/select2-component.ts +0 -175
  7. package/client/pages/lib/waether.ts +0 -159
  8. package/client/pages/project/component/project-update-header.ts +0 -88
  9. package/client/pages/project/popup/popup-plan-upload.ts +0 -138
  10. package/client/pages/project/popup/popup-project-create.ts +0 -147
  11. package/client/pages/project/popup/popup-schedule-upload.ts +0 -102
  12. package/client/pages/project/project-completed-list.ts +0 -281
  13. package/client/pages/project/project-detail.ts +0 -738
  14. package/client/pages/project/project-list.ts +0 -418
  15. package/client/pages/project/project-plan-management.ts +0 -476
  16. package/client/pages/project/project-schedule-list.ts +0 -294
  17. package/client/pages/project/project-schedule.ts +0 -393
  18. package/client/pages/project/project-setting-list.ts +0 -393
  19. package/client/pages/project/project-update.ts +0 -876
  20. package/client/pages/resource/construction-detail-type-popup.ts +0 -201
  21. package/client/pages/resource/construction-type-management.ts +0 -212
  22. package/client/pages/resource/inspection-drawing-type-management.ts +0 -245
  23. package/client/pages/resource/inspection-part-popup.ts +0 -201
  24. package/client/pages/resource/resource-importer.ts +0 -97
  25. package/client/pages/resource/resource-list-page.ts +0 -356
  26. package/client/pages/resource/worker-type-management.ts +0 -192
  27. package/client/pages/task/task-importer.ts +0 -94
  28. package/client/pages/task/task-list-page.ts +0 -340
  29. package/client/pages/task-resource/task-resource-importer.ts +0 -97
  30. package/client/pages/task-resource/task-resource-list-page.ts +0 -356
  31. package/client/route.ts +0 -55
  32. package/client/tsconfig.json +0 -11
  33. package/server/controllers/export-tasks.ts +0 -40
  34. package/server/controllers/import-task.ts +0 -134
  35. package/server/controllers/index.ts +0 -0
  36. package/server/controllers/parse-excel.ts +0 -86
  37. package/server/controllers/types.ts +0 -20
  38. package/server/index.ts +0 -4
  39. package/server/middlewares/index.ts +0 -3
  40. package/server/migrations/1723861466413-seed-roles.ts +0 -128
  41. package/server/migrations/1723861466414-seed-codes.ts +0 -157
  42. package/server/migrations/1723861476419-seed-resources.ts +0 -62
  43. package/server/migrations/1723861478420-seed-/bsample-project.ts +0 -87
  44. package/server/migrations/1723861478421-seed-/bsample-tasks.ts +0 -194
  45. package/server/migrations/index.ts +0 -9
  46. package/server/routes.ts +0 -108
  47. package/server/service/construction-detail-type/construction-detail-type-mutation.ts +0 -57
  48. package/server/service/construction-detail-type/construction-detail-type-query.ts +0 -31
  49. package/server/service/construction-detail-type/construction-detail-type-type.ts +0 -26
  50. package/server/service/construction-detail-type/construction-detail-type.ts +0 -52
  51. package/server/service/construction-detail-type/index.ts +0 -6
  52. package/server/service/construction-type/construction-type-mutation.ts +0 -66
  53. package/server/service/construction-type/construction-type-query.ts +0 -56
  54. package/server/service/construction-type/construction-type-type.ts +0 -26
  55. package/server/service/construction-type/construction-type.ts +0 -74
  56. package/server/service/construction-type/index.ts +0 -6
  57. package/server/service/index.ts +0 -56
  58. package/server/service/inspection-drawing-type/index.ts +0 -6
  59. package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +0 -69
  60. package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +0 -55
  61. package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +0 -23
  62. package/server/service/inspection-drawing-type/inspection-drawing-type.ts +0 -68
  63. package/server/service/inspection-part/index.ts +0 -6
  64. package/server/service/inspection-part/inspection-part-mutation.ts +0 -52
  65. package/server/service/inspection-part/inspection-part-query.ts +0 -41
  66. package/server/service/inspection-part/inspection-part-type.ts +0 -26
  67. package/server/service/inspection-part/inspection-part.ts +0 -51
  68. package/server/service/manager/index.ts +0 -6
  69. package/server/service/manager/manager-mutation.ts +0 -42
  70. package/server/service/manager/manager-query.ts +0 -28
  71. package/server/service/manager/manager-type.ts +0 -40
  72. package/server/service/manager/manager.ts +0 -29
  73. package/server/service/project/index.ts +0 -6
  74. package/server/service/project/project-mutation.ts +0 -255
  75. package/server/service/project/project-query.ts +0 -105
  76. package/server/service/project/project-type.ts +0 -72
  77. package/server/service/project/project.ts +0 -134
  78. package/server/service/resource/index.ts +0 -7
  79. package/server/service/resource/resource-mutation.ts +0 -137
  80. package/server/service/resource/resource-query.ts +0 -50
  81. package/server/service/resource/resource-type.ts +0 -41
  82. package/server/service/resource/resource.ts +0 -82
  83. package/server/service/task/index.ts +0 -6
  84. package/server/service/task/task-mutation.ts +0 -135
  85. package/server/service/task/task-query.ts +0 -169
  86. package/server/service/task/task-type.ts +0 -75
  87. package/server/service/task/task.ts +0 -130
  88. package/server/service/task-resource/index.ts +0 -7
  89. package/server/service/task-resource/task-resource-mutation.ts +0 -140
  90. package/server/service/task-resource/task-resource-query.ts +0 -36
  91. package/server/service/task-resource/task-resource-type.ts +0 -41
  92. package/server/service/task-resource/task-resource.ts +0 -51
  93. package/server/service/worker-type/index.ts +0 -6
  94. package/server/service/worker-type/worker-type-mutation.ts +0 -66
  95. package/server/service/worker-type/worker-type-query.ts +0 -47
  96. package/server/service/worker-type/worker-type-type.ts +0 -26
  97. package/server/service/worker-type/worker-type.ts +0 -68
  98. package/server/tsconfig.json +0 -10
@@ -1,201 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@operato/data-grist/ox-grist.js'
3
-
4
- import gql from 'graphql-tag'
5
- import { css, html, LitElement } from 'lit'
6
- import { customElement, property, query } from 'lit/decorators.js'
7
-
8
- import { DataGrist } from '@operato/data-grist/ox-grist.js'
9
- import { client } from '@operato/graphql'
10
- import { ButtonContainerStyles } from '@operato/styles'
11
- import { FetchOption } from '@operato/data-grist'
12
- import { notify } from '@operato/layout'
13
-
14
- @customElement('construction-detail-type-popup')
15
- class ConstructionDetailTypePopup extends LitElement {
16
- static styles = [
17
- ButtonContainerStyles,
18
- css`
19
- :host {
20
- display: flex;
21
- flex-direction: column;
22
-
23
- background-color: var(--md-sys-color-surface);
24
- }
25
-
26
- ox-grist {
27
- flex: 1;
28
- }
29
- `
30
- ]
31
-
32
- @property({ type: Object }) constructionType: any
33
- @property({ type: Object }) gristConfig: any
34
-
35
- @query('ox-grist') grist!: DataGrist
36
-
37
- render() {
38
- return html`
39
- <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}></ox-grist>
40
- <div class="button-container">
41
- <button danger @click=${this._deleteConstructionDetailType.bind(this)}><md-icon>delete</md-icon>삭제</button>
42
- <button @click=${this._updateConstructionDetailType.bind(this)}><md-icon>save</md-icon>저장</button>
43
- </div>
44
- `
45
- }
46
-
47
- async firstUpdated() {
48
- this.gristConfig = {
49
- columns: [
50
- { type: 'gutter', gutterName: 'row-selector', multiple: true },
51
- {
52
- type: 'gutter',
53
- gutterName: 'button',
54
- fixed: true,
55
- icon: 'add',
56
- handlers: {
57
- click: 'record-copy'
58
- }
59
- },
60
- { type: 'gutter', gutterName: 'sequence' },
61
- {
62
- type: 'gutter',
63
- gutterName: 'button',
64
- icon: 'arrow_upward',
65
- handlers: {
66
- click: 'move-up'
67
- }
68
- },
69
- {
70
- type: 'gutter',
71
- gutterName: 'button',
72
- icon: 'arrow_downward',
73
- handlers: {
74
- click: 'move-down'
75
- }
76
- },
77
- {
78
- type: 'number',
79
- name: 'sequence',
80
- hidden: true
81
- },
82
- {
83
- type: 'string',
84
- name: 'id',
85
- hidden: true
86
- },
87
- {
88
- type: 'string',
89
- name: 'name',
90
- header: '세부 공종 이름',
91
- record: {
92
- editable: true
93
- },
94
- width: 200
95
- }
96
- ],
97
- rows: {
98
- selectable: {
99
- multiple: true
100
- }
101
- },
102
- pagination: {
103
- infinite: true
104
- },
105
- sorters: [{ name: 'sequence' }]
106
- }
107
- }
108
-
109
- async fetchHandler({ page, limit, sorters = [] }: FetchOption) {
110
- const response = await client.query({
111
- query: gql`
112
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
113
- constructionDetailTypes(filters: $filters, pagination: $pagination, sortings: $sortings) {
114
- items {
115
- id
116
- sequence
117
- name
118
- }
119
- }
120
- }
121
- `,
122
- variables: {
123
- filters: {
124
- name: 'constructionTypeId',
125
- value: this.constructionType.id,
126
- operator: 'eq'
127
- },
128
- sortings: [{ name: 'sequence' }]
129
- }
130
- })
131
-
132
- return {
133
- total: response.data.constructionDetailTypes.total || 0,
134
- records: response.data.constructionDetailTypes.items || []
135
- }
136
- }
137
-
138
- private async _deleteConstructionDetailType() {
139
- if (confirm('삭제하시겠습니까?')) {
140
- const ids = this.grist.selected.map(record => record.id)
141
- if (ids && ids.length > 0) {
142
- const response = await client.mutate({
143
- mutation: gql`
144
- mutation ($ids: [String!]!) {
145
- deleteConstructionDetailTypes(ids: $ids)
146
- }
147
- `,
148
- variables: {
149
- ids
150
- }
151
- })
152
-
153
- if (!response.errors) {
154
- this.grist.fetch()
155
- notify({ message: '삭제되었습니다.' })
156
- }
157
- }
158
- }
159
- }
160
-
161
- async _updateConstructionDetailType() {
162
- let patches = this.grist.dirtyData.records
163
- if (patches) {
164
- patches = patches.map(patch => {
165
- const { __origin__: { __typename, ...patchField } = {}, __dirtyfields__ } = patch
166
-
167
- for (let key in __dirtyfields__) {
168
- patchField[key] = __dirtyfields__[key].after
169
- }
170
-
171
- return patchField
172
- })
173
-
174
- const response = await client.mutate({
175
- mutation: gql`
176
- mutation UpdateMultipleConstructionDetailType($constructionTypeId: String!, $patches: [ConstructionDetailTypePatch!]!) {
177
- updateMultipleConstructionDetailType(constructionTypeId: $constructionTypeId, patches: $patches) {
178
- id
179
- }
180
- }
181
- `,
182
- variables: {
183
- constructionTypeId: this.constructionType.id,
184
- patches
185
- }
186
- })
187
-
188
- if (!response.errors) {
189
- this.grist.fetch()
190
- notify({ message: '저장되었습니다.' })
191
- this.requestRefresh()
192
- } else {
193
- notify({ message: '저장에 실패하였습니다.', level: 'error' })
194
- }
195
- }
196
- }
197
-
198
- requestRefresh() {
199
- this.dispatchEvent(new CustomEvent('requestRefresh'))
200
- }
201
- }
@@ -1,212 +0,0 @@
1
- import '@operato/data-grist'
2
- import '@operato/context/ox-context-page-toolbar.js'
3
-
4
- import { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles'
5
- import { PageView } from '@operato/shell'
6
- import { css, html } from 'lit'
7
- import { customElement, property, query } from 'lit/decorators.js'
8
- import { DataGrist } from '@operato/data-grist'
9
- import { client } from '@operato/graphql'
10
- import { notify, openPopup } from '@operato/layout'
11
- import gql from 'graphql-tag'
12
- import './construction-detail-type-popup'
13
-
14
- @customElement('construction-type-management')
15
- export class ConstructionTypeManagement extends PageView {
16
- static styles = [
17
- ScrollbarStyles,
18
- CommonGristStyles,
19
- css`
20
- :host {
21
- display: flex;
22
- flex-direction: column;
23
-
24
- width: 100%;
25
-
26
- --grid-record-emphasized-background-color: red;
27
- --grid-record-emphasized-color: yellow;
28
- }
29
- `
30
- ]
31
-
32
- @property({ type: Object }) gristConfig: any
33
- @query('ox-grist') private grist!: DataGrist
34
-
35
- get context() {
36
- return {
37
- title: '공종 관리',
38
- actions: [
39
- {
40
- title: '저장',
41
- action: this._updateConstructionTypes.bind(this),
42
- ...CommonButtonStyles.save
43
- },
44
- {
45
- title: '삭제',
46
- action: this._deleteConstructionTypes.bind(this),
47
- ...CommonButtonStyles.delete
48
- }
49
- ]
50
- }
51
- }
52
-
53
- render() {
54
- return html`
55
- <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>
56
- `
57
- }
58
-
59
- async pageInitialized(lifecycle: any) {
60
- this.gristConfig = {
61
- columns: [
62
- { type: 'gutter', gutterName: 'sequence' },
63
- { type: 'gutter', gutterName: 'row-selector', multiple: true },
64
- {
65
- type: 'gutter',
66
- gutterName: 'button',
67
- fixed: true,
68
- icon: 'reorder',
69
- handlers: {
70
- click: (columns, data, column, record, rowIndex) => {
71
- if (!record.id) return
72
- openPopup(
73
- html`
74
- <construction-detail-type-popup
75
- .constructionType=${record}
76
- @requestRefresh="${() => this.grist.fetch()}"
77
- ></construction-detail-type-popup>
78
- `,
79
- {
80
- backdrop: true,
81
- size: 'large',
82
- title: '세부 공종'
83
- }
84
- )
85
- }
86
- }
87
- },
88
- {
89
- type: 'string',
90
- name: 'name',
91
- header: '이름',
92
- record: {
93
- editable: true
94
- },
95
- width: 150
96
- },
97
- {
98
- type: 'string',
99
- name: 'description',
100
- header: '설명',
101
- record: {
102
- editable: true
103
- },
104
- width: 200
105
- },
106
- {
107
- type: 'datetime',
108
- name: 'createdAt',
109
- header: '생성 시간',
110
- width: 200
111
- },
112
- {
113
- type: 'datetime',
114
- name: 'updatedAt',
115
- header: '수정 시간',
116
- width: 200
117
- }
118
- ],
119
- rows: {
120
- selectable: {
121
- multiple: true
122
- }
123
- },
124
- pagination: { infinite: true }
125
- }
126
- }
127
-
128
- async fetchHandler() {
129
- const response = await client.query({
130
- query: gql`
131
- query ConstructionTypes {
132
- constructionTypes {
133
- items {
134
- id
135
- name
136
- description
137
- createdAt
138
- updatedAt
139
- }
140
- total
141
- }
142
- }
143
- `
144
- })
145
-
146
- if (response.errors) return {}
147
-
148
- return {
149
- total: response.data.constructionTypes.total || 0,
150
- records: response.data.constructionTypes.items || []
151
- }
152
- }
153
-
154
- async _updateConstructionTypes() {
155
- let patches = this.grist.dirtyRecords
156
- if (patches && patches.length) {
157
- patches = patches.map(patch => {
158
- let patchField: any = patch.id ? { id: patch.id } : {}
159
- const dirtyFields = patch.__dirtyfields__
160
- for (let key in dirtyFields) {
161
- patchField[key] = dirtyFields[key].after
162
- }
163
- patchField.cuFlag = patch.__dirty__
164
-
165
- return patchField
166
- })
167
-
168
- const response = await client.mutate({
169
- mutation: gql`
170
- mutation UpdateMultipleConstructionType($patches: [ConstructionTypePatch!]!) {
171
- updateMultipleConstructionType(patches: $patches) {
172
- id
173
- }
174
- }
175
- `,
176
- variables: {
177
- patches
178
- }
179
- })
180
-
181
- if (!response.errors) {
182
- this.grist.fetch()
183
- notify({ message: '저장되었습니다.' })
184
- } else {
185
- notify({ message: '저장에 실패하였습니다.', level: 'error' })
186
- }
187
- }
188
- }
189
-
190
- async _deleteConstructionTypes() {
191
- if (confirm('삭제하시겠습니까?')) {
192
- const ids = this.grist.selected.map(record => record.id)
193
- if (ids && ids.length > 0) {
194
- const response = await client.mutate({
195
- mutation: gql`
196
- mutation DeleteConstructionTypes($ids: [String!]!) {
197
- deleteConstructionTypes(ids: $ids)
198
- }
199
- `,
200
- variables: {
201
- ids
202
- }
203
- })
204
-
205
- if (!response.errors) {
206
- this.grist.fetch()
207
- notify({ message: '삭제되었습니다.' })
208
- }
209
- }
210
- }
211
- }
212
- }
@@ -1,245 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@operato/context/ox-context-page-toolbar.js'
3
- import '@operato/data-grist'
4
-
5
- import { CommonGristStyles, CommonButtonStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
6
- import { PageView } from '@operato/shell'
7
- import { css, html } from 'lit'
8
- import { customElement, property, query } from 'lit/decorators.js'
9
- import { DataGrist, FetchOption } from '@operato/data-grist'
10
- import { client } from '@operato/graphql'
11
- import { notify, openPopup } from '@operato/layout'
12
- import gql from 'graphql-tag'
13
- import { p13n } from '@operato/p13n'
14
- import { i18next, localize } from '@operato/i18n'
15
- import './inspection-part-popup'
16
-
17
- @customElement('inspection-drawing-type-management')
18
- export class InspectionDrawingTypeManagement extends p13n(localize(i18next)(PageView)) {
19
- static styles = [
20
- ScrollbarStyles,
21
- CommonGristStyles,
22
- CommonHeaderStyles,
23
- css`
24
- :host {
25
- display: flex;
26
- flex-direction: column;
27
-
28
- --grid-record-emphasized-background-color: red;
29
- --grid-record-emphasized-color: yellow;
30
- }
31
-
32
- ox-grist {
33
- overflow-y: auto;
34
- flex: 1;
35
- }
36
-
37
- .header {
38
- grid-template-areas: 'filters actions';
39
- }
40
- `
41
- ]
42
-
43
- @property({ type: Object }) gristConfig: any
44
- @query('ox-grist') private grist!: DataGrist
45
-
46
- get context() {
47
- return {
48
- title: '도면 타입 관리',
49
- search: {
50
- handler: (search: string) => {
51
- this.grist.searchText = search
52
- },
53
- value: this.grist?.searchText
54
- },
55
- filter: {
56
- handler: () => {
57
- this.grist.toggleHeadroom()
58
- }
59
- },
60
- actions: [
61
- {
62
- title: '저장',
63
- action: this._updateInspectionDrawingTypes.bind(this),
64
- ...CommonButtonStyles.save
65
- },
66
- {
67
- title: '삭제',
68
- action: this._deleteInspectionDrawingTypes.bind(this),
69
- ...CommonButtonStyles.delete
70
- }
71
- ],
72
- toolbar: false
73
- }
74
- }
75
-
76
- render() {
77
- return html`
78
- <ox-grist
79
- .mode=${'GRID'}
80
- .config=${this.gristConfig}
81
- .fetchHandler=${this.fetchHandler.bind(this)}
82
- .personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}
83
- >
84
- <div slot="headroom" class="header">
85
- <div class="filters">
86
- <ox-filters-form autofocus without-search></ox-filters-form>
87
- </div>
88
-
89
- <ox-context-page-toolbar class="actions" .context=${this.context}> </ox-context-page-toolbar>
90
- </div>
91
-
92
- <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
93
- </ox-grist>
94
- `
95
- }
96
-
97
- async pageInitialized(lifecycle: any) {
98
- this.gristConfig = {
99
- columns: [
100
- { type: 'gutter', gutterName: 'sequence' },
101
- { type: 'gutter', gutterName: 'row-selector', multiple: true },
102
- {
103
- type: 'gutter',
104
- gutterName: 'button',
105
- fixed: true,
106
- icon: 'reorder',
107
- handlers: {
108
- click: (columns, data, column, record, rowIndex) => {
109
- if (!record.id) return
110
- openPopup(
111
- html`
112
- <inspection-part-popup
113
- .inspectionDrawingType=${record}
114
- @requestRefresh="${() => this.grist.fetch()}"
115
- ></inspection-part-popup>
116
- `,
117
- {
118
- backdrop: true,
119
- size: 'large',
120
- title: '검측 부위 관리'
121
- }
122
- )
123
- }
124
- }
125
- },
126
- {
127
- type: 'string',
128
- name: 'name',
129
- header: '검측 도면 타입',
130
- record: {
131
- editable: true
132
- },
133
- filter: 'search',
134
- width: 150
135
- },
136
- {
137
- type: 'datetime',
138
- name: 'createdAt',
139
- header: '생성 시간',
140
- width: 200
141
- },
142
- {
143
- type: 'datetime',
144
- name: 'updatedAt',
145
- header: '수정 시간',
146
- width: 200
147
- }
148
- ],
149
- rows: {
150
- selectable: {
151
- multiple: true
152
- }
153
- },
154
- sorters: [{ name: 'name', desc: true }],
155
- pagination: { infinite: true }
156
- }
157
- }
158
-
159
- async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {
160
- const response = await client.query({
161
- query: gql`
162
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
163
- inspectionDrawingTypes(filters: $filters, pagination: $pagination, sortings: $sortings) {
164
- items {
165
- id
166
- name
167
- createdAt
168
- updatedAt
169
- }
170
- total
171
- }
172
- }
173
- `,
174
- variables: {
175
- filters,
176
- pagination: { page, limit },
177
- sortings
178
- }
179
- })
180
-
181
- return {
182
- total: response.data.inspectionDrawingTypes.total || 0,
183
- records: response.data.inspectionDrawingTypes.items || []
184
- }
185
- }
186
-
187
- async _updateInspectionDrawingTypes() {
188
- let patches = this.grist.dirtyRecords
189
- if (patches && patches.length) {
190
- patches = patches.map(patch => {
191
- let patchField: any = patch.id ? { id: patch.id } : {}
192
- const dirtyFields = patch.__dirtyfields__
193
- for (let key in dirtyFields) {
194
- patchField[key] = dirtyFields[key].after
195
- }
196
- patchField.cuFlag = patch.__dirty__
197
-
198
- return patchField
199
- })
200
-
201
- const response = await client.mutate({
202
- mutation: gql`
203
- mutation UpdateMultipleInspectionDrawingType($patches: [InspectionDrawingTypePatch!]!) {
204
- updateMultipleInspectionDrawingType(patches: $patches) {
205
- id
206
- }
207
- }
208
- `,
209
- variables: {
210
- patches
211
- }
212
- })
213
-
214
- if (!response.errors) {
215
- this.grist.fetch()
216
- notify({ message: '저장되었습니다.' })
217
- } else {
218
- notify({ message: '저장에 실패하였습니다.', level: 'error' })
219
- }
220
- }
221
- }
222
-
223
- async _deleteInspectionDrawingTypes() {
224
- if (confirm('삭제하시겠습니까?')) {
225
- const ids = this.grist.selected.map(record => record.id)
226
- if (ids && ids.length > 0) {
227
- const response = await client.mutate({
228
- mutation: gql`
229
- mutation DeleteInspectionDrawingTypes($ids: [String!]!) {
230
- deleteInspectionDrawingTypes(ids: $ids)
231
- }
232
- `,
233
- variables: {
234
- ids
235
- }
236
- })
237
-
238
- if (!response.errors) {
239
- this.grist.fetch()
240
- notify({ message: '삭제되었습니다.' })
241
- }
242
- }
243
- }
244
- }
245
- }