Skip to content

Commit f24913d

Browse files
committed
代码优化
1 parent 42a1e63 commit f24913d

File tree

5 files changed

+41
-53
lines changed

5 files changed

+41
-53
lines changed

src/main/utils/utils.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ export const isDev = process.resourcesPath.includes(`${sep}node_modules${sep}`)
66
export const isWindows = OS.isWindows()
77
export const isMacOS = OS.isMacOS()
88

9-
export function devConsoleLog(...str) {
9+
export function devConsoleLog(...inputArr) {
1010
if (isDev) {
11-
console.log(...str)
11+
const outputArr = inputArr.map((input) => (typeof input === 'function' ? input() : input))
12+
console.log(...outputArr)
1213
}
1314
}
1415

src/renderer/components/Settings/Server.vue

+12-15
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
<template>
2-
<a-card size="small" :title="t('Server')" class="settings-card">
2+
<a-card size="small" :title="`${t('Server')} & ${t('OneClick')}`" class="settings-card">
33
<div class="settings-card-row flex-vertical-center">
4-
<a-tooltip>
5-
<template #title>{{ t('OneClick') }}</template>
6-
<span>{{ mt('Server', 'ws', 'List') }}:</span>
7-
</a-tooltip>
4+
<span>{{ mt('Server', 'ws', 'List') }}:</span>
85

96
<a-select
107
v-model:value="store.settings.OneClickServerList"
118
:options="oneClickServerOptions" @change="oneClickServerChange"
12-
mode="multiple" placeholder="请选择" style="flex: 1"
9+
mode="multiple" :placeholder="t('pleaseChoose')" style="flex: 1"
1310
></a-select>
1411
</div>
1512

1613
<div class="settings-card-row flex-vertical-center">
1714
<a-switch v-model:checked="store.settings.AutoStartAndRestartServer" class="settings-switch"
18-
@change="changeAutoStartAndRestartServer" />
19-
<span>{{ t('websiteAutoRestartText') }}</span>
15+
:disabled="emptyOneClickServerList()" @change="changeAutoStartAndRestartServer" />
16+
<span :class="disabledTextClass()">{{ t('websiteAutoRestartText') }}</span>
2017
</div>
2118

2219
<div class="settings-card-row flex-vertical-center">
2320
<a-switch v-model:checked="store.settings.AfterOpenAppStartServer" class="settings-switch"
24-
@change="changeAfterOpenAppStartServer" />
25-
<span>{{ t('afterOpenAppStartServer') }}</span>
21+
:disabled="emptyOneClickServerList()" @change="changeAfterOpenAppStartServer" />
22+
<span :class="disabledTextClass()">{{ t('afterOpenAppStartServer')
23+
}}</span>
2624
</div>
2725
</a-card>
2826
</template>
@@ -40,11 +38,7 @@ const { serverList } = storeToRefs(store)
4038
const oneClickServerOptions = computed(() => {
4139
const options = serverList.value.map((item) => {
4240
const name = item.Name
43-
const obj = { value: name, label: item.ServerName ? item.ServerName : name }
44-
if (name === 'Nginx') {
45-
obj.disabled = true
46-
}
47-
return obj
41+
return { value: name, label: item.ServerName ? item.ServerName : name }
4842
})
4943
options.unshift({ label: t('Website') + ' PHP-FPM', value: 'PHP-FPM' })
5044
return options
@@ -59,6 +53,9 @@ const changeAutoStartAndRestartServer = () => {
5953
const changeAfterOpenAppStartServer = () => {
6054
store.setSettings('AfterOpenAppStartServer')
6155
}
56+
57+
const emptyOneClickServerList = () => store.settings.OneClickServerList.length === 0
58+
const disabledTextClass = () => emptyOneClickServerList() ? 'disabled-text' : ''
6259
</script>
6360

6461
<style scoped></style>

src/renderer/components/Settings/Timer.vue

+18-26
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,27 @@
11
<template>
22
<a-card size="small" :title="t('Timer')" class="settings-card">
33
<div class="settings-card-row flex-vertical-center">
4-
<a-tooltip>
5-
<template #title>{{ t('TimerServerList') }}</template>
6-
<span>{{ mt('Server', 'ws', 'List') }}</span>
7-
</a-tooltip>
8-
4+
<a-switch v-model:checked="store.settings.AutoTimerRestartServer" class="settings-switch"
5+
@change="changeAutoTimerRestartServer" />
6+
<span>{{ t('ServerAutoRestartText') }}</span>
7+
</div>
8+
<div class="settings-card-row flex-vertical-center">
9+
<span :class="disabledTextClass()">{{ mt('Server', 'ws', 'List') }}:</span>
910
<a-select
1011
v-model:value="store.settings.AutoTimerServerList"
11-
:options="TimerServerOptions"
12-
mode="multiple"
13-
style="flex: 1"
14-
placeholder="请选择"
12+
:options="timerServerOptions" :disabled="!store.settings.AutoTimerRestartServer"
13+
mode="multiple" style="flex: 1" :placeholder="t('pleaseChoose')"
1514
@change="AutoTimerServerChange"
1615
></a-select>
1716
</div>
1817

19-
<div class="interval-card-row flex-vertical-center">
20-
<a-tooltip>
21-
<template #title>{{ t('RestartIntervalText') }}</template>
22-
<span>{{ t('RestartIntervalText') }}:</span>
23-
</a-tooltip>
24-
25-
<a-select v-model:value="store.settings.AutoTimerInterval" :options="intervalOptions" placeholder="选择重启间隔" style="flex: 1" @change="changeAutoTimerInterval"></a-select>
26-
</div>
27-
2818
<div class="settings-card-row flex-vertical-center">
29-
<a-switch v-model:checked="store.settings.AutoTimerRestartServer" class="settings-switch" @change="changeAutoTimerRestartServer" />
30-
<span>{{ t('ServerAutoRestartText') }}</span>
19+
<span :class="disabledTextClass()">{{ t('RestartIntervalText') }}:</span>
20+
<a-select v-model:value="store.settings.AutoTimerInterval"
21+
:options="intervalOptions" :placeholder="t('pleaseChoose')" style="flex: 1"
22+
:disabled="!store.settings.AutoTimerRestartServer"
23+
@change="changeAutoTimerInterval"
24+
></a-select>
3125
</div>
3226
</a-card>
3327
</template>
@@ -68,14 +62,10 @@ const ACard = createAsyncComponent(import('ant-design-vue'), 'Card')
6862
const store = useMainStore()
6963
const { serverList } = storeToRefs(store)
7064
const { serverReactive } = inject('GlobalProvide')
71-
const TimerServerOptions = computed(() => {
65+
const timerServerOptions = computed(() => {
7266
const options = serverList.value.map((item) => {
7367
const name = item.Name
74-
const obj = { value: name, label: item.ServerName ? item.ServerName : name }
75-
if (name === 'Nginx') {
76-
obj.disabled = true
77-
}
78-
return obj
68+
return { value: name, label: item.ServerName ? item.ServerName : name }
7969
})
8070
options.unshift({ label: t('Website') + ' PHP-FPM', value: 'PHP-FPM' })
8171
return options
@@ -128,6 +118,8 @@ const changeAutoTimerRestartServer = () => {
128118
store.setSettings('AutoTimerRestartServer')
129119
setRestartTimer()
130120
}
121+
122+
const disabledTextClass = () => !store.settings.AutoTimerRestartServer ? 'disabled-text' : ''
131123
</script>
132124
133125
<style scoped></style>

src/renderer/store/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ export const useMainStore = defineStore('main', {
3434
return { ...item, Installed }
3535
}))
3636
},
37-
async setSettings(key, callback = null) {
37+
async setSettings(key, beforeFunc = null) {
3838
const originVal = Settings.get(key)
3939
try {
40-
if (callback) {
41-
const res = await callback(originVal)
40+
if (beforeFunc) {
41+
const res = await beforeFunc(originVal)
4242
if (res === false) {
4343
return
4444
}

src/renderer/views/Home.vue

+5-7
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@
8080
</template>
8181

8282
<script setup>
83-
import { EnumSoftwareType } from '@/shared/utils/enum'
8483
import { inject, onMounted, ref, watch} from 'vue'
8584
import { useMainStore } from '@/renderer/store'
8685
import GetPath from '@/shared/utils/GetPath'
@@ -91,17 +90,17 @@ import MessageBox from '@/renderer/utils/MessageBox'
9190
import { storeToRefs } from 'pinia/dist/pinia'
9291
import { APP_NAME } from '@/shared/utils/constant'
9392
import Native from '@/main/utils/Native'
94-
import { enumGetName, sleep } from '@/shared/utils/utils'
93+
import { sleep } from '@/shared/utils/utils'
9594
import Path from '@/main/utils/Path'
9695
import ProcessExtend from '@/main/utils/ProcessExtend'
9796
import Settings from '@/main/Settings'
9897
import SoftwareExtend from '@/main/core/software/SoftwareExtend'
9998
import TcpProcess from '@/main/utils/TcpProcess'
100-
import { isWindows } from '@/main/utils/utils'
99+
import { devConsoleLog,isWindows } from '@/main/utils/utils'
101100
import { createAsyncComponent } from '@/renderer/utils/utils'
102101
import { mt, t } from '@/renderer/utils/i18n'
103102
104-
var timestamp = new Date().getTime()
103+
const timestamp = new Date().getTime()
105104
106105
const serverTableLoading = ref(false)
107106
const { serverReactive } = inject('GlobalProvide')
@@ -138,8 +137,7 @@ const store = useMainStore()
138137
const { serverList, afterOpenAppStartServerMark } = storeToRefs(store)
139138
140139
onMounted(async () => {
141-
var timestamp2 = new Date().getTime()
142-
console.log('home onMounted', timestamp2 - timestamp)
140+
devConsoleLog('Home onMounted ms:', () => (new Date().getTime()) - timestamp)
143141
144142
if (serverList?.value?.length > 0) {
145143
serverTableLoading.value = { tip: `${t('RefreshingServer')}...` }
@@ -282,7 +280,7 @@ const startServerClick = async (item) => {
282280
item.btnLoading = false
283281
}
284282
285-
async function restartServerClick(item) {
283+
async function restartServerClick(item, callback = null) {
286284
item.btnLoading = true
287285
try {
288286
await ServerControl.stop(item)

0 commit comments

Comments
 (0)