|
|
@@ -5,10 +5,12 @@
|
|
|
<span>{{ platformTitle }}</span>
|
|
|
<div class="dropdown-box">
|
|
|
<!-- 下拉菜单 -->
|
|
|
- <el-dropdown v-model="selectedGrade" @command="handleGradeSelect" popper-class="no-arrow-dropdown">
|
|
|
+ <el-dropdown v-model="selectedGrade" @command="handleGradeSelect" @visible-change="handleVisibleChange" popper-class="no-arrow-dropdown">
|
|
|
<el-button type="primary">
|
|
|
{{ selectedGrade }}
|
|
|
- <el-icon class="el-icon--right"><ArrowDown /></el-icon>
|
|
|
+ <!-- 根据下拉框状态显示不同的箭头图标 -->
|
|
|
+ <el-icon class="el-icon--right" v-if="!dropdownVisible"><ArrowDownBold /></el-icon>
|
|
|
+ <el-icon class="el-icon--right" v-else><ArrowUpBold /></el-icon>
|
|
|
</el-button>
|
|
|
<template #dropdown>
|
|
|
<el-dropdown-menu class="dropdown-menu">
|
|
|
@@ -79,7 +81,7 @@
|
|
|
import { ref, onMounted, watch } from 'vue'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { ClassList } from '@/api/class.js'
|
|
|
-import {ArrowDown} from '@element-plus/icons-vue'
|
|
|
+import {ArrowUpBold, ArrowDownBold} from '@element-plus/icons-vue'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
import UserInfoPopover from '@/components/user/UserInfoPopover.vue'
|
|
|
|
|
|
@@ -197,8 +199,16 @@ const goToPersonalized = () =>{
|
|
|
const selectedGrade = ref(localStorage.getItem('selectedGrade') || '')
|
|
|
// 年级ID存储变量
|
|
|
const selectedGradeId = ref(localStorage.getItem('selectedGradeId') || '')
|
|
|
+// 下拉框可见性状态
|
|
|
+const dropdownVisible = ref(false)
|
|
|
// 获取年级
|
|
|
const classData = ref([])
|
|
|
+
|
|
|
+// 处理下拉框显示/隐藏事件
|
|
|
+const handleVisibleChange = (visible) => {
|
|
|
+ dropdownVisible.value = visible
|
|
|
+}
|
|
|
+
|
|
|
const fetchCtTypes = async () => {
|
|
|
try {
|
|
|
const response = await ClassList()
|