diff --git a/schoolNewsServ/.bin/mysql/sql/createTableAchievement.sql b/schoolNewsServ/.bin/mysql/sql/createTableAchievement.sql index 6ae0f06..49f3afd 100644 --- a/schoolNewsServ/.bin/mysql/sql/createTableAchievement.sql +++ b/schoolNewsServ/.bin/mysql/sql/createTableAchievement.sql @@ -19,7 +19,7 @@ CREATE TABLE `tb_achievement` ( `description` VARCHAR(500) DEFAULT NULL COMMENT '成就描述', `icon` VARCHAR(255) DEFAULT NULL COMMENT '成就图标URL', `type` INT DEFAULT 1 COMMENT '成就类型:1-勋章 2-等级', - `level` INT DEFAULT 1 COMMENT '成就等级:1-铜牌 2-银牌 3-金牌 4-钻石', + `level` FLOAT DEFAULT 1 COMMENT '成就等级:1-铜牌 2-银牌 3-金牌 4-钻石', `condition_type` INT NOT NULL COMMENT '触发条件类型:1-学习时长 2-资源数量 3-课程数量 4-连续登录 5-收藏数量 6-任务数量 7-积分数量 8-评论数量 9-章节数量 10-累计登录', `condition_value` INT NOT NULL COMMENT '条件值(达成所需的数值)', `points` INT DEFAULT 0 COMMENT '获得积分奖励', diff --git a/schoolNewsServ/.bin/mysql/sql/initAllData.sql b/schoolNewsServ/.bin/mysql/sql/initAllData.sql index f155b8b..c49774a 100644 --- a/schoolNewsServ/.bin/mysql/sql/initAllData.sql +++ b/schoolNewsServ/.bin/mysql/sql/initAllData.sql @@ -36,21 +36,87 @@ INSERT INTO `tb_sys_config` (`id`, `config_key`, `config_name`, `config_value`, -- ===================================================== +-- V1段:初学者 (0-10小时,每2小时一级) INSERT INTO `tb_achievement` (`id`, `achievement_id`, `name`,`icon`, `description`, `type`, `level`, `condition_type`, `condition_value`, `points`, `order_num`, `deleted`) VALUES -('ACH001', 'learning_time_l1', '初学者', 'v1-icon.svg', '累计学习时长达到10小时', 1, 1, 1, 10*60*60, 10, 1, 0), -('ACH002', 'learning_time_l2', '勤学者', 'v2-icon.svg', '累计学习时长达到50小时', 1, 2, 1, 50*60*60, 50, 2, 0), -('ACH003', 'learning_time_l3', '学习达人', 'v3-icon.svg', '累计学习时长达到100小时', 1, 3, 1, 100*60*60, 100, 3, 0), -('ACH004', 'learning_time_l4', '学习狂人', 'v4-icon.svg', '累计学习时长达到500小时', 1, 4, 1, 500*60*60, 500, 4, 0), -('ACH005', 'learning_time_l5', '学习大师', 'v5-icon.svg', '累计学习时长达到1000小时', 1, 5, 1, 1000*60*60, 1000, 5, 0), -('ACH006', 'learning_time_l6', '学习宗师', 'v6-icon.svg', '累计学习时长达到2000小时', 1, 6, 1, 2000*60*60, 2000, 6, 0); +('ACH001', 'learning_time_l1_1', '初学者 I', 'v1-icon.svg', '开始学习之旅', 2, 1.1, 1, 0, 5, 1, 0), +('ACH002', 'learning_time_l1_2', '初学者 II', 'v1-icon.svg', '累计学习时长达到2小时', 2, 1.2, 1, 2*60*60, 10, 2, 0), +('ACH003', 'learning_time_l1_3', '初学者 III', 'v1-icon.svg', '累计学习时长达到4小时', 2, 1.3, 1, 4*60*60, 15, 3, 0), +('ACH004', 'learning_time_l1_4', '初学者 IV', 'v1-icon.svg', '累计学习时长达到6小时', 2, 1.4, 1, 6*60*60, 20, 4, 0), +('ACH005', 'learning_time_l1_5', '初学者 V', 'v1-icon.svg', '累计学习时长达到10小时', 2, 1.5, 1, 10*60*60, 25, 5, 0), +-- V2段:勤学者 (10-30小时,每4小时一级) +('ACH006', 'learning_time_l2_1', '勤学者 I', 'v2-icon.svg', '累计学习时长达到14小时', 2, 2.1, 1, 14*60*60, 30, 6, 0), +('ACH007', 'learning_time_l2_2', '勤学者 II', 'v2-icon.svg', '累计学习时长达到18小时', 2, 2.2, 1, 18*60*60, 35, 7, 0), +('ACH008', 'learning_time_l2_3', '勤学者 III', 'v2-icon.svg', '累计学习时长达到22小时', 2, 2.3, 1, 22*60*60, 40, 8, 0), +('ACH009', 'learning_time_l2_4', '勤学者 IV', 'v2-icon.svg', '累计学习时长达到26小时', 2, 2.4, 1, 26*60*60, 45, 9, 0), +('ACH010', 'learning_time_l2_5', '勤学者 V', 'v2-icon.svg', '累计学习时长达到30小时', 2, 2.5, 1, 30*60*60, 50, 10, 0), + +-- V3段:学习达人 (30-100小时,每14小时一级) +('ACH011', 'learning_time_l3_1', '学习达人 I', 'v3-icon.svg', '累计学习时长达到44小时', 2, 3.1, 1, 44*60*60, 60, 11, 0), +('ACH012', 'learning_time_l3_2', '学习达人 II', 'v3-icon.svg', '累计学习时长达到58小时', 2, 3.2, 1, 58*60*60, 70, 12, 0), +('ACH013', 'learning_time_l3_3', '学习达人 III', 'v3-icon.svg', '累计学习时长达到72小时', 2, 3.3, 1, 72*60*60, 80, 13, 0), +('ACH014', 'learning_time_l3_4', '学习达人 IV', 'v3-icon.svg', '累计学习时长达到86小时', 2, 3.4, 1, 86*60*60, 90, 14, 0), +('ACH015', 'learning_time_l3_5', '学习达人 V', 'v3-icon.svg', '累计学习时长达到100小时', 2, 3.5, 1, 100*60*60, 100, 15, 0), + +-- V4段:学习狂人 (100-300小时,每40小时一级) +('ACH016', 'learning_time_l4_1', '学习狂人 I', 'v4-icon.svg', '累计学习时长达到140小时', 2, 4.1, 1, 140*60*60, 120, 16, 0), +('ACH017', 'learning_time_l4_2', '学习狂人 II', 'v4-icon.svg', '累计学习时长达到180小时', 2, 4.2, 1, 180*60*60, 140, 17, 0), +('ACH018', 'learning_time_l4_3', '学习狂人 III', 'v4-icon.svg', '累计学习时长达到220小时', 2, 4.3, 1, 220*60*60, 160, 18, 0), +('ACH019', 'learning_time_l4_4', '学习狂人 IV', 'v4-icon.svg', '累计学习时长达到260小时', 2, 4.4, 1, 260*60*60, 180, 19, 0), +('ACH020', 'learning_time_l4_5', '学习狂人 V', 'v4-icon.svg', '累计学习时长达到300小时', 2, 4.5, 1, 300*60*60, 200, 20, 0), + +-- V5段:学习大师 (300-1000小时,每140小时一级) +('ACH021', 'learning_time_l5_1', '学习大师 I', 'v5-icon.svg', '累计学习时长达到440小时', 2, 5.1, 1, 440*60*60, 250, 21, 0), +('ACH022', 'learning_time_l5_2', '学习大师 II', 'v5-icon.svg', '累计学习时长达到580小时', 2, 5.2, 1, 580*60*60, 300, 22, 0), +('ACH023', 'learning_time_l5_3', '学习大师 III', 'v5-icon.svg', '累计学习时长达到720小时', 2, 5.3, 1, 720*60*60, 350, 23, 0), +('ACH024', 'learning_time_l5_4', '学习大师 IV', 'v5-icon.svg', '累计学习时长达到860小时', 2, 5.4, 1, 860*60*60, 400, 24, 0), +('ACH025', 'learning_time_l5_5', '学习大师 V', 'v5-icon.svg', '累计学习时长达到1000小时', 2, 5.5, 1, 1000*60*60, 500, 25, 0), + +-- V6段:学习宗师 (1000-2000小时,每200小时一级) +('ACH026', 'learning_time_l6_1', '学习宗师 I', 'v6-icon.svg', '累计学习时长达到1200小时', 2, 6.1, 1, 1200*60*60, 600, 26, 0), +('ACH027', 'learning_time_l6_2', '学习宗师 II', 'v6-icon.svg', '累计学习时长达到1400小时', 2, 6.2, 1, 1400*60*60, 700, 27, 0), +('ACH028', 'learning_time_l6_3', '学习宗师 III', 'v6-icon.svg', '累计学习时长达到1600小时', 2, 6.3, 1, 1600*60*60, 800, 28, 0), +('ACH029', 'learning_time_l6_4', '学习宗师 IV', 'v6-icon.svg', '累计学习时长达到1800小时', 2, 6.4, 1, 1800*60*60, 900, 29, 0), +('ACH030', 'learning_time_l6_5', '学习宗师 V', 'v6-icon.svg', '累计学习时长达到2000小时', 2, 6.5, 1, 2000*60*60, 1000, 30, 0); + +-- 为所有成就创建资源权限 INSERT INTO `tb_resource_permission` (id, resource_type, resource_id, dept_id, role_id, can_read, can_write, can_execute, creator, create_time) VALUES -('perm_achievement_001', 6, 'learning_time_l1', NULL, NULL, 1, 0, 0, '1', now()), -('perm_achievement_002', 6, 'learning_time_l2', NULL, NULL, 1, 0, 0, '1', now()), -('perm_achievement_003', 6, 'learning_time_l3', NULL, NULL, 1, 0, 0, '1', now()), -('perm_achievement_004', 6, 'learning_time_l4', NULL, NULL, 1, 0, 0, '1', now()), -('perm_achievement_005', 6, 'learning_time_l5', NULL, NULL, 1, 0, 0, '1', now()), -('perm_achievement_006', 6, 'learning_time_l6', NULL, NULL, 1, 0, 0, '1', now()); +-- V1段权限 +('perm_achievement_001', 6, 'learning_time_l1_1', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_002', 6, 'learning_time_l1_2', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_003', 6, 'learning_time_l1_3', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_004', 6, 'learning_time_l1_4', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_005', 6, 'learning_time_l1_5', NULL, NULL, 1, 0, 0, '1', now()), +-- V2段权限 +('perm_achievement_006', 6, 'learning_time_l2_1', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_007', 6, 'learning_time_l2_2', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_008', 6, 'learning_time_l2_3', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_009', 6, 'learning_time_l2_4', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_010', 6, 'learning_time_l2_5', NULL, NULL, 1, 0, 0, '1', now()), +-- V3段权限 +('perm_achievement_011', 6, 'learning_time_l3_1', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_012', 6, 'learning_time_l3_2', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_013', 6, 'learning_time_l3_3', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_014', 6, 'learning_time_l3_4', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_015', 6, 'learning_time_l3_5', NULL, NULL, 1, 0, 0, '1', now()), +-- V4段权限 +('perm_achievement_016', 6, 'learning_time_l4_1', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_017', 6, 'learning_time_l4_2', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_018', 6, 'learning_time_l4_3', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_019', 6, 'learning_time_l4_4', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_020', 6, 'learning_time_l4_5', NULL, NULL, 1, 0, 0, '1', now()), +-- V5段权限 +('perm_achievement_021', 6, 'learning_time_l5_1', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_022', 6, 'learning_time_l5_2', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_023', 6, 'learning_time_l5_3', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_024', 6, 'learning_time_l5_4', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_025', 6, 'learning_time_l5_5', NULL, NULL, 1, 0, 0, '1', now()), +-- V6段权限 +('perm_achievement_026', 6, 'learning_time_l6_1', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_027', 6, 'learning_time_l6_2', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_028', 6, 'learning_time_l6_3', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_029', 6, 'learning_time_l6_4', NULL, NULL, 1, 0, 0, '1', now()), +('perm_achievement_030', 6, 'learning_time_l6_5', NULL, NULL, 1, 0, 0, '1', now()); -- 为默认标签创建超级管理员权限(文章标签) INSERT INTO `tb_resource_permission` (id, resource_type, resource_id, dept_id, role_id, can_read, can_write, can_execute, creator, create_time) VALUES diff --git a/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/mapper/AchievementMapper.java b/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/mapper/AchievementMapper.java index a11aba6..7e3a013 100644 --- a/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/mapper/AchievementMapper.java +++ b/schoolNewsServ/achievement/src/main/java/org/xyzh/achievement/mapper/AchievementMapper.java @@ -50,7 +50,7 @@ public interface AchievementMapper extends BaseMapper { * @param userDeptRoles 用户部门角色列表 * @return List 成就列表 */ - List selectByTypeAndLevel(@Param("type") Integer type, @Param("level") Integer level, @Param("userDeptRoles") List userDeptRoles); + List selectByTypeAndLevel(@Param("type") Integer type, @Param("level") Float level, @Param("userDeptRoles") List userDeptRoles); /** * @description 根据条件类型查询成就列表 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 1ca2642..90a114d 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 @@ -765,7 +765,7 @@ public class ACHAchievementServiceImpl implements AchievementService { if (result > 0) { updateProgressToCompleted(userID, achievement.getAchievementID()); - // 检查是否需要更新用户等级(learning_time开头的成就) + // 检查是否需要更新用户等级(等级类型成就) updateUserLevelIfNeeded(userID, achievement); return userAchievement; @@ -835,15 +835,15 @@ public class ACHAchievementServiceImpl implements AchievementService { } /** - * 检查并更新用户等级(仅针对learning_time开头的成就) + * 检查并更新用户等级(仅针对等级类型的成就) * @param userID 用户ID * @param achievement 成就对象 */ private void updateUserLevelIfNeeded(String userID, TbAchievement achievement) { try { - // 检查成就ID是否以learning_time开头 + // 检查成就type是否是2 if (achievement == null || achievement.getAchievementID() == null || - !achievement.getAchievementID().startsWith("learning_time")) { + achievement.getType() != 2) { return; } diff --git a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java index 64cce88..de9b5ce 100644 --- a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java +++ b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java @@ -60,7 +60,7 @@ public class TbSysUserInfo extends BaseDTO { * @author yslg * @since 2025-10-18 */ - private Integer level; + private Float level; /** * @description 身份证号 @@ -124,11 +124,11 @@ public class TbSysUserInfo extends BaseDTO { this.fullName = fullName; } - public Integer getLevel() { + public Float getLevel() { return level; } - public void setLevel(Integer level) { + public void setLevel(Float level) { this.level = level; } diff --git a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbAchievement.java b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbAchievement.java index 40242f6..38cd7d9 100644 --- a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbAchievement.java +++ b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbAchievement.java @@ -41,7 +41,7 @@ public class TbAchievement extends BaseDTO { /** * @description 成就等级 */ - private Integer level; + private Float level; /** * @description 获取条件类型(1学习时长 2资源数量 3课程数量 4连续学习天数) @@ -113,11 +113,11 @@ public class TbAchievement extends BaseDTO { this.type = type; } - public Integer getLevel() { + public Float getLevel() { return level; } - public void setLevel(Integer level) { + public void setLevel(Float level) { this.level = level; } diff --git a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbUserPoints.java b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbUserPoints.java index b2a0248..520ffaf 100644 --- a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbUserPoints.java +++ b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/usercenter/TbUserPoints.java @@ -31,7 +31,7 @@ public class TbUserPoints extends BaseDTO { /** * @description 用户等级 */ - private Integer level; + private Float level; public String getUserID() { return userID; @@ -57,11 +57,11 @@ public class TbUserPoints extends BaseDTO { this.currentPoints = currentPoints; } - public Integer getLevel() { + public Float getLevel() { return level; } - public void setLevel(Integer level) { + public void setLevel(Float level) { this.level = level; } diff --git a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java index 43c7a85..3af215f 100644 --- a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java +++ b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java @@ -15,7 +15,7 @@ public class UserVO { private String familyName; private String givenName; private String fullName; - private Integer level; + private Float level; private String idCard; private String address; private String deptID; @@ -132,10 +132,10 @@ public class UserVO { public void setRoleName(String roleName) { this.roleName = roleName; } - public Integer getLevel() { + public Float getLevel() { return level; } - public void setLevel(Integer level) { + public void setLevel(Float level) { this.level = level; } public Date getCreateTime() { diff --git a/schoolNewsWeb/public/img/achievement/v0-star.svg b/schoolNewsWeb/public/img/achievement/v0-star.svg new file mode 100644 index 0000000..ed1a03e --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v0-star.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/public/img/achievement/v1-star.svg b/schoolNewsWeb/public/img/achievement/v1-star.svg new file mode 100644 index 0000000..6a303a5 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v1-star.svg @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/public/img/achievement/v1.1.svg b/schoolNewsWeb/public/img/achievement/v1.1.svg new file mode 100644 index 0000000..62fe3b5 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v1.1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v1.2.svg b/schoolNewsWeb/public/img/achievement/v1.2.svg new file mode 100644 index 0000000..09257ea --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v1.2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v1.3.svg b/schoolNewsWeb/public/img/achievement/v1.3.svg new file mode 100644 index 0000000..42ac1ea --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v1.3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v1.4.svg b/schoolNewsWeb/public/img/achievement/v1.4.svg new file mode 100644 index 0000000..1992166 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v1.4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v1.5.svg b/schoolNewsWeb/public/img/achievement/v1.5.svg new file mode 100644 index 0000000..6ef7745 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v1.5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v2-star.svg b/schoolNewsWeb/public/img/achievement/v2-star.svg new file mode 100644 index 0000000..d787607 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v2-star.svg @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/public/img/achievement/v2.1.svg b/schoolNewsWeb/public/img/achievement/v2.1.svg new file mode 100644 index 0000000..37622ad --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v2.1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v2.2.svg b/schoolNewsWeb/public/img/achievement/v2.2.svg new file mode 100644 index 0000000..e26719e --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v2.2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v2.3.svg b/schoolNewsWeb/public/img/achievement/v2.3.svg new file mode 100644 index 0000000..86ff657 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v2.3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v2.4.svg b/schoolNewsWeb/public/img/achievement/v2.4.svg new file mode 100644 index 0000000..2589d24 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v2.4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v2.5.svg b/schoolNewsWeb/public/img/achievement/v2.5.svg new file mode 100644 index 0000000..4202c15 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v2.5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v3-star.svg b/schoolNewsWeb/public/img/achievement/v3-star.svg new file mode 100644 index 0000000..75225bd --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v3-star.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/public/img/achievement/v3.1.svg b/schoolNewsWeb/public/img/achievement/v3.1.svg new file mode 100644 index 0000000..fb34294 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v3.1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v3.2.svg b/schoolNewsWeb/public/img/achievement/v3.2.svg new file mode 100644 index 0000000..6cbc6f4 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v3.2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v3.3.svg b/schoolNewsWeb/public/img/achievement/v3.3.svg new file mode 100644 index 0000000..2b024cf --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v3.3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v3.4.svg b/schoolNewsWeb/public/img/achievement/v3.4.svg new file mode 100644 index 0000000..1538b20 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v3.4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v3.5.svg b/schoolNewsWeb/public/img/achievement/v3.5.svg new file mode 100644 index 0000000..ffde342 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v3.5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v4-star.svg b/schoolNewsWeb/public/img/achievement/v4-star.svg new file mode 100644 index 0000000..7208a88 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v4-star.svg @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/public/img/achievement/v4.1.svg b/schoolNewsWeb/public/img/achievement/v4.1.svg new file mode 100644 index 0000000..f153f6b --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v4.1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v4.2.svg b/schoolNewsWeb/public/img/achievement/v4.2.svg new file mode 100644 index 0000000..3e9dc7e --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v4.2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v4.3.svg b/schoolNewsWeb/public/img/achievement/v4.3.svg new file mode 100644 index 0000000..9899b52 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v4.3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v4.4.svg b/schoolNewsWeb/public/img/achievement/v4.4.svg new file mode 100644 index 0000000..59716b8 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v4.4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v4.5.svg b/schoolNewsWeb/public/img/achievement/v4.5.svg new file mode 100644 index 0000000..881b0fe --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v4.5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v5-star.svg b/schoolNewsWeb/public/img/achievement/v5-star.svg new file mode 100644 index 0000000..6e66347 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v5-star.svg @@ -0,0 +1,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/public/img/achievement/v5.1.svg b/schoolNewsWeb/public/img/achievement/v5.1.svg new file mode 100644 index 0000000..637a35e --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v5.1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v5.2.svg b/schoolNewsWeb/public/img/achievement/v5.2.svg new file mode 100644 index 0000000..20d63e4 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v5.2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v5.3.svg b/schoolNewsWeb/public/img/achievement/v5.3.svg new file mode 100644 index 0000000..df65533 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v5.3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v5.4.svg b/schoolNewsWeb/public/img/achievement/v5.4.svg new file mode 100644 index 0000000..022f7e8 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v5.4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v5.5.svg b/schoolNewsWeb/public/img/achievement/v5.5.svg new file mode 100644 index 0000000..50129e2 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v5.5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v6.1.svg b/schoolNewsWeb/public/img/achievement/v6.1.svg new file mode 100644 index 0000000..59cea5a --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v6.1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v6.2.svg b/schoolNewsWeb/public/img/achievement/v6.2.svg new file mode 100644 index 0000000..2eef3d4 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v6.2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v6.3.svg b/schoolNewsWeb/public/img/achievement/v6.3.svg new file mode 100644 index 0000000..e11d241 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v6.3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v6.4.svg b/schoolNewsWeb/public/img/achievement/v6.4.svg new file mode 100644 index 0000000..870e7ae --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v6.4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/public/img/achievement/v6.5.svg b/schoolNewsWeb/public/img/achievement/v6.5.svg new file mode 100644 index 0000000..f05e803 --- /dev/null +++ b/schoolNewsWeb/public/img/achievement/v6.5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/schoolNewsWeb/src/assets/imgs/achievement-name.svg b/schoolNewsWeb/src/assets/imgs/achievement-name.svg new file mode 100644 index 0000000..17f51c5 --- /dev/null +++ b/schoolNewsWeb/src/assets/imgs/achievement-name.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/schoolNewsWeb/src/types/enums/achievement-enums.ts b/schoolNewsWeb/src/types/enums/achievement-enums.ts index 3cb291e..715b0f9 100644 --- a/schoolNewsWeb/src/types/enums/achievement-enums.ts +++ b/schoolNewsWeb/src/types/enums/achievement-enums.ts @@ -19,15 +19,15 @@ export const AchievementTypeDescriptions: Record = { */ export const AchievementConditionTypeDescriptions: Record = { [AchievementConditionType.LEARNING_TIME]: '学习时长', - [AchievementConditionType.RESOURCE_VIEW_COUNT]: '浏览资源数量', - [AchievementConditionType.COURSE_COMPLETE_COUNT]: '完成课程数量', - [AchievementConditionType.CONTINUOUS_LOGIN_DAYS]: '连续登录天数', - [AchievementConditionType.RESOURCE_COLLECT_COUNT]: '收藏资源数量', - [AchievementConditionType.TASK_COMPLETE_COUNT]: '完成任务数量', - [AchievementConditionType.POINTS_EARNED]: '获得积分数量', - [AchievementConditionType.COMMENT_COUNT]: '发表评论数量', - [AchievementConditionType.CHAPTER_COMPLETE_COUNT]: '完成章节数量', - [AchievementConditionType.TOTAL_LOGIN_DAYS]: '累计登录天数' + // [AchievementConditionType.RESOURCE_VIEW_COUNT]: '浏览资源数量', + // [AchievementConditionType.COURSE_COMPLETE_COUNT]: '完成课程数量', + // [AchievementConditionType.CONTINUOUS_LOGIN_DAYS]: '连续登录天数', + // [AchievementConditionType.RESOURCE_COLLECT_COUNT]: '收藏资源数量', + // [AchievementConditionType.TASK_COMPLETE_COUNT]: '完成任务数量', + // [AchievementConditionType.POINTS_EARNED]: '获得积分数量', + // [AchievementConditionType.COMMENT_COUNT]: '发表评论数量', + // [AchievementConditionType.CHAPTER_COMPLETE_COUNT]: '完成章节数量', + // [AchievementConditionType.TOTAL_LOGIN_DAYS]: '累计登录天数' }; /** @@ -36,27 +36,27 @@ export const AchievementConditionTypeDescriptions: Record = { // 学习相关事件 [AchievementEventType.LEARNING_TIME_UPDATED]: '学习时长更新', - [AchievementEventType.COURSE_COMPLETED]: '课程完成', - [AchievementEventType.COURSE_STARTED]: '开始学习课程', - [AchievementEventType.CHAPTER_COMPLETED]: '章节完成', - // 资源相关事件 - [AchievementEventType.RESOURCE_VIEWED]: '浏览资源', - [AchievementEventType.RESOURCE_COLLECTED]: '收藏资源', - [AchievementEventType.RESOURCE_SHARED]: '分享资源', - // 任务相关事件 - [AchievementEventType.TASK_COMPLETED]: '任务完成', - [AchievementEventType.TASK_ITEM_COMPLETED]: '任务项完成', - // 互动相关事件 - [AchievementEventType.COMMENT_POSTED]: '发表评论', - [AchievementEventType.LIKE_GIVEN]: '点赞', - // 登录相关事件 - [AchievementEventType.USER_LOGIN]: '用户登录', - [AchievementEventType.CONTINUOUS_LOGIN]: '连续登录', - // 积分相关事件 - [AchievementEventType.POINTS_EARNED_EVENT]: '获得积分', - // 测试相关事件 - [AchievementEventType.TEST_PASSED]: '测试通过', - [AchievementEventType.TEST_PERFECT_SCORE]: '测试满分' + // [AchievementEventType.COURSE_COMPLETED]: '课程完成', + // [AchievementEventType.COURSE_STARTED]: '开始学习课程', + // [AchievementEventType.CHAPTER_COMPLETED]: '章节完成', + // // 资源相关事件 + // [AchievementEventType.RESOURCE_VIEWED]: '浏览资源', + // [AchievementEventType.RESOURCE_COLLECTED]: '收藏资源', + // [AchievementEventType.RESOURCE_SHARED]: '分享资源', + // // 任务相关事件 + // [AchievementEventType.TASK_COMPLETED]: '任务完成', + // [AchievementEventType.TASK_ITEM_COMPLETED]: '任务项完成', + // // 互动相关事件 + // [AchievementEventType.COMMENT_POSTED]: '发表评论', + // [AchievementEventType.LIKE_GIVEN]: '点赞', + // // 登录相关事件 + // [AchievementEventType.USER_LOGIN]: '用户登录', + // [AchievementEventType.CONTINUOUS_LOGIN]: '连续登录', + // // 积分相关事件 + // [AchievementEventType.POINTS_EARNED_EVENT]: '获得积分', + // // 测试相关事件 + // [AchievementEventType.TEST_PASSED]: '测试通过', + // [AchievementEventType.TEST_PERFECT_SCORE]: '测试满分' }; /** @@ -160,24 +160,24 @@ export class AchievementEnumHelper { switch (conditionType) { case AchievementConditionType.LEARNING_TIME: return `${typeDesc}达到${conditionValue/60}分钟`; - case AchievementConditionType.RESOURCE_VIEW_COUNT: - return `${typeDesc}达到${conditionValue}个`; - case AchievementConditionType.COURSE_COMPLETE_COUNT: - return `${typeDesc}达到${conditionValue}门`; - case AchievementConditionType.CONTINUOUS_LOGIN_DAYS: - return `${typeDesc}达到${conditionValue}天`; - case AchievementConditionType.RESOURCE_COLLECT_COUNT: - return `${typeDesc}达到${conditionValue}个`; - case AchievementConditionType.TASK_COMPLETE_COUNT: - return `${typeDesc}达到${conditionValue}个`; - case AchievementConditionType.POINTS_EARNED: - return `${typeDesc}达到${conditionValue}分`; - case AchievementConditionType.COMMENT_COUNT: - return `${typeDesc}达到${conditionValue}条`; - case AchievementConditionType.CHAPTER_COMPLETE_COUNT: - return `${typeDesc}达到${conditionValue}个`; - case AchievementConditionType.TOTAL_LOGIN_DAYS: - return `${typeDesc}达到${conditionValue}天`; + // case AchievementConditionType.RESOURCE_VIEW_COUNT: + // return `${typeDesc}达到${conditionValue}个`; + // case AchievementConditionType.COURSE_COMPLETE_COUNT: + // return `${typeDesc}达到${conditionValue}门`; + // case AchievementConditionType.CONTINUOUS_LOGIN_DAYS: + // return `${typeDesc}达到${conditionValue}天`; + // case AchievementConditionType.RESOURCE_COLLECT_COUNT: + // return `${typeDesc}达到${conditionValue}个`; + // case AchievementConditionType.TASK_COMPLETE_COUNT: + // return `${typeDesc}达到${conditionValue}个`; + // case AchievementConditionType.POINTS_EARNED: + // return `${typeDesc}达到${conditionValue}分`; + // case AchievementConditionType.COMMENT_COUNT: + // return `${typeDesc}达到${conditionValue}条`; + // case AchievementConditionType.CHAPTER_COMPLETE_COUNT: + // return `${typeDesc}达到${conditionValue}个`; + // case AchievementConditionType.TOTAL_LOGIN_DAYS: + // return `${typeDesc}达到${conditionValue}天`; default: return `${typeDesc}达到${conditionValue}`; } diff --git a/schoolNewsWeb/src/types/enums/index.ts b/schoolNewsWeb/src/types/enums/index.ts index 92ad456..d7cf023 100644 --- a/schoolNewsWeb/src/types/enums/index.ts +++ b/schoolNewsWeb/src/types/enums/index.ts @@ -239,24 +239,24 @@ export enum AchievementType { export enum AchievementConditionType { /** 学习时长(分钟) */ LEARNING_TIME = 1, - /** 浏览资源数量 */ - RESOURCE_VIEW_COUNT = 2, - /** 完成课程数量 */ - COURSE_COMPLETE_COUNT = 3, - /** 连续登录天数 */ - CONTINUOUS_LOGIN_DAYS = 4, - /** 收藏资源数量 */ - RESOURCE_COLLECT_COUNT = 5, - /** 完成任务数量 */ - TASK_COMPLETE_COUNT = 6, - /** 获得积分数量 */ - POINTS_EARNED = 7, - /** 发表评论数量 */ - COMMENT_COUNT = 8, - /** 完成章节数量 */ - CHAPTER_COMPLETE_COUNT = 9, - /** 累计登录天数 */ - TOTAL_LOGIN_DAYS = 10 + // /** 浏览资源数量 */ + // RESOURCE_VIEW_COUNT = 2, + // /** 完成课程数量 */ + // COURSE_COMPLETE_COUNT = 3, + // /** 连续登录天数 */ + // CONTINUOUS_LOGIN_DAYS = 4, + // /** 收藏资源数量 */ + // RESOURCE_COLLECT_COUNT = 5, + // /** 完成任务数量 */ + // TASK_COMPLETE_COUNT = 6, + // /** 获得积分数量 */ + // POINTS_EARNED = 7, + // /** 发表评论数量 */ + // COMMENT_COUNT = 8, + // /** 完成章节数量 */ + // CHAPTER_COMPLETE_COUNT = 9, + // /** 累计登录天数 */ + // TOTAL_LOGIN_DAYS = 10 } /** @@ -266,46 +266,46 @@ export enum AchievementEventType { // ==================== 学习相关事件 ==================== /** 学习时长更新 */ LEARNING_TIME_UPDATED = 'learning_time_updated', - /** 课程完成 */ - COURSE_COMPLETED = 'course_completed', - /** 开始学习课程 */ - COURSE_STARTED = 'course_started', - /** 章节完成 */ - CHAPTER_COMPLETED = 'chapter_completed', + // /** 课程完成 */ + // COURSE_COMPLETED = 'course_completed', + // /** 开始学习课程 */ + // COURSE_STARTED = 'course_started', + // /** 章节完成 */ + // CHAPTER_COMPLETED = 'chapter_completed', - // ==================== 资源相关事件 ==================== - /** 浏览资源 */ - RESOURCE_VIEWED = 'resource_viewed', - /** 收藏资源 */ - RESOURCE_COLLECTED = 'resource_collected', - /** 分享资源 */ - RESOURCE_SHARED = 'resource_shared', + // // ==================== 资源相关事件 ==================== + // /** 浏览资源 */ + // RESOURCE_VIEWED = 'resource_viewed', + // /** 收藏资源 */ + // RESOURCE_COLLECTED = 'resource_collected', + // /** 分享资源 */ + // RESOURCE_SHARED = 'resource_shared', - // ==================== 任务相关事件 ==================== - /** 任务完成 */ - TASK_COMPLETED = 'task_completed', - /** 任务项完成 */ - TASK_ITEM_COMPLETED = 'task_item_completed', + // // ==================== 任务相关事件 ==================== + // /** 任务完成 */ + // TASK_COMPLETED = 'task_completed', + // /** 任务项完成 */ + // TASK_ITEM_COMPLETED = 'task_item_completed', - // ==================== 互动相关事件 ==================== - /** 发表评论 */ - COMMENT_POSTED = 'comment_posted', - /** 点赞 */ - LIKE_GIVEN = 'like_given', + // // ==================== 互动相关事件 ==================== + // /** 发表评论 */ + // COMMENT_POSTED = 'comment_posted', + // /** 点赞 */ + // LIKE_GIVEN = 'like_given', - // ==================== 登录相关事件 ==================== - /** 用户登录 */ - USER_LOGIN = 'user_login', - /** 连续登录 */ - CONTINUOUS_LOGIN = 'continuous_login', + // // ==================== 登录相关事件 ==================== + // /** 用户登录 */ + // USER_LOGIN = 'user_login', + // /** 连续登录 */ + // CONTINUOUS_LOGIN = 'continuous_login', - // ==================== 积分相关事件 ==================== - /** 获得积分 */ - POINTS_EARNED_EVENT = 'points_earned', + // // ==================== 积分相关事件 ==================== + // /** 获得积分 */ + // POINTS_EARNED_EVENT = 'points_earned', - // ==================== 测试相关事件 ==================== - /** 测试通过 */ - TEST_PASSED = 'test_passed', - /** 测试满分 */ - TEST_PERFECT_SCORE = 'test_perfect_score' + // // ==================== 测试相关事件 ==================== + // /** 测试通过 */ + // TEST_PASSED = 'test_passed', + // /** 测试满分 */ + // TEST_PERFECT_SCORE = 'test_perfect_score' } \ No newline at end of file diff --git a/schoolNewsWeb/src/utils/iconUtils.ts b/schoolNewsWeb/src/utils/iconUtils.ts index d2180fc..71e11e9 100644 --- a/schoolNewsWeb/src/utils/iconUtils.ts +++ b/schoolNewsWeb/src/utils/iconUtils.ts @@ -65,3 +65,23 @@ export function getLevelIconUrl(level = 1): string { return getIconUrl(`v${validLevel}-icon.svg`, 'achievement'); } +/** + * 根据等级获取等级图标URL + * @param level 等级(1-6) + * @returns 等级图标URL + */ +export function getLevelWordIconUrl(level = 1): string { + const validLevel = Math.max(1, Math.min(6, level)); // 限制在1-6之间 + return getIconUrl(`v${validLevel}.svg`, 'achievement'); +} + +export function getLevelStarIconUrl(level = 1): string { + // 根据小数点判断 无小数点是v0-star.svg 有小数点是0.5 是v5-star.svg + // 转换浮点数 + const floatLevel = parseFloat(level.toString()); + // 小数点后的值 .1到.5 + const decimal = floatLevel % 1; + const val = decimal * 10; + return getIconUrl(`v${val}-star.svg`, 'achievement'); +} + diff --git a/schoolNewsWeb/src/views/user/user-center/MyAchievementsView.vue b/schoolNewsWeb/src/views/user/user-center/MyAchievementsView.vue index 69dd4d8..ff19f3b 100644 --- a/schoolNewsWeb/src/views/user/user-center/MyAchievementsView.vue +++ b/schoolNewsWeb/src/views/user/user-center/MyAchievementsView.vue @@ -1,124 +1,56 @@