当前位置: 首页 > article >正文

vue3如何运用组合式写法,封装表格列表请求数据的逻辑

1.代码如下:

import { getPageList } from "@/api/cloudExhibitionHall"
import { ref, watch } from "vue"

// 特殊参数传参
const role = JSON.parse(localStorage.getItem('current-role') || '{}')
const tenantId = role.tenantId ? role.tenantId : 6

const defaultParams = { // 重置选项
    pageNum: 1,
    pageSize: 10,
    tenantId
}

export function useGetTableList(params = {}) {
    defaultParams.pageSize = params.pageSize
    const searchParams = ref({ ...defaultParams, ...params })
    const pageTotal = ref(0)
    const tableData = ref([])

    watch([searchParams], () => {

        initData()

    }, { immediate: true, deep: true }) // 进入列表页面,立刻请求


    function handleSearch(data, type) {
        if (type == 'reset') {
            searchParams.value = defaultParams
        } else {
            searchParams.value = { ...searchParams.value, ...data }
        }
    }

    async function initData() {
        const { data = {}, code } = await getPageList({ ...searchParams.value })
        if (code == 200) {
            tableData.value = data?.list || []
            pageTotal.value = data?.total
        }
    }

    return {
        searchParams,
        pageTotal,
        tableData,
        handleSearch,
        initData
    }
}

http://www.kler.cn/news/355391.html

相关文章:

  • 【Router】路由器中NAT、NAPT、NPT是什么?
  • [Vue3核心语法] ref、reactive响应式数据
  • 补题:J. Robot Factory
  • 2025选题推荐|基于微信小程序的高校就业招聘系统
  • NumPy 数组操作:从入门到精通
  • Ping百度,出现“ping:baidu.com: Temporary failure in name resolution“解决方案
  • 前端开发攻略---使用css实现滚动吸附效果
  • tortoisegit简单用法
  • 图像识别技术的多领域应用:从医疗到安防
  • 【LeetCode 88. 合并两个有序数组】 java实现
  • 无人机集群路径规划:5种优化算法(SFOA、APO、GOOSE、CO、PIO)求解无人机集群路径规划,提供MATLAB代码
  • 操作系统学习笔记-1.1操作系统的基本概念
  • 抖音大模型面试经历分享
  • docker搭建 Rancher开源的 Kubernetes管理平台
  • C语言中的文件操作:从基础到深入底层原理
  • Blob 学习指南:从零开始学习 JavaScript Blob 对象的使用
  • Ubuntu 安装 nginx
  • 【RS】GEE(Python):基础知识与环境搭建
  • 第二十三篇——解析几何:用代数的方法解决更难的几何题
  • C++AVL树的介绍和实现