From 76ed09d116f484b261d44219de300b79eb2013b3 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Wed, 29 Oct 2025 18:05:29 +0800
Subject: [PATCH] 生成名片
---
mobile/pages/plus/business/index.vue | 96 ++++++++++++++++++++++++++----------------------
1 files changed, 52 insertions(+), 44 deletions(-)
diff --git a/mobile/pages/plus/business/index.vue b/mobile/pages/plus/business/index.vue
index fc981c4..11518c5 100644
--- a/mobile/pages/plus/business/index.vue
+++ b/mobile/pages/plus/business/index.vue
@@ -1,34 +1,9 @@
<template>
<view>
- <header-bar title="我的名片" :isBack="true" @click="back"></header-bar>
<!-- 名片展示区域 -->
<view class="content">
- <view class="business-card" v-if="businessList.length > 0">
- <image class="top-image" :src="businessList[current].background_image" mode="aspectFill"></image>
- <view class="business-info">
- <image class="avatar" :src="businessList[current].avatar" mode="aspectFill"></image>
- <view class="info-text">
- <view class="name">{{businessList[current].real_name}}</view>
- <view class="company">{{businessList[current].company_name}}</view>
- <view class="position">{{businessList[current].position}}</view>
- </view>
- </view>
- <view class="business-contact">
- <view class="contact-item" @click="makePhoneCall(businessList[current].phone)">
- <text class="icon iconfont icon-phone"></text>
- <text class="text">{{businessList[current].phone}}</text>
- </view>
- <view class="contact-item" v-if="businessList[current].mobile"
- @click="makePhoneCall(businessList[current].mobile)">
- <text class="icon iconfont icon-mobile"></text>
- <text class="text">{{businessList[current].mobile}}</text>
- </view>
- <view class="contact-item" v-if="businessList[current].email"
- @click="sendEmail(businessList[current].email)">
- <text class="icon iconfont icon-email"></text>
- <text class="text">{{businessList[current].email}}</text>
- </view>
- </view>
+ <view class="business-card">
+ <image style="width: 100%;" @tap="viewPicture(businessImage)" mode="widthFix" :src="businessImage"></image>
</view>
<!-- 名片操作按钮 -->
@@ -73,7 +48,7 @@
</view>
<!-- 切换名片弹窗 -->
- <uni-popup ref="popup" type="bottom" :mask-click="false">
+ <Popup :show="popupShow" type="bottom" :mask-click="false">
<view class="popup-content">
<view class="popup-header">
<text class="title">选择名片</text>
@@ -94,13 +69,17 @@
</view>
</scroll-view>
</view>
- </uni-popup>
+ </Popup>
</view>
</view>
</template>
<script>
+ import Popup from '@/components/uni-popup.vue';
export default {
+ components: {
+ Popup,
+ },
data() {
return {
businessList: [],
@@ -109,7 +88,10 @@
visitors: [],
loading: false,
page: 1,
- search: ''
+ search: '',
+ businessImage: '',
+ height: 0,
+ popupShow: false
};
},
onLoad() {
@@ -120,41 +102,61 @@
this.getVisitorList();
},
methods: {
+ /**
+ * 查看图片
+ * @param {Object} e
+ */
+ viewPicture(e) {
+ uni.previewImage({
+ urls: [e]
+ })
+ },
back() {
uni.navigateBack();
},
init() {
this.getbusinessList();
- this.getStatistics();
+ //this.getStatistics();
this.getVisitorList();
},
getbusinessList() {
let _this = this;
- _this._post('plus.business/business/getList', {}, function(res) {
- _this.businessList = res.data;
+ _this._post('plus.business.business/getList', {}, function(res) {
+ _this.businessList = res.data.data;
if (_this.businessList.length > 0) {
+ _this.getbusiness(_this.businessList[_this.current].user_id)
_this.getCardStatistics(_this.businessList[_this.current].business_card_id);
}
});
},
getCardStatistics(business_card_id) {
let _this = this;
- _this._post('plus.business/business/getStatistics', {
+ _this._post('plus.business.business/getStatistics', {
business_card_id: business_card_id
}, function(res) {
_this.statistics = res.data;
});
},
+
getStatistics() {
// 获取统计数据
let _this = this;
- _this._post('plus.business/business/getStatistics', {}, function(res) {
+ _this._post('plus.business.business/getStatistics', {}, function(res) {
_this.statistics = res.data;
});
},
+ getbusiness(user_id) {
+ this._get('plus.business.business/getDetail', {
+ user_id: user_id
+ }, res => {
+ this.businessImage = res.data.mp
+ this.height = res.data.height
+ this.business_card_id = res.data.business_card_id
+ })
+ },
getVisitorList() {
let _this = this;
- _this._post('plus.business/business/getVisitors', {
+ _this._post('plus.business.saving/getList', {
page: 1,
list_rows: 10
}, function(res) {
@@ -178,14 +180,16 @@
if (this.businessList.length > 0) {
this.gotoPage(
`/pages/plus/business/add?business_card_id=${this.businessList[this.current].business_card_id}`
- );
+ );
}
},
switchCard() {
- this.$refs.popup.open();
+ this.popupShow = true;
+ //this.$refs.popup.open();
},
closePopup() {
- this.$refs.popup.close();
+ this.popupShow = false;
+ //this.$refs.popup.close();
},
selectCard(index) {
this.current = index;
@@ -193,7 +197,7 @@
this.closePopup();
},
addNewCard() {
- this.closePopup();
+ //this.closePopup();
this.gotoPage('/pages/plus/business/add');
},
shareCard() {
@@ -201,7 +205,12 @@
if (this.businessList.length > 0) {
uni.showShareMenu({
withShareTicket: true,
- menus: ['shareAppMessage', 'shareTimeline']
+ menus: ['shareAppMessage', 'shareTimeline'],
+ title: `${this.businessList[this.current].name}的电子名片`,
+ path: `/pages/plus/business/detail?business_card_id=${this.businessList[this.current].business_card_id}&referee_id=${this.getUserId()}`,
+ complete:function(res){
+ console.log(res);
+ }
});
}
},
@@ -229,7 +238,7 @@
onShareAppMessage() {
if (this.businessList.length > 0) {
return {
- title: `${this.businessList[this.current].real_name}的电子名片`,
+ title: `${this.businessList[this.current].name}的电子名片`,
path: `/pages/plus/business/detail?business_card_id=${this.businessList[this.current].business_card_id}&referee_id=${this.getUserId()}`
};
}
@@ -241,7 +250,7 @@
onShareTimeline() {
if (this.businessList.length > 0) {
return {
- title: `${this.businessList[this.current].real_name}的电子名片`,
+ title: `${this.businessList[this.current].name}的电子名片`,
path: `/pages/plus/business/detail?business_card_id=${this.businessList[this.current].business_card_id}&referee_id=${this.getUserId()}`
};
}
@@ -262,7 +271,6 @@
background: #fff;
border-radius: 20rpx;
overflow: hidden;
- padding-bottom: 30rpx;
.top-image {
width: 100%;
--
Gitblit v1.9.2