fix(system): 🐛 修复mac端兼容问题
升级个别版本的依赖
30
package.json
@ -30,7 +30,7 @@
|
||||
"tauri:dev": "tauri dev",
|
||||
"tauri:build": "tauri build",
|
||||
"tauri:build->debug": "tauri build --debug",
|
||||
"tauri:icon": "tauri icon public/logo.png",
|
||||
"tauri:icon": "tauri icon hula.png",
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
"commit": "git add . && git-cz",
|
||||
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
||||
@ -39,19 +39,19 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^1.6.0",
|
||||
"axios": "^1.7.2",
|
||||
"axios": "^1.7.3",
|
||||
"colorthief": "^2.4.0",
|
||||
"dayjs": "^1.11.11",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"lodash-es": "^4.17.21",
|
||||
"mitt": "^3.0.1",
|
||||
"naive-ui": "^2.38.2",
|
||||
"pinia": "^2.1.7",
|
||||
"naive-ui": "^2.39.0",
|
||||
"pinia": "^2.2.1",
|
||||
"pinia-plugin-persistedstate": "^3.2.1",
|
||||
"pinia-shared-state": "^0.5.1",
|
||||
"vue": "^3.4.31",
|
||||
"vue-draggable-plus": "^0.4.1",
|
||||
"vue-router": "^4.4.0"
|
||||
"vue-router": "^4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.24.7",
|
||||
@ -60,15 +60,15 @@
|
||||
"@rollup/plugin-terser": "^0.4.4",
|
||||
"@tauri-apps/cli": "1.5.14",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^20.14.9",
|
||||
"@types/node": "^20.14.14",
|
||||
"@typescript-eslint/eslint-plugin": "7.1.0",
|
||||
"@typescript-eslint/parser": "^7.15.0",
|
||||
"@unocss/preset-uno": "^0.61.0",
|
||||
"@unocss/reset": "^0.61.0",
|
||||
"@unocss/transformer-directives": "^0.61.0",
|
||||
"@unocss/transformer-variant-group": "^0.61.0",
|
||||
"@unocss/vite": "^0.61.0",
|
||||
"@vitejs/plugin-vue": "^5.0.5",
|
||||
"@unocss/preset-uno": "^0.61.9",
|
||||
"@unocss/reset": "^0.61.9",
|
||||
"@unocss/transformer-directives": "^0.61.9",
|
||||
"@unocss/transformer-variant-group": "^0.61.9",
|
||||
"@unocss/vite": "^0.61.9",
|
||||
"@vitejs/plugin-vue": "^5.1.2",
|
||||
"@vitejs/plugin-vue-jsx": "^4.0.0",
|
||||
"@vueuse/core": "^10.11.0",
|
||||
"commitizen": "^4.3.0",
|
||||
@ -84,12 +84,12 @@
|
||||
"lint-staged": "^15.2.7",
|
||||
"oxlint": "^0.2.18",
|
||||
"prettier": "^3.3.2",
|
||||
"sass": "^1.77.6",
|
||||
"sass": "^1.77.8",
|
||||
"sass-loader": "^14.2.1",
|
||||
"typescript": "^5.5.3",
|
||||
"unplugin-auto-import": "^0.17.6",
|
||||
"unplugin-auto-import": "^0.17.8",
|
||||
"unplugin-vue-components": "^0.26.0",
|
||||
"vite": "5.3.2",
|
||||
"vite": "5.3.5",
|
||||
"vue-tsc": "^2.0.24"
|
||||
},
|
||||
"config": {
|
||||
|
844
pnpm-lock.yaml
@ -20,13 +20,12 @@ strip = true # 删除调试符号
|
||||
tauri-build = { version = "1.5.2", features = [] }
|
||||
|
||||
[dependencies]
|
||||
tauri = { version = "1.7.1", features = [ "http-all", "os-all", "process-all", "notification-all", "macos-private-api", "fs-all", "window-all", "system-tray", "shell-open", "icon-png", "icon-ico"] }
|
||||
tauri = { version = "1.7.1", features = [ "macos-private-api", "http-all", "os-all", "process-all", "notification-all", "fs-all", "window-all", "system-tray", "shell-open", "icon-png", "icon-ico"] }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
window-shadows = "0.2.2" # windows 阴影和圆角
|
||||
window-vibrancy = "0.4.3" # windows 磨砂背景 tauri-v1.x版本最好使用0.4.3版本
|
||||
tokio = { version = "1.36.0", features = ["macros", "windows-sys", "rt-multi-thread", "time"] }
|
||||
|
||||
[features]
|
||||
# this feature is used for production builds or when `devPath` points to the filesystem
|
||||
# DO NOT REMOVE!!
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 114 KiB |
@ -10,8 +10,9 @@ pub fn reset_set_window<R: Runtime>(app: tauri::AppHandle<R>, label: String) {
|
||||
set_shadow(&window, true).unwrap();
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
window_vibrancy::apply_acrylic(&window, Some((255, 255, 255, 1)))
|
||||
.expect("Unsupported platform! 'apply_vibrancy' is only supported on macOS");
|
||||
use window_vibrancy::NSVisualEffectMaterial;
|
||||
window_vibrancy::apply_vibrancy(&window, NSVisualEffectMaterial::HudWindow, None, None)
|
||||
.expect("Unsupported platform! 'apply_vibrancy' is only supported on macOS");
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
window_vibrancy::apply_acrylic(&window, Some((255, 255, 255, 1)))
|
||||
@ -23,7 +24,7 @@ pub fn reset_set_window<R: Runtime>(app: tauri::AppHandle<R>, label: String) {
|
||||
pub fn set_stateless_icon(app: AppHandle) {
|
||||
app.tray_handle()
|
||||
.set_icon(tauri::Icon::Raw(
|
||||
include_bytes!("../../stateless/icon.ico").to_vec(),
|
||||
include_bytes!("../../stateless/icon-an.ico").to_vec(),
|
||||
))
|
||||
.unwrap();
|
||||
}
|
||||
@ -33,7 +34,7 @@ pub fn set_stateless_icon(app: AppHandle) {
|
||||
pub fn set_main_icon(app: AppHandle) {
|
||||
app.tray_handle()
|
||||
.set_icon(tauri::Icon::Raw(
|
||||
include_bytes!("../../icons/icon.ico").to_vec(),
|
||||
include_bytes!("../../stateless/icon.ico").to_vec(),
|
||||
))
|
||||
.unwrap();
|
||||
}
|
||||
@ -96,4 +97,4 @@ pub fn tray_blink(
|
||||
.unwrap();
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
@ -8,13 +8,13 @@ pub fn set_window_attribute<R: Runtime>(app: &tauri::App<R>) {
|
||||
#[cfg(any(windows, target_os = "macos"))]
|
||||
set_shadow(&window, true).unwrap();
|
||||
|
||||
// // 设置窗口的磨砂背景
|
||||
// #[cfg(target_os = "macos")]
|
||||
// window_vibrancy::apply_acrylic(&window, NSVisualEffectMaterial::Sidebar)
|
||||
// .expect("Unsupported platform! 'apply_vibrancy' is only supported on macOS");
|
||||
//
|
||||
// #[cfg(target_os = "windows")]
|
||||
// window_vibrancy::apply_acrylic(&window, Some((255, 255, 255, 1)))
|
||||
// .expect("Unsupported platform! 'apply_blur' is only supported on Windows");
|
||||
#[cfg(target_os = "macos")]
|
||||
use window_vibrancy::NSVisualEffectMaterial;
|
||||
window_vibrancy::apply_vibrancy(&window, NSVisualEffectMaterial::HudWindow, None, None)
|
||||
.expect("Unsupported platform! 'apply_vibrancy' is only supported on macOS");
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
window_vibrancy::apply_acrylic(&window, Some((255, 255, 255, 1)))
|
||||
.expect("Unsupported platform! 'apply_blur' is only supported on Windows");
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ mod common;
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
let context = tauri::generate_context!();
|
||||
let system_tray = SystemTray::new();
|
||||
let system_tray = SystemTray::new().with_title("HuLa-IM");
|
||||
// 初始化状态
|
||||
let state = TrayState {
|
||||
id: Mutex::new(None)
|
||||
|
BIN
src-tauri/stateless/icon-an.ico
Normal file
After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 71 KiB |
@ -77,8 +77,7 @@
|
||||
"width": 320,
|
||||
"height": 448,
|
||||
"skipTaskbar": false,
|
||||
"decorations": false,
|
||||
"transparent": true
|
||||
"decorations": false
|
||||
},
|
||||
{
|
||||
"label": "tray",
|
||||
|
BIN
src/assets/fonts/AlimamaFangYuanTiVF-Thin.ttf
Normal file
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<!-- user-select: none让元素不可以选中 -->
|
||||
<div data-tauri-drag-region class="flex justify-end select-none">
|
||||
<div v-if="osType === 'Windows'" data-tauri-drag-region class="flex justify-end select-none">
|
||||
<!-- 固定在最顶层 -->
|
||||
<div v-if="topWinLabel !== void 0" @click="handleAlwaysOnTop" class="hover-box">
|
||||
<n-popover trigger="hover">
|
||||
@ -84,6 +84,7 @@ import { CloseBxEnum, EventEnum, MittEnum } from '@/enums'
|
||||
import { storeToRefs } from 'pinia'
|
||||
import { PersistedStateOptions } from 'pinia-plugin-persistedstate'
|
||||
import { exit } from '@tauri-apps/api/process'
|
||||
import { type } from '@tauri-apps/api/os'
|
||||
|
||||
/**
|
||||
* 新版defineProps可以直接结构 { minW, maxW, closeW } 如果需要使用默认值withDefaults的时候使用新版解构方式会报错
|
||||
@ -124,6 +125,8 @@ const alwaysOnTopStatus = computed(() => {
|
||||
if (topWinLabel.value === void 0) return false
|
||||
return alwaysOnTopStore.getWindowTop(topWinLabel.value)
|
||||
})
|
||||
/** 判断当前是windows还是mac系统 */
|
||||
const osType = ref()
|
||||
|
||||
watchEffect(() => {
|
||||
tipsRef.type = tips.value.type
|
||||
@ -230,6 +233,13 @@ const handleCloseWin = async () => {
|
||||
// 添加和移除resize事件监听器
|
||||
onMounted(() => {
|
||||
window.addEventListener('resize', handleResize)
|
||||
type().then((e) => {
|
||||
if (e === 'Windows_NT') {
|
||||
osType.value = 'Windows'
|
||||
} else if (e === 'Darwin') {
|
||||
osType.value = 'MacOS'
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
|
@ -46,7 +46,7 @@ export const useWindow = () => {
|
||||
minWidth: minW,
|
||||
skipTaskbar: false,
|
||||
decorations: false,
|
||||
transparent: true,
|
||||
transparent: false,
|
||||
fileDropEnabled: isDrag
|
||||
})
|
||||
|
||||
|
@ -210,7 +210,7 @@ export const CheckUpdate = defineComponent(() => {
|
||||
<NFlex justify={'space-between'} align={'center'}>
|
||||
<NFlex align={'center'} size={10}>
|
||||
<p>当前版本:</p>
|
||||
<p class="text-(24px #909090) font-bold">{pkg.version}</p>
|
||||
<p class="text-(24px #909090) font-500">{pkg.version}</p>
|
||||
</NFlex>
|
||||
<NFlex align={'center'} size={10}>
|
||||
<p class="text-(12px #909090)">版本发布日期:</p>
|
||||
|
4
src/styles/scss/global/fonts.scss
Normal file
@ -0,0 +1,4 @@
|
||||
@font-face {
|
||||
font-family: 'AliFangYuan';
|
||||
src: url('/src/assets/fonts/AlimamaFangYuanTiVF-Thin.ttf');
|
||||
}
|
@ -1,3 +1,10 @@
|
||||
@import "fonts";
|
||||
* {
|
||||
font-family: 'AliFangYuan', sans-serif !important;
|
||||
}
|
||||
html, body {
|
||||
overscroll-behavior: none; // 禁止mac的“触底反弹”效果
|
||||
}
|
||||
/**! 主题变量 */
|
||||
:root {
|
||||
// 整体布局背景
|
||||
|
107
src/typings/components.d.ts
vendored
@ -7,59 +7,58 @@ export {}
|
||||
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
ActionBar: typeof import('./../components/windows/ActionBar.vue')['default']
|
||||
ChatBox: typeof import('./../components/rightBox/chatBox/index.vue')['default']
|
||||
ChatFooter: typeof import('./../components/rightBox/chatBox/ChatFooter.vue')['default']
|
||||
ChatHeader: typeof import('./../components/rightBox/chatBox/ChatHeader.vue')['default']
|
||||
ChatMain: typeof import('./../components/rightBox/chatBox/ChatMain.vue')['default']
|
||||
ChatSidebar: typeof import('./../components/rightBox/chatBox/ChatSidebar.vue')['default']
|
||||
ContextMenu: typeof import('./../components/common/ContextMenu.vue')['default']
|
||||
Details: typeof import('./../components/rightBox/Details.vue')['default']
|
||||
Emoji: typeof import('./../components/rightBox/emoji/index.vue')['default']
|
||||
Image: typeof import('./../components/rightBox/renderMessage/Image.vue')['default']
|
||||
InfoPopover: typeof import('./../components/common/InfoPopover.vue')['default']
|
||||
MsgInput: typeof import('./../components/rightBox/MsgInput.vue')['default']
|
||||
NaiveProvider: typeof import('./../components/common/NaiveProvider.vue')['default']
|
||||
NAlert: typeof import('naive-ui')['NAlert']
|
||||
NAvatar: typeof import('naive-ui')['NAvatar']
|
||||
NAvatarGroup: typeof import('naive-ui')['NAvatarGroup']
|
||||
NBadge: typeof import('naive-ui')['NBadge']
|
||||
NButton: typeof import('naive-ui')['NButton']
|
||||
NButtonGroup: typeof import('naive-ui')['NButtonGroup']
|
||||
NCheckbox: typeof import('naive-ui')['NCheckbox']
|
||||
NCode: (typeof import('naive-ui'))['NCode']
|
||||
NCollapse: typeof import('naive-ui')['NCollapse']
|
||||
NCollapseItem: typeof import('naive-ui')['NCollapseItem']
|
||||
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
|
||||
NDialogProvider: typeof import('naive-ui')['NDialogProvider']
|
||||
NDropdown: typeof import('naive-ui')['NDropdown']
|
||||
NEllipsis: typeof import('naive-ui')['NEllipsis']
|
||||
NFlex: typeof import('naive-ui')['NFlex']
|
||||
NIcon: typeof import('naive-ui')['NIcon']
|
||||
NIconWrapper: typeof import('naive-ui')['NIconWrapper']
|
||||
NImage: typeof import('naive-ui')['NImage']
|
||||
NImageGroup: typeof import('naive-ui')['NImageGroup']
|
||||
NInput: typeof import('naive-ui')['NInput']
|
||||
NLoadingBarProvider: typeof import('naive-ui')['NLoadingBarProvider']
|
||||
NMessageProvider: typeof import('naive-ui')['NMessageProvider']
|
||||
NModal: typeof import('naive-ui')['NModal']
|
||||
NModalProvider: typeof import('naive-ui')['NModalProvider']
|
||||
NNotificationProvider: typeof import('naive-ui')['NNotificationProvider']
|
||||
NPopover: typeof import('naive-ui')['NPopover']
|
||||
NPopselect: typeof import('naive-ui')['NPopselect']
|
||||
NQrCode: typeof import('naive-ui')['NQrCode']
|
||||
NRadio: typeof import('naive-ui')['NRadio']
|
||||
NScrollbar: typeof import('naive-ui')['NScrollbar']
|
||||
NSelect: typeof import('naive-ui')['NSelect']
|
||||
NSkeleton: typeof import('naive-ui')['NSkeleton']
|
||||
NSwitch: typeof import('naive-ui')['NSwitch']
|
||||
NTabPane: typeof import('naive-ui')['NTabPane']
|
||||
NTabs: typeof import('naive-ui')['NTabs']
|
||||
NTooltip: typeof import('naive-ui')['NTooltip']
|
||||
NVirtualList: typeof import('naive-ui')['NVirtualList']
|
||||
RenderMessage: typeof import('./../components/rightBox/renderMessage/index.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
RouterView: typeof import('vue-router')['RouterView']
|
||||
Text: typeof import('./../components/rightBox/renderMessage/Text.vue')['default']
|
||||
ActionBar: (typeof import('./../components/windows/ActionBar.vue'))['default']
|
||||
ChatBox: (typeof import('./../components/rightBox/chatBox/index.vue'))['default']
|
||||
ChatFooter: (typeof import('./../components/rightBox/chatBox/ChatFooter.vue'))['default']
|
||||
ChatHeader: (typeof import('./../components/rightBox/chatBox/ChatHeader.vue'))['default']
|
||||
ChatMain: (typeof import('./../components/rightBox/chatBox/ChatMain.vue'))['default']
|
||||
ChatSidebar: (typeof import('./../components/rightBox/chatBox/ChatSidebar.vue'))['default']
|
||||
ContextMenu: (typeof import('./../components/common/ContextMenu.vue'))['default']
|
||||
Details: (typeof import('./../components/rightBox/Details.vue'))['default']
|
||||
Emoji: (typeof import('./../components/rightBox/emoji/index.vue'))['default']
|
||||
Image: (typeof import('./../components/rightBox/renderMessage/Image.vue'))['default']
|
||||
InfoPopover: (typeof import('./../components/common/InfoPopover.vue'))['default']
|
||||
MsgInput: (typeof import('./../components/rightBox/MsgInput.vue'))['default']
|
||||
NaiveProvider: (typeof import('./../components/common/NaiveProvider.vue'))['default']
|
||||
NAlert: (typeof import('naive-ui'))['NAlert']
|
||||
NAvatar: (typeof import('naive-ui'))['NAvatar']
|
||||
NAvatarGroup: (typeof import('naive-ui'))['NAvatarGroup']
|
||||
NBadge: (typeof import('naive-ui'))['NBadge']
|
||||
NButton: (typeof import('naive-ui'))['NButton']
|
||||
NButtonGroup: (typeof import('naive-ui'))['NButtonGroup']
|
||||
NCheckbox: (typeof import('naive-ui'))['NCheckbox']
|
||||
NCollapse: (typeof import('naive-ui'))['NCollapse']
|
||||
NCollapseItem: (typeof import('naive-ui'))['NCollapseItem']
|
||||
NConfigProvider: (typeof import('naive-ui'))['NConfigProvider']
|
||||
NDialogProvider: (typeof import('naive-ui'))['NDialogProvider']
|
||||
NDropdown: (typeof import('naive-ui'))['NDropdown']
|
||||
NEllipsis: (typeof import('naive-ui'))['NEllipsis']
|
||||
NFlex: (typeof import('naive-ui'))['NFlex']
|
||||
NIcon: (typeof import('naive-ui'))['NIcon']
|
||||
NIconWrapper: (typeof import('naive-ui'))['NIconWrapper']
|
||||
NImage: (typeof import('naive-ui'))['NImage']
|
||||
NImageGroup: (typeof import('naive-ui'))['NImageGroup']
|
||||
NInput: (typeof import('naive-ui'))['NInput']
|
||||
NLoadingBarProvider: (typeof import('naive-ui'))['NLoadingBarProvider']
|
||||
NMessageProvider: (typeof import('naive-ui'))['NMessageProvider']
|
||||
NModal: (typeof import('naive-ui'))['NModal']
|
||||
NModalProvider: (typeof import('naive-ui'))['NModalProvider']
|
||||
NNotificationProvider: (typeof import('naive-ui'))['NNotificationProvider']
|
||||
NPopover: (typeof import('naive-ui'))['NPopover']
|
||||
NPopselect: (typeof import('naive-ui'))['NPopselect']
|
||||
NQrCode: (typeof import('naive-ui'))['NQrCode']
|
||||
NRadio: (typeof import('naive-ui'))['NRadio']
|
||||
NScrollbar: (typeof import('naive-ui'))['NScrollbar']
|
||||
NSelect: (typeof import('naive-ui'))['NSelect']
|
||||
NSkeleton: (typeof import('naive-ui'))['NSkeleton']
|
||||
NSwitch: (typeof import('naive-ui'))['NSwitch']
|
||||
NTabPane: (typeof import('naive-ui'))['NTabPane']
|
||||
NTabs: (typeof import('naive-ui'))['NTabs']
|
||||
NTooltip: (typeof import('naive-ui'))['NTooltip']
|
||||
NVirtualList: (typeof import('naive-ui'))['NVirtualList']
|
||||
RenderMessage: (typeof import('./../components/rightBox/renderMessage/index.vue'))['default']
|
||||
RouterLink: (typeof import('vue-router'))['RouterLink']
|
||||
RouterView: (typeof import('vue-router'))['RouterView']
|
||||
Text: (typeof import('./../components/rightBox/renderMessage/Text.vue'))['default']
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<div v-if="!isUnlockPage" @click.stop="isUnlockPage = true" class="size-full">
|
||||
<n-flex vertical align="center" :size="120" class="size-full mt-10%">
|
||||
<n-flex vertical align="center" :size="20" class="will-change-auto will-change-contents">
|
||||
<p class="text-(100px #f1f1f1) font-bold">{{ currentTime }}</p>
|
||||
<p class="text-(100px #f1f1f1) font-500">{{ currentTime }}</p>
|
||||
<n-flex align="center" :size="30" class="text-(30px #f1f1f1)">
|
||||
<p>{{ currentMonthAndDate }}</p>
|
||||
<p>{{ currentWeekday }}</p>
|
||||
@ -48,7 +48,7 @@
|
||||
class="h-full backdrop-blur-md">
|
||||
<n-flex vertical align="center" justify="center" :size="30" class="mt--75px">
|
||||
<n-avatar round style="border: 2px solid #f1f1f1" :size="120" :src="login.accountInfo.avatar" />
|
||||
<p class="text-(24px #f1f1f1) font-bold">{{ login.accountInfo.name }}</p>
|
||||
<p class="text-(24px #f1f1f1) font-500">{{ login.accountInfo.name }}</p>
|
||||
|
||||
<!-- 密码输入框 -->
|
||||
<n-config-provider :theme="lightTheme">
|
||||
@ -93,7 +93,7 @@
|
||||
<p class="text-(18px #f1f1f1)">密码不正确, 请再试一次</p>
|
||||
<p
|
||||
@click="init"
|
||||
class="w-120px bg-[rgba(255,255,255,0.1)] backdrop-blur-xl cursor-pointer p-10px rounded-8px text-(14px #323232 center) font-bold">
|
||||
class="w-120px bg-[rgba(255,255,255,0.1)] backdrop-blur-xl cursor-pointer p-10px rounded-8px text-(14px #323232 center) font-500">
|
||||
确定
|
||||
</p>
|
||||
</n-flex>
|
||||
|
@ -10,7 +10,7 @@
|
||||
class="relative bg-[--left-active-color] h-160px w-full select-none">
|
||||
<n-avatar :size="120" round bordered :src="login.accountInfo.avatar" />
|
||||
<n-flex vertical justify="center" :size="20">
|
||||
<p class="text-(24px [--chat-text-color]) font-bold">{{ login.accountInfo.name }}</p>
|
||||
<p class="text-(24px [--chat-text-color]) font-500">{{ login.accountInfo.name }}</p>
|
||||
|
||||
<n-flex align="center" justify="space-between" :size="30" class="mt-5px">
|
||||
<template v-for="item in titleList" :key="item.label">
|
||||
|
@ -22,7 +22,7 @@
|
||||
<n-flex align="center">
|
||||
<n-avatar bordered round :src="login.accountInfo.avatar" :size="48" />
|
||||
<n-flex vertical>
|
||||
<p class="text-(14px [--chat-text-color]) font-semibold">{{ login.accountInfo.name }}</p>
|
||||
<p class="text-(14px [--chat-text-color]) font-500">{{ login.accountInfo.name }}</p>
|
||||
<p class="text-(12px #909090)">剩余:28天过期</p>
|
||||
</n-flex>
|
||||
</n-flex>
|
||||
@ -53,7 +53,7 @@
|
||||
<n-flex justify="space-between" align="center" :size="0" class="leading-22px">
|
||||
<n-ellipsis
|
||||
style="width: calc(100% - 20px)"
|
||||
class="text-(14px [--chat-text-color]) truncate font-semibold select-none">
|
||||
class="text-(14px [--chat-text-color]) truncate font-500 select-none">
|
||||
{{ item.title }}
|
||||
</n-ellipsis>
|
||||
<svg
|
||||
|
@ -9,7 +9,7 @@
|
||||
<p
|
||||
v-if="!isEdit"
|
||||
@click="handleEdit"
|
||||
class="text-(22px [--chat-text-color]) truncate font-bold hover:underline cursor-pointer">
|
||||
class="text-(22px [--chat-text-color]) truncate font-500 hover:underline cursor-pointer">
|
||||
{{ currentChat.title }}
|
||||
</p>
|
||||
<n-input
|
||||
|
@ -14,7 +14,7 @@
|
||||
:size="12"
|
||||
class="examples">
|
||||
<n-flex align="center" justify="space-between">
|
||||
<p class="text-(14px [--chat-text-color]) font-bold">{{ item.title }}</p>
|
||||
<p class="text-(14px [--chat-text-color]) font-500">{{ item.title }}</p>
|
||||
<svg class="size-16px"><use :href="`#${item.icon}`"></use></svg>
|
||||
</n-flex>
|
||||
<component :is="item.content" />
|
||||
@ -116,7 +116,7 @@ const examplesList: Example = [
|
||||
</NFlex>
|
||||
|
||||
<NFlex justify={'space-between'} align={'center'} class={'foot'}>
|
||||
<p class={'text-(14px [--chat-text-color]) font-bold pl-6px opacity-0'}>试一试</p>
|
||||
<p class={'text-(14px [--chat-text-color]) font-500 pl-6px opacity-0'}>试一试</p>
|
||||
<svg style={{ filter: 'drop-shadow(0 0 0.6em #13987f)' }} class="color-#13987f pr-6px size-26px opacity-0">
|
||||
<use href="#Up-GPT"></use>
|
||||
</svg>
|
||||
|
@ -3,7 +3,7 @@
|
||||
style="box-shadow: var(--shadow-enabled) 4px 4px var(--box-shadow-color)"
|
||||
class="flex border-b-(1px solid [--line-color]) truncate p-[14px_20px] justify-between items-center gap-50px">
|
||||
<n-flex :size="10" vertical class="truncate">
|
||||
<p class="text-(22px [--chat-text-color]) truncate font-bold">设置</p>
|
||||
<p class="text-(22px [--chat-text-color]) truncate font-500">设置</p>
|
||||
<p class="text-(14px #707070)">所有设置选项</p>
|
||||
</n-flex>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<n-flex vertical justify="center" v-for="(item, index) in key" :key="index">
|
||||
<n-flex justify="space-between" :size="0" align="center" class="p-8px">
|
||||
<n-flex vertical :size="4">
|
||||
<p class="text-(15px [--chat-text-color]) font-bold">{{ item.title }}</p>
|
||||
<p class="text-(15px [--chat-text-color]) font-500">{{ item.title }}</p>
|
||||
<p v-if="item.description" class="text-(12px [--chat-text-color])">{{ item.description }}</p>
|
||||
</n-flex>
|
||||
|
||||
|