uniapp+<script setup lang=“ts“>解析后端返回的图片流并将二维码展示在页面中 - 指南
2025-10-22 18:44 tlnshuju 阅读(0) 评论(0) 收藏 举报页面展示
apiFox请求
封装公用的ts
import config from '@/../config/config';
const URL = `${config.apiDomain}${config.apiBase}/order/genVerificationQr`;
interface GenQrParams {
orderNo: string;
width: number;
height: number;
}
// 生成核销二维码接口
export const genVerificationQr = (params: GenQrParams) => {
const accessToken = uni.getStorageSync('access_token');
return new Promise((resolve, reject) => {
uni.request({
url: `${URL}`, // 注意补充完整的接口URL
method: 'GET',
header: {
Authorization: 'Bearer ' + accessToken,
},
data: params,
responseType: 'arraybuffer',
success: (res) => {
if (res.statusCode === 200 && res.data) {
try {
// 将arraybuffer转换为base64格式
const base64Str = wx?.arrayBufferToBase64(res.data as ArrayBuffer);
if (!base64Str) {
throw new Error('转换base64失败');
}
// 生成正确的dataURL(根据实际图片类型调整mime类型,这里假设是png)
const imageSrc = `data:image/png;base64,${base64Str}`;
resolve(imageSrc); // 成功时返回imageSrc
} catch (err) {
reject(err); // 转换过程出错时 reject
}
} else {
reject(new Error(`请求失败,状态码:${res.statusCode}`));
}
},
fail: (err) => {
reject(err); // 网络请求失败时 reject
},
});
});
};
页面使用
请将此二维码呈现给工作人员为您核销订单
import { onMounted, nextTick } from 'vue';
import { genVerificationQr } from '@/utils/createQrCode';
interface PropsType {
orderNo: any;
}
const props = withDefaults(defineProps(), {
orderNo: 0,
});
const { orderNo } = toRefs(props);
const getGenVerificationQr = async () => {
currentImg.value = ''; //每次请求前置空
let params = {
orderNo: orderNo.value,
width: 200,
height: 200,
};
nextTick(async () => {
// 调用接口生成二维码
const qrImageSrc = await genVerificationQr(params);
// 将结果赋值给页面的image src
currentImg.value = qrImageSrc; // 假设页面中有qrImage这个数据变量
});
};
onMounted(() => {
getGenVerificationQr();
});
@import './index.scss';
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943645.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
10.21 CSP-S模拟36 改题记录
HZOJ
写在前面
大概就是切不了任何一道题,大概就是T4改了一辈子。大概就是个人感觉T2严格简单于T1,T3严格简单于T4。感觉好久没有模拟赛改完4道题了。时间貌似不多了,那还是速战速决吧。《Shopper》
아직도 난
我现…
20232406 2025-2026-1 《网络与系统攻防技术》实验二实验报告
一、实验内容及问题回答
1.1实验内容:
(1)使用netcat获取主机操作Shell,cron启动。
(2)使用socat获取主机操作Shell, 任务计划启动。
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主…
程序员必备!5款小白也能秒上手的AI编程工具
解放双手,让代码自动生成
在传统的开发过程中,开发者常常陷入“想法与代码实现”的拉锯战:脑海中构思的交互效果,需通过逐行编写代码才能落地,调试、优化、兼容性测试……流程冗长且易偏离初衷。随着AI技术的快速…
Securing Your DevOps Pipelines -1
Securing Your DevOps PipelinesBackground on DevOps
Security in DevOps or DevSecOps
DevSecOps Tools
Setting up a DevSecOps Pipeline
Final Security ChecksBackground on DevOps
1.1 Understand where DevOps …
低代码软件开发平台介绍
一、低代码市场产品类型
1. 可视化编程
代表产品:OutSystems、牛刀、iVX等
核心特征:通过可视化操作生成代码,本质上是新一代的编程IDE
2. 表单驱动
代表产品:宜搭、氚云、简道云、轻流等
核心特征:以表单、流程、…
接口重试的7种常用方案! - 指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
这3种底层思维就是新老班主任的最大区别:不是经验,而
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
windows局域网,能够使用IP打开共享但无法通过机器名打开(0x80070035)
windows局域网,能够使用IP打开共享但无法通过机器名打开(0x80070035)在客户机上操作
组策略管理器-计算机配置-管理模板-网络-Lanman工作站
启用“启用不安全的来宾登录”骑着母猪去打猎的备忘录,如有侵权请联系本…
实用指南:86-python电网可视化项目-6
实用指南:86-python电网可视化项目-6pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…
详细介绍:3.5mm耳机插座技术全解析:从镀层工艺到阻抗稳定性测试
详细介绍:3.5mm耳机插座技术全解析:从镀层工艺到阻抗稳定性测试pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…
通过电脑调试 Android/iOS 手机端网页
通过电脑调试 Android/iOS 手机端网页教程1. Android
手机端需要先安装 Chrome 浏览器。
手机端需要开启 USB 调试功能。具体方法可以搜索,以小米手机为例,在【设置】【我的设备】【全部参数与信息】,连续点击【OS版…
java数据类型和转义字符
java数据类型和转义字符int i=0b10;//2进制0bint i2=010;//八进制0int i3=0x10;//十六进制0xfloat f=0.1f;double d=0.1;System.out.println(d);System.out.println(i2);System.out.println(i3);银行业务:BigDecimal数…
CMS垃圾回收器详解
CMS垃圾回收器详解🔴 CMS收集器概述 #JVM/垃圾回收
🔴 CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器,采用标记清除算法,实现了垃圾回收与用户线程的并发执行。
🟠 CMS核心特点…
网页自动转发替换图片
第一步:打开fiddler,在“工具”栏中单击“Remove all”,清除干扰项
第二步:在需要替换图片的网页发送请求(强制刷新 Ctrl+F5),下方状态栏闪烁,代表fiddler抓包成功
第三步:返回fiddler,在左侧的“会话列表”中…
实用指南:用MATLAB画一只可爱的小熊
实用指南:用MATLAB画一只可爱的小熊pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…
成熟稳定、省钱好用的AI应用怎么开发?趣丸科技员工助手的技术实践
成熟稳定、省钱好用的AI应用怎么开发?趣丸科技员工助手的技术实践本文分享趣丸科技定制化AI助手在选型底层数据库时,对比多款向量数据库后选择OceanBase的思路和经验。作者:苏程辉,趣丸数据库负责人
如今,大模型推…
JavaScript 自定义元素类的作用域跨环境兼容管理
JavaScript 自定义元素类的作用域跨环境兼容管理
原创 夏群林 2025.10.22
自定义元素类,是为了后续复用,通常需要全局可见。
JavaScript 类名遵循标识符规范,可包含字母、数字、下划线(_)、美元符号($),且不能…
victoriamonitor监控gcp的cloudrun - Super
victoriamonitor监控gcp的cloudrun方案总览VictoriaMetrics 无法直接 scrape Cloud Run 的 /metrics,因为:
Cloud Run 是动态实例,没有固定 IP;
Cloud Run 实例按需启动/销毁;
没有暴露容器内部端口供 scraping。…
QT实现QTreeWidget项目拖拽移动功能
主要功能概述
允许用户在QTreeWidget内部拖拽项目
拖拽时显示确认对话框
程序环境Python 3.8.9
pyside6==6.1.3pip install pyside6==6.1.3实现效果demo代码获取
Gitee:treewidget-demo
百度网盘:https://pan.baidu.…