perf: 优化插件市场、更新项目的视觉反馈

This commit is contained in:
Soulter
2025-03-03 23:16:24 +08:00
parent 248e0c5240
commit 3dda5fb268
2 changed files with 20 additions and 8 deletions
@@ -22,6 +22,8 @@ let version = ref('');
let releases = ref([]);
let devCommits = ref([]); // 新增的 ref
let installLoading = ref(false);
let tab = ref(0);
let releasesHeader = [
@@ -132,6 +134,7 @@ function getDevCommits() {
function switchVersion(version: string) {
updateStatus.value = '正在切换版本...';
installLoading.value = true;
axios.post('/api/update/do', {
version: version,
proxy: localStorage.getItem('selectedGitHubProxy') || ''
@@ -147,6 +150,8 @@ function switchVersion(version: string) {
.catch((err) => {
console.log(err);
updateStatus.value = err
}).finally(() => {
installLoading.value = false;
});
}
@@ -211,21 +216,26 @@ commonStore.getStartTime();
</v-card-title>
<v-card-text>
<v-container>
<div class="mb-4">
<small>跳到旧版本或者切换到某个版本不会重新下载管理面板文件这可能会造成部分数据显示错误您可在 <a href="https://github.com/Soulter/AstrBot/releases">此处</a>
<v-progress-linear v-show="installLoading" class="mb-4" indeterminate color="primary"></v-progress-linear>
<div>
<h1 style="display:inline-block;">{{ botCurrVersion }}</h1>
<small style="margin-left: 4px;">{{ updateStatus }}</small>
</div>
<div class="mb-4 mt-4">
<small>💡 TIP: 跳到旧版本或者切换到某个版本不会重新下载管理面板文件这可能会造成部分数据显示错误您可在 <a href="https://github.com/Soulter/AstrBot/releases">此处</a>
找到对应的面板文件 dist.zip解压后替换 data/dist 文件夹即可当然前端源代码在 dashboard 目录下你也可以自己使用 npm install npm build 构建</small>
</div>
<v-tabs v-model="tab">
<v-tab value="0">正式版</v-tab>
<v-tab value="1">开发版(master 分支)</v-tab>
<v-tab value="0">😊 正式版</v-tab>
<v-tab value="1">🧐 开发版(master 分支)</v-tab>
</v-tabs>
<v-tabs-window v-model="tab">
<!-- 发行版 -->
<v-tabs-window-item key="0" v-show="tab == 0">
<small>当前版本 {{ botCurrVersion }}</small>
<p>{{ updateStatus }}</p>
<v-btn class="mt-4 mb-4" @click="switchVersion('latest')" color="primary" style="border-radius: 10px;"
:disabled="!hasNewVersion">
更新到最新版本
@@ -282,7 +292,7 @@ commonStore.getStartTime();
确定切换
</v-btn>
<v-divider></v-divider>
<v-divider class="mt-4 mb-4"></v-divider>
<div style="margin-top: 16px;">
<h3 class="mb-4">单独更新管理面板到最新版本</h3>
<div class="mb-4">
+3 -1
View File
@@ -51,7 +51,7 @@ import { useCommonStore } from '@/stores/common';
<template v-if="isListView">
<v-col cols="12" md="12">
<v-data-table :headers="pluginMarketHeaders" :items="pluginMarketData" item-key="name"
<v-data-table :headers="pluginMarketHeaders" :items="pluginMarketData" item-key="name" :loading="loading_"
v-model:search="marketSearch" :filter-keys="['name', 'desc']">
<template v-slot:item.name="{ item }">
<span v-if="item?.repo"><a :href="item?.repo"
@@ -228,10 +228,12 @@ export default {
this.getExtensions();
// 获取插件市场数据
this.loading_ = true
this.commonStore.getPluginCollections().then((data) => {
this.pluginMarketData = data;
this.checkAlreadyInstalled();
this.checkUpdate();
this.loading_ = false
}).catch((err) => {
console.error("获取插件市场数据失败:", err);
});