首页 > 其他分享 >uniapp业务实现

uniapp业务实现

时间:2024-09-13 15:21:29浏览次数:14  
标签:uniapp 轮播 实现 res 业务 设置 uni data 请求

uni.requset添加异常判断提示,以及加载动画


	/**
	 * 该函数用于发送网络请求获取数据
	 * 请求失败时会弹出相应的错误提示
	 * 请求成功时会检查返回的数据是否存在错误,并根据错误代码做出相应处理
	 * 如果数据请求成功且无错误,则将返回的数据赋值给pets变量
	 */
	function notwork() {
		//显示页面加载动画
		// uni.showLoading();
		//显示标题加载动画
		uni.showNavigationBarLoading()
		// 发起网络请求,使用uni.request方法请求数据
		uni.request({
			// 请求的URL地址
			url: 'https://tea.qingnian8.com/tools/taoShow',
			// 请求的参数,指定每次请求返回数据的大小
			data: {
				size: 10
			},
			// 请求头,添加访问密钥以认证请求身份
			header: {
				'access-key': "581428"
			}
		}).then((res) => {

			// 检查请求返回的数据是否包含错误
			if (res.data.errCode === 0) {
				// 如果没有错误,则将返回的数据赋值给pets变量
				pets.value = res.data
			} else if (res.data.errCode === 400) {
				// 如果返回的错误代码为400,则弹出错误信息提示
				uni.showToast({
					title: res.data.errMsg,
					icon: 'none',
					duration: 1500
				})
			}
		}).catch((err) => {

			// 如果请求失败,则弹出错误提示,提示用户刷新页面
			uni.showToast({
				title: '请求有误,请重新刷新',
				icon: 'none',
				duration: 1500
			})
		}).finally(() => {
			// 取消页面加载动画
			// uni.hideLoading();
			//取消标题加载动画
			uni.hideNavigationBarLoading()
			// 请求失败后的最终操作,此处打印一条日志信息
			console.log('校验结束');
		})
	}

实现触底加载


//页面触底事件
onReachBottom(() => {
//调用uni.request重新渲染数据
	notwork()
})

使用解构的方式,为数组底部添加数据,实现触底刷新

// 检查请求返回的数据是否包含错误
		if (res.data.errCode === 0) {
			// 如果没有错误,则将返回的数据赋值给pets变量
			pets.value = [...pets.value, ...res.data.data]
		} else if (res.data.errCode === 400) {
			// 如果返回的错误代码为400,则弹出错误信息提示
			uni.showToast({
				title: res.data.errMsg,
				icon: 'none',
				duration: 1500
			})
		}

底部触底安全区和触底加载动画组件

.loadMore {
				padding-bottom: calc(env(safe-area-inset-bottom) + 80rpx)
			}

加载组件

分段组件




<uni-segmented-control :current="current" :values="[11,22,33]" @clickItem="onClickItem" styleType="button"
				activeColor="#4cd964"></uni-segmented-control>

属性分析

:current
  • 作用:当前选中的索引。
  • 类型:Number。
  • 默认值:0。
  • 说明:表示当前选中的标签索引。
:values
  • 作用:所有的选项数组,每个元素代表一个可选的标签名称。
  • 类型:Array。
@clickItem
  • 作用:当选中的项发生变化时触发的事件。
  • 类型:Function。
  • 说明:当用户点击某个标签时,会触发这个事件,并传递一个事件对象 e,其中包含当前选中的索引。
styleType
  • 作用:样式类型,设置为按钮样式。
  • 类型:String。
  • 默认值text
  • 说明:这里设置为 button,表示标签将以按钮的形式展示。
activeColor
  • 作用:选中状态的文字颜色。
  • 类型:String。
  • 说明:设置选中状态的文字颜色为 #4cd964

轮播图实现



	<!-- 定义轮播图区域 -->
		<view class="banner">
			<!-- 使用swiper组件实现轮播效果,配置指示器颜色和自动播放 -->
			<swiper indicator-dots indicator-color="rgba(255, 255,255, 0.5)" indicator-active-color="#fff" autoplay>
				<!-- 遍历swiperTop数组,为每个轮播图项创建swiper-item -->
				<swiper-item v-for="item in swiperTop" :key="item.id">
					<!-- 为每个swiper-item添加图片,图片源由item.url指定 -->
					<image :src="item.url"></image>
				</swiper-item>
			</swiper>
		</view>

/**
 * 定义.banner类的样式,用于设置轮播图的容器样式
 */
.banner {
	// 设置轮播图容器的宽度为750rpx,确保在不同设备上的显示效果一致
	width: 750rpx;
	// 设置轮播图容器的内边距,上下各30rpx,实现内容与边界的间距
	padding: 30rpx 0;

	/**
	 * 定义swiper类的样式,用于设置轮播图的样式
	 */
	swiper {
		// 设置轮播图的宽度为750rpx,确保轮播图填满其容器
		width: 750rpx;
		// 设置轮播图的高度为340rpx,控制轮播图的展示大小
		height: 340rpx;

		/**
		 * 定义swiper-item类的样式,用于设置轮播图中每个轮播项的样式
		 */
		swiper-item {
			// 设置轮播项的宽度为100%,确保轮播项填满swiper容器
			width: 100%;
			// 设置轮播项的高度为100%,确保轮播项填满swiper容器
			height: 100%;
			// 设置轮播项的内边距,左右各30rpx,实现内容与边界的间距
			padding: 0 30rpx;

			/**
			 * 定义image类的样式,用于设置轮播图中图片的样式
			 */
			image {
				// 设置图片的宽度为100%,确保图片填满轮播项
				width: 100%;
				// 设置图片的高度为100%,确保图片填满轮播项
				height: 100%;
				// 设置图片的圆角为10rpx,实现图片边角的圆滑过渡效果
				border-radius: 10rpx;
			}
		}
	}
}

//顶层轮播图数据
var swiperTop = ref([{
	id: 1,
	url: '../../common/images/banner1.jpg'
}, {
	id: 2,
	url: '../../common/images/banner2.jpg'
}, {
	id: 3,
	url: '../../common/images/banner3.jpg'
}])

图片预览


/**
 * 预览图片函数
 * 
 * 该函数用于预览一系列图片中的某一张
 * 它首先收集所有宠物的图片URL,然后使用uni.previewImage方法进行预览
 * 
 * @param {number} index 需要预览的图片的索引
 */
function onPreview(index) {
	// 收集所有宠物的图片URL
	var urls = pets.value.map(item => item.url)
	// 使用uni.previewImage方法预览图片,传入当前图片的索引和所有图片的URL列表
	uni.previewImage({
		current: index,
		urls: urls
	})
}

标签:uniapp,轮播,实现,res,业务,设置,uni,data,请求
From: https://blog.csdn.net/a1241436267/article/details/142059582

相关文章

  • vc++ 6.0 实现代码的多行注释与取消注释功能(实测有效)
    方式一1.新建MacroFile宏文件点击菜单栏“文件→新建(File→New)”选项,在“新建(New)”弹框中,顶部区域选项“文件(File)”下找到MacroFile,点击,并在右边输入“文件名”,点击“确定(OK)”按钮。此时弹出“新建宏文件”窗口,在“描述(Descripion)”输入框中输入信息,点击“确定(OK)”按钮。......
  • Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用增强扩展(text2sq
    前言我在上一篇文章中《Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用(text2sql)》利用langchain中create_sql_agent创建一个数据库代理智能体,但是实测中发现,使用create_sql_agent在对话中,响应速度太慢了,数据的表越多,对话响应就越慢,这次本篇文章l......
  • 如何实现两个机器时间同步-计算rtt+offset
    背景:之前的项目大致可以分为两层,逻辑层和设备层,运行在同一个主机上。最近在着手搭建一个仿真平台,在另外一台主机上部署机器人机器相关硬件设备,比如陀螺仪,轮机,雷达等。由于两台主机的时间戳不同步问题,导致定位系统有问题,为此需要实现两个主机的时间同步。具体分两步:1)测量两主机......
  • 基于人脸识别技术的实验室门禁系统设计与实现 :人脸识别(源码+文档)
    目录一.研究目的二.需求分析三.硬件展示四.代码展示五.页面展示六.源码获取方式一.研究目的人脸识别技术在安全领域有着广泛的应用。传统的门禁系统通过使用密码、刷卡等方式进行识别和控制,但存在着弱点,例如,密码容易被破解,刷卡可能存在伪造。而人脸识别技术能够利用人......
  • 用Facebook广告提升本地业务的影响力
    你是否正在为扩大业务影响力和吸引更多本地顾客而苦恼?你是否在寻找能够让小型企业在网上广告中占据优势的精准营销策略?那么,Facebook本地广告和光年AI就是你的不二之选!你可能会问,为什么要选择Facebook广告和光年AI?它们不只是社交和增长工具吗?是时候打破这种固有观念,发现这两......
  • WPF 实现一个吃豆豆的Loading加载动画
    运行的效果如下 先引入一下我们需要的库在nuget上面搜一下"expression.Drawing",安装一下这个包 我们再创建一个Window,引入一下这个包的命名空间我们设置一下这个加载动画呈现的窗体的样式xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"......
  • Pyqt5 实现计算器
    计算器是练习pyqt5的好项目界面设计简单 代码如下:importsysfromPyQt5.QtWidgetsimport*fromPyQt5.QtCoreimportQtclassWindow(QWidget):def__init__(self):super().__init__()self.display=Noneself.buttons=None......
  • SOCKS5代理实现穿透与端口映射的终极指南
    在如今这个数字化信息时代,网络代理技术已经成为了许多互联网用户的必备工具。尤其是SOCKS5代理,它不仅能帮助我们实现穿透,还能进行端口映射。今天,我们就来深入探讨一下如何通过SOCKS5代理实现这些功能。什么是SOCKS5代理?SOCKS5代理是一种网络代理协议,它能够在客户端与服务器......
  • SpringBoot 整合 Activiti 实现工作流(项目源代码)
     前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务。......
  • 用Python实现时间序列模型实战——Day 19: 时间序列中的异常检测与处理
    一、学习内容1.时间序列中的异常检测方法在时间序列分析中,异常检测是识别时间序列中不同于正常行为的点。这些异常点可能是由于数据记录错误、极端事件或系统故障引起的,常见的异常检测方法包括:基于统计的方法:Z-score:计算每个数据点与其均值的标准差距离,判断其是否为异常......