Browse Source

咨询管理-列表展示-分类支持多选

xiexiang 1 week ago
parent
commit
7dba8bcf2f
1 changed files with 11 additions and 8 deletions
  1. 11 8
      src/views/news/NewsList.vue

+ 11 - 8
src/views/news/NewsList.vue

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