refactor(App): 解决程序运行时重复写入配置
- 移除 watch 监听器,改用事件驱动方式保存配置 - 添加 writeServerUrl、writeToken 等配置保存方法 - 在表单项上绑定 change 事件触发配置保存 - 移除不再使用的 nextTick 导入 - 统一配置保存逻辑到独立函数中
This commit is contained in:
+26
-26
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {ref, nextTick, watch, computed} from 'vue'
|
import {ref, nextTick, computed} from 'vue'
|
||||||
import {ElMessage} from 'element-plus'
|
import {ElMessage} from 'element-plus'
|
||||||
import {ElMessageBox} from 'element-plus'
|
import {ElMessageBox} from 'element-plus'
|
||||||
import {SelectPath, GetConfig, WriteConfig, StartUpload, StopUpload} from '../wailsjs/go/main/App';
|
import {SelectPath, GetConfig, WriteConfig, StartUpload, StopUpload} from '../wailsjs/go/main/App';
|
||||||
@@ -93,6 +93,25 @@ const clearLog = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const writeServerUrl =() => {
|
||||||
|
WriteConfig("url", serverUrl.value)
|
||||||
|
}
|
||||||
|
const writeToken =() => {
|
||||||
|
WriteConfig("token", token.value)
|
||||||
|
}
|
||||||
|
const writeCheckDir = () => {
|
||||||
|
WriteConfig("check-dir", checkDir.value)
|
||||||
|
}
|
||||||
|
const writeConcurrentFiles = () => {
|
||||||
|
WriteConfig("handle-file-count", concurrentFiles.value)
|
||||||
|
}
|
||||||
|
const writeUploadThreads =() => {
|
||||||
|
WriteConfig("thread-count", uploadThreads.value)
|
||||||
|
}
|
||||||
|
const writeAutoStart = () => {
|
||||||
|
WriteConfig("is-run-on-start", autoStart.value)
|
||||||
|
}
|
||||||
|
|
||||||
// 加载配置
|
// 加载配置
|
||||||
try {
|
try {
|
||||||
GetConfig().then((config: Config) => {
|
GetConfig().then((config: Config) => {
|
||||||
@@ -109,25 +128,6 @@ try {
|
|||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(serverUrl, () => {
|
|
||||||
WriteConfig("url", serverUrl.value)
|
|
||||||
})
|
|
||||||
watch(token, () => {
|
|
||||||
WriteConfig("token", token.value)
|
|
||||||
})
|
|
||||||
watch(checkDir, () => {
|
|
||||||
WriteConfig("check-dir", checkDir.value)
|
|
||||||
})
|
|
||||||
watch(concurrentFiles, () => {
|
|
||||||
WriteConfig("handle-file-count", concurrentFiles.value)
|
|
||||||
})
|
|
||||||
watch(uploadThreads, () => {
|
|
||||||
WriteConfig("thread-count", uploadThreads.value)
|
|
||||||
})
|
|
||||||
watch(autoStart, () => {
|
|
||||||
WriteConfig("is-run-on-start", autoStart.value)
|
|
||||||
})
|
|
||||||
|
|
||||||
EventsOn("is-run", (run) => {
|
EventsOn("is-run", (run) => {
|
||||||
isRunning.value = run
|
isRunning.value = run
|
||||||
})
|
})
|
||||||
@@ -144,34 +144,34 @@ EventsOn("log", (msg) => {
|
|||||||
<div class="left-panel">
|
<div class="left-panel">
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<label>服务器地址</label>
|
<label>服务器地址</label>
|
||||||
<el-input v-model="serverUrl" placeholder="请输入服务器地址" :disabled="isRunning"/>
|
<el-input v-model="serverUrl" placeholder="请输入服务器地址" :disabled="isRunning" @change="writeServerUrl()"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<label>Token</label>
|
<label>Token</label>
|
||||||
<el-input v-model="token" placeholder="请输入Token" :disabled="isRunning"/>
|
<el-input v-model="token" placeholder="请输入Token" :disabled="isRunning" @change="writeToken()"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<label>检测目录</label>
|
<label>检测目录</label>
|
||||||
<div class="dir-input">
|
<div class="dir-input">
|
||||||
<el-input v-model="checkDir" placeholder="请选择检测目录" :disabled="isRunning"/>
|
<el-input v-model="checkDir" placeholder="请选择检测目录" :disabled="isRunning" @change="writeCheckDir()"/>
|
||||||
<el-button @click="selectDirectory" :disabled="isRunning">选择目录</el-button>
|
<el-button @click="selectDirectory" :disabled="isRunning">选择目录</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<label>同时处理文件数</label>
|
<label>同时处理文件数</label>
|
||||||
<el-input-number v-model="concurrentFiles" :min="1" :max="100" :disabled="isRunning"/>
|
<el-input-number v-model="concurrentFiles" :min="1" :max="100" :disabled="isRunning" @change="writeConcurrentFiles()"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<label>单文件上传线程</label>
|
<label>单文件上传线程</label>
|
||||||
<el-input-number v-model="uploadThreads" :min="1" :max="100" :disabled="isRunning"/>
|
<el-input-number v-model="uploadThreads" :min="1" :max="100" :disabled="isRunning" @change="writeUploadThreads()"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<el-checkbox v-model="autoStart" label="运行时自动启动上传" size="large" :disabled="isRunning"/>
|
<el-checkbox v-model="autoStart" label="运行时自动启动上传" size="large" :disabled="isRunning" @change="writeAutoStart()"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
|
|||||||
Reference in New Issue
Block a user