refactor: use the a-button component instead of the link button (halo-dev/console#423)

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/3445/head
Ryan Wang 2022-01-27 15:56:27 +08:00 committed by GitHub
parent cb3386d122
commit d786012bbf
20 changed files with 327 additions and 326 deletions

View File

@ -19,9 +19,9 @@
<template v-else slot="description">{{ attachment.name }}</template>
<span slot="title">
附件名
<a href="javascript:void(0);">
<a-icon type="edit" @click="handleEditName" />
</a>
<a-button class="!p-0" type="link" @click="handleEditName">
<a-icon type="edit" />
</a-button>
</span>
</a-list-item-meta>
</a-list-item>
@ -63,9 +63,9 @@
</template>
<span slot="title">
普通链接
<a href="javascript:void(0);" @click="handleCopyLink(`${encodeURI(attachment.path)}`)">
<a-button class="!p-0" type="link" @click="handleCopyLink(`${encodeURI(attachment.path)}`)">
<a-icon type="copy" />
</a>
</a-button>
</span>
</a-list-item-meta>
</a-list-item>
@ -74,12 +74,13 @@
<span slot="description">![{{ attachment.name }}]({{ attachment.path }})</span>
<span slot="title">
Markdown 格式
<a
href="javascript:void(0);"
<a-button
class="!p-0"
type="link"
@click="handleCopyLink(`![${attachment.name}](${encodeURI(attachment.path)})`)"
>
<a-icon type="copy" />
</a>
</a-button>
</span>
</a-list-item-meta>
</a-list-item>

View File

@ -1,9 +1,11 @@
<template>
<div>
<a-input :defaultValue="defaultValue" :placeholder="placeholder" :value="value" @change="onInputChange">
<a slot="addonAfter" href="javascript:void(0);" @click="attachmentModalVisible = true">
<a-icon type="picture" />
</a>
<template #addonAfter>
<a-button class="!p-0 !h-auto" type="link" @click="attachmentModalVisible = true">
<a-icon type="picture" />
</a-button>
</template>
</a-input>
<AttachmentSelectModal
:multiSelect="false"

View File

@ -4,11 +4,17 @@
<a-form-item v-for="(meta, index) in presetMetas" :key="index">
<a-row :gutter="5">
<a-col :span="12">
<a-input v-model="meta.key" :disabled="true"><i slot="addonBefore">K</i></a-input>
<a-input v-model="meta.key" :disabled="true">
<template #addonBefore>
<i>K</i>
</template>
</a-input>
</a-col>
<a-col :span="12">
<a-input v-model="meta.value">
<i slot="addonBefore">V</i>
<template #addonBefore>
<i>V</i>
</template>
</a-input>
</a-col>
</a-row>
@ -18,14 +24,22 @@
<a-form-item v-for="(meta, index) in customMetas" :key="index">
<a-row :gutter="5">
<a-col :span="12">
<a-input v-model="meta.key"><i slot="addonBefore">K</i></a-input>
<a-input v-model="meta.key">
<template #addonBefore>
<i>K</i>
</template>
</a-input>
</a-col>
<a-col :span="12">
<a-input v-model="meta.value">
<i slot="addonBefore">V</i>
<a slot="addonAfter" href="javascript:void(0);" @click.prevent="handleRemove(index)">
<a-icon type="close" />
</a>
<template #addonBefore>
<i>V</i>
</template>
<template #addonAfter>
<a-button class="!p-0 !h-auto" type="link" @click.prevent="handleRemove(index)">
<a-icon type="close" />
</a-button>
</template>
</a-input>
</a-col>
</a-row>

View File

@ -1,8 +1,11 @@
<template>
<div class="logo">
<a href="javascript:void(0);" @click="onLogoClick()">
<img alt="Halo Logo" src="/images/logo.svg" />
</a>
<img
alt="Halo Logo"
class="select-none cursor-pointer hover:brightness-125 transition-all"
src="/images/logo.svg"
@click="onLogoClick()"
/>
</div>
</template>

View File

@ -229,14 +229,6 @@ body {
// overflow: hidden; text-overflow:ellipsis; white-space: nowrap;
.top-nav-header-index {
.header-index-wide {
.header-index-left {
.logo > a {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ant-menu.ant-menu-horizontal {
flex: 1 1 auto;
white-space: normal;

View File

@ -34,14 +34,22 @@
<div class="table-operator">
<a-dropdown v-show="list.params.status != null && list.params.status !== '' && !isMobile()">
<a-menu slot="overlay">
<a-menu-item v-if="list.params.status === 'AUDITING'" key="1">
<a href="javascript:void(0);" @click="handleEditStatusMore(commentStatus.PUBLISHED.value)"> </a>
<a-menu-item
v-if="list.params.status === 'AUDITING'"
key="1"
@click="handleEditStatusMore(commentStatus.PUBLISHED.value)"
>
通过
</a-menu-item>
<a-menu-item v-if="list.params.status === 'PUBLISHED' || list.params.status === 'AUDITING'" key="2">
<a href="javascript:void(0);" @click="handleEditStatusMore(commentStatus.RECYCLE.value)"> </a>
<a-menu-item
v-if="list.params.status === 'PUBLISHED' || list.params.status === 'AUDITING'"
key="2"
@click="handleEditStatusMore(commentStatus.RECYCLE.value)"
>
移到回收站
</a-menu-item>
<a-menu-item v-if="list.params.status === 'RECYCLE'" key="3">
<a href="javascript:void(0);" @click="handleDeleteMore"> </a>
<a-menu-item v-if="list.params.status === 'RECYCLE'" key="3" @click="handleDeleteMore">
永久删除
</a-menu-item>
</a-menu>
<a-button>
@ -67,14 +75,14 @@
<a-icon type="bars" />
</span>
<a-menu slot="overlay">
<a-menu-item v-if="item.status === 'AUDITING'">
<a href="javascript:void(0);" @click="handleEditStatusClick(item.id, 'PUBLISHED')">通过</a>
<a-menu-item v-if="item.status === 'AUDITING'" @click="handleEditStatusClick(item.id, 'PUBLISHED')">
通过
</a-menu-item>
<a-menu-item v-if="item.status === 'AUDITING'">
<a href="javascript:void(0);" @click="handleReplyAndPassClick(item)"></a>
<a-menu-item v-if="item.status === 'AUDITING'" @click="handleReplyAndPassClick(item)">
通过并回复
</a-menu-item>
<a-menu-item v-else-if="item.status === 'PUBLISHED'">
<a href="javascript:void(0);" @click="handleReplyClick(item)"></a>
<a-menu-item v-else-if="item.status === 'PUBLISHED'" @click="handleReplyClick(item)">
回复
</a-menu-item>
<a-menu-item v-else-if="item.status === 'RECYCLE'">
<a-popconfirm
@ -83,7 +91,7 @@
okText="确定"
@confirm="handleEditStatusClick(item.id, 'PUBLISHED')"
>
<a href="javascript:void(0);">还原</a>
还原
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="item.status === 'PUBLISHED' || item.status === 'AUDITING'">
@ -93,7 +101,7 @@
okText="确定"
@confirm="handleEditStatusClick(item.id, 'RECYCLE')"
>
<a href="javascript:void(0);">回收站</a>
回收站
</a-popconfirm>
</a-menu-item>
<a-menu-item v-else-if="item.status === 'RECYCLE'">
@ -103,7 +111,7 @@
okText="确定"
@confirm="handleDeleteClick(item.id)"
>
<a href="javascript:void(0);">删除</a>
删除
</a-popconfirm>
</a-menu-item>
</a-menu>
@ -185,20 +193,21 @@
</span>
<span slot="action" slot-scope="text, record">
<a-dropdown v-if="record.status === 'AUDITING'" :trigger="['click']">
<a class="ant-dropdown-link" href="javascript:void(0);">通过</a>
<a-button class="!p-0" type="link">通过</a-button>
<a-menu slot="overlay">
<a-menu-item key="1">
<a href="javascript:void(0);" @click="handleEditStatusClick(record.id, 'PUBLISHED')">通过</a>
</a-menu-item>
<a-menu-item key="2">
<a href="javascript:void(0);" @click="handleReplyAndPassClick(record)"></a>
</a-menu-item>
<a-menu-item key="1" @click="handleEditStatusClick(record.id, 'PUBLISHED')"> 通过 </a-menu-item>
<a-menu-item key="2" @click="handleReplyAndPassClick(record)"> </a-menu-item>
</a-menu>
</a-dropdown>
<a v-else-if="record.status === 'PUBLISHED'" href="javascript:void(0);" @click="handleReplyClick(record)">
<a-button
v-else-if="record.status === 'PUBLISHED'"
class="!p-0"
type="link"
@click="handleReplyClick(record)"
>
回复
</a>
</a-button>
<a-popconfirm
v-else-if="record.status === 'RECYCLE'"
@ -207,7 +216,7 @@
okText="确定"
@confirm="handleEditStatusClick(record.id, 'PUBLISHED')"
>
<a href="javascript:void(0);">还原</a>
<a-button class="!p-0" type="link">还原</a-button>
</a-popconfirm>
<a-divider type="vertical" />
@ -219,7 +228,7 @@
okText="确定"
@confirm="handleEditStatusClick(record.id, 'RECYCLE')"
>
<a href="javascript:void(0);">回收站</a>
<a-button class="!p-0" type="link">回收站</a-button>
</a-popconfirm>
<a-popconfirm
@ -229,7 +238,7 @@
okText="确定"
@confirm="handleDeleteClick(record.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
</span>
</a-table>

View File

@ -3,14 +3,10 @@
<a-comment>
<template slot="actions">
<a-dropdown v-if="comment.status === 'AUDITING'" :trigger="['click']">
<span href="javascript:void(0);">通过</span>
<span>通过</span>
<a-menu slot="overlay">
<a-menu-item key="1">
<span href="javascript:void(0);" @click="handleEditStatusClick('PUBLISHED')"></span>
</a-menu-item>
<a-menu-item key="2">
<span href="javascript:void(0);">通过并回复</span>
</a-menu-item>
<a-menu-item key="1" @click="handleEditStatusClick('PUBLISHED')"> </a-menu-item>
<a-menu-item key="2"> 通过并回复</a-menu-item>
</a-menu>
</a-dropdown>
@ -23,7 +19,7 @@
okText="确定"
@confirm="handleEditStatusClick('PUBLISHED')"
>
<span>还原</span>
还原
</a-popconfirm>
<a-popconfirm
@ -33,11 +29,11 @@
okText="确定"
@confirm="handleEditStatusClick('RECYCLE')"
>
<span>回收站</span>
回收站
</a-popconfirm>
<a-popconfirm :title="'你确定要永久删除该评论?'" cancelText="取消" okText="确定" @confirm="handleDeleteClick">
<span>删除</span>
删除
</a-popconfirm>
</template>
<a slot="author" :href="comment.authorUrl" target="_blank">

View File

@ -21,10 +21,10 @@
<analysis-card :number="statisticsData.visitCount" title="阅读量">
<a-tooltip slot="action">
<template slot="title"> 文章阅读共 {{ statisticsData.visitCount }} </template>
<a href="javascript:void(0);">
<a-button class="!p-0" type="link">
<a-icon v-if="statisticsLoading" type="loading" />
<a-icon v-else type="info-circle-o" />
</a>
</a-button>
</a-tooltip>
</analysis-card>
</a-col>
@ -32,10 +32,10 @@
<analysis-card :number="statisticsData.establishDays" title="建立天数">
<a-tooltip slot="action">
<template slot="title">博客建立于 {{ statisticsData.birthday | moment }}</template>
<a href="javascript:void(0);">
<a-button class="!p-0" type="link">
<a-icon v-if="statisticsLoading" type="loading" />
<a-icon v-else type="info-circle-o" />
</a>
</a-button>
</a-tooltip>
</analysis-card>
</a-col>
@ -49,25 +49,24 @@
<a-list :dataSource="latestPosts" :loading="activityLoading">
<a-list-item :key="index" slot="renderItem" slot-scope="item, index">
<a-list-item-meta>
<a
v-if="['PUBLISHED', 'INTIMATE'].includes(item.status)"
slot="title"
:href="item.fullPath"
target="_blank"
>
{{ item.title }}
</a>
<a
v-else-if="item.status === 'DRAFT'"
slot="title"
href="javascript:void(0)"
@click="handlePostPreview(item.id)"
>
{{ item.title }}
</a>
<a v-else-if="item.status === 'RECYCLE'" slot="title" disabled href="javascript:void(0);">
{{ item.title }}
</a>
<template #title>
<a v-if="['PUBLISHED', 'INTIMATE'].includes(item.status)" :href="item.fullPath" target="_blank">
{{ item.title }}
</a>
<a-button
v-else-if="item.status === 'DRAFT'"
class="!p-0"
type="link"
@click="handlePostPreview(item.id)"
>
{{ item.title }}
</a-button>
<a-button v-else-if="item.status === 'RECYCLE'" class="!p-0" disabled type="link">
{{ item.title }}
</a-button>
</template>
</a-list-item-meta>
<div>{{ item.createTime | timeAgo }}</div>
</a-list-item>
@ -205,7 +204,7 @@ export default {
},
handlePostPreview(postId) {
apiClient.post.getPreviewLinkById(postId).then(response => {
window.open(response.data, '_blank')
window.open(response, '_blank')
})
}
},

View File

@ -1,7 +1,7 @@
<template>
<a-modal v-model="visible" :bodyStyle="{ padding: '0 24px 24px' }" :width="1024" title="从系统预设链接添加菜单">
<template slot="footer">
<a-button @click="handleCancel"> </a-button>
<a-button @click="handleCancel"> </a-button>
<ReactiveButton
:disabled="menus && menus.length <= 0"
:errored="saveErrored"
@ -21,14 +21,11 @@
<a-tab-pane key="1" force-render tab="分类目录">
<a-list item-layout="horizontal">
<a-list-item v-for="(category, index) in categories" :key="index">
<a-list-item-meta>
<span slot="title">{{ category.name }}</span>
<span slot="description">{{ category.fullPath }}</span>
</a-list-item-meta>
<a-list-item-meta :description="category.fullPath" :title="category.name" />
<template slot="actions">
<a class="text-base" href="javascript:void(0);">
<a-icon type="plus-circle" @click="handleInsertPre(category.name, category.fullPath)" />
</a>
<a-button class="!p-0" type="link" @click="handleInsertPre(category.name, category.fullPath)">
<a-icon type="plus-circle" />
</a-button>
</template>
</a-list-item>
</a-list>
@ -36,14 +33,11 @@
<a-tab-pane key="2" tab="标签">
<a-list item-layout="horizontal">
<a-list-item v-for="(tag, index) in tags" :key="index">
<a-list-item-meta>
<span slot="title">{{ tag.name }}</span>
<span slot="description">{{ tag.fullPath }}</span>
</a-list-item-meta>
<a-list-item-meta :description="tag.fullPath" :title="tag.name" />
<template slot="actions">
<a class="text-base" href="javascript:void(0);">
<a-icon type="plus-circle" @click="handleInsertPre(tag.name, tag.fullPath)" />
</a>
<a-button class="!p-0" type="link" @click="handleInsertPre(tag.name, tag.fullPath)">
<a-icon type="plus-circle" />
</a-button>
</template>
</a-list-item>
</a-list>
@ -51,14 +45,11 @@
<a-tab-pane key="3" tab="独立页面">
<a-list item-layout="horizontal">
<a-list-item v-for="(item, index) in sheet.independents" :key="index">
<a-list-item-meta>
<span slot="title">{{ item.title }}</span>
<span slot="description">{{ item.fullPath }}</span>
</a-list-item-meta>
<a-list-item-meta :description="item.fullPath" :title="item.title" />
<template slot="actions">
<a class="text-base" href="javascript:void(0);">
<a-icon type="plus-circle" @click="handleInsertPre(item.title, item.fullPath)" />
</a>
<a-button class="!p-0" type="link" @click="handleInsertPre(item.name, item.fullPath)">
<a-icon type="plus-circle" />
</a-button>
</template>
</a-list-item>
</a-list>
@ -66,14 +57,11 @@
<a-tab-pane key="4" tab="自定义页面">
<a-list item-layout="horizontal">
<a-list-item v-for="(item, index) in sheet.customs.data" :key="index">
<a-list-item-meta>
<span slot="title">{{ item.title }}</span>
<span slot="description">{{ item.fullPath }}</span>
</a-list-item-meta>
<a-list-item-meta :description="item.fullPath" :title="item.title" />
<template slot="actions">
<a class="text-base" href="javascript:void(0);">
<a-icon type="plus-circle" @click="handleInsertPre(item.title, item.fullPath)" />
</a>
<a-button class="!p-0" type="link" @click="handleInsertPre(item.name, item.fullPath)">
<a-icon type="plus-circle" />
</a-button>
</template>
</a-list-item>
</a-list>
@ -94,14 +82,11 @@
<a-tab-pane key="5" tab="其他">
<a-list item-layout="horizontal">
<a-list-item v-for="(item, index) in otherInternalLinks" :key="index">
<a-list-item-meta>
<span slot="title">{{ item.name }}</span>
<span slot="description">{{ item.url }}</span>
</a-list-item-meta>
<a-list-item-meta :description="item.url" :title="item.name" />
<template slot="actions">
<a class="text-base" href="javascript:void(0);">
<a-icon type="plus-circle" @click="handleInsertPre(item.name, item.url)" />
</a>
<a-button class="!p-0" type="link" @click="handleInsertPre(item.name, item.url)">
<a-icon type="plus-circle" />
</a-button>
</template>
</a-list-item>
</a-list>
@ -116,14 +101,11 @@
<a-tab-pane key="1" force-render tab="备选">
<a-list item-layout="horizontal">
<a-list-item v-for="(menu, index) in menus" :key="index">
<a-list-item-meta>
<span slot="title">{{ menu.name }}</span>
<span slot="description">{{ menu.url }}</span>
</a-list-item-meta>
<a-list-item-meta :description="menu.url" :title="menu.name" />
<template slot="actions">
<a class="text-base" href="javascript:void(0);" @click="handleRemovePre(index)">
<a-button class="!p-0" type="link" @click="handleRemovePre(index)">
<a-icon type="close-circle" />
</a>
</a-button>
</template>
</a-list-item>
</a-list>

View File

@ -28,11 +28,13 @@
</span>
</a-list-item-meta>
<template slot="actions">
<a v-if="!item.formVisible" href="javascript:void(0);" @click="handleOpenEditForm(item)"> </a>
<a v-else href="javascript:void(0);" @click="handleCloseCreateMenuForm(item)"> </a>
<a-button v-if="!item.formVisible" class="!p-0" type="link" @click="handleOpenEditForm(item)">
编辑
</a-button>
<a-button v-else class="!p-0" type="link" @click="handleCloseCreateMenuForm(item)"></a-button>
</template>
<template slot="actions">
<a href="javascript:void(0);" @click="handleDelete(item.id)"></a>
<a-button class="!p-0" type="link" @click="handleDelete(item.id)"></a-button>
</template>
<template v-if="excludedTeams && excludedTeams.length > 0" slot="actions">
<a-dropdown :trigger="['click']">

View File

@ -73,9 +73,7 @@
<a-icon type="bars" />
</span>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:void(0);" @click="form.model = item">编辑</a>
</a-menu-item>
<a-menu-item @click="form.model = item">编辑</a-menu-item>
<a-menu-item>
<a-popconfirm
:title="'你确定要删除【' + item.name + '】分类?'"
@ -83,7 +81,7 @@
okText="确定"
@confirm="handleDeleteCategory(item.id)"
>
<a href="javascript:void(0);">删除</a>
删除
</a-popconfirm>
</a-menu-item>
</a-menu>
@ -106,7 +104,6 @@
{{ item.name }}{{ item.password ? '(加密)' : '' }}
</span></a-list-item-meta
>
x
<span>
{{ item.description }}
</span>
@ -138,7 +135,7 @@
/>
</span>
<span slot="action" slot-scope="text, record">
<a href="javascript:void(0);" @click="form.model = record">编辑</a>
<a-button class="!p-0" type="link" @click="form.model = record"> 编辑 </a-button>
<a-divider type="vertical" />
<a-popconfirm
:title="'你确定要删除【' + record.name + '】分类?'"
@ -146,7 +143,7 @@
okText="确定"
@confirm="handleDeleteCategory(record.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
</span>
</a-table>

View File

@ -52,25 +52,29 @@
</router-link>
<a-dropdown v-show="list.params.status != null && list.params.status !== '' && !isMobile()">
<a-menu slot="overlay">
<a-menu-item v-if="['DRAFT', 'RECYCLE'].includes(list.params.status)" key="1">
<a href="javascript:void(0);" @click="handleEditStatusMore(postStatus.PUBLISHED.value)">
<span>发布</span>
</a>
<a-menu-item
v-if="['DRAFT', 'RECYCLE'].includes(list.params.status)"
key="1"
@click="handleEditStatusMore(postStatus.PUBLISHED.value)"
>
发布
</a-menu-item>
<a-menu-item v-if="['PUBLISHED', 'DRAFT', 'INTIMATE'].includes(list.params.status)" key="2">
<a href="javascript:void(0);" @click="handleEditStatusMore(postStatus.RECYCLE.value)">
<span>移到回收站</span>
</a>
<a-menu-item
v-if="['PUBLISHED', 'DRAFT', 'INTIMATE'].includes(list.params.status)"
key="2"
@click="handleEditStatusMore(postStatus.RECYCLE.value)"
>
移到回收站
</a-menu-item>
<a-menu-item v-if="['RECYCLE', 'PUBLISHED', 'INTIMATE'].includes(list.params.status)" key="3">
<a href="javascript:void(0);" @click="handleEditStatusMore(postStatus.DRAFT.value)">
<span>草稿</span>
</a>
<a-menu-item
v-if="['RECYCLE', 'PUBLISHED', 'INTIMATE'].includes(list.params.status)"
key="3"
@click="handleEditStatusMore(postStatus.DRAFT.value)"
>
草稿
</a-menu-item>
<a-menu-item v-if="['RECYCLE', 'DRAFT'].includes(list.params.status)" key="4">
<a href="javascript:void(0);" @click="handleDeleteMore">
<span>永久删除</span>
</a>
<a-menu-item v-if="['RECYCLE', 'DRAFT'].includes(list.params.status)" key="4" @click="handleDeleteMore">
永久删除
</a-menu-item>
</a-menu>
<a-button class="ml-2">
@ -104,8 +108,11 @@
<a-icon type="bars" />
</span>
<a-menu slot="overlay">
<a-menu-item v-if="['PUBLISHED', 'DRAFT', 'INTIMATE'].includes(item.status)">
<a href="javascript:void(0);" @click="handleEditClick(item)"></a>
<a-menu-item
v-if="['PUBLISHED', 'DRAFT', 'INTIMATE'].includes(item.status)"
@click="handleEditClick(item)"
>
编辑
</a-menu-item>
<a-menu-item v-else-if="item.status === 'RECYCLE'">
<a-popconfirm
@ -114,7 +121,7 @@
okText="确定"
@confirm="handleEditStatusClick(item.id, 'PUBLISHED')"
>
<a href="javascript:void(0);">还原</a>
还原
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="['PUBLISHED', 'DRAFT', 'INTIMATE'].includes(item.status)">
@ -124,7 +131,7 @@
okText="确定"
@confirm="handleEditStatusClick(item.id, 'RECYCLE')"
>
<a href="javascript:void(0);">回收站</a>
回收站
</a-popconfirm>
</a-menu-item>
<a-menu-item v-else-if="item.status === 'RECYCLE'">
@ -134,14 +141,10 @@
okText="确定"
@confirm="handleDeleteClick(item.id)"
>
<a href="javascript:void(0);">删除</a>
删除
</a-popconfirm>
</a-menu-item>
<a-menu-item>
<a href="javascript:void(0);" rel="noopener noreferrer" @click="handleShowPostSettings(item)">
设置
</a>
</a-menu-item>
<a-menu-item @click="handleShowPostSettings(item)"></a-menu-item>
</a-menu>
</a-dropdown>
</template>
@ -154,37 +157,46 @@
<template slot="description">
{{ item.createTime | moment }}
</template>
<span
slot="title"
style="max-width: 300px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
>
<a-icon
v-if="item.topPriority !== 0"
style="margin-right: 3px"
theme="twoTone"
twoToneColor="red"
type="pushpin"
/>
<a
v-if="['PUBLISHED', 'INTIMATE'].includes(item.status)"
:href="item.fullPath"
class="no-underline"
target="_blank"
<template #title>
<div
style="
max-width: 300px;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
<a-tooltip :title="'点击访问【' + item.title + '】'" placement="top">{{ item.title }}</a-tooltip>
</a>
<a
v-else-if="item.status === 'DRAFT'"
class="no-underline"
href="javascript:void(0)"
@click="handlePreview(item.id)"
>
<a-tooltip :title="'点击预览【' + item.title + '】'" placement="topLeft">{{ item.title }}</a-tooltip>
</a>
<a v-else class="no-underline" disabled href="javascript:void(0);">
{{ item.title }}
</a>
</span>
<a-icon
v-if="item.topPriority !== 0"
style="margin-right: 3px"
theme="twoTone"
twoToneColor="red"
type="pushpin"
/>
<a-tooltip
v-if="['PUBLISHED', 'INTIMATE'].includes(item.status)"
:title="'点击访问【' + item.title + '】'"
placement="top"
>
<a :href="item.fullPath" class="no-underline" target="_blank">
{{ item.title }}
</a>
</a-tooltip>
<a-tooltip
v-else-if="item.status === 'DRAFT'"
:title="'点击预览【' + item.title + '】'"
placement="top"
>
<a-button class="!p-0" type="link" @click="handlePreview(item.id)">
{{ item.title }}
</a-button>
</a-tooltip>
<a-button v-else class="!p-0" disabled type="link">
{{ item.title }}
</a-button>
</div>
</template>
</a-list-item-meta>
<span> {{ item.summary }}... </span>
<br />
@ -223,7 +235,7 @@
}"
:scrollToFirstRowOnChange="true"
>
<span slot="postTitle" slot-scope="text, record">
<template #postTitle="text, record">
<a-icon
v-if="record.topPriority !== 0"
style="margin-right: 3px"
@ -231,26 +243,24 @@
twoToneColor="red"
type="pushpin"
/>
<a
<a-tooltip
v-if="['PUBLISHED', 'INTIMATE'].includes(record.status)"
:href="record.fullPath"
class="no-underline"
target="_blank"
:title="'点击访问【' + text + '】'"
placement="top"
>
<a-tooltip :title="'点击访问【' + text + '】'" placement="top">{{ text }}</a-tooltip>
</a>
<a
v-else-if="record.status === 'DRAFT'"
class="no-underline"
href="javascript:void(0)"
@click="handlePreview(record.id)"
>
<a-tooltip :title="'点击预览【' + text + '】'" placement="topLeft">{{ text }}</a-tooltip>
</a>
<a v-else class="no-underline" disabled href="javascript:void(0);">
<a :href="record.fullPath" class="no-underline" target="_blank">
{{ text }}
</a>
</a-tooltip>
<a-tooltip v-else-if="record.status === 'DRAFT'" :title="'点击预览【' + text + '】'" placement="top">
<a-button class="!p-0" type="link" @click="handlePreview(record.id)">
{{ text }}
</a-button>
</a-tooltip>
<a-button v-else class="!p-0" disabled type="link">
{{ text }}
</a>
</span>
</a-button>
</template>
<span slot="status" slot-scope="statusProperty">
<a-badge :status="statusProperty.status" :text="statusProperty.text" />
</span>
@ -306,11 +316,12 @@
</span>
<span slot="action" slot-scope="text, post">
<a
<a-button
v-if="['PUBLISHED', 'DRAFT', 'INTIMATE'].includes(post.status)"
href="javascript:void(0);"
class="!p-0"
type="link"
@click="handleEditClick(post)"
>编辑</a
>编辑</a-button
>
<a-popconfirm
v-else-if="post.status === 'RECYCLE'"
@ -319,7 +330,7 @@
okText="确定"
@confirm="handleEditStatusClick(post.id, 'PUBLISHED')"
>
<a href="javascript:void(0);">还原</a>
<a-button class="!p-0" type="link">还原</a-button>
</a-popconfirm>
<a-divider type="vertical" />
@ -331,7 +342,7 @@
okText="确定"
@confirm="handleEditStatusClick(post.id, 'RECYCLE')"
>
<a href="javascript:void(0);">回收站</a>
<a-button class="!p-0" type="link">回收站</a-button>
</a-popconfirm>
<a-popconfirm
@ -341,12 +352,12 @@
okText="确定"
@confirm="handleDeleteClick(post.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
<a-divider type="vertical" />
<a href="javascript:void(0);" @click="handleShowPostSettings(post)"></a>
<a-button class="!p-0" type="link" @click="handleShowPostSettings(post)"></a-button>
</span>
</a-table>
<div class="page-wrapper">
@ -373,8 +384,8 @@
@onClose="selectedPost = {}"
>
<template #extraFooter>
<a-button :disabled="selectPreviousButtonDisabled" @click="handleSelectPrevious"> </a-button>
<a-button :disabled="selectNextButtonDisabled" @click="handleSelectNext"> </a-button>
<a-button :disabled="selectPreviousButtonDisabled" @click="handleSelectPrevious"> </a-button>
<a-button :disabled="selectNextButtonDisabled" @click="handleSelectNext"> </a-button>
</template>
</PostSettingModal>
@ -726,7 +737,7 @@ export default {
},
handlePreview(postId) {
apiClient.post.getPreviewLinkById(postId).then(response => {
window.open(response.data, '_blank')
window.open(response, '_blank')
})
},
handleClearRowKeys() {

View File

@ -24,8 +24,8 @@
<a-icon type="bars" />
</span>
<a-menu slot="overlay">
<a-menu-item v-if="item.status === 'PUBLISHED' || item.status === 'DRAFT'">
<a href="javascript:void(0);" @click="handleEditClick(item)"></a>
<a-menu-item v-if="item.status === 'PUBLISHED' || item.status === 'DRAFT'" @click="handleEditClick(item)">
编辑
</a-menu-item>
<a-menu-item v-else-if="item.status === 'RECYCLE'">
<a-popconfirm
@ -34,7 +34,7 @@
okText="确定"
@confirm="handleEditStatusClick(item.id, 'PUBLISHED')"
>
<a href="javascript:void(0);">还原</a>
还原
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="item.status === 'PUBLISHED' || item.status === 'DRAFT'">
@ -44,7 +44,7 @@
okText="确定"
@confirm="handleEditStatusClick(item.id, 'RECYCLE')"
>
<a href="javascript:void(0);">回收站</a>
回收站
</a-popconfirm>
</a-menu-item>
<a-menu-item v-else-if="item.status === 'RECYCLE'">
@ -54,12 +54,10 @@
okText="确定"
@confirm="handleDeleteClick(item.id)"
>
<a href="javascript:void(0);">删除</a>
删除
</a-popconfirm>
</a-menu-item>
<a-menu-item>
<a href="javascript:void(0);" rel="noopener noreferrer" @click="handleShowSheetSettings(item)"></a>
</a-menu-item>
<a-menu-item @click="handleShowSheetSettings(item)"></a-menu-item>
</a-menu>
</a-dropdown>
</template>
@ -72,25 +70,27 @@
<template slot="description">
{{ item.createTime | moment }}
</template>
<span
slot="title"
style="max-width: 300px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
>
<a v-if="item.status === 'PUBLISHED'" :href="item.fullPath" class="no-underline" target="_blank">
<a-tooltip :title="'点击访问【' + item.title + '】'" placement="top">{{ item.title }}</a-tooltip>
</a>
<a
v-else-if="item.status === 'DRAFT'"
class="no-underline"
href="javascript:void(0)"
@click="handlePreview(item.id)"
<template #title>
<div
style="max-width: 300px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
>
<a-tooltip :title="'点击预览【' + item.title + '】'" placement="topLeft">{{ item.title }}</a-tooltip>
</a>
<a v-else class="no-underline" disabled href="javascript:void(0);">
{{ item.title }}
</a>
</span>
<a-tooltip v-if="item.status === 'PUBLISHED'" :title="'点击访问【' + item.title + '】'" placement="top">
<a :href="item.fullPath" class="no-underline" target="_blank">
{{ item.title }}
</a>
</a-tooltip>
<a-tooltip v-else-if="item.status === 'DRAFT'" :title="'点击预览【' + item.title + '】'" placement="top">
<a-button class="!p-0" type="link" @click="handlePreview(item.id)">
{{ item.title }}
</a-button>
</a-tooltip>
<a-button v-else class="!p-0" disabled type="link">
{{ item.title }}
</a-button>
</div>
</template>
</a-list-item-meta>
<span> {{ item.summary }}... </span>
</a-list-item>
@ -106,22 +106,23 @@
:rowKey="sheet => sheet.id"
:scrollToFirstRowOnChange="true"
>
<span slot="sheetTitle" slot-scope="text, record">
<a v-if="record.status === 'PUBLISHED'" :href="record.fullPath" class="no-underline" target="_blank">
<a-tooltip :title="'点击访问【' + text + '】'" placement="top">{{ text }}</a-tooltip>
</a>
<a
v-else-if="record.status === 'DRAFT'"
class="no-underline"
href="javascript:void(0)"
@click="handlePreview(record.id)"
>
<a-tooltip :title="'点击预览【' + text + '】'" placement="topLeft">{{ text }}</a-tooltip>
</a>
<a v-else class="no-underline" disabled href="javascript:void(0);">
<template #sheetTitle="text, record">
<a-tooltip v-if="record.status === 'PUBLISHED'" :title="'点击访问【' + text + '】'" placement="top">
<a :href="record.fullPath" class="no-underline" target="_blank">
{{ text }}
</a>
</a-tooltip>
<a-tooltip v-else-if="record.status === 'DRAFT'" :title="'点击预览【' + text + '】'" placement="top">
<a-button class="!p-0" type="link" @click="handlePreview(record.id)">
{{ text }}
</a-button>
</a-tooltip>
<a-button v-else class="!p-0" disabled type="link">
{{ text }}
</a>
</span>
</a-button>
</template>
<span slot="status" slot-scope="statusProperty">
<a-badge :status="statusProperty.status" :text="statusProperty.text" />
@ -155,12 +156,14 @@
</span>
<span slot="action" slot-scope="text, sheet">
<a
<a-button
v-if="sheet.status === 'PUBLISHED' || sheet.status === 'DRAFT'"
href="javascript:void(0);"
class="!p-0"
type="link"
@click="handleEditClick(sheet)"
>编辑</a
>
编辑
</a-button>
<a-popconfirm
v-else-if="sheet.status === 'RECYCLE'"
@ -169,7 +172,7 @@
okText="确定"
@confirm="handleEditStatusClick(sheet.id, 'PUBLISHED')"
>
<a href="javascript:void(0);">还原</a>
<a-button class="!p-0" type="link">还原</a-button>
</a-popconfirm>
<a-divider type="vertical" />
@ -181,7 +184,7 @@
okText="确定"
@confirm="handleEditStatusClick(sheet.id, 'RECYCLE')"
>
<a href="javascript:void(0);">回收站</a>
<a-button class="!p-0" type="link">回收站</a-button>
</a-popconfirm>
<a-popconfirm
@ -191,10 +194,10 @@
okText="确定"
@confirm="handleDeleteClick(sheet.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
<a-divider type="vertical" />
<a href="javascript:void(0);" @click="handleShowSheetSettings(sheet)"></a>
<a-button class="!p-0" type="link" @click="handleShowSheetSettings(sheet)"></a-button>
</span>
</a-table>
<div class="page-wrapper">
@ -218,8 +221,8 @@
@onClose="selectedSheet = {}"
>
<template #extraFooter>
<a-button :disabled="selectPreviousButtonDisabled" @click="handleSelectPrevious"> </a-button>
<a-button :disabled="selectNextButtonDisabled" @click="handleSelectNext"> </a-button>
<a-button :disabled="selectPreviousButtonDisabled" @click="handleSelectPrevious"> </a-button>
<a-button :disabled="selectNextButtonDisabled" @click="handleSelectNext"> </a-button>
</template>
</SheetSettingModal>
<TargetCommentDrawer

View File

@ -49,8 +49,8 @@
>
<template slot="available" slot-scope="available">
<span v-if="available"></span>
<span v-else
>不可用
<span v-else>
不可用
<a-tooltip slot="action" title="当前主题没有对应模板">
<a-icon type="info-circle-o" />
</a-tooltip>
@ -58,7 +58,7 @@
</template>
<span slot="action" slot-scope="text, record">
<router-link :to="{ name: record.routeName }">
<a href="javascript:void(0);">管理</a>
<a-button class="!p-0" type="link">管理</a-button>
</router-link>
<a-divider type="vertical" />
<a v-if="record.available" :href="record.fullPath" target="_blank">访</a>

View File

@ -40,31 +40,23 @@
<a-list v-else :dataSource="list.data" :loading="list.loading" :pagination="false" itemLayout="vertical">
<a-list-item :key="index" slot="renderItem" slot-scope="item, index">
<template slot="actions">
<span>
<a href="javascript:void(0);">
<a-icon type="like-o" />
{{ item.likes }}
</a>
</span>
<span>
<a href="javascript:void(0);" @click="handleOpenJournalCommentsDrawer(item)">
<a-icon type="message" />
{{ item.commentCount }}
</a>
</span>
<span v-if="item.type === 'INTIMATE'">
<a disabled href="javascript:void(0);">
<a-icon type="lock" />
</a>
</span>
<span v-else>
<a href="javascript:void(0);">
<a-icon type="unlock" />
</a>
</span>
<a-button class="!p-0" type="link">
<a-icon type="like-o" />
{{ item.likes }}
</a-button>
<a-button class="!p-0" type="link" @click="handleOpenJournalCommentsDrawer(item)">
<a-icon type="message" />
{{ item.commentCount }}
</a-button>
<a-button v-if="item.type === 'INTIMATE'" class="!p-0" disabled type="link">
<a-icon type="lock" />
</a-button>
<a-button v-else class="!p-0" type="link">
<a-icon type="unlock" />
</a-button>
</template>
<template slot="extra">
<a href="javascript:void(0);" @click="handleOpenEditModal(item)"></a>
<a-button class="!p-0" type="link" @click="handleOpenEditModal(item)"></a-button>
<a-divider type="vertical" />
<a-popconfirm
cancelText="取消"
@ -72,7 +64,7 @@
title="你确定要删除这条日志?"
@confirm="handleDelete(item.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
</template>

View File

@ -68,9 +68,7 @@
<a-icon type="bars" />
</span>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:void(0);" @click="form.model = item">编辑</a>
</a-menu-item>
<a-menu-item @click="form.model = item">编辑</a-menu-item>
<a-menu-item>
<a-popconfirm
:title="'你确定要删除【' + item.name + '】链接?'"
@ -78,7 +76,7 @@
okText="确定"
@confirm="handleDeleteLink(item.id)"
>
<a href="javascript:void(0);">删除</a>
删除
</a-popconfirm>
</a-menu-item>
</a-menu>
@ -123,7 +121,7 @@
</template>
<ellipsis slot="name" slot-scope="text" :length="15" tooltip>{{ text }}</ellipsis>
<span slot="action" slot-scope="text, record">
<a href="javascript:void(0);" @click="form.model = record">编辑</a>
<a-button class="!p-0" type="link" @click="form.model = record">编辑</a-button>
<a-divider type="vertical" />
<a-popconfirm
:title="'你确定要删除【' + record.name + '】链接?'"
@ -131,7 +129,7 @@
okText="确定"
@confirm="handleDeleteLink(record.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
</span>
</a-table>

View File

@ -6,9 +6,9 @@
<a-card :bodyStyle="{ padding: '16px' }" :bordered="false" class="environment-info">
<template slot="title">
环境信息
<a href="javascript:void(0);" @click="handleCopyEnvironments">
<a-button class="!p-0" type="link" @click="handleCopyEnvironments">
<a-icon type="copy" />
</a>
</a-button>
</template>
<a-popover slot="extra" :title="isLatest ? '当前为最新版本' : '有新版本'" placement="left">
<template slot="content">
@ -52,10 +52,10 @@
<a v-for="(item, index) in contributors" :key="index" :href="item.html_url" target="_blank">
<a-tooltip :title="item.login" placement="top">
<a-avatar
:alt="item.login"
:src="item.avatar_url | webpAvatarConvert"
:style="{ marginRight: '10px', marginBottom: '10px' }"
size="large"
:alt="item.login"
/>
</a-tooltip>
</a>

View File

@ -62,7 +62,7 @@
</a-tooltip>
</span>
<span slot="action" slot-scope="text, record">
<a href="javascript:void(0);" @click="handleOpenEditFormModal(record)"></a>
<a-button class="!p-0" type="link" @click="handleOpenEditFormModal(record)"></a-button>
<a-divider type="vertical" />
<a-popconfirm
:title="'你确定要永久删除该变量?'"
@ -70,7 +70,7 @@
okText="确定"
@confirm="handleDeleteOption(record.id)"
>
<a href="javascript:void(0);">删除</a>
<a-button class="!p-0" type="link">删除</a-button>
</a-popconfirm>
</span>
</a-table>

View File

@ -24,14 +24,14 @@
{{ createTime | moment }}
</span>
<span slot="action" slot-scope="text, record">
<a v-if="!record.isFile" href="javascript:void(0);" @click="handleUpload(record)"></a>
<a-button v-if="!record.isFile" class="!p-0" type="link" @click="handleUpload(record)"></a-button>
<a v-else :href="options.blog_url + record.relativePath" target="_blank">访问</a>
<a-divider type="vertical" />
<a-dropdown :trigger="['click']">
<a class="ant-dropdown-link" href="javascript:void(0);">更多</a>
<a-button class="!p-0" type="link">更多</a-button>
<a-menu slot="overlay">
<a-menu-item v-if="!record.isFile" key="1">
<a href="javascript:void(0);" @click="handleOpenCreateDirectoryModal(record)"></a>
<a-menu-item v-if="!record.isFile" key="1" @click="handleOpenCreateDirectoryModal(record)">
创建文件夹
</a-menu-item>
<a-menu-item key="2">
<a-popconfirm
@ -40,14 +40,12 @@
okText="确定"
@confirm="handleDelete(record.relativePath)"
>
<a href="javascript:void(0);">删除</a>
删除
</a-popconfirm>
</a-menu-item>
<a-menu-item key="3">
<a href="javascript:void(0);" @click="handleOpenRenameModal(record)"></a>
</a-menu-item>
<a-menu-item v-if="record.isFile" key="4">
<a href="javascript:void(0);" @click="handleOpenEditContentModal(record)"></a>
<a-menu-item key="3" @click="handleOpenRenameModal(record)"></a-menu-item>
<a-menu-item v-if="record.isFile" key="4" @click="handleOpenEditContentModal(record)">
编辑
</a-menu-item>
</a-menu>
</a-dropdown>

View File

@ -21,7 +21,9 @@
<a-form-model-item prop="code">
<a-input v-model="form.model.code" placeholder="验证码" type="password">
<a-icon slot="prefix" style="color: rgba(0, 0, 0, 0.25)" type="safety-certificate" />
<a slot="addonAfter" href="javascript:void(0);" @click="handleSendCode"> </a>
<template #addonAfter>
<a-button class="!p-0 !h-auto" type="link" @click="handleSendCode"></a-button>
</template>
</a-input>
</a-form-model-item>
<a-form-model-item prop="password">
@ -43,7 +45,7 @@
<a-button :block="true" type="primary" @click="handleResetPassword"></a-button>
</a-form-model-item>
</a-form-model>
<router-link :to="{ name: 'Login' }" class="tip"> 返回登录 </router-link>
<router-link :to="{ name: 'Login' }" class="tip"> 返回登录</router-link>
</div>
</div>
</template>