功能完善
@@ -55,7 +55,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='recommend-view c-flex-column'>
|
<view class='recommend-view c-flex-column' v-if='recommendList?.length>0'>
|
||||||
<text>浏览此商品的客户还浏览了</text>
|
<text>浏览此商品的客户还浏览了</text>
|
||||||
<scroll-view scroll-x>
|
<scroll-view scroll-x>
|
||||||
<view style='display: inline-block' v-for='(item, index) in recommendList'
|
<view style='display: inline-block' v-for='(item, index) in recommendList'
|
||||||
@@ -164,12 +164,14 @@ const currentPageNum = ref(1);
|
|||||||
|
|
||||||
onLoad(async (e: any) => {
|
onLoad(async (e: any) => {
|
||||||
if(isLogin()) {
|
if(isLogin()) {
|
||||||
|
await uni.showLoading();
|
||||||
groupBuyBean.value = await getGroupBuyDetail(e.id);
|
groupBuyBean.value = await getGroupBuyDetail(e.id);
|
||||||
groupBuyBean.value.goods.price = groupBuyBean.value.price;
|
groupBuyBean.value.goods.price = groupBuyBean.value.price;
|
||||||
bannerList.value = JSON.parse(groupBuyBean.value.content).filter((item: any) => item.type === 2).map((item: any) => item.images);
|
bannerList.value = JSON.parse(groupBuyBean.value.content).filter((item: any) => item.type === 2).map((item: any) => item.images);
|
||||||
countdown();
|
countdown();
|
||||||
await fetchRecommendList();
|
await fetchRecommendList();
|
||||||
await fetchBuyRecordList();
|
await fetchBuyRecordList();
|
||||||
|
uni.hideLoading();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -306,8 +308,7 @@ const placeOrder = async () => {
|
|||||||
height: 130rpx;
|
height: 130rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 15rpx 30rpx;
|
padding: 15rpx 30rpx;
|
||||||
background: #F32B2B;
|
background-image: url('https://img.lakeapp.cn/wx/images/bg_groupbuy_countdown.png');
|
||||||
//background-image: url('../../../static/images/bg_groupbuy_countdown.png');
|
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
|
|
||||||
.super-second-kill {
|
.super-second-kill {
|
||||||
|
@@ -42,7 +42,7 @@ import { getGroupBuyList } from '@/api/groupbuy';
|
|||||||
import { goPath } from '@/utils';
|
import { goPath } from '@/utils';
|
||||||
|
|
||||||
const tabIndex = ref(0);
|
const tabIndex = ref(0);
|
||||||
const groupbuyList = ref([]);
|
const groupbuyList = ref<any[]>([]);
|
||||||
const currentPageNum = ref(1);
|
const currentPageNum = ref(1);
|
||||||
|
|
||||||
onLoad((e) => {
|
onLoad((e) => {
|
||||||
@@ -54,6 +54,7 @@ watch(() => tabIndex.value, () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const fetchData = async (refresh: boolean = true) => {
|
const fetchData = async (refresh: boolean = true) => {
|
||||||
|
await uni.showLoading();
|
||||||
if(!refresh) {
|
if(!refresh) {
|
||||||
currentPageNum.value += 1;
|
currentPageNum.value += 1;
|
||||||
}
|
}
|
||||||
@@ -65,6 +66,7 @@ const fetchData = async (refresh: boolean = true) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
groupbuyList.value = list;
|
groupbuyList.value = list;
|
||||||
|
uni.hideLoading();
|
||||||
};
|
};
|
||||||
|
|
||||||
const loadMore = () => {
|
const loadMore = () => {
|
||||||
@@ -168,7 +170,7 @@ const loadMore = () => {
|
|||||||
height: 83rpx;
|
height: 83rpx;
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
background-image: url("../../../static/images/bg_groupbuy_price.png");
|
background-image: url("https://img.lakeapp.cn/wx/images/bg_groupbuy_price.png");
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@@ -196,7 +198,7 @@ const loadMore = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bottom-price-disabled {
|
.bottom-price-disabled {
|
||||||
background-image: url("../../../static/images/bg_groupbuy_price_disabled.png");
|
background-image: url("https://img.lakeapp.cn/wx/images/bg_groupbuy_price_disabled.png");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,8 @@
|
|||||||
</button>
|
</button>
|
||||||
<view class='hint'>
|
<view class='hint'>
|
||||||
登录代表同意
|
登录代表同意
|
||||||
<text class='link'>
|
<text class='link' @click.stop='openPrivacy'>
|
||||||
用户协议、隐私政策,
|
《小程序隐私保护协议》
|
||||||
</text>
|
</text>
|
||||||
并授权使用您的账号信息(如昵称、头像、收获地址)以便您统一管理
|
并授权使用您的账号信息(如昵称、头像、收获地址)以便您统一管理
|
||||||
</view>
|
</view>
|
||||||
@@ -32,6 +32,17 @@ function wechatLogin() {
|
|||||||
uni.reLaunch({ url: '/pages/home/index' });
|
uni.reLaunch({ url: '/pages/home/index' });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const openPrivacy = () => {
|
||||||
|
wx.openPrivacyContract({
|
||||||
|
success: () => {
|
||||||
|
}, // 打开成功
|
||||||
|
fail: () => {
|
||||||
|
}, // 打开失败
|
||||||
|
complete: () => {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
@@ -71,7 +82,7 @@ function wechatLogin() {
|
|||||||
|
|
||||||
.hint {
|
.hint {
|
||||||
padding: 20rpx 50rpx;
|
padding: 20rpx 50rpx;
|
||||||
font-size: 20rpx;
|
font-size: 25rpx;
|
||||||
color: $u-tips-color;
|
color: $u-tips-color;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
@@ -95,6 +95,25 @@ const submenuList = [
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
wx.getPrivacySetting({
|
||||||
|
success: res => {
|
||||||
|
console.log(res); // 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }
|
||||||
|
if(res.needAuthorization) {
|
||||||
|
// 需要弹出隐私协议
|
||||||
|
// agreementPopupRef.value.show();
|
||||||
|
} else {
|
||||||
|
// 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用隐私接口
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: (res) => {
|
||||||
|
console.log('fail ', res);
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
onLoad((e) => {
|
onLoad((e) => {
|
||||||
console.log('home load e ', e);
|
console.log('home load e ', e);
|
||||||
});
|
});
|
||||||
|
@@ -3,19 +3,23 @@
|
|||||||
<text class='title'>入群步骤</text>
|
<text class='title'>入群步骤</text>
|
||||||
<view class='indicator' />
|
<view class='indicator' />
|
||||||
<text class='step-title'>
|
<text class='step-title'>
|
||||||
1.长按识别下方二维码,添加【xxxx】
|
1.长按识别下方二维码,添加【店铺福利群】
|
||||||
</text>
|
</text>
|
||||||
<view class='divider' style='margin-top: 28rpx' />
|
<view class='divider' style='margin-top: 28rpx' />
|
||||||
<image :src=' assetsUrl("test_qrcode.png")' show-menu-by-longpress />
|
<image :src=' companyConfigInfo.regqrcode' show-menu-by-longpress />
|
||||||
<text class='step-title'>
|
<text class='step-title'>
|
||||||
2.识别【xxxx】发您的二维码,即可入群
|
2.识别【店铺福利群】发您的二维码,即可入群
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
|
|
||||||
import { assetsUrl } from '@/utils/assets';
|
import { useUserStore } from '@/store';
|
||||||
|
|
||||||
|
const userStore = useUserStore();
|
||||||
|
const { companyConfigInfo } = storeToRefs(userStore);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class='content' v-if='companyConfigInfo.mallopen==0'>
|
<view class='content' v-if='companyConfigInfo.mallopen==1'>
|
||||||
<view class='search-view'>
|
<view class='search-view'>
|
||||||
<view class='search-input' @click.stop='goPath("/pages/mall/subs/search/index")'>
|
<view class='search-input' @click.stop='goPath("/pages/mall/subs/search/index")'>
|
||||||
<image :src=' assetsUrl("ic_search.png")'></image>
|
<image :src=' assetsUrl("ic_search.png")'></image>
|
||||||
@@ -50,7 +50,7 @@ import useShoppingCartStore from '@/store/modules/shoppingcart';
|
|||||||
import { useUserStore } from '@/store';
|
import { useUserStore } from '@/store';
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const { userInfo, companyConfigInfo } = storeToRefs(userStore);
|
const { companyConfigInfo } = storeToRefs(userStore);
|
||||||
const shoppingCartStore = useShoppingCartStore();
|
const shoppingCartStore = useShoppingCartStore();
|
||||||
const { shoppingCartList } = storeToRefs(shoppingCartStore);
|
const { shoppingCartList } = storeToRefs(shoppingCartStore);
|
||||||
|
|
||||||
@@ -66,6 +66,8 @@ onLoad(() => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('companyConfigInfo.value', companyConfigInfo.value);
|
||||||
|
|
||||||
userStore.$onAction(({ name, after }) => {
|
userStore.$onAction(({ name, after }) => {
|
||||||
after(() => {
|
after(() => {
|
||||||
//更新用户信息
|
//更新用户信息
|
||||||
@@ -79,8 +81,10 @@ onLoad(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const fetchCategoryList = async () => {
|
const fetchCategoryList = async () => {
|
||||||
categoryList.value = await getCategoryList();
|
if(companyConfigInfo.value.mallopen == 1) {
|
||||||
await changeCategory(0);
|
categoryList.value = await getCategoryList();
|
||||||
|
await changeCategory(0);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const changeCategory = async (index: number) => {
|
const changeCategory = async (index: number) => {
|
||||||
|
@@ -7,7 +7,9 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<scroll-view scroll-y>
|
<scroll-view scroll-y>
|
||||||
<coupon-item v-for='(item,index) in coupons' :item='item' :key='index' @confirm='confirmItem(index)' />
|
<coupon-item v-if='coupons.length>0' v-for='(item,index) in coupons' :item='item' :key='index'
|
||||||
|
@confirm='confirmItem(index)' />
|
||||||
|
<u-loadmore v-else status='loading' />
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
</uni-popup>
|
</uni-popup>
|
||||||
@@ -104,6 +106,7 @@ defineExpose({
|
|||||||
}
|
}
|
||||||
|
|
||||||
scroll-view {
|
scroll-view {
|
||||||
|
height: 600rpx;
|
||||||
max-height: 600rpx;
|
max-height: 600rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='recommend-view c-flex-column'>
|
<view class='recommend-view c-flex-column' v-if='recommendList?.length>0'>
|
||||||
<text>浏览此商品的客户还浏览了</text>
|
<text>浏览此商品的客户还浏览了</text>
|
||||||
<scroll-view scroll-x>
|
<scroll-view scroll-x>
|
||||||
<view style='display: inline-block' v-for='(item, index) in recommendList'
|
<view style='display: inline-block' v-for='(item, index) in recommendList'
|
||||||
@@ -113,6 +113,7 @@ const bannerList = ref([]);
|
|||||||
const swiperIndex = ref(0);
|
const swiperIndex = ref(0);
|
||||||
|
|
||||||
onLoad(async (e: any) => {
|
onLoad(async (e: any) => {
|
||||||
|
await uni.showLoading();
|
||||||
goodsBean.value = await getGoodsDetail(e.goodsId);
|
goodsBean.value = await getGoodsDetail(e.goodsId);
|
||||||
const { rows } = await getGoodsList({
|
const { rows } = await getGoodsList({
|
||||||
page: {
|
page: {
|
||||||
@@ -125,6 +126,7 @@ onLoad(async (e: any) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
recommendList.value = rows;
|
recommendList.value = rows;
|
||||||
|
uni.hideLoading();
|
||||||
});
|
});
|
||||||
|
|
||||||
const getStockColorCount = computed(() => {
|
const getStockColorCount = computed(() => {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
<view style='flex: 1' />
|
<view style='flex: 1' />
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row'>
|
||||||
<text class='card-view-value'>共1件商品 合计:
|
<text class='card-view-value'>共1件商品 合计:
|
||||||
<text style='font-size: 34rpx;color:#F32B2B'>¥{{ orderBean?.totalPrice || 0 }}</text>
|
<text style='font-size: 34rpx;color:#F32B2B'>¥{{ totalPrice || 0 }}</text>
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
|
|
||||||
<view class='bottom-view c-flex-row'>
|
<view class='bottom-view c-flex-row'>
|
||||||
<text>合计</text>
|
<text>合计</text>
|
||||||
<text>¥{{ orderBean?.totalPrice || 0 }}</text>
|
<text>¥{{ totalPrice || 0 }}</text>
|
||||||
<sqb-pay @navigateTo='navigateTo'
|
<sqb-pay @navigateTo='navigateTo'
|
||||||
:return_url='buildSqbParams.return_url'
|
:return_url='buildSqbParams.return_url'
|
||||||
:total_amount='buildSqbParams.total_amount'
|
:total_amount='buildSqbParams.total_amount'
|
||||||
@@ -131,9 +131,11 @@ import { CouponBean } from '@/api/user/types';
|
|||||||
import { OrderBean } from '@/api/order/types';
|
import { OrderBean } from '@/api/order/types';
|
||||||
import { useUserStore } from '@/store';
|
import { useUserStore } from '@/store';
|
||||||
import { handlePayResult } from '@/utils/order';
|
import { handlePayResult } from '@/utils/order';
|
||||||
|
import useShoppingCartStore from '@/store/modules/shoppingcart';
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const { terminalInfo, deliveryAddress } = storeToRefs(userStore);
|
const { userInfo, terminalInfo, deliveryAddress } = storeToRefs(userStore);
|
||||||
|
const shoppingCartStore = useShoppingCartStore();
|
||||||
|
|
||||||
const couponDialogRef = ref();
|
const couponDialogRef = ref();
|
||||||
const paymentDialogRef = ref();
|
const paymentDialogRef = ref();
|
||||||
@@ -149,6 +151,10 @@ onLoad((e) => {
|
|||||||
createOrder();
|
createOrder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const totalPrice = computed(() => {
|
||||||
|
return (orderBean?.value?.totalPrice || 0) - (checkedCoupon.value?.reduce || 0);
|
||||||
|
});
|
||||||
|
|
||||||
const buildSqbParams = computed(() => {
|
const buildSqbParams = computed(() => {
|
||||||
const params = sortASCII({
|
const params = sortASCII({
|
||||||
client_sn: orderBean.value?.id || '',
|
client_sn: orderBean.value?.id || '',
|
||||||
@@ -177,6 +183,7 @@ const showCouponDialog = () => {
|
|||||||
|
|
||||||
const confirmCoupon = (item: CouponBean) => {
|
const confirmCoupon = (item: CouponBean) => {
|
||||||
checkedCoupon.value = item;
|
checkedCoupon.value = item;
|
||||||
|
createOrder();
|
||||||
};
|
};
|
||||||
const navigateTo = (e: any) => {
|
const navigateTo = (e: any) => {
|
||||||
handlePayResult(orderBean.value?.id, e, {
|
handlePayResult(orderBean.value?.id, e, {
|
||||||
@@ -195,13 +202,14 @@ const createOrder = async () => {
|
|||||||
const params = {
|
const params = {
|
||||||
// 'discount': 0,
|
// 'discount': 0,
|
||||||
// 'freePrice': 0,
|
// 'freePrice': 0,
|
||||||
// 'reducePrice': 0,
|
'reducePrice': checkedCoupon.value == undefined ? 0 : checkedCoupon.value?.reduce,
|
||||||
'totalPrice': orderBean?.value?.totalPrice,
|
'totalPrice': totalPrice.value,
|
||||||
// 'integral': 0,
|
// 'integral': 0,
|
||||||
// 'allowIntegral': 0,
|
// 'allowIntegral': 0,
|
||||||
// 'produceIntegralNumber': 0,
|
// 'produceIntegralNumber': 0,
|
||||||
|
'couponIds': checkedCoupon.value?.id,
|
||||||
'remark': orderBean.value?.remark,
|
'remark': orderBean.value?.remark,
|
||||||
// 'address': JSON.stringify(deliveryAddress.value),
|
'address': tabIndex.value == 0 ? undefined : JSON.stringify(deliveryAddress.value),
|
||||||
'orderGoods': orderBean?.value?.orderGoods?.map(item => (
|
'orderGoods': orderBean?.value?.orderGoods?.map(item => (
|
||||||
{
|
{
|
||||||
'goodsId': item.id,
|
'goodsId': item.id,
|
||||||
@@ -209,8 +217,9 @@ const createOrder = async () => {
|
|||||||
'goodsNum': item.checkedStock.count,
|
'goodsNum': item.checkedStock.count,
|
||||||
'stockId': item.checkedStock.stockId,
|
'stockId': item.checkedStock.stockId,
|
||||||
'originPrice': item.price,
|
'originPrice': item.price,
|
||||||
'consumePrice': item.price
|
// 'consumePrice': item.price * ((userInfo.value?.levelEntity?.discount || 0) / 100),
|
||||||
// 'discount': 0,
|
'consumePrice': item.price,
|
||||||
|
'discount': userInfo.value?.levelEntity?.discount || 0
|
||||||
// 'discountOriginPrice': 0,
|
// 'discountOriginPrice': 0,
|
||||||
// 'produceIntegral': 0,
|
// 'produceIntegral': 0,
|
||||||
// 'priceModify': [0],
|
// 'priceModify': [0],
|
||||||
@@ -221,6 +230,15 @@ const createOrder = async () => {
|
|||||||
const result = await orderCreate(params);
|
const result = await orderCreate(params);
|
||||||
orderBean.value!.id = result.id;
|
orderBean.value!.id = result.id;
|
||||||
uni.hideLoading();
|
uni.hideLoading();
|
||||||
|
|
||||||
|
|
||||||
|
//删除购物车已存在商品
|
||||||
|
orderBean?.value?.orderGoods?.forEach(item => {
|
||||||
|
const index = shoppingCartStore.getSameGoodsIndex(item.id, item.checkedStock.colorId, item.checkedStock.sizeId);
|
||||||
|
if(index >= 0) {
|
||||||
|
shoppingCartStore.delete(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const payment = async () => {
|
const payment = async () => {
|
||||||
|
@@ -44,7 +44,7 @@ const fetchAddressList = async () => {
|
|||||||
|
|
||||||
const onChecked = (e: any) => {
|
const onChecked = (e: any) => {
|
||||||
const pages = getCurrentPages();
|
const pages = getCurrentPages();
|
||||||
if(pages.length > 2 && pages[pages.length - 2].route?.includes('pages/mall/subs/order/order-confirm')) {
|
if(pages.length >= 2 && pages[pages.length - 2].route?.includes('pages/mall/subs/order/order-confirm')) {
|
||||||
userStore.setDeliveryAddress(e);
|
userStore.setDeliveryAddress(e);
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
}
|
}
|
||||||
|
@@ -118,9 +118,8 @@ import { OrderBean } from '@/api/order/types';
|
|||||||
import { parseParameter, sortASCII } from '@/utils';
|
import { parseParameter, sortASCII } from '@/utils';
|
||||||
import { hexMD5 } from '@/utils/common/md5';
|
import { hexMD5 } from '@/utils/common/md5';
|
||||||
import { useUserStore } from '@/store';
|
import { useUserStore } from '@/store';
|
||||||
import { handlePayResult, isPending } from '@/utils/order';
|
import { getOrderDeadline, handlePayResult, isPending } from '@/utils/order';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { pay } from '@/api/groupbuy';
|
|
||||||
|
|
||||||
const userState = useUserStore();
|
const userState = useUserStore();
|
||||||
const { terminalInfo } = storeToRefs(userState);
|
const { terminalInfo } = storeToRefs(userState);
|
||||||
@@ -134,12 +133,16 @@ const orderBean = ref<{
|
|||||||
let currentInterval = 0;
|
let currentInterval = 0;
|
||||||
|
|
||||||
onLoad(async (e: any) => {
|
onLoad(async (e: any) => {
|
||||||
await uni.showLoading();
|
await fetchData(e.orderId);
|
||||||
orderBean.value = await getOrderDetail(e.orderId);
|
|
||||||
handleCountdown();
|
handleCountdown();
|
||||||
uni.hideLoading();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const fetchData = async (orderId: string) => {
|
||||||
|
await uni.showLoading();
|
||||||
|
orderBean.value = await getOrderDetail(orderId);
|
||||||
|
uni.hideLoading();
|
||||||
|
};
|
||||||
|
|
||||||
onUnload(() => {
|
onUnload(() => {
|
||||||
clearInterval(currentInterval);
|
clearInterval(currentInterval);
|
||||||
});
|
});
|
||||||
@@ -161,29 +164,28 @@ const buildSqbParams = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const navigateTo = (e: any) => {
|
const navigateTo = (e: any) => {
|
||||||
console.log('--------------_>>>>>>navigateTo ', e);
|
|
||||||
handlePayResult(orderBean.value?.order.id, e, {
|
handlePayResult(orderBean.value?.order.id, e, {
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
// pay({
|
fetchData(orderBean.value?.order.id || '');
|
||||||
// 'orderId': orderBean.value?.order.id,
|
|
||||||
// 'result': 'xxx'
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleCountdown = () => {
|
const handleCountdown = () => {
|
||||||
clearInterval(currentInterval);
|
clearInterval(currentInterval);
|
||||||
let second = 30 * 60;
|
|
||||||
currentInterval = setInterval(() => {
|
currentInterval = setInterval(() => {
|
||||||
if(isPending(orderBean.value?.order)) {
|
if(orderBean.value != undefined) {
|
||||||
orderBean.value!.order!.countdown = second;
|
if(isPending(orderBean.value?.order)) {
|
||||||
if(orderBean.value!.order!.countdown <= 0) {
|
let second = (getOrderDeadline(orderBean.value?.order) - Date.now()) / 1000;
|
||||||
orderBean.value!.order!.countdown = 0;
|
orderBean.value.order.countdown = second;
|
||||||
|
if(second <= 0) {
|
||||||
|
fetchData(orderBean.value?.order.id || '');
|
||||||
|
}
|
||||||
|
second--;
|
||||||
} else {
|
} else {
|
||||||
uni.navigateBack();
|
clearInterval(currentInterval);
|
||||||
|
fetchData(orderBean.value?.order.id || '');
|
||||||
}
|
}
|
||||||
second--;
|
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
};
|
};
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { showToast } from '@/utils';
|
import { showToast } from '@/utils';
|
||||||
import { isPending } from '@/utils/order';
|
import { getOrderDeadline, isPending } from '@/utils/order';
|
||||||
import { getOrderList } from '@/api/order';
|
import { getOrderList } from '@/api/order';
|
||||||
import OrderItem from '@/pages/mine/subs/order/components/order-item.vue';
|
import OrderItem from '@/pages/mine/subs/order/components/order-item.vue';
|
||||||
import { OrderBean } from '@/api/order/types';
|
import { OrderBean } from '@/api/order/types';
|
||||||
@@ -64,10 +64,10 @@ const fetchData = async (refresh: boolean = true) => {
|
|||||||
|
|
||||||
const handleCountdown = (items: OrderBean[]) => {
|
const handleCountdown = (items: OrderBean[]) => {
|
||||||
clearInterval(currentInterval);
|
clearInterval(currentInterval);
|
||||||
let second = 30 * 60;
|
|
||||||
currentInterval = setInterval(() => {
|
currentInterval = setInterval(() => {
|
||||||
items.forEach(item => {
|
items.forEach(item => {
|
||||||
if(isPending(item)) {
|
if(isPending(item)) {
|
||||||
|
let second = (getOrderDeadline(item) - Date.now()) / 1000;
|
||||||
item.countdown = second;
|
item.countdown = second;
|
||||||
if(item.countdown <= 0) {
|
if(item.countdown <= 0) {
|
||||||
item.countdown = 0;
|
item.countdown = 0;
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<image :src='assetsUrl("bg_member_recharge.png")' />
|
<image :src='assetsUrl("bg_member_recharge.png")' />
|
||||||
<view class='balance-content'>
|
<view class='balance-content'>
|
||||||
<text>累计余额(元)</text>
|
<text>累计余额(元)</text>
|
||||||
<text>¥1</text>
|
<text>¥{{ userInfo?.totalIncoming}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class='balance-content'>
|
<view class='balance-content'>
|
||||||
<text>当前余额(元)</text>
|
<text>当前余额(元)</text>
|
||||||
|
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 2.1 MiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 641 B |
Before Width: | Height: | Size: 886 B |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1011 B |
Before Width: | Height: | Size: 492 B |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 450 B |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1023 B |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 659 KiB |
Before Width: | Height: | Size: 46 KiB |
@@ -1,5 +1,6 @@
|
|||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
import { GoodsBean, StockBean } from '@/api/goods/types';
|
import { GoodsBean, StockBean } from '@/api/goods/types';
|
||||||
|
import { getCompanyId } from '@/utils';
|
||||||
|
|
||||||
const useShoppingCartStore = defineStore('shoppingCart', {
|
const useShoppingCartStore = defineStore('shoppingCart', {
|
||||||
state: (): { shoppingCartList: GoodsBean[] } => ({
|
state: (): { shoppingCartList: GoodsBean[] } => ({
|
||||||
@@ -8,7 +9,7 @@ const useShoppingCartStore = defineStore('shoppingCart', {
|
|||||||
|
|
||||||
persist: {
|
persist: {
|
||||||
// 修改存储中使用的键名称,默认为当前 Store的 id
|
// 修改存储中使用的键名称,默认为当前 Store的 id
|
||||||
key: 'shoppingCartState',
|
key: 'shoppingCartState_' + getCompanyId(),
|
||||||
storage: {
|
storage: {
|
||||||
setItem(key, value) {
|
setItem(key, value) {
|
||||||
uni.setStorageSync(key, value); // [!code warning]
|
uni.setStorageSync(key, value); // [!code warning]
|
||||||
|
@@ -113,7 +113,6 @@ const useUserStore = defineStore('user', {
|
|||||||
code: result.code,
|
code: result.code,
|
||||||
userInfo: userInfo,
|
userInfo: userInfo,
|
||||||
referrerUserId: '1727303781559697409'
|
referrerUserId: '1727303781559697409'
|
||||||
// referrerUserId: '1731886841265598466'
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if(res.user == undefined || res.user.id === null) {
|
if(res.user == undefined || res.user.id === null) {
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
export const assetsUrl = (name: string) => `/static/images/${name}`;
|
export const assetsUrl = (name: string) => `https://img.lakeapp.cn/wx/images/${name}`;
|
||||||
export const defaultAvatar = 'https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132';
|
export const defaultAvatar = 'https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132';
|
||||||
|
@@ -8,7 +8,7 @@ import { showToast } from '@/utils';
|
|||||||
*/
|
*/
|
||||||
export function getOrderDeadline(order: OrderBean) {
|
export function getOrderDeadline(order: OrderBean) {
|
||||||
// return dayjs(order?.createTime).add(30, 'minute').toDate().getTime();
|
// return dayjs(order?.createTime).add(30, 'minute').toDate().getTime();
|
||||||
return dayjs(order?.createTime).add(10, 'day').toDate().getTime();
|
return dayjs(order?.createTime).add(30, 'minute').toDate().getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|