@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
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
<NeonField v-if="isReady">
|
|
15
15
|
<template #input>
|
|
16
16
|
<NeonButton
|
|
17
|
-
size="
|
|
17
|
+
size="sm"
|
|
18
18
|
color="dark"
|
|
19
19
|
icon-left="arrow-up-from-line"
|
|
20
20
|
:is-disabled="
|
|
21
21
|
isNew ||
|
|
22
22
|
isChanged ||
|
|
23
|
-
values.
|
|
24
|
-
values.
|
|
25
|
-
values.
|
|
26
|
-
values.
|
|
27
|
-
values.
|
|
28
|
-
values.
|
|
23
|
+
values.statusStaff === 'raised' ||
|
|
24
|
+
values.statusStaff === 'processed' ||
|
|
25
|
+
values.statusStaff === 'approved' ||
|
|
26
|
+
values.statusStaff === 'monitored' ||
|
|
27
|
+
values.statusStaff === 'discontinued' ||
|
|
28
|
+
values.statusStaff === 'resolved' ||
|
|
29
29
|
!values.agreedStaffs ||
|
|
30
30
|
!values.branches ||
|
|
31
31
|
!values.decideStaffs ||
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
v-model="values.title"
|
|
49
49
|
v-bind="fields.title"
|
|
50
50
|
:is-disabled="
|
|
51
|
-
values.
|
|
52
|
-
values.
|
|
53
|
-
values.
|
|
54
|
-
values.
|
|
55
|
-
values.
|
|
56
|
-
values.
|
|
51
|
+
values.statusStaff === 'raised' ||
|
|
52
|
+
values.statusStaff === 'processed' ||
|
|
53
|
+
values.statusStaff === 'approved' ||
|
|
54
|
+
values.statusStaff === 'monitored' ||
|
|
55
|
+
values.statusStaff === 'discontinued' ||
|
|
56
|
+
values.statusStaff === 'resolved'
|
|
57
57
|
"
|
|
58
58
|
/>
|
|
59
59
|
|
|
@@ -61,12 +61,12 @@
|
|
|
61
61
|
v-model="values.nominal"
|
|
62
62
|
v-bind="fields.nominal"
|
|
63
63
|
:is-disabled="
|
|
64
|
-
values.
|
|
65
|
-
values.
|
|
66
|
-
values.
|
|
67
|
-
values.
|
|
68
|
-
values.
|
|
69
|
-
values.
|
|
64
|
+
values.statusStaff === 'raised' ||
|
|
65
|
+
values.statusStaff === 'processed' ||
|
|
66
|
+
values.statusStaff === 'approved' ||
|
|
67
|
+
values.statusStaff === 'monitored' ||
|
|
68
|
+
values.statusStaff === 'discontinued' ||
|
|
69
|
+
values.statusStaff === 'resolved'
|
|
70
70
|
"
|
|
71
71
|
/>
|
|
72
72
|
|
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
:field="fields.branches"
|
|
77
77
|
:query="Query.define(branchOptions)"
|
|
78
78
|
:is-disabled="
|
|
79
|
-
values.
|
|
80
|
-
values.
|
|
81
|
-
values.
|
|
82
|
-
values.
|
|
83
|
-
values.
|
|
84
|
-
values.
|
|
79
|
+
values.statusStaff === 'raised' ||
|
|
80
|
+
values.statusStaff === 'processed' ||
|
|
81
|
+
values.statusStaff === 'approved' ||
|
|
82
|
+
values.statusStaff === 'monitored' ||
|
|
83
|
+
values.statusStaff === 'discontinued' ||
|
|
84
|
+
values.statusStaff === 'resolved'
|
|
85
85
|
"
|
|
86
86
|
/>
|
|
87
87
|
<OfficeRelation
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
:field="fields.type"
|
|
90
90
|
:query="Query.define(typeOptions)"
|
|
91
91
|
:is-disabled="
|
|
92
|
-
values.
|
|
93
|
-
values.
|
|
94
|
-
values.
|
|
95
|
-
values.
|
|
96
|
-
values.
|
|
97
|
-
values.
|
|
92
|
+
values.statusStaff === 'raised' ||
|
|
93
|
+
values.statusStaff === 'processed' ||
|
|
94
|
+
values.statusStaff === 'approved' ||
|
|
95
|
+
values.statusStaff === 'monitored' ||
|
|
96
|
+
values.statusStaff === 'discontinued' ||
|
|
97
|
+
values.statusStaff === 'resolved'
|
|
98
98
|
"
|
|
99
99
|
/>
|
|
100
100
|
</NeonFields>
|
|
@@ -107,12 +107,12 @@
|
|
|
107
107
|
:field="fields.submissionStaffs"
|
|
108
108
|
:query="Query.define(submissionStaffOptions)"
|
|
109
109
|
:is-disabled="
|
|
110
|
-
values.
|
|
111
|
-
values.
|
|
112
|
-
values.
|
|
113
|
-
values.
|
|
114
|
-
values.
|
|
115
|
-
values.
|
|
110
|
+
values.statusStaff === 'raised' ||
|
|
111
|
+
values.statusStaff === 'processed' ||
|
|
112
|
+
values.statusStaff === 'approved' ||
|
|
113
|
+
values.statusStaff === 'monitored' ||
|
|
114
|
+
values.statusStaff === 'discontinued' ||
|
|
115
|
+
values.statusStaff === 'resolved' ||
|
|
116
116
|
values.hasRaiseStaffIds?.length
|
|
117
117
|
? true
|
|
118
118
|
: false
|
|
@@ -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="
|
|
124
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
125
125
|
</div>
|
|
126
126
|
</div>
|
|
127
127
|
|
|
@@ -133,18 +133,18 @@
|
|
|
133
133
|
:field="fields.raiseStaffs"
|
|
134
134
|
:query="Query.define(roleStaffOptions)"
|
|
135
135
|
:is-disabled="
|
|
136
|
-
values.
|
|
137
|
-
values.
|
|
138
|
-
values.
|
|
139
|
-
values.
|
|
140
|
-
values.
|
|
141
|
-
values.
|
|
136
|
+
values.statusStaff === 'raised' ||
|
|
137
|
+
values.statusStaff === 'processed' ||
|
|
138
|
+
values.statusStaff === 'approved' ||
|
|
139
|
+
values.statusStaff === 'monitored' ||
|
|
140
|
+
values.statusStaff === 'discontinued' ||
|
|
141
|
+
values.statusStaff === 'resolved'
|
|
142
142
|
"
|
|
143
143
|
/>
|
|
144
144
|
</NeonFields>
|
|
145
145
|
</div>
|
|
146
146
|
<div class="ml-2 flex items-end pb-1">
|
|
147
|
-
<NeonCopy :size="'sm'" :value="
|
|
147
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
148
148
|
</div>
|
|
149
149
|
</div>
|
|
150
150
|
|
|
@@ -156,18 +156,18 @@
|
|
|
156
156
|
:field="fields.decideStaffs"
|
|
157
157
|
:query="Query.define(roleDecideStaffOptions)"
|
|
158
158
|
:is-disabled="
|
|
159
|
-
values.
|
|
160
|
-
values.
|
|
161
|
-
values.
|
|
162
|
-
values.
|
|
163
|
-
values.
|
|
164
|
-
values.
|
|
159
|
+
values.statusStaff === 'raised' ||
|
|
160
|
+
values.statusStaff === 'processed' ||
|
|
161
|
+
values.statusStaff === 'approved' ||
|
|
162
|
+
values.statusStaff === 'monitored' ||
|
|
163
|
+
values.statusStaff === 'discontinued' ||
|
|
164
|
+
values.statusStaff === 'resolved'
|
|
165
165
|
"
|
|
166
166
|
/>
|
|
167
167
|
</NeonFields>
|
|
168
168
|
</div>
|
|
169
169
|
<div class="ml-2 flex items-end pb-1">
|
|
170
|
-
<NeonCopy :size="'sm'" :value="
|
|
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="
|
|
184
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
|
|
@@ -189,12 +189,12 @@
|
|
|
189
189
|
v-model="values.specifications"
|
|
190
190
|
v-bind="fields.specifications"
|
|
191
191
|
:is-disabled="
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
values.statusStaff === 'raised' ||
|
|
193
|
+
values.statusStaff === 'processed' ||
|
|
194
|
+
values.statusStaff === 'approved' ||
|
|
195
|
+
values.statusStaff === 'monitored' ||
|
|
196
|
+
values.statusStaff === 'discontinued' ||
|
|
197
|
+
values.statusStaff === 'resolved'
|
|
198
198
|
"
|
|
199
199
|
/> -->
|
|
200
200
|
|
|
@@ -240,12 +240,12 @@
|
|
|
240
240
|
v-model="values.workingHours"
|
|
241
241
|
v-bind="fields.workingHours"
|
|
242
242
|
:is-disabled="
|
|
243
|
-
values.
|
|
244
|
-
values.
|
|
245
|
-
values.
|
|
246
|
-
values.
|
|
247
|
-
values.
|
|
248
|
-
values.
|
|
243
|
+
values.statusStaff === 'raised' ||
|
|
244
|
+
values.statusStaff === 'processed' ||
|
|
245
|
+
values.statusStaff === 'approved' ||
|
|
246
|
+
values.statusStaff === 'monitored' ||
|
|
247
|
+
values.statusStaff === 'discontinued' ||
|
|
248
|
+
values.statusStaff === 'resolved'
|
|
249
249
|
"
|
|
250
250
|
/>
|
|
251
251
|
|
|
@@ -303,12 +303,12 @@
|
|
|
303
303
|
<SubmissionDocumentTab
|
|
304
304
|
toolbar="side"
|
|
305
305
|
:is-readonly="
|
|
306
|
-
values.
|
|
307
|
-
values.
|
|
308
|
-
values.
|
|
309
|
-
values.
|
|
310
|
-
values.
|
|
311
|
-
values.
|
|
306
|
+
values.statusStaff === 'raised' ||
|
|
307
|
+
values.statusStaff === 'processed' ||
|
|
308
|
+
values.statusStaff === 'approved' ||
|
|
309
|
+
values.statusStaff === 'monitored' ||
|
|
310
|
+
values.statusStaff === 'discontinued' ||
|
|
311
|
+
values.statusStaff === 'resolved'
|
|
312
312
|
"
|
|
313
313
|
/>
|
|
314
314
|
</OfficeTabs>
|
|
@@ -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
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
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
|
|
|
@@ -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
|
|
|
@@ -5,7 +5,7 @@ import { NeonButton, NeonDivider } from '@neon.id/interfaces'
|
|
|
5
5
|
import { OfficeRelation, OfficeTab, OfficeTabs } from '@neon.id/office'
|
|
6
6
|
import { Query } from '@neon.id/query'
|
|
7
7
|
import { useOperasional } from '../../../common/providers/operasional'
|
|
8
|
-
import { computed, watch } from 'vue'
|
|
8
|
+
import { computed, watch, ref } from 'vue'
|
|
9
9
|
import { PromiseUtil } from '@neon.id/utils/promise'
|
|
10
10
|
import type {
|
|
11
11
|
TPersonaliaSubmissionModel,
|
|
@@ -140,41 +140,11 @@ const syncApproved = async () => {
|
|
|
140
140
|
window.location.href = '/pengajuan/waiting-decision-submission'
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
icon: 'brands:link',
|
|
149
|
-
linkStaff,
|
|
150
|
-
}
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
const copyDecision = computed(() => {
|
|
154
|
-
executeOne('', { submissionId: id.value })
|
|
155
|
-
const linkDecision = `${window.location.origin}/pengajuan/decision-submission/${id.value}`
|
|
156
|
-
return {
|
|
157
|
-
icon: 'brands:link',
|
|
158
|
-
linkDecision,
|
|
159
|
-
}
|
|
160
|
-
})
|
|
161
|
-
|
|
162
|
-
const copyRaise = computed(() => {
|
|
163
|
-
executeOne('', { submissionId: id.value })
|
|
164
|
-
const linkAudit = `${window.location.origin}/pengajuan/audit-submission/${id.value}`
|
|
165
|
-
return {
|
|
166
|
-
icon: 'brands:link',
|
|
167
|
-
linkAudit,
|
|
168
|
-
}
|
|
169
|
-
})
|
|
170
|
-
|
|
171
|
-
const copyFollowup = computed(() => {
|
|
172
|
-
executeOne('', { submissionId: id.value })
|
|
173
|
-
const linkFollowup = `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`
|
|
174
|
-
return {
|
|
175
|
-
icon: 'brands:link',
|
|
176
|
-
linkFollowup,
|
|
177
|
-
}
|
|
143
|
+
const copy = ref({
|
|
144
|
+
staff: `${window.location.origin}/pengajuan/staff-submission/${id.value}`,
|
|
145
|
+
decision: `${window.location.origin}/pengajuan/decision-submission/${id.value}`,
|
|
146
|
+
raise: `${window.location.origin}/pengajuan/audit-submission/${id.value}`,
|
|
147
|
+
followUp: `${window.location.origin}/pengajuan/follow-up-submission/${id.value}`,
|
|
178
148
|
})
|
|
179
149
|
</script>
|
|
180
150
|
|
|
@@ -196,7 +166,7 @@ const copyFollowup = computed(() => {
|
|
|
196
166
|
<NeonField v-if="isReady">
|
|
197
167
|
<template #input>
|
|
198
168
|
<NeonButton
|
|
199
|
-
size="
|
|
169
|
+
size="sm"
|
|
200
170
|
color="danger"
|
|
201
171
|
icon-left="circle-stop"
|
|
202
172
|
:is-disabled="
|
|
@@ -219,7 +189,7 @@ const copyFollowup = computed(() => {
|
|
|
219
189
|
<NeonField v-if="isReady">
|
|
220
190
|
<template #input>
|
|
221
191
|
<NeonButton
|
|
222
|
-
size="
|
|
192
|
+
size="sm"
|
|
223
193
|
color="success"
|
|
224
194
|
icon-left="list-check"
|
|
225
195
|
:is-disabled="
|
|
@@ -318,7 +288,7 @@ const copyFollowup = computed(() => {
|
|
|
318
288
|
</NeonFields>
|
|
319
289
|
</div>
|
|
320
290
|
<div class="ml-2 flex items-end pb-1">
|
|
321
|
-
<NeonCopy :size="'sm'" :value="
|
|
291
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
322
292
|
</div>
|
|
323
293
|
</div>
|
|
324
294
|
|
|
@@ -342,7 +312,7 @@ const copyFollowup = computed(() => {
|
|
|
342
312
|
</NeonFields>
|
|
343
313
|
</div>
|
|
344
314
|
<div class="ml-2 flex items-end pb-1">
|
|
345
|
-
<NeonCopy :size="'sm'" :value="
|
|
315
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
346
316
|
</div>
|
|
347
317
|
</div>
|
|
348
318
|
|
|
@@ -366,7 +336,7 @@ const copyFollowup = computed(() => {
|
|
|
366
336
|
</NeonFields>
|
|
367
337
|
</div>
|
|
368
338
|
<div class="ml-2 flex items-end pb-1">
|
|
369
|
-
<NeonCopy :size="'sm'" :value="
|
|
339
|
+
<NeonCopy :size="'sm'" :value="copy.decision" />
|
|
370
340
|
</div>
|
|
371
341
|
</div>
|
|
372
342
|
|
|
@@ -380,7 +350,7 @@ const copyFollowup = computed(() => {
|
|
|
380
350
|
</NeonFields>
|
|
381
351
|
</div>
|
|
382
352
|
<div class="ml-2 flex items-end pb-1">
|
|
383
|
-
<NeonCopy :size="'sm'" :value="
|
|
353
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
384
354
|
</div>
|
|
385
355
|
</div>
|
|
386
356
|
|
|
@@ -63,7 +63,11 @@ const { staff } = useOperasional()
|
|
|
63
63
|
})
|
|
64
64
|
"
|
|
65
65
|
/>
|
|
66
|
-
<OfficeRelation
|
|
66
|
+
<OfficeRelation
|
|
67
|
+
v-model="values"
|
|
68
|
+
:field="fields.stages"
|
|
69
|
+
:filter="{ status: 'published' }"
|
|
70
|
+
/>
|
|
67
71
|
</NeonFields>
|
|
68
72
|
|
|
69
73
|
<NeonFields md="grid-cols-2">
|
|
@@ -64,7 +64,11 @@ const { staff } = useOperasional()
|
|
|
64
64
|
})
|
|
65
65
|
"
|
|
66
66
|
/>
|
|
67
|
-
<OfficeRelation
|
|
67
|
+
<OfficeRelation
|
|
68
|
+
v-model="values"
|
|
69
|
+
:field="fields.stages"
|
|
70
|
+
:filter="{ status: 'published' }"
|
|
71
|
+
/>
|
|
68
72
|
</NeonFields>
|
|
69
73
|
|
|
70
74
|
<NeonFields md="grid-cols-2">
|
|
@@ -172,7 +172,7 @@ const syncCanceled = async () => {
|
|
|
172
172
|
<NeonField v-if="isReady">
|
|
173
173
|
<template #input>
|
|
174
174
|
<NeonButton
|
|
175
|
-
size="
|
|
175
|
+
size="sm"
|
|
176
176
|
color="success"
|
|
177
177
|
icon-left="check"
|
|
178
178
|
:is-disabled="isNew || isChanged"
|
|
@@ -186,7 +186,7 @@ const syncCanceled = async () => {
|
|
|
186
186
|
<NeonField v-if="isReady">
|
|
187
187
|
<template #input>
|
|
188
188
|
<NeonButton
|
|
189
|
-
size="
|
|
189
|
+
size="sm"
|
|
190
190
|
color="warning"
|
|
191
191
|
icon-left="ban"
|
|
192
192
|
:is-disabled="isNew || isChanged"
|
|
@@ -200,7 +200,7 @@ const syncCanceled = async () => {
|
|
|
200
200
|
<NeonField v-if="isReady">
|
|
201
201
|
<template #input>
|
|
202
202
|
<NeonButton
|
|
203
|
-
size="
|
|
203
|
+
size="sm"
|
|
204
204
|
color="info"
|
|
205
205
|
icon-left="file-pen"
|
|
206
206
|
:is-disabled="isNew || isChanged"
|