style: Optimize version update changelog display

This commit is contained in:
ssongliu 2025-09-03 14:26:19 +08:00
parent 1662546bef
commit 4397cce12e
22 changed files with 64 additions and 47 deletions

View file

@ -1,5 +1,5 @@
<template> <template>
<el-button v-if="type == 'icon'" link @click="copyText(content)" icon="DocumentCopy" class="ml-1.5"></el-button> <el-button v-if="isIcon" link @click="copyText(content)" icon="DocumentCopy" class="ml-1.5"></el-button>
<el-button @click="copyText(content)" v-else>{{ $t('commons.button.copy') }}</el-button> <el-button @click="copyText(content)" v-else>{{ $t('commons.button.copy') }}</el-button>
</template> </template>
@ -9,6 +9,9 @@ defineOptions({ name: 'CopyButton' });
defineProps({ defineProps({
content: String, content: String,
type: String, isIcon: {
type: Boolean,
default: true,
},
}); });
</script> </script>

View file

@ -4,7 +4,7 @@
<el-descriptions border :column="1"> <el-descriptions border :column="1">
<el-descriptions-item v-for="(item, key) in list" :label="item.label" :key="key"> <el-descriptions-item v-for="(item, key) in list" :label="item.label" :key="key">
{{ item.value }} {{ item.value }}
<CopyButton v-if="!item.hideCopy" :content="item.value" type="icon" /> <CopyButton v-if="!item.hideCopy" :content="item.value" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View file

@ -20,7 +20,12 @@
<el-link underline="never" type="primary" @click="toLxware"> <el-link underline="never" type="primary" @click="toLxware">
{{ $t(!isMasterPro ? 'license.community' : 'license.pro') }} {{ $t(!isMasterPro ? 'license.community' : 'license.pro') }}
</el-link> </el-link>
<el-link underline="never" class="version" type="primary" @click="releasesRef.acceptParams()"> <el-link
underline="never"
class="version"
type="primary"
@click="releasesRef.acceptParams({ version: version })"
>
{{ version }} {{ version }}
</el-link> </el-link>
<el-badge is-dot class="-mt-0.5" :hidden="version === 'Waiting' || !globalStore.hasNewVersion"> <el-badge is-dot class="-mt-0.5" :hidden="version === 'Waiting' || !globalStore.hasNewVersion">

View file

@ -1,5 +1,9 @@
<template> <template>
<DrawerPro v-model="drawerVisible" :header="$t('setting.release')" @close="handleClose" size="large"> <DrawerPro v-model="drawerVisible" :header="$t('setting.release')" @close="handleClose" size="large">
<template #buttons>
<span>{{ version }}</span>
<CopyButton :content="version" type="primary" />
</template>
<div class="note" v-loading="loading"> <div class="note" v-loading="loading">
<el-collapse v-if="notes && notes.length !== 0" v-model="currentVersion" :accordion="true"> <el-collapse v-if="notes && notes.length !== 0" v-model="currentVersion" :accordion="true">
<div v-for="(item, index) in notes" :key="index"> <div v-for="(item, index) in notes" :key="index">
@ -60,8 +64,13 @@ const drawerVisible = ref(false);
const currentVersion = ref(0); const currentVersion = ref(0);
const notes = ref([]); const notes = ref([]);
const loading = ref(); const loading = ref();
const version = ref();
const acceptParams = (): void => { interface DialogProps {
version: string;
}
const acceptParams = (params: DialogProps): void => {
version.value = params.version;
search(); search();
drawerVisible.value = true; drawerVisible.value = true;
}; };

View file

@ -30,7 +30,7 @@
<el-table-column :label="$t('aiTools.mcp.externalUrl')" prop="baseUrl" min-width="200px"> <el-table-column :label="$t('aiTools.mcp.externalUrl')" prop="baseUrl" min-width="200px">
<template #default="{ row }"> <template #default="{ row }">
{{ row.baseUrl + row.ssePath }} {{ row.baseUrl + row.ssePath }}
<CopyButton :content="row.baseUrl + row.ssePath" type="icon" /> <CopyButton :content="row.baseUrl + row.ssePath" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('commons.table.status')" prop="status" width="120px"> <el-table-column :label="$t('commons.table.status')" prop="status" width="120px">

View file

@ -8,11 +8,11 @@
<el-descriptions :column="1"> <el-descriptions :column="1">
<el-descriptions-item :label="$t('database.connAddress')"> <el-descriptions-item :label="$t('database.connAddress')">
{{ form.containerName }} {{ form.containerName }}
<CopyButton :content="form.containerName" type="icon" /> <CopyButton :content="form.containerName" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
11434 11434
<CopyButton content="11434" type="icon" /> <CopyButton content="11434" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -25,7 +25,7 @@
<el-descriptions :column="1"> <el-descriptions :column="1">
<el-descriptions-item :label="$t('database.connAddress')"> <el-descriptions-item :label="$t('database.connAddress')">
{{ bindDomain.connUrl }} {{ bindDomain.connUrl }}
<CopyButton :content="bindDomain.connUrl" type="icon" /> <CopyButton :content="bindDomain.connUrl" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -38,11 +38,11 @@
<el-descriptions :column="1"> <el-descriptions :column="1">
<el-descriptions-item :label="$t('database.connAddress')"> <el-descriptions-item :label="$t('database.connAddress')">
{{ form.systemIP }} {{ form.systemIP }}
<CopyButton :content="form.systemIP" type="icon" /> <CopyButton :content="form.systemIP" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
{{ form.port }} {{ form.port }}
<CopyButton :content="form.port + ''" type="icon" /> <CopyButton :content="form.port + ''" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>

View file

@ -30,7 +30,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-for="(param, key) in params" :label="getLabel(param)" :key="key"> <el-descriptions-item v-for="(param, key) in params" :label="getLabel(param)" :key="key">
<span>{{ param.showValue && param.showValue != '' ? param.showValue : param.value }}</span> <span>{{ param.showValue && param.showValue != '' ? param.showValue : param.value }}</span>
<CopyButton v-if="showCopyButton(param.key)" :content="param.value" type="icon" /> <CopyButton v-if="showCopyButton(param.key)" :content="param.value" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View file

@ -15,11 +15,11 @@
<span else> <span else>
{{ loadMysqlInfo(true) }} {{ loadMysqlInfo(true) }}
</span> </span>
<CopyButton :content="loadMysqlInfo(true)" type="icon" /> <CopyButton :content="loadMysqlInfo(true)" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
3306 3306
<CopyButton content="3306" type="icon" /> <CopyButton content="3306" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -41,11 +41,11 @@
<span else> <span else>
{{ loadMysqlInfo(false) }} {{ loadMysqlInfo(false) }}
</span> </span>
<CopyButton :content="loadMysqlInfo(false)" type="icon" /> <CopyButton :content="loadMysqlInfo(false)" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
{{ form.port }} {{ form.port }}
<CopyButton :content="form.port + ''" type="icon" /> <CopyButton :content="form.port + ''" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -69,7 +69,7 @@
v-model="form.password" v-model="form.password"
/> />
<el-button-group> <el-button-group>
<CopyButton class="copy_button" :content="form.password" /> <CopyButton class="copy_button" :isIcon="false" :content="form.password" />
<el-button @click="random"> <el-button @click="random">
{{ $t('commons.button.random') }} {{ $t('commons.button.random') }}
</el-button> </el-button>
@ -80,11 +80,11 @@
<div v-if="form.from !== 'local'"> <div v-if="form.from !== 'local'">
<el-form-item :label="$t('commons.login.username')"> <el-form-item :label="$t('commons.login.username')">
<el-tag>{{ form.username }}</el-tag> <el-tag>{{ form.username }}</el-tag>
<CopyButton :content="form.username" type="icon" /> <CopyButton :content="form.username" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('commons.login.password')"> <el-form-item :label="$t('commons.login.password')">
<el-tag>{{ form.password }}</el-tag> <el-tag>{{ form.password }}</el-tag>
<CopyButton :content="form.password" type="icon" /> <CopyButton :content="form.password" />
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>

View file

@ -171,7 +171,7 @@
class="ml-1.5" class="ml-1.5"
></el-button> ></el-button>
<div> <div>
<CopyButton :content="row.password" type="icon" /> <CopyButton :content="row.password" />
</div> </div>
</div> </div>
<div v-if="row.password === '' && row.username"> <div v-if="row.password === '' && row.username">

View file

@ -40,7 +40,7 @@
class="ml-1.5" class="ml-1.5"
></el-button> ></el-button>
<div> <div>
<CopyButton :content="row.password" type="icon" /> <CopyButton :content="row.password" />
</div> </div>
</div> </div>
</template> </template>

View file

@ -11,11 +11,11 @@
<span else> <span else>
{{ loadPgInfo(true) }} {{ loadPgInfo(true) }}
</span> </span>
<CopyButton :content="loadPgInfo(true)" type="icon" /> <CopyButton :content="loadPgInfo(true)" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
5432 5432
<CopyButton content="5432" type="icon" /> <CopyButton content="5432" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -37,11 +37,11 @@
<span else> <span else>
{{ loadPgInfo(false) }} {{ loadPgInfo(false) }}
</span> </span>
<CopyButton :content="loadPgInfo(false)" type="icon" /> <CopyButton :content="loadPgInfo(false)" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
{{ form.port }} {{ form.port }}
<CopyButton :content="form.port + ''" type="icon" /> <CopyButton :content="form.port + ''" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -70,7 +70,7 @@
v-model="form.password" v-model="form.password"
/> />
<el-button-group> <el-button-group>
<CopyButton class="copy_button" :content="form.password" /> <CopyButton :isIcon="false" class="copy_button" :content="form.password" />
<el-button @click="random"> <el-button @click="random">
{{ $t('commons.button.random') }} {{ $t('commons.button.random') }}
</el-button> </el-button>
@ -81,11 +81,11 @@
<div v-if="form.from !== 'local'"> <div v-if="form.from !== 'local'">
<el-form-item :label="$t('commons.login.username')"> <el-form-item :label="$t('commons.login.username')">
<el-tag>{{ form.username }}</el-tag> <el-tag>{{ form.username }}</el-tag>
<CopyButton :content="form.username" type="icon" /> <CopyButton :content="form.username" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('commons.login.password')"> <el-form-item :label="$t('commons.login.password')">
<el-tag>{{ form.password }}</el-tag> <el-tag>{{ form.password }}</el-tag>
<CopyButton :content="form.password" type="icon" /> <CopyButton :content="form.password" />
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>

View file

@ -148,7 +148,7 @@
class="ml-1.5" class="ml-1.5"
></el-button> ></el-button>
<div> <div>
<CopyButton :content="row.password" type="icon" /> <CopyButton :content="row.password" />
</div> </div>
</div> </div>
</template> </template>

View file

@ -40,7 +40,7 @@
class="ml-1.5" class="ml-1.5"
></el-button> ></el-button>
<div> <div>
<CopyButton :content="row.password" type="icon" /> <CopyButton :content="row.password" />
</div> </div>
</div> </div>
</template> </template>

View file

@ -15,11 +15,11 @@
<span else> <span else>
{{ loadRedisInfo(true) }} {{ loadRedisInfo(true) }}
</span> </span>
<CopyButton :content="loadRedisInfo(true)" type="icon" /> <CopyButton :content="loadRedisInfo(true)" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
6379 6379
<CopyButton content="6379" type="icon" /> <CopyButton content="6379" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -41,11 +41,11 @@
<span else> <span else>
{{ loadRedisInfo(false) }} {{ loadRedisInfo(false) }}
</span> </span>
<CopyButton :content="loadRedisInfo(false)" type="icon" /> <CopyButton :content="loadRedisInfo(false)" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('commons.table.port')"> <el-descriptions-item :label="$t('commons.table.port')">
{{ form.port }} {{ form.port }}
<CopyButton :content="form.port + ''" type="icon" /> <CopyButton :content="form.port + ''" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
@ -64,7 +64,7 @@
v-model.trim="form.password" v-model.trim="form.password"
/> />
<el-button-group> <el-button-group>
<CopyButton class="copy_button" :content="form.password" /> <CopyButton class="copy_button" :isIcon="false" :content="form.password" />
<el-button @click="random"> <el-button @click="random">
{{ $t('commons.button.random') }} {{ $t('commons.button.random') }}
</el-button> </el-button>
@ -74,7 +74,7 @@
<div v-if="form.from !== 'local'"> <div v-if="form.from !== 'local'">
<el-form-item :label="$t('commons.login.password')"> <el-form-item :label="$t('commons.login.password')">
<el-tag>{{ form.password }}</el-tag> <el-tag>{{ form.password }}</el-tag>
<CopyButton :content="form.password" type="icon" /> <CopyButton :content="form.password" />
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>

View file

@ -39,7 +39,7 @@
class="ml-1.5" class="ml-1.5"
></el-button> ></el-button>
<div> <div>
<CopyButton :content="row.password" type="icon" /> <CopyButton :content="row.password" />
</div> </div>
</div> </div>
</template> </template>

View file

@ -26,7 +26,7 @@
<el-form-item :label="$t('setting.apiKey')" prop="apiKey"> <el-form-item :label="$t('setting.apiKey')" prop="apiKey">
<el-input v-model="form.apiKey" readonly> <el-input v-model="form.apiKey" readonly>
<template #suffix> <template #suffix>
<CopyButton type="icon" :content="form.apiKey" class="w-30" /> <CopyButton :content="form.apiKey" class="w-30" />
</template> </template>
<template #append> <template #append>
<el-button @click="resetApiKey()"> <el-button @click="resetApiKey()">

View file

@ -21,7 +21,7 @@
<el-image class="w-32 h-32" :src="qrImage" /> <el-image class="w-32 h-32" :src="qrImage" />
<span class="input-help flex items-center"> <span class="input-help flex items-center">
<span>{{ $t('setting.secret') }}: {{ form.secret }}</span> <span>{{ $t('setting.secret') }}: {{ form.secret }}</span>
<CopyButton :content="form.secret" type="icon" /> <CopyButton :content="form.secret" />
</span> </span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('commons.table.title')" prop="title"> <el-form-item :label="$t('commons.table.title')" prop="title">

View file

@ -90,7 +90,7 @@
class="ml-1.5" class="ml-1.5"
></el-button> ></el-button>
<div> <div>
<CopyButton :content="row.password" type="icon" /> <CopyButton :content="row.password" />
</div> </div>
</div> </div>
</template> </template>

View file

@ -11,13 +11,13 @@
<el-table-column prop="resolve" :label="$t('ssl.resolveDomain')"> <el-table-column prop="resolve" :label="$t('ssl.resolveDomain')">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ row.resolve }}</span> <span>{{ row.resolve }}</span>
<CopyButton :content="row.resolve" type="icon" /> <CopyButton :content="row.resolve" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="value" :label="$t('ssl.value')"> <el-table-column prop="value" :label="$t('ssl.value')">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ row.value }}</span> <span>{{ row.value }}</span>
<CopyButton :content="row.value" type="icon" /> <CopyButton :content="row.value" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('commons.table.type')">TXT</el-table-column> <el-table-column :label="$t('commons.table.type')">TXT</el-table-column>

View file

@ -35,14 +35,14 @@
<el-input v-model="ca.csr" :rows="15" type="textarea" id="textArea" /> <el-input v-model="ca.csr" :rows="15" type="textarea" id="textArea" />
<div> <div>
<br /> <br />
<CopyButton :content="ca.csr" /> <CopyButton :content="ca.csr" :isIcon="false" />
</div> </div>
</div> </div>
<div v-else class="mt-5"> <div v-else class="mt-5">
<el-input v-model="ca.privateKey" :rows="15" type="textarea" id="textArea" /> <el-input v-model="ca.privateKey" :rows="15" type="textarea" id="textArea" />
<div> <div>
<br /> <br />
<CopyButton :content="ca.privateKey" /> <CopyButton :content="ca.privateKey" :isIcon="false" />
</div> </div>
</div> </div>
</div> </div>

View file

@ -52,14 +52,14 @@
<el-input v-model="ssl.pem" :rows="15" type="textarea" id="textArea" /> <el-input v-model="ssl.pem" :rows="15" type="textarea" id="textArea" />
<div> <div>
<br /> <br />
<CopyButton :content="ssl.pem" /> <CopyButton :content="ssl.pem" :isIcon="false" />
</div> </div>
</div> </div>
<div v-else class="mt-5"> <div v-else class="mt-5">
<el-input v-model="ssl.privateKey" :rows="15" type="textarea" id="textArea" /> <el-input v-model="ssl.privateKey" :rows="15" type="textarea" id="textArea" />
<div> <div>
<br /> <br />
<CopyButton :content="ssl.privateKey" /> <CopyButton :content="ssl.privateKey" :isIcon="false" />
</div> </div>
</div> </div>
</div> </div>

View file

@ -114,7 +114,7 @@
</el-button> </el-button>
</td> </td>
<td> <td>
<CopyButton :content="getUrl(domain, row)" type="icon" /> <CopyButton :content="getUrl(domain, row)" />
</td> </td>
</tr> </tr>
</tbody> </tbody>