diff --git a/src/assets/icons/android.png b/src/assets/icons/android.png new file mode 100644 index 0000000..c6ff2fa Binary files /dev/null and b/src/assets/icons/android.png differ diff --git a/src/assets/icons/ios.png b/src/assets/icons/ios.png new file mode 100644 index 0000000..d8b9e2a Binary files /dev/null and b/src/assets/icons/ios.png differ diff --git a/src/styles/global.less b/src/styles/global.less index cef9d7c..26ff50a 100644 --- a/src/styles/global.less +++ b/src/styles/global.less @@ -30,6 +30,7 @@ @text-color: #0E0E0E; // 主文本色 @text-color-secondary: #66676C; // 次要文本色 +@text-color-primary: #18CA6E; // 主色调文本 @text-color-light: #748EA6; // 浅色文本 @bg-color: #fff; // 背景色 @bg-color-light: #f5f7fa; // 浅背景色 @@ -221,6 +222,27 @@ html, body { // 文本工具类 .text-bold { font-weight: @font-weight-bold; } .text-muted { color: @text-color-light; } +/* 两行文本省略样式 */ +.text-2-line-ellipsis { + /* 核心属性 */ + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + + /* 兼容性补充 */ + text-overflow: ellipsis; + word-break: break-word; + white-space: normal; + + /* 可选:自定义省略号样式 */ + /* 注意:部分浏览器不支持自定义省略号,这是一个实验性属性 */ + text-overflow: ellipsis; + -webkit-text-overflow: ellipsis; + + /* 防止长英文单词溢出 */ + word-wrap: break-word; +} // 响应式工具类 @media (max-width: @mobile-breakpoint) { diff --git a/src/views/About/About.vue b/src/views/About/About.vue index d2b119d..c27af0e 100644 --- a/src/views/About/About.vue +++ b/src/views/About/About.vue @@ -1,31 +1,29 @@ diff --git a/src/views/About/sections/Banner.vue b/src/views/About/sections/BannerCarousel.vue similarity index 99% rename from src/views/About/sections/Banner.vue rename to src/views/About/sections/BannerCarousel.vue index c3f2352..232d1a1 100644 --- a/src/views/About/sections/Banner.vue +++ b/src/views/About/sections/BannerCarousel.vue @@ -80,7 +80,8 @@ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3); diff --git a/src/views/About/sections/CompanyIntro.vue b/src/views/About/sections/CompanyIntro.vue new file mode 100644 index 0000000..6238f7c --- /dev/null +++ b/src/views/About/sections/CompanyIntro.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/views/About/sections/CompanyValues.vue b/src/views/About/sections/CompanyValues.vue new file mode 100644 index 0000000..029314c --- /dev/null +++ b/src/views/About/sections/CompanyValues.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/src/views/About/sections/MissionVision.vue b/src/views/About/sections/MissionVision.vue new file mode 100644 index 0000000..1b6cb15 --- /dev/null +++ b/src/views/About/sections/MissionVision.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/views/About/sections/Partners.vue b/src/views/About/sections/Partners.vue new file mode 100644 index 0000000..9a0e0df --- /dev/null +++ b/src/views/About/sections/Partners.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/About/sections/QualificationCarousel.vue b/src/views/About/sections/QualificationCarousel.vue new file mode 100644 index 0000000..be9e139 --- /dev/null +++ b/src/views/About/sections/QualificationCarousel.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/views/About/sections/RedefineHealth.vue b/src/views/About/sections/RedefineHealth.vue new file mode 100644 index 0000000..67da984 --- /dev/null +++ b/src/views/About/sections/RedefineHealth.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/views/App/App.vue b/src/views/App/App.vue index d2b119d..eb86ded 100644 --- a/src/views/App/App.vue +++ b/src/views/App/App.vue @@ -1,31 +1,50 @@ diff --git a/src/views/App/sections/ApplicationScenes.vue b/src/views/App/sections/ApplicationScenes.vue new file mode 100644 index 0000000..306e955 --- /dev/null +++ b/src/views/App/sections/ApplicationScenes.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/src/views/App/sections/Banner.vue b/src/views/App/sections/Banner.vue index 7b89e72..02bfda8 100644 --- a/src/views/App/sections/Banner.vue +++ b/src/views/App/sections/Banner.vue @@ -4,56 +4,56 @@ Banner背景 - - - - - - - - - - - - - - - +
+
+
+ +
+ {{ item.title }} +
+
@@ -80,7 +80,8 @@ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3); diff --git a/src/views/App/sections/DownloadSection.vue b/src/views/App/sections/DownloadSection.vue new file mode 100644 index 0000000..d6a0515 --- /dev/null +++ b/src/views/App/sections/DownloadSection.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/src/views/App/sections/FeatureNav.vue b/src/views/App/sections/FeatureNav.vue new file mode 100644 index 0000000..80e3e23 --- /dev/null +++ b/src/views/App/sections/FeatureNav.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/views/App/sections/HealthDevice.vue b/src/views/App/sections/HealthDevice.vue new file mode 100644 index 0000000..727740a --- /dev/null +++ b/src/views/App/sections/HealthDevice.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/views/App/sections/SpeechModule.vue b/src/views/App/sections/SpeechModule.vue new file mode 100644 index 0000000..007b09f --- /dev/null +++ b/src/views/App/sections/SpeechModule.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/views/Dating/Dating.vue b/src/views/Dating/Dating.vue index d2b119d..2c2fc39 100644 --- a/src/views/Dating/Dating.vue +++ b/src/views/Dating/Dating.vue @@ -1,31 +1,22 @@ diff --git a/src/views/Dating/sections/AiTags.vue b/src/views/Dating/sections/AiTags.vue new file mode 100644 index 0000000..d6ee11c --- /dev/null +++ b/src/views/Dating/sections/AiTags.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/Dating/sections/Banner.vue b/src/views/Dating/sections/Banner.vue index 41f0f4b..14d3889 100644 --- a/src/views/Dating/sections/Banner.vue +++ b/src/views/Dating/sections/Banner.vue @@ -80,7 +80,8 @@ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3); diff --git a/src/views/Dating/sections/PainPoints.vue b/src/views/Dating/sections/PainPoints.vue new file mode 100644 index 0000000..9a5b1c0 --- /dev/null +++ b/src/views/Dating/sections/PainPoints.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/Dating/sections/SuccessStories.vue b/src/views/Dating/sections/SuccessStories.vue new file mode 100644 index 0000000..008e638 --- /dev/null +++ b/src/views/Dating/sections/SuccessStories.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/views/Ecosystem/Ecosystem.vue b/src/views/Ecosystem/Ecosystem.vue index d2b119d..4b9adca 100644 --- a/src/views/Ecosystem/Ecosystem.vue +++ b/src/views/Ecosystem/Ecosystem.vue @@ -1,31 +1,32 @@ diff --git a/src/views/Ecosystem/sections/Banner.vue b/src/views/Ecosystem/sections/Banner.vue index 59d732d..6542a60 100644 --- a/src/views/Ecosystem/sections/Banner.vue +++ b/src/views/Ecosystem/sections/Banner.vue @@ -80,7 +80,8 @@ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3); diff --git a/src/views/Ecosystem/sections/CityPartner.vue b/src/views/Ecosystem/sections/CityPartner.vue new file mode 100644 index 0000000..422f47f --- /dev/null +++ b/src/views/Ecosystem/sections/CityPartner.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/Ecosystem/sections/CooperationConsult.vue b/src/views/Ecosystem/sections/CooperationConsult.vue new file mode 100644 index 0000000..7fe8e0b --- /dev/null +++ b/src/views/Ecosystem/sections/CooperationConsult.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/Ecosystem/sections/CoreAdvantages.vue b/src/views/Ecosystem/sections/CoreAdvantages.vue new file mode 100644 index 0000000..449b562 --- /dev/null +++ b/src/views/Ecosystem/sections/CoreAdvantages.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/views/Ecosystem/sections/EnterpriseCooperation.vue b/src/views/Ecosystem/sections/EnterpriseCooperation.vue new file mode 100644 index 0000000..ebf3db9 --- /dev/null +++ b/src/views/Ecosystem/sections/EnterpriseCooperation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/views/Ecosystem/sections/HealthManagement.vue b/src/views/Ecosystem/sections/HealthManagement.vue new file mode 100644 index 0000000..14d1838 --- /dev/null +++ b/src/views/Ecosystem/sections/HealthManagement.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/views/Ecosystem/sections/MedicalCooperation.vue b/src/views/Ecosystem/sections/MedicalCooperation.vue new file mode 100644 index 0000000..7148259 --- /dev/null +++ b/src/views/Ecosystem/sections/MedicalCooperation.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/views/Ecosystem/sections/RegionCooperation.vue b/src/views/Ecosystem/sections/RegionCooperation.vue new file mode 100644 index 0000000..2815840 --- /dev/null +++ b/src/views/Ecosystem/sections/RegionCooperation.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/src/views/Ecosystem/sections/TalentTraining.vue b/src/views/Ecosystem/sections/TalentTraining.vue new file mode 100644 index 0000000..1f17a18 --- /dev/null +++ b/src/views/Ecosystem/sections/TalentTraining.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/Home/sections/Banner.vue b/src/views/Home/sections/Banner.vue index b60b5a1..1cd7778 100644 --- a/src/views/Home/sections/Banner.vue +++ b/src/views/Home/sections/Banner.vue @@ -86,7 +86,8 @@ const newsList = [ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3); diff --git a/src/views/Network/Network.vue b/src/views/Network/Network.vue index a50442b..7cd3831 100644 --- a/src/views/Network/Network.vue +++ b/src/views/Network/Network.vue @@ -2,19 +2,18 @@
- + - + + + + - - - - - - + +
@@ -25,6 +24,7 @@ import UseCases from './sections/UseCases.vue' import OneStopSolution from '@/views/Network/sections/OneStopSolution.vue' import AiHealthProcess from '@/views/Network/sections/AiHealthProcess.vue' import CustomerCases from '@/views/Network/sections/CustomerCases.vue' +import AppPromotion from '@/views/Network/sections/AppPromotion.vue' // import GlobalService from './sections/GlobalService.vue' // import CustomerFeedback from './sections/CustomerFeedback.vue' // import Partners from './sections/Partners.vue' diff --git a/src/views/Network/sections/AppPromotion.vue b/src/views/Network/sections/AppPromotion.vue new file mode 100644 index 0000000..fd7f3e5 --- /dev/null +++ b/src/views/Network/sections/AppPromotion.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/views/Network/sections/Banner.vue b/src/views/Network/sections/Banner.vue index 41db2e4..7bbb204 100644 --- a/src/views/Network/sections/Banner.vue +++ b/src/views/Network/sections/Banner.vue @@ -86,7 +86,8 @@ const newsList = [ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3); diff --git a/src/views/Network/sections/CustomerCases.vue b/src/views/Network/sections/CustomerCases.vue index 09c826a..15ccf5e 100644 --- a/src/views/Network/sections/CustomerCases.vue +++ b/src/views/Network/sections/CustomerCases.vue @@ -7,8 +7,8 @@ avatar
-

{{ item.username }}

-

{{ item.comment }}

+ +

{{ item.comment }}

@@ -20,17 +20,17 @@ const feedbackList = [ { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '界面简约清晰,功能强大', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { @@ -40,62 +40,62 @@ const feedbackList = [ }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '派小喵萌宠', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '派小喵萌宠', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '派小喵萌宠', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '章小样', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' }, { username: '派小喵萌宠', - comment: '操作简单,容易上手', + comment: '交付与实施阶段很专业,坚持每天汇报进度和风险,并提出很多合理建议~', avatar: 'https://images.health.ufutx.com/202506/12/1c0c9dad7586e6fd00ab781064acc822.png' } ] @@ -134,13 +134,13 @@ const feedbackList = [ } .feedback-card { - display: flex; - align-items: center; - padding: @padding; - border-radius: 16px; - background: var(--ffffff, #fff); transition: @transition; - + display: flex; + padding: 16px; + align-items: center; + gap: 20px; + border-radius: 100px; + background: #f3f5f7; &:hover { transform: translateY(-4px); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); @@ -148,7 +148,7 @@ const feedbackList = [ .avatar-container { flex-shrink: 0; - margin-right: 12px; + //margin-right: 12px; .avatar { width: @avatar-size; @@ -169,8 +169,9 @@ const feedbackList = [ } .comment { + width: 250px; font-size: 14px; - color: @subtext-color; + color: @text-color; line-height: 1.4; } } diff --git a/src/views/Network/sections/GlobalService.vue b/src/views/Network/sections/GlobalService.vue deleted file mode 100644 index e9432f7..0000000 --- a/src/views/Network/sections/GlobalService.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/src/views/Network/sections/OneStopSolution.vue b/src/views/Network/sections/OneStopSolution.vue index 7a1b6ac..093f3e1 100644 --- a/src/views/Network/sections/OneStopSolution.vue +++ b/src/views/Network/sections/OneStopSolution.vue @@ -24,6 +24,7 @@ padding: 50px 20px; text-align: center; background: radial-gradient(83.44% 50% at 50% 50%, #fff 0%, #e8f0ff 100%); + .mt(20px); } .section-title { font-size: @font-size-xxl; diff --git a/src/views/News/sections/Banner.vue b/src/views/News/sections/Banner.vue index 9a9c446..14ac113 100644 --- a/src/views/News/sections/Banner.vue +++ b/src/views/News/sections/Banner.vue @@ -80,7 +80,8 @@ const newsList = [ top: 230px; right: 169px; padding: 20px 20px 0 20px; - width: 320px; + width: 330px; + height: 384px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); border-radius: 10px; background: rgba(51, 51, 51, 0.3);