mirror of https://github.com/halo-dev/halo
fix: prevent duplicate data.
parent
59d088dc4d
commit
dbd1fc014d
|
@ -45,10 +45,12 @@
|
||||||
<a-button
|
<a-button
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleSaveDraft"
|
@click="handleSaveDraft"
|
||||||
|
:disabled="saving"
|
||||||
>保存草稿</a-button>
|
>保存草稿</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
@click="handlePreview"
|
@click="handlePreview"
|
||||||
style="margin-left: 8px;"
|
style="margin-left: 8px;"
|
||||||
|
:disabled="saving"
|
||||||
>预览</a-button>
|
>预览</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -95,7 +97,8 @@ export default {
|
||||||
selectedCategoryIds: [],
|
selectedCategoryIds: [],
|
||||||
selectedPostMetas: [],
|
selectedPostMetas: [],
|
||||||
isSaved: false,
|
isSaved: false,
|
||||||
contentChanges: 0
|
contentChanges: 0,
|
||||||
|
saving: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeRouteEnter(to, from, next) {
|
beforeRouteEnter(to, from, next) {
|
||||||
|
@ -177,11 +180,13 @@ export default {
|
||||||
if (!this.postToStage.title) {
|
if (!this.postToStage.title) {
|
||||||
this.postToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
this.postToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
||||||
}
|
}
|
||||||
|
this.saving = true
|
||||||
if (this.postToStage.id) {
|
if (this.postToStage.id) {
|
||||||
// Update the post
|
// Update the post
|
||||||
postApi.update(this.postToStage.id, this.postToStage, false).then(response => {
|
postApi.update(this.postToStage.id, this.postToStage, false).then(response => {
|
||||||
this.$log.debug('Updated post', response.data.data)
|
this.$log.debug('Updated post', response.data.data)
|
||||||
this.$message.success('保存草稿成功!')
|
this.$message.success('保存草稿成功!')
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
// Create the post
|
// Create the post
|
||||||
|
@ -189,6 +194,7 @@ export default {
|
||||||
this.$log.debug('Created post', response.data.data)
|
this.$log.debug('Created post', response.data.data)
|
||||||
this.$message.success('保存草稿成功!')
|
this.$message.success('保存草稿成功!')
|
||||||
this.postToStage = response.data.data
|
this.postToStage = response.data.data
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -215,12 +221,14 @@ export default {
|
||||||
if (!this.postToStage.title) {
|
if (!this.postToStage.title) {
|
||||||
this.postToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
this.postToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
||||||
}
|
}
|
||||||
|
this.saving = true
|
||||||
if (this.postToStage.id) {
|
if (this.postToStage.id) {
|
||||||
// Update the post
|
// Update the post
|
||||||
postApi.update(this.postToStage.id, this.postToStage, false).then(response => {
|
postApi.update(this.postToStage.id, this.postToStage, false).then(response => {
|
||||||
this.$log.debug('Updated post', response.data.data)
|
this.$log.debug('Updated post', response.data.data)
|
||||||
postApi.preview(this.postToStage.id).then(response => {
|
postApi.preview(this.postToStage.id).then(response => {
|
||||||
window.open(response.data, '_blank')
|
window.open(response.data, '_blank')
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
@ -230,6 +238,7 @@ export default {
|
||||||
this.postToStage = response.data.data
|
this.postToStage = response.data.data
|
||||||
postApi.preview(this.postToStage.id).then(response => {
|
postApi.preview(this.postToStage.id).then(response => {
|
||||||
window.open(response.data, '_blank')
|
window.open(response.data, '_blank')
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,16 +228,19 @@
|
||||||
style="marginRight: 8px"
|
style="marginRight: 8px"
|
||||||
@click="handleDraftClick"
|
@click="handleDraftClick"
|
||||||
v-if="saveDraftButton"
|
v-if="saveDraftButton"
|
||||||
|
:disabled="saving"
|
||||||
>保存草稿</a-button>
|
>保存草稿</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
@click="handlePublishClick"
|
@click="handlePublishClick"
|
||||||
type="primary"
|
type="primary"
|
||||||
v-if="savePublishButton"
|
v-if="savePublishButton"
|
||||||
|
:disabled="saving"
|
||||||
>发布</a-button>
|
>发布</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
@click="handlePublishClick"
|
@click="handlePublishClick"
|
||||||
type="primary"
|
type="primary"
|
||||||
v-if="saveButton"
|
v-if="saveButton"
|
||||||
|
:disabled="saving"
|
||||||
>保存</a-button>
|
>保存</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
|
@ -272,7 +275,8 @@ export default {
|
||||||
selectedCategoryIds: this.categoryIds,
|
selectedCategoryIds: this.categoryIds,
|
||||||
categories: [],
|
categories: [],
|
||||||
categoryToCreate: {},
|
categoryToCreate: {},
|
||||||
customTpls: []
|
customTpls: [],
|
||||||
|
saving: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -449,13 +453,14 @@ export default {
|
||||||
this.selectedPost.tagIds = this.selectedTagIds
|
this.selectedPost.tagIds = this.selectedTagIds
|
||||||
// Set post metas
|
// Set post metas
|
||||||
this.selectedPost.postMetas = this.selectedPostMetas
|
this.selectedPost.postMetas = this.selectedPostMetas
|
||||||
|
this.saving = true
|
||||||
if (this.selectedPost.id) {
|
if (this.selectedPost.id) {
|
||||||
// Update the post
|
// Update the post
|
||||||
postApi.update(this.selectedPost.id, this.selectedPost, autoSave).then(response => {
|
postApi.update(this.selectedPost.id, this.selectedPost, autoSave).then(response => {
|
||||||
this.$log.debug('Updated post', response.data.data)
|
this.$log.debug('Updated post', response.data.data)
|
||||||
if (updateSuccess) {
|
if (updateSuccess) {
|
||||||
updateSuccess()
|
updateSuccess()
|
||||||
|
this.saving = false
|
||||||
this.$emit('onSaved', true)
|
this.$emit('onSaved', true)
|
||||||
this.$router.push({ name: 'PostList' })
|
this.$router.push({ name: 'PostList' })
|
||||||
}
|
}
|
||||||
|
@ -466,6 +471,7 @@ export default {
|
||||||
this.$log.debug('Created post', response.data.data)
|
this.$log.debug('Created post', response.data.data)
|
||||||
if (createSuccess) {
|
if (createSuccess) {
|
||||||
createSuccess()
|
createSuccess()
|
||||||
|
this.saving = false
|
||||||
this.$emit('onSaved', true)
|
this.$emit('onSaved', true)
|
||||||
this.$router.push({ name: 'PostList' })
|
this.$router.push({ name: 'PostList' })
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,10 +39,12 @@
|
||||||
<a-button
|
<a-button
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleSaveDraft"
|
@click="handleSaveDraft"
|
||||||
|
:disabled="saving"
|
||||||
>保存草稿</a-button>
|
>保存草稿</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
@click="handlePreview"
|
@click="handlePreview"
|
||||||
style="margin-left: 8px;"
|
style="margin-left: 8px;"
|
||||||
|
:disabled="saving"
|
||||||
>预览</a-button>
|
>预览</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -86,7 +88,8 @@ export default {
|
||||||
sheetToStage: {},
|
sheetToStage: {},
|
||||||
selectedSheetMetas: [],
|
selectedSheetMetas: [],
|
||||||
isSaved: false,
|
isSaved: false,
|
||||||
contentChanges: 0
|
contentChanges: 0,
|
||||||
|
saving: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeRouteEnter(to, from, next) {
|
beforeRouteEnter(to, from, next) {
|
||||||
|
@ -163,6 +166,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
handleSaveDraft() {
|
handleSaveDraft() {
|
||||||
this.sheetToStage.status = 'DRAFT'
|
this.sheetToStage.status = 'DRAFT'
|
||||||
|
this.saving = true
|
||||||
if (!this.sheetToStage.title) {
|
if (!this.sheetToStage.title) {
|
||||||
this.sheetToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
this.sheetToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
||||||
}
|
}
|
||||||
|
@ -170,12 +174,14 @@ export default {
|
||||||
sheetApi.update(this.sheetToStage.id, this.sheetToStage, false).then(response => {
|
sheetApi.update(this.sheetToStage.id, this.sheetToStage, false).then(response => {
|
||||||
this.$log.debug('Updated sheet', response.data.data)
|
this.$log.debug('Updated sheet', response.data.data)
|
||||||
this.$message.success('保存草稿成功!')
|
this.$message.success('保存草稿成功!')
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
sheetApi.create(this.sheetToStage, false).then(response => {
|
sheetApi.create(this.sheetToStage, false).then(response => {
|
||||||
this.$log.debug('Created sheet', response.data.data)
|
this.$log.debug('Created sheet', response.data.data)
|
||||||
this.$message.success('保存草稿成功!')
|
this.$message.success('保存草稿成功!')
|
||||||
this.sheetToStage = response.data.data
|
this.sheetToStage = response.data.data
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -202,14 +208,13 @@ export default {
|
||||||
if (!this.sheetToStage.title) {
|
if (!this.sheetToStage.title) {
|
||||||
this.sheetToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
this.sheetToStage.title = moment(new Date()).format('YYYY-MM-DD-HH-mm-ss')
|
||||||
}
|
}
|
||||||
if (!this.sheetToStage.originalContent) {
|
this.saving = true
|
||||||
this.sheetToStage.originalContent = '开始编辑...'
|
|
||||||
}
|
|
||||||
if (this.sheetToStage.id) {
|
if (this.sheetToStage.id) {
|
||||||
sheetApi.update(this.sheetToStage.id, this.sheetToStage, false).then(response => {
|
sheetApi.update(this.sheetToStage.id, this.sheetToStage, false).then(response => {
|
||||||
this.$log.debug('Updated sheet', response.data.data)
|
this.$log.debug('Updated sheet', response.data.data)
|
||||||
sheetApi.preview(this.sheetToStage.id).then(response => {
|
sheetApi.preview(this.sheetToStage.id).then(response => {
|
||||||
window.open(response.data, '_blank')
|
window.open(response.data, '_blank')
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
@ -218,6 +223,7 @@ export default {
|
||||||
this.sheetToStage = response.data.data
|
this.sheetToStage = response.data.data
|
||||||
sheetApi.preview(this.sheetToStage.id).then(response => {
|
sheetApi.preview(this.sheetToStage.id).then(response => {
|
||||||
window.open(response.data, '_blank')
|
window.open(response.data, '_blank')
|
||||||
|
this.saving = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,10 +131,12 @@
|
||||||
<a-button
|
<a-button
|
||||||
style="marginRight: 8px"
|
style="marginRight: 8px"
|
||||||
@click="handleDraftClick"
|
@click="handleDraftClick"
|
||||||
|
:disabled="saving"
|
||||||
>保存草稿</a-button>
|
>保存草稿</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handlePublishClick"
|
@click="handlePublishClick"
|
||||||
|
:disabled="saving"
|
||||||
>发布</a-button>
|
>发布</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
|
@ -157,7 +159,8 @@ export default {
|
||||||
thumbDrawerVisible: false,
|
thumbDrawerVisible: false,
|
||||||
settingLoading: true,
|
settingLoading: true,
|
||||||
selectedSheet: this.sheet,
|
selectedSheet: this.sheet,
|
||||||
customTpls: []
|
customTpls: [],
|
||||||
|
saving: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -272,11 +275,13 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.selectedSheet.sheetMetas = this.selectedSheetMetas
|
this.selectedSheet.sheetMetas = this.selectedSheetMetas
|
||||||
|
this.saving = true
|
||||||
if (this.selectedSheet.id) {
|
if (this.selectedSheet.id) {
|
||||||
sheetApi.update(this.selectedSheet.id, this.selectedSheet, autoSave).then(response => {
|
sheetApi.update(this.selectedSheet.id, this.selectedSheet, autoSave).then(response => {
|
||||||
this.$log.debug('Updated sheet', response.data.data)
|
this.$log.debug('Updated sheet', response.data.data)
|
||||||
if (updateSuccess) {
|
if (updateSuccess) {
|
||||||
updateSuccess()
|
updateSuccess()
|
||||||
|
this.saving = false
|
||||||
this.$emit('onSaved', true)
|
this.$emit('onSaved', true)
|
||||||
this.$router.push({ name: 'SheetList' })
|
this.$router.push({ name: 'SheetList' })
|
||||||
}
|
}
|
||||||
|
@ -286,6 +291,7 @@ export default {
|
||||||
this.$log.debug('Created sheet', response.data.data)
|
this.$log.debug('Created sheet', response.data.data)
|
||||||
if (createSuccess) {
|
if (createSuccess) {
|
||||||
createSuccess()
|
createSuccess()
|
||||||
|
this.saving = false
|
||||||
this.$emit('onSaved', true)
|
this.$emit('onSaved', true)
|
||||||
this.$router.push({ name: 'SheetList' })
|
this.$router.push({ name: 'SheetList' })
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue