...
This commit is contained in:
@@ -1,12 +1,10 @@
|
|||||||
import { get, post } from '@/utils';
|
import { get } from '@/utils';
|
||||||
import { CategoryBean, GoodsBean } from '@/api/goods/types';
|
import { CategoryBean, GoodsBean } from '@/api/goods/types';
|
||||||
|
|
||||||
enum URL {
|
enum URL {
|
||||||
categoryList = '/ext/goods/category_list',
|
categoryList = '/ext/goods/category_list',
|
||||||
goodsList = '/ext/goods/query',
|
goodsList = '/ext/goods/query',
|
||||||
goodsDetail = '/ext/goods/info',
|
goodsDetail = '/ext/goods/info'
|
||||||
orderCreate = '/sales/wx_order_create',
|
|
||||||
orderList = '/sales/wx_query',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getCategoryList = () => get<CategoryBean[]>({ url: URL.categoryList });
|
export const getCategoryList = () => get<CategoryBean[]>({ url: URL.categoryList });
|
||||||
@@ -14,14 +12,3 @@ export const getCategoryList = () => get<CategoryBean[]>({ url: URL.categoryList
|
|||||||
export const getGoodsList = (params: any) => get<GoodsBean[]>({ url: URL.goodsList, data: params });
|
export const getGoodsList = (params: any) => get<GoodsBean[]>({ url: URL.goodsList, data: params });
|
||||||
|
|
||||||
export const getGoodsDetail = (goodsId: string) => get<GoodsBean>({ url: URL.goodsDetail + `?goodsId=${goodsId}` });
|
export const getGoodsDetail = (goodsId: string) => get<GoodsBean>({ url: URL.goodsDetail + `?goodsId=${goodsId}` });
|
||||||
|
|
||||||
export const orderCreate = (data: any) => post({ url: URL.orderCreate, data });
|
|
||||||
|
|
||||||
export const getOrderList = (data: {
|
|
||||||
pageNum: number,
|
|
||||||
pageSize: number,
|
|
||||||
obj: {
|
|
||||||
payStatus: number
|
|
||||||
}
|
|
||||||
}) => post({ url: URL.orderList, data });
|
|
||||||
|
|
||||||
|
@@ -7,6 +7,7 @@ export interface GoodsBean {
|
|||||||
id: string;
|
id: string;
|
||||||
goodsId: string;
|
goodsId: string;
|
||||||
goodsName: string;
|
goodsName: string;
|
||||||
|
goodsCode: string,
|
||||||
allow_integral: number;
|
allow_integral: number;
|
||||||
available: number;
|
available: number;
|
||||||
back_factory: number;
|
back_factory: number;
|
||||||
@@ -63,78 +64,6 @@ export interface StockBean {
|
|||||||
sizeId: string;
|
sizeId: string;
|
||||||
sizeName: string;
|
sizeName: string;
|
||||||
stockId: string;
|
stockId: string;
|
||||||
|
images: string,
|
||||||
count: number;
|
count: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface OrderBean {
|
|
||||||
allowIntegral: boolean;
|
|
||||||
bizId: string;
|
|
||||||
classify: number;
|
|
||||||
companyId: string;
|
|
||||||
consignTime: string;
|
|
||||||
consumerId: string;
|
|
||||||
consumerName: string;
|
|
||||||
coupon: string;
|
|
||||||
couponIds: string;
|
|
||||||
couponsStatus: number;
|
|
||||||
createTime: string;
|
|
||||||
creatorId: number;
|
|
||||||
creatorName: string;
|
|
||||||
device: string;
|
|
||||||
discount: number;
|
|
||||||
discountPrice: number;
|
|
||||||
finishTime: string;
|
|
||||||
freePrice: number;
|
|
||||||
goodsNum: number;
|
|
||||||
id: string;
|
|
||||||
integral: number;
|
|
||||||
itemNum: number;
|
|
||||||
marketingPrice: number;
|
|
||||||
marketingText: string;
|
|
||||||
modifierIds: string;
|
|
||||||
needPaid: number;
|
|
||||||
ogList: any[];
|
|
||||||
orderGoods: GoodsBean[];
|
|
||||||
changeStockNum: number;
|
|
||||||
consumePrice: number;
|
|
||||||
discountOriginPrice: number;
|
|
||||||
goodsCode: string;
|
|
||||||
goodsId: string;
|
|
||||||
goodsName: string;
|
|
||||||
goodsPriceModify: string;
|
|
||||||
goodsTypeName: string;
|
|
||||||
images: string;
|
|
||||||
offset: string;
|
|
||||||
orderId: string;
|
|
||||||
orderNo: string;
|
|
||||||
originPrice: number;
|
|
||||||
originStockNum: number;
|
|
||||||
priceModify: [];
|
|
||||||
produceIntegral: number;
|
|
||||||
salePrice: number;
|
|
||||||
stockId: string;
|
|
||||||
stockStock: StockBean[];
|
|
||||||
payStatus: number;
|
|
||||||
payTypeIds: string;
|
|
||||||
printed: string;
|
|
||||||
produceIntegralNumber: number;
|
|
||||||
profit: string;
|
|
||||||
reducePrice: number;
|
|
||||||
relatedId: string;
|
|
||||||
remark: string;
|
|
||||||
replacementOrder: string;
|
|
||||||
saleNum: number;
|
|
||||||
salers: [];
|
|
||||||
status: number;
|
|
||||||
storeId: string;
|
|
||||||
storeName: string;
|
|
||||||
storeOrder: string;
|
|
||||||
totalPrice: number;
|
|
||||||
transactionPrice: number;
|
|
||||||
type: number;
|
|
||||||
typeName: string;
|
|
||||||
updateTime: string;
|
|
||||||
updated: boolean;
|
|
||||||
useGold: number;
|
|
||||||
wholePrice: number;
|
|
||||||
}
|
|
||||||
|
@@ -20,5 +20,6 @@ export const getGroupBuyRecordList = (groupId: string, pageNum: number, pageSize
|
|||||||
export const preOrder = (data: any) => post<GoodsBean>({ url: 'wechat/coupons/group/pre_v2', data });
|
export const preOrder = (data: any) => post<GoodsBean>({ url: 'wechat/coupons/group/pre_v2', data });
|
||||||
|
|
||||||
export const progress = (data: any) => post<any>({ url: 'wechat/coupons/group/pay/progress', data });
|
export const progress = (data: any) => post<any>({ url: 'wechat/coupons/group/pay/progress', data });
|
||||||
|
|
||||||
export const pay = (data: any) => post<any>({ url: 'wechat/coupons/group/pay', data });
|
export const pay = (data: any) => post<any>({ url: 'wechat/coupons/group/pay', data });
|
||||||
|
|
||||||
|
21
src/api/order/index.ts
Normal file
21
src/api/order/index.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { get, post } from '@/utils';
|
||||||
|
|
||||||
|
enum URL {
|
||||||
|
orderCreate = '/sales/wx_order_create',
|
||||||
|
orderList = '/sales/wx_query',
|
||||||
|
orderDetail = '/order/wx_get/'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const orderCreate = (data: any) => post({ url: URL.orderCreate, data });
|
||||||
|
|
||||||
|
export const getOrderList = (data: {
|
||||||
|
pageNum: number,
|
||||||
|
pageSize: number,
|
||||||
|
obj: {
|
||||||
|
payStatus: number
|
||||||
|
}
|
||||||
|
}) => post({ url: URL.orderList, data });
|
||||||
|
|
||||||
|
export const getOrderDetail = (orderId: string) => get<any>({ url: URL.orderDetail + `${orderId}` });
|
||||||
|
|
74
src/api/order/types.ts
Normal file
74
src/api/order/types.ts
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import { GoodsBean, StockBean } from '@/api/goods/types';
|
||||||
|
|
||||||
|
export interface OrderBean {
|
||||||
|
allowIntegral: boolean;
|
||||||
|
bizId: string;
|
||||||
|
classify: number;
|
||||||
|
companyId: string;
|
||||||
|
consignTime: string;
|
||||||
|
consumerId: string;
|
||||||
|
consumerName: string;
|
||||||
|
coupon: string;
|
||||||
|
couponIds: string;
|
||||||
|
couponsStatus: number;
|
||||||
|
createTime: string;
|
||||||
|
creatorId: number;
|
||||||
|
creatorName: string;
|
||||||
|
device: string;
|
||||||
|
discount: number;
|
||||||
|
discountPrice: number;
|
||||||
|
finishTime: string;
|
||||||
|
freePrice: number;
|
||||||
|
goodsNum: number;
|
||||||
|
id: string;
|
||||||
|
integral: number;
|
||||||
|
itemNum: number;
|
||||||
|
marketingPrice: number;
|
||||||
|
marketingText: string;
|
||||||
|
modifierIds: string;
|
||||||
|
needPaid: number;
|
||||||
|
ogList: any[];
|
||||||
|
orderGoods: GoodsBean[];
|
||||||
|
changeStockNum: number;
|
||||||
|
consumePrice: number;
|
||||||
|
discountOriginPrice: number;
|
||||||
|
goodsCode: string;
|
||||||
|
goodsId: string;
|
||||||
|
goodsName: string;
|
||||||
|
goodsPriceModify: string;
|
||||||
|
goodsTypeName: string;
|
||||||
|
images: string;
|
||||||
|
offset: string;
|
||||||
|
orderId: string;
|
||||||
|
orderNo: string;
|
||||||
|
originPrice: number;
|
||||||
|
originStockNum: number;
|
||||||
|
priceModify: [];
|
||||||
|
produceIntegral: number;
|
||||||
|
salePrice: number;
|
||||||
|
stockId: string;
|
||||||
|
stockStock: StockBean[];
|
||||||
|
payStatus: number;
|
||||||
|
payTypeIds: string;
|
||||||
|
printed: string;
|
||||||
|
produceIntegralNumber: number;
|
||||||
|
profit: string;
|
||||||
|
reducePrice: number;
|
||||||
|
relatedId: string;
|
||||||
|
remark: string;
|
||||||
|
replacementOrder: string;
|
||||||
|
saleNum: number;
|
||||||
|
salers: [];
|
||||||
|
status: number;
|
||||||
|
storeId: string;
|
||||||
|
storeName: string;
|
||||||
|
storeOrder: string;
|
||||||
|
totalPrice: number;
|
||||||
|
transactionPrice: number;
|
||||||
|
type: number;
|
||||||
|
typeName: string;
|
||||||
|
updateTime: string;
|
||||||
|
updated: boolean;
|
||||||
|
useGold: number;
|
||||||
|
wholePrice: number;
|
||||||
|
}
|
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "SURE-MP",
|
"name": "SUKE-MP",
|
||||||
"appid": "",
|
"appid": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"versionName": "1.0.0",
|
"versionName": "1.0.0",
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
<template class='c-flex-row' v-for='item in orderBean?.orderGoods' :key='item.id'>
|
<template class='c-flex-row' v-for='item in orderBean?.orderGoods' :key='item.id'>
|
||||||
<image class='goods-image' :src='item?.images' />
|
<image class='goods-image' :src='item?.images' />
|
||||||
<view class='c-flex-column' style='flex: 1'>
|
<view class='c-flex-column' style='flex: 1'>
|
||||||
<text class='goods-name'>{{ item?.goodsName }}</text>
|
<text class='goods-name'>{{ item?.goodsName || item?.goodsCode }}</text>
|
||||||
<text class='goods-sku'>{{ item?.stockStock?.colorName }} {{ item?.stockStock?.sizeName }}</text>
|
<text class='goods-sku'>{{ item?.stockStock?.colorName }} {{ item?.stockStock?.sizeName }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { pay, progress } from '@/api/groupbuy';
|
import { pay, progress } from '@/api/groupbuy';
|
||||||
import { OrderBean } from '@/api/goods/types';
|
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';
|
||||||
@@ -92,7 +92,6 @@ const buildSignParams = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const navigateTo = (e: any) => {
|
const navigateTo = (e: any) => {
|
||||||
console.log('----------->>>>>navigateTo ', e);
|
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: e.detail.url,
|
url: e.detail.url,
|
||||||
fail(e) {
|
fail(e) {
|
||||||
|
@@ -104,7 +104,7 @@
|
|||||||
:merchant_name='payParams.merchant_name'
|
:merchant_name='payParams.merchant_name'
|
||||||
:notify_url='payParams.notify_url'
|
:notify_url='payParams.notify_url'
|
||||||
:sign='payParams.sign'>
|
:sign='payParams.sign'>
|
||||||
<text class='confirm-order' @click.stop='payment'>确认订单</text>
|
<button class='confirm-order' @click='payment'>确认订单</button>
|
||||||
</sqb-pay>
|
</sqb-pay>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -117,10 +117,11 @@
|
|||||||
import { assetsUrl } from '@/utils/assets';
|
import { assetsUrl } from '@/utils/assets';
|
||||||
import PaymentDialog from '@/components/payment-dialog.vue';
|
import PaymentDialog from '@/components/payment-dialog.vue';
|
||||||
import CouponDialog from '@/pages/mall/subs/components/coupon-dialog.vue';
|
import CouponDialog from '@/pages/mall/subs/components/coupon-dialog.vue';
|
||||||
import { goPath } from '@/utils';
|
import { goPath, parseParameter, sortASCII } from '@/utils';
|
||||||
import { orderCreate } from '@/api/goods';
|
import { hexMD5 } from '@/utils/common/md5';
|
||||||
|
import { orderCreate } from '@/api/order';
|
||||||
import { CouponBean } from '@/api/user/types';
|
import { CouponBean } from '@/api/user/types';
|
||||||
import { OrderBean } from '@/api/goods/types';
|
import { OrderBean } from '@/api/order/types';
|
||||||
import { useUserStore } from '@/store';
|
import { useUserStore } from '@/store';
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
@@ -149,8 +150,21 @@ const orderBean = ref<OrderBean>();
|
|||||||
|
|
||||||
onLoad((e) => {
|
onLoad((e) => {
|
||||||
orderBean.value = JSON.parse(decodeURIComponent(e?.orderBean));
|
orderBean.value = JSON.parse(decodeURIComponent(e?.orderBean));
|
||||||
console.log(orderBean.value);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const buildSignParams = computed(() => {
|
||||||
|
return sortASCII({
|
||||||
|
client_sn: orderBean.value?.id || '',
|
||||||
|
return_url: '/pages/payResult/index',
|
||||||
|
total_amount: ((orderBean.value?.totalPrice || 0) * 100).toString(),
|
||||||
|
terminal_sn: terminalInfo.value.terminalSn,
|
||||||
|
subject: orderBean?.value?.orderGoods[0].name,
|
||||||
|
subject_img: orderBean?.value?.orderGoods[0].images || '',
|
||||||
|
merchant_name: terminalInfo.value.companyName,
|
||||||
|
notify_url: 'https://www.baidu.com'
|
||||||
|
}, true);
|
||||||
|
});
|
||||||
|
|
||||||
const changePayment = () => {
|
const changePayment = () => {
|
||||||
paymentDialogRef.value.show();
|
paymentDialogRef.value.show();
|
||||||
};
|
};
|
||||||
@@ -164,7 +178,15 @@ const confirmCoupon = (item: CouponBean) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const navigateTo = (e: any) => {
|
const navigateTo = (e: any) => {
|
||||||
|
console.log('----------->>>>>navigateTo ', e);
|
||||||
|
uni.redirectTo({
|
||||||
|
url: e.detail.url,
|
||||||
|
fail(e) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付失败'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const payment = async () => {
|
const payment = async () => {
|
||||||
@@ -180,7 +202,7 @@ const payment = async () => {
|
|||||||
'remark': orderBean.value?.remark,
|
'remark': orderBean.value?.remark,
|
||||||
'orderGoods': orderBean?.value?.orderGoods?.map(item => (
|
'orderGoods': orderBean?.value?.orderGoods?.map(item => (
|
||||||
{
|
{
|
||||||
'goodsId': item.goodsId,
|
'goodsId': item.id,
|
||||||
'goodsCode': item.code,
|
'goodsCode': item.code,
|
||||||
'goodsNum': item.checkedStock.count,
|
'goodsNum': item.checkedStock.count,
|
||||||
'stockId': item.checkedStock.stockId,
|
'stockId': item.checkedStock.stockId,
|
||||||
@@ -196,6 +218,16 @@ const payment = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const result = await orderCreate(params);
|
const result = await orderCreate(params);
|
||||||
|
orderBean.value!.id = result.id;
|
||||||
|
|
||||||
|
let signParams = buildSignParams.value;
|
||||||
|
const signStr = parseParameter(signParams) + '&key=' + terminalInfo.value.terminalKey;
|
||||||
|
const sign = hexMD5(signStr).toUpperCase();
|
||||||
|
payParams.value = {
|
||||||
|
...signParams,
|
||||||
|
sign: sign
|
||||||
|
};
|
||||||
|
|
||||||
uni.hideLoading();
|
uni.hideLoading();
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -433,7 +465,7 @@ const payment = async () => {
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
padding: 30rpx 30rpx 78rpx 30rpx;
|
padding: 20rpx 30rpx 78rpx 30rpx;
|
||||||
|
|
||||||
text:nth-of-type(1) {
|
text:nth-of-type(1) {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
@@ -450,12 +482,17 @@ const payment = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sqb-pay .confirm-order {
|
sqb-pay .confirm-order {
|
||||||
padding: 17rpx 45rpx;
|
display: flex;
|
||||||
border-radius: 43rpx;
|
padding: 0 45rpx;
|
||||||
border: 1rpx solid #F32B2B;
|
height: 80rpx;
|
||||||
|
border: 2rpx solid #F32B2B;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #F32B2B;
|
color: #F32B2B;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 40rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -1,20 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class='card-view' @click.stop='goPath("/pages/mine/subs/order/detail")'>
|
<view class='card-view' @click.stop='goPath(`/pages/mine/subs/order/detail?orderId=${item?.id}`)'>
|
||||||
<view class='goods-info-view c-flex-row'>
|
<view class='goods-info-view c-flex-row'>
|
||||||
<image class='goods-image' :src='assetsUrl("test_bg.png")' />
|
<image class='goods-image' :src='item?.orderGoods[0].images' />
|
||||||
<view class='c-flex-column' style='flex: 1;'>
|
<view class='c-flex-column' style='flex: 1;'>
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row'>
|
||||||
<text class='goods-name'>女童夏装套装洋气装短袖阔腿裤子夏装套装</text>
|
<text class='goods-name'>{{ item?.orderGoods[0].goodsName }}</text>
|
||||||
<text class='status'>未支付</text>
|
<text class='status'>未支付</text>
|
||||||
</view>
|
</view>
|
||||||
<view class='bottom-view c-flex-row'>
|
<view class='bottom-view c-flex-row'>
|
||||||
<text>
|
<text>
|
||||||
均色,120cm
|
{{ item?.orderGoods[0].stockStock.colorName }},{{ item?.orderGoods[0].stockStock.sizeName }}
|
||||||
</text>
|
</text>
|
||||||
<text>
|
<text>
|
||||||
共1件
|
共{{ item?.itemNum }}件
|
||||||
</text>
|
</text>
|
||||||
<text>23.20元</text>
|
<text>{{ item?.totalPrice }}元</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -37,9 +37,11 @@
|
|||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { assetsUrl } from '@/utils/assets';
|
import { assetsUrl } from '@/utils/assets';
|
||||||
import { goPath } from '@/utils';
|
import { goPath } from '@/utils';
|
||||||
|
import { PropType } from 'vue';
|
||||||
|
import { OrderBean } from '@/api/order/types';
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
item: Object
|
item: Object as PropType<OrderBean>
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<scroll-view scroll-y>
|
||||||
<view class='content'>
|
<view class='content'>
|
||||||
<view class='countdown c-flex-row'>
|
<view class='countdown c-flex-row'>
|
||||||
<image :src='assetsUrl("ic_order.png")' />
|
<image :src='assetsUrl("ic_order.png")' />
|
||||||
@@ -31,35 +32,37 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='goods-info-view c-flex-column'>
|
<view class='goods-info-view c-flex-column'>
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row' style='margin-bottom: 20rpx' v-for='(item,index) in orderBean?.order.orderGoods'
|
||||||
<image class='goods-image' :src='assetsUrl("test_bg.png")' />
|
:key='index'>
|
||||||
|
<image class='goods-image' :src='item.stockStock.images' />
|
||||||
<view class='c-flex-column' style='flex: 1;'>
|
<view class='c-flex-column' style='flex: 1;'>
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row'>
|
||||||
<text class='goods-name'>女童夏装套装洋气装短袖阔腿裤子夏装套装</text>
|
<text class='goods-name'>{{ item.goodsName }}</text>
|
||||||
</view>
|
</view>
|
||||||
<text style='color: #999999;margin-top: 30rpx'>
|
<text style='color: #999999;margin-top: 30rpx'>
|
||||||
2356235654
|
{{ item.goodsCode }}
|
||||||
</text>
|
</text>
|
||||||
<view class='bottom-view c-flex-row'>
|
<view class='bottom-view c-flex-row'>
|
||||||
<text>
|
<text>
|
||||||
紫色,120cm x1
|
{{ item.stockStock.colorName }},{{ item.stockStock.sizeName }} x{{ item.goodsNum }}
|
||||||
</text>
|
</text>
|
||||||
<text>23.20</text>
|
<text>{{ item.consumePrice }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='divider' />
|
<view class='divider' />
|
||||||
|
|
||||||
<view class='remark-view c-flex-row'>
|
<view class='remark-view c-flex-row'>
|
||||||
<text style='flex: 1'>备注</text>
|
<text style='flex: 1'>备注</text>
|
||||||
<text>无备注</text>
|
<text>{{ orderBean?.order?.remark || '无备注' }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='card-view'>
|
<view class='card-view'>
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row'>
|
||||||
<text class='card-view-title'>商品总价</text>
|
<text class='card-view-title'>商品总价</text>
|
||||||
<text class='card-view-value'>¥29.90</text>
|
<text class='card-view-value'>¥{{ orderBean?.order?.totalPrice }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row'>
|
||||||
<text class='card-view-title'>运费</text>
|
<text class='card-view-title'>运费</text>
|
||||||
@@ -69,25 +72,25 @@
|
|||||||
<text class='card-view-title'>优惠券
|
<text class='card-view-title'>优惠券
|
||||||
<text style='font-size: 22rpx;color: #F32B2B;'>已选最大优惠</text>
|
<text style='font-size: 22rpx;color: #F32B2B;'>已选最大优惠</text>
|
||||||
</text>
|
</text>
|
||||||
<text class='card-view-value' style='color: #F32B2B;margin: 0'>-¥20
|
<text class='card-view-value' style='color: #F32B2B;margin: 0'>-¥{{orderBean?.order?.reducePrice}}
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
<view class='divider' />
|
<view class='divider' />
|
||||||
<view class='c-flex-row'>
|
<view class='c-flex-row'>
|
||||||
<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'>共{{ orderBean?.order?.itemNum }}件商品 合计:
|
||||||
<text style='font-size: 34rpx;color:#F32B2B'>¥29.90</text>
|
<text style='font-size: 34rpx;color:#F32B2B'>¥{{ orderBean?.order?.totalPrice }}</text>
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='order-no c-flex-column'>
|
<view class='order-no c-flex-column'>
|
||||||
<text>订单编号:1524625555555
|
<text>订单编号:{{ orderBean?.order?.id }}
|
||||||
<text style='color: #5B96FB;margin-left: 10rpx'>复制</text>
|
<text style='color: #5B96FB;margin-left: 10rpx'>复制</text>
|
||||||
</text>
|
</text>
|
||||||
<text>下单时间:2022-02-22 12:22:55</text>
|
<text>下单时间:{{ orderBean?.order?.createTime }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class='bottom-action-view c-flex-row'>
|
<view class='bottom-action-view c-flex-row'>
|
||||||
@@ -95,10 +98,23 @@
|
|||||||
<text @click.stop='payment'>立即支付</text>
|
<text @click.stop='payment'>立即支付</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</scroll-view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { assetsUrl } from '@/utils/assets';
|
import { assetsUrl } from '@/utils/assets';
|
||||||
|
import { getOrderDetail } from '@/api/order';
|
||||||
|
import { OrderBean } from '@/api/order/types';
|
||||||
|
|
||||||
|
const orderBean = ref<{
|
||||||
|
order: OrderBean,
|
||||||
|
stock: any[],
|
||||||
|
paymentList: []
|
||||||
|
}>();
|
||||||
|
|
||||||
|
onLoad(async (e: any) => {
|
||||||
|
orderBean.value = await getOrderDetail(e.orderId);
|
||||||
|
});
|
||||||
|
|
||||||
const cancel = () => {
|
const cancel = () => {
|
||||||
};
|
};
|
||||||
@@ -148,7 +164,7 @@ const payment = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.address-view {
|
.address-view {
|
||||||
padding-top: 38rpx;
|
padding-top: 30rpx;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
|
|
||||||
.user-info {
|
.user-info {
|
||||||
@@ -328,7 +344,7 @@ const payment = () => {
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
border-radius: 34rpx;
|
border-radius: 50rpx;
|
||||||
padding: 17rpx 45rpx;
|
padding: 17rpx 45rpx;
|
||||||
border: 1rpx solid #707070;
|
border: 1rpx solid #707070;
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
@@ -336,7 +352,7 @@ const payment = () => {
|
|||||||
|
|
||||||
text:nth-of-type(2) {
|
text:nth-of-type(2) {
|
||||||
padding: 17rpx 45rpx;
|
padding: 17rpx 45rpx;
|
||||||
border-radius: 43rpx;
|
border-radius: 50rpx;
|
||||||
border: 1rpx solid #F32B2B;
|
border: 1rpx solid #F32B2B;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
|
@@ -1,21 +1,50 @@
|
|||||||
<template>
|
<template>
|
||||||
<tabbar :titles="['全部', '进行中', '已结束']" @change='args => {}' />
|
<tabbar :titles="['全部', '进行中', '已结束']" @change='tabChange' />
|
||||||
<order-item v-for='(item,index) in orderList' :key='index' :item='item' />
|
<u-list :list='orderList' :border='false' @scrolltolower='loadMore'>
|
||||||
|
<u-list-item v-for='(item,index) in orderList' :key='index'>
|
||||||
|
<order-item :item='item' />
|
||||||
|
</u-list-item>
|
||||||
|
<u-loadmore status='loading' />
|
||||||
|
</u-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
|
|
||||||
import { getOrderList } from '@/api/goods';
|
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';
|
||||||
|
|
||||||
|
const orderList = ref<OrderBean[]>([]);
|
||||||
|
const currentPageNum = ref(1);
|
||||||
|
const payStatus = ref(0);
|
||||||
|
|
||||||
const orderList = ref([1, 2, 4, 5]);
|
|
||||||
onLoad((e) => {
|
onLoad((e) => {
|
||||||
fetchData();
|
fetchData();
|
||||||
});
|
});
|
||||||
|
|
||||||
const fetchData = async () => {
|
const tabChange = (index: number) => {
|
||||||
const { rows } = await getOrderList({ pageNum: 1, pageSize: 10, obj: { payStatus: 0 } });
|
payStatus.value = index;
|
||||||
orderList.value = rows;
|
fetchData(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
const fetchData = async (refresh: boolean = true) => {
|
||||||
|
if(!refresh) {
|
||||||
|
currentPageNum.value += 1;
|
||||||
|
}
|
||||||
|
const { list } = await getOrderList({
|
||||||
|
pageNum: currentPageNum.value,
|
||||||
|
pageSize: 20,
|
||||||
|
obj: { payStatus: payStatus.value }
|
||||||
|
});
|
||||||
|
if(refresh) {
|
||||||
|
orderList.value = list;
|
||||||
|
} else {
|
||||||
|
orderList.value = orderList.value.concat(list);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const loadMore = () => {
|
||||||
|
fetchData(false);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
||||||
"projectname": "VIP顾客中心",
|
"projectname": "肃客会员",
|
||||||
"setting": {
|
"setting": {
|
||||||
"compileHotReLoad": true
|
"compileHotReLoad": true
|
||||||
}
|
}
|
||||||
|
@@ -104,11 +104,11 @@ const useUserStore = defineStore('user', {
|
|||||||
const registerResult = await this.userRegister(registerForm);
|
const registerResult = await this.userRegister(registerForm);
|
||||||
this.setUserInfo(registerResult as LoginResult);
|
this.setUserInfo(registerResult as LoginResult);
|
||||||
setToken(res.token);
|
setToken(res.token);
|
||||||
setCompanyId(res.user.companyId);
|
// setCompanyId(res.user.companyId);
|
||||||
} else {
|
} else {
|
||||||
this.setUserInfo(res.user);
|
this.setUserInfo(res.user);
|
||||||
setToken(res.token);
|
setToken(res.token);
|
||||||
setCompanyId(res.user.companyId);
|
// setCompanyId(res.user.companyId);
|
||||||
}
|
}
|
||||||
resolve(res);
|
resolve(res);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
import type {
|
import type { HttpError, HttpRequestConfig, HttpResponse } from 'uview-plus/libs/luch-request';
|
||||||
HttpError,
|
|
||||||
HttpRequestConfig,
|
|
||||||
HttpResponse
|
|
||||||
} from 'uview-plus/libs/luch-request';
|
|
||||||
import { showMessage } from './status';
|
import { showMessage } from './status';
|
||||||
import { getCompanyId, getToken } from '@/utils/auth';
|
import { getCompanyId, getToken } from '@/utils/auth';
|
||||||
import useUserStore from '@/store/modules/user';
|
import useUserStore from '@/store/modules/user';
|
||||||
@@ -57,7 +53,7 @@ function responseInterceptors() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 请求成功则返回结果
|
// 请求成功则返回结果
|
||||||
if(data.code === 200) {
|
if(data.code === 200 || data?.retcode == 0) {
|
||||||
return data || {};
|
return data || {};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +83,7 @@ function responseInterceptors() {
|
|||||||
|
|
||||||
// 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示
|
// 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示
|
||||||
if(custom?.toast !== false) {
|
if(custom?.toast !== false) {
|
||||||
uni.$u.toast(data.message);
|
uni.$u.toast(data.message || data.retinfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果需要catch返回,则进行reject
|
// 如果需要catch返回,则进行reject
|
||||||
|
Reference in New Issue
Block a user