|
@@ -233,36 +233,67 @@
|
|
|
v-if="section.apps?.length"
|
|
v-if="section.apps?.length"
|
|
|
class="grid grid-cols-[repeat(2,minmax(0,1fr))] gap-2 p-6 px-3 md:px-4 md:grid-cols-[repeat(3,minmax(0,1fr))] xl:grid-cols-[repeat(3,minmax(0,1fr))]"
|
|
class="grid grid-cols-[repeat(2,minmax(0,1fr))] gap-2 p-6 px-3 md:px-4 md:grid-cols-[repeat(3,minmax(0,1fr))] xl:grid-cols-[repeat(3,minmax(0,1fr))]"
|
|
|
>
|
|
>
|
|
|
- <button
|
|
|
|
|
- v-for="(app, appIndex) in section.apps"
|
|
|
|
|
- :key="`${section.code}-${appIndex}-${app.label}`"
|
|
|
|
|
- type="button"
|
|
|
|
|
- :class="[
|
|
|
|
|
- 'platform-app',
|
|
|
|
|
- boldLabes.includes(app.label)
|
|
|
|
|
- ? 'platform-app--active'
|
|
|
|
|
- : 'platform-app--ghost',
|
|
|
|
|
- ]"
|
|
|
|
|
- @click="handlePortalAppClick(app)"
|
|
|
|
|
- >
|
|
|
|
|
- <span class="platform-app__icon">
|
|
|
|
|
- <img
|
|
|
|
|
- v-if="app.image"
|
|
|
|
|
- :src="app.image"
|
|
|
|
|
- :alt="app.label"
|
|
|
|
|
- class="h-7 w-7 object-contain rounded-md"
|
|
|
|
|
- />
|
|
|
|
|
- <Icon
|
|
|
|
|
- v-else
|
|
|
|
|
- :icon="app.icon || 'mdi:dots-grid'"
|
|
|
|
|
- class="text-[24px]"
|
|
|
|
|
- />
|
|
|
|
|
- </span>
|
|
|
|
|
- <span
|
|
|
|
|
- class="platform-app__label md:text-sm text-[12px] text-left"
|
|
|
|
|
- >{{ app.label }}</span
|
|
|
|
|
|
|
+ <template v-for="(app, appIndex) in section.apps" :key="`${section.code}-${appIndex}-${app.label}`">
|
|
|
|
|
+ <button
|
|
|
|
|
+ v-if="app.key === 'fm'"
|
|
|
|
|
+ v-hasPermi="['portal:financial:view']"
|
|
|
|
|
+ type="button"
|
|
|
|
|
+ :class="[
|
|
|
|
|
+ 'platform-app',
|
|
|
|
|
+ boldLabes.includes(app.label)
|
|
|
|
|
+ ? 'platform-app--active'
|
|
|
|
|
+ : 'platform-app--ghost',
|
|
|
|
|
+ ]"
|
|
|
|
|
+ @click="handlePortalAppClick(app)"
|
|
|
>
|
|
>
|
|
|
- </button>
|
|
|
|
|
|
|
+ <span class="platform-app__icon">
|
|
|
|
|
+ <img
|
|
|
|
|
+ v-if="app.image"
|
|
|
|
|
+ :src="app.image"
|
|
|
|
|
+ :alt="app.label"
|
|
|
|
|
+ class="h-7 w-7 object-contain rounded-md"
|
|
|
|
|
+ />
|
|
|
|
|
+ <Icon
|
|
|
|
|
+ v-else
|
|
|
|
|
+ :icon="app.icon || 'mdi:dots-grid'"
|
|
|
|
|
+ class="text-[24px]"
|
|
|
|
|
+ />
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <span
|
|
|
|
|
+ class="platform-app__label md:text-sm text-[12px] text-left"
|
|
|
|
|
+ >{{ app.label }}</span
|
|
|
|
|
+ >
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <button
|
|
|
|
|
+ v-else
|
|
|
|
|
+ type="button"
|
|
|
|
|
+ :class="[
|
|
|
|
|
+ 'platform-app',
|
|
|
|
|
+ boldLabes.includes(app.label)
|
|
|
|
|
+ ? 'platform-app--active'
|
|
|
|
|
+ : 'platform-app--ghost',
|
|
|
|
|
+ ]"
|
|
|
|
|
+ @click="handlePortalAppClick(app)"
|
|
|
|
|
+ >
|
|
|
|
|
+ <span class="platform-app__icon">
|
|
|
|
|
+ <img
|
|
|
|
|
+ v-if="app.image"
|
|
|
|
|
+ :src="app.image"
|
|
|
|
|
+ :alt="app.label"
|
|
|
|
|
+ class="h-7 w-7 object-contain rounded-md"
|
|
|
|
|
+ />
|
|
|
|
|
+ <Icon
|
|
|
|
|
+ v-else
|
|
|
|
|
+ :icon="app.icon || 'mdi:dots-grid'"
|
|
|
|
|
+ class="text-[24px]"
|
|
|
|
|
+ />
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <span
|
|
|
|
|
+ class="platform-app__label md:text-sm text-[12px] text-left"
|
|
|
|
|
+ >{{ app.label }}</span
|
|
|
|
|
+ >
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </template>
|
|
|
</div>
|
|
</div>
|
|
|
</article>
|
|
</article>
|
|
|
</div>
|
|
</div>
|