Skip to content

Commit e7f6e31

Browse files
committed
feat: optimize settings UI and introduce v-platform directive
1 parent 2bb1076 commit e7f6e31

File tree

12 files changed

+88
-53
lines changed

12 files changed

+88
-53
lines changed

frontend/src/components/Icon/LogIcon.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<svg viewBox="0 0 1024 1024">
33
<path
44
d="M291.328 377.344h391.68c33.28 0 60.416 27.136 60.416 60.416v361.472c0 33.28-27.136 60.416-60.416 60.416H291.328c-33.28 0-60.416-27.136-60.416-60.416V437.76c0.512-33.28 27.136-60.416 60.416-60.416z"
5-
fill="var(--secondary-color)"
5+
fill="var(--primary-color)"
66
></path>
77
<path
88
d="M869.888 248.832l-154.112-150.528c-12.8-12.8-29.696-19.456-47.616-19.456H178.688c-52.736 0.512-94.72 43.008-94.72 95.744v683.008c0 52.736 42.496 95.232 94.72 95.232h616.448c52.736 0 95.232-43.008 95.232-95.232V297.984c0-18.432-7.168-35.84-20.48-49.152z m-46.592 608.768c0 15.36-12.8 28.16-28.16 28.16H178.688c-15.36 0-27.648-12.8-27.648-28.16V174.08c0-15.36 12.288-28.16 27.648-28.16l442.88 0.512v118.784c0 55.808 45.056 100.864 100.352 100.864h100.864l0.512 491.52z m0-558.08h-100.864c-18.432 0-33.28-14.336-33.792-32.768V165.888l134.656 131.584v2.048z"

frontend/src/components/Input/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ defineExpose({
113113
class="gui-input inline-flex items-center rounded-4 cursor-pointer px-4"
114114
>
115115
<div v-if="$slots.prefix" class="flex items-center shrink-0">
116-
<slot name="prefix"></slot>
116+
<slot name="prefix" v-bind="{ showInput }"></slot>
117117
</div>
118118
<Icon v-if="disabled" icon="forbidden" class="shrink-0" />
119119
<div
@@ -159,7 +159,7 @@ defineExpose({
159159
/>
160160
</template>
161161
<div v-if="$slots.suffix" class="flex items-center shrink-0">
162-
<slot name="suffix"></slot>
162+
<slot name="suffix" v-bind="{ showInput }"></slot>
163163
</div>
164164
</div>
165165
</template>

frontend/src/constant/app.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ export const PluginHubFilePath = 'data/.cache/plugin-list.json'
2828

2929
export const RulesetHubFilePath = 'data/.cache/ruleset-list.json'
3030

31+
export const RollingReleaseDirectory = 'data/rolling-release'
32+
3133
export const DefaultFontFamily =
3234
'system-ui, "Microsoft YaHei UI", "Source Han Sans CN", "Twemoji Mozilla", sans-serif'
3335

frontend/src/directives/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import { vDraggable } from 'vue-draggable-plus'
22

33
import menu from './menu'
4+
import platform from './platform'
45
import tips from './tips'
56

67
import type { Plugin, App } from 'vue'
78

89
const directives: any = {
910
menu,
1011
tips,
12+
platform,
1113
draggable: vDraggable,
1214
}
1315

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { useEnvStore } from '@/stores'
2+
3+
import type { Directive, DirectiveBinding } from 'vue'
4+
5+
export default {
6+
mounted(el: any, binding: DirectiveBinding) {
7+
const envStore = useEnvStore()
8+
const supports = binding.value
9+
if (!supports.includes(envStore.env.os)) {
10+
el.remove()
11+
}
12+
},
13+
} as Directive

frontend/src/lang/locale/en.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ export default {
261261
local: 'Local',
262262
remote: 'Remote',
263263
update: 'Update',
264-
restart: 'Restart Kernel',
264+
restart: 'Restart Core',
265265
},
266266
router: {
267267
overview: 'Overview',
@@ -271,7 +271,7 @@ export default {
271271
settings: 'Settings',
272272
about: 'About',
273273
profiles: 'Profiles',
274-
kernel: 'Kernel',
274+
kernel: 'Core',
275275
scheduledtasks: 'Tasks',
276276
},
277277
home: {
@@ -287,8 +287,8 @@ export default {
287287
collapseAll: 'Collapse All',
288288
refresh: 'Refresh',
289289
delayTest: 'Delay Test',
290-
stop: 'Stop Kernel',
291-
restart: 'Restart Kernel',
290+
stop: 'Stop Core',
291+
restart: 'Restart Core',
292292
viewlog: 'view log',
293293
start: 'Click to Start',
294294
noLogs: 'Log is empty',
@@ -301,7 +301,7 @@ export default {
301301
memory: 'Memory',
302302
transmit: 'Transmit',
303303
receive: 'Receive',
304-
settings: 'Kernel Settings',
304+
settings: 'Core Settings',
305305
settingsTips:
306306
'Takes effect temporarily. For persistent changes, please modify the `profile` settings.',
307307
updateGEO: 'Update GEO',
@@ -654,9 +654,10 @@ export default {
654654
userAgent: {
655655
name: 'User-Agent',
656656
reset: 'Reset User-Agent',
657+
tips: 'Used for this app’s network requests',
657658
},
658659
githubapi: {
659-
name: 'Authenticating to the REST API',
660+
name: 'GitHub REST API Token',
660661
tips: 'Provides a higher rate limit',
661662
},
662663
},
@@ -691,11 +692,11 @@ export default {
691692
tun: 'Tun Mode',
692693
enableTunMode: 'Enable Tun Mode',
693694
disableTunMode: 'Disable Tun Mode',
694-
kernel: 'Kernel',
695+
kernel: 'Core',
695696
proxy: 'System Proxy',
696-
startKernel: 'Start Kernel',
697-
stopKernel: 'Stop Kernel',
698-
restartKernel: 'Restart Kernel',
697+
startKernel: 'Start Core',
698+
stopKernel: 'Stop Core',
699+
restartKernel: 'Restart Core',
699700
plugins: 'Plugins',
700701
},
701702
commands: {

frontend/src/lang/locale/zh.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -256,12 +256,12 @@ export default {
256256
always: '开启',
257257
strict: '自动',
258258
off: '关闭',
259-
notFound: '无内核',
259+
notFound: '无核心',
260260
requestFailed: '获取失败',
261261
local: '本地',
262262
remote: '远程',
263263
update: '更新',
264-
restart: '重启内核',
264+
restart: '重启核心',
265265
},
266266
router: {
267267
overview: '概览',
@@ -271,7 +271,7 @@ export default {
271271
settings: '设置',
272272
about: '关于',
273273
profiles: '配置',
274-
kernel: '内核',
274+
kernel: '核心',
275275
scheduledtasks: '计划任务',
276276
},
277277
home: {
@@ -287,10 +287,10 @@ export default {
287287
collapseAll: '收缩全部',
288288
refresh: '刷新',
289289
delayTest: '延迟测试',
290-
stop: '停止内核',
291-
restart: '重启内核',
290+
stop: '停止核心',
291+
restart: '重启核心',
292292
viewlog: '查看日志',
293-
start: '启动内核',
293+
start: '启动核心',
294294
noLogs: '日志为空',
295295
systemProxy: '系统代理',
296296
tunMode: 'TUN模式',
@@ -301,7 +301,7 @@ export default {
301301
memory: '内存',
302302
transmit: '上行速率',
303303
receive: '下行速率',
304-
settings: '内核设置',
304+
settings: '核心设置',
305305
settingsTips: '暂时生效,持久化请修改配置文件',
306306
updateGEO: '更新 GEO',
307307
needPort: '请先设置代理端口',
@@ -653,10 +653,11 @@ export default {
653653
userAgent: {
654654
name: '用户代理(User-Agent)',
655655
reset: ' 重置用户代理',
656+
tips: '用于此应用程序的网络请求',
656657
},
657658
githubapi: {
658-
name: ' REST API 进行身份验证',
659-
tips: '拥有更高的速率限制',
659+
name: 'GitHub REST API 访问令牌',
660+
tips: '可获得更高的速率限制',
660661
},
661662
},
662663
about: {
@@ -690,11 +691,11 @@ export default {
690691
tun: 'Tun模式',
691692
enableTunMode: '启用TUN模式',
692693
disableTunMode: '禁用TUN模式',
693-
kernel: '内核管理',
694+
kernel: '核心管理',
694695
proxy: '系统代理',
695-
startKernel: '开启内核',
696-
stopKernel: '关闭内核',
697-
restartKernel: '重启内核',
696+
startKernel: '开启核心',
697+
stopKernel: '关闭核心',
698+
restartKernel: '重启核心',
698699
plugins: '插件',
699700
},
700701
commands: {

frontend/src/stores/app.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
HttpCancel,
1313
OpenDir,
1414
} from '@/bridge'
15+
import { RollingReleaseDirectory } from '@/constant/app'
1516
import {
1617
APP_TITLE,
1718
APP_VERSION,
@@ -130,8 +131,7 @@ export const useAppStore = defineStore('app', () => {
130131
}
131132

132133
await RemoveFile(downloadCacheFile)
133-
await ignoredError(RemoveFile, 'data/rolling-release')
134-
await ignoredError(RemoveFile, 'data/rolling-release-alpha')
134+
await ignoredError(RemoveFile, RollingReleaseDirectory)
135135
} catch (error: any) {
136136
console.log(error)
137137
message.error(error.message || error, 5_000)

frontend/src/utils/command.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export const getCommands = () => {
5353
const rawCommands: Command[] = [
5454
{
5555
label: 'tray.kernel',
56-
cmd: 'Kernel',
56+
cmd: 'Core',
5757
children: [
5858
{
5959
label: 'tray.startKernel',
@@ -92,7 +92,7 @@ export const getCommands = () => {
9292
},
9393
{
9494
label: 'kernel.mode',
95-
cmd: 'Kernel Mode',
95+
cmd: 'Core Mode',
9696
children: ModeOptions.map((mode) => ({
9797
label: mode.label,
9898
cmd: mode.value,

frontend/src/views/SettingsView/components/components/AdvancedSettings.vue

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script lang="ts" setup>
2-
import { OpenDir } from '@/bridge'
2+
import { MakeDir, OpenDir } from '@/bridge'
3+
import { RollingReleaseDirectory } from '@/constant/app'
34
import { useAppSettingsStore, useEnvStore } from '@/stores'
45
import { APP_TITLE, APP_VERSION } from '@/utils'
56
@@ -10,6 +11,11 @@ const handleOpenFolder = async () => {
1011
await OpenDir(envStore.env.basePath)
1112
}
1213
14+
const handleOpenRollingReleaseFolder = async () => {
15+
await MakeDir(RollingReleaseDirectory)
16+
await OpenDir(RollingReleaseDirectory)
17+
}
18+
1319
const handleClearApiToken = () => {
1420
appSettings.app.githubApiToken = ''
1521
}
@@ -34,7 +40,10 @@ const handleClearUserAgent = () => {
3440
{{ $t('settings.rollingRelease') }}
3541
<span class="font-normal text-12">({{ $t('settings.needRestart') }})</span>
3642
</div>
37-
<Switch v-model="appSettings.app.rollingRelease" />
43+
<div class="flex items-center gap-4">
44+
<Button @click="handleOpenRollingReleaseFolder" type="primary" icon="folder" size="small" />
45+
<Switch v-model="appSettings.app.rollingRelease" />
46+
</div>
3847
</div>
3948
<div class="px-8 py-12 flex items-center justify-between">
4049
<div class="text-16 font-bold">{{ $t('settings.realMemoryUsage') }}</div>
@@ -65,7 +74,10 @@ const handleClearUserAgent = () => {
6574
</Input>
6675
</div>
6776
<div class="px-8 py-12 flex items-center justify-between">
68-
<div class="text-16 font-bold">{{ $t('settings.userAgent.name') }}</div>
77+
<div class="text-16 font-bold">
78+
{{ $t('settings.userAgent.name') }}
79+
<span class="font-normal text-12">({{ $t('settings.userAgent.tips') }})</span>
80+
</div>
6981
<Input
7082
v-model.lazy="appSettings.app.userAgent"
7183
:placeholder="APP_TITLE + '/' + APP_VERSION"
@@ -83,5 +95,12 @@ const handleClearUserAgent = () => {
8395
</template>
8496
</Input>
8597
</div>
98+
<div class="px-8 py-12 flex items-center justify-between">
99+
<div class="text-16 font-bold">
100+
{{ $t('settings.multipleInstance') }}
101+
<span class="font-normal text-12">({{ $t('settings.needRestart') }})</span>
102+
</div>
103+
<Switch v-model="appSettings.app.multipleInstance" />
104+
</div>
86105
</Card>
87106
</template>

0 commit comments

Comments
 (0)