Kaynağa Gözat

fix: 四大tab也进入进行登录验证,修正创建订单报错问题

undefined
dengxupeng 4 yıl önce
ebeveyn
işleme
14b104a55c
5 değiştirilmiş dosya ile 128 ekleme ve 118 silme
  1. +1
    -0
      addons/unishop/uniapp/uni-shop/main.js
  2. +21
    -19
      addons/unishop/uniapp/uni-shop/pages/category/category.vue
  3. +47
    -41
      addons/unishop/uniapp/uni-shop/pages/index/index.vue
  4. +36
    -36
      addons/unishop/uniapp/uni-shop/pages/order/createOrder.vue
  5. +23
    -22
      addons/unishop/uniapp/uni-shop/pages/user/user.vue

+ 1
- 0
addons/unishop/uniapp/uni-shop/main.js Dosyayı Görüntüle

@@ -171,6 +171,7 @@ const request = async (url, method = 'GET', data = {}, showMsg = true) => {

// 跳转判断是否登录
const navTo = (url, check = true) => {
console.log(1111111111, url)
if (check && !Vue.prototype.$store.state.hasLogin) {
url = '/pages/public/login';
}


+ 21
- 19
addons/unishop/uniapp/uni-shop/pages/category/category.vue Dosyayı Görüntüle

@@ -35,38 +35,40 @@

},
onShareAppMessage(e){
},
onLoad(){
this.loadData();
},
methods: {
async loadData(){
var that = this;
//let list = await this.$api.json('cateList');
let list = await this.$api.request('/category/all');
if (list) {
uni.stopPullDownRefresh();
list.forEach(item=>{
if(item.pid == 0){
if (that.currentId == 0) {
that.currentId = item.id;
let login = await this.$api.checkLogin();
if (login) {
var that = this;
//let list = await this.$api.json('cateList');
let list = await this.$api.request('/category/all');
if (list) {
uni.stopPullDownRefresh();
list.forEach(item=>{
if(item.pid == 0){
if (that.currentId == 0) {
that.currentId = item.id;
}
this.flist.push(item); //pid为父级id, 没有pid或者pid=0是一级分类
}else {
this.slist.push(item); //没有图的是2级分类
}
this.flist.push(item); //pid为父级id, 没有pid或者pid=0是一级分类
}else {
this.slist.push(item); //没有图的是2级分类
}
})
})

}
}
},
//一级分类点击
tabtap(item){
if(!this.sizeCalcState){
this.calcSize();
}
this.currentId = item.id;
let index = this.flist.findIndex(fitem=>fitem.id === item.id);
this.tabScrollTop = this.flist[index].top;
@@ -190,7 +192,7 @@
font-size: 26upx;
color: #666;
padding-bottom: 20upx;
image{
width: 140upx;
height: 140upx;


+ 47
- 41
addons/unishop/uniapp/uni-shop/pages/index/index.vue Dosyayı Görüntüle

@@ -120,7 +120,7 @@
<text class="title clamp">{{ item.title }}</text>
<text class="price">¥{{ item.price }}</text>
</view>
<view class="more">
<view class="more">
<text>查看全部</text>
<text>More+</text>
</view>
@@ -215,7 +215,7 @@ export default {
};
},
computed:{
},
onLoad() {
this.loadData();
@@ -232,52 +232,58 @@ export default {
this.loadData();
},
onShareAppMessage(e) {
},
methods: {
/**
* 请求静态数据只是为了代码不那么乱
* 分次请求未作整合
*/
loadData() {
async loadData() {
let that = this;
//获取广告图
uni.request({
url: that.$unishow + '/ads/index',
success(res) {
let carouselList = res.data.data;
that.titleNViewBackground = carouselList[0].background;
that.swiperLength = carouselList.length;
that.carouselList = carouselList;
}
});
//获取菜单栏
uni.request({
url: that.$unishow + '/category/menu',
success(res) {
that.menu = res.data.data;
}
});
uni.stopPullDownRefresh();
this.getFlash();
this.getProduct();
let login = await this.$api.checkLogin();
if (login) {
//获取广告图
uni.request({
url: that.$unishow + '/ads/index',
success(res) {
let carouselList = res.data.data;
that.titleNViewBackground = carouselList[0].background;
that.swiperLength = carouselList.length;
that.carouselList = carouselList;
}
});

//获取菜单栏
uni.request({
url: that.$unishow + '/category/menu',
success(res) {
that.menu = res.data.data;
}
});

uni.stopPullDownRefresh();

this.getFlash();

this.getProduct();
}

},
// 获取产品列表
async getProduct() {
let goodsList = await this.$api.request('/product/lists', 'GET', {page:this.page, pagesize:this.pageSize});
if (goodsList) {
if (goodsList.length > 0) {
goodsList.forEach(item=>{
this.goodsList.push(item);
});
this.page++;
} else {
this.$api.msg('没有更多数据');
let login = await this.$api.checkLogin();
if (login) {
let goodsList = await this.$api.request('/product/lists', 'GET', {page:this.page, pagesize:this.pageSize});
if (goodsList) {
if (goodsList.length > 0) {
goodsList.forEach(item=>{
this.goodsList.push(item);
});
this.page++;
} else {
this.$api.msg('没有更多数据');
}
}
}
},
@@ -315,10 +321,10 @@ export default {
},
// 跳转页面
navTo(url){
uni.navigateTo({
uni.navigateTo({
url
})
},
})
},
// 跳转到商品列表
navToList(fid) {
uni.navigateTo({


+ 36
- 36
addons/unishop/uniapp/uni-shop/pages/order/createOrder.vue Dosyayı Görüntüle

@@ -17,15 +17,15 @@

<image class="a-bg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAAAFCAYAAAAaAWmiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Rjk3RjkzMjM2NzMxMTFFOUI4RkU4OEZGMDcxQzgzOEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Rjk3RjkzMjQ2NzMxMTFFOUI4RkU4OEZGMDcxQzgzOEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGOTdGOTMyMTY3MzExMUU5QjhGRTg4RkYwNzFDODM4RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGOTdGOTMyMjY3MzExMUU5QjhGRTg4RkYwNzFDODM4RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrEOZlQAAAiuSURBVHjazJp7bFvV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"></image>
</navigator> -->
<view class="progress" v-if="progress.number">
<!-- <ProgressBar
class="ProgressBar"
:Sold="progress.sold"
<!-- <ProgressBar
class="ProgressBar"
:Sold="progress.sold"
:widthUpx="250"
:Width="percentage(progress.number, progress.sold)"
Type="candy"
:Width="percentage(progress.number, progress.sold)"
Type="candy"
:Vice="true"></ProgressBar> -->
</view>

@@ -173,7 +173,7 @@

if (options.hasOwnProperty('cart')) {
this.cart = options.cart;
// 从购物车进入
// 从购物车进入
this.getOrderCreate({
cart: options.cart
});
@@ -238,7 +238,7 @@
this.couponList = data.coupon;
this.deliveryList = data.delivery;
this.calcTotal();
if (data.flash) {
this.progress = data.flash;
}
@@ -262,7 +262,7 @@
this.payType = type;
},
async submit() {
// // 如果没有地址则提示先加地址
// if (!this.addressData || !this.addressData.hasOwnProperty('city_id')) {
// this.$api.msg('请选择收货地址');
@@ -277,7 +277,7 @@
let coupon_id = 0;
if (this.couponList && this.couponList[this.useCouponIndex] && this.couponList[this.useCouponIndex].id) {
coupon_id = this.couponList[this.useCouponIndex].id;
}
}
let data = {
// city_id: this.addressData.city_id,
// address_id: this.addressData.id,
@@ -305,11 +305,11 @@
let result = await this.$api.request(apiUrl, 'POST', data);
if (result) {
this.submitLock = false; // 解除锁
this.$api.msg('已提交', 2000);
this.$api.msg('已提交', 2000);
uni.redirectTo({
url: `/pages/money/pay?order_id=${result.order_id}&total=${this.total}&out_trade_no=${result.out_trade_no}`
});
}
}
this.submitLock = false; // 解除锁
},
stopPrevent() {},
@@ -364,29 +364,29 @@
// first_fee: "0.00" // 首单价钱
// additional: 1 // 续件数量
// additional_fee: "0" // 续件价钱
let delivery = this.deliveryList[this.deliveryIndex];
if (delivery) {
let deliveryPrice = 0;
if (delivery.hasOwnProperty('id')) {
if (delivery.min > number) {
this.$api.msg('必须至少购买' + delivery.min + '件商品才能使用此配送方式', 6000)
}
// 如何为0就赋值1,不然下面的循环会死循环
delivery.first = delivery.first == 0 ? 1 : delivery.first;
delivery.additional = delivery.additional == 0 ? 1 : delivery.additional;
for (let i = 0; i < number;) {
if (i === 0) {
deliveryPrice = deliveryPrice + parseInt(delivery.first_fee);
i = i + parseInt(delivery.first);
} else {
deliveryPrice = deliveryPrice + parseInt(delivery.additional_fee);
i = i + parseInt(delivery.additional);
}
}
}
this.deliveryPrice = deliveryPrice.toFixed(2);
total = total + deliveryPrice;
}
// let delivery = this.deliveryList[this.deliveryIndex];
// if (delivery) {
// let deliveryPrice = 0;
// if (delivery.hasOwnProperty('id')) {
// if (delivery.min > number) {
// this.$api.msg('必须至少购买' + delivery.min + '件商品才能使用此配送方式', 6000)
// }
// // 如何为0就赋值1,不然下面的循环会死循环
// delivery.first = delivery.first == 0 ? 1 : delivery.first;
// delivery.additional = delivery.additional == 0 ? 1 : delivery.additional;
// for (let i = 0; i < number;) {
// if (i === 0) {
// deliveryPrice = deliveryPrice + parseInt(delivery.first_fee);
// i = i + parseInt(delivery.first);
// } else {
// deliveryPrice = deliveryPrice + parseInt(delivery.additional_fee);
// i = i + parseInt(delivery.additional);
// }
// }
// }
// this.deliveryPrice = deliveryPrice.toFixed(2);
// total = total + deliveryPrice;
// }

this.total = total.toFixed(2);
},


+ 23
- 22
addons/unishop/uniapp/uni-shop/pages/user/user.vue Dosyayı Görüntüle

@@ -1,6 +1,6 @@
<template>
<view class="container">
<template>
<view class="container">
<view class="user-section">
<image class="bg" src="/static/user-bg.jpg"></image>
<view class="user-info-box">
@@ -20,12 +20,12 @@
<text class="yticon icon-iLinkapp-"></text>
会员
</view>
<text class="e-m">uniShop</text>
<text class="e-m">uniShop</text>
<!-- <text class="e-b">开通会员开发无bug 一测就上线</text> -->
</view>
</view>
<view
<view
class="cover-container"
:style="[{
transform: coverTransform,
@@ -36,7 +36,7 @@
@touchend="coverTouchend"
>
<image class="arc" src="/static/arc.png"></image>
<!-- 订单 -->
<view class="order-header">
<view class="title">我的订单</view>
@@ -93,15 +93,15 @@
<list-cell icon="icon-setting" iconColor="#e07472" title="设置" border="" @eventClick="$api.navTo('/pages/set/set')"></list-cell>
</view>
</view>
</view>
</template>
<script>
</view>
</template>
<script>
import listCell from '@/components/mix-list-cell';
import {
mapState
} from 'vuex';
import {
mapState
} from 'vuex';
let startY = 0, moveY = 0, pageAtTop = true;
export default {
components: {
@@ -122,9 +122,10 @@
}
},
onLoad(){
},
onShow() {
this.$api.checkLogin();
if (this.hasLogin) {
this.getOrderNum();
}
@@ -178,7 +179,7 @@
if(moveDistance >= 80 && moveDistance < 100){
moveDistance = 80;
}
if(moveDistance > 0 && moveDistance <= 80){
this.coverTransform = `translateY(${moveDistance}px)`;
}
@@ -204,9 +205,9 @@
};
}
}
}
}
</script>
}
}
</script>
<style lang='scss'>
page{
background: #f5f5f5;
@@ -415,5 +416,5 @@
}
}
}
</style>
</style>

Yükleniyor…
İptal
Kaydet