feat(appicon): AppIcon 资产库接入(应用网格矢量图标渲染,YschAppIcons 10-04 轮 P3)
- AppIcon.vue:矢量图标渲染组件(iconKey+iconColor → mask data-uri,无键无 URL 回退关键词映射占位) - constants/appIconRules.ts:应用名关键词→图标键兜底映射(D4,两端各持一份,与 MobilePortal 关键词列一致;仅 icon_key 未配置且无 URL 时生效,有 URL 恒定位图零回归) - AppList/SearchPanel/index:应用网格与搜索结果图标位换 AppIcon - appicon.mask.css:资产库 mask 样式;yunhai-logo.svg:站点 Logo 矢量件 - main.scss/_app_container.scss:网格图标容器样式配套 依据:根目录《AppIcon资产库落地-执行报告-20261004.md》P3 UserHome(PC)接入
This commit is contained in:
+17
-1
@@ -21,7 +21,11 @@
|
||||
]"
|
||||
>
|
||||
<a @click="openLinkPage(item)">
|
||||
<img v-if="item.type == 1" :src="$utils.appIconPath(item.icon)" />
|
||||
<template v-if="item.type == 1">
|
||||
<AppIcon v-if="vectorIconOf(item)" :name="vectorIconOf(item)" scene="tile"
|
||||
:tint="item.iconColor" />
|
||||
<img v-else :src="$utils.appIconPath(item.icon)" />
|
||||
</template>
|
||||
<img
|
||||
v-else-if="item.type == 2"
|
||||
:src="$conf.fileHost + '/image/lightapp.default.png'"
|
||||
@@ -135,6 +139,8 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import ContextMenu from "@/components/ContextMenu.vue";
|
||||
import AppIcon from "@/components/AppIcon.vue";
|
||||
import { appiconKeyOf } from "@/constants/appIconRules";
|
||||
import { ref, reactive, onMounted, onUnmounted, computed, watch, watchEffect, nextTick } from "vue";
|
||||
import BaseApi from "@/api/BaseApi";
|
||||
// @ts-ignore
|
||||
@@ -166,6 +172,16 @@ const store = useDefaultStore();
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
/**
|
||||
* 矢量渲染判定(方案 §5.4 回退链,与 AppList.vue / SearchPanel.vue 同口径):
|
||||
* icon_key 命中 → 矢量;有位图 URL → 位图(存量零回归);URL 空且关键词命中 → 矢量;否则默认图。
|
||||
*/
|
||||
function vectorIconOf(item: any): string {
|
||||
if (item?.iconKey) return item.iconKey;
|
||||
if (item?.icon) return "";
|
||||
return appiconKeyOf(item?.name || "");
|
||||
}
|
||||
|
||||
const refApplist = ref();
|
||||
const isDragShow = ref(false),
|
||||
isDesltopAppDefault = ref(false),
|
||||
|
||||
Reference in New Issue
Block a user