响应式设计网站,手机百度免费下载,有没有什么专业做美业的网站,请求php网站数据库原因#xff1a; 后端使用分布式id, id为19位数#xff0c;导致精度丢失 #xff0c;前端解决方法 这个是通过浏览器请求回来的数据#xff0c;这个时候id 数据已经丢失了#xff0c;在数据库查询不到#xff0c;在调获详情接口的时候会有问题
实际的#xff1a; 解决…原因 后端使用分布式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)