@neutron.co.id/operasional-interfaces 1.14.8 → 1.14.9

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.
@@ -128,7 +128,7 @@ const rejectedAbsensi = async () => {
128
128
  <NeonField>
129
129
  <template #input>
130
130
  <NeonButton
131
- size="md"
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="md"
148
+ size="sm"
149
149
  color="warning"
150
150
  icon-left="trash-can"
151
151
  @click="deleteAbsensi"
@@ -210,7 +210,7 @@ async function generate() {
210
210
  <NeonField>
211
211
  <template #input>
212
212
  <NeonButton
213
- size="md"
213
+ size="sm"
214
214
  color="success"
215
215
  icon-left="up-from-line"
216
216
  :is-disabled="
@@ -229,7 +229,7 @@ async function generate() {
229
229
  <NeonField>
230
230
  <template #input>
231
231
  <NeonButton
232
- size="md"
232
+ size="sm"
233
233
  color="warning"
234
234
  icon-left="arrows-retweet"
235
235
  :is-disabled="
@@ -173,7 +173,7 @@ async function generate() {
173
173
  <NeonField>
174
174
  <template #input>
175
175
  <NeonButton
176
- size="md"
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="md"
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="md"
210
+ size="sm"
211
211
  color="warning"
212
212
  icon-left="trash-can"
213
213
  @click="deleteAbsensi"
@@ -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 v-model="values" :field="fields.stages" />
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 v-model="values" :field="fields.stages" />
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="md"
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="md"
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="md"
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="md"
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="md"
116
+ size="sm"
117
117
  color="#DD9F00"
118
118
  icon-left="turn-down"
119
119
  :is-disabled="
@@ -203,7 +203,7 @@
203
203
  </NeonFields>
204
204
  </div>
205
205
  <div class="ml-2 flex items-end pb-1">
206
- <NeonCopy :size="'sm'" :value="copyStaff.linkStaff" />
206
+ <NeonCopy :size="'sm'" :value="copy.staff" />
207
207
  </div>
208
208
  </div>
209
209
 
@@ -228,7 +228,7 @@
228
228
  </NeonFields>
229
229
  </div>
230
230
  <div class="ml-2 flex items-end pb-1">
231
- <NeonCopy :size="'sm'" :value="copyRaise.linkAudit" />
231
+ <NeonCopy :size="'sm'" :value="copy.raise" />
232
232
  </div>
233
233
  </div>
234
234
 
@@ -250,7 +250,7 @@
250
250
  </NeonFields>
251
251
  </div>
252
252
  <div class="ml-2 flex items-end pb-1">
253
- <NeonCopy :size="'sm'" :value="copyDecision.linkDecision" />
253
+ <NeonCopy :size="'sm'" :value="copy.decision" />
254
254
  </div>
255
255
  </div>
256
256
 
@@ -264,7 +264,7 @@
264
264
  </NeonFields>
265
265
  </div>
266
266
  <div class="ml-2 flex items-end pb-1">
267
- <NeonCopy :size="'sm'" :value="copyFollowup.linkFollowup" />
267
+ <NeonCopy :size="'sm'" :value="copy.followUp" />
268
268
  </div>
269
269
  </div>
270
270
 
@@ -421,7 +421,7 @@ import {
421
421
  } from '@neon.id/office'
422
422
  import { Query } from '@neon.id/query'
423
423
  import { useOperasional } from '../../../common'
424
- import { computed, watch } from 'vue'
424
+ import { computed, watch, ref } from 'vue'
425
425
  import { PromiseUtil } from '@neon.id/utils/promise'
426
426
  import type {
427
427
  TPersonaliaSubmissionModel,
@@ -576,41 +576,11 @@ const syncLowered = async () => {
576
576
  await refreshOne()
577
577
  }
578
578
 
579
- const copyStaff = computed(() => {
580
- executeOne('', { submissionId: id.value })
581
- const linkStaff = `${window.location.origin}/pengajuan/staff-submission/${id.value}`
582
-
583
- return {
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
- }
579
+ const copy = ref({
580
+ staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
581
+ decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
582
+ raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
583
+ followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
614
584
  })
615
585
  </script>
616
586
 
@@ -16,7 +16,7 @@
16
16
  <NeonField v-if="isReady">
17
17
  <template #input>
18
18
  <NeonButton
19
- size="md"
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="md"
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="copyStaff.linkStaff" />
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="copyRaise.linkAudit" />
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="copyDecision.linkDecision" />
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="copyFollowup.linkFollowup" />
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 copyStaff = computed(() => {
513
- executeOne('', { submissionId: id.value })
514
- const linkStaff = `${window.location.origin}/pengajuan/staff-submission/${id.value}`
515
-
516
- return {
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 { computed } from 'vue'
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 copyStaff = computed(() => {
27
- executeOne('', { submissionId: id.value })
28
- const linkStaff = `${window.location.origin}/pengajuan/staff-submission/${id.value}`
29
-
30
- return {
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="copyStaff.linkStaff" />
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="copyRaise.linkAudit" />
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="copyDecision.linkDecision" />
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="copyFollowup.linkFollowup" />
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 { computed } from 'vue'
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 copyStaff = computed(() => {
26
- executeOne('', { submissionId: id.value })
27
- const linkStaff = `${window.location.origin}/pengajuan/staff-submission/${id.value}`
28
-
29
- return {
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="copyStaff.linkStaff" />
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="copyRaise.linkAudit" />
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="copyDecision.linkDecision" />
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="copyFollowup.linkFollowup" />
101
+ <NeonCopy :size="'sm'" :value="copy.followUp" />
132
102
  </div>
133
103
  </div>
134
104
  <!-- <NeonField
@@ -14,7 +14,7 @@
14
14
  <NeonField v-if="isReady">
15
15
  <template #input>
16
16
  <NeonButton
17
- size="md"
17
+ size="sm"
18
18
  color="dark"
19
19
  icon-left="arrow-up-from-line"
20
20
  :is-disabled="
@@ -121,7 +121,7 @@
121
121
  </NeonFields>
122
122
  </div>
123
123
  <div class="ml-2 flex items-end pb-1">
124
- <NeonCopy :size="'sm'" :value="copyStaff.linkStaff" />
124
+ <NeonCopy :size="'sm'" :value="copy.staff" />
125
125
  </div>
126
126
  </div>
127
127
 
@@ -144,7 +144,7 @@
144
144
  </NeonFields>
145
145
  </div>
146
146
  <div class="ml-2 flex items-end pb-1">
147
- <NeonCopy :size="'sm'" :value="copyRaise.linkAudit" />
147
+ <NeonCopy :size="'sm'" :value="copy.raise" />
148
148
  </div>
149
149
  </div>
150
150
 
@@ -167,7 +167,7 @@
167
167
  </NeonFields>
168
168
  </div>
169
169
  <div class="ml-2 flex items-end pb-1">
170
- <NeonCopy :size="'sm'" :value="copyDecision.linkDecision" />
170
+ <NeonCopy :size="'sm'" :value="copy.decision" />
171
171
  </div>
172
172
  </div>
173
173
 
@@ -181,7 +181,7 @@
181
181
  </NeonFields>
182
182
  </div>
183
183
  <div class="ml-2 flex items-end pb-1">
184
- <NeonCopy :size="'sm'" :value="copyFollowup.linkFollowup" />
184
+ <NeonCopy :size="'sm'" :value="copy.followUp" />
185
185
  </div>
186
186
  </div>
187
187
 
@@ -322,7 +322,7 @@ import { NeonButton, NeonDivider, NeonCopy } from '@neon.id/interfaces'
322
322
  import { OfficeRelation, OfficeTab, OfficeTabs } from '@neon.id/office'
323
323
  import { Query } from '@neon.id/query'
324
324
  import { useOperasional } from '../../../common/providers/operasional'
325
- import { computed, watch } from 'vue'
325
+ import { computed, watch, ref } from 'vue'
326
326
  import { PromiseUtil } from '@neon.id/utils/promise'
327
327
  import type {
328
328
  TPersonaliaSubmissionModel,
@@ -412,8 +412,6 @@ const roleDecideStaffOptions = computed(() => {
412
412
  const branchIds = staff.value?.branchIds || []
413
413
  const branchDisplay = staff.value?.branches || []
414
414
 
415
- console.log('staff :', staff.value)
416
-
417
415
  watch(
418
416
  isNew,
419
417
  async (isNew) => {
@@ -432,31 +430,6 @@ watch(
432
430
  { immediate: true },
433
431
  )
434
432
 
435
- // async function () {
436
- // if (!isNew.value) return
437
- // await PromiseUtil.wait(500)
438
-
439
- // const defaultValues = {
440
- // submissionStaffIds: staff?.value?.id ? [staffId] : ,
441
- // submissionStaffs: [{ id: staffId, flag: staff.value?.flag }],
442
- // branchIds: [branchIds[0]],
443
- // branches: [branchDisplay[0]],
444
- // preparedAt: new Date().toISOString(),
445
- // } satisfies Schema.Submission
446
-
447
- // values.value.preparedAt = defaultValues.preparedAt
448
-
449
- // if (staff?.value?.id) {
450
- // values.value.submissionStaffIds = defaultValues.submissionStaffIds
451
- // values.value.submissionStaffs = defaultValues.submissionStaffs
452
- // }
453
-
454
- // if (staff?.value?.branchIds) {
455
- // values.value.branchIds = defaultValues.branchIds
456
- // values.value.branches = defaultValues.branches
457
- // }
458
- // }
459
-
460
433
  const syncRaise = async () => {
461
434
  await executeOne('raiseSubmission', {
462
435
  submissionId: id.value,
@@ -466,41 +439,11 @@ const syncRaise = async () => {
466
439
  await refreshOne()
467
440
  }
468
441
 
469
- const copyStaff = computed(() => {
470
- executeOne('', { submissionId: id.value })
471
- const linkStaff = `${window.location.origin}/pengajuan/staff-submission/${id.value}`
472
-
473
- return {
474
- icon: 'brands:link',
475
- linkStaff,
476
- }
477
- })
478
-
479
- const copyDecision = computed(() => {
480
- executeOne('', { submissionId: id.value })
481
- const linkDecision = `${window.location.origin}/pengajuan/decision-submission/${id.value}`
482
- return {
483
- icon: 'brands:link',
484
- linkDecision,
485
- }
486
- })
487
-
488
- const copyRaise = computed(() => {
489
- executeOne('', { submissionId: id.value })
490
- const linkAudit = `${window.location.origin}/pengajuan/audit-submission/${id.value}`
491
- return {
492
- icon: 'brands:link',
493
- linkAudit,
494
- }
495
- })
496
-
497
- const copyFollowup = computed(() => {
498
- executeOne('', { submissionId: id.value })
499
- const linkFollowup = `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`
500
- return {
501
- icon: 'brands:link',
502
- linkFollowup,
503
- }
442
+ const copy = ref({
443
+ staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
444
+ decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
445
+ raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
446
+ followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
504
447
  })
505
448
  </script>
506
449