66 lines
2.1 KiB
Vue
66 lines
2.1 KiB
Vue
|
<template>
|
|||
|
<el-menu-item
|
|||
|
v-if="category.children == null || category.children.length == 0"
|
|||
|
:key="index"
|
|||
|
:index="index + '#' + category.path"
|
|||
|
>
|
|||
|
<template v-if="category.uri != null && category.uri !== ''">
|
|||
|
<!-- 外部链接,新窗口打开 -->
|
|||
|
<nuxt-link v-if="category.type === 'OUT_LINK'" :to="category.uri" target="_blank">
|
|||
|
<CategoryIcon :value="category.icon" :with-holder="false"/>
|
|||
|
{{category.title}}
|
|||
|
</nuxt-link>
|
|||
|
<!-- 内部链接 || 常规栏目配置了模板,当前页打开 -->
|
|||
|
<nuxt-link v-else :to="category.uri">
|
|||
|
<CategoryIcon :value="category.icon" :with-holder="false"/>
|
|||
|
{{category.title}}
|
|||
|
</nuxt-link>
|
|||
|
</template>
|
|||
|
<!-- 常规栏目 -->
|
|||
|
<label v-else>{{ category.title }}</label>
|
|||
|
</el-menu-item>
|
|||
|
<el-sub-menu v-else :index="index">
|
|||
|
<template #title>
|
|||
|
<template v-if="category.uri != null && category.uri !== ''">
|
|||
|
<!-- 外部链接,新窗口打开 -->
|
|||
|
<nuxt-link v-if="category.type === 'OUT_LINK'" :to="category.uri" target="_blank">
|
|||
|
<CategoryIcon :value="category.icon" :with-holder="false"/>
|
|||
|
{{category.title}}
|
|||
|
</nuxt-link>
|
|||
|
<!-- 内部链接 || 常规栏目配置了模板,当前页打开 -->
|
|||
|
<nuxt-link v-else :to="category.uri">
|
|||
|
<CategoryIcon :value="category.icon" :with-holder="false"/>
|
|||
|
{{category.title}}
|
|||
|
</nuxt-link>
|
|||
|
</template>
|
|||
|
<!-- 常规栏目未配置模板(目录) -->
|
|||
|
<label v-else>
|
|||
|
<CategoryIcon :value="category.icon" :with-holder="false"/>
|
|||
|
{{ category.title }}
|
|||
|
</label>
|
|||
|
</template>
|
|||
|
<CategoryChildren
|
|||
|
v-for="(child, idx) in category.children"
|
|||
|
:category="child"
|
|||
|
:key="index + '-' + idx"
|
|||
|
:index="String(index + '-' + idx)"
|
|||
|
/>
|
|||
|
</el-sub-menu>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import CategoryIcon from '@/components/cms/CategoryIcon'
|
|||
|
export default {
|
|||
|
name: 'CategoryChildren',
|
|||
|
components: { CategoryIcon },
|
|||
|
props: {
|
|||
|
// 栏目
|
|||
|
category: {
|
|||
|
type: Object,
|
|||
|
required: true
|
|||
|
},
|
|||
|
index: String,
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|