前端获取接口材料流程

news/2025/9/29 8:17:01/文章来源:https://www.cnblogs.com/wzzkaifa/p/19118036

、组件初始化阶段

1、初始化响应式状态对象:tablebody。

2、核心状态:

  • 表格高度 ( tableHeight )

  • 数据加载状态 ( tableLoading )

  • 表格数据 ( tableList )

  • 总条数 ( total )

  • 分页参数 ( params ):设置默认分页参数。(第1页,每页50条)

const tableBody = reactive({tableHeight: 600,showTable: true,tableLoading: false,tableList: [],total: 0,params: {pageNum: 1,pageSize: 50,  // 默认每页50条},
});

二、表单和表格配置

1、表单字段:

通过 getFormFields 获取表单配置:

const formDataModel = reactive({});
const formData = computed(() => ({showButtons: false,confirmText: '查询',model: formDataModel,  // 绑定表单数据模型fields: getFormFields(),  // 获取表单字段配置
}));

getFormFields() 返回的表单配置:

[{ prop: 'dw', type: 'input', placeholder: '单位' },{ prop: 'yd', type: 'datePicker', placeholder: '月度' }
]

2、表格列

通过 getTableColumn 获取表格列配置:

const tableColumn = getTableColumn();

三、组件挂载自动加载数据

onMounted(init);  // 组件挂载时触发数据加载
const init = () => {getTableList();
};

四、核心数据获取方法

const getTableList = async () => {try {tableBody.tableLoading = true;// 合并分页参数和表单参数const params = {...tableBody.params,...formDataModel};const res: any = await getInfoApi(params);if (res.status === 200) {tableBody.tableList = res.data.records || [];tableBody.total = res.data.total ? Number(res.data.total) : 0;} else {ElMessage.warning(res.message);}} finally {tableBody.tableLoading = false;}
};

注:其中 res.status 的 status 为状态名,

不同接口可能会有不同的状态名(如code等),所以需要根据不同情况进行修改 。

1、参数合并策略

const params = {...tableBody.params,  // 分页参数 { pageNum: 1, pageSize: 50 }...formDataModel      // 表单参数 { dw: '单位A', yd: ['2023-01', '2023-06'] }
};

合并后的请求参数示例:

{"pageNum": 1,"pageSize": 50,"dw": "单位A","yd": ["2023-01", "2023-06"]
}

2、多种解构方式 

功能/解构方式直接解构:data.rows对象访问:res.data.rows
API调用

const { data, code, message }

= await pageApi(params);

const res: any

= await getInfoApi(params);

状态码检查if (code === 200) if (res.status === 200) 
数据赋值tableBody.tableList = data.rows;tableBody.tableList = res.data.records;

3、响应数据处理

1.直接赋值

特点:保持原始结构 + 分页信息。

其中records要与接口返回的数组名一致。

如若是"list": [...],那么就得是res.data.list。

tableBody.tableList = res.data.records || [];  // 表格数据
tableBody.total = Number(res.data.total) || 0; // 总数

假设后端返回数据结构: 

{"status": 200,"data": {"records": [...],  // 当前页数据"total": 1250      // 总记录数}
}

2.字段映射

特点:必须转换 + 空安全

orgTypeList.value = (data as OrgItem[]).map(item => ({label: item.name,value: item.id,

 转换过程:

// 原始数据
[{ name: "米哈油", id: "org-001" }]
// 转换后(丢弃id,保留label/value)
[{ label: "米哈油", value: "org-001" }]

为什么一定要转换为 { label, value } 格式?

  1. 适配 UI 组件的数据格式
  2. 统一处理逻辑
  3. 减少不必要的数据处理
  4. 清晰分离显示值与存储值

在少数简单场景下可以直接使用原始数据:

  • 纯字符串/数字的简单列表
  • 组件明确支持自定义字段映射

五、用户交互触发点

1、查询按钮

const submitHandler = () => {console.log('Form Data Model:', formDataModel);init();  // 触发数据加载
};

2、数据统计按钮

const dataStatistics = () => {init();  // 同样触发数据加载
};

3、表格刷新/分页

注:该代码所在文件位置:index.vue。



六、动态列显示

按需求选择哪些列显示,哪些列不显示。

1. 表格操作组件引用index


2. 动态列计算属性hooks

const realTableColumn = computed(() =>tableOperateRef.value?.realTableColumn ?? []
);

3. 表格组件绑定index

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lucene 8.7.0 版本中dvd、dvm文件详解 - 教程

Lucene 8.7.0 版本中dvd、dvm文件详解 - 教程2025-09-29 08:12 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

APEX实战第5篇:利用APEX程序直观体验向量近似检索能力

APEX实战第5篇:利用APEX程序直观体验向量近似检索能力2025-09-29 08:14 AlfredZhao 阅读(0) 评论(0) 收藏 举报在圈内朋友看来,Oracle 数据库的 多模能力 已经不是什么新鲜话题。它不仅在关系型数据管理方面独树…

告别复制粘贴!Chat2File-DeepSeek 让 DeepSeek 对话成果直接变“成品” - 指南

告别复制粘贴!Chat2File-DeepSeek 让 DeepSeek 对话成果直接变“成品” - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-f…

详解 PHP 中的命名空间 Namespace 与 PSR4 自动加载

详解 PHP 中的命名空间 Namespace 与 PSR4 自动加载 随着 PHP 项目规模增长,文件管理和类加载问题逐渐凸显:散乱的目录结构、频繁的 require_once 调用、难以维护的类依赖关系。本文通过 namespace 和自动加载技术,…

html5购物网站模板艾佳工业设计

动态调用的作用 类似于其他语言的反射能够开发框架性代码 Call调用语法 (bool success, bytes data) <address>.call(bytes calldata)call是address的方法call返回值(bool success, bytes data)忽视返回值success&#xff0c;会造成严重问题 calldata的结构 call的…

构建易受攻击的AWS DevOps环境:CloudGoat场景实践

本文详细介绍如何在CloudGoat中构建易受攻击的AWS DevOps环境,包含完整的攻击路径分析,从初始权限提升到供应链安全漏洞利用,展示了真实的云安全测试场景。构建易受攻击的AWS DevOps环境作为CloudGoat场景 CloudGoa…

摩尔线程88天过会,过会当天提交注册:看懂这3个关键,才算懂国产GPU的“生存逻辑”

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087摩尔线程88天冲刺上市:看懂这3个关键,才算懂国产GPU的“生存逻辑…

2025最新四面刨厂家权威推荐排行榜:四面刨厂家实力品牌测评,含定制,高速,重型四面刨优选指南

四面刨作为竹木加工的核心设备,其精度与稳定性直接决定产品合格率与生产效率。当前市场中,既有深耕多年的老牌企业,也涌现出一批技术创新的新锐品牌,但同时存在设备精度参差、定制能力不足、售后响应滞后等问题 —…

Java之泛型使用教程

下面我将为你编写一个使用泛型类的示例代码,这个示例实现了一个通用的"配对"(Pair)类,可以存储两个相同或不同类型的值,并提供基本的操作方法。 这个示例展示了泛型类的几个重要特性:多类型参数:Pair…

单调栈优化DP [ROI 2018] Decryption

题意 要求把一个序列划分成很多段,要求对于每段,最大值是末项,最小值是首项。 求最小划分段数。 解法 我们贪心来思考,若我们要保证一直到 i 是合法的,左端点显然是越往左越好,但是在全局上是并没有这个性质的,…

上海住宅新规调整,背后的野心可大了

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087各位,看到这份文本了吗 添加图片注释,不超过 140 字(可选)没看…

手工调整pip whl 文件内容

手工调整pip whl 文件内容属于一个比较常见的问题,比如我们希望自己修改一个whl 文件的内容,但是还是通过pip install 的模式,不希望通过pip 安装之后再手工进行文件替换,解决方法比较简单 有源码的 可以自己重新构…

魔兽争霸3冰封王座安装包下载

​在即时战略游戏的发展史上,有一款作品如同丰碑般屹立不倒,它就是2003年发布的《魔兽争霸3:冰封王座》。即便时光流转二十余载,这款游戏依旧凭借其深厚的玩法底蕴与强大的玩家粘性,活跃在游戏圈中,成为无数玩家…

重庆 机械有限公司 沙坪坝网站建设wordpress设置恢复

本文主要用于工作记录&#xff0c;在项目中遇到了就记录一下 在早期&#xff0c;原生的JDK8是不支持HTTP/2协议的&#xff0c;所以&#xff0c;要想使用这个特性&#xff0c;需要有web服务器和应用环境的支持&#xff0c; 例如&#xff1a;在VM中增加-Xbootclasspath/p:/Users…

广州网站设计总部自己做的网站给人攻击了怎么办

Eclipse 创建第一个 springboot 应用 1、前言 一直想把笔记整理出来&#xff0c;分享一下 springboot 的搭建&#xff1b; 因为私下 idea 用的比较多&#xff0c;使用比较方便&#xff0c;但恰逢小伙伴问起 eclipse 怎么搭建的问题&#xff0c; 顾整理以记之。 2、springboot …

vscode tunnel远程隧道访问 正确重启方法

因为有时候电脑休眠一下,远程隧道就挂了,重启vscode也没用,下面是摸索出来的方法: 在linux上:关闭vscode 结束后台code-tunnel进程 启动vscode 在远程资源管理器中,注销2个Tunnels 点击设置按钮旁边的账户,重启…

深圳住房和建设局网站网上预约网站图片上的分享怎么做的

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; 是瑶瑶子啦每日一言&#x1f33c;: 所谓自由&#xff0c;不是随心所欲&#xff0c;而是自我主宰。——康德 目录 一、二叉树刷题纲领二、刷题1、104. 二叉树的最大深度2、 二叉…

企业网站建设的成本背景素材

随着AI预训练大模型的价值不断显现&#xff0c;且模型规模愈发庞大。产学各界已经形成了这样一个共识&#xff1a;AI时代&#xff0c;算力就是生产力。 这一认知虽然正确&#xff0c;却并不全面。数字化系统有存、算、网三大支柱&#xff0c;AI技术也是如此。如果抛开存储和网络…

杭州百度推广网站建设北京网站建设好

一、软件设计发展过程二、什么是DDD&#xff1f;2.1 战略设计2.2 战术设计2.3 名词扫盲1. 领域和子域2. 核心域、通用域和支撑域3. 通用语言4. 限界上下文5. 实体和值对象6. 聚合和聚合根 2.4 事件风暴2.5 领域事件 三、DDD与微服务3.1 DDD与微服务的关系3.2 基于DDD进行微服务…

PS时文本框图层如何与图片图层水平中心对齐

背景: 工作遇到临时要处理一个图片1,需要在图片1中加一个文本,要求与图片的水平中心对齐。 工具:PS2021 ==================================================================== 1.打开图片1 2.点击文字工具添加水…