基于区块链的宠物领养系统的设计与实现(源码+lw+部署文档+讲解等)

等保: Postgresql配置ssl链接 等保: postgresql配置ssl链接完整方案和避坑指南 阅读详情

 目录

博主介绍:  

程序视频演示:

系统技术介绍:

Mysql介绍

前后端分离架构介绍

功能截图:

代码参考:  

功能测试:

项目测试:

项目文档:

为什么选择我:

源码获取:


博主介绍:  

💗博主开发经历:全网拥有20W+粉丝、优快云作者、博客专家、全栈领域优质创作者、平台优质Java创作者、专注于Java、小程序、python、大数据、深度学习技术领域和毕业项目实战✌💟

Java精品实战案例《1000套》

2024-2026年最值得选择的Java毕业设计选题大全:1000个热门选题推荐✅✅✅

📲文章末尾源码+数据库📱
感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,博主免费解答、希望可以帮助更多人

​

视频演示:

文章底部名片,获取项目的完整演示视频,免费解答技术疑问

技术介绍:

Mysql介绍

   MySQL采用结构化查询语言SQL作为数据库操作的标准语言,具有高性能、高可靠性、易使用和跨平台等优点。MySQL支持多种存储引擎,如InnoDB、MyISAM等,其中InnoDB引擎支持事务处理、外键约束和崩溃恢复,适合对数据一致性要求较高的应用场景。MySQL遵循客户端-服务器架构,允许多个客户端同时访问同一个数据库,通过使用TCP/IP、Unix socket或命名管道等方式连接数据库。它提供了丰富的API接口,支持包括Java、Python、PHP、C++等多种编程语言,便于开发者进行二次开发。MySQL拥有强大的数据管理功能,支持视图、存储过程、触发器、事务、索引优化等高级特性,能够满足复杂的数据操作需求。

前后端分离架构介绍

  前后端分离架构是一种现代Web系统开发模式,其核心理念是将前端页面展示与后端业务逻辑进行解耦,从而实现职责划分更加清晰、开发协作更高效的开发流程。在该架构中,前端主要负责页面渲染、用户交互与界面展示,通常使用如Vue、React、Angular等前端框架来实现单页应用(SPA)或多页面应用;后端则使用Spring Boot、Node.js、Django等服务框架构建RESTful API或GraphQL接口,专注于处理业务逻辑、数据处理与权限控制。前后端通过HTTP协议或Ajax请求进行通信,采用JSON格式进行数据传输,实现数据与视图的分离。前后端分离架构的优势显著,一方面可以实现前端与后端并行开发,提高开发效率,降低模块间的耦合度,另一方面也便于系统的维护与扩展,例如前端页面可灵活替换为移动端App、小程序等不同形式,而无需改动后端接口。同时,该架构更适合于分布式与微服务架构的演进,有助于系统的模块化与服务化部署。

功能截图:

  

 

 

代码参考:  

/**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ForumEntity forum){
        EntityWrapper< ForumEntity> ew = new EntityWrapper< ForumEntity>();
 		ew.allEq(MPUtil.allEQMapPre( forum, "forum")); 
		ForumView forumView =  forumService.selectView(ew);
		return R.ok("查询论坛交流成功").put("data", forumView);
    }
	
    /**
     * 后台详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ForumEntity forum = forumService.selectById(id);
        Map<String, String> deSens = new HashMap<>();
        //给需要脱敏的字段脱敏
        DeSensUtil.desensitize(forum,deSens);
        return R.ok().put("data", forum);
    }

    /**
     * 前台详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ForumEntity forum = forumService.selectById(id);
        Map<String, String> deSens = new HashMap<>();
        //给需要脱敏的字段脱敏
        DeSensUtil.desensitize(forum,deSens);
        return R.ok().put("data", forum);
    }
    
	/**
     * 论坛详情
     */
	@IgnoreAuth
    @RequestMapping("/list/{id}")
    public R list(@PathVariable("id") String id){
        ForumEntity forum = forumService.selectById(id);
        getChilds(forum);
        return R.ok().put("data", forum);
    }

    /**
    *  获取子节点
    */
    private ForumEntity getChilds(ForumEntity forum) {
    	List<ForumEntity> childs = new ArrayList<ForumEntity>();
    	childs = forumService.selectList(new EntityWrapper<ForumEntity>().eq("parentid", forum.getId()));
    	if(childs == null || childs.size()==0) {
    		return null;
    	}
    	forum.setChilds(childs);
    	for(ForumEntity forumEntity : childs) {
    		getChilds(forumEntity);
    	}
    	return forum;
    }



    /**
     * 后台保存
     */
    @RequestMapping("/save")
    @SysLog("新增论坛交流") 
    public R save(@RequestBody ForumEntity forum, HttpServletRequest request){
        //ValidatorUtils.validateEntity(forum);
    	forum.setUserid((Long)request.getSession().getAttribute("userId"));
        forumService.insert(forum);
        return R.ok().put("data",forum.getId());
    }
    
    /**
     * 前台保存
     */
    @SysLog("新增论坛交流")
    @RequestMapping("/add")
    public R add(@RequestBody ForumEntity forum, HttpServletRequest request){
        //ValidatorUtils.validateEntity(forum);
    	forum.setUserid((Long)request.getSession().getAttribute("userId"));
        forumService.insert(forum);
        return R.ok().put("data",forum.getId());
    }



     /**
     * 获取用户密保
     */
    @RequestMapping("/security")
    @IgnoreAuth
    public R security(@RequestParam String username){
        ForumEntity forum = forumService.selectOne(new EntityWrapper<ForumEntity>().eq("", username));
        return R.ok().put("data", forum);
    }


    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    @IgnoreAuth
    public R update(@RequestBody ForumEntity forum, HttpServletRequest request){
        //ValidatorUtils.validateEntity(forum);
        //全部更新
        forumService.updateById(forum);
        return R.ok();
    }



    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    @SysLog("删除论坛交流")
    public R delete(@RequestBody Long[] ids){
        forumService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
	/**
     * 前台智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,ForumEntity forum, HttpServletRequest request,String pre){
        EntityWrapper<ForumEntity> ew = new EntityWrapper<ForumEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
        // 组装参数
		Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Object> entry = it.next();
			String key = entry.getKey();
			String newKey = entry.getKey();
			if (pre.endsWith(".")) {
				newMap.put(pre + newKey, entry.getValue());
			} else if (StringUtils.isEmpty(pre)) {
				newMap.put(newKey, entry.getValue());
			} else {
				newMap.put(pre + "." + newKey, entry.getValue());
			}
		}
		params.put("sort", "clicktime");
        params.put("order", "desc");

		PageUtils page = forumService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, forum), params), params));
        return R.ok().put("data", page);
    }

功能测试:

测试编号

测试用例描述

预期结果

测试结果

1

输入正确的用户名和密码进行登录

登录成功,重定向至系统首页

通过

2

输入错误的用户名或密码进行登录

登录失败,显示错误提示信息

通过

3

连续多次输入错误的用户名或密码

账户被锁定,显示锁定提示信息

通过

4

输入已锁定的账户信息

登录失败,显示账户锁定提示信息

通过

5

点击“忘记密码”链接,按照流程重置密码

密码重置成功,可使用新密码登录

通过

测试总结:

   Spring Boot前后端分离项目功能测试是确保系统稳定性和用户体验的重要环节,通过对前端Vue页面与后端Spring Boot接口进行协同测试,可以有效验证各项功能是否按预期实现。首先需要进行接口测试,使用Postman或JMeter等工具对后端RESTful接口进行验证,检查接口的请求方法、参数、返回数据格式以及异常处理是否符合规范,其次是功能测试,结合用户角色进行完整的业务流程测试,例如用户注册、登录、数据查询、信息提交、权限控制等常见操作,通过手动或自动化测试工具确保各模块逻辑正确且交互顺畅。在前后端联调阶段,需要特别关注接口兼容性与前端展示效果,避免因接口变化导致前端功能异常或页面渲染错误,同时需关注跨域问题、接口超时、无权限访问等边界情况。测试过程中还应进行输入校验测试,包括前端表单校验与后端数据校验,避免非法输入引发系统崩溃。此外,功能测试还应涵盖异常路径测试、权限边界测试及数据一致性测试,确保系统在各种操作情况下都能稳定运行。

项目文档:

​

为什么选择我:

   博主自己就是程序员、避免中介对接:博主拥有多年java软件开发经验,累计开发或辅导多名同学。有程序需求的可以随时提问,博主可以免费解答疑问。(java、python、大数据、小程序和安卓等技术等可以)

   拥有丰富开发经验:所有程序博主都自己参与开发,能够解答所有Java程序的技术难题、包远程运行调试!

源码获取:

2025-2026年最值得选择的Java毕业设计选题大全:1000个热门选题推荐✅✅✅

Java精品实战案例《1000套》

文章下方名片联系我即可~
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

统计信号处理基础 习题解答1-1 1-1:在雷达习题中,双程延时时间的估计量具有PDF τ0~Nτ0,στ02,其中τ0是真值。假如要估计距离请提出一种估计量R,并求它的PDF。然后,确定标准偏差στ0,使得距离估计值的99%在真值的100m以内,对电磁波传播速度取c=3×108m/s。 解答: 问题1: 由于电磁波传播速度c,信号可观察的双程传播延时τ0和双程传播距离τ0满足关系: R=cτ02 因此可采用如下估计量: R=cτ02 问题2: 由于τ0满足正态分布,且: Eτ0=τ0 varτ0=στ02 那么: E 阅读详情

相关推荐

深入理解Cornerstone3D.js渲染Stack影像数据

这个是调用的core\src下的init.ts的init方法,作用是:初始化cornerstone-core,检测客户端是否支持WebGL,默认情况下是支持中等GPU层级.另外一个重要的是实例化WebWorkManager.WebWorkManager类似于Java的线程池,是用来对Web Worker进行管理的管理器。使用DICOMwebClient获取影像文件的元数据,然后将它们缓存到imageLoader的metaDataManager中,在上面我们可以输出元数据看一下是什么。

wangwei19820517的博客 1495

基于java+springboot的宠物认领系统(源码+lw+部署文档+讲解等)

在我国宠物经济规模突破 5000 亿元(2024 年中国宠物行业白皮书数据)、流浪动物数量超 4000 万的背景下,传统宠物认领模式存在信息不透明(虚假领养信息占比超 30%)、流程繁琐(审核周期平均 15 天)、后续跟踪缺失(领养后回访率不足 40%)等痛点。中国小动物保护协会调研显示,超 70% 的流浪动物救助机构缺乏系统化管理工具,65% 的领养人对领养流程不满意,导致流浪动物领养率仅为 15%,弃养率高达 25%。《"十四五" 城乡社区服务体系建设规划》明确提出 "推进动物保护信息化",传统依赖线下

专注于大学生项目实战开发,讲解,毕业答疑辅导,java就业辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。全网粉丝10w+,平台优质创作者。 1196

【Hadoop】开发插件安装

前言 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse的插件机制是轻型软件组件化架构。在客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java...

weixin_44039347的博客 3209

基于区块链的流浪猫领养系统宠物动物领养管理系统(源码+lw+部署文档+讲解等)

💗博主开发经历:全网拥有20W+粉丝、优快云作者、博客专家、全栈领域优质创作者、平台优质Java创作者、专注于Java、小程序、python、大数据、深度学习技术领域和毕业项目实战✌💟Java精品实战案例《1000套》2024-2026年最值得选择的Java毕业设计选题大全:1000个热门选题推荐✅✅✅📲文章末尾源码+数据库📱MySQL采用结构化查询语言SQL作为数据库操作的标准语言,具有高性能、高可靠性、易使用和跨平台等优点。

leishencode的博客 350

YOLOV8多模态(可见光+红外光目标检测任务,基于Ultralytics官方代码实现)

torch 2.3.1 torchvision 0.18.1 Python 3.8.19 tensorrt 8.5.3.1DroneVehicle数据集下载地址DroneVehicle 数据集由无人机采集的 56,878 张图像组成,其中一半是 RGB 图像,其余是红外图像。我们为这 5 个类别制作了丰富的注释,其中包含定向边界框。其中,汽车在 RGB 图像中有 389,779 个注释,在

Mjy的博客 7585

在国产麒麟V10(arm64)上离线部署Docker 24.0.6和Compose 2.30.1,保姆级避坑实录

本文详细介绍了在国产麒麟V10(arm64)操作系统上离线部署Docker 24.0.6和Compose 2.30.1的完整流程,包括环境准备、架构认知、安装步骤、系统服务优化及生产环境加固。特别针对ARM64架构的兼容性问题提供了解决方案,帮助用户在信创环境中高效部署容器化技术。

weixin_30342209的博客 485

基于springboot+vue的宠物领养系统(源码+lw+部署文档+讲解等)

Spring Boot 是基于 Spring 框架的快速开发框架,旨在简化企业级应用的开发过程。它通过自动配置、内嵌服务器(如Tomcat)、简化依赖管理等特性,大幅减少了繁琐的配置工作,使开发者能更专注于业务逻辑的实现。Spring Boot 支持主流数据库、缓存、消息队列等常用组件,提供强大的RESTful接口支持,广泛应用于微服务架构开发中。其项目结构清晰,适合构建可维护、可扩展的系统。使用Spring Boot能有效提升开发效率,加快项目上线速度。。黑盒测试和白盒测试是软件测试中常用的两种方法。

java学长的博客 307

魔百和CM211-1刷Armbian全流程:从安卓盒子到Linux服务器的完美变身

本文详细介绍了如何将魔百和CM211-1机顶盒刷入Armbian系统,实现从安卓盒子到Linux服务器的完美变身。涵盖硬件兼容性验证、固件选择、刷机流程、系统优化及常见问题解决,特别适合技术爱好者低成本搭建家庭NAS或开发环境。

weixin_30329623的博客 243

微信小程序:下拉刷新事件

环节配置位置关键项开启app.json的window(全局)或页面.json(局部)样式同上监听页面.js停止页面.js易错点提醒触发后若不手动调用,下拉 loading 会一直转不停。

dreams_dream的博客 256

如何在win11中用双硬盘或移动硬盘装Ubuntu 20.04 双系统

win11 安装双系统

qq_42817360的博客 5143

手把手教你学Simulink--单相逆变器模糊逻辑控制策略仿真

本文介绍了在Simulink中设计单相逆变器模糊逻辑控制策略的完整流程。主要包括:1)构建单相逆变器模型;2)使用FuzzyLogicToolbox设计模糊控制器,定义输入输出变量和模糊规则;3)将控制器集成到Simulink模型;4)添加干扰源和示波器;5)配置仿真参数并分析结果。该方法利用模糊控制处理非线性系统的优势,可实现输出电压的精确跟踪,具有良好的鲁棒性。文中提供了详细的步骤说明和示例代码,强调准确设计隶属函数和规则库对控制性能的关键作用。该仿真设计为电力电子控制系统的开发提供了有效支持。

MHD0815的博客 203

微信小程序练习:基本绘图

Canvas 2D 初始化:SelectorQuery 获取节点后,按pixelRatio放大画布再,保证高清屏清晰。基本图形arc画圆弧(配合fillstroke得到实心圆/轮廓圆);moveTolineTostroke画折线;画虚线。样式设置fillStyle(填充色)、(描边色)、lineWidth(线宽)、lineCap(端点样式)、lineJoin(交点样式)。文本绘制font设置字体,绘制文字,控制基线,rotate旋转画布。渐变创建径向渐变,添加色标,赋值给fillStyle后填充。

2401_87969251的博客 202

航天设备研制中的形态分类:电性件、正样件及其他关键形态详解

航天设备的研制是一个高度复杂且严谨的工程过程,涉及多个阶段的不同产品形态。这些形态各具特点,在研制流程中承担着不同的验证任务和工程目标。本文将系统介绍航天设备研制中的主要形态,包括**电性件(EM)**、**正样件(FM)**以及**结构热控件(STM)**、**鉴定件(QM)**和**初样件(PFM)**等,详细解析它们的定义、用途和工程意义,帮助读者全面理解航天产品从设计到飞行的全生命周期管理。

ScilogyHunter的博客 1666

微信小程序 Canvas 图形变换实战

图形变换的本质是坐标系变换。只要牢记「save → 变换 → 绘制 → restore」四步,就能把任意复杂的图形组合出来。

2401_87969251的博客 160

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

微信小程序练习:照相和摄像

本案例覆盖了 Canvas 2D 最常用的绘图 API,重点在于「节点查询 → 像素比适配 → 上下文操作」这条主线。掌握之后,接入图表库、实现签名板或小游戏都不再困难。

2401_87969251的博客 154

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

微信小程序小区充电位锁了不充或充满不走:先核锁位时效与超时计费公示,再查异常升级

昨日 优快云 的。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 165

智慧派出所警民融合管理系统(PC端+微信小程序)

智慧派出所警民融合管理系统(PC端),包括反诈宣传管理、诈骗线索信息、注册用户管理。反诈宣传管理,对诈骗案例、诈骗防范信息进行发布、管理。诈骗线索信息,实现诈骗线索举报信息管理,包括文字、图片线索,并对举报信息进行反馈。智慧派出所警民融合系统结合微信小程序的优势,打造线上警民融合小程序警务系统,提供高效的警务管理手段,拓展便民服务空间;辖区群众只需在网上提交申请材料,管理平台审核通过即可自动完成业务办理,解决群众往返跑路的麻烦,网上办事更轻松。#智慧警务#微信小程序#app开发#移动互联网。

m0_49367516的博客 233

微信小程序-wxs

在微信开发者工具中右键创建.wxs后缀的文件。每个.wxs文件也是一个独立模块,同样使用导出内容。示例(文件return d;FOO: foo,bar: bar(外联定义参考官方文档)

dreams_dream的博客 379

农管家微信小程序系统

该系统支持微信小程序和抖音小程序多端部署,具备图文/评价两种内容模式,实现了专家问答、消息推送、关注提醒、分享自定义等核心功能,是农业信息化、数字化转型的实用工具。A:农管家适合农业种植户、农业技术专家、农业企业、农业服务机构以及农业电商平台使用。A:专家可通过小程序申请入驻,提交相关资质证明(如农业技术职称、从业经历等),经平台审核通过后即可成为认证专家,接受用户邀请并获得相应权益。

sw7cc的博客 133

如何快速实现微信小程序 累计独立访客 (UV) > 100,解锁流量主

本文分享如何快速达成微信小程序100+累计独立访客(UV)以解锁流量主资格。尽管门槛低,但对内向开发者而言推广难。作者呼吁网友扫码支持,既助力变现,也积累开发经验。建议通过社交裂变、内容引流或合作互推等方式高效获客,实现低成本突破流量瓶颈。

抬头30°的微笑的专栏 49

微信小程序 chooseImage 后 uploadFile 失败:先核 uploadFile 合法域名与表单字段,再查大小超时与临时路径

相册选图成功、临时路径也有了,一调 wx.uploadFile却报、超时或服务端收不到文件——这和今日已写的、知乎侧「审核被拒先对类目/隐私/测试账号」,以及一串 WordPress / WooCommerce 专题(CDN 静态 404、优惠券无效、DB 连接、CPT 404、评论转圈、站内搜索、.maintenance)。——先核与name,再查,别把「request 域名通了」当成上传也通了。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 138

微信小程序:页面导航

页面导航指的是页面之间的相互跳转。

dreams_dream的博客 363

微信小程序节日订座口头占桌当晚放空或两拨抢桌:先核定金锁桌与免费取消时限,再查宽限期自动释放

节假日火锅店最怕两种场面:客人口头订了三桌,当晚一桌都没来,黄金时段空转;或者两拨人都说「订过这桌」,前厅经理现场调解,空桌又不敢放给等位的人。这和今早已发的,以及昨日 优快云 的,还有知乎侧「材料预检不过不放正式号」「维修单未确认不开工」。——先核与,再查,别把「名额支付锁」「寄养续住档期」或「私教改期日历」当成桌位也不会空转。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 299

微信小程序打开另一个小程序失败、半屏弹不出来甚至从那边回来拿不到数据?navigateToMiniProgram 怎么接才稳

点了「打开另一个小程序」,确认框一闪而过、半屏卡住空白,或者对方办完事回来,本页却拿不到单号和状态——这多半不是「跳转接口坏了」,而是调用时机、可跳转名单、打开方式和回传数据没对上。下面按「先分清是没调起来、半屏失败,还是回来没接到数据 → 在用户点击里调用并配齐 appId、path 和 extraData → 半屏打不开时再降级成整页跳转 → 在 onShow 里认 referrerInfo,不要把成功回调当成已经返回」来接。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 185

微信小程序租赁归还说本来就坏或配件对不上:先核借还点验与随单存证,再查差异计价公示

租赁归还最怕两种场面:顾客把玩具车、婴儿推车或摄影器材送回来,指着一道划痕说「借出去的时候就这样」,店员觉得借出时是好的,可柜台里既没有当时的照片,也没有双方勾过的清单和签字,争执只能停在口头上;另一种是充电器、遥控或背带对不上数目,双方各凭印象,最后为了息事宁人把押金先放掉,事后再想调证据,相册和聊天记录却对不到这张订单。这和今日 优快云 已发的、同日待审的、昨日 优快云 的、此前的,以及知乎侧「订座宽限与候补」「美睫时长配置」「咖啡时段库存」「自提拣货状态」「材料预检门禁」「维修开工确认」,。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 97

微信小程序场地长租月底对不上或口头占场撞场:先核合约预约与核销流水出账,再查附加费与转租归属

场地长租最怕两种场面:熟客口头说一句「周三晚上老时间」,档期里没有记录,两拨人撞在同一片场;或者月底结账只能翻聊天记录,打了几场、免了哪次、灯光费谁出,各说各话。店长拿着对不上的数字找客户,客户说「我月月都在」,前台却拿不出核销流水。这和今早 优快云 已发的、昨日 优快云 的,以及知乎侧「美睫款式时长与卸睫加时」,。——先核与,再查与,别把「散客订场爽约罚则」或「打开站点却在下载源码」当成月结对账的答案。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 191

微信小程序照相与摄像功能实现——chooseImage 与 chooseVideo 详解

和是获取用户图片、视频最常用的两个 API,配合imagevideo组件即可完成完整的照相摄像功能。扩展的"预览图片"按钮通过disabled绑定数据状态来控制可用性,是一个很实用的交互细节。

2401_87969251的博客 165
上一篇: 基于区块链的志愿服务预约与管理平台
下一篇: 基于区块链的新能源汽车销售数据分析系统(源码+lw+部署文档+讲解等)
雷神定制开发
博客等级 码龄1年 1322粉丝 548原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值