'admin-21.01.13:新增布局配置分类背景风格切换'
This commit is contained in:
parent
d16e6c9075
commit
5a57e37578
@ -37,6 +37,7 @@ export interface RootStateTypes {
|
|||||||
wartermarkText: string,
|
wartermarkText: string,
|
||||||
tagsStyle: string,
|
tagsStyle: string,
|
||||||
animation: string,
|
animation: string,
|
||||||
|
columnsAsideStyle: string,
|
||||||
layout: string
|
layout: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,5 +34,6 @@ export default {
|
|||||||
wartermarkText: 'small@小柒',
|
wartermarkText: 'small@小柒',
|
||||||
tagsStyle: 'tagsStyleOne',
|
tagsStyle: 'tagsStyleOne',
|
||||||
animation: 'slideRight',
|
animation: 'slideRight',
|
||||||
|
columnsAsideStyle: 'columnsRound',
|
||||||
layout: 'defaults'
|
layout: 'defaults'
|
||||||
}
|
}
|
@ -3,7 +3,7 @@
|
|||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="(v,k) in columnsAsideList" :key="k" @click="onColumnsAsideDown(v,k)"
|
<li v-for="(v,k) in columnsAsideList" :key="k" @click="onColumnsAsideDown(v,k)"
|
||||||
:ref="el => { if (el) columnsAsideOffsetTopRefs[k] = el }" :class="{'layout-columns-active': liIndex === k}">
|
:ref="el => { if (el) columnsAsideOffsetTopRefs[k] = el }" :class="{'layout-columns-active':liIndex === k} ">
|
||||||
<div class="layout-columns-aside-li-box">
|
<div class="layout-columns-aside-li-box">
|
||||||
<template v-if="!v.meta.isLink">
|
<template v-if="!v.meta.isLink">
|
||||||
<i :class="v.meta.icon"></i>
|
<i :class="v.meta.icon"></i>
|
||||||
@ -21,19 +21,21 @@
|
|||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<div class="layout-columns-aside-active" ref="columnsAsideActiveRef"></div>
|
<div ref="columnsAsideActiveRef" :class="setColumnsAsideStyle"></div>
|
||||||
</ul>
|
</ul>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { reactive, toRefs, ref } from "vue";
|
import { reactive, toRefs, ref, computed } from "vue";
|
||||||
|
import { useStore } from "/@/store/index.ts";
|
||||||
export default {
|
export default {
|
||||||
name: "layoutColumnsAside",
|
name: "layoutColumnsAside",
|
||||||
setup() {
|
setup() {
|
||||||
const columnsAsideOffsetTopRefs = ref([]);
|
const columnsAsideOffsetTopRefs = ref([]);
|
||||||
const columnsAsideActiveRef = ref();
|
const columnsAsideActiveRef = ref();
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
columnsAsideList: [
|
columnsAsideList: [
|
||||||
{
|
{
|
||||||
@ -67,18 +69,31 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
liIndex: 0,
|
liIndex: 0,
|
||||||
|
difference: 0,
|
||||||
|
});
|
||||||
|
// 设置高亮样式
|
||||||
|
const setColumnsAsideStyle = computed(() => {
|
||||||
|
let { columnsAsideStyle } = store.state.themeConfig;
|
||||||
|
columnsAsideStyle === "columnsRound"
|
||||||
|
? (state.difference = 3)
|
||||||
|
: (state.difference = 0);
|
||||||
|
if (columnsAsideStyle === "columnsRound")
|
||||||
|
return "layout-columns-round-active";
|
||||||
|
else if (columnsAsideStyle === "columnsCard")
|
||||||
|
return "layout-columns-card-active";
|
||||||
});
|
});
|
||||||
// 设置高亮动态位置
|
// 设置高亮动态位置
|
||||||
const onColumnsAsideDown = (v: Object, k: number) => {
|
const onColumnsAsideDown = (v: Object, k: number) => {
|
||||||
state.liIndex = k;
|
state.liIndex = k;
|
||||||
columnsAsideActiveRef.value.style.top = `${
|
columnsAsideActiveRef.value.style.top = `${
|
||||||
columnsAsideOffsetTopRefs.value[k].offsetTop + 3
|
columnsAsideOffsetTopRefs.value[k].offsetTop + state.difference
|
||||||
}px`;
|
}px`;
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
columnsAsideOffsetTopRefs,
|
columnsAsideOffsetTopRefs,
|
||||||
columnsAsideActiveRef,
|
columnsAsideActiveRef,
|
||||||
onColumnsAsideDown,
|
onColumnsAsideDown,
|
||||||
|
setColumnsAsideStyle,
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -113,7 +128,7 @@ export default {
|
|||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
transition: 0.3s ease-in-out;
|
transition: 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
.layout-columns-aside-active {
|
.layout-columns-round-active {
|
||||||
background: var(--color-primary);
|
background: var(--color-primary);
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -126,6 +141,13 @@ export default {
|
|||||||
transition: 0.3s ease-in-out;
|
transition: 0.3s ease-in-out;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
.layout-columns-card-active {
|
||||||
|
@extend .layout-columns-round-active;
|
||||||
|
top: 0;
|
||||||
|
height: 50px;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -218,7 +218,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layout-breadcrumb-seting-bar-flex mt15 mb27">
|
<div class="layout-breadcrumb-seting-bar-flex mt15">
|
||||||
<div class="layout-breadcrumb-seting-bar-flex-label">主页面切换动画</div>
|
<div class="layout-breadcrumb-seting-bar-flex-label">主页面切换动画</div>
|
||||||
<div class="layout-breadcrumb-seting-bar-flex-value">
|
<div class="layout-breadcrumb-seting-bar-flex-value">
|
||||||
<el-select v-model="getThemeConfig.animation" placeholder="请选择" size="mini" style="width:90px;">
|
<el-select v-model="getThemeConfig.animation" placeholder="请选择" size="mini" style="width:90px;">
|
||||||
@ -228,6 +228,15 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layout-breadcrumb-seting-bar-flex mt15 mb27">
|
||||||
|
<div class="layout-breadcrumb-seting-bar-flex-label">分栏高亮风格</div>
|
||||||
|
<div class="layout-breadcrumb-seting-bar-flex-value">
|
||||||
|
<el-select v-model="getThemeConfig.columnsAsideStyle" placeholder="请选择" size="mini" style="width:90px;">
|
||||||
|
<el-option label="圆角" value="columnsRound"></el-option>
|
||||||
|
<el-option label="卡片" value="columnsCard"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 布局切换 -->
|
<!-- 布局切换 -->
|
||||||
<el-divider content-position="left">布局切换</el-divider>
|
<el-divider content-position="left">布局切换</el-divider>
|
||||||
|
Loading…
Reference in New Issue
Block a user