Browse Source

add order logic

dev
刘嘉炜 3 weeks ago
parent
commit
d6c1e98ef7
  1. 25
      src/pages/order/list.vue
  2. 25
      src/subpackage/order/components/detail/goods.vue
  3. 35
      src/subpackage/order/pages/detail.vue

25
src/pages/order/list.vue

@ -14,10 +14,9 @@ const orderLs = ref([]);
onLoad(() => { onLoad(() => {
getOrderLs({}); getOrderLs({});
}); });
onReachBottom(()=>{ onReachBottom(()=>{
getOrderLs({
page: ++loadPage
});
getOrderLs({ page: ++loadPage });
}) })
@ -42,6 +41,20 @@ function getOrderLs({
}) })
} }
//
function ZH_status(e){
if(e?.pay_status === 3&&e?.is_active_release)return '已失效*';
return e.pay_status_text ? e.pay_status_text : order_zh_status(e?.pay_status);
}
// /
function order_zh_status(status){
if(status == undefined || status == '' || status == null)return '-'
if(status == -1)return '已失效';
if(status == 8)return '使用中'; // 20210521
return ['未支付','待使用','已使用','已失效','已退款'][status] || '';
}
</script> </script>
<template> <template>
@ -54,14 +67,14 @@ function getOrderLs({
<view class="oi-header"> <view class="oi-header">
<image class="oh-logo" mode="aspectFit" :src="e.stadium_logo"></image> <image class="oh-logo" mode="aspectFit" :src="e.stadium_logo"></image>
<view class="oh-name">{{ e.stadium_name ?? '-' }}</view> <view class="oh-name">{{ e.stadium_name ?? '-' }}</view>
<view class="oh-status">已核销</view>
<view class="oh-status">{{ ZH_status(e) }}</view>
</view> </view>
<view class="oi-info"> <view class="oi-info">
<view class="oi-line"><text class="ol-txt">订单信息</text>羽毛球订场200元代金券欧轩客服</view>
<view class="oi-line"><text class="ol-txt">订单信息</text>{{ e?.douyin_toolkit_info?.sku_info?.title ?? '-' }}</view>
<view class="oi-line"><text class="ol-txt">订单编号</text>{{ e.order_no ?? '-' }}</view> <view class="oi-line"><text class="ol-txt">订单编号</text>{{ e.order_no ?? '-' }}</view>
</view> </view>
<view class="oi-bottom"> <view class="oi-bottom">
<view class="ob-time">2025-08-17 18:02:45 核销</view>
<view class="ob-time">{{ e.pay_time ?? '-' }} 核销</view>
<view class="ob-price"><text class="op-txt">支付</text>¥{{ e.pay_amount ?? '0' }}</view> <view class="ob-price"><text class="op-txt">支付</text>¥{{ e.pay_amount ?? '0' }}</view>
</view> </view>
</view> </view>

25
src/subpackage/order/components/detail/goods.vue

@ -2,6 +2,16 @@
import { onLoad } from '@dcloudio/uni-app'; import { onLoad } from '@dcloudio/uni-app';
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import textLine from "./text_line.vue"; import textLine from "./text_line.vue";
const props = defineProps({
dyOrder: {
type: Object,
default: () => ({})
},
imgUrl: {
type: String,
default: ''
}
});
onLoad(() => { onLoad(() => {
}); });
@ -13,21 +23,21 @@ onLoad(() => {
<view class="od-goods"> <view class="od-goods">
<view class="og-title">抖音商品信息</view> <view class="og-title">抖音商品信息</view>
<view class="og-info"> <view class="og-info">
<image class="oi-pic"></image>
<image v-if="imgUrl" class="oi-pic" mode="aspectFit" :src="imgUrl"></image>
<view class="oi-desc"> <view class="oi-desc">
<view class="od-name">羽毛球订场200元代金券欧轩运营</view>
<view class="od-price">¥ 9.9</view>
<view class="od-name">{{ dyOrder?.sku_info?.title ?? '-' }}</view>
<view class="od-price">¥ {{ dyOrder?.amount?.pay_amount ?? '' }}</view>
</view> </view>
<text class="oi-icon">&#xe695;</text> <text class="oi-icon">&#xe695;</text>
</view> </view>
<view class="og-bottom"> <view class="og-bottom">
<view class="ob-lines"> <view class="ob-lines">
<view class="ol-item"> <view class="ol-item">
<text-line label="订单编号:">3107858392102658852</text-line>
</view>
<view class="ol-item">
<text-line label="核销券码:">3107858392102658852</text-line>
<text-line label="订单编号:">{{ dyOrder?.certificate_id ?? '' }}</text-line>
</view> </view>
<!-- <view class="ol-item">
<text-line label="核销券码:">{{ dyOrder?.certificate_id ?? '' }}</text-line>
</view> -->
</view> </view>
<view class="ob-status">已核销</view> <view class="ob-status">已核销</view>
</view> </view>
@ -48,7 +58,6 @@ onLoad(() => {
margin-right: 24upx; margin-right: 24upx;
width: 136upx; width: 136upx;
height: 136upx; height: 136upx;
background: skyblue;
} }
.oi-desc{ .oi-desc{
flex-grow: 1; flex-grow: 1;

35
src/subpackage/order/pages/detail.vue

@ -1,6 +1,6 @@
<script setup> <script setup>
import { onLoad } from '@dcloudio/uni-app'; import { onLoad } from '@dcloudio/uni-app';
import { reactive, ref } from "vue";
import { reactive, ref, computed } from "vue";
import textLine from "../components/detail/text_line.vue"; import textLine from "../components/detail/text_line.vue";
import detailGoods from "../components/detail/goods.vue"; import detailGoods from "../components/detail/goods.vue";
import detailVerify from "../components/detail/verify.vue"; import detailVerify from "../components/detail/verify.vue";
@ -11,12 +11,10 @@ import { get_zh_day } from "@/utils";
const orderInfo = ref({}); const orderInfo = ref({});
// order_type 0 1/2 // order_type 0 1/2
onLoad(options => { onLoad(options => {
orderGet({ orderGet({
data: { data: {
brand_id: options?.brand_id ?? '', brand_id: options?.brand_id ?? '',
order_no: options?.order_no ?? '', order_no: options?.order_no ?? '',
from_platform: 'weixin'
} }
}) })
.then(res=>{ .then(res=>{
@ -49,15 +47,33 @@ function zh_selectedSpacs(specsArr){
return specsArr.join('+') || ''; return specsArr.join('+') || '';
} }
const orderStatusTxt = computed(() => {
return ZH_status(orderInfo.value);
});
//
function ZH_status(e){
if(e?.pay_status === 3&&e?.is_active_release)return '已失效*';
return e.pay_status_text ? e.pay_status_text : order_zh_status(e?.pay_status);
}
// /
function order_zh_status(status){
if(status == undefined || status == '' || status == null)return '-'
if(status == -1)return '已失效';
if(status == 8)return '使用中'; // 20210521
return ['未支付','待使用','已使用','已失效','已退款'][status] || '';
}
</script> </script>
<template> <template>
<view class="order-detail">
<view class="order-detail" v-if="orderInfo?.order_no">
<view class="od-box od-header"> <view class="od-box od-header">
<view class="oh-stadium"> <view class="oh-stadium">
<image class="os-logo" mode="aspectFit" :src="orderInfo?.stadium_logo ?? ''"></image> <image class="os-logo" mode="aspectFit" :src="orderInfo?.stadium_logo ?? ''"></image>
<view class="os-name">{{ orderInfo?.stadium_name ?? '-' }}</view> <view class="os-name">{{ orderInfo?.stadium_name ?? '-' }}</view>
<view class="os-status">已核销</view>
<view class="os-status">{{ orderStatusTxt }}</view>
</view> </view>
<view class="oh-line">订单编号{{ orderInfo?.order_no ?? '-' }}</view> <view class="oh-line">订单编号{{ orderInfo?.order_no ?? '-' }}</view>
<view class="oh-line">创建时间{{ orderInfo?.success_time ?? '-' }}</view> <view class="oh-line">创建时间{{ orderInfo?.success_time ?? '-' }}</view>
@ -95,7 +111,7 @@ function zh_selectedSpacs(specsArr){
</template> </template>
</venue-info-async> </venue-info-async>
</view> </view>
<view class="od-box od-code" v-if="orderInfo.verify_qrcode">
<view class="od-box od-code" v-if="orderInfo.order_type === 0 && (orderInfo.pay_status==1 || orderInfo.pay_status==8)">
<!-- 二维码 --> <!-- 二维码 -->
<image <image
mode="aspectFit" mode="aspectFit"
@ -135,9 +151,12 @@ function zh_selectedSpacs(specsArr){
</view> </view>
<view class="od-box"> <view class="od-box">
<!-- 抖音商品信息 --> <!-- 抖音商品信息 -->
<detail-goods></detail-goods>
<detail-goods
:dyOrder="orderInfo?.extension?.douyin_toolkit_info"
:imgUrl="orderInfo?.image"
></detail-goods>
</view> </view>
<view class="od-fixed">
<view class="od-fixed" v-if="orderInfo.pay_status == 1&&orderInfo.is_refundable">
<view class="of-refund">申请退款</view> <view class="of-refund">申请退款</view>
</view> </view>
</view> </view>

Loading…
Cancel
Save