@neutron.co.id/operasional-interfaces 1.14.8 → 1.14.10
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/build/@office/models/personalia/attendance/AttendanceManager.vue +2 -2
- package/build/@office/models/personalia/attendance/AttendanceStaff.vue +2 -4
- package/build/@office/models/personalia/attendance/AttendanceSupervisor.vue +3 -3
- package/build/@office/models/personalia/checkIn/CheckInScanner.vue +0 -3
- package/build/@office/models/personalia/plan/PlanSingle/PlanSingle.vue +5 -1
- package/build/@office/models/personalia/plan/PlanStaff.vue +5 -1
- package/build/@office/models/personalia/submission/SubmissionAudit.vue +31 -45
- package/build/@office/models/personalia/submission/SubmissionDecision.vue +12 -41
- package/build/@office/models/personalia/submission/SubmissionFollowUp.vue +10 -40
- package/build/@office/models/personalia/submission/SubmissionSingle/SubmissionSingle.vue +10 -40
- package/build/@office/models/personalia/submission/SubmissionStaff.vue +77 -134
- package/build/@office/models/personalia/submission/SubmissionSupervisor.vue +10 -40
- package/build/@office/models/personalia/submission/SubmissionWaitingDecision.vue +12 -42
- package/build/@office/models/personalia/target/TargetBranch.vue +5 -1
- package/build/@office/models/personalia/target/TargetSingle/TargetSingle.vue +5 -1
- package/build/@office/models/personalia/task/TaskSingle/TaskSingle.vue +3 -3
- package/build/mock/index.cjs +131 -311
- package/build/mock/index.mjs +131 -311
- package/build/mock/style.css +22 -22
- package/build/module.json +1 -1
- package/build/nuxt.json +1 -1
- package/package.json +6 -6
|
@@ -128,7 +128,7 @@ const rejectedAbsensi = async () => {
|
|
|
128
128
|
<NeonField>
|
|
129
129
|
<template #input>
|
|
130
130
|
<NeonButton
|
|
131
|
-
size="
|
|
131
|
+
size="sm"
|
|
132
132
|
color="success"
|
|
133
133
|
icon-left="x"
|
|
134
134
|
:is-disabled="
|
|
@@ -145,7 +145,7 @@ const rejectedAbsensi = async () => {
|
|
|
145
145
|
<NeonField>
|
|
146
146
|
<template #input>
|
|
147
147
|
<NeonButton
|
|
148
|
-
size="
|
|
148
|
+
size="sm"
|
|
149
149
|
color="warning"
|
|
150
150
|
icon-left="trash-can"
|
|
151
151
|
@click="deleteAbsensi"
|
|
@@ -176,8 +176,6 @@ async function generateAttendance() {
|
|
|
176
176
|
responseState.value = wrapper?.info?.state
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
console.log('decideStaffId', values.value.decideStaffId)
|
|
180
|
-
|
|
181
179
|
async function generate() {
|
|
182
180
|
await generateAttendance()
|
|
183
181
|
await getNotified()
|
|
@@ -210,7 +208,7 @@ async function generate() {
|
|
|
210
208
|
<NeonField>
|
|
211
209
|
<template #input>
|
|
212
210
|
<NeonButton
|
|
213
|
-
size="
|
|
211
|
+
size="sm"
|
|
214
212
|
color="success"
|
|
215
213
|
icon-left="up-from-line"
|
|
216
214
|
:is-disabled="
|
|
@@ -229,7 +227,7 @@ async function generate() {
|
|
|
229
227
|
<NeonField>
|
|
230
228
|
<template #input>
|
|
231
229
|
<NeonButton
|
|
232
|
-
size="
|
|
230
|
+
size="sm"
|
|
233
231
|
color="warning"
|
|
234
232
|
icon-left="arrows-retweet"
|
|
235
233
|
:is-disabled="
|
|
@@ -173,7 +173,7 @@ async function generate() {
|
|
|
173
173
|
<NeonField>
|
|
174
174
|
<template #input>
|
|
175
175
|
<NeonButton
|
|
176
|
-
size="
|
|
176
|
+
size="sm"
|
|
177
177
|
color="success"
|
|
178
178
|
icon-left="check"
|
|
179
179
|
:is-disabled="
|
|
@@ -190,7 +190,7 @@ async function generate() {
|
|
|
190
190
|
<NeonField>
|
|
191
191
|
<template #input>
|
|
192
192
|
<NeonButton
|
|
193
|
-
size="
|
|
193
|
+
size="sm"
|
|
194
194
|
color="danger"
|
|
195
195
|
icon-left="x"
|
|
196
196
|
:is-disabled="
|
|
@@ -207,7 +207,7 @@ async function generate() {
|
|
|
207
207
|
<NeonField>
|
|
208
208
|
<template #input>
|
|
209
209
|
<NeonButton
|
|
210
|
-
size="
|
|
210
|
+
size="sm"
|
|
211
211
|
color="warning"
|
|
212
212
|
icon-left="trash-can"
|
|
213
213
|
@click="deleteAbsensi"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
// import mitt, { Emitter } from 'mitt'
|
|
3
2
|
import { useIntervalFn, useThrottleFn } from '@vueuse/core'
|
|
4
3
|
import { storeToRefs } from 'pinia'
|
|
5
4
|
import Scanner from 'qr-scanner'
|
|
@@ -23,8 +22,6 @@ const frameEl = ref()
|
|
|
23
22
|
const videoEl = ref()
|
|
24
23
|
const scanner = ref<Scanner>()
|
|
25
24
|
|
|
26
|
-
// const { height, width } = useElementSize(frameEl)
|
|
27
|
-
|
|
28
25
|
const state = reactive({
|
|
29
26
|
isScanning: false,
|
|
30
27
|
isInvalid: false,
|
|
@@ -84,7 +84,11 @@ const saveAndSyncOne = async () => {
|
|
|
84
84
|
/>
|
|
85
85
|
|
|
86
86
|
<NeonFields v-if="values.domain == 'marketing'" md="grid-cols-2">
|
|
87
|
-
<OfficeRelation
|
|
87
|
+
<OfficeRelation
|
|
88
|
+
v-model="values"
|
|
89
|
+
:field="fields.stages"
|
|
90
|
+
:filter="{ status: 'published' }"
|
|
91
|
+
/>
|
|
88
92
|
<OfficeRelation
|
|
89
93
|
v-model="values"
|
|
90
94
|
:field="fields.target"
|
|
@@ -98,7 +98,11 @@ const saveAndSyncOne = async () => {
|
|
|
98
98
|
/>
|
|
99
99
|
|
|
100
100
|
<NeonFields v-if="values.domain == 'marketing'" md="grid-cols-2">
|
|
101
|
-
<OfficeRelation
|
|
101
|
+
<OfficeRelation
|
|
102
|
+
v-model="values"
|
|
103
|
+
:field="fields.stages"
|
|
104
|
+
:filter="{ status: 'published' }"
|
|
105
|
+
/>
|
|
102
106
|
<OfficeRelation
|
|
103
107
|
v-model="values"
|
|
104
108
|
:field="fields.target"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<NeonField v-if="isReady">
|
|
17
17
|
<template #input>
|
|
18
18
|
<NeonButton
|
|
19
|
-
size="
|
|
19
|
+
size="sm"
|
|
20
20
|
color="success"
|
|
21
21
|
icon-left="file-check"
|
|
22
22
|
:is-disabled="
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<NeonField v-if="isReady">
|
|
40
40
|
<template #input>
|
|
41
41
|
<NeonButton
|
|
42
|
-
size="
|
|
42
|
+
size="sm"
|
|
43
43
|
color="danger"
|
|
44
44
|
icon-left="ban"
|
|
45
45
|
:is-disabled="
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
<NeonField v-if="isReady">
|
|
63
63
|
<template #input>
|
|
64
64
|
<NeonButton
|
|
65
|
-
size="
|
|
65
|
+
size="sm"
|
|
66
66
|
color="info"
|
|
67
67
|
icon-left="binoculars"
|
|
68
68
|
:is-disabled="
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<NeonField v-if="isReady">
|
|
86
86
|
<template #input>
|
|
87
87
|
<NeonButton
|
|
88
|
-
size="
|
|
88
|
+
size="sm"
|
|
89
89
|
color="warning"
|
|
90
90
|
icon-left="spinner"
|
|
91
91
|
:is-disabled="
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
<NeonField v-if="isReady">
|
|
114
114
|
<template #input>
|
|
115
115
|
<NeonButton
|
|
116
|
-
size="
|
|
116
|
+
size="sm"
|
|
117
117
|
color="#DD9F00"
|
|
118
118
|
icon-left="turn-down"
|
|
119
119
|
:is-disabled="
|
|
@@ -136,6 +136,8 @@
|
|
|
136
136
|
:is-disabled="
|
|
137
137
|
values.status === 'processed' ||
|
|
138
138
|
values.status === 'approved' ||
|
|
139
|
+
values.status === 'raised' ||
|
|
140
|
+
values.status === 'delay' ||
|
|
139
141
|
values.status === 'monitored' ||
|
|
140
142
|
values.status === 'discontinued' ||
|
|
141
143
|
values.status === 'resolved'
|
|
@@ -148,6 +150,8 @@
|
|
|
148
150
|
:is-disabled="
|
|
149
151
|
values.status === 'processed' ||
|
|
150
152
|
values.status === 'approved' ||
|
|
153
|
+
values.status === 'raised' ||
|
|
154
|
+
values.status === 'delay' ||
|
|
151
155
|
values.status === 'monitored' ||
|
|
152
156
|
values.status === 'discontinued' ||
|
|
153
157
|
values.status === 'resolved'
|
|
@@ -162,6 +166,8 @@
|
|
|
162
166
|
:is-disabled="
|
|
163
167
|
values.status === 'processed' ||
|
|
164
168
|
values.status === 'approved' ||
|
|
169
|
+
values.status === 'raised' ||
|
|
170
|
+
values.status === 'delay' ||
|
|
165
171
|
values.status === 'monitored' ||
|
|
166
172
|
values.status === 'discontinued' ||
|
|
167
173
|
values.status === 'resolved'
|
|
@@ -175,6 +181,8 @@
|
|
|
175
181
|
:is-disabled="
|
|
176
182
|
values.status === 'processed' ||
|
|
177
183
|
values.status === 'approved' ||
|
|
184
|
+
values.status === 'raised' ||
|
|
185
|
+
values.status === 'delay' ||
|
|
178
186
|
values.status === 'monitored' ||
|
|
179
187
|
values.status === 'discontinued' ||
|
|
180
188
|
values.status === 'resolved'
|
|
@@ -192,6 +200,8 @@
|
|
|
192
200
|
:is-disabled="
|
|
193
201
|
values.status === 'processed' ||
|
|
194
202
|
values.status === 'approved' ||
|
|
203
|
+
values.status === 'raised' ||
|
|
204
|
+
values.status === 'delay' ||
|
|
195
205
|
values.status === 'monitored' ||
|
|
196
206
|
values.status === 'discontinued' ||
|
|
197
207
|
values.status === 'resolved' ||
|
|
@@ -203,7 +213,7 @@
|
|
|
203
213
|
</NeonFields>
|
|
204
214
|
</div>
|
|
205
215
|
<div class="ml-2 flex items-end pb-1">
|
|
206
|
-
<NeonCopy :size="'sm'" :value="
|
|
216
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
207
217
|
</div>
|
|
208
218
|
</div>
|
|
209
219
|
|
|
@@ -217,6 +227,8 @@
|
|
|
217
227
|
:is-disabled="
|
|
218
228
|
values.status === 'processed' ||
|
|
219
229
|
values.status === 'approved' ||
|
|
230
|
+
values.status === 'raised' ||
|
|
231
|
+
values.status === 'delay' ||
|
|
220
232
|
values.status === 'monitored' ||
|
|
221
233
|
values.status === 'discontinued' ||
|
|
222
234
|
values.status === 'resolved' ||
|
|
@@ -228,7 +240,7 @@
|
|
|
228
240
|
</NeonFields>
|
|
229
241
|
</div>
|
|
230
242
|
<div class="ml-2 flex items-end pb-1">
|
|
231
|
-
<NeonCopy :size="'sm'" :value="
|
|
243
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
232
244
|
</div>
|
|
233
245
|
</div>
|
|
234
246
|
|
|
@@ -242,6 +254,8 @@
|
|
|
242
254
|
:is-disabled="
|
|
243
255
|
values.status === 'processed' ||
|
|
244
256
|
values.status === 'approved' ||
|
|
257
|
+
values.status === 'raised' ||
|
|
258
|
+
values.status === 'delay' ||
|
|
245
259
|
values.status === 'monitored' ||
|
|
246
260
|
values.status === 'discontinued' ||
|
|
247
261
|
values.status === 'resolved'
|
|
@@ -250,7 +264,7 @@
|
|
|
250
264
|
</NeonFields>
|
|
251
265
|
</div>
|
|
252
266
|
<div class="ml-2 flex items-end pb-1">
|
|
253
|
-
<NeonCopy :size="'sm'" :value="
|
|
267
|
+
<NeonCopy :size="'sm'" :value="copy.decision" />
|
|
254
268
|
</div>
|
|
255
269
|
</div>
|
|
256
270
|
|
|
@@ -264,7 +278,7 @@
|
|
|
264
278
|
</NeonFields>
|
|
265
279
|
</div>
|
|
266
280
|
<div class="ml-2 flex items-end pb-1">
|
|
267
|
-
<NeonCopy :size="'sm'" :value="
|
|
281
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
268
282
|
</div>
|
|
269
283
|
</div>
|
|
270
284
|
|
|
@@ -294,6 +308,8 @@
|
|
|
294
308
|
:is-disabled="
|
|
295
309
|
values.status === 'processed' ||
|
|
296
310
|
values.status === 'approved' ||
|
|
311
|
+
values.status === 'raised' ||
|
|
312
|
+
values.status === 'delay' ||
|
|
297
313
|
values.status === 'monitored' ||
|
|
298
314
|
values.status === 'discontinued' ||
|
|
299
315
|
values.status === 'resolved'
|
|
@@ -421,7 +437,7 @@ import {
|
|
|
421
437
|
} from '@neon.id/office'
|
|
422
438
|
import { Query } from '@neon.id/query'
|
|
423
439
|
import { useOperasional } from '../../../common'
|
|
424
|
-
import { computed, watch } from 'vue'
|
|
440
|
+
import { computed, watch, ref } from 'vue'
|
|
425
441
|
import { PromiseUtil } from '@neon.id/utils/promise'
|
|
426
442
|
import type {
|
|
427
443
|
TPersonaliaSubmissionModel,
|
|
@@ -576,41 +592,11 @@ const syncLowered = async () => {
|
|
|
576
592
|
await refreshOne()
|
|
577
593
|
}
|
|
578
594
|
|
|
579
|
-
const
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
icon: 'brands:link',
|
|
585
|
-
linkStaff,
|
|
586
|
-
}
|
|
587
|
-
})
|
|
588
|
-
|
|
589
|
-
const copyDecision = computed(() => {
|
|
590
|
-
executeOne('', { submissionId: id.value })
|
|
591
|
-
const linkDecision = `${window.location.origin}/pengajuan/decision-submission/${id.value}`
|
|
592
|
-
return {
|
|
593
|
-
icon: 'brands:link',
|
|
594
|
-
linkDecision,
|
|
595
|
-
}
|
|
596
|
-
})
|
|
597
|
-
|
|
598
|
-
const copyRaise = computed(() => {
|
|
599
|
-
executeOne('', { submissionId: id.value })
|
|
600
|
-
const linkAudit = `${window.location.origin}/pengajuan/audit-submission/${id.value}`
|
|
601
|
-
return {
|
|
602
|
-
icon: 'brands:link',
|
|
603
|
-
linkAudit,
|
|
604
|
-
}
|
|
605
|
-
})
|
|
606
|
-
|
|
607
|
-
const copyFollowup = computed(() => {
|
|
608
|
-
executeOne('', { submissionId: id.value })
|
|
609
|
-
const linkFollowup = `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`
|
|
610
|
-
return {
|
|
611
|
-
icon: 'brands:link',
|
|
612
|
-
linkFollowup,
|
|
613
|
-
}
|
|
595
|
+
const copy = ref({
|
|
596
|
+
staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
|
|
597
|
+
decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
|
|
598
|
+
raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
|
|
599
|
+
followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
|
|
614
600
|
})
|
|
615
601
|
</script>
|
|
616
602
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<NeonField v-if="isReady">
|
|
17
17
|
<template #input>
|
|
18
18
|
<NeonButton
|
|
19
|
-
size="
|
|
19
|
+
size="sm"
|
|
20
20
|
color="danger"
|
|
21
21
|
icon-left="circle-stop"
|
|
22
22
|
:is-disabled="
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<NeonField v-if="isReady">
|
|
40
40
|
<template #input>
|
|
41
41
|
<NeonButton
|
|
42
|
-
size="
|
|
42
|
+
size="sm"
|
|
43
43
|
color="success"
|
|
44
44
|
icon-left="list-check"
|
|
45
45
|
:is-disabled="
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
</NeonFields>
|
|
139
139
|
</div>
|
|
140
140
|
<div class="ml-2 flex items-end pb-1">
|
|
141
|
-
<NeonCopy :size="'sm'" :value="
|
|
141
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
142
142
|
</div>
|
|
143
143
|
</div>
|
|
144
144
|
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
</NeonFields>
|
|
163
163
|
</div>
|
|
164
164
|
<div class="ml-2 flex items-end pb-1">
|
|
165
|
-
<NeonCopy :size="'sm'" :value="
|
|
165
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
166
166
|
</div>
|
|
167
167
|
</div>
|
|
168
168
|
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
</NeonFields>
|
|
187
187
|
</div>
|
|
188
188
|
<div class="ml-2 flex items-end pb-1">
|
|
189
|
-
<NeonCopy :size="'sm'" :value="
|
|
189
|
+
<NeonCopy :size="'sm'" :value="copy.decision" />
|
|
190
190
|
</div>
|
|
191
191
|
</div>
|
|
192
192
|
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
</NeonFields>
|
|
201
201
|
</div>
|
|
202
202
|
<div class="ml-2 flex items-end pb-1">
|
|
203
|
-
<NeonCopy :size="'sm'" :value="
|
|
203
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
204
204
|
</div>
|
|
205
205
|
</div>
|
|
206
206
|
|
|
@@ -374,7 +374,7 @@ import {
|
|
|
374
374
|
} from '@neon.id/office'
|
|
375
375
|
import { Query } from '@neon.id/query'
|
|
376
376
|
import { useOperasional } from '../../../common'
|
|
377
|
-
import { computed, watch } from 'vue'
|
|
377
|
+
import { computed, watch, ref } from 'vue'
|
|
378
378
|
import { PromiseUtil } from '@neon.id/utils/promise'
|
|
379
379
|
import type {
|
|
380
380
|
TPersonaliaSubmissionModel,
|
|
@@ -509,40 +509,11 @@ const syncApproved = async () => {
|
|
|
509
509
|
await refreshOne()
|
|
510
510
|
}
|
|
511
511
|
|
|
512
|
-
const
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
icon: 'brands:link',
|
|
518
|
-
linkStaff,
|
|
519
|
-
}
|
|
520
|
-
})
|
|
521
|
-
|
|
522
|
-
const copyDecision = computed(() => {
|
|
523
|
-
executeOne('', { submissionId: id.value })
|
|
524
|
-
const linkDecision = `${window.location.origin}/pengajuan/decision-submission/${id.value}`
|
|
525
|
-
return {
|
|
526
|
-
icon: 'brands:link',
|
|
527
|
-
linkDecision,
|
|
528
|
-
}
|
|
529
|
-
})
|
|
530
|
-
|
|
531
|
-
const copyRaise = computed(() => {
|
|
532
|
-
executeOne('', { submissionId: id.value })
|
|
533
|
-
const linkAudit = `${window.location.origin}/pengajuan/audit-submission/${id.value}`
|
|
534
|
-
return {
|
|
535
|
-
icon: 'brands:link',
|
|
536
|
-
linkAudit,
|
|
537
|
-
}
|
|
538
|
-
})
|
|
539
|
-
const copyFollowup = computed(() => {
|
|
540
|
-
executeOne('', { submissionId: id.value })
|
|
541
|
-
const linkFollowup = `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`
|
|
542
|
-
return {
|
|
543
|
-
icon: 'brands:link',
|
|
544
|
-
linkFollowup,
|
|
545
|
-
}
|
|
512
|
+
const copy = ref({
|
|
513
|
+
staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
|
|
514
|
+
decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
|
|
515
|
+
raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
|
|
516
|
+
followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
|
|
546
517
|
})
|
|
547
518
|
</script>
|
|
548
519
|
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
Schema,
|
|
9
9
|
} from '@neutron.co.id/personalia-models'
|
|
10
10
|
import { SubmissionDetailTab, SubmissionDocumentTab } from './sections'
|
|
11
|
-
import {
|
|
11
|
+
import { ref } from 'vue'
|
|
12
12
|
|
|
13
13
|
const {
|
|
14
14
|
id,
|
|
@@ -23,41 +23,11 @@ const {
|
|
|
23
23
|
executeOne,
|
|
24
24
|
} = useSingle<Schema.Submission, TPersonaliaSubmissionModel>()
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
icon: 'brands:link',
|
|
32
|
-
linkStaff,
|
|
33
|
-
}
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
const copyDecision = computed(() => {
|
|
37
|
-
executeOne('', { submissionId: id.value })
|
|
38
|
-
const linkDecision = `${window.location.origin}/pengajuan/decision-submission/${id.value}`
|
|
39
|
-
return {
|
|
40
|
-
icon: 'brands:link',
|
|
41
|
-
linkDecision,
|
|
42
|
-
}
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
const copyRaise = computed(() => {
|
|
46
|
-
executeOne('', { submissionId: id.value })
|
|
47
|
-
const linkAudit = `${window.location.origin}/pengajuan/audit-submission/${id.value}`
|
|
48
|
-
return {
|
|
49
|
-
icon: 'brands:link',
|
|
50
|
-
linkAudit,
|
|
51
|
-
}
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
const copyFollowup = computed(() => {
|
|
55
|
-
executeOne('', { submissionId: id.value })
|
|
56
|
-
const linkFollowup = `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`
|
|
57
|
-
return {
|
|
58
|
-
icon: 'brands:link',
|
|
59
|
-
linkFollowup,
|
|
60
|
-
}
|
|
26
|
+
const copy = ref({
|
|
27
|
+
staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
|
|
28
|
+
decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
|
|
29
|
+
raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
|
|
30
|
+
followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
|
|
61
31
|
})
|
|
62
32
|
</script>
|
|
63
33
|
|
|
@@ -102,7 +72,7 @@ const copyFollowup = computed(() => {
|
|
|
102
72
|
</NeonFields>
|
|
103
73
|
</div>
|
|
104
74
|
<div class="ml-2 flex items-end pb-1">
|
|
105
|
-
<NeonCopy :size="'sm'" :value="
|
|
75
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
106
76
|
</div>
|
|
107
77
|
</div>
|
|
108
78
|
|
|
@@ -117,7 +87,7 @@ const copyFollowup = computed(() => {
|
|
|
117
87
|
</NeonFields>
|
|
118
88
|
</div>
|
|
119
89
|
<div class="ml-2 flex items-end pb-1">
|
|
120
|
-
<NeonCopy :size="'sm'" :value="
|
|
90
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
121
91
|
</div>
|
|
122
92
|
</div>
|
|
123
93
|
|
|
@@ -132,7 +102,7 @@ const copyFollowup = computed(() => {
|
|
|
132
102
|
</NeonFields>
|
|
133
103
|
</div>
|
|
134
104
|
<div class="ml-2 flex items-end pb-1">
|
|
135
|
-
<NeonCopy :size="'sm'" :value="
|
|
105
|
+
<NeonCopy :size="'sm'" :value="copy.decision" />
|
|
136
106
|
</div>
|
|
137
107
|
</div>
|
|
138
108
|
|
|
@@ -146,7 +116,7 @@ const copyFollowup = computed(() => {
|
|
|
146
116
|
</NeonFields>
|
|
147
117
|
</div>
|
|
148
118
|
<div class="ml-2 flex items-end pb-1">
|
|
149
|
-
<NeonCopy :size="'sm'" :value="
|
|
119
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
150
120
|
</div>
|
|
151
121
|
</div>
|
|
152
122
|
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
Schema,
|
|
9
9
|
} from '@neutron.co.id/personalia-models'
|
|
10
10
|
import { SubmissionDetailTab, SubmissionDocumentTab } from '../sections'
|
|
11
|
-
import {
|
|
11
|
+
import { ref } from 'vue'
|
|
12
12
|
|
|
13
13
|
const {
|
|
14
14
|
id,
|
|
@@ -22,41 +22,11 @@ const {
|
|
|
22
22
|
discardChanges,
|
|
23
23
|
executeOne,
|
|
24
24
|
} = useSingle<Schema.Submission, TPersonaliaSubmissionModel>()
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
icon: 'brands:link',
|
|
31
|
-
linkStaff,
|
|
32
|
-
}
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
const copyDecision = computed(() => {
|
|
36
|
-
executeOne('', { submissionId: id.value })
|
|
37
|
-
const linkDecision = `${window.location.origin}/pengajuan/decision-submission/${id.value}`
|
|
38
|
-
return {
|
|
39
|
-
icon: 'brands:link',
|
|
40
|
-
linkDecision,
|
|
41
|
-
}
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
const copyRaise = computed(() => {
|
|
45
|
-
executeOne('', { submissionId: id.value })
|
|
46
|
-
const linkAudit = `${window.location.origin}/pengajuan/audit-submission/${id.value}`
|
|
47
|
-
return {
|
|
48
|
-
icon: 'brands:link',
|
|
49
|
-
linkAudit,
|
|
50
|
-
}
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
const copyFollowup = computed(() => {
|
|
54
|
-
executeOne('', { submissionId: id.value })
|
|
55
|
-
const linkFollowup = `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`
|
|
56
|
-
return {
|
|
57
|
-
icon: 'brands:link',
|
|
58
|
-
linkFollowup,
|
|
59
|
-
}
|
|
25
|
+
const copy = ref({
|
|
26
|
+
staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
|
|
27
|
+
decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
|
|
28
|
+
raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
|
|
29
|
+
followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
|
|
60
30
|
})
|
|
61
31
|
</script>
|
|
62
32
|
|
|
@@ -92,7 +62,7 @@ const copyFollowup = computed(() => {
|
|
|
92
62
|
</NeonFields>
|
|
93
63
|
</div>
|
|
94
64
|
<div class="ml-2 flex items-end pb-1">
|
|
95
|
-
<NeonCopy :size="'sm'" :value="
|
|
65
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
96
66
|
</div>
|
|
97
67
|
</div>
|
|
98
68
|
|
|
@@ -103,7 +73,7 @@ const copyFollowup = computed(() => {
|
|
|
103
73
|
</NeonFields>
|
|
104
74
|
</div>
|
|
105
75
|
<div class="ml-2 flex items-end pb-1">
|
|
106
|
-
<NeonCopy :size="'sm'" :value="
|
|
76
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
107
77
|
</div>
|
|
108
78
|
</div>
|
|
109
79
|
|
|
@@ -114,7 +84,7 @@ const copyFollowup = computed(() => {
|
|
|
114
84
|
</NeonFields>
|
|
115
85
|
</div>
|
|
116
86
|
<div class="ml-2 flex items-end pb-1">
|
|
117
|
-
<NeonCopy :size="'sm'" :value="
|
|
87
|
+
<NeonCopy :size="'sm'" :value="copy.decision" />
|
|
118
88
|
</div>
|
|
119
89
|
</div>
|
|
120
90
|
|
|
@@ -128,7 +98,7 @@ const copyFollowup = computed(() => {
|
|
|
128
98
|
</NeonFields>
|
|
129
99
|
</div>
|
|
130
100
|
<div class="ml-2 flex items-end pb-1">
|
|
131
|
-
<NeonCopy :size="'sm'" :value="
|
|
101
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
132
102
|
</div>
|
|
133
103
|
</div>
|
|
134
104
|
<!-- <NeonField
|