以上就是我的项目总结,同学们有问题或不同见解都可以在评论区留言哦 ! uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架 。
开发者通过编写 Vue.js 代码,uni-app 将其编译到 iOS、Android、微信小程序、支付宝小程序、百度小程序、 H5等多个平台,保证其正确运行并达到优秀体验。
uni-app在开发者数量、案例、跨端抹平度、扩展灵活性、性能体验、周边生态、学习成本、开发成本等8大关键指标上拥有更强的优势。
在这次uni-app商城项目中我负责商品分类、购物车、密码登录和手机登录等多个页面
1.商品分类 有滚动监听、点击左边栏到指定的商品区域
左右分别做个可滚动视图,为了适应不同机型要先获取屏幕高度
uni.getSystemInfo({
success: function(res) { // res - 各种参数自己输出查看
this_.gao = res.windowHeight-res.statusBarHeight-res.statusBarHeight// 屏幕的宽高
}
});
调节滚动视图的高度
滚动监听
2.购物车 编辑删除以选商品 全选按钮 商品数量增加减少和总价计算等
点击编辑有个显示隐藏删除按钮 删除通过按钮获取该商品信息后删除
全选按钮和单选按钮我是点击后通过显示隐藏来切换图片
<view class="ahd-ra-2" >
<image class="viace" v-if="item.checked" @click="handleSelectRadio(index)" src="../../../../static/shoppingImg/fill.png"></image>
<image class="viace" v-else @click="handleSelectRadio(index)" src="../../../../static/shoppingImg/mai.png"></image>
</view>
handleSelectRadio(e) {//单选中 全部选中时全选选中
let that = this;
that.dad[e].checked = !that.dad[e].checked; //反选
for (let i = 0; i < that.dad.length; i++) {
if (!that.dad[i].checked) {
that.kmaye1 = true;
}
}
that.kmaye1 = !that.kmaye1;
this.comBined();
},
handlekmaye1(){//全选选中时 让所有商品也选中
let that = this;
that.kmaye1 = !that.kmaye1;
for (let i in that.dad) {
that.dad[i].checked = that.kmaye1;
}
if(this.dad.length == 0){ //列表为空时全选按钮为false
this.kmaye1 = false;
}
this.comBined();
}
商品数量增加减少和总价计算的方法
reduction (e){//减少数量 当数量等于最小值时就等于最小值
let that = this;
if(that.dad[e].num > that.dad[e].minnum){
that.dad[e].num = that.dad[e].num - 1;
this.comBined();
}
},
add(e){//点击添加数量
let that = this;
if(that.dad[e].num < that.dad[e].maxnum){
that.dad[e].num ++;
this.comBined();
}
},
comBined(){//计算总计价格
let nmb = 0;
for (var j = 0; j < this.dad.length; j++) {
if(this.dad[j].checked){
for (var i = 0; i < this.dad.length; i++) {
if(this.dad[i].checked){
nmb += this.dad[i].pprice * this.dad[i].num;
this.money = parseFloat(nmb.toFixed(2));
}
}
return
}
}
this.money = 0;
}
3.密码登录和手机登录
btn: function() {
let this_ =this
if (this.account.length <= 0) {
uni.showToast({
icon: 'none',
title: '请输入用户名'
});
return;
}
if (this.pas.length <= 0) {
uni.showToast({
icon: 'none',
title: '请输入密码'
});
return;
}
uni.request({
url: 'http://ceshi3.dishait.cn/api/login', //仅为示例,并非真实接口地址。
data: {
username:this_.account,//user2
password:this_.pas//zcmcss
},
method: 'POST',
success: (res) => {
this_.miyao = res.data
uni.setStorage({
key:"miyao",
data:res.data
});
console.log(this_.miyao)
uni.showToast({
icon: 'none',
title: res.data.msg
});
if (res.data.msg == "ok") {
uni.showToast({
icon: 'none',
title: '登录成功'
});
return;
};
},
fail: () => {
uni.showToast({
icon: 'none',
title: '网络异常,请稍后重试'
});
},
})
}
以上就是我的项目总结,如果有问题或不同见解都可以在评论区留言讨论!