2 Commits

  1. 4
      dist-test/hcdbqb-download.html
  2. 2
      dist-test/hcdbqb-guide.html
  3. 65
      dist-test/hcdbqb-management.html
  4. 940
      dist-test/index.html
  5. 1
      dist-test/main.js
  6. 5
      dist-test/management.js
  7. 10
      dist-test/member.js
  8. 2
      hkLogiManagement.html

4
dist-test/hcdbqb-download.html

@ -1579,7 +1579,7 @@
<!-- 桌面导航 --> <!-- 桌面导航 -->
<nav class="hidden md:flex items-center space-x-8"> <nav class="hidden md:flex items-center space-x-8">
<a href="index.html" class="hover:text-primary transition-colors"
<a href="hcdbqb.html" class="hover:text-primary transition-colors"
>首页</a >首页</a
> >
<a href="hcdbqb-download.html" class="text-primary font-medium" <a href="hcdbqb-download.html" class="text-primary font-medium"
@ -1608,7 +1608,7 @@
<!-- 移动端菜单内容 --> <!-- 移动端菜单内容 -->
<div id="mobileMenu" class="md:hidden hidden bg-white border-t"> <div id="mobileMenu" class="md:hidden hidden bg-white border-t">
<div class="container mx-auto px-4 py-3 flex flex-col space-y-3"> <div class="container mx-auto px-4 py-3 flex flex-col space-y-3">
<a href="index.html" class="py-2 hover:text-primary transition-colors"
<a href="hcdbqb.html" class="py-2 hover:text-primary transition-colors"
>首页</a >首页</a
> >
<a href="hcdbqb-download.html" class="py-2 text-primary">下载中心</a> <a href="hcdbqb-download.html" class="py-2 text-primary">下载中心</a>

2
dist-test/hcdbqb-guide.html

@ -2030,7 +2030,7 @@
<ul class="space-y-3"> <ul class="space-y-3">
<li> <li>
<a <a
href="hcdbqb-guide.html"
href="./hcdbqb-guide.html"
class="text-gray-400 hover:text-white transition-colors" class="text-gray-400 hover:text-white transition-colors"
>帮助中心</a >帮助中心</a
> >

65
dist-test/hcdbqb-management.html

@ -6,6 +6,43 @@
<meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="viewport" content="width=device-width,initial-scale=1" />
<title>管理后台</title> <title>管理后台</title>
<style> <style>
.tab-container {
max-width: 1200px;
margin: 0 0 12px 0;
padding: 0 16px;
}
.tabs {
display: flex;
gap: 50px;
padding: 4px;
border-radius: 8px;
width: fit-content;
}
.tab {
padding: 10px 20px;
border-radius: 6px;
border: none;
background: transparent;
color: #131212;
font-weight: 700;
cursor: pointer;
transition: all 0.3s ease;
font-size: 16px;
white-space: nowrap;
}
.tab:hover {
background: rgba(46, 125, 50, 0.1);
color: #25D366;
}
.tab.active {
background: #BAF7D0;
color: #0E4322;
box-shadow: 0 2px 4px rgba(46, 125, 50, 0.3);
}
body { body {
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
padding: 24px; padding: 24px;
@ -118,6 +155,16 @@
} }
@media (max-width: 640px) { @media (max-width: 640px) {
.tabs {
flex-wrap: wrap;
width: 100%;
}
.tab {
flex: 1;
min-width: 120px;
text-align: center;
}
.controls { .controls {
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
@ -225,6 +272,7 @@
} }
</style> </style>
<script type="module" crossorigin src="./management.js"></script> <script type="module" crossorigin src="./management.js"></script>
<link rel="modulepreload" crossorigin href="./request.js">
<link rel="modulepreload" crossorigin href="./member.js"> <link rel="modulepreload" crossorigin href="./member.js">
</head> </head>
@ -237,24 +285,31 @@
<button class="btn primary" id="goToLoginBtn">前往登录页面</button> <button class="btn primary" id="goToLoginBtn">前往登录页面</button>
</div> </div>
</div> </div>
<div class="tab-container">
<div class="tabs">
<button class="tab active" data-tab="win-us-stock">赢在美股导流</button>
<button class="tab" data-tab="deepchart">DeepChart导流</button>
<button class="tab" data-tab="content-config">内容配置</button>
</div>
</div>
<div class="card"> <div class="card">
<table aria-describedby="tableDesc"> <table aria-describedby="tableDesc">
<thead> <thead>
<tr> <tr>
<th style="width: 30px">#</th>
<th style="width: 20px">#</th>
<th style="width: 60px">姓名</th> <th style="width: 60px">姓名</th>
<th style="width: 80px">WhatsApp</th> <th style="width: 80px">WhatsApp</th>
<th style="width: 90px">国家/地区代码</th>
<th style="width: 80px">国家/地区代码</th>
<th style="width: 110px">电话号码</th> <th style="width: 110px">电话号码</th>
<th style="width: 110px">微信ID</th> <th style="width: 110px">微信ID</th>
<th style="width: 110px">邮箱</th> <th style="width: 110px">邮箱</th>
<th style="width: 70px">获客来源</th>
<th style="width: 100px">报名意向</th>
<th style="width: 80px">获客来源</th>
<th style="width: 130px">来源地址</th> <th style="width: 130px">来源地址</th>
<th style="width: 150px">添加时间</th> <th style="width: 150px">添加时间</th>
<th style="width: 90px">是否联系</th> <th style="width: 90px">是否联系</th>
<th style="width: 90px">备注</th> <th style="width: 90px">备注</th>
<th style="width: 100px">操作</th>
<th style="width: 70px">操作</th>
</tr> </tr>
</thead> </thead>
<tbody id="tableBody"></tbody> <tbody id="tableBody"></tbody>

940
dist-test/index.html

@ -4,914 +4,100 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <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>赢在美股——加入我们,开启赢家人生!</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>
<title>404 - 页面不存在</title>
<style> <style>
/* 在head中添加初始滚动样式 */
html,
body {
scroll-behavior: auto;
* {
margin: 0;
padding: 0;
box-sizing: border-box;
} }
/* 隐藏页面内容,直到滚动完成 */
body { body {
opacity: 0;
transition: opacity 0.3s ease;
}
body.content-visible {
opacity: 1;
}
</style>
<script type="module" crossorigin src="./main.js"></script>
<link rel="modulepreload" crossorigin href="./member.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://d31zlh4on95l9h.cloudfront.net/images/497d8b38ab9f738e9720d5d7bddf3beb.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://api.whatsapp.com/send?phone=85255110485&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="#" class="font-medium py-2 hover:text-primary transition-colors">操作指南</a> -->
<a href="https://api.whatsapp.com/send?phone=85255110485&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 promotion-image">
<img src="https://hc.homilychart.com/hc/250121/img/chaojiyunnaoimg.jpg" alt="智能数据分析平台" class="w-full h-full">
</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 promotion-image">
<img src="https://hc.homilychart.com/hc/250121/img/aiyucedamoxing.jpg" alt="AI预测大模型" class="w-full h-full">
</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 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 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 promotion-image">
<img id="lectureImage" src="" alt="John Lu谈股专题讲座" class="w-full h-full">
</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 > 消息 > 赢在美股班级群
</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 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 bg-image-overlay">
<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">
填写报名表,即可快速解锁专业投资AI工具,助力您把握投资机会!
</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="footer-bg 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://d31zlh4on95l9h.cloudfront.net/images/497d8b38ab9f738e9720d5d7bddf3beb.png"
style="width: 40px;height: 40px;">
</div>
<span class="text-xl font-bold">赢在美股</span>
</div>
<p class="text-gray-400 mb-6 paragraph-text">
加入赢在美股,开启赢家人生!
</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://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
target="_blank" class="text-gray-400 hover:text-white transition-colors">弘历云版软件</a></li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
target="_blank" class="text-gray-400 hover:text-white transition-colors">HomilyChart</a></li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
target="_blank" class="text-gray-400 hover:text-white transition-colors">夺宝奇兵</a></li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
class="text-gray-400 hover:text-white transition-colors">博股会员</a></li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&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://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
target="_blank" class="text-gray-400 hover:text-white transition-colors">关于我们</a></li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
target="_blank" class="text-gray-400 hover:text-white transition-colors">团队介绍</a></li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&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> -->
<a href="https://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
class="text-gray-400 hover:text-white transition-colors">帮助中心</a>
</li>
<li class="list-item"><a href="https://api.whatsapp.com/send?phone=85255110485&text=我想了解赢在美股"
target="_blank" class="text-gray-400 hover:text-white transition-colors">常见问题</a></li>
</ul>
</div>
</div>
<div class=" 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://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">
联系我们
</a>
</div>
</div>
</div>
<style>
/* 全局字体大小调整 - 整体调小 */
html {
font-size: 16px;
}
/* 文本样式类 */
.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-image {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
min-height: 100vh;
display: flex; display: flex;
min-height: 400px;
overflow: hidden;
align-items: center; align-items: center;
justify-content: 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;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
} }
/* 特色功能卡片高度调整 */
.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;
.container {
text-align: center;
color: white;
max-width: 500px;
} }
.footer-description {
margin-bottom: 1rem;
h1 {
font-size: 100px;
margin: 0;
font-weight: 700;
text-shadow: 4px 4px 0 rgba(0, 0, 0, 0.2);
} }
.footer-heading {
margin-bottom: 1rem;
.message {
font-size: 24px;
margin: 20px 0;
} }
.footer-list {
gap: 0.5rem;
}
/* 移动端适配 */
@media (max-width: 768px) {
html {
.desc {
font-size: 14px; font-size: 14px;
margin: 20px 0;
opacity: 0.9;
} }
.page-body {
font-size: 0.95rem;
}
.mobile-nav-link {
font-size: 0.95rem;
padding-top: 0.6rem;
padding-bottom: 0.6rem;
}
.promotion-image {
min-height: 300px;
}
/* 移动端确保图片完整显示 */
.promotion-image img {
width: auto;
max-width: 90%;
height: auto;
max-height: 90%;
}
}
/* 动画定义 */
@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;
.buttons {
margin-top: 40px;
display: flex;
gap: 15px;
justify-content: center; 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;
.btn {
display: inline-block;
padding: 10px 24px;
background: white;
color: #667eea;
text-decoration: none;
border-radius: 25px;
font-weight: 600;
transition: transform 0.3s;
} }
.gradient-background {
background: linear-gradient(135deg, #3b82f6 0%, #1e40af 100%);
.btn:hover {
transform: translateY(-2px);
} }
.bg-image-overlay {
background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)),
url('https://d31zlh4on95l9h.cloudfront.net/images/3b28e7abdfc4b495324cc3e6d9210b51.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
.btn-outline {
background: transparent;
color: white;
border: 2px solid white;
} }
.gradient-background {
background: linear-gradient(135deg, #3b82f6 0%, #1e40af 100%);
@media (max-width: 600px) {
h1 {
font-size: 70px;
} }
.footer-bg {
background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
url('https://d31zlh4on95l9h.cloudfront.net/images/22576b3fe6f29e642f322d4d315ae426.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
.message {
font-size: 18px;
}
} }
</style> </style>
</head>
<body>
<div class="container">
<h1>404</h1>
<div class="message">页面不存在</div>
<div class="desc">抱歉,您访问的页面不存在或已被移除</div>
<div class="buttons">
<button class="btn btn-outline" onclick="history.back()">返回上一页</button>
</div>
</div>
<script>
console.error('404:', window.location.href);
</script>
</body> </body>
</html> </html>

1
dist-test/main.js

@ -1 +0,0 @@
import{g as I,r as L}from"./member.js";const w=50,p=100,B=20,u=document.getElementById("registrationForm"),c=document.getElementById("successModal"),v=document.getElementById("closeModal"),l=document.getElementById("submitBtn"),g=document.getElementById("loadingOverlay"),i=document.getElementById("lectureImage");let d=!1;function b(){document.documentElement.style.scrollBehavior="auto";const t=document.getElementById("register");if(t){const e=document.querySelector("header").offsetHeight,n=t.offsetTop-e-20;window.scrollTo(0,n)}setTimeout(()=>{document.documentElement.style.scrollBehavior="smooth"},100)}async function M(){console.log("开始加载讲座图片...");try{const t={id:1};console.log("调用getImageApi,参数:",t);const e=await I(t);console.log("接口返回:",e),e.code===200&&e.data?(i.src=e.data,console.log("讲座图片加载成功:",e.data)):(console.warn("获取图片失败:",e.msg),i.src="https://hc.homilychart.com/hc/250121/img/kecheng.jpg")}catch(t){console.error("加载讲座图片失败:",t),i.src="https://hc.homilychart.com/hc/250121/img/kecheng.jpg"}}function S(){g.style.display="flex",l.disabled=!0,l.textContent="提交中...",d=!0}function A(){g.style.display="none",l.disabled=!1,l.textContent="提交注册",d=!1}function s(t){alert(t)}function T(t){const{name:e,tel:n,email:o}=t;return!e||e.length>w?(s("请输入有效的姓名(最多50个字符)"),document.getElementById("userNameInfo").focus(),!1):!n||n.length>B?(s("请输入有效的电话号码"),document.getElementById("userMobile").focus(),!1):!o||o.length>p?(s("请输入电子邮箱"),document.getElementById("userEmail").focus(),!1):/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o)?!0:(s("请输入有效的电子邮箱地址"),document.getElementById("userEmail").focus(),!1)}async function H(t){if(t.preventDefault(),d)return;const e=document.getElementById("userNameInfo").value.trim(),n=document.getElementById("countryInfo").value,o=document.getElementById("userMobile").value.trim(),m=document.getElementById("userWechat").value.trim(),y=document.getElementById("userEmail").value.trim(),h=await x(),E=await D(),a={name:e,code:n,tel:o,wechat:m,email:y,type:h,url:E};if(console.log("formData:",a),!!T(a))try{S();const r=await L(a);r.code===200?(c.classList.remove("hidden"),u.reset()):s("注册失败: "+(r.msg||"未知错误"))}catch(r){console.error("请求失败:",r),s("网络错误,请稍后重试")}finally{A()}}function P(){document.getElementById("mobileMenu").classList.toggle("hidden");const e=document.getElementById("menuBtn").querySelector("i");e.classList.contains("fa-bars")?e.classList.replace("fa-bars","fa-times"):e.classList.replace("fa-times","fa-bars")}function N(){const t=document.querySelector("header");window.scrollY>50?(t.classList.add("py-2","shadow"),t.classList.remove("py-3")):(t.classList.add("py-3"),t.classList.remove("py-2","shadow"))}function f(){document.querySelectorAll(".animate-fade-in").forEach(e=>{const n=e.getBoundingClientRect().top,o=window.innerHeight;n<o-100&&(e.style.opacity="1",e.style.transform="translateY(0)")})}document.addEventListener("DOMContentLoaded",function(){b(),setTimeout(()=>{document.body.classList.add("content-visible")},50)});window.addEventListener("load",()=>{console.log("页面加载完成,开始调用loadLectureImage..."),M(),f(),document.getElementById("loadingOverlay").style.display="none"});u.addEventListener("submit",H);v.addEventListener("click",()=>{c.classList.add("hidden")});c.addEventListener("click",t=>{t.target===c&&c.classList.add("hidden")});document.getElementById("menuBtn").addEventListener("click",P);window.addEventListener("scroll",N);window.addEventListener("scroll",f);function x(){const e=new URLSearchParams(window.location.search).get("type");return e==="video"?1:e==="live"?2:e==="article"?3:0}function D(){return new URLSearchParams(window.location.search).get("url")}

5
dist-test/management.js

@ -1,4 +1,4 @@
import{u as B,e as L,a as E}from"./member.js";function r(){const n=localStorage.getItem("isLoggedIn")==="true",e=parseInt(localStorage.getItem("loginTime")),a=(new Date().getTime()-e)/(1e3*60*60);return!n||a>=24?(localStorage.removeItem("isLoggedIn"),localStorage.removeItem("loginTime"),!1):!0}function d(){const n=document.getElementById("loginCheckModal");n.style.display="flex"}function $(){window.location.href="login-management.html"}r()||d();document.getElementById("goToLoginBtn").addEventListener("click",$);let o={pageSize:20,currentPage:1,total:0,items:[]};const y=document.getElementById("tableBody"),w=document.getElementById("pagination"),v=document.getElementById("totalCount");document.getElementById("currentPage");document.getElementById("showingRange");const h=document.getElementById("pageSizeSelect"),x=document.getElementById("gotoInput"),b=document.getElementById("noteModal"),u=document.getElementById("noteTextarea"),M=document.getElementById("noteCancelBtn"),P=document.getElementById("noteSaveBtn"),f=document.getElementById("toast");let p=null;function I(n){f.textContent=n,f.classList.add("show"),setTimeout(()=>f.classList.remove("show"),1e3)}async function C(n,e){if(!r()){d();return}try{const t=await E({page:n,page_size:e});if(typeof t.code<"u"&&t.code!==200)throw new Error(t.msg||"接口返回错误");console.log(t);const a=t.data||{};o.items=a.list,o.total=a.total}catch{alert("获取数据失败"),o.total=0}}function S(){const n=(o.currentPage-1)*o.pageSize,e=o.items||[];y.innerHTML=e.map((t,a)=>{const s=n+a+1,c=t.isRelated?"status-1":"status-0",l=t.isRelated?"已联系":"未联系";return(t.code||"").replace(/\+/g,"")+(t.telephone||""),`
import"./request.js";import{u as L,e as v,a as E}from"./member.js";function r(){const n=localStorage.getItem("isLoggedIn")==="true",e=parseInt(localStorage.getItem("loginTime")),a=(new Date().getTime()-e)/(1e3*60*60);return!n||a>=24?(localStorage.removeItem("isLoggedIn"),localStorage.removeItem("loginTime"),!1):!0}function d(){const n=document.getElementById("loginCheckModal");n.style.display="flex"}function B(){window.location.href="login-management.html"}r()||d();document.getElementById("goToLoginBtn").addEventListener("click",B);$();function $(){const n=document.querySelectorAll(".tab");n.forEach(e=>{e.addEventListener("click",function(){switch(n.forEach(a=>a.classList.remove("active")),this.classList.add("active"),this.getAttribute("data-tab")){case"win-us-stock":console.log("切换到赢在美股导流页面");break;case"deepchart":console.log("切换到DeepChart导流页面"),window.location.href="deepchart-management.html";break;case"content-config":console.log("切换到内容配置页面"),window.location.href="content-config.html";break}})})}let o={pageSize:20,currentPage:1,total:0,items:[]};const b=document.getElementById("tableBody"),y=document.getElementById("pagination"),x=document.getElementById("totalCount");document.getElementById("currentPage");document.getElementById("showingRange");const h=document.getElementById("pageSizeSelect"),M=document.getElementById("gotoInput"),w=document.getElementById("noteModal"),u=document.getElementById("noteTextarea"),P=document.getElementById("noteCancelBtn"),C=document.getElementById("noteSaveBtn"),f=document.getElementById("toast");let p=null;function I(n){f.textContent=n,f.classList.add("show"),setTimeout(()=>f.classList.remove("show"),1e3)}async function T(n,e){if(!r()){d();return}try{const t=await E({source:0,page:n,page_size:e});if(typeof t.code<"u"&&t.code!==200)throw new Error(t.msg||"接口返回错误");console.log(t);const a=t.data||{};o.items=a.list,o.total=a.total}catch{alert("获取数据失败"),o.total=0}}function S(){const n=(o.currentPage-1)*o.pageSize,e=o.items||[];b.innerHTML=e.map((t,a)=>{const s=n+a+1,c=t.isRelated?"status-1":"status-0",l=t.isRelated?"已联系":"未联系";return(t.code||"").replace(/\+/g,"")+(t.telephone||""),`
<tr> <tr>
<td>${s}</td> <td>${s}</td>
<td>${i(t.name||"")}</td> <td>${i(t.name||"")}</td>
@ -9,6 +9,7 @@ import{u as B,e as L,a as E}from"./member.js";function r(){const n=localStorage.
<td>${i(t.telephone||"")}</td> <td>${i(t.telephone||"")}</td>
<td>${i(t.wechat||"")}</td> <td>${i(t.wechat||"")}</td>
<td>${i(t.email||"")}</td> <td>${i(t.email||"")}</td>
<td>${i(t.registration_intention||"")}</td>
<td>${i(t.type===0?"其它":t.type===1?"视频":t.type===2?"直播":t.type===3?"帖子":"其它")}</td> <td>${i(t.type===0?"其它":t.type===1?"视频":t.type===2?"直播":t.type===3?"帖子":"其它")}</td>
<td>${i(t.url||"")}</td> <td>${i(t.url||"")}</td>
<td>${i(t.createdAt||"")}</td> <td>${i(t.createdAt||"")}</td>
@ -20,4 +21,4 @@ import{u as B,e as L,a as E}from"./member.js";function r(){const n=localStorage.
<button class="btn" data-action="editNote" data-id="${t.id}">编辑备注</button> <button class="btn" data-action="editNote" data-id="${t.id}">编辑备注</button>
</td> </td>
</tr> </tr>
`}).join(""),v.textContent=o.total}y.addEventListener("click",async n=>{if(!r()){d();return}const e=n.target.closest('[data-action="whatsapp"]');if(e){const s=e.getAttribute("data-id");T(s);return}const t=n.target.closest('[data-action="toggle"]');if(t){const s=t.getAttribute("data-id");await A(s,t);return}const a=n.target.closest('[data-action="editNote"]');if(a){const s=a.getAttribute("data-id");z(s);return}});function T(n){const e=o.items.find(c=>String(c.id)===String(n));if(!e)return;const a=(e.code||"").replace(/\+/g,"")+(e.telephone||""),s=`https://api.whatsapp.com/send?phone=${encodeURIComponent(a)}&text=${encodeURIComponent("hello欢迎来到赢在美股")}`;window.open(s,"_blank")}async function A(n,e){const t=o.items.find(c=>String(c.id)===String(n));if(!t)return;const a=t.isRelated,s=a?0:1;t.isRelated=s,e.textContent=s?"已联系":"未联系",e.classList.toggle("status-1",!!s),e.classList.toggle("status-0",!s);try{const c=await B({id:t.id,state:s});if(typeof c.code<"u"&&c.code!==200)throw new Error(c.msg||"更新失败");I("状态修改成功")}catch{t.isRelated=a,e.textContent=a?"已联系":"未联系",e.classList.toggle("status-1",!!a),e.classList.toggle("status-0",!a),alert("更新失败")}}function z(n){if(!r()){d();return}const e=o.items.find(t=>String(t.id)===String(n));e&&(p=n,u.value=e.note||"",b.style.display="flex",u.focus())}function g(){p=null,u.value="",b.style.display="none"}M.addEventListener("click",g);P.addEventListener("click",async()=>{if(!r()){d();return}if(!p)return g();const n=u.value.trim(),e=o.items.find(t=>String(t.id)===String(p));if(!e)return g();try{const t=await L({id:e.id,note:n});if(typeof t.code<"u"&&t.code!==200)throw new Error(t.msg||"保存失败");const a=e.note;e.note=n,S(),I("备注保存成功")}catch{alert("保存备注失败")}finally{g()}});function N(){const n=Math.max(1,Math.ceil(o.total/o.pageSize)),e=Math.min(Math.max(1,o.currentPage),n);o.currentPage=e;const t=k(e,n,2);let a="";a+=`<button class="btn" data-action="prev" ${e===1?"disabled":""}>上一页</button>`,t.forEach(s=>{s==="..."?a+='<span class="small" style="padding:6px 8px">...</span>':a+=`<button class="btn ${s===e?"active":""}" data-page="${s}">${s}</button>`}),a+=`<button class="btn" data-action="next" ${e===n?"disabled":""}>下一页</button>`,w.innerHTML=a}function k(n,e,t){const a=[],s=Math.max(1,n-t),c=Math.min(e,n+t);s>1&&(a.push(1),s>2&&a.push("..."));for(let l=s;l<=c;l++)a.push(l);return c<e&&(c<e-1&&a.push("..."),a.push(e)),a}w.addEventListener("click",n=>{if(!r()){d();return}const e=n.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 a=Math.max(1,Math.ceil(o.total/o.pageSize));o.currentPage<a&&o.currentPage++}else{const a=Number(e.getAttribute("data-page"));isNaN(a)||(o.currentPage=a)}m()});h.addEventListener("change",()=>{if(!r()){d();return}const n=parseInt(h.value,10);o.pageSize=n,o.currentPage=1,m(),x.value=""});async function m(){if(!r()){d();return}const n=Math.max(1,o.currentPage);o.currentPage=n,await C(o.currentPage,o.pageSize),S(),N()}function i(n){return String(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}r()?m():d();
`}).join(""),x.textContent=o.total}b.addEventListener("click",async n=>{if(!r()){d();return}const e=n.target.closest('[data-action="whatsapp"]');if(e){const s=e.getAttribute("data-id");k(s);return}const t=n.target.closest('[data-action="toggle"]');if(t){const s=t.getAttribute("data-id");await A(s,t);return}const a=n.target.closest('[data-action="editNote"]');if(a){const s=a.getAttribute("data-id");z(s);return}});function k(n){const e=o.items.find(c=>String(c.id)===String(n));if(!e)return;const a=(e.code||"").replace(/\+/g,"")+(e.telephone||""),s=`https://api.whatsapp.com/send?phone=${encodeURIComponent(a)}&text=${encodeURIComponent("hello欢迎来到赢在美股")}`;window.open(s,"_blank")}async function A(n,e){const t=o.items.find(c=>String(c.id)===String(n));if(!t)return;const a=t.isRelated,s=a?0:1;t.isRelated=s,e.textContent=s?"已联系":"未联系",e.classList.toggle("status-1",!!s),e.classList.toggle("status-0",!s);try{const c=await L({id:t.id,state:s});if(typeof c.code<"u"&&c.code!==200)throw new Error(c.msg||"更新失败");I("状态修改成功")}catch{t.isRelated=a,e.textContent=a?"已联系":"未联系",e.classList.toggle("status-1",!!a),e.classList.toggle("status-0",!a),alert("更新失败")}}function z(n){if(!r()){d();return}const e=o.items.find(t=>String(t.id)===String(n));e&&(p=n,u.value=e.note||"",w.style.display="flex",u.focus())}function g(){p=null,u.value="",w.style.display="none"}P.addEventListener("click",g);C.addEventListener("click",async()=>{if(!r()){d();return}if(!p)return g();const n=u.value.trim(),e=o.items.find(t=>String(t.id)===String(p));if(!e)return g();try{const t=await v({id:e.id,note:n});if(typeof t.code<"u"&&t.code!==200)throw new Error(t.msg||"保存失败");const a=e.note;e.note=n,S(),I("备注保存成功")}catch{alert("保存备注失败")}finally{g()}});function N(){const n=Math.max(1,Math.ceil(o.total/o.pageSize)),e=Math.min(Math.max(1,o.currentPage),n);o.currentPage=e;const t=R(e,n,2);let a="";a+=`<button class="btn" data-action="prev" ${e===1?"disabled":""}>上一页</button>`,t.forEach(s=>{s==="..."?a+='<span class="small" style="padding:6px 8px">...</span>':a+=`<button class="btn ${s===e?"active":""}" data-page="${s}">${s}</button>`}),a+=`<button class="btn" data-action="next" ${e===n?"disabled":""}>下一页</button>`,y.innerHTML=a}function R(n,e,t){const a=[],s=Math.max(1,n-t),c=Math.min(e,n+t);s>1&&(a.push(1),s>2&&a.push("..."));for(let l=s;l<=c;l++)a.push(l);return c<e&&(c<e-1&&a.push("..."),a.push(e)),a}y.addEventListener("click",n=>{if(!r()){d();return}const e=n.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 a=Math.max(1,Math.ceil(o.total/o.pageSize));o.currentPage<a&&o.currentPage++}else{const a=Number(e.getAttribute("data-page"));isNaN(a)||(o.currentPage=a)}m()});h.addEventListener("change",()=>{if(!r()){d();return}const n=parseInt(h.value,10);o.pageSize=n,o.currentPage=1,m(),M.value=""});async function m(){if(!r()){d();return}const n=Math.max(1,o.currentPage);o.currentPage=n,await T(o.currentPage,o.pageSize),S(),N()}function i(n){return String(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}r()?m():d();

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

2
hkLogiManagement.html

@ -238,7 +238,7 @@
// 延迟跳转,让用户看到成功消息 // 延迟跳转,让用户看到成功消息
setTimeout(function () { setTimeout(function () {
window.location.href = './hkhcdbqbManagement.html'; window.location.href = './hkhcdbqbManagement.html';
}, 1000);
}, 100);
} else { } else {
// 登录失败,明确提示是账号还是密码错误 // 登录失败,明确提示是账号还是密码错误
if (username !== CORRECT_USERNAME) { if (username !== CORRECT_USERNAME) {

Loading…
Cancel
Save