fix(faq): repair category schema and icons

This commit is contained in:
Cheng Zhou
2026-06-08 13:38:09 +08:00
parent 30e2398400
commit d472b8410e
8 changed files with 115 additions and 26 deletions
+6 -14
View File
@@ -8,13 +8,13 @@
</div>
<el-menu :default-active="activeCategory" @select="onSelect" class="menu">
<el-menu-item index="">
<span class="cat-icon"><i class="fas fa-th-large"></i></span>
<span class="cat-icon"><FaqIcon icon="fa-th-large" /></span>
<span class="name">{{ TEXT.common.labels.all }}</span>
<span class="cat-count">{{ totalFaqCount }}</span>
</el-menu-item>
<el-menu-item v-for="c in sortedCategories" :key="c.id" :index="c.id">
<span class="cat-icon">
<i v-if="c.icon" :class="['fas', c.icon]"></i>
<FaqIcon v-if="c.icon" :icon="c.icon" />
<span v-else>{{ c.name.slice(0, 1) }}</span>
</span>
<span class="name" :title="c.name">{{ c.name }}</span>
@@ -27,10 +27,9 @@
<script setup lang="ts">
import { computed, ref } from "vue";
import FaqIcon from "./FaqIcon.vue";
import FaqCategoryManager from "./FaqCategoryManager.vue";
import type { FaqCategory } from "../api/faqs";
import { useAuthStore } from "../store/auth";
import { useStudyStore } from "../store/study";
import { usePermission } from "../utils/permission";
import { TEXT } from "../locales";
@@ -41,13 +40,9 @@ const props = defineProps<{
}>();
const emit = defineEmits(["update:modelValue", "refresh"]);
const auth = useAuthStore();
const study = useStudyStore();
const showForm = ref(false);
const { can } = usePermission();
const isAdmin = computed(() => !!auth.user?.is_admin);
const canCreateCategory = computed(() => can("faq.category.create"));
const sortedCategories = computed(() =>
[...props.categories].sort((a, b) => (a.sort_order ?? 0) - (b.sort_order ?? 0))
@@ -75,11 +70,6 @@ const onSelect = (id: string) => {
emit("update:modelValue", id);
};
const activeIcons = (excludeId?: string) =>
sortedCategories.value
.filter((c) => c.id !== excludeId && c.icon)
.map((c) => c.icon as string);
const openManager = () => {
showForm.value = true;
};
@@ -146,8 +136,10 @@ const openManager = () => {
font-size: 13px;
font-weight: 800;
}
.cat-icon i {
.cat-icon :deep(svg) {
font-size: 13px;
width: 1em;
height: 1em;
}
.menu :deep(.el-menu-item.is-active) .cat-icon {
background: #d7ebff;