diff --git a/CHANGELOG.md b/CHANGELOG.md
index 366fee25..8196cefa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,11 +2,11 @@
## v4.2.6
-- 功能优化:优化移动端首页 UI,增加返回首页按钮
-- 功能优化:优化移动端聊天页面 UI,增加返回首页按钮
-- 功能优化:优化移动端登录页面 UI,增加返回首页按钮
-- 功能优化:优化移动端注册页面 UI,增加返回首页按钮
-- 功能优化:优化移动端找回密码页面 UI,增加返回首页按钮
+- 功能重构:重构移动端 UI,使用 tailwindcss 组件库,把 PC 端所有页面都在迁移到了移动端
+- 功能优化:优化 PC 端的 Suno 音乐,视频生成,以及即梦 AI 页面 UI
+- 功能优化:重构登录和注册页面,兼容移动端和 PC 端,并且所有的登录组件共用了同一套组件代码,大大降低维护成本
+- 功能优化:管理后台增加模型批量删除功能
+- 功能优化:优化 Table 组件 UI,并支持 dark 主题
## v4.2.5
diff --git a/web/src/components/mobile/CustomSelect.vue b/web/src/components/mobile/CustomSelect.vue
index 67d7dd2f..6b77be0c 100644
--- a/web/src/components/mobile/CustomSelect.vue
+++ b/web/src/components/mobile/CustomSelect.vue
@@ -4,7 +4,7 @@
@click="showPicker = true"
class="w-full flex items-center justify-between px-4 py-3 bg-gray-50 rounded-lg border border-gray-200 hover:border-blue-300 transition-colors"
>
- {{ selectedLabel || placeholder || '请选择' }}
+ {{ selectedLabel || placeholder || '请选择' }}
@@ -108,4 +108,65 @@ const onSelect = (option) => {
.animate-slide-up {
animation: slide-up 0.3s ease-out;
}
+
+/* Dark 主题样式 - 按照 theme-dark.scss 的模式 */
+:root[data-theme='dark'] .custom-select {
+ /* 选择器触发器 */
+ button {
+ background-color: rgb(31, 41, 55) !important;
+ border-color: rgb(75, 85, 99) !important;
+ color: rgb(209, 213, 219) !important;
+
+ &:hover {
+ border-color: rgb(139, 92, 246) !important;
+ }
+
+ .iconfont {
+ color: rgb(156, 163, 175) !important;
+ }
+ }
+
+ /* 选择器弹窗 */
+ .fixed {
+ .bg-white {
+ background-color: rgb(55, 65, 81) !important;
+ }
+
+ .border-b {
+ border-bottom-color: rgb(75, 85, 99) !important;
+ }
+
+ h3 {
+ color: rgb(255, 255, 255) !important;
+ }
+
+ button {
+ background-color: transparent !important;
+ color: rgb(156, 163, 175) !important;
+
+ &:hover {
+ background-color: rgb(75, 85, 99) !important;
+ color: rgb(209, 213, 219) !important;
+ }
+
+ .iconfont {
+ color: inherit !important;
+ }
+ }
+
+ .max-h-80 {
+ .text-gray-900 {
+ color: rgb(209, 213, 219) !important;
+ }
+
+ .text-gray-500 {
+ color: rgb(156, 163, 175) !important;
+ }
+
+ .text-blue-600 {
+ color: rgb(139, 92, 246) !important;
+ }
+ }
+ }
+}
diff --git a/web/src/components/mobile/CustomSelectOption.vue b/web/src/components/mobile/CustomSelectOption.vue
index 8a16ec8e..198b811e 100644
--- a/web/src/components/mobile/CustomSelectOption.vue
+++ b/web/src/components/mobile/CustomSelectOption.vue
@@ -47,4 +47,30 @@ const props = defineProps({
const emit = defineEmits(['select'])
-
+
diff --git a/web/src/components/ui/CustomTabs.vue b/web/src/components/ui/CustomTabs.vue
index 11d7c813..18e5fd58 100644
--- a/web/src/components/ui/CustomTabs.vue
+++ b/web/src/components/ui/CustomTabs.vue
@@ -1,10 +1,13 @@