diff --git a/assets/css/style.css b/assets/css/style.css
index 243e69f..99495ce 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -37,22 +37,36 @@ body {
align-items: center;
min-height: 100vh;
padding: 20px;
+ background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
}
.login-card {
background: var(--bg-card);
- border-radius: var(--radius);
- padding: 40px;
+ border-radius: 12px;
+ padding: 48px 40px;
width: 100%;
- max-width: 400px;
- box-shadow: 0 4px 20px rgba(0,0,0,0.3);
+ max-width: 420px;
+ box-shadow: 0 8px 32px rgba(0,0,0,0.3);
+ border: 1px solid var(--border-color);
}
-.login-card h1 {
+.login-logo {
text-align: center;
- margin-bottom: 30px;
+ margin-bottom: 36px;
+}
+
+.login-logo .logo-icon {
+ width: 48px;
+ height: 48px;
+ color: var(--primary);
+ margin-bottom: 12px;
+}
+
+.login-logo h1 {
font-size: 24px;
color: var(--primary);
+ font-weight: 600;
+ letter-spacing: 0.5px;
}
/* 安装向导样式 */
@@ -62,6 +76,10 @@ body {
padding: 0 20px;
}
+.install-container h1 svg {
+ color: var(--primary);
+}
+
.step-indicator {
display: flex;
justify-content: space-between;
@@ -92,14 +110,16 @@ body {
/* 通用表单样式 */
.form-group {
- margin-bottom: 16px;
+ margin-bottom: 18px;
}
.form-group label {
display: block;
margin-bottom: 6px;
- font-size: 14px;
+ font-size: 13px;
+ font-weight: 500;
color: var(--text-secondary);
+ letter-spacing: 0.3px;
}
.form-group input,
@@ -124,14 +144,18 @@ body {
/* 按钮 */
.btn {
- display: inline-block;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
padding: 10px 20px;
border: none;
border-radius: var(--radius);
font-size: 14px;
+ font-weight: 500;
cursor: pointer;
- transition: all 0.3s;
+ transition: all 0.2s ease;
text-decoration: none;
+ line-height: 1.4;
}
.btn-primary {
@@ -141,6 +165,12 @@ body {
.btn-primary:hover {
background: var(--primary-hover);
+ transform: translateY(-1px);
+ box-shadow: 0 2px 8px rgba(74, 144, 217, 0.3);
+}
+
+.btn-primary:active {
+ transform: translateY(0);
}
.btn-secondary {
@@ -149,18 +179,27 @@ body {
border: 1px solid var(--border-color);
}
+.btn-secondary:hover {
+ border-color: var(--primary);
+ color: var(--primary);
+}
+
.btn-danger {
background: var(--danger);
color: white;
}
+.btn-danger:hover {
+ opacity: 0.9;
+}
+
.btn-sm {
- padding: 6px 12px;
+ padding: 6px 14px;
font-size: 12px;
}
.btn-block {
- display: block;
+ display: flex;
width: 100%;
text-align: center;
}
@@ -168,7 +207,7 @@ body {
.btn-group {
display: flex;
gap: 10px;
- margin-top: 20px;
+ margin-top: 24px;
justify-content: flex-end;
}
@@ -178,6 +217,7 @@ body {
border-radius: var(--radius);
margin-bottom: 16px;
font-size: 14px;
+ line-height: 1.5;
}
.alert-error {
@@ -203,19 +243,34 @@ body {
display: flex;
justify-content: space-between;
align-items: center;
- margin-bottom: 30px;
+ margin-bottom: 32px;
+}
+
+.config-header h1 {
+ display: flex;
+ align-items: center;
+ font-size: 22px;
+ font-weight: 600;
+}
+
+.config-header h1 svg {
+ color: var(--primary);
}
.config-section {
background: var(--bg-card);
- border-radius: var(--radius);
- padding: 24px;
+ border-radius: 12px;
+ padding: 28px;
margin-bottom: 24px;
+ border: 1px solid var(--border-color);
}
.config-section h2 {
- margin-bottom: 16px;
- font-size: 18px;
+ margin-bottom: 20px;
+ font-size: 17px;
+ font-weight: 600;
+ padding-bottom: 12px;
+ border-bottom: 1px solid var(--border-color);
}
/* 响应式 */
diff --git a/assets/js/chat.js b/assets/js/chat.js
index 4a19561..63a4ee5 100644
--- a/assets/js/chat.js
+++ b/assets/js/chat.js
@@ -57,7 +57,7 @@ const ChatManager = {
} else {
let html = `
`;
if (msg.thinking_content) {
- html += `
💭 思考过程 ▾
`;
+ html += `
思考过程 ▾
`;
html += `
${MarkdownRenderer.render(msg.thinking_content)}
`;
}
html += `
${MarkdownRenderer.render(msg.content)}
`;
@@ -252,10 +252,10 @@ const ChatManager = {
if (!toggle) {
toggle = document.createElement('div');
toggle.className = 'thinking-toggle expanded';
- toggle.textContent = '💭 思考过程 ▾';
+ toggle.textContent = '思考过程 ▾';
toggle.onclick = function() {
container.classList.toggle('expanded');
- this.textContent = container.classList.contains('expanded') ? '💭 思考过程 ▴' : '💭 思考过程 ▾';
+ this.textContent = container.classList.contains('expanded') ? '思考过程 ▴' : '思考过程 ▾';
};
el.insertBefore(toggle, el.firstChild);
}
@@ -279,7 +279,7 @@ const ChatManager = {
const container = document.getElementById('messagesContainer');
const el = document.createElement('div');
el.className = 'message assistant';
- el.innerHTML = `
❌ ${this.escapeHtml(message)}
`;
+ el.innerHTML = `
错误: ${this.escapeHtml(message)}
`;
container.appendChild(el);
container.scrollTop = container.scrollHeight;
},
diff --git a/assets/js/upload.js b/assets/js/upload.js
index 401ff14..b103f75 100644
--- a/assets/js/upload.js
+++ b/assets/js/upload.js
@@ -39,7 +39,7 @@ const UploadManager = {
preview.innerHTML = this.files.map((f, i) => `
- 📎 ${this.escapeHtml(f.name)}
+ ${this.escapeHtml(f.name)}
×
`).join('');
diff --git a/public/install.php b/public/install.php
index 33d4cd1..7128621 100644
--- a/public/install.php
+++ b/public/install.php
@@ -28,7 +28,10 @@ if (file_exists($configFile)) {
-
🤖 AI Chat 安装向导
+
+
+ AI Chat 安装向导
+
@@ -161,7 +164,7 @@ if (file_exists($configFile)) {
container.innerHTML = checks.map(c => `
${c.name}
- ${c.pass ? '✓ 通过' : '✗ 未通过'}
+ ${c.pass ? '通过' : '未通过'}
`).join('');
},
@@ -317,7 +320,7 @@ if (file_exists($configFile)) {
const data = await response.json();
if (data.success) {
- result.innerHTML = '✓ 安装成功!正在跳转到登录页...
';
+ result.innerHTML = '安装成功!正在跳转到登录页...
';
setTimeout(() => { window.location.href = '/login.php'; }, 2000);
} else {
result.innerHTML = '安装失败: ' + data.message + '
';