|
@@ -125,9 +125,10 @@
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<el-select
|
|
<el-select
|
|
|
v-if="scope.row.isEditing"
|
|
v-if="scope.row.isEditing"
|
|
|
- v-model="scope.row.categoryId"
|
|
|
|
|
|
|
+ v-model="scope.row.categoryIds"
|
|
|
placeholder="请选择分类"
|
|
placeholder="请选择分类"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
|
|
+ multiple
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="category in categories"
|
|
v-for="category in categories"
|
|
@@ -136,7 +137,10 @@
|
|
|
:value="category.id"
|
|
:value="category.id"
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
- <el-tag v-else>{{ scope.row.categoryName }}</el-tag>
|
|
|
|
|
|
|
+ <!-- <el-tag v-else>{{ scope.row.categoryNames }}</el-tag> -->
|
|
|
|
|
+ <el-tag v-else v-for="(name, index) in scope.row.categoryNames" :key="index" style="margin-right: 5px">
|
|
|
|
|
+ {{ name }}
|
|
|
|
|
+ </el-tag>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column prop="digest" label="摘要" min-width="300">
|
|
<el-table-column prop="digest" label="摘要" min-width="300">
|
|
@@ -307,7 +311,7 @@ const exportReportTemplateRef = ref<InstanceType<typeof oneClickExportReportTemp
|
|
|
interface EditableNewsItem extends NewsItem {
|
|
interface EditableNewsItem extends NewsItem {
|
|
|
isEditing?: boolean
|
|
isEditing?: boolean
|
|
|
originalData?: {
|
|
originalData?: {
|
|
|
- categoryId: number
|
|
|
|
|
|
|
+ categoryIds: number[]
|
|
|
categoryName: string
|
|
categoryName: string
|
|
|
digest: string
|
|
digest: string
|
|
|
}
|
|
}
|
|
@@ -455,8 +459,7 @@ const saveNewsField = async (news: EditableNewsItem, field?: string) => {
|
|
|
// 如果没有指定字段,保存所有字段
|
|
// 如果没有指定字段,保存所有字段
|
|
|
const updates: Partial<NewsItem> = field
|
|
const updates: Partial<NewsItem> = field
|
|
|
? { [field]: news[field as keyof NewsItem] }
|
|
? { [field]: news[field as keyof NewsItem] }
|
|
|
- : { categoryId: news.categoryId, digest: news.digest, articleId: news.articleId }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ : { categoryIds: news.categoryIds ? Object.values(news.categoryIds) : [], digest: news.digest, articleId: news.articleId }
|
|
|
// 更新资讯
|
|
// 更新资讯
|
|
|
await newsApi.updateNews(updates)
|
|
await newsApi.updateNews(updates)
|
|
|
ElMessage.success('资讯更新成功')
|
|
ElMessage.success('资讯更新成功')
|
|
@@ -465,7 +468,7 @@ const saveNewsField = async (news: EditableNewsItem, field?: string) => {
|
|
|
if (!field) {
|
|
if (!field) {
|
|
|
news.isEditing = false
|
|
news.isEditing = false
|
|
|
// 更新本地列表中的分类名称
|
|
// 更新本地列表中的分类名称
|
|
|
- const category = categories.value.find((c) => c.id === news.categoryId)
|
|
|
|
|
|
|
+ const category = categories.value.find((c) => c.id === news.categoryIds)
|
|
|
if (category) {
|
|
if (category) {
|
|
|
news.categoryName = category.name
|
|
news.categoryName = category.name
|
|
|
}
|
|
}
|
|
@@ -601,7 +604,7 @@ const handleCurrentChange = (val: number) => {
|
|
|
const startEditing = (news: EditableNewsItem) => {
|
|
const startEditing = (news: EditableNewsItem) => {
|
|
|
// 保存原始数据用于取消编辑
|
|
// 保存原始数据用于取消编辑
|
|
|
news.originalData = {
|
|
news.originalData = {
|
|
|
- categoryId: news.categoryId,
|
|
|
|
|
|
|
+ categoryIds: news.categoryIds,
|
|
|
categoryName: news.categoryName,
|
|
categoryName: news.categoryName,
|
|
|
digest: news.digest,
|
|
digest: news.digest,
|
|
|
}
|
|
}
|
|
@@ -611,7 +614,7 @@ const startEditing = (news: EditableNewsItem) => {
|
|
|
const cancelEditing = (news: EditableNewsItem) => {
|
|
const cancelEditing = (news: EditableNewsItem) => {
|
|
|
// 恢复原始数据
|
|
// 恢复原始数据
|
|
|
if (news.originalData) {
|
|
if (news.originalData) {
|
|
|
- news.categoryId = news.originalData.categoryId
|
|
|
|
|
|
|
+ news.categoryIds = news.originalData.categoryIds
|
|
|
news.categoryName = news.originalData.categoryName
|
|
news.categoryName = news.originalData.categoryName
|
|
|
news.digest = news.originalData.digest
|
|
news.digest = news.originalData.digest
|
|
|
}
|
|
}
|