|
|
@@ -24,31 +24,31 @@
|
|
|
<el-option label="全部分类" value="" />
|
|
|
<el-option v-for="cat in categories" :key="cat.id" :label="cat.name" :value="cat.id" />
|
|
|
</el-select>
|
|
|
- <el-select v-model="filters.contentType" placeholder="内容类型" clearable @change="loadList" style="width: 130px;">
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option label="文章" value="article" />
|
|
|
- <el-option label="知识点" value="knowledge" />
|
|
|
- <el-option label="课程" value="course" />
|
|
|
- <el-option label="贴士" value="tip" />
|
|
|
- </el-select>
|
|
|
- <el-select v-model="filters.difficultyLevel" placeholder="难度" clearable @change="loadList" style="width: 100px;">
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option label="1星" value="1" />
|
|
|
- <el-option label="2星" value="2" />
|
|
|
- <el-option label="3星" value="3" />
|
|
|
- <el-option label="4星" value="4" />
|
|
|
- <el-option label="5星" value="5" />
|
|
|
- </el-select>
|
|
|
- <el-select v-model="filters.dimensionCode" placeholder="维度" clearable @change="loadList" style="width: 100px;">
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option label="身" value="body" />
|
|
|
- <el-option label="心" value="mind" />
|
|
|
- <el-option label="智" value="wisdom" />
|
|
|
- <el-option label="行" value="action" />
|
|
|
- <el-option label="富" value="wealth" />
|
|
|
- </el-select>
|
|
|
- <el-select v-model="filters.tagId" placeholder="知识标签" clearable @change="loadList" style="width: 150px;" filterable>
|
|
|
- <el-option label="全部" value="" />
|
|
|
+ <el-select v-model="filters.contentType" placeholder="内容类型" clearable @change="loadList" style="width: 130px;">
|
|
|
+ <el-option label="全部类型" value="" />
|
|
|
+ <el-option label="文章" value="article" />
|
|
|
+ <el-option label="知识点" value="knowledge" />
|
|
|
+ <el-option label="课程" value="course" />
|
|
|
+ <el-option label="贴士" value="tip" />
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="filters.difficultyLevel" placeholder="难度" clearable @change="loadList" style="width: 100px;">
|
|
|
+ <el-option label="全部难度" value="" />
|
|
|
+ <el-option label="1星" value="1" />
|
|
|
+ <el-option label="2星" value="2" />
|
|
|
+ <el-option label="3星" value="3" />
|
|
|
+ <el-option label="4星" value="4" />
|
|
|
+ <el-option label="5星" value="5" />
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="filters.dimensionCode" placeholder="维度" clearable @change="loadList" style="width: 100px;">
|
|
|
+ <el-option label="全部维度" value="" />
|
|
|
+ <el-option label="身" value="body" />
|
|
|
+ <el-option label="心" value="mind" />
|
|
|
+ <el-option label="智" value="wisdom" />
|
|
|
+ <el-option label="行" value="action" />
|
|
|
+ <el-option label="富" value="wealth" />
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="filters.tagId" placeholder="知识标签" clearable @change="loadList" style="width: 150px;" filterable>
|
|
|
+ <el-option label="全部标签" value="" />
|
|
|
<el-option v-for="tag in tagOptions" :key="tag.id" :label="tag.name" :value="tag.id" />
|
|
|
</el-select>
|
|
|
<el-input v-model="filters.keyword" placeholder="搜索文章标题..." clearable style="width: 220px;" @keyup.enter.native="loadList" />
|
|
|
@@ -344,48 +344,53 @@ export default {
|
|
|
},
|
|
|
async handlePublishDirect(row) {
|
|
|
try {
|
|
|
+ await this.$confirm('确认发布该文章?', '提示')
|
|
|
await adminArticlePublish({ id: row.id, status: 'published' })
|
|
|
this.$message.success('文章已发布')
|
|
|
this.loadList()
|
|
|
} catch (e) {
|
|
|
- this.$message.error(e.message || '发布失败')
|
|
|
+ if (e !== 'cancel') this.$message.error(e.message || '发布失败')
|
|
|
}
|
|
|
},
|
|
|
async handleSubmitReview(row) {
|
|
|
try {
|
|
|
+ await this.$confirm('确认提交审核?', '提示')
|
|
|
await adminArticleSubmitReview({ id: row.id })
|
|
|
this.$message.success('已提交审核')
|
|
|
this.loadList()
|
|
|
} catch (e) {
|
|
|
- this.$message.error(e.message || '提交审核失败')
|
|
|
+ if (e !== 'cancel') this.$message.error(e.message || '提交审核失败')
|
|
|
}
|
|
|
},
|
|
|
async handleWithdraw(row) {
|
|
|
try {
|
|
|
+ await this.$confirm('确认下架该文章?', '提示')
|
|
|
await adminArticleWithdraw({ id: row.id })
|
|
|
this.$message.success('文章已下架')
|
|
|
this.loadList()
|
|
|
} catch (e) {
|
|
|
- this.$message.error(e.message || '下架失败')
|
|
|
+ if (e !== 'cancel') this.$message.error(e.message || '下架失败')
|
|
|
}
|
|
|
},
|
|
|
async handleReDraft(row) {
|
|
|
try {
|
|
|
+ await this.$confirm('确认移回草稿箱?', '提示')
|
|
|
await adminArticleReDraft({ id: row.id })
|
|
|
this.$message.success('已保存到草稿箱')
|
|
|
this.loadList()
|
|
|
} catch (e) {
|
|
|
- this.$message.error(e.message || '操作失败')
|
|
|
+ if (e !== 'cancel') this.$message.error(e.message || '操作失败')
|
|
|
}
|
|
|
},
|
|
|
async handleToggleFeatured(row) {
|
|
|
try {
|
|
|
const newVal = row.isFeatured === 1 || row.isFeatured === true ? 0 : 1
|
|
|
+ await this.$confirm(newVal ? '确认设为精选?' : '确认取消精选?', '提示')
|
|
|
await adminArticleToggleFeatured({ id: row.id, isFeatured: newVal })
|
|
|
this.$message.success(newVal ? '已设为精选' : '已取消精选')
|
|
|
this.loadList()
|
|
|
} catch (e) {
|
|
|
- this.$message.error(e.message || '操作失败')
|
|
|
+ if (e !== 'cancel') this.$message.error(e.message || '操作失败')
|
|
|
}
|
|
|
},
|
|
|
handleDelete(row) {
|