瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

207 lines
4.1 KiB

<template>
<view class="customer-service">
<navbar leftClick @leftClick="$utils.navigateBack" title="客服中心" />
<view class="content">
<!-- 客服介绍 -->
<view class="intro">
<view class="title">我们为您提供贴心服务</view>
<view class="desc">如有任何问题请随时联系我们的客服团队</view>
</view>
<!-- 客服列表 -->
<view class="service-list">
<view
class="service-item"
v-for="(item, index) in serviceList"
:key="index"
@click="showQRCode(item)"
>
<image class="avatar" :src="item.avatar" mode="aspectFill"></image>
<view class="info">
<view class="name">{{ item.name }}</view>
<view class="contact">{{ item.contact }}</view>
</view>
<uv-icon name="arrow-right" size="24rpx" color="#999"></uv-icon>
</view>
</view>
</view>
<!-- 微信二维码弹窗 -->
<uv-popup ref="qrPopup" :round="20" bgColor="#fff">
<view class="qr-popup">
<view class="qr-header">
<view class="title">{{ currentService.name }}</view>
<view class="subtitle">扫码添加微信</view>
</view>
<view class="qr-content">
<image class="qr-code" :src="currentService.qrCode" mode="aspectFit"></image>
<view class="qr-tips">长按保存二维码,微信扫码添加</view>
</view>
<view class="qr-actions">
<uv-button type="primary" @click="$refs.qrPopup.close()">知道了</uv-button>
</view>
</view>
</uv-popup>
</view>
</template>
<script>
export default {
data() {
return {
currentService: {},
serviceList: [
{
name: '客服小美',
contact: '微信:kefu001',
avatar: '/static/image/avatar/kefu1.jpg',
qrCode: '/static/image/qrcode/kefu1_qr.jpg'
},
{
name: '客服小丽',
contact: '手机:138-8888-8888',
avatar: '/static/image/avatar/kefu2.jpg',
qrCode: '/static/image/qrcode/kefu2_qr.jpg'
},
{
name: '客服小雨',
contact: '微信:kefu003',
avatar: '/static/image/avatar/kefu3.jpg',
qrCode: '/static/image/qrcode/kefu3_qr.jpg'
},
{
name: '客服小花',
contact: '手机:139-9999-9999',
avatar: '/static/image/avatar/kefu4.jpg',
qrCode: '/static/image/qrcode/kefu4_qr.jpg'
}
]
}
},
methods: {
// 显示二维码弹窗
showQRCode(service) {
this.currentService = service
this.$refs.qrPopup.open('center')
}
}
}
</script>
<style scoped lang="scss">
.customer-service {
background-color: #f5f5f5;
min-height: 100vh;
.content {
padding: 20rpx;
}
.intro {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 40rpx;
border-radius: 20rpx;
margin-bottom: 30rpx;
.title {
color: #fff;
font-size: 36rpx;
font-weight: bold;
margin-bottom: 10rpx;
}
.desc {
color: rgba(255, 255, 255, 0.8);
font-size: 28rpx;
}
}
.service-list {
background-color: #fff;
border-radius: 20rpx;
padding: 20rpx;
margin-bottom: 30rpx;
.service-item {
display: flex;
align-items: center;
padding: 30rpx 20rpx;
border-bottom: 1rpx solid #f0f0f0;
&:last-child {
border-bottom: none;
}
.avatar {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
margin-right: 20rpx;
}
.info {
flex: 1;
.name {
font-size: 32rpx;
font-weight: bold;
color: #333;
margin-bottom: 8rpx;
}
.contact {
font-size: 26rpx;
color: #666;
}
}
}
}
.qr-popup {
padding: 40rpx;
text-align: center;
width: 600rpx;
.qr-header {
margin-bottom: 30rpx;
.title {
font-size: 36rpx;
font-weight: bold;
color: #333;
margin-bottom: 10rpx;
}
.subtitle {
font-size: 28rpx;
color: #666;
}
}
.qr-content {
margin-bottom: 30rpx;
.qr-code {
width: 400rpx;
height: 400rpx;
border-radius: 20rpx;
margin-bottom: 20rpx;
}
.qr-tips {
font-size: 24rpx;
color: #999;
line-height: 1.5;
}
}
.qr-actions {
display: flex;
justify-content: center;
}
}
}
</style>