From 38dfd10b4302bb373427240c50640481f9c95273 Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 23 Feb 2026 12:03:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(assessment):=20=E6=B5=8B=E8=AF=84=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=A2=9E=E5=8A=A0LinkUrl=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=8F=AF=E9=85=8D=E7=BD=AE=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - assessment_types表新增LinkUrl字段 - 后端实体类、DTO、请求模型、服务层全链路支持LinkUrl - 前端首页卡片点击改为读取后台配置的linkUrl跳转 - 测评类页面自动拼接typeId/typeName参数 --- .../Entities/AssessmentType.cs | 6 ++++++ .../Models/Assessment/AssessmentTypeDto.cs | 5 +++++ .../Assessment/CreateAssessmentTypeRequest.cs | 6 ++++++ .../Assessment/UpdateAssessmentTypeRequest.cs | 6 ++++++ .../Services/AssessmentService.cs | 4 ++++ .../MiAssessment.Core/Services/HomeService.cs | 1 + .../Entities/AssessmentType.cs | 6 ++++++ .../Models/Home/AssessmentTypeDto.cs | 5 +++++ uniapp/pages/index/index.vue | 17 +++++++++++++++-- 9 files changed, 54 insertions(+), 2 deletions(-) diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/AssessmentType.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/AssessmentType.cs index a15d4e2..9b6666f 100644 --- a/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/AssessmentType.cs +++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/AssessmentType.cs @@ -36,6 +36,12 @@ public class AssessmentType [MaxLength(500)] public string? ImageUrl { get; set; } + /// + /// 跳转链接URL + /// + [MaxLength(500)] + public string? LinkUrl { get; set; } + /// /// 详情横幅图URL /// diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/AssessmentTypeDto.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/AssessmentTypeDto.cs index 5a48868..693120e 100644 --- a/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/AssessmentTypeDto.cs +++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/AssessmentTypeDto.cs @@ -25,6 +25,11 @@ public class AssessmentTypeDto /// public string? ImageUrl { get; set; } + /// + /// 跳转链接URL + /// + public string? LinkUrl { get; set; } + /// /// 详情横幅图URL /// diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/CreateAssessmentTypeRequest.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/CreateAssessmentTypeRequest.cs index 038a6ed..8e89f88 100644 --- a/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/CreateAssessmentTypeRequest.cs +++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/CreateAssessmentTypeRequest.cs @@ -27,6 +27,12 @@ public class CreateAssessmentTypeRequest [MaxLength(500, ErrorMessage = "图片URL不能超过500个字符")] public string? ImageUrl { get; set; } + /// + /// 跳转链接URL + /// + [MaxLength(500, ErrorMessage = "跳转链接URL不能超过500个字符")] + public string? LinkUrl { get; set; } + /// /// 详情横幅图URL /// diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/UpdateAssessmentTypeRequest.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/UpdateAssessmentTypeRequest.cs index 51601aa..9295f24 100644 --- a/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/UpdateAssessmentTypeRequest.cs +++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Models/Assessment/UpdateAssessmentTypeRequest.cs @@ -33,6 +33,12 @@ public class UpdateAssessmentTypeRequest [MaxLength(500, ErrorMessage = "图片URL不能超过500个字符")] public string? ImageUrl { get; set; } + /// + /// 跳转链接URL + /// + [MaxLength(500, ErrorMessage = "跳转链接URL不能超过500个字符")] + public string? LinkUrl { get; set; } + /// /// 详情横幅图URL /// diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Services/AssessmentService.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Services/AssessmentService.cs index 01e97e3..fd0167d 100644 --- a/server/MiAssessment/src/MiAssessment.Admin.Business/Services/AssessmentService.cs +++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Services/AssessmentService.cs @@ -83,6 +83,7 @@ public class AssessmentService : IAssessmentService Name = t.Name, Code = t.Code, ImageUrl = t.ImageUrl, + LinkUrl = t.LinkUrl, DetailImageUrl = t.DetailImageUrl, IntroContent = t.IntroContent, Price = t.Price, @@ -109,6 +110,7 @@ public class AssessmentService : IAssessmentService Name = t.Name, Code = t.Code, ImageUrl = t.ImageUrl, + LinkUrl = t.LinkUrl, DetailImageUrl = t.DetailImageUrl, IntroContent = t.IntroContent, Price = t.Price, @@ -161,6 +163,7 @@ public class AssessmentService : IAssessmentService Name = request.Name, Code = request.Code, ImageUrl = request.ImageUrl, + LinkUrl = request.LinkUrl, DetailImageUrl = request.DetailImageUrl, IntroContent = request.IntroContent, Price = request.Price, @@ -222,6 +225,7 @@ public class AssessmentService : IAssessmentService assessmentType.Name = request.Name; assessmentType.Code = request.Code; assessmentType.ImageUrl = request.ImageUrl; + assessmentType.LinkUrl = request.LinkUrl; assessmentType.DetailImageUrl = request.DetailImageUrl; assessmentType.IntroContent = request.IntroContent; assessmentType.Price = request.Price; diff --git a/server/MiAssessment/src/MiAssessment.Core/Services/HomeService.cs b/server/MiAssessment/src/MiAssessment.Core/Services/HomeService.cs index ddb38d1..53249a3 100644 --- a/server/MiAssessment/src/MiAssessment.Core/Services/HomeService.cs +++ b/server/MiAssessment/src/MiAssessment.Core/Services/HomeService.cs @@ -66,6 +66,7 @@ public class HomeService : IHomeService Name = a.Name, Code = a.Code, ImageUrl = a.ImageUrl ?? string.Empty, + LinkUrl = a.LinkUrl, Price = a.Price, Status = a.Status }) diff --git a/server/MiAssessment/src/MiAssessment.Model/Entities/AssessmentType.cs b/server/MiAssessment/src/MiAssessment.Model/Entities/AssessmentType.cs index efcb949..bc20938 100644 --- a/server/MiAssessment/src/MiAssessment.Model/Entities/AssessmentType.cs +++ b/server/MiAssessment/src/MiAssessment.Model/Entities/AssessmentType.cs @@ -36,6 +36,12 @@ public class AssessmentType [MaxLength(500)] public string? ImageUrl { get; set; } + /// + /// 跳转链接URL + /// + [MaxLength(500)] + public string? LinkUrl { get; set; } + /// /// 详情横幅图URL /// diff --git a/server/MiAssessment/src/MiAssessment.Model/Models/Home/AssessmentTypeDto.cs b/server/MiAssessment/src/MiAssessment.Model/Models/Home/AssessmentTypeDto.cs index ecfea5b..35ad622 100644 --- a/server/MiAssessment/src/MiAssessment.Model/Models/Home/AssessmentTypeDto.cs +++ b/server/MiAssessment/src/MiAssessment.Model/Models/Home/AssessmentTypeDto.cs @@ -25,6 +25,11 @@ public class AssessmentTypeDto /// public string ImageUrl { get; set; } = null!; + /// + /// 跳转链接URL + /// + public string? LinkUrl { get; set; } + /// /// 价格 /// diff --git a/uniapp/pages/index/index.vue b/uniapp/pages/index/index.vue index 1f522a2..c379542 100644 --- a/uniapp/pages/index/index.vue +++ b/uniapp/pages/index/index.vue @@ -216,9 +216,22 @@ function handleAssessmentClick(item) { return } - // 跳转到测评信息填写页 + // 根据后台配置的跳转链接进行导航 + if (!item.linkUrl) return + + // 如果是测评页面,自动拼接 typeId 和 typeName 参数 + let url = item.linkUrl + if (url.includes('/pages/assessment/')) { + const separator = url.includes('?') ? '&' : '?' + url = `${url}${separator}typeId=${item.id}&typeName=${encodeURIComponent(item.name || '')}` + } + uni.navigateTo({ - url: `/pages/assessment/info/index?typeId=${item.id}&typeName=${encodeURIComponent(item.name || '')}` + url, + fail: () => { + // 如果是tabBar页面,使用switchTab + uni.switchTab({ url }) + } }) }