mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git
synced 2026-08-06 10:57:25 +08:00
- 在 manifest.json 和 project.config.json 中启用 postcss 和 enhance 设置 - 在多个 Vue 组件中优化空值处理逻辑,确保更健壮的代码执行 - 调整样式和布局以提升用户体验
166 lines
4.2 KiB
Vue
166 lines
4.2 KiB
Vue
<template>
|
||
<view class="log-list">
|
||
<view
|
||
class="log-way"
|
||
v-if="withdrawLogList.length != 0"
|
||
v-for="(item, index) in withdrawLogList"
|
||
:key="'cash-' + index"
|
||
>
|
||
<view class="log-item">
|
||
<view class="log-item-view">
|
||
<view class="title">{{
|
||
item.distributionCashStatus == 'APPLY'
|
||
? '待处理'
|
||
: item.distributionCashStatus == 'VIA_AUDITING'
|
||
? '通过'
|
||
: '拒绝'
|
||
}}</view>
|
||
<view class="price">+{{ unitPrice(item.price) }}</view>
|
||
</view>
|
||
<view class="log-item-view">
|
||
<view>{{ item.createTime }}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view
|
||
class="log-way"
|
||
v-if="achievementList.length != 0"
|
||
v-for="(item, index) in achievementList"
|
||
:key="'ach-' + index"
|
||
>
|
||
<view class="log-item">
|
||
<view class="log-item-view">
|
||
<view class="title">{{ item.goodsName }}</view>
|
||
<view class="price">提成金额:+{{ unitPrice(item.rebate) }}</view>
|
||
</view>
|
||
<view class="log-item-view">
|
||
<view>创建时间:{{ item.createTime }}</view>
|
||
<view>店铺:{{ item.storeName }}</view>
|
||
</view>
|
||
<view class="log-item-footer">
|
||
<view>会员名称:{{ item.memberName }}</view>
|
||
</view>
|
||
<view class="log-item-footers">
|
||
<view>订单号:{{ item.orderSn }}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="empty" v-if="isEmpty">
|
||
<u-loadmore :status="loadStatus" :icon-type="iconType" bg-color="#f7f7f7" />
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup lang="ts">
|
||
import { ref } from 'vue'
|
||
import { onLoad, onReachBottom } from '@dcloudio/uni-app'
|
||
import { useStore } from '@/store'
|
||
import { cashLog, distributionOrderList } from '@/api/goods'
|
||
import { unitPrice } from '@/utils/filters.js'
|
||
|
||
const store = useStore()
|
||
|
||
const withdrawLogList = ref<any[]>([])
|
||
const achievementList = ref<any[]>([])
|
||
const loadStatus = ref('loadmore')
|
||
const iconType = ref('flower')
|
||
const isEmpty = ref(false)
|
||
const listType = ref(0)
|
||
const routeQuery = ref<Record<string, string>>({})
|
||
|
||
const withdrawParams = ref({ pageNumber: 1, pageSize: 10 })
|
||
const achievementParams = ref({ pageNumber: 1, pageSize: 10 })
|
||
|
||
onLoad((option) => {
|
||
const type = Number(option.type != null ? option.type : 0)
|
||
listType.value = type
|
||
routeQuery.value = option || {}
|
||
uni.setNavigationBarTitle({
|
||
title: type === 0 ? '分销业绩' : '提现记录',
|
||
})
|
||
type === 0 ? fetchAchievementList() : fetchWithdrawLog()
|
||
})
|
||
|
||
onReachBottom(() => {
|
||
loadStatus.value = 'loading'
|
||
if (listType.value === 0) {
|
||
achievementParams.value.pageNumber++
|
||
fetchAchievementList()
|
||
} else {
|
||
withdrawParams.value.pageNumber++
|
||
fetchWithdrawLog()
|
||
}
|
||
})
|
||
|
||
function hideLoadingIfNeeded() {
|
||
if (store.state.isShowToast) uni.hideLoading()
|
||
}
|
||
|
||
function fetchAchievementList() {
|
||
uni.showLoading({ title: '加载中' })
|
||
distributionOrderList(achievementParams.value).then((res) => {
|
||
if (res.data.success && res.data.result.records.length >= 1) {
|
||
achievementList.value.push(...res.data.result.records)
|
||
} else {
|
||
loadStatus.value = 'nomore'
|
||
isEmpty.value = true
|
||
}
|
||
hideLoadingIfNeeded()
|
||
})
|
||
}
|
||
|
||
function fetchWithdrawLog() {
|
||
uni.showLoading({ title: '加载中' })
|
||
cashLog(withdrawParams.value).then((res) => {
|
||
if (res.data.success && res.data.result.records.length >= 1) {
|
||
withdrawLogList.value.push(...res.data.result.records)
|
||
} else {
|
||
loadStatus.value = 'nomore'
|
||
isEmpty.value = true
|
||
}
|
||
hideLoadingIfNeeded()
|
||
})
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.empty {
|
||
margin: 40rpx 0;
|
||
}
|
||
.price {
|
||
color: $main-color;
|
||
font-weight: bold;
|
||
}
|
||
.log-list {
|
||
padding: 0 8rpx;
|
||
overflow: hidden;
|
||
margin: 20rpx 0;
|
||
}
|
||
.log-way {
|
||
margin: 10rpx 0;
|
||
overflow: hidden;
|
||
background: #fff;
|
||
border-radius: 10rpx;
|
||
padding: 20rpx 0;
|
||
}
|
||
.title {
|
||
font-size: 30rpx;
|
||
font-weight: bold;
|
||
}
|
||
.log-item-view {
|
||
padding: 8rpx 32rpx;
|
||
display: flex;
|
||
font-size: 13px;
|
||
justify-content: space-between;
|
||
}
|
||
.log-item-footer,
|
||
.log-item-footers {
|
||
padding: 8rpx 32rpx;
|
||
display: flex;
|
||
font-size: 13px;
|
||
justify-content: space-between;
|
||
}
|
||
</style>
|