소스 검색

feat(enterprise): 为我的足迹页面添加分页功能

- 引入 TablePagination 组件实现分页显示
- 添加 queryParams 响应式数据管理分页参数
- 计算总记录数并绑定到分页组件
- 实现 handleQuery 方法处理分页查询
- 优化足迹列表按日期降序排序逻辑

refactor(organization): 移除角色管理中的权限字符字段

- 删除角色表格中的权限字符列显示
- 移除表单中的权限字符输入项
- 更新表单验证规则,移除对权限字符的必填校验
- 简化角色管理界面字段配置
肖路 1 개월 전
부모
커밋
6c88cb0f2a
2개의 변경된 파일21개의 추가작업 그리고 12개의 파일을 삭제
  1. 20 6
      src/views/enterprise/myFootprint/index.vue
  2. 1 6
      src/views/organization/roleManage/index.vue

+ 20 - 6
src/views/enterprise/myFootprint/index.vue

@@ -18,16 +18,25 @@
       </div>
     </div>
     <el-empty v-if="footprintGroups.length === 0" description="暂无浏览足迹" />
+    <TablePagination
+      v-if="footprintGroups.length > 0"
+      v-model:page="queryParams.pageNum"
+      v-model:page-size="queryParams.pageSize"
+      :total="total"
+      @change="handleQuery"
+    />
   </div>
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted } from 'vue';
+import { ref, reactive, onMounted } from 'vue';
 import { Delete } from '@element-plus/icons-vue';
 import { ElMessage, ElMessageBox } from 'element-plus';
-import { PageTitle, ProductCard } from '@/components';
+import { PageTitle, ProductCard, TablePagination } from '@/components';
 import { browsingHistoryList, deleteProductBrowsingHistory } from '@/api/goods/index';
 
+const queryParams = reactive({ pageNum: 1, pageSize: 20 });
+const total = ref(0);
 const loading = ref(false);
 const footprintGroups = ref<any[]>([]);
 
@@ -59,10 +68,10 @@ const getFootprintList = () => {
         // 后端返回的是 Map<String, List<PcProductVo>>,key 是日期字符串(yyyy-MM-dd)
         const dataMap = res.data || {};
         const groups: any[] = [];
-        
+
         // 按日期降序排序(最新的在前面)
         const sortedDates = Object.keys(dataMap).sort((a, b) => b.localeCompare(a));
-        
+
         sortedDates.forEach((dateKey: string) => {
           const products = (dataMap[dateKey] || []).map((item: any) => ({
             ...item,
@@ -73,7 +82,7 @@ const getFootprintList = () => {
             tag: item.tag || '',
             checked: false
           }));
-          
+
           groups.push({
             dateKey, // 保留原始日期 key,用于删除操作
             date: formatDate(dateKey),
@@ -81,8 +90,9 @@ const getFootprintList = () => {
             products
           });
         });
-        
+
         footprintGroups.value = groups;
+        total.value = groups.reduce((sum, group) => sum + group.products.length, 0);
       }
     })
     .finally(() => {
@@ -90,6 +100,10 @@ const getFootprintList = () => {
     });
 };
 
+const handleQuery = () => {
+  getFootprintList();
+};
+
 /** 获取所有选中的商品 */
 const getSelectedItems = () => {
   const selected: any[] = [];

+ 1 - 6
src/views/organization/roleManage/index.vue

@@ -7,7 +7,6 @@
 
     <el-table :data="paginatedRoleList" border>
       <el-table-column prop="roleName" label="角色名称" min-width="150" align="center" />
-      <el-table-column prop="roleKey" label="权限字符" min-width="150" align="center" />
       <el-table-column prop="roleSort" label="显示顺序" width="100" align="center" />
       <el-table-column prop="status" label="状态" width="100" align="center">
         <template #default="{ row }">
@@ -43,9 +42,6 @@
         <el-form-item label="角色名称" prop="roleName">
           <el-input v-model="formData.roleName" placeholder="请输入角色名称" />
         </el-form-item>
-        <el-form-item label="权限字符" prop="roleKey">
-          <el-input v-model="formData.roleKey" placeholder="请输入权限字符" />
-        </el-form-item>
         <el-form-item label="显示顺序" prop="roleSort">
           <el-input-number v-model="formData.roleSort" :min="0" />
         </el-form-item>
@@ -90,8 +86,7 @@ const formData = reactive({
 });
 
 const formRules = {
-  roleName: [{ required: true, message: '请输入角色名称', trigger: 'blur' }],
-  roleKey: [{ required: true, message: '请输入权限字符', trigger: 'blur' }]
+  roleName: [{ required: true, message: '请输入角色名称', trigger: 'blur' }]
 };
 
 const total = computed(() => roleList.value.length);