echarts柱状图顶部设置倾斜并且展示数字

将下面代码直接复制粘贴在此运行就能查看效果Apache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。icon-default.png?t=N7T8https://echarts.apache.org/examples/zh/editor.html?c=area-pieces&code=MYewdgzgLgBAtgTwMoAsCGAHApjAvDAbwCgYYAPALhgAYAaEmBKuhgdwEsATKFKgRgDMMAPTDAL6mBd2KIBfANxFRMQBt-gNiVAZ7qBy-UBG6UVCRYASTDAANuzBZOAJRAgAZgCE0AJzwwswdM6gQAdAHNnTBR2YF8sMigsME5UTCwACmJSCHRsKkQ47HpSACMAV3YTTgAFNB4qO3zjKHZwGATgKDJaGFT4gEpCBlJFYDQwADc0CEAYf_bsQHozQDm5YHzoEDhAAnlAU0VAELcemD1ocgBBMnYIEpBzWHwJrF8yfcPj0_lSUm3YYGo3AG0Lq9avhABdB6PZ5bPgfL5kGAAWhgfAA7D80pcEFCYdQAZtgcAAEwfa4HI4nMBQd5olFw1p426E4l8P7ox5bcA7YBCfDvSkE04kv4Um6convWn0oHNTakXxwECDLAAFRAjWo3Nar0Ffw6YpgvjMFjljT4SpBqvVDPF2tl8uxBsttONJq15nNjQEVudNo1vlMIAgWDKPASHUB0hkAaIHi8PgCQQwITCziw_kOUWcWUSAHIjKYHdZbI4XKnWhmzdn7E5nCGQBhavV8MkYLk0MAANaBEDVTgAYRAJhAzioqYAxHwsAJYQBWABs-YYoG7vZg7wHuSxsKwABZV6meQwoLYTLUMFRaykUCBWFQoM58lgco8L-x_P4sHPU2h8VOGa-qacn4eNVAEOkMCpu0nCnqmmzSDeTzgHYDrnpe16bFEkRIP-JhYL-JowHY4BQEg7AAF4YTCq4QVB2E9nA5RJlQCQYC4aBwBAXS4AAfN0WHDK4UAuG49FBEx3KAgyPCHL4rA9o2MoATg-A8c4vhgIxWDCY8cZQPkzhgDA8mKcpMAANRATAfaGUBAA8uTOMIrGpmZunDCYV6qUGpCQQw6GPjEmG3hWVCjuR7BRHAADqXAVDC46BcFAASWD3igUBUAAHOR6F2ElQHANESbvo89GcJw5j-Mw5HIXhaHEUeQJdj2fb9nYjV5QyOFEvhRH8Ku5GkAVRVgCV85Yq0dA0MNfxkZsnDlGgVALpwWCSnwfBYlim4MO5pCBFwPnQUSaDmAAMmguRYCY8FXmlWAZaVmy5CAUA7nAN0Mhw3C8EBfDUNQACkzUwCg8X-IlfbJaOv3rTeHI7TpMl9v0UT-D2CB_Z-EAHXBHEmqkp7nYhWFmqhCDodDL3he9fDdTVs59s4_i5AkWKjgFMCM8zrPDb4o4dOBWGuY8G2PKjR0nWdmMMtjZ46QhlPfs4jnPSazj3eUxECCwWHlYTxNiyaM51UBDVNZTpCtXhhHEctGp8255EQBgZhQOjFgk20J6S3YaAmN6lME5VLvQdTQG0_T7Ms0zrSh9QvgCNzxsw4BqZTaklh_aTb38FbE0fviMqhI2LsS5UnvelnjxTTxs1bgyBHodKoufRDDAIHy0P_gnjlXn9SlwMRqZ_XA5gK6QqO502Bdu0XXtYKXw_4sLp0u5rfs6wyevPobdip48pvtRbWKZwyAspPbQVO1VGqF1LF0ar7RPn1hAf66mwcM-HYds2_Ucx1vpBt73ScA04D_GAr0IpR1hAffm5EhYY2qseHG2Fi54xNLfbWcCqZPxfqOIaMJBAR1HNQbmkCbabG7rKCIFU74uzXvVRqm9KY73NvwccEFG4pCfOwLAEBZqbHQX_OG8xHpbzIX2eai1lqrRlsFLW98H53WcPNZwnZA6LmXGuDccd5GKLCunGEccaEGyXCudcwCwCUU9v7R4Winw6IinwDUbkraUzjDEJ8Bhgq0X4oxCArRMDsBYuxdBu0djdnhnUbS-A_EelsAohI7wokd0SIQ3xGB2C-ESQkPgHQ1SqVXkyWAZBQnlHCW4KJoAeycDiQkz2V4EjJJoDkhxMB1KaW0kE28sMgKFizDYEseY47HniJYj8qSBmPDIAANRqcRapTkkkdDGaQBAUy5lUFmbUrJizyBUCKVWMA3IzKfS2UwGAuzwmqi2RyO4RJZqFJAGE8AByjJHPIGcx5QomkkIfo8aAVCV4P1giYUWFhWDuE8C4CMgRgihF8GfFwABxIIRUcp1OGmivR85Pkmnad8-wdhvSZXVt8h-BiBwADEyW7GoKuVaWLD5bNIDih-eKCX8AZRg58wc0CoroLyohxKTTW2JWqLZ0AlaNl7v2Ix6iebEqFYfXJMAj5l2mpXGe_z-FAXrM4LeJhjoL3-aQMxzgqKiyZZfC818BUYC9EFcJfYdwYGAY_dejUvpfWdRRNqTCWZEtxY1Vl84upQk-lXYlOETXUR_NhaoTQSl0QYkxLoTLSDsDsA0LxTF0nTJgOxQhhqH4tK0jATNfhEmKt5u4KeBasJFu0n3CtgqsXyv5k4jU2rbHky6hqIKC0ZGWNJReAYdsXA5VlfSv8u59yWItQhNtWFy4zUGgATlaMlEaAhg3LlaEzcah8GDjTkLofJhA9j4h-BwrhSq3AVj2fIb0zhOEQAACLTQ-AwaqElnCNklPNB1FC-B_WypAeYnZqiZSxMuthOsv0_pAH-oC5VJEYmiBAUDrYbkwHXdBz9klf293KgIIDqH0PgaoJunDmxYP4f_ZEDRKGQMQDA5h5clGXp4fgwRiho5iOMeY5lJm60iDog5L4RdbgH1PtfTxCUmAEgJF7XAAJMBFPiQ4_NEMkmuHcjE2-84l6X3TVkxgeTinlOqeA2hpjGGoABiAA

const myShape = {x: 0,y: 0,width: 13 //间距
};
// 绘制左侧面
const InclinedRoofBar = echarts.graphic.extendShape({shape: myShape,buildPath: function (ctx, shape) {// canvas,shape是从custom传入的const xAxisPoint = shape.xAxisPoint;const c0 = [shape.x, shape.y];const c1 = [shape.x - 17, shape.y - 10];const c2 = [xAxisPoint[0] - 17, xAxisPoint[1]];const c3 = [xAxisPoint[0], xAxisPoint[1]];ctx.moveTo(c0[0], c0[1]).lineTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).closePath();}
});
echarts.graphic.registerShape('InclinedRoofBar', InclinedRoofBar);
option = {backgroundColor: '#1e3756',color: ['#b27e44'],tooltip: {show: true,trigger: 'axis',axisPointer: {type: 'shadow'},confine: true,textStyle: {fontSize: 14},formatter: (params) => {var tar = params[0];this.workType = tar.name;return tar.name + ' : ' + '<br/>' + tar.value;}},legend: {top: 5,itemWidth: 16,itemHeight: 8,left: 'center',padding: 0,textStyle: {color: '#fff',fontSize: 14,padding: [2, 0, 0, 0]},data: ['demo1122']},grid: {containLabel: true,left: 0,bottom: 0,width: '100%',height: '85%'},xAxis: {type: 'category',axisLine: {show: true,lineStyle: {width: 1,color: 'rgb(255, 255, 255, 0.5)'}},axisLabel: {show: true,interval: 0,rotate: 30,textStyle: {color: '#fff',fontSize: 12}},splitLine: {show: false,lineStyle: {color: 'rgb(255, 255, 255, 0.3)',type: 'dashed',width: 1}},axisTick: {show: false},data: [],zlevel: 10},yAxis: {type: 'value',name: '',min: 0,axisTick: {show: false},axisLabel: {textStyle: {color: '#fff',fontSize: 12}},splitLine: {show: true,lineStyle: {color: 'rgb(255, 255, 255, 0.3)',type: 'dashed',width: 0.7}},axisLine: {show: false,lineStyle: {color: 'rgb(52, 113, 250)'}},nameTextStyle: {color: '#fff',fontSize: 16}},series: [{type: 'custom',name: 'demo1122',itemStyle: {borderColor: '#b27e44',borderWidth: 1,color: '#b27e44',normal: {borderWidth: 1}},renderItem: (params, api) => {const location = api.coord([api.value(0), api.value(1)]);const xlocation = api.coord([api.value(0), 0]);return {type: 'InclinedRoofBar',shape: {api,xValue: api.value(0),yValue: api.value(1),x: location[0] + 10,y: location[1],xAxisPoint: [xlocation[0] + 10, xlocation[1]]},style: {fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#FFA042'},{offset: 1,color: 'rgba(0,0,0,0)'}]),stroke: '#b27e44'}};},data: []},{type: 'bar',label: {normal: {show: true,position: 'top',color: '#ff0000',fontSize: 20,offset: [4, -10],formatter: function (params) {if (params.value > 0) {return params.value;} else {return '';}}}},barWidth: 14,itemStyle: {color: 'transparent'},tooltip: {show: true},data: [29, 80, 34, 27, 55]}]
};
const { xAxis, series } = option;
seriesData = [{workmode: 'text1',censusCount: 29},{workmode: 'text2',censusCount: 80},{workmode: 'text3',censusCount: 34},{workmode: 'text4',censusCount: 27},{workmode: 'text5',censusCount: 55}
];
xAxis.data = seriesData.map((item) => item.workmode);
series[0].data = seriesData.map((item) => item.censusCount);

在线链接(复制以下链接在新标签页打开,不要直接点):

https://echarts.apache.org/examples/zh/editor.html?c=area-pieces&code=MYewdgzgLgBAtgTwMoAsCGAHApjAvDAbwCgYYAPALhgAYAaEmBKuhgdwEsATKFKgRgDMMAPTDAL6mBd2KIBfANxFRMQBt-gNiVAZ7qBy-UBG6UVCRYASTDAANuzBZOAJRAgAZgCE0AJzwwswdM6gQAdAHNnTBR2YF8sMigsME5UTCwACmJSCHRsKkQ47HpSACMAV3YTTgAFNB4qO3zjKHZwGATgKDJaGFT4gEpCBlJFYDQwADc0CEAYf_bsQHozQDm5YHzoEDhAAnlAU0VAELcemD1ocgBBMnYIEpBzWHwJrF8yfcPj0_lSUm3YYGo3AG0Lq9avhABdB6PZ5bPgfL5kGAAWhgfAA7D80pcEFCYdQAZtgcAAEwfa4HI4nMBQd5olFw1p426E4l8P7ox5bcA7YBCfDvSkE04kv4Um6convWn0oHNTakXxwECDLAAFRAjWo3Nar0Ffw6YpgvjMFjljT4SpBqvVDPF2tl8uxBsttONJq15nNjQEVudNo1vlMIAgWDKPASHUB0hkAaIHi8PgCQQwITCziw_kOUWcWUSAHIjKYHdZbI4XKnWhmzdn7E5nCGQBhavV8MkYLk0MAANaBEDVTgAYRAJhAzioqYAxHwsAJYQBWABs-YYoG7vZg7wHuSxsKwABZV6meQwoLYTLUMFRaykUCBWFQoM58lgco8L-x_P4sHPU2h8VOGa-qacn4eNVAEOkMCpu0nCnqmmzSDeTzgHYDrnpe16bFEkRIP-JhYL-JowHY4BQEg7AAF4YTCq4QVB2E9nA5RJlQCQYC4aBwBAXS4AAfN0WHDK4UAuG49FBEx3KAgyPCHL4rA9o2MoATg-A8c4vhgIxWDCY8cZQPkzhgDA8mKcpMAANRATAfaGUBAA8uTOMIrGpmZunDCYV6qUGpCQQw6GPjEmG3hWVCjuR7BRHAADqXAVDC46BcFAASWD3igUBUAAHOR6F2ElQHANESbvo89GcJw5j-Mw5HIXhaHEUeQJdj2fb9nYjV5QyOFEvhRH8Ku5GkAVRVgCV85Yq0dA0MNfxkZsnDlGgVALpwWCSnwfBYlim4MO5pCBFwPnQUSaDmAAMmguRYCY8FXmlWAZaVmy5CAUA7nAN0Mhw3C8EBfDUNQACkzUwCg8X-IlfbJaOv3rTeHI7TpMl9v0UT-D2CB_Z-EAHXBHEmqkp7nYhWFmqhCDodDL3he9fDdTVs59s4_i5AkWKjgFMCM8zrPDb4o4dOBWGuY8G2PKjR0nWdmMMtjZ46QhlPfs4jnPSazj3eUxECCwWHlYTxNiyaM51UBDVNZTpCtXhhHEctGp8255EQBgZhQOjFgk20J6S3YaAmN6lME5VLvQdTQG0_T7Ms0zrSh9QvgCNzxsw4BqZTaklh_aTb38FbE0fviMqhI2LsS5UnvelnjxTTxs1bgyBHodKoufRDDAIHy0P_gnjlXn9SlwMRqZ_XA5gK6QqO502Bdu0XXtYKXw_4sLp0u5rfs6wyevPobdip48pvtRbWKZwyAspPbQVO1VGqF1LF0ar7RPn1hAf66mwcM-HYds2_Ucx1vpBt73ScA04D_GAr0IpR1hAffm5EhYY2qseHG2Fi54xNLfbWcCqZPxfqOIaMJBAR1HNQbmkCbabG7rKCIFU74uzXvVRqm9KY73NvwccEFG4pCfOwLAEBZqbHQX_OG8xHpbzIX2eai1lqrRlsFLW98H53WcPNZwnZA6LmXGuDccd5GKLCunGEccaEGyXCudcwCwCUU9v7R4Winw6IinwDUbkraUzjDEJ8Bhgq0X4oxCArRMDsBYuxdBu0djdnhnUbS-A_EelsAohI7wokd0SIQ3xGB2C-ESQkPgHQ1SqVXkyWAZBQnlHCW4KJoAeycDiQkz2V4EjJJoDkhxMB1KaW0kE28sMgKFizDYEseY47HniJYj8qSBmPDIAANRqcRapTkkkdDGaQBAUy5lUFmbUrJizyBUCKVWMA3IzKfS2UwGAuzwmqi2RyO4RJZqFJAGE8AByjJHPIGcx5QomkkIfo8aAVCV4P1giYUWFhWDuE8C4CMgRgihF8GfFwABxIIRUcp1OGmivR85Pkmnad8-wdhvSZXVt8h-BiBwADEyW7GoKuVaWLD5bNIDih-eKCX8AZRg58wc0CoroLyohxKTTW2JWqLZ0AlaNl7v2Ix6iebEqFYfXJMAj5l2mpXGe_z-FAXrM4LeJhjoL3-aQMxzgqKiyZZfC818BUYC9EFcJfYdwYGAY_dejUvpfWdRRNqTCWZEtxY1Vl84upQk-lXYlOETXUR_NhaoTQSl0QYkxLoTLSDsDsA0LxTF0nTJgOxQhhqH4tK0jATNfhEmKt5u4KeBasJFu0n3CtgqsXyv5k4jU2rbHky6hqIKC0ZGWNJReAYdsXA5VlfSv8u59yWItQhNtWFy4zUGgATlaMlEaAhg3LlaEzcah8GDjTkLofJhA9j4h-BwrhSq3AVj2fIb0zhOEQAACLTQ-AwaqElnCNklPNB1FC-B_WypAeYnZqiZSxMuthOsv0_pAH-oC5VJEYmiBAUDrYbkwHXdBz9klf293KgIIDqH0PgaoJunDmxYP4f_ZEDRKGQMQDA5h5clGXp4fgwRiho5iOMeY5lJm60iDog5L4RdbgH1PtfTxCUmAEgJF7XAAJMBFPiQ4_NEMkmuHcjE2-84l6X3TVkxgeTinlOqeA2hpjGGoABiAA

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

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

相关文章

AI制作《流浪地球3》高清宣传片

AI制作《流浪地球3》高清宣传片 星辰大海&#xff0c;再次启航&#xff0c;人类的冒险&#xff0c;永无止境。The vast expanse of stars and oceans, setting sail once again. Human adventure knows no bounds. 当家园变得遥不可及&#xff0c;我们唯有勇往直前。With our …

Docker部署Dubbo-Admin浏览器无法访问问题!

Dubbo配置开发环境 很多小伙伴在使用docker部署Dubbo-Admin会出现浏览器无法访问问题&#xff0c;但是虚拟机防火墙都是关着的&#xff0c;那么这可能是镜像源出现问题了&#xff0c;可以按照如下方法操作&#xff1a; 先将现有的镜像和容器全部删除&#xff08;配置完镜像源需…

[Python] 如何通过ctypes库来调用C++ 动态库 DLL?

ctypes库介绍 ctypes是Python的一个外部库,它提供了一种灵活的方式来调用C语言的动态链接库(DLL)或共享库(SO)。通过ctypes,我们可以在Python中直接调用C语言编写的函数和变量,从而实现跨语言的互操作。 ctypes 它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的…

【Internet Protocol】ip介绍,如何组局域网实现远程桌面和文件共享

文章目录 1.何为“上网”1.1 定义1.2 为什么连了WiFi就能上网了&#xff1f; 2.ip2.1 什么是ip2.2 为什么区分广域网和局域网&#xff0c;ip的唯一性2.3 如何查看设备的ip2.4 什么叫"ping"2.5 区分是否两个ip是否在同一局域网2.5.1 最稳妥的方式&#xff1a;ip&m…

第 2 章 数据结构和算法概述

文章目录 2.1 数据结构和算法的关系2.2 看几个实际编程中遇到的问题2.2.1 问题一-字符串替换问题2.2.2 一个五子棋程序2.2.3 约瑟夫(Josephu)问题(丢手帕问题)2.2.4 其它常见算法问题: 2.3 线性结构和非线性结构2.3.1 线性结构2.3.2 非线性结构 2.1 数据结构和算法的关系 数据 …

Javascript,到底要不要写分号?

小白随机在互联网上乱丢一些赛博垃圾&#xff0c;还望拨冗批评斧正。 要不要加分号&#xff1f; 先说结论&#xff1a;“不引起程序出错的前提下&#xff0c;加不加都可以&#xff0c;按自身习惯来。” 为什么JS可以不加分号&#xff1f; 实际上&#xff0c;行尾使用分号的风…

五、基础篇 vue列表渲染

在v-for里使用对象用 v-for 把一个数组对应为一组元素 我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in list形式的特殊语法&#xff0c;其中 list是源数据数组&#xff0c;而 item 则是被迭代的数组元素的别名。 <template><div clas…

【leetcode题解C++】54.螺旋矩阵I and 59.螺旋矩阵II

54.螺旋矩阵I 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示例 2&#xff1a; 输入&#xff1a;m…

C# 实现单线程异步互斥锁

文章目录 前言一、异步互斥锁的作用是什么&#xff1f;示例一、创建和销毁 二、如何实现&#xff1f;1、标识&#xff08;1&#xff09;标识是否锁住&#xff08;2&#xff09;加锁&#xff08;3&#xff09;解锁 2、异步通知&#xff08;1&#xff09;创建对象&#xff08;2&a…

Python单元测试之pytest的使用

一、前提准备 1、前提&#xff1a;需要安装pytest和pytest-html(生成html测试报告&#xff09; pip install pytest 和 pip install pytest-html 安装插件&#xff1a;pip install 插件名 2、命名规范 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开…

Spring(19) ThreadPoolTaskExecutor 线程池的使用

目录 一、线程池简介1.1 为什么使用线程池1.2 线程池为什么需要使用队列1.3 线程池为什么要使用阻塞队列而不是用非阻塞队列1.4 如何配置线程池1.5 execute() 和 submit() 方法 二、ThreadPoolTaskExecutor 线程池简介2.1 简介2.2 核心参数配置2.3 ThreadPoolTaskExecutor 内部…

数据库作业三

1.创建student和score表 2.为student表和score表增加记录 3.查询student表的所有记录 4.查询student表的第2条到4条记录 5.从student表查询所有学生的学号&#xff08;id&#xff09;、姓名&#xff08;name&#xff09;和院系&#xff08;department&#xff09;的信息 6.从st…

flutter3使用dio库发送FormData数据格式时候的坑,和get库冲突解决办法

问题描述 问题1&#xff1a;当你使用FormData.from(Flutter3直接不能用)的时候&#xff0c;可能会提示没有这个方法&#xff0c;或者使用FormData.fromMap(flutter3的dio支持)的时候也提示没有&#xff0c;这时候可能就是和get库里面的Formdata冲突了 问题1&#xff1a;The me…

vue基于spring boot框架的发艺美发店理发店管理系统的设计q9xpe

店铺信息、美发信息是发艺美发店管理系统的重要组成部分&#xff0c;信息清晰、详细、准确&#xff0c;能够有效地促进发艺美发店管理系统的运行[5]。基础设定函数是对整个系统的总体布局进行合理安排&#xff0c;包括&#xff1a;店铺活动、物品信息、领用信息等。通过对各类资…

【C++】vector模拟实现过程中值得注意的点

Hello大家好&#xff01;我是咕噜的铁蛋&#xff01;C中的vector是一种动态数组&#xff0c;它能够根据需要自动增长和缩小。虽然C标准库已经为我们提供了vector的实现&#xff0c;但在某些情况下&#xff0c;我们可能需要自己模拟实现一个类似于vector的数据结构。今天铁蛋将给…

CPU密集型计算、IO密集型计算、多进程、多线程

参考链接&#xff1a; 使用多进程multiprocessing模块加速程序的运行_哔哩哔哩_bilibili 什么是CPU密集型计算、IO密集型计算&#xff1a; CPU密集型&#xff1a; CPU密集型也叫计算密集型&#xff0c;是指I/O在很短的时间就可以完成&#xff0c;CPU需要大量的计算和处理&a…

javaweb学习day01(HTML)

一、B/S 软件开发架构简述 1 Java Web 技术体系图 2 B/S 软件开发架构简述 B/S架构 前端 后端 数据库 二、HTML 1 官方文档 地址: https://www.w3school.com.cn/html/index.asp 离线文档: W3School 离线手册(2017.03.11 版).chm 2 网页 3 HTML 介绍 3.1 HTML 是什么…

oop面向对象编程python

1.定义一个圆类&#xff08;Circle&#xff09;,求圆的面积和周长 import mathclass Circle():def __init__(self, R ,name):self.radius Rself.name namedef girth(self):return 2 * self.radius * math.pidef area(self):return self.radius ** 2 * math.pic1 Circle(10,&q…

Docker之nacos集群部署

前言 Nacos 是一个开源的注册中心和配置中心&#xff0c;用于实现微服务架构中的服务发现、服务治理和动态配置管理。在 Docker 中使用 Nacos&#xff0c;你可以通过拉取官方提供的 Docker 镜像并运行容器的方式来快速部署 一.Nacos镜像拉取及独立模式 镜像拉取命令详解&…

【自动化测试】看完这篇文章,让你了解到你和大厂的差距到底在哪儿

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…