瀏覽代碼

修改成渝项目样式

duy 3 月之前
父節點
當前提交
8a187f2e2a

+ 19 - 13
src/layout/index.vue

@@ -88,8 +88,12 @@ const userRoleId = ref(store.getRoleId)
 const projectInfoData = ref(store.getProjectInfo)
 const projectId = ref(store.getProjectId)
 // 判断是否为云南项目
-const isYunNanProject = computed(() => {
-    return projectId.value === '1904814720589430785'
+const isYunNanProject = ref(projectId.value === '1904814720589430785')
+
+
+// 添加watch来更新isYunNanProject
+watch(() => projectId.value, (newProjectId) => {
+    isYunNanProject.value = newProjectId === '1904814720589430785'
 })
 
 //子组件
@@ -172,31 +176,33 @@ const topMenuLoad = () => {
 // 修改菜单数据的监听逻辑
 watch(() => store.getMenus, (val) => {
     if (isYunNanProject.value) {
-        // 云南项目的菜单处理逻辑
         const filterAndRenameMenus = (menus) => {
-            return menus.filter(menu => {
+            return menus.map(menu => {
+                // 创建新对象,而不是修改原对象
+                const newMenu = { ...menu }
+                
                 // 过滤掉个人中心和系统设置
-                if (menu.name === '个人中心' || menu.name === '系统设置') {
-                    return false
+                if (newMenu.name === '个人中心' || newMenu.name === '系统设置') {
+                    return null
                 }
                 
                 // 重命名档案收集为文件管理
-                if (menu.name === '档案收集') {
-                    menu.name = '文件管理'
+                if (newMenu.name === '档案收集') {
+                    newMenu.name = '文件管理'
                 }
                 
                 // 递归处理子菜单
-                if (menu.children && menu.children.length > 0) {
-                    menu.children = filterAndRenameMenus(menu.children)
+                if (newMenu.children && newMenu.children.length > 0) {
+                    newMenu.children = filterAndRenameMenus(newMenu.children)
                 }
                 
-                return true
-            })
+                return newMenu
+            }).filter(Boolean) // 过滤掉null值
         }
         
         menuBarData.value = filterAndRenameMenus(getArrValue(val))
     }
-}, { immediate: true, deep: true })
+}, { immediate: true })
 //顶部菜单导航被点击// 修改顶部菜单切换方法
 const topMenuChange = (data) => {
     if (!isYunNanProject.value && !isNullES(data)) {

+ 6 - 2
src/layout/modules/MenuItem.vue

@@ -65,8 +65,12 @@ const props = defineProps({
 const emit = defineEmits(['change'])
 const store = useAppStore()
 const projectId = ref(store.getProjectId)
-const isYunNanProject = computed(() => {
-    return projectId.value === '1904814720589430785'
+const isYunNanProject = ref(projectId.value === '1904814720589430785')
+
+
+// 添加watch来更新isYunNanProject
+watch(() => projectId.value, (newProjectId) => {
+    isYunNanProject.value = newProjectId === '1904814720589430785'
 })
 //初始变量
 const curKey = ref(props.cur)

+ 6 - 2
src/layout/modules/UserInfoBar.vue

@@ -38,8 +38,12 @@ const userInfo = ref(store.getUserInfo)
 const refreshLock = ref(false)
 
 const projectId = ref(store.getProjectId)
-const isYunNanProject = computed(() => {
-    return projectId.value === '1904814720589430785'
+const isYunNanProject = ref(projectId.value === '1904814720589430785')
+
+
+// 添加watch来更新isYunNanProject
+watch(() => projectId.value, (newProjectId) => {
+    isYunNanProject.value = newProjectId === '1904814720589430785'
 })
 //监听
 watch(() => store.getUserInfo, (info) => {

+ 6 - 2
src/layout/test-yn/MenuItem-yn.vue

@@ -66,8 +66,12 @@ const props = defineProps({
 const emit = defineEmits(['change'])
 const store = useAppStore()
 const projectId = ref(store.getProjectId)
-const isYunNanProject = computed(() => {
-    return projectId.value === '1891312830718746625'
+const isYunNanProject = ref(projectId.value === '1904814720589430785')
+
+
+// 添加watch来更新isYunNanProject
+watch(() => projectId.value, (newProjectId) => {
+    isYunNanProject.value = newProjectId === '1904814720589430785'
 })
 //初始变量
 const curKey = ref(props.cur)

+ 0 - 152
src/layout/test-yn/UserInfoBar-un.vue

@@ -1,152 +0,0 @@
-<template>
-    <el-dropdown size="large">
-        <div class="header-bar user-info-bar">
-            <img :alt="userInfo.account" :src="userInfo.avatar || avatarPng" class="user-avatar">
-            <span class="user-name">{{ userInfo.real_name }}</span>
-            <HcIcon name="arrow-down-s" ui="arrow-icon" />
-        </div>
-        <template #dropdown>
-            <el-dropdown-menu>
-                <el-dropdown-item v-for="item in options" :key="item.key">
-                    <div class="hc-dropdown-item" @click="handleSelect(item.key)">
-                        <HcIcon :name="item.icon" class="icon" />
-                        <span class="label">{{ item.label }}</span>
-                    </div>
-                </el-dropdown-item>
-            </el-dropdown-menu>
-        </template>
-    </el-dropdown>
-</template>
-
-<script setup>
-import { onMounted, ref, watch } from 'vue'
-import { useRouter } from 'vue-router'
-import { useAppStore } from '~src/store'
-import website from '~src/config/index'
-import avatarPng from '~src/assets/images/avatar.png'
-import { LogOut, RefreshToken } from '~sto/user'
-import { calcDate, isNullES } from 'js-fast-way'
-import { getStore } from 'hc-vue3-ui'
-
-//事件
-const emit = defineEmits(['load'])
-
-//变量
-const router = useRouter()
-const store = useAppStore()
-const userInfo = ref(store.getUserInfo)
-const refreshLock = ref(false)
-
-//监听
-watch(() => store.getUserInfo, (info) => {
-    userInfo.value = info
-    emit('load', info)
-})
-
-onMounted(() => {
-    getRefreshToken()
-    emit('load', userInfo.value)
-})
-
-//刷新token
-const getRefreshToken = () => {
-    setInterval(() => {
-        const token = getStore('token', true) || {}
-        const date = calcDate(token.datetime, new Date().getTime())
-        if (isNullES(date)) return
-        if (date.seconds >= website.tokenTime && !refreshLock.value) {
-            refreshLock.value = true
-            console.log('刷新token')
-            RefreshToken().then(() => {
-                refreshLock.value = false
-            }).catch(() => {
-                refreshLock.value = false
-                router.push({ name: 'login-main' })
-            })
-        }
-    }, 10000)
-}
-
-const options = [
-    {
-        key: 'my',
-        label: '个人中心',
-        icon: 'user-3',
-    },
-    {
-        key: 'logout',
-        label: '退出登录',
-        icon: 'login-box',
-    },
-]
-
-const handleSelect = (key) => {
-    if (key === 'my') {
-        router.push({ name: 'user-index' })
-    } else if (key === 'logout') {
-        LogOut().then()
-        window.$message?.info('退出成功')
-        router.push({ name: 'login-main' })
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.user-info-bar {
-    position: relative;
-    display: flex;
-    align-items: center;
-    height: 100%;
-    cursor: pointer;
-    padding-left: 16px;
-    margin-left: 4px;
-    outline: none;
-    .user-avatar {
-        width: 26px;
-        height: 26px;
-        border-radius: 50%;
-        background: white;
-        object-fit: cover;
-    }
-    .user-name {
-        font-size: 16px;
-        margin-left: 10px;
-       
-        color: black;
-    }
-    .arrow-icon {
-        margin-left: 5px;
-        font-size: 20px;
-        color: white;
-    }
-    &::before {
-        position: absolute;
-        content: '';
-        left: 0;
-        width: 0;
-        height: 20px;
-        border-left: 1px solid #7291ff;
-    }
-}
-.hc-layout-box .hc-container-view.home .hc-header-view .hc-header-content .user-info-bar {
-    color: inherit;
-    .user-name {
-        color: white;
-    }
-    .arrow-icon {
-        color: white;
-    }
-    &::before {
-        border-left: 1px solid white;
-    }
-}
-
-.hc-dropdown-item {
-    display: flex;
-    align-items: center;
-    .icon {
-        font-size: 14px;
-        margin-right: 8px;
-    }
-}
-</style>