diff --git a/schoolNewsServ/.bin/mysql/sql/createTableUser.sql b/schoolNewsServ/.bin/mysql/sql/createTableUser.sql index e4bff0d..b79d2fe 100644 --- a/schoolNewsServ/.bin/mysql/sql/createTableUser.sql +++ b/schoolNewsServ/.bin/mysql/sql/createTableUser.sql @@ -31,7 +31,7 @@ CREATE TABLE `tb_sys_user_info` ( `family_name` VARCHAR(50) DEFAULT NULL COMMENT '姓', `given_name` VARCHAR(50) DEFAULT NULL COMMENT '名', `full_name` VARCHAR(100) DEFAULT NULL COMMENT '全名', - `level` INT(4) DEFAULT 1 COMMENT '等级', + `level` FLOAT DEFAULT 1 COMMENT '等级', `student_id` VARCHAR(50) DEFAULT NULL COMMENT '学号', `id_card` VARCHAR(50) DEFAULT NULL COMMENT '身份证号', `address` VARCHAR(255) DEFAULT NULL COMMENT '地址', diff --git a/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/service/impl/ACHAchievementServiceImpl.java b/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/service/impl/ACHAchievementServiceImpl.java index 5990199..51155d7 100644 --- a/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/service/impl/ACHAchievementServiceImpl.java +++ b/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/service/impl/ACHAchievementServiceImpl.java @@ -942,7 +942,7 @@ public class ACHAchievementServiceImpl implements AchievementService { } // 获取用户当前信息 - TbSysUserInfo userInfo = userInfoMapper.selectById(userID); + TbSysUserInfo userInfo = userInfoMapper.selectByUserID(userID); if (userInfo == null) { logger.warn("用户信息不存在: {}", userID); return; diff --git a/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserInfoMapper.java b/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserInfoMapper.java index b05d41b..ab8dfbc 100644 --- a/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserInfoMapper.java +++ b/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserInfoMapper.java @@ -34,4 +34,6 @@ public interface UserInfoMapper extends BaseMapper { * @since 2025-10-06 */ int deleteUserInfo(@Param("userID") String userId); + + TbSysUserInfo selectByUserID(@Param("userID") String userID); } diff --git a/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml b/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml index c730a49..5c20424 100644 --- a/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml +++ b/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml @@ -53,4 +53,11 @@ DELETE FROM tb_sys_user_info WHERE user_id = #{userID} + + + + + \ No newline at end of file diff --git a/schoolNewsWeb/src/components/base/FloatingSidebar.vue b/schoolNewsWeb/src/components/base/FloatingSidebar.vue index a1779bb..085b110 100644 --- a/schoolNewsWeb/src/components/base/FloatingSidebar.vue +++ b/schoolNewsWeb/src/components/base/FloatingSidebar.vue @@ -210,10 +210,95 @@ function handleClick(menu: SysMenu) { } } -/* 响应式设计 */ +/* 移动端响应式设计 - 水平标签栏 */ @media (max-width: 768px) { .floating-sidebar { - width: 160px; + width: 100%; + height: auto; + flex-direction: row; + border-radius: 0 0 8px 8px; // 顶部圆角移除,与main-content连接 + } + + .sidebar-content { + width: 100%; + flex-direction: row; + } + + .sidebar-nav { + flex-direction: row; + padding: 10px 0; + gap: 0; + overflow-x: auto; + overflow-y: hidden; + + /* 水平滚动条样式 */ + &::-webkit-scrollbar { + height: 4px; + width: auto; + } + } + + .sidebar-item { + flex: 1; + min-width: 60px; + height: 44px; + justify-content: center; + + &::before { + display: none; // 移动端隐藏左侧指示条 + } + + &.active::after { + content: ''; + position: absolute; + bottom: -10px; + left: 50%; + transform: translateX(-50%); + width: 20px; + height: 3px; + background: #C62828; + border-radius: 2px; + } + + // Resource theme 在移动端的特殊样式 + &.theme-resource { + padding: 0 5px; + margin: 0; + + &.active { + background: transparent; + border-radius: 0; + margin: 0; + height: 44px; + + &::after { + right: auto; + top: auto; + width: 20px; + height: 3px; + background: #C62828; + opacity: 1; + bottom: -10px; + left: 50%; + transform: translateX(-50%); + border-radius: 2px; + } + + .sidebar-link { + color: #C62828; + } + } + } + } + + .sidebar-link { + padding: 0 8px; + font-size: 14px; + justify-content: center; + + .theme-resource & { + margin-left: 0; // 移动端取消左边距 + } } } diff --git a/schoolNewsWeb/src/components/base/TopNavigation.vue b/schoolNewsWeb/src/components/base/TopNavigation.vue index 84d38e2..65be357 100644 --- a/schoolNewsWeb/src/components/base/TopNavigation.vue +++ b/schoolNewsWeb/src/components/base/TopNavigation.vue @@ -61,7 +61,7 @@ - + @@ -88,7 +88,7 @@ const specialTags = ref([]); // 特殊标签:专题报告和思政案 // 获取所有菜单 const allMenus = computed(() => store.getters['auth/menuTree']); -const userInfo = computed(() => store.getters['auth/user']); +const userInfo = computed(() => store.getters['auth/userinfo']); // 加载特殊标签 onMounted(async () => { diff --git a/schoolNewsWeb/src/components/base/UserDropdown.vue b/schoolNewsWeb/src/components/base/UserDropdown.vue index 12d2380..4a41866 100644 --- a/schoolNewsWeb/src/components/base/UserDropdown.vue +++ b/schoolNewsWeb/src/components/base/UserDropdown.vue @@ -3,8 +3,8 @@ ref="dropdownRef" class="user-dropdown" @click="toggleDropdown" - @mouseenter="openDropdown" - @mouseleave="closeDropdown" + @mouseenter="props.disableHover ? undefined : openDropdown" + @mouseleave="props.disableHover ? undefined : closeDropdown" v-click-outside="forceCloseDropdown" > @@ -23,10 +23,9 @@ {{ avatarText }}
-
{{ user?.fullName || user?.username }}
+
{{ user?.username }}
{{ primaryRole }}
- @@ -36,8 +35,8 @@ :class="{ 'show': dropdownVisible }" :style="dropdownStyle" v-if="dropdownVisible" - @mouseenter="openDropdown" - @mouseleave="closeDropdown" + @mouseenter="props.disableHover ? undefined : openDropdown" + @mouseleave="props.disableHover ? undefined : closeDropdown" > + + + + +
+
+ 加载中... +
+
@@ -57,7 +78,7 @@