143 lines
2.9 KiB
Vue
143 lines
2.9 KiB
Vue
<!--
|
||
@name: DistributorDataItem
|
||
@author: kahu4
|
||
@date: 2024-01-17 15:50
|
||
@description:DistributorDataItem
|
||
@update: 2024-01-17 15:50
|
||
-->
|
||
<script setup>
|
||
|
||
import { distributorDataList } from "../index.data";
|
||
import { computed, toRefs } from "vue";
|
||
|
||
const props = defineProps({
|
||
data: {
|
||
type: Object,
|
||
required: true
|
||
}
|
||
})
|
||
|
||
const {data} = toRefs(props)
|
||
|
||
const tagType = computed(() => {
|
||
return ["待结算", "已结算", "已取消"][data.value.status]
|
||
})
|
||
const tagClass = computed(() => {
|
||
return ["", "success-tag", "default-tag"][data.value.status]
|
||
})
|
||
</script>
|
||
|
||
<template>
|
||
<view class="user-item">
|
||
<view class="userinfo-row flex flex-jc__start">
|
||
<view class="userinfo flex flex-column flex-jc__sb">
|
||
<view class="username flex flex-jc__sb">
|
||
{{ data.userName }}
|
||
<text
|
||
class="tag default-tag"
|
||
:class="tagClass">
|
||
{{ tagType }}
|
||
</text>
|
||
</view>
|
||
<view class="time">订单号:{{ data.orderId }}</view>
|
||
</view>
|
||
</view>
|
||
<view class="distribution-info-row">
|
||
<view
|
||
class="info-item"
|
||
v-for="distributorData in distributorDataList"
|
||
:key="distributorData.label">
|
||
<view class="title">{{ distributorData.label }}</view>
|
||
<view class="count">{{ data[distributorData.field] || 0 }}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<style
|
||
scoped
|
||
lang="scss">
|
||
.user-item {
|
||
margin-bottom: 16rpx;
|
||
@include usePadding(32, 32);
|
||
background: $white-color;
|
||
border-radius: 15rpx;
|
||
|
||
.userinfo-row {
|
||
padding-bottom: 16rpx;
|
||
margin-bottom: 16rpx;
|
||
border-bottom: 1rpx solid $page-bg-color;
|
||
|
||
image {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
border-radius: 50%;
|
||
margin-right: 24rpx;
|
||
background: #fbfbfb;
|
||
}
|
||
|
||
.userinfo {
|
||
width: 100%;
|
||
|
||
.username {
|
||
width: 100%;
|
||
font-size: 28rpx;
|
||
font-weight: bold;
|
||
@include useFlex(space-between, center);
|
||
|
||
.tag {
|
||
@include usePadding(24, 4);
|
||
margin-left: 12rpx;
|
||
color: $primary-color;
|
||
background: #E85A2B12;
|
||
border-radius: 50rpx;
|
||
font-size: 24rpx;
|
||
font-weight: normal;
|
||
}
|
||
|
||
.default-tag {
|
||
color: #999999;
|
||
background: #F6F6F6;
|
||
}
|
||
|
||
.success-tag {
|
||
background: #EAF9EC !important;
|
||
color: #28c445 !important;
|
||
}
|
||
}
|
||
|
||
.time {
|
||
color: $tips-color;
|
||
font-size: 24rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.distribution-info-row {
|
||
width: 100%;
|
||
display: grid;
|
||
grid-template-columns: repeat(2, 1fr);
|
||
column-gap: 16rpx;
|
||
|
||
.info-item {
|
||
@include usePadding(16, 16);
|
||
border-radius: 15rpx;
|
||
background: #f6f6f6;
|
||
color: #7A7A7A;
|
||
font-size: 24rpx;
|
||
|
||
.title {
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.count {
|
||
color: #333;
|
||
font-weight: bold;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
</style>
|