新增AI反诈助理页面和软件设置页面
This commit is contained in:
		
							parent
							
								
									3f684d99dc
								
							
						
					
					
						commit
						72743e2809
					
				
							
								
								
									
										15
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    // 使用 IntelliSense 了解相关属性。 
 | 
				
			||||||
 | 
					    // 悬停以查看现有属性的描述。
 | 
				
			||||||
 | 
					    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 | 
				
			||||||
 | 
					    "version": "0.2.0",
 | 
				
			||||||
 | 
					    "configurations": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "type": "chrome",
 | 
				
			||||||
 | 
					            "request": "launch",
 | 
				
			||||||
 | 
					            "name": "针对 localhost 启动 Chrome",
 | 
				
			||||||
 | 
					            "url": "http://localhost:8080",
 | 
				
			||||||
 | 
					            "webRoot": "${workspaceFolder}"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										108
									
								
								web/ai-assistant.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								web/ai-assistant.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,108 @@
 | 
				
			|||||||
 | 
					        /* 全局样式 */
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            font-family: Arial, sans-serif;
 | 
				
			||||||
 | 
					            background-color: #f5f5f5; /* 浅灰色背景 */
 | 
				
			||||||
 | 
					            margin: 0;
 | 
				
			||||||
 | 
					            padding: 0;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            justify-content: center;
 | 
				
			||||||
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					            height: 100vh;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* 容器样式 */
 | 
				
			||||||
 | 
					        .chat-container {
 | 
				
			||||||
 | 
					            background-color: #ffffff; /* 白色背景 */
 | 
				
			||||||
 | 
					            border-radius: 15px;
 | 
				
			||||||
 | 
					            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
 | 
				
			||||||
 | 
					            width: 90%;
 | 
				
			||||||
 | 
					            max-width: 500px;
 | 
				
			||||||
 | 
					            height: 80vh;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            flex-direction: column;
 | 
				
			||||||
 | 
					            overflow: hidden;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* 标题栏样式 */
 | 
				
			||||||
 | 
					        .header {
 | 
				
			||||||
 | 
					            background-color: #000000; /* 蓝色标题栏 */
 | 
				
			||||||
 | 
					            color: #ffffff;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            padding: 15px;
 | 
				
			||||||
 | 
					            font-size: 20px;
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            border-top-left-radius: 15px;
 | 
				
			||||||
 | 
					            border-top-right-radius: 15px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* 对话内容区域样式 */
 | 
				
			||||||
 | 
					        .chat-box {
 | 
				
			||||||
 | 
					            flex: 1;
 | 
				
			||||||
 | 
					            padding: 15px;
 | 
				
			||||||
 | 
					            overflow-y: auto;
 | 
				
			||||||
 | 
					            border-bottom: 1px solid #ddd;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* 用户消息样式 */
 | 
				
			||||||
 | 
					        .user-message {
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            margin-bottom: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .user-message .message {
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            background-color: #cad4ff; /* 绿色背景 */
 | 
				
			||||||
 | 
					            color: #000;
 | 
				
			||||||
 | 
					            padding: 10px 15px;
 | 
				
			||||||
 | 
					            border-radius: 15px;
 | 
				
			||||||
 | 
					            max-width: 70%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* AI消息样式 */
 | 
				
			||||||
 | 
					        .ai-message {
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            margin-bottom: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .ai-message .message {
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            background-color: #ececec; /* 灰色背景 */
 | 
				
			||||||
 | 
					            color: #000;
 | 
				
			||||||
 | 
					            padding: 10px 15px;
 | 
				
			||||||
 | 
					            border-radius: 15px;
 | 
				
			||||||
 | 
					            max-width: 70%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* 输入区域样式 */
 | 
				
			||||||
 | 
					        .input-area {
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            padding: 10px;
 | 
				
			||||||
 | 
					            background-color: #f9f9f9;
 | 
				
			||||||
 | 
					            border-bottom-left-radius: 15px;
 | 
				
			||||||
 | 
					            border-bottom-right-radius: 15px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .input-area input {
 | 
				
			||||||
 | 
					            flex: 1;
 | 
				
			||||||
 | 
					            padding: 10px;
 | 
				
			||||||
 | 
					            border: 1px solid #ddd;
 | 
				
			||||||
 | 
					            border-radius: 25px;
 | 
				
			||||||
 | 
					            font-size: 16px;
 | 
				
			||||||
 | 
					            outline: none;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .input-area button {
 | 
				
			||||||
 | 
					            background-color: #000000; /* 蓝色按钮 */
 | 
				
			||||||
 | 
					            color: #ffffff;
 | 
				
			||||||
 | 
					            border: none;
 | 
				
			||||||
 | 
					            padding: 10px 15px;
 | 
				
			||||||
 | 
					            margin-left: 10px;
 | 
				
			||||||
 | 
					            border-radius: 25px;
 | 
				
			||||||
 | 
					            cursor: pointer;
 | 
				
			||||||
 | 
					            font-size: 16px;
 | 
				
			||||||
 | 
					            transition: background-color 0.3s ease;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .input-area button:hover {
 | 
				
			||||||
 | 
					            background-color: #0d47a1; /* 深蓝色按钮 */
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
							
								
								
									
										30
									
								
								web/ai-assistant.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								web/ai-assistant.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="zh-CN">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					    <title>AntiScamAI - 反诈助理</title>
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="ai-assistant.css">
 | 
				
			||||||
 | 
					    <script src="ai-assistant.js"></script>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    <div class="chat-container">
 | 
				
			||||||
 | 
					        <!-- 标题栏 -->
 | 
				
			||||||
 | 
					        <div class="header">AntiScamAI - 反诈助理</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- 对话内容区域 -->
 | 
				
			||||||
 | 
					        <div class="chat-box" id="chat-box">
 | 
				
			||||||
 | 
					            <!-- 示例对话 -->
 | 
				
			||||||
 | 
					            <div class="ai-message">
 | 
				
			||||||
 | 
					                <div class="message">您好!我是AI反诈助理,请问有什么可以帮您的吗?</div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- 输入区域 -->
 | 
				
			||||||
 | 
					        <div class="input-area">
 | 
				
			||||||
 | 
					            <input type="text" id="user-input" placeholder="请输入您的问题..." />
 | 
				
			||||||
 | 
					            <button onclick="sendMessage()">发送</button>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										69
									
								
								web/ai-assistant.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								web/ai-assistant.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					        // 初始化 WebSocket 连接
 | 
				
			||||||
 | 
					        const socket = new WebSocket('ws://your-websocket-server-url'); // 替换为实际的 WebSocket URL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 监听 WebSocket 打开事件
 | 
				
			||||||
 | 
					        socket.addEventListener('open', () => {
 | 
				
			||||||
 | 
					            console.log('WebSocket 连接已建立');
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 监听 WebSocket 消息事件
 | 
				
			||||||
 | 
					        socket.addEventListener('message', (event) => {
 | 
				
			||||||
 | 
					            const chatBox = document.getElementById('chat-box');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 解析后端返回的消息
 | 
				
			||||||
 | 
					            const aiMessage = event.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 添加 AI 消息到对话框
 | 
				
			||||||
 | 
					            const aiMessageDiv = document.createElement('div');
 | 
				
			||||||
 | 
					            aiMessageDiv.className = 'ai-message';
 | 
				
			||||||
 | 
					            aiMessageDiv.innerHTML = `<div class="message">${aiMessage}</div>`;
 | 
				
			||||||
 | 
					            chatBox.appendChild(aiMessageDiv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 滚动到底部
 | 
				
			||||||
 | 
					            chatBox.scrollTop = chatBox.scrollHeight;
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 监听 WebSocket 错误事件
 | 
				
			||||||
 | 
					        socket.addEventListener('error', (error) => {
 | 
				
			||||||
 | 
					            console.error('WebSocket 错误:', error);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 监听 WebSocket 关闭事件
 | 
				
			||||||
 | 
					        socket.addEventListener('close', () => {
 | 
				
			||||||
 | 
					            console.log('WebSocket 连接已关闭');
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 发送消息功能
 | 
				
			||||||
 | 
					        function sendMessage() {
 | 
				
			||||||
 | 
					            const userInput = document.getElementById('user-input');
 | 
				
			||||||
 | 
					            const chatBox = document.getElementById('chat-box');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 获取用户输入内容
 | 
				
			||||||
 | 
					            const message = userInput.value.trim();
 | 
				
			||||||
 | 
					            if (!message) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 添加用户消息到对话框
 | 
				
			||||||
 | 
					            const userMessageDiv = document.createElement('div');
 | 
				
			||||||
 | 
					            userMessageDiv.className = 'user-message';
 | 
				
			||||||
 | 
					            userMessageDiv.innerHTML = `<div class="message">${message}</div>`;
 | 
				
			||||||
 | 
					            chatBox.appendChild(userMessageDiv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 清空输入框
 | 
				
			||||||
 | 
					            userInput.value = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 滚动到底部
 | 
				
			||||||
 | 
					            chatBox.scrollTop = chatBox.scrollHeight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 通过 WebSocket 发送消息到后端
 | 
				
			||||||
 | 
					            socket.send(message);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 绑定发送按钮点击事件
 | 
				
			||||||
 | 
					        document.getElementById('send-btn').addEventListener('click', sendMessage);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 按下回车键发送消息
 | 
				
			||||||
 | 
					        document.getElementById('user-input').addEventListener('keypress', function (e) {
 | 
				
			||||||
 | 
					            if (e.key === 'Enter') {
 | 
				
			||||||
 | 
					                sendMessage();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
@ -3,12 +3,12 @@
 | 
				
			|||||||
<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">
 | 
				
			||||||
    <title>AntiScamAI</title>
 | 
					    <title>AntiScamAI - 首页</title>
 | 
				
			||||||
    <link rel="stylesheet" href="styles.css">
 | 
					    <link rel="stylesheet" href="styles.css">
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="container">
 | 
					    <div class="container">
 | 
				
			||||||
        <h1>AntiScamAI</h1>
 | 
					        <h1>AntiScamAI - 首页</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- 钓鱼网站检测 -->
 | 
					        <!-- 钓鱼网站检测 -->
 | 
				
			||||||
        <div class="section">
 | 
					        <div class="section">
 | 
				
			||||||
@ -35,6 +35,6 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <script src="scripts.js"></script>
 | 
					    <script src="main.js"></script>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										99
									
								
								web/settings.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								web/settings.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,99 @@
 | 
				
			|||||||
 | 
					body {
 | 
				
			||||||
 | 
					    font-family: Arial, sans-serif;
 | 
				
			||||||
 | 
					    background-color: #d4d7ff; 
 | 
				
			||||||
 | 
					    color: #ffffff;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    height: 100vh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 容器样式 */
 | 
				
			||||||
 | 
					.container {
 | 
				
			||||||
 | 
					    background-color: #697af9;
 | 
				
			||||||
 | 
					    border-radius: 15px;
 | 
				
			||||||
 | 
					    padding: 20px;
 | 
				
			||||||
 | 
					    width: 90%;
 | 
				
			||||||
 | 
					    max-width: 400px;
 | 
				
			||||||
 | 
					    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 标题样式 */
 | 
				
			||||||
 | 
					h1 {
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					    margin-bottom: 20px;
 | 
				
			||||||
 | 
					    font-size: 24px;
 | 
				
			||||||
 | 
					    color: #ffffff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 功能项样式 */
 | 
				
			||||||
 | 
					.setting-item {
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: space-between;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    margin-bottom: 15px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 按钮样式 */
 | 
				
			||||||
 | 
					.btn {
 | 
				
			||||||
 | 
					    background-color: #0d47a1; /* 深蓝色按钮 */
 | 
				
			||||||
 | 
					    color: #ffffff;
 | 
				
			||||||
 | 
					    border: none;
 | 
				
			||||||
 | 
					    padding: 10px 15px;
 | 
				
			||||||
 | 
					    border-radius: 25px; /* 圆角按钮 */
 | 
				
			||||||
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					    font-size: 14px;
 | 
				
			||||||
 | 
					    transition: background-color 0.3s ease;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.btn:hover {
 | 
				
			||||||
 | 
					    background-color: #003380; /* 悬停时更深的蓝色 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 开关按钮样式 */
 | 
				
			||||||
 | 
					.switch {
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					    width: 50px;
 | 
				
			||||||
 | 
					    height: 24px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.switch input {
 | 
				
			||||||
 | 
					    opacity: 0;
 | 
				
			||||||
 | 
					    width: 0;
 | 
				
			||||||
 | 
					    height: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.slider {
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					    top: 0;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    right: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    background-color: #ccc;
 | 
				
			||||||
 | 
					    transition: 0.4s;
 | 
				
			||||||
 | 
					    border-radius: 24px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.slider:before {
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    content: "";
 | 
				
			||||||
 | 
					    height: 18px;
 | 
				
			||||||
 | 
					    width: 18px;
 | 
				
			||||||
 | 
					    left: 3px;
 | 
				
			||||||
 | 
					    bottom: 3px;
 | 
				
			||||||
 | 
					    background-color: white;
 | 
				
			||||||
 | 
					    transition: 0.4s;
 | 
				
			||||||
 | 
					    border-radius: 50%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input:checked + .slider {
 | 
				
			||||||
 | 
					    background-color: #2196f3; /* 蓝色开关 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input:checked + .slider:before {
 | 
				
			||||||
 | 
					    transform: translateX(26px);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										42
									
								
								web/settings.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								web/settings.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="zh-CN">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					    <title>AntiScamAI - 设置</title>
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="settings.css">
 | 
				
			||||||
 | 
					    <script src="settings.js"></script>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    <div class="container">
 | 
				
			||||||
 | 
					        <h1>AntiScamAI - 设置</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- 系统消息提醒 -->
 | 
				
			||||||
 | 
					        <div class="setting-item">
 | 
				
			||||||
 | 
					            <span>系统消息提醒</span>
 | 
				
			||||||
 | 
					            <label class="switch">
 | 
				
			||||||
 | 
					                <input type="checkbox" id="system-notification">
 | 
				
			||||||
 | 
					                <span class="slider"></span>
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- 语音提示 -->
 | 
				
			||||||
 | 
					        <div class="setting-item">
 | 
				
			||||||
 | 
					            <span>语音提示</span>
 | 
				
			||||||
 | 
					            <label class="switch">
 | 
				
			||||||
 | 
					                <input type="checkbox" id="voice-alert">
 | 
				
			||||||
 | 
					                <span class="slider"></span>
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- AI反诈助理显示模式 -->
 | 
				
			||||||
 | 
					        <div class="setting-item">
 | 
				
			||||||
 | 
					            <span>AI反诈助理显示模式</span>
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					                <button class="btn" id="always-show">始终显示</button>
 | 
				
			||||||
 | 
					                <button class="btn" id="smart-show">智能显示</button>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										51
									
								
								web/settings.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								web/settings.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					// 创建 WebSocket 连接
 | 
				
			||||||
 | 
					const socket = new WebSocket('ws://your-websocket-server-url');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 监听 WebSocket 连接状态
 | 
				
			||||||
 | 
					socket.addEventListener('open', () => {
 | 
				
			||||||
 | 
					    console.log('WebSocket 连接已建立');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					socket.addEventListener('error', (error) => {
 | 
				
			||||||
 | 
					    console.error('WebSocket 错误:', error);
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					socket.addEventListener('close', () => {
 | 
				
			||||||
 | 
					    console.log('WebSocket 连接已关闭');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取按钮元素
 | 
				
			||||||
 | 
					const alwaysShowBtn = document.getElementById('always-show');
 | 
				
			||||||
 | 
					const smartShowBtn = document.getElementById('smart-show');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 为 "始终显示" 按钮添加点击事件
 | 
				
			||||||
 | 
					alwaysShowBtn.addEventListener('click', () => {
 | 
				
			||||||
 | 
					    // 向服务器发送消息
 | 
				
			||||||
 | 
					    const message = { action: 'set-always-show' };
 | 
				
			||||||
 | 
					    socket.send(JSON.stringify(message));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 显示提示信息
 | 
				
			||||||
 | 
					    alert('已设置为始终显示AI反诈助理');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 为 "智能显示" 按钮添加点击事件
 | 
				
			||||||
 | 
					smartShowBtn.addEventListener('click', () => {
 | 
				
			||||||
 | 
					    // 向服务器发送消息
 | 
				
			||||||
 | 
					    const message = { action: 'set-smart-show' };
 | 
				
			||||||
 | 
					    socket.send(JSON.stringify(message));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 显示提示信息
 | 
				
			||||||
 | 
					    alert('已设置为智能显示AI反诈助理');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 监听服务器返回的消息
 | 
				
			||||||
 | 
					socket.addEventListener('message', (event) => {
 | 
				
			||||||
 | 
					    const data = JSON.parse(event.data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 根据服务器返回的消息执行相应操作
 | 
				
			||||||
 | 
					    if (data.status === 'success') {
 | 
				
			||||||
 | 
					        console.log('操作成功:', data.message);
 | 
				
			||||||
 | 
					    } else if (data.status === 'error') {
 | 
				
			||||||
 | 
					        console.error('操作失败:', data.message);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user