@finema/finework-layer 0.2.88 → 0.2.89
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 +67 -50
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.89](https://gitlab.finema.co/finema/finework/finework-frontend-layer/compare/0.2.88...0.2.89) (2025-12-17)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* update app link rendering based on status ([bfab126](https://gitlab.finema.co/finema/finework/finework-frontend-layer/commit/bfab126f3c552613ebbde82ed93f65b6a3419da0))
|
|
8
|
+
|
|
3
9
|
## [0.2.88](https://gitlab.finema.co/finema/finework/finework-frontend-layer/compare/0.2.87...0.2.88) (2025-12-17)
|
|
4
10
|
|
|
5
11
|
### Bug Fixes
|
|
@@ -25,19 +25,18 @@
|
|
|
25
25
|
Management
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
|
-
<
|
|
28
|
+
<component
|
|
29
|
+
:is="app.status === StatusPortal.DEVELOPING ? 'div' : NuxtLink"
|
|
29
30
|
v-for="app in managementApps"
|
|
30
31
|
:key="app.name"
|
|
31
|
-
:to="app.to"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
: 'bg-gray-100',
|
|
37
|
-
]"
|
|
32
|
+
:to="app.status !== StatusPortal.DEVELOPING ? app.to : undefined"
|
|
33
|
+
class="relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]"
|
|
34
|
+
:class="app.status === StatusPortal.DEVELOPING
|
|
35
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
36
|
+
: 'bg-gray-100 hover:bg-gray-200'"
|
|
38
37
|
>
|
|
39
38
|
<div
|
|
40
|
-
v-if="app.status ===
|
|
39
|
+
v-if="app.status === StatusPortal.DEVELOPING"
|
|
41
40
|
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
42
41
|
>
|
|
43
42
|
กำลังพัฒนา
|
|
@@ -48,10 +47,14 @@
|
|
|
48
47
|
class="h-[45px] w-[45px] rounded-sm bg-white"
|
|
49
48
|
/>
|
|
50
49
|
<div>
|
|
51
|
-
<div class="text-lg font-bold">
|
|
52
|
-
|
|
50
|
+
<div class="text-lg font-bold">
|
|
51
|
+
{{ app.label }}
|
|
52
|
+
</div>
|
|
53
|
+
<div class="text-sm text-gray-500">
|
|
54
|
+
{{ app.description }}
|
|
55
|
+
</div>
|
|
53
56
|
</div>
|
|
54
|
-
</
|
|
57
|
+
</component>
|
|
55
58
|
</div>
|
|
56
59
|
|
|
57
60
|
<div
|
|
@@ -61,19 +64,19 @@
|
|
|
61
64
|
<div class="text-lg font-bold text-gray-600">
|
|
62
65
|
Finance
|
|
63
66
|
</div>
|
|
64
|
-
|
|
67
|
+
|
|
68
|
+
<component
|
|
69
|
+
:is="app.status === StatusPortal.DEVELOPING ? 'div' : NuxtLink"
|
|
65
70
|
v-for="app in financeApps"
|
|
66
71
|
:key="app.name"
|
|
67
|
-
:to="app.to"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
: 'bg-gray-100',
|
|
73
|
-
]"
|
|
72
|
+
:to="app.status !== StatusPortal.DEVELOPING ? app.to : undefined"
|
|
73
|
+
class="relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]"
|
|
74
|
+
:class="app.status === StatusPortal.DEVELOPING
|
|
75
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
76
|
+
: 'bg-gray-100 hover:bg-gray-200'"
|
|
74
77
|
>
|
|
75
78
|
<div
|
|
76
|
-
v-if="app.status ===
|
|
79
|
+
v-if="app.status === StatusPortal.DEVELOPING"
|
|
77
80
|
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
78
81
|
>
|
|
79
82
|
กำลังพัฒนา
|
|
@@ -84,11 +87,16 @@
|
|
|
84
87
|
:alt="app.label"
|
|
85
88
|
class="h-[45px] w-[45px] rounded-sm bg-white"
|
|
86
89
|
/>
|
|
90
|
+
|
|
87
91
|
<div>
|
|
88
|
-
<div class="text-lg font-bold">
|
|
89
|
-
|
|
92
|
+
<div class="text-lg font-bold">
|
|
93
|
+
{{ app.label }}
|
|
94
|
+
</div>
|
|
95
|
+
<div class="text-sm text-gray-500">
|
|
96
|
+
{{ app.description }}
|
|
97
|
+
</div>
|
|
90
98
|
</div>
|
|
91
|
-
</
|
|
99
|
+
</component>
|
|
92
100
|
</div>
|
|
93
101
|
|
|
94
102
|
<div
|
|
@@ -99,19 +107,18 @@
|
|
|
99
107
|
People
|
|
100
108
|
</div>
|
|
101
109
|
|
|
102
|
-
<
|
|
110
|
+
<component
|
|
111
|
+
:is="app.status === StatusPortal.DEVELOPING ? 'div' : NuxtLink"
|
|
103
112
|
v-for="app in peopleApps"
|
|
104
113
|
:key="app.name"
|
|
105
|
-
:to="app.to"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
: 'bg-gray-100',
|
|
111
|
-
]"
|
|
114
|
+
:to="app.status !== StatusPortal.DEVELOPING ? app.to : undefined"
|
|
115
|
+
class="relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]"
|
|
116
|
+
:class="app.status === StatusPortal.DEVELOPING
|
|
117
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
118
|
+
: 'bg-gray-100 hover:bg-gray-200'"
|
|
112
119
|
>
|
|
113
120
|
<div
|
|
114
|
-
v-if="app.status ===
|
|
121
|
+
v-if="app.status === StatusPortal.DEVELOPING"
|
|
115
122
|
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
116
123
|
>
|
|
117
124
|
กำลังพัฒนา
|
|
@@ -122,10 +129,14 @@
|
|
|
122
129
|
class="h-[45px] w-[45px] rounded-sm bg-white"
|
|
123
130
|
/>
|
|
124
131
|
<div>
|
|
125
|
-
<div class="text-lg font-bold">
|
|
126
|
-
|
|
132
|
+
<div class="text-lg font-bold">
|
|
133
|
+
{{ app.label }}
|
|
134
|
+
</div>
|
|
135
|
+
<div class="text-sm text-gray-500">
|
|
136
|
+
{{ app.description }}
|
|
137
|
+
</div>
|
|
127
138
|
</div>
|
|
128
|
-
</
|
|
139
|
+
</component>
|
|
129
140
|
</div>
|
|
130
141
|
|
|
131
142
|
<div
|
|
@@ -136,19 +147,18 @@
|
|
|
136
147
|
Legal
|
|
137
148
|
</div>
|
|
138
149
|
|
|
139
|
-
<
|
|
140
|
-
|
|
150
|
+
<component
|
|
151
|
+
:is="app.status === StatusPortal.DEVELOPING ? 'div' : NuxtLink"
|
|
152
|
+
v-for="app in peopleApps"
|
|
141
153
|
:key="app.name"
|
|
142
|
-
:to="app.to"
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
: 'bg-gray-100',
|
|
148
|
-
]"
|
|
154
|
+
:to="app.status !== StatusPortal.DEVELOPING ? app.to : undefined"
|
|
155
|
+
class="relative flex items-center gap-3 rounded-lg px-2.5 py-[15px]"
|
|
156
|
+
:class="app.status === StatusPortal.DEVELOPING
|
|
157
|
+
? 'cursor-not-allowed bg-gray-200 opacity-60'
|
|
158
|
+
: 'bg-gray-100 hover:bg-gray-200'"
|
|
149
159
|
>
|
|
150
160
|
<div
|
|
151
|
-
v-if="app.status ===
|
|
161
|
+
v-if="app.status === StatusPortal.DEVELOPING"
|
|
152
162
|
class="absolute top-2 right-2 rounded-full bg-orange-100 px-2 py-0.5 text-xs font-semibold text-orange-600"
|
|
153
163
|
>
|
|
154
164
|
กำลังพัฒนา
|
|
@@ -159,25 +169,32 @@
|
|
|
159
169
|
class="h-[45px] w-[45px] rounded-sm bg-white"
|
|
160
170
|
/>
|
|
161
171
|
<div>
|
|
162
|
-
<div class="text-lg font-bold">
|
|
163
|
-
|
|
172
|
+
<div class="text-lg font-bold">
|
|
173
|
+
{{ app.label }}
|
|
174
|
+
</div>
|
|
175
|
+
<div class="text-sm text-gray-500">
|
|
176
|
+
{{ app.description }}
|
|
177
|
+
</div>
|
|
164
178
|
</div>
|
|
165
|
-
</
|
|
179
|
+
</component>
|
|
166
180
|
</div>
|
|
167
181
|
</div>
|
|
168
182
|
</div>
|
|
169
183
|
</template>
|
|
170
184
|
|
|
171
185
|
<script lang="ts" setup>
|
|
186
|
+
import { resolveComponent } from 'vue'
|
|
187
|
+
|
|
172
188
|
defineProps<{
|
|
173
189
|
isNavbar?: boolean
|
|
174
190
|
}>()
|
|
175
191
|
|
|
176
|
-
const auth = useAuth()
|
|
177
192
|
const enum StatusPortal {
|
|
178
193
|
ACTIVE = 'active',
|
|
179
194
|
DEVELOPING = 'developing',
|
|
180
195
|
}
|
|
196
|
+
const NuxtLink = resolveComponent('NuxtLink')
|
|
197
|
+
const auth = useAuth()
|
|
181
198
|
const managementApps = computed(() => [
|
|
182
199
|
...(auth.hasPermission(
|
|
183
200
|
UserModule.PMO,
|