Browse Source

Merge branch 'milestone-20251013-宣传夺宝奇兵' of http://39.101.133.168:8807/qimaohong/hcdbqbVue into milestone-20251013-宣传夺宝奇兵

master
maziyang 3 months ago
parent
commit
e9ca2a1dfe
  1. 0
      .env.production
  2. 1
      dist-test/assets/main-1h2J5ZoF.js
  3. 18
      dist-test/assets/management-DDIO2ZSR.js
  4. 9
      dist-test/assets/member-CDNIPHgK.js
  5. BIN
      dist-test/favicon.ico
  6. 1972
      dist-test/hcdbqb-download.html
  7. 2241
      dist-test/hcdbqb-guide.html
  8. 222
      dist-test/hcdbqb-management.html
  9. 867
      dist-test/index.html
  10. 334
      index.html
  11. 6
      package.json
  12. 8
      src/api/member.js
  13. 29
      vite.config.js

0
.env.product → .env.production

1
dist-test/assets/main-1h2J5ZoF.js

@ -0,0 +1 @@
import{r as y}from"./member-CDNIPHgK.js";const E=50,I=100,L=20,m=document.getElementById("registrationForm"),l=document.getElementById("successModal"),h=document.getElementById("closeModal"),a=document.getElementById("submitBtn"),u=document.getElementById("loadingOverlay");let c=!1;function B(){u.style.display="flex",a.disabled=!0,a.textContent="提交中...",c=!0}function v(){u.style.display="none",a.disabled=!1,a.textContent="提交注册",c=!1}function o(e){alert(e)}function M(e){const{name:t,tel:s,email:n}=e;return!t||t.length>E?(o("请输入有效的姓名(最多50个字符)"),document.getElementById("userNameInfo").focus(),!1):!s||s.length>L?(o("请输入有效的电话号码"),document.getElementById("userMobile").focus(),!1):!n||n.length>I?(o("请输入电子邮箱"),document.getElementById("userEmail").focus(),!1):/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n)?!0:(o("请输入有效的电子邮箱地址"),document.getElementById("userEmail").focus(),!1)}async function b(e){if(e.preventDefault(),c)return;const t=document.getElementById("userNameInfo").value.trim(),s=document.getElementById("countryInfo").value,n=document.getElementById("userMobile").value.trim(),d=document.getElementById("userWechat").value.trim(),g=document.getElementById("userEmail").value.trim(),r={name:t,code:s,tel:n,wechat:d,email:g};if(M(r))try{B();const i=await y(r);i.code===200?(l.classList.remove("hidden"),m.reset()):o("注册失败: "+(i.msg||"未知错误"))}catch(i){console.error("请求失败:",i),o("网络错误,请稍后重试")}finally{v()}}function w(){document.getElementById("mobileMenu").classList.toggle("hidden");const t=document.getElementById("menuBtn").querySelector("i");t.classList.contains("fa-bars")?t.classList.replace("fa-bars","fa-times"):t.classList.replace("fa-times","fa-bars")}function p(){const e=document.querySelector("header");window.scrollY>50?(e.classList.add("py-2","shadow"),e.classList.remove("py-3")):(e.classList.add("py-3"),e.classList.remove("py-2","shadow"))}function f(){document.querySelectorAll(".animate-fade-in").forEach(t=>{const s=t.getBoundingClientRect().top,n=window.innerHeight;s<n-100&&(t.style.opacity="1",t.style.transform="translateY(0)")})}m.addEventListener("submit",b);h.addEventListener("click",()=>{l.classList.add("hidden")});l.addEventListener("click",e=>{e.target===l&&l.classList.add("hidden")});document.getElementById("menuBtn").addEventListener("click",w);window.addEventListener("scroll",p);window.addEventListener("load",()=>{f(),document.getElementById("loadingOverlay").style.display="none"});window.addEventListener("scroll",f);

18
dist-test/assets/management-DDIO2ZSR.js

@ -0,0 +1,18 @@
import{u as w,e as B,g as E}from"./member-CDNIPHgK.js";let o={pageSize:20,currentPage:1,total:0,items:[]};const f=document.getElementById("tableBody"),h=document.getElementById("pagination"),P=document.getElementById("totalCount");document.getElementById("currentPage");document.getElementById("showingRange");const m=document.getElementById("pageSizeSelect"),v=document.getElementById("gotoInput"),y=document.getElementById("noteModal"),l=document.getElementById("noteTextarea"),x=document.getElementById("noteCancelBtn"),M=document.getElementById("noteSaveBtn"),u=document.getElementById("toast");let g=null;function b(a){u.textContent=a,u.classList.add("show"),setTimeout(()=>u.classList.remove("show"),1e3)}async function I(a,e){try{const t=await E({page:a,page_size:e});if(typeof t.code<"u"&&t.code!==200)throw new Error(t.msg||"接口返回错误");console.log(t);const n=t.data||{};o.items=n.list,o.total=n.total}catch{alert("获取数据失败"),o.total=0}}function S(){const a=(o.currentPage-1)*o.pageSize,e=o.items||[];f.innerHTML=e.map((t,n)=>{const s=a+n+1,c=t.isRelated?"status-1":"status-0",d=t.isRelated?"已联系":"未联系";return`
<tr>
<td>${s}</td>
<td>${i(t.name||"")}</td>
<td>${i(t.code||"")}</td>
<td>${i(t.telephone||"")}</td>
<td>${i(t.wechat||"")}</td>
<td>${i(t.email||"")}</td>
<td>${i(t.createdAt||"")}</td>
<td>
<button class="status-btn ${c}" data-action="toggle" data-id="${t.id}">${d}</button>
</td>
<td>${i(t.note||"")}</td>
<td>
<button class="btn" data-action="editNote" data-id="${t.id}">编辑备注</button>
</td>
</tr>
`}).join(""),P.textContent=o.total}f.addEventListener("click",async a=>{const e=a.target.closest('[data-action="toggle"]');if(e){const n=e.getAttribute("data-id");await $(n,e);return}const t=a.target.closest('[data-action="editNote"]');if(t){const n=t.getAttribute("data-id");L(n);return}});async function $(a,e){const t=o.items.find(c=>String(c.id)===String(a));if(!t)return;const n=t.isRelated,s=n?0:1;t.isRelated=s,e.textContent=s?"已联系":"未联系",e.classList.toggle("status-1",!!s),e.classList.toggle("status-0",!s);try{const c=await w({id:t.id,state:s});if(typeof c.code<"u"&&c.code!==200)throw new Error(c.msg||"更新失败");b("状态修改成功")}catch{t.isRelated=n,e.textContent=n?"已联系":"未联系",e.classList.toggle("status-1",!!n),e.classList.toggle("status-0",!n),alert("更新失败")}}function L(a){const e=o.items.find(t=>String(t.id)===String(a));e&&(g=a,l.value=e.note||"",y.style.display="flex",l.focus())}function r(){g=null,l.value="",y.style.display="none"}x.addEventListener("click",r);M.addEventListener("click",async()=>{if(!g)return r();const a=l.value.trim(),e=o.items.find(t=>String(t.id)===String(g));if(!e)return r();try{const t=await B({id:e.id,note:a});if(typeof t.code<"u"&&t.code!==200)throw new Error(t.msg||"保存失败");const n=e.note;e.note=a,S(),b("备注保存成功")}catch{alert("保存备注失败")}finally{r()}});function z(){const a=Math.max(1,Math.ceil(o.total/o.pageSize)),e=Math.min(Math.max(1,o.currentPage),a);o.currentPage=e;const t=N(e,a,2);let n="";n+=`<button class="btn" data-action="prev" ${e===1?"disabled":""}>上一页</button>`,t.forEach(s=>{s==="..."?n+='<span class="small" style="padding:6px 8px">...</span>':n+=`<button class="btn ${s===e?"active":""}" data-page="${s}">${s}</button>`}),n+=`<button class="btn" data-action="next" ${e===a?"disabled":""}></button>`,h.innerHTML=n}function N(a,e,t){const n=[],s=Math.max(1,a-t),c=Math.min(e,a+t);s>1&&(n.push(1),s>2&&n.push("..."));for(let d=s;d<=c;d++)n.push(d);return c<e&&(c<e-1&&n.push("..."),n.push(e)),n}h.addEventListener("click",a=>{const e=a.target.closest("button");if(!e)return;const t=e.getAttribute("data-action");if(t==="prev")o.currentPage>1&&o.currentPage--;else if(t==="next"){const n=Math.max(1,Math.ceil(o.total/o.pageSize));o.currentPage<n&&o.currentPage++}else{const n=Number(e.getAttribute("data-page"));isNaN(n)||(o.currentPage=n)}p()});m.addEventListener("change",()=>{const a=parseInt(m.value,10);o.pageSize=a,o.currentPage=1,p(),v.value=""});async function p(){const a=Math.max(1,o.currentPage);o.currentPage=a,await I(o.currentPage,o.pageSize),S(),z()}function i(a){return String(a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}p();

9
dist-test/assets/member-CDNIPHgK.js
File diff suppressed because it is too large
View File

BIN
dist-test/favicon.ico

1972
dist-test/hcdbqb-download.html
File diff suppressed because it is too large
View File

2241
dist-test/hcdbqb-guide.html
File diff suppressed because it is too large
View File

222
dist-test/hcdbqb-management.html

@ -0,0 +1,222 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>可分页表格示例</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 24px;
background: #f7f8fb;
color: #222;
}
.card {
background: #fff;
padding: 16px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
margin: auto;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 12px;
}
th,
td {
padding: 10px 12px;
border-bottom: 1px solid #eee;
text-align: left;
font-size: 14px;
}
th {
background: #fafafa;
font-weight: 600;
}
.controls {
display: flex;
gap: 12px;
align-items: center;
flex-wrap: wrap;
}
.pagination {
display: flex;
gap: 6px;
align-items: center;
margin-left: auto;
flex-wrap: wrap;
}
.btn {
padding: 6px 10px;
border-radius: 6px;
border: 1px solid #ddd;
background: #fff;
cursor: pointer;
user-select: none;
}
.btn:disabled {
opacity: 0.5;
cursor: default;
}
.btn.primary {
background: #007bff;
color: #fff;
border-color: #007bff;
}
.status-btn {
padding: 4px 8px;
border-radius: 6px;
border: 1px solid #ccc;
cursor: pointer;
}
.status-0 {
background: red;
color: #fff;
}
.status-1 {
background: #2f9e44;
color: #fff;
border-color: #2f9e44;
}
.btn.active {
background: #007bff;
color: #fff;
border-color: #007bff;
}
select,
input[type="number"] {
padding: 6px;
border-radius: 6px;
border: 1px solid #ddd;
}
.small {
font-size: 13px;
color: #666;
}
@media (max-width: 640px) {
.controls {
flex-direction: column;
align-items: flex-start;
}
.pagination {
margin-left: 0;
}
}
#noteModal {
display: none;
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.45);
align-items: center;
justify-content: center;
z-index: 9999;
}
#noteModal .dialog {
background: #fff;
padding: 16px;
border-radius: 8px;
width: 90%;
max-width: 520px;
box-sizing: border-box;
}
#noteModal textarea {
width: 100%;
min-width: 60%;
max-width: 100%;
min-height: 150px;
box-sizing: border-box;
padding: 8px;
border-radius: 6px;
border: 1px solid #ddd;
font-size: 14px;
}
.toast {
position: fixed;
top: -20px;
left: 50%;
transform: translateX(-50%);
background: #4caf50;
color: #fff;
padding: 10px 16px;
border-radius: 6px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
font-size: 16px;
opacity: 0;
transition: all 0.3s ease;
z-index: 10000;
pointer-events: none;
}
.toast.show {
opacity: 1;
top: 20px;
}
table th,
table td {
text-align: center;
}
</style>
<script type="module" crossorigin src="/assets/management-DDIO2ZSR.js"></script>
<link rel="modulepreload" crossorigin href="/assets/member-CDNIPHgK.js">
</head>
<body>
<div class="card">
<table aria-describedby="tableDesc">
<thead>
<tr>
<th style="width: 40px">#</th>
<th style="width: 100px">姓名</th>
<th style="width: 90px">国家/地区代码</th>
<th style="width: 120px">电话号码</th>
<th style="width: 120px">微信ID</th>
<th style="width: 150px">邮箱</th>
<th style="width: 160px">添加时间</th>
<th style="width: 100px">是否联系</th>
<th style="width: 160px">备注</th>
<th style="width: 100px">操作</th>
</tr>
</thead>
<tbody id="tableBody"></tbody>
</table>
<div class="controls" style="margin-bottom: 8px; margin-top: 12px">
<div class="small">
每页显示
<select id="pageSizeSelect">
<option value="20" selected>20</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="200">200</option>
</select>
</div>
<div class="small"><span id="totalCount">0</span></div>
<div class="pagination" id="pagination"></div>
</div>
<!-- 备注编辑模态 -->
<div id="noteModal">
<div class="dialog">
<h3 style="margin: 0 0 8px">编辑备注</h3>
<textarea
id="noteTextarea"
rows="6"
placeholder="输入备注..."
></textarea>
<div
style="
margin-top: 10px;
display: flex;
justify-content: flex-end;
gap: 8px;
"
>
<button class="btn" id="noteCancelBtn">取消</button>
<button class="btn primary" id="noteSaveBtn">保存</button>
</div>
</div>
</div>
</div>
<div id="toast" class="toast"></div>
</body>
</html>

867
dist-test/index.html

@ -0,0 +1,867 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="shortcut icon" href="dbqb_favicon.ico" />
<link rel="bookmark" href="dbqb_favicon.ico" />
<meta http-equiv="keywords" content="夺宝奇兵,homilychart,homilylink">
<meta http-equiv="description" content="HomilyLink">
<title>夺宝奇兵 - AI炒股时代,机构界的黑科技!</title>
<script src="https://cdn.tailwindcss.com"></script>
<script type="text/javascript" src="https://hc.homilychart.com/hc/210802/js/jquery-1.9.1.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#3B82F6',
secondary: '#10B981',
accent: '#8B5CF6',
dark: '#1E293B',
light: '#F8FAFC'
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
},
},
}
}
</script>
<script type="module" crossorigin src="/assets/main-1h2J5ZoF.js"></script>
<link rel="modulepreload" crossorigin href="/assets/member-CDNIPHgK.js">
</head>
<body class="font-sans bg-light text-dark body-text">
<!-- 页面加载状态 -->
<div id="loadingOverlay" class="loading-overlay">
<div class="loading-spinner"></div>
</div>
<!-- 头部导航区域 -->
<header class="fixed w-full bg-white/90 backdrop-blur-sm shadow-sm z-50 transition-all duration-300">
<div class="container mx-auto px-4 py-3 flex justify-between items-center">
<a href="#" class="flex items-center space-x-2">
<div class="w-10 h-10 rounded-lg gradient-background flex items-center justify-center">
<img alt="夺宝奇兵" src="https://hc.homilychart.com/hc/250121/img/20230711171637.png"
style="width: 40px;height: 40px;">
</div>
<span class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-primary to-accent">
夺宝奇兵
</span>
</a>
<!-- 桌面导航菜单 -->
<nav class="hidden md:flex items-center space-x-8">
<a href="#features" class="font-medium hover:text-primary transition-colors">特色功能</a>
<a href="#kc" class="font-medium hover:text-primary transition-colors">最新课程</a>
<a href="hcdbqb-guide.html" class="font-medium hover:text-primary transition-colors">操作指南</a>
<a href="https://wa.me/+6588792879?text=夺宝奇兵指南我需要帮助" target="_blank"
class="px-5 py-2 rounded-full gradient-background text-white font-medium hover:shadow-lg transition-all">
联系我们
</a>
</nav>
<!-- 移动端菜单按钮 -->
<button id="menuBtn" class="md:hidden text-xl">
<i class="fa fa-bars"></i>
</button>
</div>
<!-- 移动端导航菜单 -->
<div id="mobileMenu" class="md:hidden hidden bg-white border-t animate-fade-in">
<div class="container mx-auto px-4 py-3 flex flex-col space-y-4">
<a href="#features" class="font-medium py-2 hover:text-primary transition-colors">特色功能</a>
<a href="#kc" class="font-medium py-2 hover:text-primary transition-colors">最新课程</a>
<a href="hcdbqb-guide.html" class="font-medium py-2 hover:text-primary transition-colors">操作指南</a>
<a href="https://wa.me/+6588792879?text=夺宝奇兵指南我需要帮助" target="_blank"
class="py-2 rounded-full gradient-background text-white font-medium text-center hover:shadow-lg transition-all">
联系我们
</a>
</div>
</div>
</header>
<!-- 英雄区域 -->
<section class="pt-32 pb-20 md:pt-40 md:pb-32 px-4 bg-gradient-to-b from-blue-50 to-white">
<div class="container mx-auto max-w-6xl">
<div class="flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0 animate-fade-in">
<h1 class="text-[clamp(2rem,5vw,3.5rem)] font-bold leading-tight text-shadow-custom mb-6 heading-primary">
夺宝奇兵,<br>
<span class="bg-clip-text text-transparent bg-gradient-to-r from-primary to-accent">现在免费体验!</span>
</h1>
<p class="text-lg text-gray-600 mb-8 max-w-lg paragraph-text">
AI时代股票投资必备机构界的黑科技!<br />
现开放免费体验7天的活动,立刻注册报名吧!
</p>
<div class="flex flex-col sm:flex-row gap-4">
<a href="#register"
class="px-8 py-3 rounded-full gradient-background text-white font-medium text-center hover:shadow-lg hover:shadow-primary/20 transition-all transform hover:-translate-y-0.5">
立即注册
</a>
<a href="#promotions"
class="px-8 py-3 rounded-full border-2 border-primary text-primary font-medium text-center hover:bg-primary/5 transition-all">
了解更多
</a>
<a href="hcdbqb-download.html"
class="px-8 py-3 rounded-full border-2 border-primary text-primary font-medium text-center hover:bg-primary/5 transition-all">
立刻下载
</a>
</div>
</div>
<div class="md:w-1/2 animate-fade-in delay-200">
<div class="relative">
<div class="absolute -inset-4 bg-gradient-to-r from-primary/20 to-accent/20 rounded-3xl blur-xl opacity-70">
</div>
<img src="https://hc.homilychart.com/hc/250121/img/dbqbindex.jpg" alt="夺宝奇兵"
class="relative z-10 rounded-2xl shadow-xl w-full object-cover">
</div>
</div>
</div>
</div>
</section>
<!-- 特色功能区域 -->
<section id="features" class="py-16 px-4 bg-white">
<div class="container mx-auto max-w-6xl">
<div class="text-center mb-16 animate-fade-in">
<h2 class="text-[clamp(1.5rem,3vw,2.5rem)] font-bold mb-4 heading-secondary">您可以免费体验什么?</h2>
<p class="text-gray-600 max-w-2xl mx-auto paragraph-text">您可以免费体验 超级云脑 AI预测大模型 夺宝利剑三个模块 7天 </p>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="bg-white p-8 rounded-2xl shadow-lg card-hover-effect animate-fade-in delay-100">
<div class="w-14 h-14 rounded-xl bg-blue-100 flex items-center justify-center mb-6">
<img alt="夺宝奇兵" src="https://hc.homilychart.com/hc/250121/img/chaojiyunnao.png">
</div>
<h3 class="text-xl font-semibold mb-3 heading-tertiary">超级云脑</h3>
<p class="text-gray-600 paragraph-text">您的股票该体检了!<br />从十大维度,为您的股票进行全面体检!</p>
</div>
<div class="bg-white p-8 rounded-2xl shadow-lg card-hover-effect animate-fade-in delay-200">
<div class="w-14 h-14 rounded-xl bg-purple-100 flex items-center justify-center mb-6">
<img alt="夺宝奇兵" src="https://hc.homilychart.com/hc/250121/img/AIyuce.png">
</div>
<h3 class="text-xl font-semibold mb-3 heading-tertiary">AI预测大模型</h3>
<p class="text-gray-600 paragraph-text">采用最先进的安全技术,保护您的数据和隐私,让您高枕无忧地开展业务。</p>
</div>
<div class="bg-white p-8 rounded-2xl shadow-lg card-hover-effect animate-fade-in delay-300">
<div class="w-14 h-14 rounded-xl bg-green-100 flex items-center justify-center mb-6">
<img alt="夺宝奇兵" src="https://hc.homilychart.com/hc/250121/img/duobaolijian.png">
</div>
<h3 class="text-xl font-semibold mb-3 heading-tertiary">夺宝利剑</h3>
<p class="text-gray-600 paragraph-text">根据您的具体需求提供个性化解决方案,灵活适应不同业务场景和规模。</p>
</div>
</div>
</div>
</section>
<!-- 产品宣传区域 -->
<section id="promotions" class="py-20 px-4 bg-gray-50">
<div class="container mx-auto max-w-6xl">
<div class="text-center mb-16 animate-fade-in">
<h2 class="text-[clamp(1.5rem,3vw,2.5rem)] font-bold mb-4 heading-secondary">我们的创新解决方案</h2>
<p class="text-gray-600 max-w-2xl mx-auto paragraph-text">探索我们的核心产品和服务,了解如何为您的业务创造价值</p>
</div>
<!-- 宣传项 1 - 超级云脑 -->
<div class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row animate-fade-in">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/chaojiyunnaoimg.jpg" alt="智能数据分析平台"
class="w-full h-full object-cover">
</div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span
class="inline-block px-4 py-1 rounded-full bg-blue-100 text-primary text-base font-medium mb-4 breadcrumb-text">
HomilyLink > 夺宝奇兵 > 超级云脑
</span>
<h3 class="text-2xl md:text-3xl font-bold mb-4 heading-tertiary">超级云脑:股票体检专家</h3>
<p class="text-gray-600 mb-6 paragraph-text">
利用人工智能和机器学习技术,快速处理和分析海量数据,通过十大维度为您的股票进行专科体检,追踪机构行为。
</p>
<ul class="space-y-3 mb-8">
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>云脑探秘</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>机构动向</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>体检专家</span>
</li>
</ul>
<a href="#register" class="inline-flex items-center text-primary font-medium hover:underline">
注册了解更多 <i class="fa fa-arrow-right ml-2"></i>
</a>
</div>
</div>
<!-- 宣传项 2 - AI预测大模型 -->
<div
class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row-reverse animate-fade-in delay-100">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/aiyucedamoxing.jpg" alt="AI预测大模型"
class="w-full h-full object-cover">
</div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span
class="inline-block px-4 py-1 rounded-full bg-purple-100 text-accent text-base font-medium mb-4 breadcrumb-text">
HomilyLink > 夺宝奇兵 > AI预测大模型
</span>
<h3 class="text-2xl md:text-3xl font-bold mb-4 heading-tertiary">AI预测大模型</h3>
<p class="text-gray-600 mb-6 paragraph-text">
AI 预测大模型颠覆传统,以深度学习与算法挖股市数据抓趋势、预测高低点;AI时空共振结合前沿 AI与时空共振精准识别变盘点。
</p>
<ul class="space-y-3 mb-8">
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>AI股价预测术</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>AI时空共振</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>未来预测</span>
</li>
</ul>
<a href="#register" class="inline-flex items-center text-primary font-medium hover:underline">
注册了解更多 <i class="fa fa-arrow-right ml-2"></i>
</a>
</div>
</div>
<!-- 宣传项 3 - 夺宝利剑 -->
<div
class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row-reverse animate-fade-in delay-100">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/duobaolijianindex.jpg" alt="夺宝利剑"
class="w-full h-full object-cover">
</div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span
class="inline-block px-4 py-1 rounded-full bg-purple-100 text-accent text-base font-medium mb-4 breadcrumb-text">
HomilyLink > 夺宝奇兵 > Ai金牛 > 夺宝利剑
</span>
<h3 class="text-2xl md:text-3xl font-bold mb-4 heading-tertiary">夺宝利剑</h3>
<p class="text-gray-600 mb-6 paragraph-text">
最聪明的AI智能均线结合三维波动量,让您在AI时代深度追踪机构的操盘行为!
</p>
<ul class="space-y-3 mb-8">
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>最聪明的AI智能均线</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>三维波动量</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>AI大数据模型</span>
</li>
</ul>
<a href="#register" class="inline-flex items-center text-primary font-medium hover:underline">
注册了解更多 <i class="fa fa-arrow-right ml-2"></i>
</a>
</div>
</div>
<!-- 宣传项 4 - 专题讲座 -->
<div id="kc"
class="bg-white rounded-3xl shadow-xl overflow-hidden flex flex-col md:flex-row animate-fade-in delay-200">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/kecheng.jpg" alt="John Lu谈股专题讲座"
class="w-full h-full object-cover">
</div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span
class="inline-block px-4 py-1 rounded-full bg-green-100 text-secondary text-base font-medium mb-4 breadcrumb-text">
HomilyLink > 消息 > John Lu谈股财富圈
</span>
<h3 class="text-2xl md:text-3xl font-bold mb-4 heading-tertiary">HomilyLink专题讲座</h3>
<p class="text-gray-600 mb-6 paragraph-text">
我们推出 HomilyLink专题讲座;结合市场事实热点与机构领域黑科技 "夺宝奇兵",助力投资者提升股市获利能力。
</p>
<ul class="space-y-3 mb-8">
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>新加坡时间</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>注意换算当地时间</span>
</li>
<li class="flex items-start list-item">
<i class="fa fa-check-circle text-secondary mt-1 mr-3"></i>
<span>HomilyLink班级群课程</span>
</li>
</ul>
<a href="#register" class="inline-flex items-center text-primary font-medium hover:underline">
注册了解更多 <i class="fa fa-arrow-right ml-2"></i>
</a>
</div>
</div>
</div>
</section>
<!-- 注册表单区域 -->
<section id="register" class="py-20 px-4 bg-white">
<div class="container mx-auto max-w-6xl">
<div class="bg-gradient-to-br from-dark to-gray-800 rounded-3xl shadow-2xl overflow-hidden">
<div class="grid grid-cols-1 md:grid-cols-2">
<div class="p-8 md:p-12 text-white flex flex-col justify-center">
<h2 class="text-2xl md:text-3xl font-bold mb-6 heading-secondary">立即注册,开启智能体验之旅!</h2>
<p class="text-gray-300 mb-10 leading-relaxed paragraph-text">
填写报名表,我们会尽快为您开启智能体验之旅!
</p>
<div class="space-y-6">
<div class="flex items-start">
<div class="w-10 h-10 rounded-full bg-primary/20 flex items-center justify-center mr-4 mt-1">
<img alt="超级云脑" src="https://hc.homilychart.com/hc/250121/img/chaojiyunnao.png">
</div>
<div>
<h3 class="font-semibold mb-1 heading-tertiary">超级云脑</h3>
<p class="text-gray-400 text-sm paragraph-text">您的股票体检专家!</p>
</div>
</div>
<div class="flex items-start">
<div class="w-10 h-10 rounded-full bg-primary/20 flex items-center justify-center mr-4 mt-1">
<img alt="AI预测大模型" src="https://hc.homilychart.com/hc/250121/img/AIyuce.png">
</div>
<div>
<h3 class="font-semibold mb-1 heading-tertiary">AI预测大模型</h3>
<p class="text-gray-400 text-sm paragraph-text">时间空间价格AI精准预测!</p>
</div>
</div>
<div class="flex items-start">
<div class="w-10 h-10 rounded-full bg-primary/20 flex items-center justify-center mr-4 mt-1">
<img alt="夺宝利剑" src="https://hc.homilychart.com/hc/250121/img/duobaolijian.png">
</div>
<div>
<h3 class="font-semibold mb-1 heading-tertiary">夺宝利剑</h3>
<p class="text-gray-400 text-sm paragraph-text">最聪明的AI智能均线+三维波动量</p>
</div>
</div>
</div>
</div>
<div class="bg-white p-8 md:p-12">
<form id="registrationForm" class="space-y-6">
<input type="hidden" name="zbtype" id="zbType" value="6">
<div>
<label for="userNameInfo" class="block text-sm font-medium text-gray-700 mb-1 form-label">姓名</label>
<input type="text" id="userNameInfo" name="userNameInfo"
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-primary transition-all form-input"
placeholder="请输入您的姓名" required>
</div>
<div>
<label for="countryInfo" class="block text-sm font-medium text-gray-700 mb-1 form-label">国家/地区代码</label>
<select id="countryInfo" name="countryInfo"
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-primary transition-all form-input"
required>
<option value="+65">+65 新加坡</option>
<option value="+60">+60 马来西亚</option>
<option value="+852">+852 香港</option>
<option value="+1" selected>+1 美国</option>
<option value="+62">+62 印尼</option>
<option value="+1">+1 加拿大</option>
<option value="+61">+61 澳大利亚</option>
<option value="+673">+673 文莱</option>
<option value="+886">+886 台湾</option>
<option value="+86">+86 中国</option>
<option value="+0">+0 其他</option>
<option value="+64">+64 新西兰</option>
<option value="+44">+44 英国</option>
<option value="+81">+81 日本</option>
<option value="+49">+49 德国</option>
<option value="+82">+82 韩国</option>
<option value="+84">+84 越南</option>
<option value="+971">+971 阿联酋</option>
<option value="+45">+45 丹麦</option>
<option value="+853">+853 澳门</option>
<option value="+66">+66 泰国</option>
<option value="+91">+91 印度</option>
<option value="+41">+41 瑞士</option>
<option value="+358">+358 芬兰</option>
<option value="+33">+33 法国</option>
<option value="+63">+63 菲律宾</option>
<option value="+31">+31 荷兰</option>
<option value="+46">+46 瑞典</option>
<option value="+34">+34 西班牙</option>
<option value="+54">+54 阿根廷</option>
<option value="+39">+39 意大利</option>
<option value="+7">+7 俄罗斯</option>
<option value="+420">+420 捷克</option>
</select>
</div>
<div>
<label for="userMobile" class="block text-sm font-medium text-gray-700 mb-1 form-label">电话号码</label>
<input type="tel" name="userMobile" id="userMobile" placeholder="纯手机号 ( 不含国家编号 )"
onkeyup="value=value.replace(/[^\d]/g,'').replace(/^0/g,'')"
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-primary transition-all form-input"
autocomplete="off" required>
</div>
<div>
<label for="userWechat" class="block text-sm font-medium text-gray-700 mb-1 form-label">微信ID</label>
<input type="text" name="userWechat" id="userWechat" placeholder="微信ID ( 如没有WhatsApp )"
autocomplete="off"
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-primary transition-all form-input">
</div>
<div>
<label for="userEmail" class="block text-sm font-medium text-gray-700 mb-1 form-label">电子邮箱</label>
<input type="email" placeholder="请输入您的邮箱" name="userEmail" id="userEmail" autocomplete="off"
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-primary transition-all form-input"
required>
</div>
<div class="flex items-start">
<input type="checkbox" id="agreement" name="agreement" class="mt-1 mr-2" required>
<label for="agreement" class="text-sm text-gray-600 form-label">
我同意接收相关产品和服务的资讯
</label>
</div>
<button type="submit" id="submitBtn"
class="w-full py-3 px-6 rounded-lg gradient-background text-white font-medium hover:shadow-lg hover:shadow-primary/20 transition-all transform hover:-translate-y-0.5 form-button">
提交注册
</button>
</form>
</div>
</div>
</div>
</div>
</section>
<!-- 页脚区域 -->
<footer class="bg-dark text-white py-12 px-4">
<div class="container mx-auto max-w-6xl">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8">
<div>
<div class="flex items-center space-x-2 mb-6">
<div class="w-10 h-10 rounded-lg gradient-background flex items-center justify-center">
<img alt="夺宝奇兵" src="https://hc.homilychart.com/hc/250121/img/20230711171637.png"
style="width: 40px;height: 40px;">
</div>
<span class="text-xl font-bold">夺宝奇兵</span>
</div>
<p class="text-gray-400 mb-6 paragraph-text">
AI炒股时代 机构界的黑科技!
</p>
<div class="flex space-x-4">
<a href="#"
class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-primary transition-colors">
<i class="fa fa-facebook"></i>
</a>
<a href="#"
class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-primary transition-colors">
<i class="fa fa-twitter"></i>
</a>
<a href="#"
class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-primary transition-colors">
<i class="fa fa-linkedin"></i>
</a>
<a href="#"
class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-primary transition-colors">
<i class="fa fa-instagram"></i>
</a>
</div>
</div>
<div>
<h4 class="text-lg font-semibold mb-6 heading-tertiary">产品</h4>
<ul class="space-y-3">
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要了解弘历云版软件" target="_blank"
class="text-gray-400 hover:text-white transition-colors">弘历云版软件</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要了解HomilyChart" target="_blank"
class="text-gray-400 hover:text-white transition-colors">HomilyChart</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要了解夺宝奇兵" target="_blank"
class="text-gray-400 hover:text-white transition-colors">夺宝奇兵</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要了解博股会员"
class="text-gray-400 hover:text-white transition-colors">博股会员</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要了解最新软件"
class="text-gray-400 hover:text-white transition-colors">最新软件</a></li>
</ul>
</div>
<div>
<h4 class="text-lg font-semibold mb-6 heading-tertiary">公司</h4>
<ul class="space-y-3">
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要咨询" target="_blank"
class="text-gray-400 hover:text-white transition-colors">关于我们</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要咨询" target="_blank"
class="text-gray-400 hover:text-white transition-colors">团队介绍</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我要咨询" target="_blank"
class="text-gray-400 hover:text-white transition-colors">联系我们</a></li>
</ul>
</div>
<div>
<h4 class="text-lg font-semibold mb-6 heading-tertiary">支持</h4>
<ul class="space-y-3">
<li class="list-item"><a href="hcdbqb-guide.html"
class="text-gray-400 hover:text-white transition-colors">帮助中心</a></li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我有问题" target="_blank"
class="text-gray-400 hover:text-white transition-colors">常见问题</a></li>
</ul>
</div>
</div>
<div class="border-t border-gray-800 pt-8 flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-500 text-sm mb-4 md:mb-0 paragraph-text">
&copy; Copyright 2025.Capitalmaster Pte Ltd All Rights Reserved.
</p>
<div class="flex space-x-6">
如需帮助,请及时联系我们!
</div>
</div>
</div>
</footer>
<!-- 表单提交成功提示模态框 -->
<div id="successModal" class="fixed inset-0 bg-black/50 flex items-center justify-center z-50 hidden">
<div class="bg-white rounded-2xl p-8 max-w-md w-full mx-4 transform transition-all relative">
<!-- 关闭按钮 - 右上角叉号 -->
<button id="closeModal" class="absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors">
<i class="fa fa-times text-xl"></i>
</button>
<div class="text-center">
<div class="w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mx-auto mb-6">
<i class="fa fa-check text-secondary text-2xl"></i>
</div>
<h3 class="text-xl font-bold mb-2 heading-tertiary">注册成功!</h3>
<p class="text-gray-600 mb-6 paragraph-text">感谢您的注册,我们的顾问将尽快与您联系。</p>
<a href="https://wa.me/8615318705910?text=%E6%8A%A5%E5%90%8D%E8%AF%BE%E7%A8%8B" target="_blank"
class="inline-block px-6 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 transition-colors">
联系我们
</a>
</div>
</div>
</div>
<style>
/* 全局字体大小调整 - 整体调小 */
html {
font-size: 16px;
scroll-behavior: smooth;
}
/* 文本样式类 */
.page-body {
font-size: 1rem;
line-height: 1.6;
}
.text-heading-primary {
font-size: clamp(2.2rem, 5vw, 3.5rem);
line-height: 1.2;
}
.text-heading-secondary {
font-size: clamp(1.4rem, 2.5vw, 2.2rem);
line-height: 1.3;
}
.text-heading-tertiary {
font-size: clamp(1.3rem, 2.5vw, 2rem);
line-height: 1.4;
}
.text-paragraph {
font-size: 1rem;
line-height: 1.6;
}
.text-list-item {
font-size: 1rem;
}
.text-breadcrumb {
font-size: 0.9rem;
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
.form-label-text {
font-size: 1rem;
margin-bottom: 0.5rem;
}
.form-input-field {
font-size: 1rem;
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
.form-input-field::placeholder {
font-size: 0.95rem;
}
/* 导航菜单字体调小 */
.nav-link-text {
font-size: 1rem;
}
/* 按钮文字调小 */
.button-large-text {
font-size: 1rem;
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
/* 特色功能卡片文字调小 */
.feature-card-title {
font-size: 1.3rem;
margin-bottom: 0.75rem;
}
.feature-card-description {
font-size: 0.95rem;
line-height: 1.5;
}
/* 产品宣传区域文字调小 */
.promo-section-paragraph {
font-size: 1rem;
line-height: 1.6;
}
.promo-section-list-item {
font-size: 1rem;
}
.promo-section-breadcrumb {
font-size: 0.9rem;
}
/* 页脚文字调小 */
.footer-text {
font-size: 0.95rem;
}
.footer-heading {
font-size: 1.3rem;
}
/* 成功模态框文字调小 */
.modal-heading {
font-size: 1.5rem;
}
.modal-text {
font-size: 1rem;
}
.modal-button {
font-size: 1rem;
}
/* 宣传模块高度自适应 - 消除空白 */
.promotion-module {
display: flex;
flex-direction: column;
height: auto;
}
.promotion-module-image {
display: flex;
flex-direction: column;
}
.promotion-module-content {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
padding-bottom: 2rem;
}
.promotion-module-wrapper {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 1.5rem;
}
.promotion-module-breadcrumb {
margin-bottom: 0.75rem;
}
.promotion-module-title {
margin-bottom: 1rem;
}
.promotion-module-description {
margin-bottom: 1rem;
}
.promotion-module-list {
gap: 0.75rem;
margin-bottom: 1.5rem;
}
.promotion-module-action {
margin-top: auto;
align-self: flex-start;
}
/* 特色功能卡片高度调整 */
.feature-card {
height: 100%;
display: flex;
flex-direction: column;
}
.feature-card-icon {
margin-bottom: 1rem;
}
.feature-card-title {
margin-bottom: 0.75rem;
}
/* 注册表单区域调整 */
.register-section-title {
margin-bottom: 1rem;
line-height: 1.3;
}
.register-section-description {
margin-bottom: 1.5rem;
}
.register-section-features {
gap: 1rem;
}
/* 页脚区域调整 */
.footer-logo {
margin-bottom: 1rem;
}
.footer-description {
margin-bottom: 1rem;
}
.footer-heading {
margin-bottom: 1rem;
}
.footer-list {
gap: 0.5rem;
}
/* 移动端适配 */
@media (max-width: 768px) {
html {
font-size: 14px;
}
.page-body {
font-size: 0.95rem;
}
.mobile-nav-link {
font-size: 0.95rem;
padding-top: 0.6rem;
padding-bottom: 0.6rem;
}
.promotion-module-content {
padding-bottom: 1.5rem;
}
}
/* 动画定义 */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes spin {
0% {
transform: rotate(0);
}
100% {
transform: rotate(360deg);
}
}
/* 工具类 */
.content-auto {
content-visibility: auto;
}
.text-shadow-custom {
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.card-hover-effect {
transition: all 0.3s ease;
}
.card-hover-effect:hover {
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
transform: translateY(-4px);
}
.gradient-background {
background: linear-gradient(135deg, #3B82F6 0%, #8B5CF6 100%);
}
.animate-fade-in {
animation: fadeIn 0.6s ease-out forwards;
}
.loading-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 9999;
justify-content: center;
align-items: center;
}
.loading-spinner {
width: 50px;
height: 50px;
border: 5px solid #f3f3f3;
border-top: 5px solid #3B82F6;
border-radius: 50%;
animation: spin 1s linear infinite;
}
</style>
</body>
</html>

334
index.html

@ -61,7 +61,7 @@
<nav class="hidden md:flex items-center space-x-8"> <nav class="hidden md:flex items-center space-x-8">
<a href="#features" class="font-medium hover:text-primary transition-colors">特色功能</a> <a href="#features" class="font-medium hover:text-primary transition-colors">特色功能</a>
<a href="#kc" class="font-medium hover:text-primary transition-colors">最新课程</a> <a href="#kc" class="font-medium hover:text-primary transition-colors">最新课程</a>
<a href="hcdbqb-guide.html" class="font-medium hover:text-primary transition-colors">操作指南</a>
<!-- <a href="hcdbqb-guide.html" class="font-medium hover:text-primary transition-colors">操作指南</a> -->
<a href="https://wa.me/+6588792879?text=夺宝奇兵指南我需要帮助" target="_blank" <a href="https://wa.me/+6588792879?text=夺宝奇兵指南我需要帮助" target="_blank"
class="px-5 py-2 rounded-full gradient-background text-white font-medium hover:shadow-lg transition-all"> class="px-5 py-2 rounded-full gradient-background text-white font-medium hover:shadow-lg transition-all">
联系我们 联系我们
@ -79,7 +79,8 @@
<div class="container mx-auto px-4 py-3 flex flex-col space-y-4"> <div class="container mx-auto px-4 py-3 flex flex-col space-y-4">
<a href="#features" class="font-medium py-2 hover:text-primary transition-colors">特色功能</a> <a href="#features" class="font-medium py-2 hover:text-primary transition-colors">特色功能</a>
<a href="#kc" class="font-medium py-2 hover:text-primary transition-colors">最新课程</a> <a href="#kc" class="font-medium py-2 hover:text-primary transition-colors">最新课程</a>
<a href="hcdbqb-guide.html" class="font-medium py-2 hover:text-primary transition-colors">操作指南</a>
<!-- <a href="hcdbqb-guide.html" class="font-medium py-2 hover:text-primary transition-colors">操作指南</a> -->
<!-- <a href="#" class="font-medium py-2 hover:text-primary transition-colors">操作指南</a> -->
<a href="https://wa.me/+6588792879?text=夺宝奇兵指南我需要帮助" target="_blank" <a href="https://wa.me/+6588792879?text=夺宝奇兵指南我需要帮助" target="_blank"
class="py-2 rounded-full gradient-background text-white font-medium text-center hover:shadow-lg transition-all"> class="py-2 rounded-full gradient-background text-white font-medium text-center hover:shadow-lg transition-all">
联系我们 联系我们
@ -174,9 +175,8 @@
<!-- 宣传项 1 - 超级云脑 --> <!-- 宣传项 1 - 超级云脑 -->
<div class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row animate-fade-in"> <div class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row animate-fade-in">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/chaojiyunnaoimg.jpg" alt="智能数据分析平台"
class="w-full h-full object-cover">
<div class="md:w-1/2 promotion-image">
<img src="https://hc.homilychart.com/hc/250121/img/chaojiyunnaoimg.jpg" alt="智能数据分析平台" class="w-full h-full">
</div> </div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center"> <div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span <span
@ -210,9 +210,8 @@
<!-- 宣传项 2 - AI预测大模型 --> <!-- 宣传项 2 - AI预测大模型 -->
<div <div
class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row-reverse animate-fade-in delay-100"> class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row-reverse animate-fade-in delay-100">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/aiyucedamoxing.jpg" alt="AI预测大模型"
class="w-full h-full object-cover">
<div class="md:w-1/2 promotion-image">
<img src="https://hc.homilychart.com/hc/250121/img/aiyucedamoxing.jpg" alt="AI预测大模型" class="w-full h-full">
</div> </div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center"> <div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span <span
@ -245,10 +244,9 @@
<!-- 宣传项 3 - 夺宝利剑 --> <!-- 宣传项 3 - 夺宝利剑 -->
<div <div
class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row-reverse animate-fade-in delay-100">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/duobaolijianindex.jpg" alt="夺宝利剑"
class="w-full h-full object-cover">
class="bg-white rounded-3xl shadow-xl overflow-hidden mb-16 flex flex-col md:flex-row animate-fade-in delay-100">
<div class="md:w-1/2 promotion-image">
<img src="https://hc.homilychart.com/hc/250121/img/duobaolijianindex.jpg" alt="夺宝利剑" class="w-full h-full">
</div> </div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center"> <div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span <span
@ -282,9 +280,8 @@
<!-- 宣传项 4 - 专题讲座 --> <!-- 宣传项 4 - 专题讲座 -->
<div id="kc" <div id="kc"
class="bg-white rounded-3xl shadow-xl overflow-hidden flex flex-col md:flex-row animate-fade-in delay-200"> class="bg-white rounded-3xl shadow-xl overflow-hidden flex flex-col md:flex-row animate-fade-in delay-200">
<div class="md:w-1/2">
<img src="https://hc.homilychart.com/hc/250121/img/kecheng.jpg" alt="John Lu谈股专题讲座"
class="w-full h-full object-cover">
<div class="md:w-1/2 promotion-image">
<img id="lectureImage" src="" alt="John Lu谈股专题讲座" class="w-full h-full">
</div> </div>
<div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center"> <div class="md:w-1/2 p-8 md:p-12 flex flex-col justify-center">
<span <span
@ -516,8 +513,11 @@
<div> <div>
<h4 class="text-lg font-semibold mb-6 heading-tertiary">支持</h4> <h4 class="text-lg font-semibold mb-6 heading-tertiary">支持</h4>
<ul class="space-y-3"> <ul class="space-y-3">
<li class="list-item"><a href="hcdbqb-guide.html"
class="text-gray-400 hover:text-white transition-colors">帮助中心</a></li>
<li class="list-item">
<!-- <a href="hcdbqb-guide.html"
class="text-gray-400 hover:text-white transition-colors">帮助中心</a> -->
<a href="#" class="text-gray-400 hover:text-white transition-colors">帮助中心</a>
</li>
<li class="list-item"><a href="https://wa.me/+6588792879?text=我有问题" target="_blank" <li class="list-item"><a href="https://wa.me/+6588792879?text=我有问题" target="_blank"
class="text-gray-400 hover:text-white transition-colors">常见问题</a></li> class="text-gray-400 hover:text-white transition-colors">常见问题</a></li>
</ul> </ul>
@ -548,7 +548,7 @@
</div> </div>
<h3 class="text-xl font-bold mb-2 heading-tertiary">注册成功!</h3> <h3 class="text-xl font-bold mb-2 heading-tertiary">注册成功!</h3>
<p class="text-gray-600 mb-6 paragraph-text">感谢您的注册,我们的顾问将尽快与您联系。</p> <p class="text-gray-600 mb-6 paragraph-text">感谢您的注册,我们的顾问将尽快与您联系。</p>
<a href="https://wa.me/8615318705910?text=%E6%8A%A5%E5%90%8D%E8%AF%BE%E7%A8%8B" target="_blank"
<a href="https://api.whatsapp.com/send?phone=85255110485&text=课程" target="_blank"
class="inline-block px-6 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 transition-colors"> class="inline-block px-6 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 transition-colors">
联系我们 联系我们
</a> </a>
@ -564,7 +564,7 @@
const LOADING_DELAY = 300; const LOADING_DELAY = 300;
// 导入API函数 // 导入API函数
import { registerMemberApi } from './src/api/member.js';
import { registerMemberApi, getImageApi } from './src/api/member.js';
// 表单提交处理 // 表单提交处理
const registrationForm = document.getElementById('registrationForm'); const registrationForm = document.getElementById('registrationForm');
@ -573,10 +573,45 @@
const submitBtn = document.getElementById('submitBtn'); const submitBtn = document.getElementById('submitBtn');
const loadingOverlay = document.getElementById('loadingOverlay'); const loadingOverlay = document.getElementById('loadingOverlay');
// 新增:讲座图片元素引用
const lectureImage = document.getElementById('lectureImage');
// 防止重复提交标志 // 防止重复提交标志
let isSubmitting = false; let isSubmitting = false;
/** /**
* 从后端获取讲座图片
*/
async function loadLectureImage() {
console.log('开始加载讲座图片...'); // 调试信息
try {
const requestData = {
id: 1,
};
console.log('调用getImageApi,参数:', requestData); // 调试信息
const response = await getImageApi(requestData);
console.log('接口返回:', response); // 调试信息
if (response.code === 200 && response.data) {
// 成功获取图片URL,更新图片src
lectureImage.src = response.data;
console.log('讲座图片加载成功:', response.data);
} else {
console.warn('获取图片失败:', response.msg);
// 使用默认的图片
lectureImage.src = 'https://hc.homilychart.com/hc/250121/img/kecheng.jpg';
}
} catch (error) {
console.error('加载讲座图片失败:', error);
// 出错时保持默认图片
lectureImage.src = 'https://hc.homilychart.com/hc/250121/img/kecheng.jpg';
}
}
/**
* 显示加载指示器 * 显示加载指示器
*/ */
function showLoadingIndicator() { function showLoadingIndicator() {
@ -737,6 +772,15 @@
}); });
} }
// 页面加载完成后执行
window.addEventListener('load', () => {
console.log('页面加载完成,开始调用loadLectureImage...');
loadLectureImage(); // 调用图片加载函数
executeScrollAnimation();
// 隐藏加载状态
document.getElementById('loadingOverlay').style.display = 'none';
});
// 绑定表单提交事件 // 绑定表单提交事件
registrationForm.addEventListener('submit', handleFormSubmit); registrationForm.addEventListener('submit', handleFormSubmit);
@ -758,154 +802,246 @@
// 导航栏滚动效果 // 导航栏滚动效果
window.addEventListener('scroll', handleHeaderScroll); window.addEventListener('scroll', handleHeaderScroll);
// 页面加载完成后执行
window.addEventListener('load', () => {
executeScrollAnimation();
// 隐藏加载状态
document.getElementById('loadingOverlay').style.display = 'none';
});
// 滚动时执行动画 // 滚动时执行动画
window.addEventListener('scroll', executeScrollAnimation); window.addEventListener('scroll', executeScrollAnimation);
</script> </script>
<style> <style>
/* 全局字体大小调整 - 整体放大 */
/* 全局字体大小调整 - 整体调小 */
html { html {
font-size: 18px;
font-size: 16px;
scroll-behavior: smooth; scroll-behavior: smooth;
} }
/* 文本样式类 */ /* 文本样式类 */
.body-text {
font-size: 1.1rem;
line-height: 1.7;
.page-body {
font-size: 1rem;
line-height: 1.6;
} }
.heading-primary {
font-size: clamp(2.8rem, 6vw, 4.5rem);
.text-heading-primary {
font-size: clamp(2.2rem, 5vw, 3.5rem);
line-height: 1.2; line-height: 1.2;
} }
.heading-secondary {
font-size: clamp(1.6rem, 3vw, 2.5rem);
.text-heading-secondary {
font-size: clamp(1.4rem, 2.5vw, 2.2rem);
line-height: 1.3; line-height: 1.3;
} }
.heading-tertiary {
font-size: clamp(1.7rem, 3vw, 2.5rem);
.text-heading-tertiary {
font-size: clamp(1.3rem, 2.5vw, 2rem);
line-height: 1.4; line-height: 1.4;
} }
.paragraph-text {
font-size: 1.1rem;
line-height: 1.7;
}
.list-item {
font-size: 1.1rem;
.text-paragraph {
font-size: 1rem;
line-height: 1.6;
} }
.breadcrumb-text {
font-size: 1.125rem;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
.text-list-item {
font-size: 1rem;
} }
.form-label {
font-size: 1.15rem;
margin-bottom: 0.75rem;
.text-breadcrumb {
font-size: 0.9rem;
padding-top: 0.4rem;
padding-bottom: 0.4rem;
} }
.form-input {
font-size: 1.15rem;
padding-top: 1rem;
padding-bottom: 1rem;
.form-label-text {
font-size: 1rem;
margin-bottom: 0.5rem;
} }
.form-input::placeholder {
font-size: 1.1rem;
.form-input-field {
font-size: 1rem;
padding-top: 0.75rem;
padding-bottom: 0.75rem;
} }
/* 导航菜单字体调大 */
.nav-link {
font-size: 1.2rem;
.form-input-field::placeholder {
font-size: 0.95rem;
} }
/* 按钮文字调大 */
.button-large {
font-size: 1.2rem;
padding-top: 1rem;
padding-bottom: 1rem;
/* 导航菜单字体调小 */
.nav-link-text {
font-size: 1rem;
} }
/* 特色功能卡片文字调大 */
.feature-card>.heading-tertiary {
font-size: 1.6rem;
margin-bottom: 1rem;
/* 按钮文字调小 */
.button-large-text {
font-size: 1rem;
padding-top: 0.75rem;
padding-bottom: 0.75rem;
} }
.feature-card>.paragraph-text {
font-size: 1.15rem;
line-height: 1.6;
/* 特色功能卡片文字调小 */
.feature-card-title {
font-size: 1.3rem;
margin-bottom: 0.75rem;
} }
/* 产品宣传区域文字调大 */
.promo-section>.paragraph-text {
font-size: 1.15rem;
line-height: 1.7;
.feature-card-description {
font-size: 0.95rem;
line-height: 1.5;
} }
.promo-section>ul>.list-item {
font-size: 1.15rem;
/* 产品宣传区域文字调小 */
.promo-section-paragraph {
font-size: 1rem;
line-height: 1.6;
} }
.promo-section>.breadcrumb-text {
font-size: 1.125rem;
.promo-section-list-item {
font-size: 1rem;
} }
/* 修复注册区域标题行距 */
#register>.heading-secondary {
margin-bottom: 1.5rem;
line-height: 1.4;
.promo-section-breadcrumb {
font-size: 0.9rem;
} }
/* 页脚文字调 */
/* 页脚文字调 */
.footer-text { .footer-text {
font-size: 1.1rem;
font-size: 0.95rem;
} }
.footer-heading { .footer-heading {
font-size: 1.5rem;
font-size: 1.3rem;
} }
/* 成功模态框文字调 */
/* 成功模态框文字调 */
.modal-heading { .modal-heading {
font-size: 1.8rem;
font-size: 1.5rem;
} }
.modal-text { .modal-text {
font-size: 1.15rem;
font-size: 1rem;
} }
.modal-button { .modal-button {
font-size: 1.15rem;
font-size: 1rem;
}
/* 宣传模块图片样式优化 - 确保图片完整显示 */
.promotion-image {
display: flex;
min-height: 400px;
overflow: hidden;
align-items: center;
justify-content: center;
background-color: #f8fafc;
} }
/* 小屏幕适配 */
.promotion-image img {
width: auto;
max-width: 100%;
height: auto;
max-height: 100%;
object-fit: contain;
}
/* 针对不同模块的图片进行特定调整 */
/* 超级云脑图片 - 图表类图片,确保完整显示 */
.bg-white.rounded-3xl.shadow-xl.overflow-hidden.mb-16.flex.flex-col.md\\:flex-row.animate-fade-in .promotion-image {
background-color: #f0f9ff;
}
/* AI预测大模型图片 - 确保完整显示 */
.bg-white.rounded-3xl.shadow-xl.overflow-hidden.mb-16.flex.flex-col.md\\:flex-row-reverse.animate-fade-in.delay-100 .promotion-image {
background-color: #faf5ff;
}
/* 夺宝利剑图片 - 图表类图片,确保完整显示 */
.bg-white.rounded-3xl.shadow-xl.overflow-hidden.mb-16.flex.flex-col.md\\:flex-row.animate-fade-in.delay-100 .promotion-image {
background-color: #f0fdf4;
}
/* John Lu谈股专题讲座图片 - 确保完整显示 */
.bg-white.rounded-3xl.shadow-xl.overflow-hidden.flex.flex-col.md\\:flex-row.animate-fade-in.delay-200 .promotion-image {
background-color: #ecfdf5;
}
/* 特色功能卡片高度调整 */
.feature-card {
height: 100%;
display: flex;
flex-direction: column;
}
.feature-card-icon {
margin-bottom: 1rem;
}
.feature-card-title {
margin-bottom: 0.75rem;
}
/* 特色功能区域图标调整 */
.feature-card img {
max-width: 100%;
height: auto;
display: block;
margin: 0 auto;
}
/* 注册表单区域调整 */
.register-section-title {
margin-bottom: 1rem;
line-height: 1.3;
}
.register-section-description {
margin-bottom: 1.5rem;
}
.register-section-features {
gap: 1rem;
}
/* 页脚区域调整 */
.footer-logo {
margin-bottom: 1rem;
}
.footer-description {
margin-bottom: 1rem;
}
.footer-heading {
margin-bottom: 1rem;
}
.footer-list {
gap: 0.5rem;
}
/* 移动端适配 */
@media (max-width: 768px) { @media (max-width: 768px) {
html { html {
font-size: 16px;
font-size: 14px;
}
.page-body {
font-size: 0.95rem;
}
.mobile-nav-link {
font-size: 0.95rem;
padding-top: 0.6rem;
padding-bottom: 0.6rem;
} }
.body-text {
font-size: 1.05rem;
.promotion-image {
min-height: 300px;
} }
.mobile-menu>.nav-link {
font-size: 1.1rem;
padding-top: 0.8rem;
padding-bottom: 0.8rem;
/* 移动端确保图片完整显示 */
.promotion-image img {
width: auto;
max-width: 90%;
height: auto;
max-height: 90%;
} }
} }

6
package.json

@ -8,11 +8,11 @@
}, },
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"dev:prod": "vite --mode product",
"dev:prod": "vite --mode production",
"build:test": "vite build --mode development", "build:test": "vite build --mode development",
"preview:test": "vite preview --mode development", "preview:test": "vite preview --mode development",
"build:prod": "vite build --mode product",
"preview:prod": "vite preview --mode product",
"build:prod": "vite build --mode production",
"preview:prod": "vite preview --mode production",
"build:all": "npm run build:test && npm run build:prod" "build:all": "npm run build:test && npm run build:prod"
}, },
"dependencies": { "dependencies": {

8
src/api/member.js

@ -12,6 +12,14 @@ export function registerMemberApi(data) {
}); });
} }
export function getImageApi(data) {
return request({
url: `${API_BASE_URL}/api/cover/getImage`,
method: "post",
data: data,
});
}
export function getMemberListApi(data){ export function getMemberListApi(data){
return request({ return request({
url: `${API_BASE_URL}/api/member/getList`, url: `${API_BASE_URL}/api/member/getList`,

29
vite.config.js

@ -1,17 +1,21 @@
import { fileURLToPath, URL } from 'node:url' import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue' import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools' import vueDevTools from 'vite-plugin-vue-devtools'
// https://vite.dev/config/ // https://vite.dev/config/
export default defineConfig(({ mode, command }) => { export default defineConfig(({ mode, command }) => {
// 根据模式设置不同的输出目录
// 正确加载环境变量 - 只加载 VITE_ 前缀的变量:cite[9]
const env = loadEnv(mode, process.cwd(), 'VITE_')
const outDirMap = { const outDirMap = {
development: 'dist-test', // 测试环境
product: 'dist-prod' // 生产环境
development: 'dist-test',
production: 'dist-prod'
} }
return { return {
// 确保基础路径正确
base: './',
plugins: [ plugins: [
vue(), vue(),
vueDevTools(), vueDevTools(),
@ -22,13 +26,24 @@ export default defineConfig(({ mode, command }) => {
}, },
}, },
build: { build: {
// 根据模式设置不同的输出目录
outDir: outDirMap[mode] || 'dist', outDir: outDirMap[mode] || 'dist',
rollupOptions: {
input: {
main: './index.html',
download: './hcdbqb-download.html',
guide: './hcdbqb-guide.html',
management: './hcdbqb-management.html'
},
output: {
entryFileNames: '[name].js', // 入口文件命名
chunkFileNames: '[name].js', // 代码分割块命名
assetFileNames: '[name].[ext]' // 静态资源命名
}
}
}, },
// 开发服务器配置
server: { server: {
port: 5173, port: 5173,
open: true open: true
}
},
} }
}) })
Loading…
Cancel
Save