@neutron.co.id/operasional-interfaces 1.17.8-beta.1 → 1.17.10-beta.1
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/config.mjs +9 -0
- package/build/@office/models/personalia/attendanceType/AttendanceTypeSingle/AttendanceTypeSingle.vue +5 -1
- package/build/@office/models/personalia/index.d.ts +3 -0
- package/build/@office/models/personalia/index.mjs +3 -0
- package/build/@office/models/personalia/leaveConflict/LeaveConflictCollection/LeaveConflictCollection.vue +29 -0
- package/build/@office/models/personalia/leaveConflict/LeaveConflictCollection/index.d.ts +1 -0
- package/build/@office/models/personalia/leaveConflict/LeaveConflictCollection/index.mjs +1 -0
- package/build/@office/models/personalia/leaveConflict/LeaveConflictSingle/LeaveConflictSingle.vue +49 -0
- package/build/@office/models/personalia/leaveConflict/LeaveConflictSingle/index.d.ts +1 -0
- package/build/@office/models/personalia/leaveConflict/LeaveConflictSingle/index.mjs +1 -0
- package/build/@office/models/personalia/leaveConflict/index.d.ts +2 -0
- package/build/@office/models/personalia/leaveConflict/index.mjs +2 -0
- package/build/@office/models/personalia/leaveQuota/LeaveQuotaCollection/LeaveQuotaCollection.vue +24 -0
- package/build/@office/models/personalia/leaveQuota/LeaveQuotaCollection/index.d.ts +1 -0
- package/build/@office/models/personalia/leaveQuota/LeaveQuotaCollection/index.mjs +1 -0
- package/build/@office/models/personalia/leaveQuota/LeaveQuotaSingle/LeaveQuotaSingle.vue +198 -0
- package/build/@office/models/personalia/leaveQuota/LeaveQuotaSingle/index.d.ts +2 -0
- package/build/@office/models/personalia/leaveQuota/LeaveQuotaSingle/index.mjs +2 -0
- package/build/@office/models/personalia/leaveQuota/index.d.ts +2 -0
- package/build/@office/models/personalia/leaveQuota/index.mjs +2 -0
- package/build/@office/models/personalia/leaveStaff/LeaveStaffCollection/LeaveStaffCollection.vue +23 -0
- package/build/@office/models/personalia/leaveStaff/LeaveStaffCollection/index.d.ts +1 -0
- package/build/@office/models/personalia/leaveStaff/LeaveStaffCollection/index.mjs +1 -0
- package/build/@office/models/personalia/leaveStaff/LeaveStaffSingle/LeaveStaffSingle.vue +49 -0
- package/build/@office/models/personalia/leaveStaff/LeaveStaffSingle/index.d.ts +1 -0
- package/build/@office/models/personalia/leaveStaff/LeaveStaffSingle/index.mjs +1 -0
- package/build/@office/models/personalia/leaveStaff/index.d.ts +2 -0
- package/build/@office/models/personalia/leaveStaff/index.mjs +2 -0
- package/build/@package/@office/models/personalia/index.d.ts +3 -0
- package/build/@package/@office/models/personalia/leaveConflict/LeaveConflictCollection/LeaveConflictCollection.vue.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveConflict/LeaveConflictCollection/index.d.ts +1 -0
- package/build/@package/@office/models/personalia/leaveConflict/LeaveConflictSingle/LeaveConflictSingle.vue.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveConflict/LeaveConflictSingle/index.d.ts +1 -0
- package/build/@package/@office/models/personalia/leaveConflict/index.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveQuota/LeaveQuotaCollection/LeaveQuotaCollection.vue.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveQuota/LeaveQuotaCollection/index.d.ts +1 -0
- package/build/@package/@office/models/personalia/leaveQuota/LeaveQuotaSingle/LeaveQuotaSingle.vue.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveQuota/LeaveQuotaSingle/index.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveQuota/index.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveStaff/LeaveStaffCollection/LeaveStaffCollection.vue.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveStaff/LeaveStaffCollection/index.d.ts +1 -0
- package/build/@package/@office/models/personalia/leaveStaff/LeaveStaffSingle/LeaveStaffSingle.vue.d.ts +2 -0
- package/build/@package/@office/models/personalia/leaveStaff/LeaveStaffSingle/index.d.ts +1 -0
- package/build/@package/@office/models/personalia/leaveStaff/index.d.ts +2 -0
- package/build/mock/index.cjs +561 -191
- package/build/mock/index.mjs +561 -191
- package/build/mock/style.css +1 -1
- package/build/module.json +1 -1
- package/build/nuxt.json +1 -1
- package/build/nuxt.mjs +9 -0
- package/package.json +4 -4
package/build/@office/config.mjs
CHANGED
|
@@ -16,6 +16,15 @@ export const config = OfficeInterfaces.define({
|
|
|
16
16
|
// Attendance Type
|
|
17
17
|
"AttendanceTypeCollection",
|
|
18
18
|
"AttendanceTypeSingle",
|
|
19
|
+
// Leave Quota
|
|
20
|
+
"LeaveQuotaCollection",
|
|
21
|
+
"LeaveQuotaSingle",
|
|
22
|
+
// Leave Staff
|
|
23
|
+
"LeaveStaffCollection",
|
|
24
|
+
"LeaveStaffSingle",
|
|
25
|
+
// Leave Conflict
|
|
26
|
+
"LeaveConflictCollection",
|
|
27
|
+
"LeaveConflictSingle",
|
|
19
28
|
// Check In
|
|
20
29
|
"CheckInCollection",
|
|
21
30
|
"CheckInSingle",
|
package/build/@office/models/personalia/attendanceType/AttendanceTypeSingle/AttendanceTypeSingle.vue
CHANGED
|
@@ -22,7 +22,11 @@ const {
|
|
|
22
22
|
const toast = useToast()
|
|
23
23
|
|
|
24
24
|
async function saveCheck() {
|
|
25
|
-
if (
|
|
25
|
+
if (
|
|
26
|
+
initialValues.value.code === '' ||
|
|
27
|
+
values.value.code === '' ||
|
|
28
|
+
!values.value.code
|
|
29
|
+
) {
|
|
26
30
|
toast.push({
|
|
27
31
|
id: 'neu:attendance-type:code',
|
|
28
32
|
icon: 'warning',
|
|
@@ -17,3 +17,6 @@ export * from "./task/index.mjs";
|
|
|
17
17
|
export * from "./shift/index.mjs";
|
|
18
18
|
export * from "./shiftType/index.mjs";
|
|
19
19
|
export * from "./shiftStaff/index.mjs";
|
|
20
|
+
export * from "./leaveQuota/index.mjs";
|
|
21
|
+
export * from "./leaveStaff/index.mjs";
|
|
22
|
+
export * from "./leaveConflict/index.mjs";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { NeonCollection, useCollection } from '@neon.id/context'
|
|
3
|
+
import { OfficeCollectionTable } from '@neon.id/office'
|
|
4
|
+
import type {
|
|
5
|
+
Schema,
|
|
6
|
+
TPersonaliaLeaveConflictModel,
|
|
7
|
+
} from '@neutron.co.id/personalia-models'
|
|
8
|
+
|
|
9
|
+
defineOptions({ name: 'LeaveConflictCollection' })
|
|
10
|
+
|
|
11
|
+
const { userQuery } = useCollection<
|
|
12
|
+
Schema.LeaveConflict,
|
|
13
|
+
TPersonaliaLeaveConflictModel
|
|
14
|
+
>()
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<NeonCollection class="neu-leave-conlfict-collection">
|
|
19
|
+
<OfficeCollectionTable
|
|
20
|
+
:freeze="1"
|
|
21
|
+
:bulk="{ update: 'updateMany' }"
|
|
22
|
+
use-bulk
|
|
23
|
+
use-select
|
|
24
|
+
size="lg"
|
|
25
|
+
/>
|
|
26
|
+
</NeonCollection>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<style scoped></style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveConflictCollection } from './LeaveConflictCollection.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveConflictCollection } from "./LeaveConflictCollection.vue";
|
package/build/@office/models/personalia/leaveConflict/LeaveConflictSingle/LeaveConflictSingle.vue
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { OfficeCollectionRelated, OfficeTab } from '@neon.id/office'
|
|
3
|
+
import { Query } from '@neon.id/query'
|
|
4
|
+
import { useSingle } from '@neon.id/context'
|
|
5
|
+
import type {
|
|
6
|
+
Schema,
|
|
7
|
+
TPersonaliaLeaveConflictModel,
|
|
8
|
+
} from '@neutron.co.id/personalia-models'
|
|
9
|
+
|
|
10
|
+
const { isReady, isNew } = useSingle<
|
|
11
|
+
Schema.LeaveConflict,
|
|
12
|
+
TPersonaliaLeaveConflictModel
|
|
13
|
+
>()
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<OfficeTab
|
|
18
|
+
v-if="!isNew"
|
|
19
|
+
handle="konflik"
|
|
20
|
+
icon="circle-exclamation"
|
|
21
|
+
title="Konflik Karyawan"
|
|
22
|
+
>
|
|
23
|
+
<OfficeCollectionRelated
|
|
24
|
+
definition="neu:personalia:leaveConflict"
|
|
25
|
+
title="Konlfik Cuti Karyawan"
|
|
26
|
+
:query="
|
|
27
|
+
Query.define({
|
|
28
|
+
sort: {
|
|
29
|
+
handle: 'startedAt',
|
|
30
|
+
direction: 'ascending',
|
|
31
|
+
},
|
|
32
|
+
})
|
|
33
|
+
"
|
|
34
|
+
:is-ready="isReady"
|
|
35
|
+
:columns="[
|
|
36
|
+
'staff',
|
|
37
|
+
'leaveQuotaOldName',
|
|
38
|
+
'leaveQuotaOld',
|
|
39
|
+
'leaveQuotaNewName',
|
|
40
|
+
'leaveQuotaNew',
|
|
41
|
+
]"
|
|
42
|
+
:sorts="['startedAt', 'createdAt', 'updatedAt']"
|
|
43
|
+
:filters="['staff']"
|
|
44
|
+
>
|
|
45
|
+
</OfficeCollectionRelated>
|
|
46
|
+
</OfficeTab>
|
|
47
|
+
</template>
|
|
48
|
+
|
|
49
|
+
<style></style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveConflictSingle } from './LeaveConflictSingle.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveConflictSingle } from "./LeaveConflictSingle.vue";
|
package/build/@office/models/personalia/leaveQuota/LeaveQuotaCollection/LeaveQuotaCollection.vue
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { NeonCollection, useCollection } from '@neon.id/context'
|
|
3
|
+
import { OfficeCollectionTable } from '@neon.id/office'
|
|
4
|
+
import { NeonAlert } from '@neon.id/interfaces'
|
|
5
|
+
import type {
|
|
6
|
+
Schema,
|
|
7
|
+
TPersonaliaLeaveQuotaModel,
|
|
8
|
+
} from '@neutron.co.id/personalia-models'
|
|
9
|
+
|
|
10
|
+
defineOptions({ name: 'LeaveQuotaCollection' })
|
|
11
|
+
|
|
12
|
+
const { userQuery } = useCollection<
|
|
13
|
+
Schema.LeaveQuota,
|
|
14
|
+
TPersonaliaLeaveQuotaModel
|
|
15
|
+
>()
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<NeonCollection class="neu-leave-quota-collection">
|
|
20
|
+
<OfficeCollectionTable />
|
|
21
|
+
</NeonCollection>
|
|
22
|
+
</template>
|
|
23
|
+
|
|
24
|
+
<style scoped></style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveQuotaCollection } from './LeaveQuotaCollection.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveQuotaCollection } from "./LeaveQuotaCollection.vue";
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { NeonSingle, GraphUtil, useSingle } from '@neon.id/context'
|
|
3
|
+
import {
|
|
4
|
+
OfficeCollectionRelated,
|
|
5
|
+
OfficeRelation,
|
|
6
|
+
OfficeTab,
|
|
7
|
+
OfficeTabs,
|
|
8
|
+
} from '@neon.id/office'
|
|
9
|
+
import {
|
|
10
|
+
type Schema,
|
|
11
|
+
type TPersonaliaLeaveQuotaModel,
|
|
12
|
+
} from '@neutron.co.id/personalia-models'
|
|
13
|
+
import { NeonAlert, useToast, NeonButton } from '@neon.id/interfaces'
|
|
14
|
+
import { NeonField, NeonForm } from '@neon.id/form'
|
|
15
|
+
import { useClientHandle } from '@urql/vue'
|
|
16
|
+
import { ref } from 'vue'
|
|
17
|
+
import { Query } from '@neon.id/query'
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
fields,
|
|
21
|
+
initialValues,
|
|
22
|
+
values,
|
|
23
|
+
isLoading,
|
|
24
|
+
isChanged,
|
|
25
|
+
isMain,
|
|
26
|
+
isNew,
|
|
27
|
+
saveOne,
|
|
28
|
+
discardChanges,
|
|
29
|
+
syncOne,
|
|
30
|
+
executeOne,
|
|
31
|
+
} = useSingle<Schema.LeaveQuota, TPersonaliaLeaveQuotaModel>()
|
|
32
|
+
|
|
33
|
+
const toast = useToast()
|
|
34
|
+
const responseState = ref()
|
|
35
|
+
const { client } = useClientHandle()
|
|
36
|
+
|
|
37
|
+
function getNotified() {
|
|
38
|
+
if (responseState.value === 'leaveStaffGenerated') {
|
|
39
|
+
toast.push({
|
|
40
|
+
id: 'generate:leaveQuota',
|
|
41
|
+
content: 'Successfully generated leave quota.',
|
|
42
|
+
color: 'success',
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const handleSyncReport = async () => {
|
|
48
|
+
console.info(values)
|
|
49
|
+
const generateLeave = await executeOne('generateLeave', {
|
|
50
|
+
nameLeave: initialValues.value.nameLeave,
|
|
51
|
+
nameStaffs: initialValues.value.nameStaffs,
|
|
52
|
+
typeLeave: initialValues.value.typeLeave,
|
|
53
|
+
leaveQuota: initialValues.value.leaveQuota,
|
|
54
|
+
startedAt: initialValues.value.startedAt,
|
|
55
|
+
endedAt: initialValues.value.endedAt,
|
|
56
|
+
branches: initialValues.value.branches,
|
|
57
|
+
conflictResolved: false,
|
|
58
|
+
leaveQuotaId: values.value.id,
|
|
59
|
+
})
|
|
60
|
+
values.value.hasConflict =
|
|
61
|
+
generateLeave.data.executeLeaveQuota.output.hasConflict
|
|
62
|
+
return generateLeave
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function saveData() {
|
|
66
|
+
console.info('clicked')
|
|
67
|
+
console.info('clicked2')
|
|
68
|
+
await executeOne('generateLeave', {
|
|
69
|
+
nameLeave: initialValues.value.nameLeave,
|
|
70
|
+
nameStaffs: initialValues.value.nameStaffs,
|
|
71
|
+
typeLeave: initialValues.value.typeLeave,
|
|
72
|
+
leaveQuota: initialValues.value.leaveQuota,
|
|
73
|
+
startedAt: initialValues.value.startedAt,
|
|
74
|
+
endedAt: initialValues.value.endedAt,
|
|
75
|
+
branches: initialValues.value.branches,
|
|
76
|
+
})
|
|
77
|
+
console.info('clicked3')
|
|
78
|
+
await saveOne()
|
|
79
|
+
await getNotified()
|
|
80
|
+
await syncOne()
|
|
81
|
+
}
|
|
82
|
+
</script>
|
|
83
|
+
|
|
84
|
+
<template>
|
|
85
|
+
<NeonSingle>
|
|
86
|
+
<OfficeTabs>
|
|
87
|
+
<OfficeTab handle="info" icon="circle-info" title="Info">
|
|
88
|
+
<NeonForm
|
|
89
|
+
handle="info"
|
|
90
|
+
:initial-values="initialValues"
|
|
91
|
+
:is-loading="isLoading"
|
|
92
|
+
:is-changed="isChanged"
|
|
93
|
+
use-unsaved
|
|
94
|
+
@cancel="discardChanges"
|
|
95
|
+
@submit="saveData"
|
|
96
|
+
>
|
|
97
|
+
<NeonAlert
|
|
98
|
+
icon="circle-exclamation"
|
|
99
|
+
title="Konflik Karyawan!."
|
|
100
|
+
description="Ada data karyawan yang dipilih sudah ada didata Kuota Cuti lainnya. Silahkan hapus data karyawan dan pilih karyawan lainnya."
|
|
101
|
+
color="warning"
|
|
102
|
+
/>
|
|
103
|
+
<NeonButton
|
|
104
|
+
label="Simpan"
|
|
105
|
+
color="primary"
|
|
106
|
+
@click="handleSyncReport"
|
|
107
|
+
/>
|
|
108
|
+
<NeonField v-model="values.nameLeave" v-bind="fields.nameLeave" />
|
|
109
|
+
<OfficeRelation v-model="values" :field="fields.branches" />
|
|
110
|
+
<OfficeRelation v-model="values" :field="fields.typeLeave" />
|
|
111
|
+
<OfficeRelation v-model="values" :field="fields.nameStaffs" />
|
|
112
|
+
<NeonField v-model="values.leaveQuota" v-bind="fields.leaveQuota" />
|
|
113
|
+
<NeonField v-model="values.startedAt" v-bind="fields.startedAt" />
|
|
114
|
+
<NeonField v-model="values.endedAt" v-bind="fields.endedAt" />
|
|
115
|
+
<NeonField v-model="values.note" v-bind="fields.note" />
|
|
116
|
+
</NeonForm>
|
|
117
|
+
</OfficeTab>
|
|
118
|
+
|
|
119
|
+
<!-- Cuti Karyawan-->
|
|
120
|
+
<OfficeTab
|
|
121
|
+
v-if="!isNew && !values.hasConflict"
|
|
122
|
+
handle="cutiKaryawan"
|
|
123
|
+
icon="house-person-leave"
|
|
124
|
+
title="Cuti Karyawan"
|
|
125
|
+
>
|
|
126
|
+
<OfficeCollectionRelated
|
|
127
|
+
definition="neu:personalia:leaveStaff"
|
|
128
|
+
title="Cuti Karyawan"
|
|
129
|
+
:query="
|
|
130
|
+
Query.define({
|
|
131
|
+
filter: {
|
|
132
|
+
leaveQuotaStaffId: values.id,
|
|
133
|
+
},
|
|
134
|
+
sort: {
|
|
135
|
+
handle: 'startedAt',
|
|
136
|
+
direction: 'ascending',
|
|
137
|
+
},
|
|
138
|
+
})
|
|
139
|
+
"
|
|
140
|
+
:excludes="['click']"
|
|
141
|
+
:columns="[
|
|
142
|
+
'staff',
|
|
143
|
+
'typeLeave',
|
|
144
|
+
'leaveQuota',
|
|
145
|
+
'startedAt',
|
|
146
|
+
'endedAt',
|
|
147
|
+
]"
|
|
148
|
+
:sorts="['startedAt', 'createdAt', 'updatedAt']"
|
|
149
|
+
:filters="['staff']"
|
|
150
|
+
>
|
|
151
|
+
</OfficeCollectionRelated>
|
|
152
|
+
</OfficeTab>
|
|
153
|
+
|
|
154
|
+
<OfficeTab
|
|
155
|
+
v-if="!isNew && values.hasConflict"
|
|
156
|
+
handle="konflik"
|
|
157
|
+
icon="circle-exclamation"
|
|
158
|
+
title="Konflik Karyawan"
|
|
159
|
+
>
|
|
160
|
+
<NeonAlert
|
|
161
|
+
icon="circle-exclamation"
|
|
162
|
+
title="Perhatian!"
|
|
163
|
+
description="Selesaikan konflik yang terjadi di kuota cuti."
|
|
164
|
+
color="warning"
|
|
165
|
+
/>
|
|
166
|
+
<OfficeCollectionRelated
|
|
167
|
+
definition="neu:personalia:leaveConflict"
|
|
168
|
+
title="Konlfik Cuti Karyawan"
|
|
169
|
+
:query="
|
|
170
|
+
Query.define({
|
|
171
|
+
filter: {
|
|
172
|
+
leaveConflictId: values.id,
|
|
173
|
+
},
|
|
174
|
+
sort: {
|
|
175
|
+
handle: 'startedAt',
|
|
176
|
+
direction: 'ascending',
|
|
177
|
+
},
|
|
178
|
+
})
|
|
179
|
+
"
|
|
180
|
+
use-bulk
|
|
181
|
+
:excludes="['click']"
|
|
182
|
+
:columns="[
|
|
183
|
+
'staff',
|
|
184
|
+
'leaveQuotaOldName',
|
|
185
|
+
'leaveQuotaOld',
|
|
186
|
+
'leaveQuotaNewName',
|
|
187
|
+
'leaveQuotaNew',
|
|
188
|
+
]"
|
|
189
|
+
:sorts="['startedAt', 'createdAt', 'updatedAt']"
|
|
190
|
+
:filters="['staff']"
|
|
191
|
+
>
|
|
192
|
+
</OfficeCollectionRelated>
|
|
193
|
+
</OfficeTab>
|
|
194
|
+
</OfficeTabs>
|
|
195
|
+
</NeonSingle>
|
|
196
|
+
</template>
|
|
197
|
+
|
|
198
|
+
<style></style>
|
package/build/@office/models/personalia/leaveStaff/LeaveStaffCollection/LeaveStaffCollection.vue
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { NeonCollection, useCollection } from '@neon.id/context'
|
|
3
|
+
import { OfficeCollectionTable } from '@neon.id/office'
|
|
4
|
+
import type {
|
|
5
|
+
Schema,
|
|
6
|
+
TPersonaliaLeaveStaffModel,
|
|
7
|
+
} from '@neutron.co.id/personalia-models'
|
|
8
|
+
|
|
9
|
+
defineOptions({ name: 'LeaveStaffCollection' })
|
|
10
|
+
|
|
11
|
+
const { userQuery } = useCollection<
|
|
12
|
+
Schema.LeaveStaff,
|
|
13
|
+
TPersonaliaLeaveStaffModel
|
|
14
|
+
>()
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<NeonCollection class="neu-leave-staff-collection">
|
|
19
|
+
<OfficeCollectionTable />
|
|
20
|
+
</NeonCollection>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<style scoped></style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveStaffCollection } from './LeaveStaffCollection.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveStaffCollection } from "./LeaveStaffCollection.vue";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { Query } from '@neon.id/query'
|
|
3
|
+
import { useSingle } from '@neon.id/context'
|
|
4
|
+
import { OfficeTab, OfficeCollectionRelated } from '@neon.id/office'
|
|
5
|
+
import {
|
|
6
|
+
type Schema,
|
|
7
|
+
type TPersonaliaLeaveStaffModel,
|
|
8
|
+
} from '@neutron.co.id/personalia-models'
|
|
9
|
+
|
|
10
|
+
const { isReady, isNew } = useSingle<
|
|
11
|
+
Schema.LeaveStaff,
|
|
12
|
+
TPersonaliaLeaveStaffModel
|
|
13
|
+
>()
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<OfficeTab
|
|
18
|
+
v-if="!isNew"
|
|
19
|
+
handle="cutiKaryawan"
|
|
20
|
+
icon="house-person-leave"
|
|
21
|
+
title="Cuti Karyawan"
|
|
22
|
+
>
|
|
23
|
+
<OfficeCollectionRelated
|
|
24
|
+
definition="neu:personalia:leaveStaff"
|
|
25
|
+
title="Cuti Karyawan"
|
|
26
|
+
:query="
|
|
27
|
+
Query.define({
|
|
28
|
+
sort: {
|
|
29
|
+
handle: 'startedAt',
|
|
30
|
+
direction: 'ascending',
|
|
31
|
+
},
|
|
32
|
+
})
|
|
33
|
+
"
|
|
34
|
+
:columns="[
|
|
35
|
+
'startedAt',
|
|
36
|
+
'endedAt',
|
|
37
|
+
'staff',
|
|
38
|
+
'leaveQuota',
|
|
39
|
+
'typeLeave',
|
|
40
|
+
'branches',
|
|
41
|
+
]"
|
|
42
|
+
:sorts="['startedAt', 'createdAt', 'updatedAt']"
|
|
43
|
+
:filters="['staff']"
|
|
44
|
+
>
|
|
45
|
+
</OfficeCollectionRelated>
|
|
46
|
+
</OfficeTab>
|
|
47
|
+
</template>
|
|
48
|
+
|
|
49
|
+
<style></style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveStaffSingle } from './LeaveStaffSingle.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveStaffSingle } from "./LeaveStaffSingle.vue";
|
package/build/@package/@office/models/personalia/leaveConflict/LeaveConflictCollection/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveConflictCollection } from './LeaveConflictCollection.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveConflictSingle } from './LeaveConflictSingle.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveQuotaCollection } from './LeaveQuotaCollection.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveStaffCollection } from './LeaveStaffCollection.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LeaveStaffSingle } from './LeaveStaffSingle.vue';
|