Files
cmanager/src/views/manage/recommend/index.vue

160 lines
3.3 KiB
Vue
Raw Normal View History

2024-02-02 10:23:22 +08:00
<template>
<div>
<basic-container>
<div style="border-bottom: 1px solid #1890FF;">
<button class="btn" v-for="item in titleList" :key="item.name" :class="item.select ? 'primary' : ''" @click="titleActive(item)">{{item.name}}</button>
</div>
<div v-if="status" style="height: 23px;"></div>
<div class="recommendBody" v-if="status">
<div class="leftBox">
<menuLeft :menu="menu" :loading="leftLoading" switchStatus @change="menuVal"></menuLeft>
</div>
<div class="containerWrap">
<menuBody :menuDetail="menuDetailObj"></menuBody>
</div>
</div>
<div v-else>
<wx-content></wx-content>
</div>
</basic-container>
</div>
</template>
<script>
import {mapGetters} from "vuex";
import menuLeft from './manage/menuLeft'
import menuBody from './manage/menuBody'
import wxContent from './manageContent/contentManage'
import {
routesCompany,
routesCompanyEdit
} from '@/api/help/recommend/route'
export default {
name: "index",
components: {
menuLeft,
menuBody,
wxContent
},
provide() {
return {
recommend: this,
};
},
created() {
this.initRoute()
},
data () {
return {
leftLoading: false,
menu: [],
titleList: [
{
name: '企业端后台',
select: true
},
{
name: '小程序端',
select: false
}
],
menuDetailObj: {}
}
},
methods: {
initRoute(){
this.leftLoading = true
routesCompany().then(res => {
var arr = res.data.data
this.menu = this.statusForEach(arr)
// this.menu = res.data.data
this.menuDetailObj = {}
this.leftLoading = false
})
},
statusForEach (arr) {
arr.forEach(e => {
e.status = false
if (e.isShow == 1) {
e.status = true
}
if (e.children && e.children.length > 0) {
this.statusForEach(e.children)
}
})
return arr
},
titleActive (item) {
this.titleList.forEach(e => {
e.select = false
})
item.select = true
if (item.name === '企业端后台') {
this.menuDetailObj = {}
this.initRoute()
}
},
menuVal (item, type){
this.menuDetailObj = JSON.parse(JSON.stringify(item))
if (type === 'switch') {
var params = {
menuId: item.menuId,
menuCode: item.menuCode,
isShow: item.status ? 1 : 0
}
routesCompanyEdit(params).then(res =>{
this.initRoute()
})
}
}
},
computed: {
...mapGetters([
// "menu",
]),
status(){
return this.titleList[0].select
}
}
}
</script>
<style scoped>
.recommendBody{
display: flex;
box-sizing: border-box;
}
.containerWrap{
padding-top: 0 !important;
flex:1;
overflow: auto;
}
.leftBox{
width: 260px;
background: #FAFAFA;
margin-right: 23px;
}
.btn{
width: 144px;
height: 32px;
background: #FFFFFF;
border-radius: 4px 4px 0px 0px;
border: 1px solid #D9D9D9;
font-size: 14px;
font-weight: 400;
color: rgba(0, 0, 0, 0.65);
line-height: 32px;
margin-right: 16px;
}
.primary{
background-color: #1890FF !important;
color: #FFFFFF !important;
}
</style>