@finema/finework-layer 0.2.87 → 0.2.88
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/CHANGELOG.md +6 -0
- package/app/components/PortalApp.vue +114 -38
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.88](https://gitlab.finema.co/finema/finework/finework-frontend-layer/compare/0.2.87...0.2.88) (2025-12-17)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* portalapp ([f267603](https://gitlab.finema.co/finema/finework/finework-frontend-layer/commit/f2676038b1aaf443ff5111cacfbf2e348e3f98eb))
|
|
8
|
+
|
|
3
9
|
## [0.2.87](https://gitlab.finema.co/finema/finework/finework-frontend-layer/compare/0.2.86...0.2.87) (2025-12-17)
|
|
4
10
|
|
|
5
11
|
## [0.2.86](https://gitlab.finema.co/finema/finework/finework-frontend-layer/compare/0.2.85...0.2.86) (2025-12-16)
|
|
@@ -29,8 +29,19 @@
|
|
|
29
29
|
v-for="app in managementApps"
|
|
30
30
|
:key="app.name"
|
|
31
31
|
:to="app.to"
|
|
32
|
-
class="
|
|
32
|
+
:class="[
|
|
33
|
+
'relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]',
|
|
34
|
+
app.status === 'developing'
|
|
35
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
36
|
+
: 'bg-gray-100',
|
|
37
|
+
]"
|
|
33
38
|
>
|
|
39
|
+
<div
|
|
40
|
+
v-if="app.status === 'developing'"
|
|
41
|
+
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
42
|
+
>
|
|
43
|
+
กำลังพัฒนา
|
|
44
|
+
</div>
|
|
34
45
|
<img
|
|
35
46
|
:src="app.logo"
|
|
36
47
|
:alt="app.label"
|
|
@@ -50,13 +61,24 @@
|
|
|
50
61
|
<div class="text-lg font-bold text-gray-600">
|
|
51
62
|
Finance
|
|
52
63
|
</div>
|
|
53
|
-
|
|
54
64
|
<NuxtLink
|
|
55
65
|
v-for="app in financeApps"
|
|
56
66
|
:key="app.name"
|
|
57
67
|
:to="app.to"
|
|
58
|
-
class="
|
|
68
|
+
:class="[
|
|
69
|
+
'relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]',
|
|
70
|
+
app.status === 'developing'
|
|
71
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
72
|
+
: 'bg-gray-100',
|
|
73
|
+
]"
|
|
59
74
|
>
|
|
75
|
+
<div
|
|
76
|
+
v-if="app.status === 'developing'"
|
|
77
|
+
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
78
|
+
>
|
|
79
|
+
กำลังพัฒนา
|
|
80
|
+
</div>
|
|
81
|
+
|
|
60
82
|
<img
|
|
61
83
|
:src="app.logo"
|
|
62
84
|
:alt="app.label"
|
|
@@ -81,8 +103,19 @@
|
|
|
81
103
|
v-for="app in peopleApps"
|
|
82
104
|
:key="app.name"
|
|
83
105
|
:to="app.to"
|
|
84
|
-
class="
|
|
106
|
+
:class="[
|
|
107
|
+
'relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]',
|
|
108
|
+
app.status === 'developing'
|
|
109
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
110
|
+
: 'bg-gray-100',
|
|
111
|
+
]"
|
|
85
112
|
>
|
|
113
|
+
<div
|
|
114
|
+
v-if="app.status === 'developing'"
|
|
115
|
+
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
116
|
+
>
|
|
117
|
+
กำลังพัฒนา
|
|
118
|
+
</div>
|
|
86
119
|
<img
|
|
87
120
|
:src="app.logo"
|
|
88
121
|
:alt="app.label"
|
|
@@ -107,8 +140,19 @@
|
|
|
107
140
|
v-for="app in legalApps"
|
|
108
141
|
:key="app.name"
|
|
109
142
|
:to="app.to"
|
|
110
|
-
class="
|
|
143
|
+
:class="[
|
|
144
|
+
'relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]',
|
|
145
|
+
app.status === 'developing'
|
|
146
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
147
|
+
: 'bg-gray-100',
|
|
148
|
+
]"
|
|
111
149
|
>
|
|
150
|
+
<div
|
|
151
|
+
v-if="app.status === 'developing'"
|
|
152
|
+
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
153
|
+
>
|
|
154
|
+
กำลังพัฒนา
|
|
155
|
+
</div>
|
|
112
156
|
<img
|
|
113
157
|
:src="app.logo"
|
|
114
158
|
:alt="app.label"
|
|
@@ -130,6 +174,10 @@ defineProps<{
|
|
|
130
174
|
}>()
|
|
131
175
|
|
|
132
176
|
const auth = useAuth()
|
|
177
|
+
const enum StatusPortal {
|
|
178
|
+
ACTIVE = 'active',
|
|
179
|
+
DEVELOPING = 'developing',
|
|
180
|
+
}
|
|
133
181
|
const managementApps = computed(() => [
|
|
134
182
|
...(auth.hasPermission(
|
|
135
183
|
UserModule.PMO,
|
|
@@ -144,20 +192,18 @@ const managementApps = computed(() => [
|
|
|
144
192
|
label: 'PMO',
|
|
145
193
|
description: 'จัดระเบียบและบริหารโครงการของคุณ',
|
|
146
194
|
to: routes.pmo.project.projects.to,
|
|
195
|
+
status: StatusPortal.ACTIVE,
|
|
147
196
|
},
|
|
148
197
|
]
|
|
149
198
|
: []),
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
// },
|
|
159
|
-
// ]
|
|
160
|
-
// : []),
|
|
199
|
+
{
|
|
200
|
+
name: 'Requests',
|
|
201
|
+
logo: '/admin/request-admin.png',
|
|
202
|
+
label: 'Requests',
|
|
203
|
+
description: 'จัดการคำขอ',
|
|
204
|
+
to: '/',
|
|
205
|
+
status: StatusPortal.DEVELOPING,
|
|
206
|
+
},
|
|
161
207
|
...(auth.hasPermission(UserModule.CHECKIN, Permission.ADMIN)
|
|
162
208
|
? [
|
|
163
209
|
{
|
|
@@ -166,6 +212,7 @@ const managementApps = computed(() => [
|
|
|
166
212
|
label: 'Clock-in Report',
|
|
167
213
|
description: 'รายงานการลงเวลา',
|
|
168
214
|
to: routes.adminClockin.checkinDashboard.to,
|
|
215
|
+
status: StatusPortal.ACTIVE,
|
|
169
216
|
},
|
|
170
217
|
]
|
|
171
218
|
: []),
|
|
@@ -178,6 +225,7 @@ const managementApps = computed(() => [
|
|
|
178
225
|
label: 'Timesheet Report',
|
|
179
226
|
description: 'รายงานการบันทึกข้อมูลไทม์ชีท',
|
|
180
227
|
to: routes.adminTimesheet.summaryReport.to,
|
|
228
|
+
status: StatusPortal.ACTIVE,
|
|
181
229
|
},
|
|
182
230
|
]
|
|
183
231
|
: []),
|
|
@@ -189,6 +237,7 @@ const managementApps = computed(() => [
|
|
|
189
237
|
label: 'TODO',
|
|
190
238
|
description: 'ระบบจัดการงานที่ต้องทำ',
|
|
191
239
|
to: routes.todo.dashboard.to,
|
|
240
|
+
status: StatusPortal.ACTIVE,
|
|
192
241
|
},
|
|
193
242
|
]
|
|
194
243
|
: []),
|
|
@@ -196,17 +245,16 @@ const managementApps = computed(() => [
|
|
|
196
245
|
])
|
|
197
246
|
|
|
198
247
|
const financeApps = computed(() => [
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
// : []),
|
|
248
|
+
|
|
249
|
+
{
|
|
250
|
+
name: 'eFactoring',
|
|
251
|
+
logo: '/admin/efactoring.png',
|
|
252
|
+
label: 'eFactoring',
|
|
253
|
+
description: 'การเบิกเงินหมุนเวียนกับธนาคาร',
|
|
254
|
+
to: '/',
|
|
255
|
+
status: StatusPortal.DEVELOPING,
|
|
256
|
+
},
|
|
257
|
+
|
|
210
258
|
...(auth.hasPermission(UserModule.COSTSHEET, Permission.USER, Permission.ADMIN)
|
|
211
259
|
? [
|
|
212
260
|
{
|
|
@@ -215,20 +263,20 @@ const financeApps = computed(() => [
|
|
|
215
263
|
label: 'Cost Sheet',
|
|
216
264
|
description: 'รายรับรายจ่ายงบประมาณโครงการ',
|
|
217
265
|
to: routes.costSheet.overview.to,
|
|
266
|
+
status: StatusPortal.ACTIVE,
|
|
218
267
|
},
|
|
219
268
|
]
|
|
220
269
|
: []),
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
// : []),
|
|
270
|
+
|
|
271
|
+
{
|
|
272
|
+
name: 'Guarantee',
|
|
273
|
+
logo: '/admin/cost-sheet.png',
|
|
274
|
+
label: 'งบค้ำประกัน',
|
|
275
|
+
description: 'การเบิกเงินค้ำซองและค้ำสัญญากับธนาคาร',
|
|
276
|
+
to: '/',
|
|
277
|
+
status: StatusPortal.DEVELOPING,
|
|
278
|
+
},
|
|
279
|
+
|
|
232
280
|
...(auth.hasPermission(UserModule.QUOTATION, Permission.USER, Permission.ADMIN)
|
|
233
281
|
? [
|
|
234
282
|
{
|
|
@@ -237,6 +285,7 @@ const financeApps = computed(() => [
|
|
|
237
285
|
label: 'Quotation',
|
|
238
286
|
description: 'รายรับรายจ่ายงบประมาณโครงการ',
|
|
239
287
|
to: routes.quotation.quotations.home.to,
|
|
288
|
+
status: StatusPortal.ACTIVE,
|
|
240
289
|
},
|
|
241
290
|
]
|
|
242
291
|
: []),
|
|
@@ -251,6 +300,7 @@ const peopleApps = computed(() => [
|
|
|
251
300
|
label: 'Employee',
|
|
252
301
|
description: 'ระบบจัดการข้อมูลพนักงาน',
|
|
253
302
|
to: routes.employee.root.to,
|
|
303
|
+
status: StatusPortal.ACTIVE,
|
|
254
304
|
},
|
|
255
305
|
]
|
|
256
306
|
: []),
|
|
@@ -262,9 +312,34 @@ const peopleApps = computed(() => [
|
|
|
262
312
|
label: 'Newsletter',
|
|
263
313
|
description: 'ระบบจัดการข่าวสาร',
|
|
264
314
|
to: routes.newsletter.announcement.announcements.to,
|
|
315
|
+
status: StatusPortal.ACTIVE,
|
|
265
316
|
},
|
|
266
317
|
]
|
|
267
318
|
: []),
|
|
319
|
+
{
|
|
320
|
+
name: 'Evaluation',
|
|
321
|
+
logo: '/admin/evaluation.png',
|
|
322
|
+
label: 'Evaluation',
|
|
323
|
+
description: 'ระบบจัดการการประเมิน',
|
|
324
|
+
to: '/',
|
|
325
|
+
status: StatusPortal.DEVELOPING,
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: 'Recruit',
|
|
329
|
+
logo: '/admin/recruit.png',
|
|
330
|
+
label: 'Recruit',
|
|
331
|
+
description: 'ระบบการสรรหาบุคลากร',
|
|
332
|
+
to: '/',
|
|
333
|
+
status: StatusPortal.DEVELOPING,
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: 'Assets',
|
|
337
|
+
logo: '/admin/assets.png',
|
|
338
|
+
label: 'Assets',
|
|
339
|
+
description: 'ระบบจัดการสินทรัพย์',
|
|
340
|
+
to: '/',
|
|
341
|
+
status: StatusPortal.DEVELOPING,
|
|
342
|
+
},
|
|
268
343
|
])
|
|
269
344
|
|
|
270
345
|
const legalApps = computed(() => [
|
|
@@ -276,6 +351,7 @@ const legalApps = computed(() => [
|
|
|
276
351
|
label: 'Contract',
|
|
277
352
|
description: 'สร้างและจัดการสัญญา',
|
|
278
353
|
to: routes.legal.dashboard.to,
|
|
354
|
+
status: StatusPortal.ACTIVE,
|
|
279
355
|
},
|
|
280
356
|
]
|
|
281
357
|
: []),
|