mirror of https://github.com/halo-dev/halo
pull/3445/head
parent
737c1030a8
commit
c06c9c6abe
|
@ -292,15 +292,24 @@
|
|||
loadedText="保存成功"
|
||||
erroredText="保存失败"
|
||||
></ReactiveButton>
|
||||
<ReactiveButton
|
||||
@click="handlePublishClick"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="saving"
|
||||
:errored="savedErrored"
|
||||
:text="`${selectedPost.id?'保存':'发布'}`"
|
||||
:loadedText="`${selectedPost.id?'保存':'发布'}成功`"
|
||||
:erroredText="`${selectedPost.id?'保存':'发布'}失败`"
|
||||
></ReactiveButton>
|
||||
<a-popconfirm
|
||||
title="是否同时更新发布时间为当前时间?"
|
||||
ok-text="更新"
|
||||
cancel-text="不更新"
|
||||
@confirm="handlePublishClick(true)"
|
||||
@cancel="handlePublishClick(false)"
|
||||
:disabled="selectedPost.status !== 'DRAFT'"
|
||||
>
|
||||
<ReactiveButton
|
||||
@click="selectedPost.status !== 'DRAFT'?handlePublishClick(false):()=>{}"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="saving"
|
||||
:errored="savedErrored"
|
||||
:text="`${selectedPost.id?'保存':'发布'}`"
|
||||
:loadedText="`${selectedPost.id?'保存':'发布'}成功`"
|
||||
:erroredText="`${selectedPost.id?'保存':'发布'}失败`"
|
||||
></ReactiveButton>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
</div>
|
||||
</a-drawer>
|
||||
|
@ -329,7 +338,7 @@ export default {
|
|||
components: {
|
||||
CategoryTree,
|
||||
CategorySelectTree,
|
||||
TagSelect
|
||||
TagSelect,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -345,41 +354,41 @@ export default {
|
|||
saving: false,
|
||||
savedErrored: false,
|
||||
draftSaving: false,
|
||||
draftSavedErrored: false
|
||||
draftSavedErrored: false,
|
||||
}
|
||||
},
|
||||
props: {
|
||||
post: {
|
||||
type: Object,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
tagIds: {
|
||||
type: Array,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
categoryIds: {
|
||||
type: Array,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
metas: {
|
||||
type: Array,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
needTitle: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
saveDraftButton: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: true
|
||||
default: true,
|
||||
},
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: true
|
||||
}
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
post(val) {
|
||||
|
@ -402,7 +411,7 @@ export default {
|
|||
},
|
||||
selectedMetas(val) {
|
||||
this.$emit('onRefreshPostMetas', val)
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['options']),
|
||||
|
@ -441,7 +450,7 @@ export default {
|
|||
default:
|
||||
return ''
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleAfterVisibleChanged(visible) {
|
||||
|
@ -465,7 +474,7 @@ export default {
|
|||
for (let i = 0, len = fields.length; i < len; i++) {
|
||||
this.selectedMetas.push({
|
||||
value: '',
|
||||
key: fields[i]
|
||||
key: fields[i],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -485,7 +494,7 @@ export default {
|
|||
if (!this.categoryToCreate.name) {
|
||||
this.$notification['error']({
|
||||
message: '提示',
|
||||
description: '分类名称不能为空!'
|
||||
description: '分类名称不能为空!',
|
||||
})
|
||||
return
|
||||
}
|
||||
|
@ -503,8 +512,8 @@ export default {
|
|||
this.selectedPost.status = 'DRAFT'
|
||||
this.createOrUpdatePost()
|
||||
},
|
||||
handlePublishClick() {
|
||||
if (this.selectedPost.status === 'DRAFT') {
|
||||
handlePublishClick(refreshCreateTime = false) {
|
||||
if (refreshCreateTime) {
|
||||
this.selectedPost.createTime = new Date()
|
||||
}
|
||||
this.selectedPost.status = 'PUBLISHED'
|
||||
|
@ -514,7 +523,7 @@ export default {
|
|||
if (!this.selectedPost.title) {
|
||||
this.$notification['error']({
|
||||
message: '提示',
|
||||
description: '文章标题不能为空!'
|
||||
description: '文章标题不能为空!',
|
||||
})
|
||||
return
|
||||
}
|
||||
|
@ -595,7 +604,7 @@ export default {
|
|||
handleInsertPostMeta() {
|
||||
this.selectedMetas.push({
|
||||
value: '',
|
||||
key: ''
|
||||
key: '',
|
||||
})
|
||||
},
|
||||
handleSetPinyinSlug() {
|
||||
|
@ -604,7 +613,7 @@ export default {
|
|||
this.$set(this.selectedPost, 'slug', pinyin.convertToPinyin(this.selectedPost.title, '-', true))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -208,21 +208,30 @@
|
|||
loadedText="保存成功"
|
||||
erroredText="保存失败"
|
||||
></ReactiveButton>
|
||||
<ReactiveButton
|
||||
@click="handlePublishClick"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="saving"
|
||||
:errored="savedErrored"
|
||||
:text="`${selectedSheet.id?'保存':'发布'}`"
|
||||
:loadedText="`${selectedSheet.id?'保存':'发布'}成功`"
|
||||
:erroredText="`${selectedSheet.id?'保存':'发布'}失败`"
|
||||
></ReactiveButton>
|
||||
|
||||
<a-popconfirm
|
||||
title="是否同时更新发布时间为当前时间?"
|
||||
ok-text="更新"
|
||||
cancel-text="不更新"
|
||||
@confirm="handlePublishClick(true)"
|
||||
@cancel="handlePublishClick(false)"
|
||||
:disabled="selectedSheet.status !== 'DRAFT'"
|
||||
>
|
||||
<ReactiveButton
|
||||
@click="selectedSheet.status !== 'DRAFT'?handlePublishClick(false):()=>{}"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="saving"
|
||||
:errored="savedErrored"
|
||||
:text="`${selectedSheet.id?'保存':'发布'}`"
|
||||
:loadedText="`${selectedSheet.id?'保存':'发布'}成功`"
|
||||
:erroredText="`${selectedSheet.id?'保存':'发布'}失败`"
|
||||
></ReactiveButton>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
// libs
|
||||
import { mixin, mixinDevice } from '@/utils/mixin.js'
|
||||
import moment from 'moment'
|
||||
|
@ -245,33 +254,33 @@ export default {
|
|||
saving: false,
|
||||
savedErrored: false,
|
||||
draftSaving: false,
|
||||
draftSavedErrored: false
|
||||
draftSavedErrored: false,
|
||||
}
|
||||
},
|
||||
props: {
|
||||
sheet: {
|
||||
type: Object,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
metas: {
|
||||
type: Array,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
needTitle: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
saveDraftButton: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: true
|
||||
default: true,
|
||||
},
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: true
|
||||
}
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
sheet(val) {
|
||||
|
@ -282,7 +291,7 @@ export default {
|
|||
},
|
||||
selectedMetas(val) {
|
||||
this.$emit('onRefreshSheetMetas', val)
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['options']),
|
||||
|
@ -301,7 +310,7 @@ export default {
|
|||
const sheetPrefix = this.options.sheet_prefix
|
||||
const pathSuffix = this.options.path_suffix ? this.options.path_suffix : ''
|
||||
return `${blogUrl}/${sheetPrefix}/${this.selectedSheet.slug ? this.selectedSheet.slug : '{slug}'}${pathSuffix}`
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleAfterVisibleChanged(visible) {
|
||||
|
@ -313,13 +322,13 @@ export default {
|
|||
},
|
||||
handleListPresetMetasField() {
|
||||
if (this.metas.length <= 0) {
|
||||
themeApi.getActivatedTheme().then(response => {
|
||||
themeApi.getActivatedTheme().then((response) => {
|
||||
const fields = response.data.data.sheetMetaField
|
||||
if (fields && fields.length > 0) {
|
||||
for (let i = 0, len = fields.length; i < len; i++) {
|
||||
this.selectedMetas.push({
|
||||
value: '',
|
||||
key: fields[i]
|
||||
key: fields[i],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -330,7 +339,7 @@ export default {
|
|||
this.customTplsLoading = true
|
||||
themeApi
|
||||
.customSheetTpls()
|
||||
.then(response => {
|
||||
.then((response) => {
|
||||
this.customTpls = response.data.data
|
||||
})
|
||||
.finally(() => {
|
||||
|
@ -343,7 +352,10 @@ export default {
|
|||
this.selectedSheet.thumbnail = encodeURI(data.path)
|
||||
this.thumbDrawerVisible = false
|
||||
},
|
||||
handlePublishClick() {
|
||||
handlePublishClick(refreshCreateTime = false) {
|
||||
if (refreshCreateTime) {
|
||||
this.selectedSheet.createTime = new Date()
|
||||
}
|
||||
this.selectedSheet.status = 'PUBLISHED'
|
||||
this.createOrUpdateSheet()
|
||||
},
|
||||
|
@ -355,7 +367,7 @@ export default {
|
|||
if (!this.selectedSheet.title) {
|
||||
this.$notification['error']({
|
||||
message: '提示',
|
||||
description: '页面标题不能为空!'
|
||||
description: '页面标题不能为空!',
|
||||
})
|
||||
return
|
||||
}
|
||||
|
@ -391,7 +403,7 @@ export default {
|
|||
this.savedErrored = true
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
.then((response) => {
|
||||
this.selectedSheet = response.data.data
|
||||
})
|
||||
.finally(() => {
|
||||
|
@ -429,7 +441,7 @@ export default {
|
|||
handleInsertSheetMeta() {
|
||||
this.selectedMetas.push({
|
||||
value: '',
|
||||
key: ''
|
||||
key: '',
|
||||
})
|
||||
},
|
||||
handleSetPinyinSlug() {
|
||||
|
@ -438,7 +450,7 @@ export default {
|
|||
this.$set(this.selectedSheet, 'slug', pinyin.convertToPinyin(this.selectedSheet.title, '-', true))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue