Skip to content

Commit abff1c8

Browse files
authored
feat: 新增「关于 > 关于软件 > 软件信息」板块 (#406)
1 parent ca22bab commit abff1c8

File tree

9 files changed

+323
-12
lines changed

9 files changed

+323
-12
lines changed

Cargo.lock

Lines changed: 264 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"@ant-design/icons-vue": "^7.0.1",
2525
"@tauri-apps/api": "^2.5.0",
2626
"@tauri-apps/plugin-autostart": "~2.3.0",
27+
"@tauri-apps/plugin-clipboard-manager": "~2.2.2",
2728
"@tauri-apps/plugin-dialog": "~2.2.2",
2829
"@tauri-apps/plugin-fs": "~2.3.0",
2930
"@tauri-apps/plugin-log": "~2.3.1",

pnpm-lock.yaml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-tauri/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ tauri-plugin-macos-permissions = "2"
3636
tauri-plugin-dialog = "2"
3737
tauri-plugin-fs = "2"
3838
fs_extra = "1"
39+
tauri-plugin-clipboard-manager = "2"
3940

4041
[target."cfg(target_os = \"macos\")".dependencies]
4142
tauri-nspanel.workspace = true

src-tauri/capabilities/default.json

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
"$schema": "../gen/schemas/desktop-schema.json",
33
"identifier": "default",
44
"description": "Capability for the main window",
5-
"windows": ["*"],
5+
"windows": [
6+
"*"
7+
],
68
"permissions": [
79
"core:default",
810
"core:window:allow-start-dragging",
@@ -18,7 +20,11 @@
1820
"opener:default",
1921
{
2022
"identifier": "opener:allow-open-path",
21-
"allow": [{ "path": "**/*" }]
23+
"allow": [
24+
{
25+
"path": "**/*"
26+
}
27+
]
2228
},
2329
"pinia:default",
2430
"log:default",
@@ -32,7 +38,10 @@
3238
"fs:write-all",
3339
{
3440
"identifier": "fs:scope",
35-
"allow": ["**/*"]
36-
}
41+
"allow": [
42+
"**/*"
43+
]
44+
},
45+
"clipboard-manager:allow-write-text"
3746
]
3847
}

src-tauri/src/core/device.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use rdev::{listen, Event, EventType};
1+
use rdev::{Event, EventType, listen};
22
use serde::Serialize;
3-
use serde_json::{json, Value};
3+
use serde_json::{Value, json};
44
use std::sync::atomic::{AtomicBool, Ordering};
55
use tauri::{AppHandle, Emitter};
66

src-tauri/src/lib.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ mod core;
22
mod utils;
33

44
use core::{device, prevent_default, setup};
5-
use tauri::{generate_handler, Manager, WindowEvent};
5+
use tauri::{Manager, WindowEvent, generate_handler};
66
use tauri_plugin_autostart::MacosLauncher;
77
use tauri_plugin_custom_window::{
8-
show_preference_window, MAIN_WINDOW_LABEL, PREFERENCE_WINDOW_LABEL,
8+
MAIN_WINDOW_LABEL, PREFERENCE_WINDOW_LABEL, show_preference_window,
99
};
1010
use utils::fs_extra::copy_dir;
1111

@@ -46,6 +46,7 @@ pub fn run() {
4646
.plugin(tauri_plugin_macos_permissions::init())
4747
.plugin(tauri_plugin_dialog::init())
4848
.plugin(tauri_plugin_fs::init())
49+
.plugin(tauri_plugin_clipboard_manager::init())
4950
.on_window_event(|window, event| match event {
5051
WindowEvent::CloseRequested { api, .. } => {
5152
let _ = window.hide();

src-tauri/src/utils/fs_extra.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use fs_extra::dir::{copy, CopyOptions};
1+
use fs_extra::dir::{CopyOptions, copy};
22
use std::fs::create_dir_all;
33
use tauri::command;
44

src/pages/preference/components/about/index.vue

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
<script setup lang="ts">
2+
import { getTauriVersion } from '@tauri-apps/api/app'
23
import { emit } from '@tauri-apps/api/event'
34
import { appLogDir } from '@tauri-apps/api/path'
5+
import { writeText } from '@tauri-apps/plugin-clipboard-manager'
46
import { openPath, openUrl } from '@tauri-apps/plugin-opener'
5-
import { Button } from 'ant-design-vue'
7+
import { arch, platform, version } from '@tauri-apps/plugin-os'
8+
import { Button, message } from 'ant-design-vue'
69
import { onMounted, ref } from 'vue'
710
811
import ProList from '@/components/pro-list/index.vue'
@@ -21,6 +24,21 @@ function handleUpdate() {
2124
emit(LISTEN_KEY.UPDATE_APP)
2225
}
2326
27+
async function copyInfo() {
28+
const info = {
29+
appName: appStore.name,
30+
appVersion: appStore.version,
31+
tauriVersion: await getTauriVersion(),
32+
platform: platform(),
33+
platformArch: arch(),
34+
platformVersion: version(),
35+
}
36+
37+
await writeText(JSON.stringify(info, null, 2))
38+
39+
message.success('复制成功')
40+
}
41+
2442
function feedbackIssue() {
2543
openUrl(`${GITHUB_LINK}/issues/new`)
2644
}
@@ -49,6 +67,15 @@ function feedbackIssue() {
4967
</template>
5068
</ProListItem>
5169

70+
<ProListItem
71+
description="复制软件信息并提供给 Bug Issue"
72+
title="软件信息"
73+
>
74+
<Button @click="copyInfo">
75+
复制
76+
</Button>
77+
</ProListItem>
78+
5279
<ProListItem title="开源地址">
5380
<Button
5481
danger

0 commit comments

Comments
 (0)