Ver Fonte

fix(announcement): 修复分类权限检查并优化分类选项加载逻辑

yz há 1 mês atrás
pai
commit
4211a9a59d
2 ficheiros alterados com 25 adições e 7 exclusões
  1. 1 2
      src/views/announcement/category.vue
  2. 24 5
      src/views/announcement/index.vue

+ 1 - 2
src/views/announcement/category.vue

@@ -262,8 +262,7 @@ export default {
      */
     permissionList() {
       return {
-        // addBtn: this.vaildData(this.permission.category_add, false),
-        addBtn: true,
+        addBtn: this.vaildData(this.permission.category_add, false),
         viewBtn: this.vaildData(this.permission.category_view, false),
         delBtn: this.vaildData(this.permission.category_delete, false),
         editBtn: this.vaildData(this.permission.category_edit, false)

+ 24 - 5
src/views/announcement/index.vue

@@ -310,18 +310,37 @@ export default {
         async loadCategoryOptions() {
             try {
                 const res = await getCategoryList();
-                this.categoryOptions = res.data.data || [];
+                // 根据新接口返回的数据结构进行转换
+                const categoryData = res.data.data || [];
+                
+                // 将接口返回的数据转换为页面所需的格式
+                this.categoryOptions = categoryData
+                    .filter(item => item.status === 1 && item.isDeleted === 0) // 只显示启用且未删除的分类
+                    .map(item => ({
+                        id: item.id,
+                        name: item.name,
+                        categoryName: item.name, // 兼容原有字段名
+                        value: item.id,
+                        label: item.name,
+                        orgId: item.orgId,
+                        orgName: item.orgName,
+                        isSystem: item.isSystem,
+                        sortOrder: item.sortOrder
+                    }))
+                    .sort((a, b) => a.sortOrder - b.sortOrder); // 按排序字段排序
+                
                 const categoryColumn = this.option.column.find(col => col.prop === 'categoryId');
                 if (categoryColumn) {
                     categoryColumn.dicData = this.categoryOptions;
                 }
             } catch (error) {
+                console.error('加载分类选项失败:', error);
                 // 如果接口不存在,使用模拟数据
                 this.categoryOptions = [
-                    { id: 1, categoryName: '系统公告', value: 1, label: '系统公告' },
-                    { id: 2, categoryName: '产品公告', value: 2, label: '产品公告' },
-                    { id: 3, categoryName: '活动公告', value: 3, label: '活动公告' },
-                    { id: 4, categoryName: '维护公告', value: 4, label: '维护公告' }
+                    { id: 1, name: '系统公告', categoryName: '系统公告', value: 1, label: '系统公告', isSystem: 1, sortOrder: 0 },
+                    { id: 2, name: '产品公告', categoryName: '产品公告', value: 2, label: '产品公告', isSystem: 0, sortOrder: 1 },
+                    { id: 3, name: '活动公告', categoryName: '活动公告', value: 3, label: '活动公告', isSystem: 0, sortOrder: 2 },
+                    { id: 4, name: '维护公告', categoryName: '维护公告', value: 4, label: '维护公告', isSystem: 0, sortOrder: 3 }
                 ];
                 const categoryColumn = this.option.column.find(col => col.prop === 'categoryId');
                 if (categoryColumn) {