bui实战总结

本文分享了使用BUI框架完成移动端项目的工作流经验,重点介绍了如何利用bui.pullrefresh()实现下拉刷新功能,包括页面数据的异步加载、数据存储的正确操作以及与服务器交互的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为项目进度加快,帮助同事用bui用完成了一个工作流,完成的过程中感觉到难度还是挺高的,涉及到的判断和逻辑比较多。

因为是移动端项目,我选择了bui来完成。

 

问题一..基础知识的问题,本地存储中localstorage.getItem()的使用,在存取数组和对象时,要进行转化,通过JSON.stringify()和

JSON.parse()来实现数据的正确存取。

 

问题二. 下拉刷新控件    bui.pullrefresh()

 

<input type="hidden" id="pages" name="pages" value="">
<input type="hidden" id="pageNum" name="pageNum" value="1"/>


/*
		 * @name: 特殊人员的获取
		 * @Date: 2019-12-04 11.30
		 * @params: url 请求数据的url地址
		 * @return arr 
		 */
		function getSpecialPerson() {
			if($("pages").val()==$("#pageNum").val()){
				bui.hint("已到最底端");
				return false;
			} 
			uiLoading.show();
			 //var pagesize =10;
			//接受老师下面对应的课程数组 getCoursePageInfoData
	     	uiLoading.show();
			bui.ajax({
				url: getRootPath() + '/webchatUser/queryUserHaveDepartment.action',
				async: false,
				data: {
					page:parseInt($("#pageNum").val())+1,
                    limit:10
				},
				method: "POST"
			}).then(function(res) {
				uiLoading.hide();
			/* 	normalPage = res.pageNum+1
				if(res.pages == normalPage){
					bui.hint("已到最底端");
				}else  */
				  //if(res.pages > normalPage){
				//if(res.code==1){
					if(uiPullRefresh){
						if (res.code == 1) { // 为空也要判断是否有值
					 		$("#pages").val(res.pages);
							$("#pageNum").val(res.pageNum);
							specialPersonDate_003 = res.data;
							
							//localStorage.setItem("specialPersonDate_003",JSON.stringify(specialPersonDate_003));
							
							if (specialPersonDate_003.length > 0) {
								//specialPersonArr_003 = [];
								for (var i = 0; i <specialPersonDate_003.length; i++) {
									//组装个对象,将对象push到数组中
									specialPersonArr_003.push({
										"name": specialPersonDate_003[i].srcName+" ("+specialPersonDate_003[i].departmentName+")",
										"image": specialPersonDate_003[i].namePic == null ? '../images/special_person.png' : ctxLocal + specialPersonDate_003[i].namePic,
										"value": specialPersonDate_003[i].autoId,
									});
								}
								//return specialPersonArr_003
								  uiSelectCustom =bui.select({
									id: "#scrollDisplay",
									popup: false,
									type: "checkbox",
									direction: "right",
									data: specialPersonArr_003,
									value: specialPersonArr_003_checked.split(","),
									onChange: function(e) {
										//获取选中的索引   value在这里拿到就是部门名称对应的id串, id1,id2,id3,id4
										var index = uiSelectCustom.index();
										specialPersonArr_003_checked = uiSelectCustom.value();
									},
								})
								uiPullRefresh.reverse();
							}
						}else if(res.code==0){
							
							bui.alert("服务器繁忙。稍后重试");
							uiPullRefresh.fail();
						}
					}else{
						if (res.code == 1) { // 为空也要判断是否有值
							$("#pages").val(res.pages);
							$("#pageNum").val(res.pageNum);
							/* uiPullRefresh.reverse(); */
							
							specialPersonDate_003 = res.data;
							
							//localStorage.setItem("specialPersonDate_003", JSON.stringify(specialPersonDate_003));
							
							if (specialPersonDate_003.length > 0) {
								for (var i = 0; i <specialPersonDate_003.length; i++) {
									//组装个对象,将对象push到数组中
									specialPersonArr_003.push({
										"name": specialPersonDate_003[i].srcName+" ("+specialPersonDate_003[i].departmentName+")",
										"image": specialPersonDate_003[i].namePic == null ? '../images/special_person.png' : ctxLocal + specialPersonDate_003[i].namePic,
										"value": specialPersonDate_003[i].autoId,
									});
								}
								return specialPersonArr_003
							}
						}else if(res.code==0){
							bui.alert("服务器繁忙。稍后重试");
							uiPullRefresh.fail();
						}
					}
				//}
				  
			}, function(res, status) {
				bui.alert("服务器繁忙,稍后重试");
			})
		}

 * uiPullRefresh.reverse();这里需要注意的是位置,必须是元素渲染完成后,通过uiPullRefresh.reverse()实现下拉刷新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuaaaa3944210

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值