瑶都万能墙
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.
 
 
 

188 lines
3.5 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 list"
:key="index"
@click="showQRCode(item)"
>
<image class="avatar" :src="item.headImage" mode="aspectFill"></image>
<view class="info">
<view class="name">{{ item.nickName }}</view>
<view class="contact">{{ item.phone }}</view>
</view>
<uv-icon name="arrow-right"
v-if="item.wxCode"
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.nickName }}</view>
<view class="subtitle">扫码添加微信</view>
</view>
<view class="qr-content">
<image class="qr-code" :src="currentService.wxCode" 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>
import mixinsList from '@/mixins/list.js'
export default {
mixins: [mixinsList],
data() {
return {
mixinsListApi: 'getMyService',
currentService: {},
}
},
methods: {
// 显示二维码弹窗
showQRCode(service) {
if(service.wxCode){
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>