uniapp 前端解决精度丢失的问题 (后端返回分布式id)
原因: 后端使用分布式id, id为19位数,导致精度丢失 ,前端解决方法

这个是通过浏览器请求回来的数据,这个时候id 数据已经丢失了,在数据库查询不到,在调获详情接口的时候会有问题
实际的:

解决办法:
1. 通过 JSONbig 插件
npm install json-bigint
2.封装 请求 longAxios.js uni.request ( 在axios 里面可以使用transformResponse 来修改,uni.request 没有,使用 success 来获取)
import JSONbig from 'json-bigint';
import {getToken
} from '@/utils/auth';
import config from '@/config';const timeout = 10000;
const baseUrl = config.baseUrl;const longAxios = options => {const {url,method,data,params, // 接收 params header,type,key,receive} = options;return new Promise((resolve, reject) => {// 构建请求 URL let requestUrl = `${baseUrl}${url}`;// 如果有 params,构建查询字符串 if (params) {const queryParams = new URLSearchParams(params).toString();requestUrl += `?${queryParams}`; // 将查询参数添加到 URL }uni.request({url: requestUrl,method,data,header: {Authorization: 'Bearer ' + getToken(),...header // 如果有额外的头部信息,可以合并 },dataType: 'String', // 将接收的数据转换成字符串类型,而不直接解析 success: res => {try {// 如果大数字类型转换成功则返回转换的数据结果 res.data = JSONbig.parse(res.data)} catch (err) {// 如果转换失败,则包装为统一数据格式并返回 resolve(JSON.parse(res.data));}// data = JSONbig.parse(data);if (type == 'array') {res.data.filter((item) => {item[key] = JSONbig.parse(item[key]).toString()return item})} else if (type == 'rows') {res.data.rows.filter((item) => {item[key] = JSONbig.parse(item[key]).toString()return item})} else {res.data[key] = JSONbig.parse(res.data[key]).toString()}console.log(res)// 返回结果 if (receive === 'rows') { resolve(res.data.rows); // 确保 resolve 返回正确的数据 } else { resolve(res.data[receive]); } },fail: err => {reject(err);},});});
}export default longAxios;
3.封装api(根据自己的业务来修改, 注意key 值,我这里是id, 返回的是rows )

import longAxios from '@/utils/longAxios';export function $listTree(params) {return longAxios({url: `/lims/custom/listTree`,method: 'get',params,key: 'id',type: 'rows',receive: 'rows'});}
4.正常调用就可以了
const res = await $customListData(this.queryParams)
相关文章:
uniapp 前端解决精度丢失的问题 (后端返回分布式id)
原因: 后端使用分布式id, id为19位数,导致精度丢失 ,前端解决方法 这个是通过浏览器请求回来的数据,这个时候id 数据已经丢失了,在数据库查询不到,在调获详情接口的时候会有问题 实际的: 解决…...
C语言:指针4(常量指针和指针常量及动态内存分配)
常量指针与指针常量 常量:分为字面量和只读常量,字面量就是我们平时直接操作的量: printf("%d\n",12);/printf("%s\n","hello");只读常量使用关键字 const 修饰,凡是被这个关键字修饰 的变量&…...
Win11提示fveapi.dll丢失是什么原因?fveapi.dll丢失怎么办?
一、fveapi.dll丢失的成因与影响 成因: 系统更新不完整:Win11系统在更新过程中,如果某个环节出现问题,可能会导致fveapi.dll等系统文件未能正确更新或安装。软件冲突:某些第三方软件可能与系统文件发生冲突ÿ…...
台球助教平台系统开发APP和小程序信息收藏功能需求解析(第十二章)
以下是开发台球助教系统客户端(APP,小程序,H5)几端的信息收藏功能的详细需求和功能说明,内容比较详细,可以说是一个教科书式的详细说明了,这套需求说明不仅仅用在我们的台球助教系统程序上&…...
如何设计 Vue 3 组件库:高效的组件化开发方法
如何设计 Vue 3 组件库:高效的组件化开发方法 📖 前言 随着前端技术的不断发展,Vue.js 已成为现代化 Web 应用开发的主流框架之一。Vue 3 引入了诸多改进,尤其是组合式 API,使得 Vue 在开发大型项目时,能够…...
第八节、Bresenham直线插补运动【51单片机-L298N-步进电机教程】
摘要:前面章节主要介绍单个电机控制,本节内容介绍两个电机完成直线插补运动 一、 Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发,最初用于计算机显示直线,它确定应该选择的n维光栅的点&#…...
一个从oracle使用spool导出数据到kadb的脚本
1. dump_data.sh调用sql_dump.sh导出数据 2. load_data.sh将导出的数据加载至KADB 1. dump_data.sh #!/bin/bash begin_time$(date %Y%m%d -d -1 day) end_time$(date %Y%m%d) echo "数据导出日期:"$begin_time echo "数据导出日期:"$begin_time >>…...
【STM32】GPIO口以及EXTI外部中断
个人主页~ 有关结构体的知识在这~ 有关枚举的知识在这~ GPIO口以及EXTI外部中断 GPIO一、简介二、基本结构三、输入输出模式1、输入模式(1)上拉输入(2)下拉输入(3)浮空输入(4)模拟输…...
Confluent Cloud Kafka 可观测性最佳实践
Confluent Cloud 介绍 Confluent Cloud 是一个完全托管的 Apache Kafka 服务,提供高可用性和可扩展性,旨在简化数据流处理和实时数据集成。用户可以轻松创建和管理 Kafka 集群,而无需担心基础设施的维护和管理。Confluent Cloud 支持多种数据…...
【LeetCode每日一题】——415.字符串相加
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 415.字符串相加 四【题目描述】 给定两个字符…...
linux---使用定时任务同步时间
首先,确保你的系统上安装了ntpdate工具,它用于从NTP服务器获取并设置系统时间。如果你的系统上没有安装,你可以通过包管理器进行安装 安装ntpdate yum install -y ntpdate设置定时任务 crontab -e在文件中添加下面内容 #每5分钟同步一次时间 …...
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
可以搭建属于公司内部或者个人的Git服务器,方便程序代码及文档版本管理。 官网:http://www.gitblit.com/ Windows环境下安装 提前已经安装好了JDK。 官网下载Windows版的GitBlit。 将zip包解压到自己想要放置的文件夹下。 建立版本库路径,…...
KNN分类算法 HNUST【数据分析技术】(2025)
1.理论知识 KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。 KNN算法的思想: 对于任意n维输入向量,分别对应于特征…...
AI Agent开源框架汇总(持续更新)
文章目录 AI Agent开源框架汇总什么是AI Agent为什么需要智能体(Agent)Web3 AI Agent使用场景框架分类低代码(No-Code/Low-Code)框架基础框架代码框架Multi-Agent 框架 / 架构热门开源框架PhidataRigai16z的AI Agent框架ElizaLangChain和phidata对比OpenAI SwarmAI Agent开…...
录播检测原理是什么?
直播间录播的检测可以通过多种方式进行。以下是一些常见的检测方法: 1、水印识别:直播平台可以在实时直播画面中嵌入特定的水印,通过识别水印来判断是否存在录播行为。 2、特征分析:直播平台可以通过对直播画面进行特征分析,检测…...
IndexOf Apache Web For Liunx索引服务器部署及应用
Apache HTTP Server 是一款广泛使用的开源网页服务器软件,它支持多种协议,包括 HTTP、HTTPS、FTP 等 IndexOf 功能通常指的是在一个目录中自动生成一个索引页面的能力,这个页面会列出该目录下所有的文件和子目录。比如网上经常看到的下图展现的效果,那么接下来我们就讲一下…...
MySQL索引为什么是B+树
MySQL索引为什么是B树 索引是帮助MySQL高效获取数据的数据结构,在数据之外,数据库还维护着满足特定查找算法的数据结构B树,这些数据结果以某种特定的方式引用数据,这样就可以在这些数据结构上实现高级查找算法,提升数据…...
ffmpeg之播放一个yuv视频
播放YUV视频的步骤 初始化SDL库: 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 创建窗口用于显示YUV视频: 目的:…...
《2023-2024网络安全产业发展核心洞察与趋势预测》
2023年至2024年间,我国经济总体上逐步显现出复苏迹象,并开始释放向上增长的潜力。在此背景下,网络安全产业也经历了经济环境的深刻影响,不仅实现了阶段性的稳定发展,也展现出较强的韧性与适应能力,为未来的…...
为什么环境影响评价导则中生态环境评价中的【植被类型图】制作比较难?制作流程是什么
最新《环境影响评价技术导则生态影响HJ19—2022》于2022年1月15日发布,2022-07-01正式实施,新导则颁布后,要求生态现状评价内容中基本图件构成包含:项目区域地理位置图、工程平面图、调查样方、样线、点位、断面等布设图、土地利用…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
