cashier_app/pages/list/render/MemberRender.vue

119 lines
2.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
会员列表页面 数据渲染
业务 会员管理
@author terrfly
@site https://www.jeequan.com
@date 2022/11/30 07:07
-->
<template>
<view class="card-wrapper">
<view class="card-main" hover-class="touch-hover" :style="{ right: right + 'rpx' }">
<view class="card-item" @tap="toDetails">
<view class="img-wrapper">
<image :src="props.record.avatarUrl" mode="scaleToFill" />
</view>
<view class="card-info">
<view class="info-text">
<view class="text-main single-text-beyond">{{ props.record.mbrName }}</view>
</view>
<view class="info-phone">
{{props.record.mbrTel}}
<text class="info-balance">余额{{ cal.cert2Dollar(props.record.balance) }}</text>
</view>
</view>
</view>
</view>
</view>
</template>
<script setup>
import { reactive, ref } from 'vue'
import go from '@/commons/utils/go.js'
import cal from '@/commons/utils/cal.js'
// 定义传入属性
const props = defineProps({
record: { type: Object, default: () => {} }, // 渲染对象
})
//前往会员详情
const toDetails = () => {
go.to('PAGES_MEMBER_DETAIL', { mbrId: props.record.mbrId })
}
</script>
<style lang="scss" scoped>
.card-wrapper {
overflow: hidden;
.card-main {
position: relative;
padding: 0 30rpx;
height: 170rpx;
background-color: $J-bg-ff;
transition: 0.2s ease-in;
.card-item {
display: flex;
align-items: center;
width: 100%;
height: 100%;
.img-wrapper {
position: relative;
flex-shrink: 0;
width: 100rpx;
height: 100rpx;
background-color: skyblue;
border-radius: 50%;
image {
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.card-info {
margin-left: 30rpx;
.info-text {
display: flex;
.text-main {
max-width: 446rpx;
font-size: 30rpx;
font-weight: 400;
color: #000000ff;
opacity: 1;
}
.info-state {
display: flex;
align-items: center;
margin-left: 30rpx;
padding: 0 15rpx;
height: 40rpx;
font-size: 23rpx;
font-weight: 400;
color: #fff;
white-space: nowrap;
background: linear-gradient(270deg, rgba(61, 220, 68, 1) 0%, rgba(23, 187, 118, 1) 100%);
border-radius: 6rpx;
}
}
.info-phone {
margin-top: 16rpx;
font-size: 25rpx;
font-weight: 400;
color: $J-color-t99;
.info-balance {
padding-left: 30rpx;
color: #000000ff;
font-size: 26rpx;
}
}
}
}
}
}
</style>