xhj 2 年之前
父節點
當前提交
56c779f848
共有 54 個文件被更改,包括 961 次插入437 次删除
  1. 30 0
      card/evaluate/evaluate.css
  2. 150 0
      card/evaluate/evaluate.vue
  3. 14 0
      card/evaluateList/evaluateList.css
  4. 94 0
      card/evaluateList/evaluateList.vue
  5. 93 5
      card/index/index.css
  6. 127 167
      card/index/index.vue
  7. 12 0
      card/poster/poster.css
  8. 61 25
      card/poster/poster.vue
  9. 二進制
      card/static/images/area.png
  10. 二進制
      card/static/images/dz1.png
  11. 二進制
      card/static/images/dz1_h.png
  12. 二進制
      card/static/images/fx.png
  13. 二進制
      card/static/images/grfc.png
  14. 二進制
      card/static/images/grjj.png
  15. 二進制
      card/static/images/gs.png
  16. 二進制
      card/static/images/gsjj.png
  17. 二進制
      card/static/images/hot.png
  18. 二進制
      card/static/images/pf_star.png
  19. 二進制
      card/static/images/pf_star_h.png
  20. 二進制
      card/static/images/phone1.png
  21. 二進制
      card/static/images/posterBg.png
  22. 二進制
      card/static/images/save.png
  23. 二進制
      card/static/images/shry.png
  24. 二進制
      card/static/images/upload.png
  25. 二進制
      card/static/images/wdmp.png
  26. 二進制
      card/static/images/wx.png
  27. 1 0
      components/service-contact/index.css
  28. 22 6
      components/service-contact/index.vue
  29. 8 3
      match/activity/activity.vue
  30. 2 2
      match/activityDet/activityDet.vue
  31. 7 6
      match/signConfirm/signConfirm.vue
  32. 10 0
      pages.json
  33. 43 0
      pages/index/index.css
  34. 60 16
      pages/index/index.vue
  35. 14 0
      pages/matchList/index.vue
  36. 48 1
      pages/user/user.css
  37. 95 184
      pages/user/user.vue
  38. 二進制
      static/images/bzzx.png
  39. 二進制
      static/images/gywm.png
  40. 二進制
      static/images/hbtg.png
  41. 二進制
      static/images/hd_dcy.png
  42. 二進制
      static/images/hd_ywc.png
  43. 二進制
      static/images/hdgl.png
  44. 二進制
      static/images/jyfk.png
  45. 二進制
      static/images/lxkf.png
  46. 二進制
      static/images/rmhd.png
  47. 二進制
      static/images/ttcj.png
  48. 二進制
      static/images/wdmp.png
  49. 二進制
      static/images/yqhy.png
  50. 二進制
      static/images/yxdy.png
  51. 二進制
      static/images/zxzq.png
  52. 29 8
      topic/content/content.vue
  53. 17 14
      utils/request.js
  54. 24 0
      utils/util.js

+ 30 - 0
card/evaluate/evaluate.css

@@ -0,0 +1,30 @@
+.info{background: #fff;margin: 10rpx 0;padding: 30rpx;align-items: flex-start;}
+.disk-img{width: 110rpx;height: 100rpx;margin-right: 20rpx;position: relative;}
+.pic{width: 100rpx;height: 100rpx;border-radius: 10rpx;position: relative;z-index: 2;}
+.disk{width: 80rpx;height: 80rpx;position: absolute;right: 0;top: 50%;transform: translateY(-50%);}
+.tit{font-size: 30rpx;margin-bottom: 15rpx;font-weight: bold;}
+.singer{font-size: 24rpx;margin-right: 30rpx;}
+.singer image,.time image{width: 24rpx;height: 24rpx;margin-right: 10rpx;}
+.singer text{margin: 0 5rpx;}
+.time{font-size: 24rpx;}
+.ver{font-size: 24rpx;color: #999;margin-top: 15rpx;line-height: 1.5;}
+.scores{background: #fff;margin: 10rpx 0;padding: 0 30rpx;}
+.scores .li{padding: 30rpx 0;border-bottom: 1rpx solid #DEDEDE;font-size: 28rpx;}
+.scores .li:last-child{border-bottom: none;}
+.item{justify-content: flex-end;}
+.star{margin-right: 20rpx;}
+.star image{width: 27rpx;height: 25rpx;margin-right: 20rpx;}
+.det{background: #fff;padding: 30rpx;}
+.tits{font-size: 24rpx;color: #000;justify-content: space-between;}
+.tits text{color: #999;}
+.texts{width: 100%;height: 200rpx;font-size: 28rpx;color: #333;margin-top: 20rpx;}
+.placeholder{color: #999;}
+.imgbox{flex-wrap: wrap;}
+.imgs{width: 155rpx;height: 155rpx;border: 1rpx solid #DBDBDB;position: relative;margin: 20rpx 20rpx 0 0;border-radius: 5rpx;}
+.imgs:nth-child(4n){margin-right: 0;}
+.img{width: 100%;height: 100%;border-radius: 5rpx;}
+.clear{width: 30rpx;height: 30rpx;position: absolute;top: -15rpx;right: -15rpx;}
+.upload{width: 155rpx;height: 155rpx;border: 1rpx solid #DBDBDB;flex-direction: column;justify-content: center;font-size: 24rpx;color: #999;margin: 20rpx 20rpx 0 0;border-radius: 5rpx;}
+.upload image{width: 49rpx;height: 40rpx;margin: 0 auto 10rpx;}
+.bot{background: #fff;box-shadow: 0 -1rpx 0 #E9E9E9;padding: 30rpx;position: fixed;left: 0;right: 0;bottom: 0;z-index: 50;}
+.btn{height: 80rpx;background: var(--mina);border-radius: 40rpx;font-size: 30rpx;color: #fff;text-align: center;line-height: 80rpx;}

+ 150 - 0
card/evaluate/evaluate.vue

@@ -0,0 +1,150 @@
+<template>
+	<view>
+		<view class="scores">
+			<view class="li ddflex">
+				<view class="label">专业评分</view>
+				<view class="item ddflex fflex">
+					<view class="star ddflex">
+						<image v-for="(it, idx) in [2, 4, 6, 8, 10]" :key="idx" :src="recordScore >= it ? '../static/images/pf_star_h.png' : '../static/images/pf_star.png'" @tap="addRecordScores(idx)"></image>
+					</view>
+					<view>{{recordScore}}分</view>
+				</view>
+			</view>
+			<view class="li ddflex">
+				<view class="label">服务评分</view>
+				<view class="item ddflex fflex">
+					<view class="star ddflex">
+						<image v-for="(it, idx) in [2, 4, 6, 8, 10]" :key="idx" :src="musicScore >= it ? '../static/images/pf_star_h.png' : '../static/images/pf_star.png'" @tap="addMusicScores(idx)"></image>
+					</view>
+					<view>{{musicScore}}分</view>
+				</view>
+			</view>
+		</view>
+		<view class="det">
+			<view class="tits ddflex">我的评价<text>{{evaluateText.length}}/300</text></view>
+			<textarea v-model="evaluateText" maxlength="300" placeholder="评价描述" placeholder-class="placeholder" class="texts"></textarea>
+			<view class="imgbox dflex">
+				<view class="imgs" v-for="(item,index) in picList" :key="index">
+					<image :src="item" mode="aspectFill" class="img" @click="preview(picList,index)"></image>
+					<image src="../../static/pages/images/close3.png" class="clear" @click="delPic(index)"></image>
+				</view>
+				<view class="upload ddflex" @click="uploadProductImg()" v-if="picList.length < 9">
+					<image src="../static/images/upload.png" mode="aspectFill"></image>
+					<view>上传图片</view>
+				</view>
+			</view>
+		</view>
+		<view style="height: 140rpx;"></view>
+		<view class="bot">
+			<view class="btn" @click="updateScore">发表评价</view>
+		</view>
+	</view>
+</template>
+
+<script>
+const app = getApp();
+const req = require('../../utils/request.js');
+const api = require('../../utils/api.js');
+const util = require('../../utils/util.js');
+export default {
+	data() {
+		return {
+			picUrlss: req.public.picUrls,
+			id: '',
+			params: '',
+			recordScore: 0,
+			musicScore: 0,
+			evaluateText: '',
+			picList: [],
+			bindType: ''
+		};
+	},
+
+	onLoad(options) {
+		this.id = options.id;
+	},
+
+	methods: {
+		addRecordScores(index) {
+			this.recordScore = (parseInt(index) + 1)*2;
+		},
+		addMusicScores(index) {
+			this.musicScore = (parseInt(index) + 1)*2;
+		},
+		uploadProductImg() {
+			let that = this;
+			uni.chooseImage({
+				count: this.picList.length-9,
+				sizeType: ['original', 'compressed'],
+				sourceType: ['album', 'camera'],
+				success: function({ tempFilePaths }) {
+					uni.showLoading({
+						title: '上传中'
+					});
+					var promise = Promise.all(
+						tempFilePaths.map(tempFilePath => {
+							return new Promise(function(resolve, reject) {
+								req.uploadFile('/api/nocheck/upload', tempFilePath, res => {
+									that.picList = that.picList.concat(res.src);
+									console.log('that.picList==',that.picList)
+									uni.hideLoading();
+								});
+							});
+						})
+					);
+					promise
+						.then(function(results) {
+							console.log(results);
+						})
+						.catch(function(err) {
+							console.log(err);
+						});
+				}
+			});
+		},
+		delPic(index) {
+			let arr = this.picList;
+			arr.splice(index, 1);
+			this.picList = arr;
+		},
+		//预览图片
+		previewImgss(list, index) {
+			var src = list[index].file;
+			let imgs = list.map(it => {
+				if (it.file) {
+					return it.file;
+				}
+			});
+			uni.previewImage({
+				current: src, // 当前显示图片的http链接
+				urls: imgs
+			});
+		},
+		updateScore() {
+			let form = {
+				bindId:this.id,
+				type:2
+			};
+			form.specialityScore = this.recordScore
+			form.serveScore = this.musicScore
+			form.content = this.evaluateText
+			form.evaluateImg = this.picList&&this.picList.length>0 ? this.picList.join(',') : ''
+			
+			if(!form.bindId) return req.msg('id不能为空')
+			if(!form.specialityScore) return req.msg('请进行专业评分')
+			if(!form.serveScore) return req.msg('请进行服务评分')
+			if(!form.content) return req.msg('请填写评价描述')
+			
+			req.postRequest('/api/evaluate/save', form, () => {
+				req.msg('评价成功', () => {
+					uni.navigateBack();
+				});
+			});
+		}
+	}
+};
+</script>
+
+<style>
+	@import "./evaluate.css";
+</style>

+ 14 - 0
card/evaluateList/evaluateList.css

@@ -0,0 +1,14 @@
+
+/* 晒单信息 */
+page{
+	background-color: #fff;
+}
+.evaluation-bar{background: #fff;padding: 40rpx 30rpx;border-top: 20rpx solid #f5f5f5;}
+.evaluation-bar .title{padding-bottom: 20rpx;border-bottom: 1rpx solid #eeeeee;display: flex;justify-content: space-between;margin-bottom: 30rpx;}
+.evaluation-bar .title text{color: #999999;font-size: 24rpx;}
+.evaluation-bar .people{display: flex;align-items: center;}
+.evaluation-bar .people image{width: 70rpx;height: 70rpx;border-radius: 10rpx;margin-right: 20rpx;}
+.evaluation-bar .people .time{font-size: 24rpx;color: #9C9C9C;}
+.evaluation-bar .content{margin-top: 30rpx;}
+.evaluation-bar .image-list{display: flex;margin-top: 30rpx;flex-wrap: wrap;}
+.evaluation-bar .image-list image{width: 220rpx;margin-right: 10rpx;max-height: 220rpx;margin-bottom: 10rpx;border-radius: 5rpx;}

+ 94 - 0
card/evaluateList/evaluateList.vue

@@ -0,0 +1,94 @@
+<template>
+	<!--  -->
+	<view class="evaluation-bar">
+		<view class="title">
+			<view>所有评价 ({{scoreData.total?scoreData.total:0}})</view>
+			<!-- <text>查看全部</text> -->
+		</view>
+		<view v-for="item in scoreData.list" v-if="scoreData.list" style="margin-bottom: 40rpx;">
+			<view class="people">
+				<view>
+					<image :src="item.avatar?item.avatar:'../../static/images/userimg.png'"></image>
+				</view>
+				<view>
+					<view>{{item.name}}</view>
+					<view class="time">{{item.createDate}}</view>
+				</view>
+			</view>
+			<view class="content">{{item.content?item.content:'暂无内容'}}</view>
+			<view class="image-list" v-if="item.evaluateImg">
+				<image v-for="pitem,pindex in item.evaluateImgUrls" :src="pitem" mode="aspectFit" @click="previewImage(pindex,item.evaluateImgUrls)"></image>
+			</view>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	const app = getApp();
+	const req = require('../../utils/request.js');
+	export default {
+		data() {
+			return {
+				scoreData: {}, //晒单数据
+				groupId: null,
+				page: 1,
+				limit: 10,
+				total: 0
+			}
+		},
+		onLoad(options) {
+			this.groupId = options.groupId
+			this.getScoreList()
+		},
+		onReachBottom() {
+			this.getScoreList(true)
+		},
+		methods: {
+			// 图片预览
+			previewImage(index,list) {
+				uni.previewImage({
+					current: index, 
+					urls: list 
+				})
+			},
+			// 获取晒单信息
+			getScoreList(isPage) {
+				if (!this.groupId) {
+					this.scoreData.list = []
+					this.scoreData.total = 0
+					return
+				}
+				if (!isPage) {
+					this.page = 1
+				}
+				let queryData = {
+					page: this.page,
+					limit: this.limit,
+					bindId: this.groupId,
+					type: 2
+				}
+				req.getRequest('/api/evaluate/page', queryData, res => {
+					if (res != null && res.list.length > 0) {
+						if (!isPage) {
+							this.scoreData.list = res.list
+							this.scoreData.total = res.total
+						} else {
+							this.scoreData.list = this.scoreData.list.concat(res.list)
+						}
+						this.page++
+					} else {
+						if (!isPage) {
+							this.scoreData.list = res.list
+							this.scoreData.total = res.total
+						} else {}
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style>
+	@import './evaluateList.css';
+</style>

+ 93 - 5
card/index/index.css

@@ -295,7 +295,7 @@ page {
 .box {
 	background: #fff;
 	border-radius: 12rpx;
-	margin: 20rpx 32rpx;
+	margin: 30rpx 32rpx;
 	padding: 0 30rpx;
 	overflow: hidden;
 }
@@ -460,12 +460,12 @@ page {
 .share-ta {
 	height: 80rpx;
 	font-size: 26rpx;
-	font-weight: 500;
+	font-weight: 500 !important;
 	color: #FFFFFF;
 	text-align: center;
-	line-height: 80rpx;
-	border-radius: 47rpx;
-	margin-right: 15rpx;
+	line-height: 80rpx !important;
+	border-radius: 47rpx !important;
+	margin-right: 15rpx !important;
 	justify-content: center;
 }
 .share-ta:last-child{
@@ -588,4 +588,92 @@ page {
 .ry-image image{
 	width: 100%;
 	height: 100%;
+}
+
+
+/* 评分 */
+.pf-box{
+	padding: 30rpx;
+	background-color: #fff;
+}
+.pf-nav{
+	line-height: 45rpx;
+	font-size: 32rpx;
+	font-family: PingFang SC-Bold, PingFang SC;
+	font-weight: bold;
+	color: #333333;
+}
+.pf-more{
+	line-height: 33rpx;
+	font-size: 24rpx;
+	font-family: PingFang SC Regular-, PingFang SC Regular;
+	font-weight: normal;
+	color: #9C9392;
+}
+.pf-number{
+	line-height: 79rpx;
+	font-size: 60rpx;
+	font-family: HarmonyOS Sans-Bold, HarmonyOS Sans;
+	font-weight: bold;
+	color: #FF4600;
+}
+.pf-note{
+	line-height: 33rpx;
+	font-size: 24rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #999999;
+	text-align: center;
+}
+.pf-data{
+	padding: 30rpx;
+	background: rgba(241, 241, 241, 0.5);
+	border-radius: 20rpx 20rpx 20rpx 20rpx;
+	margin-top: 25rpx;
+}
+.pf-user{
+	justify-content: space-between;
+}
+.pf-user-header{
+	width: 30rpx;
+	height: 30rpx;
+	border-radius: 100%;
+	margin-right: 4rpx;
+}
+.pf-user-name{
+	line-height: 40rpx;
+	font-size: 28rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #222222;
+	max-width: 175rpx;
+}
+.pf-user-time{
+	line-height: 30rpx;
+	font-size: 22rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #999999;
+}
+.pf-user-content{
+	margin-top: 20rpx;
+	line-height: 33rpx;
+	font-size: 24rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #333333;
+}
+.pf-btn{
+	height: 76rpx;
+	line-height: 76rpx;
+	background: #FFFFFF;
+	border-radius: 10rpx 10rpx 10rpx 10rpx;
+	opacity: 1;
+	border: 2rpx solid #DEDEDE;
+	font-size: 28rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #7A7B7F;
+	text-align: center;
+	margin-top: 30rpx;
 }

+ 127 - 167
card/index/index.vue

@@ -22,117 +22,90 @@
 				<view class="photo">
 					<block v-if="cardInfo.avatar">
 						<image :src="cardInfo.avatar" mode="aspectFill" class="poster"></image>
-						<view class="change ddflex" style="right: 140rpx;background-color:#27D699;"
+						<view v-if="cardId" class="change ddflex" style="right: 140rpx;background-color:#27D699;"
 							@click="userBehavior(3)">
 							<image v-if="!cardInfo.isThumbs" style="width: 35rpx;height: 32rpx;"
-								src="/card/static/images/dz.png"></image>
-							<image v-else style="width: 35rpx;height:32rpx;" src="../../static/images/like_h.png">
+								src="/card/static/images/dz1.png"></image>
+							<image v-else style="width: 35rpx;height:32rpx;" src="/card/static/images/dz1_h.png">
 							</image>
 							<!-- 点赞 -->
 						</view>
-						<view class="change ddflex" @click="uploadImg()">
+						<view v-if="cardId" class="change ddflex" @click="jumpUrl('/card/cardFound/cardFound')">
 							<image src="/card/static/images/change.png"></image>
-							<!-- 更换形象图 -->
+							<!-- 更换销售员-->
 						</view>
 					</block>
-					<!-- @click="uploadImg()" -->
-					<view class="upload ddflex" v-else
-						@click="jumpUrl('/card/create/create?isEdit=true&id=' + cardInfo.id)">
-						<image src="../../static/images/jia.png"></image>
-						上传专属形象
-					</view>
 				</view>
 				<view class="info dflex">
 					<view class="flex">
 						<view class="name">
 							{{ cardInfo.realName }}
-							<text class="job" v-if="cardInfo.job">{{ cardInfo.job }}</text>
-							<text class="job">入司10年</text>
+							<text class="job" v-if="cardInfo.job">{{ cardInfo.jobName }}</text>
+							<text class="job">入司{{cardInfo.inDate?getAge(cardInfo.inDate):1}}年</text>
 						</view>
 						<view class="company ddflex" style="margin-top: 20rpx;">
-							<image src="/static/pages/images/dzico.png"></image>
+							<image src="/card/static/images/gs.png"></image>
 							{{ cardInfo.companyName }}
 						</view>
 						<view class="company ddflex">
-							<image src="/static/pages/images/dzico.png"></image>
+							<image src="/card/static/images/area.png"></image>
 							服务区域 {{ cardInfo.industryName }}
 						</view>
 						<view class="company">
 							执业证书:02000043090080002013000260
 						</view>
-						<!-- <view class="industry">
-							{{ cardInfo.industryName }}
-						</view> -->
-					</view>
-					<!-- <view class="guanzhu" v-if="cardId" @click="userBehavior(1)">{{cardInfo.follow==1?'我已关注':'+关注'}}</view> -->
-					<!-- <view class="logo"><image :src="cardInfo.avatar" mode="aspectFit"></image></view> -->
-				</view>
-				<!-- <view class="contacts" v-if="cardId">
-					<scroll-view scroll-x="true" class="contact">
-						<view class="li" @click="goPhone()">
-							<view class="lit ddflex">
-								<image src="../static/images/phone.png"></image>
-								拨打电话
+						<view class="ddflex" style="margin-top: 30rpx;" v-if="cardInfo.wechat||cardInfo.wechat">
+							<view class="ddflex fflex" style="background: #F8F8F8;border-radius: 10rpx;padding: 20rpx;font-size: 26rpx;margin-right: 30rpx;" v-if="cardInfo.phone">
+								<image style="width: 32rpx;height: 32rpx;margin-right: 10rpx;" src="/card/static/images/phone.png"></image>
+								{{cardInfo.phone}}
 							</view>
-							<view class="num">{{ cardInfo.phone }}</view>
-						</view>
-						<view class="li" @click="copy(cardInfo.wechat, 1)">
-							<view class="lit ddflex">
-								<image src="../static/images/wechat.png"></image>
-								复制微信
+							<view class="ddflex fflex" style="background: #F8F8F8;border-radius: 10rpx;padding: 20rpx;font-size: 26rpx;" v-if="cardInfo.wechat">
+								<image style="width: 32rpx;height: 32rpx;margin-right: 10rpx;" src="/card/static/images/wx.png"></image>
+								{{cardInfo.wechat}}
 							</view>
-							<view class="num">{{ cardInfo.wechat }}</view>
 						</view>
-						<view class="li" @click="copy(cardInfo.email, 2)">
-							<view class="lit ddflex">
-								<image src="../static/images/message.png"></image>
-								复制邮箱
-							</view>
-							<view class="num">{{ cardInfo.email }}</view>
-						</view>
-					</scroll-view>
-				</view> -->
+					</view>
+				</view>
 			</view>
 			<view class="btns ddflex" v-if="cardId">
-				<view class="share-ta ddflex fflex" style="background: linear-gradient(80deg, #7EBFF1 0%, #458EEE 100%);;"
-					@click="saveToPhone()">
-					<image src="../../static/pages/images/wx.png"></image>存入通讯录</view>
+				<view class="share-ta ddflex fflex" style="background: linear-gradient(80deg, #7EBFF1 0%, #458EEE 100%);"
+					@click="copy(cardInfo.wechat, 1)">
+					<image src="../../static/pages/images/wx.png"></image>微信联系</view>
 				<view class="share-ta ddflex fflex" style="background: linear-gradient(84deg, #6FE5BC 0%, #27D699 100%);"
-					@click="saveToPhone()">
-					<image src="/static/pages/images/dh.png"></image>存入通讯录</view>
+					@click="goPhone()">
+					<image src="/card/static/images/phone1.png"></image>电话联系</view>
 				<view class="share-ta ddflex fflex" style="background: linear-gradient(80deg, #FF985A 0%, #FF5700 100%);"
-					@click="cardInfo.isSave?'':saveToFolder()">
-					<image src="/static/pages/images/share1.png"></image>{{cardInfo.isSave?'已存入名片夹':'存入名片夹'}}</view>
+					 @click="jumpUrl('/card/poster/poster?id'+cardInfo.id)">
+					<image src="/card/static/images/fx.png"></image>分享名片</view>
 			</view>
-			<view class="save-text ddflex">
-				<image src="../static/images/wxth.png"></image>保存到通讯录
+			<view class="save-text ddflex" v-if="cardId">
+				<image src="/card/static/images/save.png" @click="saveToPhone()"></image>保存到通讯录
 			</view>
-			<view class="btns ddflex" v-if="!cardId">
-				<view class="share" @click="jumpUrl('/card/poster/poster?id=' + cardInfo.id)">分享名片</view>
-				<view class="opt ddflex">
-					<view class="li" @click="jumpUrl('/card/create/create?isEdit=true&id=' + cardInfo.id)">
-						<image src="../static/images/edit.png"></image>
-						<view>编辑名片</view>
-					</view>
-				</view>
+			<view class="btns ddflex" v-if="!cardId" style="justify-content: center;">
+				<view class="share-ta ddflex" style="background: linear-gradient(84deg, #6FE5BC 0%, #27D699 100%);width: 260rpx;margin-right: 30rpx;"
+					@click="jumpUrl('/card/poster/poster?id'+cardInfo.id)">
+					<image src="/card/static/images/wdmp.png"></image>我的名片码</view>
+				<button open-type="share" class="share-ta ddflex" style="background: linear-gradient(80deg, #FF985A 0%, #FF5700 100%);width: 260rpx !important;"
+					>
+					<image src="/card/static/images/fx.png"></image>发送名片</button>
 			</view>
 			<view class="extend-info ddflex">
 				<view class="extend-info-item fflex">
-					<view class="extend-info-data">1678</view>
+					<view class="extend-info-data">{{cardInfo.cntCust?cardInfo.cntCust:0}}</view>
 					<view class="extend-info-label ddflex">
 						<image src="../../static/pages/images/fw_hui.png"></image>
 						<view>服务客户</view>
 					</view>
 				</view>
 				<view class="extend-info-item fflex">
-					<view class="extend-info-data">1678</view>
+					<view class="extend-info-data">{{cardInfo.cntCntr?cardInfo.cntCntr:0}}</view>
 					<view class="extend-info-label ddflex">
 						<image src="/static/pages/images/cy_hui.png"></image>
 						<view>保单件数</view>
 					</view>
 				</view>
 				<view class="extend-info-item fflex">
-					<view class="extend-info-data">1678</view>
+					<view class="extend-info-data">{{cardInfo.thumbs?cardInfo.thumbs:0}}</view>
 					<view class="extend-info-label ddflex">
 						<image src="/static/pages/images/dz_hui.png"></image>
 						<view>点赞量</view>
@@ -142,7 +115,7 @@
 			<view class="q-hud ddflex">
 				<view class="q-hud-c ddflex">
 					<view class="q-users ddflex">
-						<image :src="item.avatar" mode="aspectFill" v-for="(item, index) in cardInfo.pageUser.list"
+						<image :src="item.avatar?item.avatar:'../../static/images/userimg.png'" mode="aspectFill" v-for="(item, index) in cardInfo.pageUser.list"
 							v-if="index<3" :key="index"></image>
 					</view>
 					<view class="fflex">
@@ -151,69 +124,79 @@
 					<!-- <image src="../static/images/q_rico.png" class="q-rico"></image> -->
 				</view>
 				<view class="q-hud-r ddflex">
-					<view class="ddflex" @click="userBehavior(3)">
-						<image v-if="!cardInfo.isThumbs" style="width: 27rpx;height: 29rpx;margin-right: 10rpx;"
-							src="../static/images/dz.png"></image>
-						<image v-else style="width: 27rpx;height: 29rpx;margin-right: 10rpx;"
-							src="../../static/images/like_h.png"></image>
-						<text>{{cardInfo.thumbs}}</text>
-					</view>
-					<view class="ddflex" v-if="cardId" @click="jumpUrl('/card/poster/poster?id'+cardInfo.id)">
-						<image style="width: 29rpx;height: 29rpx;margin-left: 30rpx;margin-right: 10rpx;"
-							src="../static/images/share.png"></image>
-						<text>分享</text>
+					<view class="ddflex">
+						<image style="width: 23rpx;height: 31rpx;margin-right: 10rpx;"
+							src="/card/static/images/hot.png"></image>
+						<text>{{cardInfo.share}}</text>
 					</view>
 				</view>
 			</view>
 		</view>
-		<view class="box" v-if="!cardId">
-			<view class="tit ddflex">
-				<image src="../static/images/sj_ico.png"></image>
-				<view>
-					我的名片数据
+		
+		<!-- 评分 -->
+		<view class="pf-box">
+			<view class="ddflex" style="justify-content: space-between;">
+				<view class="pf-nav">客户评价</view>
+				<view class="ddflex pf-more" @click="jumpUrl('/card/evaluateList/evaluateList?groupId='+cardInfo.id)">
+					全部评价
+					<image style="width: 9rpx;height: 19rpx;margin-left: 10rpx;" src="/static/pages/images/more.png"></image>
 				</view>
 			</view>
-			<view class="card-datas ddflex">
-				<view class="li">
-					<text>{{ cardInfo.pageUser.total }}</text>
-					访问量(次)
+			<view class="ddflex" style="justify-content: center;margin-top: 40rpx;">
+				<view class="pf-number">
+				{{evaluateInfo.info.avage}}<text style="font-size: 24rpx;color: #333333;font-weight: 400;margin-left: 10rpx;">分</text>
 				</view>
-				<view class="li">
-					<text>{{ cardInfo.todayBrowse }}</text>
-					今日访问量(次)
+				<uni-rate style="justify-content: center;margin-left: 30rpx;" class="ddflex" color="#999999" active-color="#FF4600" :readonly="true" size="18" allow-half :value="evaluateInfo.info.avage/2" />
+			</view>
+			<view class="pf-note">综合评分 {{evaluateInfo.info.total}}人评分</view>
+			<view class="pf-data">
+				<view class="pf-user ddflex">
+					<view class="ddflex">
+						<image class="pf-user-header" :src="evaluateInfo.evaluateDTO.avatar?evaluateInfo.evaluateDTO.avatar:'../../static/images/userimg.png'"></image>
+						<view class="pf-user-name tover">{{evaluateInfo.evaluateDTO.name}}</view>
+						<uni-rate style="justify-content: center;margin-left: 30rpx;" class="ddflex" color="#999999" active-color="#FF4600" :readonly="true" size="14" allow-half :value="evaluateInfo.evaluateDTO.serveScore/2" />
+						<text style="font-size: 20rpx;color: #FF4600;">{{evaluateInfo.evaluateDTO.serveScore}}分</text>
+					</view>
+					<view class="pf-user-time">{{evaluateInfo.evaluateDTO.createDate}}</view>
+				</view>
+				<view class="pf-user-content">
+					{{evaluateInfo.evaluateDTO.content}}
 				</view>
-				<view class="li">
-					<text>{{ cardInfo.share }}</text>
-					分享名片(次)
+				<view class="" style="margin-top: 20rpx;">
+					<image :style="'width: 200rpx;height: 200rpx;margin-bottom: 10rpx;display: inline-block;'+((index+1)%3==0?'':'margin-right:10rpx')" 
+						v-for="item,index in evaluateInfo.evaluateDTO.evaluateImgUrls" :src="item" mode="aspectFit"
+						@click="previewImg(evaluateInfo.evaluateDTO.evaluateImgUrls,index)"></image>
 				</view>
 			</view>
+			<view class="pf-btn" v-if="cardId" @click="jumpUrl('/card/evaluate/evaluate?id='+cardInfo.id)">点击输入您的评价</view>
 		</view>
-		<view class="box brief">
+		
+		<view class="box brief" v-if="cardInfo.honorImg">
 			<view class="tit ddflex">
 				<view class="flex ddflex">
-					<image src="../static/images/jj_ico.png"></image>
+					<image src="/card/static/images/shry.png"></image>
 					<view>所获荣誉</view>
 				</view>
 			</view>
 			<view class="contacts" style="height: 300rpx;margin-top: 20rpx;">
 				<scroll-view scroll-x="true" class="contact" style="height: 300rpx;">
-					<view class=" ry-image" v-for="item in 9">
-						<image src="/static/images/lj_img.png"></image>
+					<view class=" ry-image" v-for="item,index in cardInfo.honorImg.split(',')" @click="previewImg(cardInfo.honorImg.split(','),index)">
+						<image :src="item" mode="aspectFill"></image>
 					</view>
 				</scroll-view>
 			</view>
 		</view>
-		<view class="box brief">
+		<view class="box brief" v-if="cardInfo.styleImg">
 			<view class="tit ddflex">
 				<view class="flex ddflex">
-					<image src="../static/images/jj_ico.png"></image>
+					<image src="/card/static/images/grfc.png"></image>
 					<view>个人风采</view>
 				</view>
 			</view>
 			<view class="contacts" style="height: 300rpx;margin-top: 20rpx;">
 				<scroll-view scroll-x="true" class="contact" style="height: 300rpx;">
-					<view class=" ry-image" v-for="item in 9">
-						<image src="/static/images/lj_img.png"></image>
+					<view class=" ry-image" v-for="item in cardInfo.styleImg.split(',')" @click="previewImg(cardInfo.styleImg.split(','),index)">
+						<image :src="item" mode="aspectFill"></image>
 					</view>
 				</scroll-view>
 			</view>
@@ -221,22 +204,22 @@
 		<view class="box brief">
 			<view class="tit ddflex">
 				<view class="flex ddflex">
-					<image src="../static/images/jj_ico.png"></image>
+					<image src="/card/static/images/grjj.png"></image>
 					<view>个人简介</view>
 				</view>
 				<!-- <image v-if="!cardId" src="../static/images/bj_ico.png" class="edit" @tap="jumpUrl('/card/editDesc/editDesc?id=' + cardInfo.id)"></image> -->
 			</view>
-			<view class="bri"><rich-text :nodes="cardInfo.brief ? cardInfo.brief : '一句话介绍自己'"></rich-text></view>
+			<view class="bri"><rich-text :nodes="cardInfo.brief ? cardInfo.brief : ''"></rich-text></view>
 		</view>
 		<view class="box brief">
 			<view class="tit ddflex">
 				<view class="flex ddflex">
-					<image src="../static/images/jj_ico.png"></image>
+					<image src="/card/static/images/gsjj.png"></image>
 					<view>公司简介</view>
 				</view>
 				<!-- <image v-if="!cardId" src="../static/images/bj_ico.png" class="edit" @tap="jumpUrl('/card/editDesc/editDesc?id=' + cardInfo.id)"></image> -->
 			</view>
-			<view class="bri"><rich-text :nodes="cardInfo.brief ? cardInfo.brief : '一句话介绍自己'"></rich-text></view>
+			<view class="bri"><rich-text :nodes="cardInfo.companyIntroduction ? cardInfo.companyIntroduction : ''"></rich-text></view>
 		</view>
 		<!-- <view class="box videos">
 			<view class="tit ddflex">
@@ -266,6 +249,7 @@
 	const api = require('../../utils/api.js');
 	import VODUpload from '@/utils/aliyun-upload-sdk-1.0.1.min.js'
 	import serviceContact from '@/components/service-contact/index.vue'
+import util from '../../utils/util.js';
 	export default {
 		data() {
 			return {
@@ -284,6 +268,8 @@
 				isStart: false,
 				videoInfo: '',
 				fileName: '', //视频名称
+				
+				evaluateInfo:null,//评分
 			};
 		},
 		components:{ serviceContact },
@@ -298,13 +284,32 @@
 			if (this.scene) {
 				await this.loadCodeParams();
 			}
-			console.log('req.isLogins(false)', req.isLogins(false))
 			await req.silenceLogin(this.options.userId ? this.options.userId : '', '')
 			this.getCardInfo();
 		},
 
-		onShareAppMessage() {},
-		onShareTimeline() {},
+		onShareAppMessage(res) {
+			if (res.from == 'button') {
+				let userInfo = req.getStorage('userInfo');
+				this.userBehavior(6)
+				return {
+					title: this.cardInfo.realName,
+					path: '/card/index/index?cardId=' + this.cardInfo.id + '&userId=' + userInfo.id,
+					imageUrl: this.cardInfo.avatar + '?x-oss-process=style/w375', // 分享图
+				};
+			}
+		},
+		onShareTimeline(res) {
+			if (res.from == 'button') {
+				let userInfo = req.getStorage('userInfo');
+				this.userBehavior(6)
+				return {
+					title: this.cardInfo.realName,
+					path: '/card/index/index?cardId=' + this.cardInfo.id + '&userId=' + userInfo.id,
+					imageUrl: this.cardInfo.avatar + '?x-oss-process=style/w375', // 分享图
+				};
+			}
+		},
 
 		methods: {
 			loadCodeParams() {
@@ -342,23 +347,22 @@
 
 			getCardInfo() {
 				var url = '';
-				var dataP = {};
+				var dataP = {
+					id:this.cardId
+				};
 				if (this.cardId) {
-					url = '/api/v3/visiting/card/info';
+					url = '/api/visiting/card/info';
 					dataP.id = this.cardId;
 				} else {
-					url = '/api/v3/visiting/card/userInfo';
+					url = '/api/visiting/card/userInfo';
 					dataP = {};
 				}
 				req.getRequest(url, dataP, data => {
 					this.cardInfo = data;
-					if (this.cardInfo.videoId) {
-						this.getPlayInfo(this.cardInfo.videoId);
-					}
 					console.log('isFirst')
 					if (this.cardId && this.cardInfo.userId == req.getStorage('userInfo').id) {
-						// this.cardId = null
-						// this.getCardInfo()
+						this.cardId = null
+						this.getCardInfo()
 					} else {
 						if (this.cardInfo.userId == req.getStorage('userInfo').id) {
 
@@ -370,6 +374,7 @@
 						}
 						this.isFirst = false
 					}
+					this.getEvaluate()
 				});
 			},
 
@@ -658,60 +663,15 @@
 					}
 				});
 			},
-
-			toWxShare() {
-				req.getWXOriginalId(data => {
-					if (data) {
-						this.wxShare(data);
-					} else {
-						this.$showModal({
-							title: '提示',
-							content: '未配置微信小程序',
-							cancelText: '取消',
-							confirmText: '设置开通'
-						}).then(res => {
-							// 点击确认的操作
-							// tha.copy(content);
-						});
-					}
-				});
+			getAge(date){
+				return util.getAge(date)
 			},
-
-			wxShare(originalId) {
-				//分享H5
-				// uni.share({
-				// 	provider: 'weixin',
-				// 	scene: 'WXSceneSession',
-				// 	type: 0,
-				// 	href: req.env[req.env.NODE_ENV].h5BaseUrl + '/share/card/index?cardId=' + this.cardInfo.id,
-				// 	title: this.cardInfo.nickName + ' - 电子名片',
-				// 	summary: this.cardInfo.title + ' ' + this.cardInfo.position.name + ' ' + this.cardInfo.message,
-				// 	imageUrl: this.cardInfo.avatar,
-				// 	success: function(res) {
-				// 		console.log('success:' + JSON.stringify(res));
-				// 	},
-				// 	fail: function(err) {
-				// 		console.log('fail:' + JSON.stringify(err));
-				// 	}
-				// });
-
-				uni.share({
-					provider: 'weixin',
-					scene: 'WXSceneSession',
-					type: 5,
-					imageUrl: this.cardInfo.avatar + '?x-oss-process=style/w375',
-					title: this.cardInfo.nickName + ' - 电子名片',
-					summary: this.cardInfo.title + ' ' + this.cardInfo.position.name + ' ' + this.cardInfo.message,
-					miniProgram: {
-						id: originalId,
-						path: '/share/card/index?cardId=' + this.cardInfo.id,
-						type: req.env[req.env.NODE_ENV].typeMiniProgram,
-						webUrl: req.public.homeWebUrl
-					},
-					success: ret => {
-						console.log(JSON.stringify(ret));
-					}
-				});
+			
+			// 获取评论
+			getEvaluate(){
+				req.getRequest('/api/evaluate/cardInfo',{bindId:this.cardInfo.id,type:2},res=>{
+					this.evaluateInfo = res
+				})
 			}
 		},
 		mounted() {

+ 12 - 0
card/poster/poster.css

@@ -32,12 +32,16 @@ page{
 	color: #FFFFFF;
 	text-align: center;
 	margin: 40rpx auto;
+	z-index: 1;
+	position: relative;
 }
 .logo {
 	width: 130rpx;
 	height: 130rpx;
 	border-radius: 50%;
 	margin: 0 auto;
+	z-index: 1;
+	position: relative;
 }
 
 .logo image {
@@ -82,6 +86,8 @@ page{
 	border-radius: 16rpx;
 	background: #fff;
 	margin: 0rpx auto 0;
+	z-index: 1;
+	position: relative;
 }
 
 .code image {
@@ -93,6 +99,8 @@ page{
 .infos {
 	padding: 30rpx 120rpx 100rpx;
 	box-sizing: border-box;
+	z-index: 1;
+	position: relative;
 }
 
 .name {
@@ -145,4 +153,8 @@ page{
 canvas {
 	position: fixed;
 	left: 9000px;
+	/* left: -100px;
+	top: -200px;
+	z-index: 100;
+	scale: 0.5; */
 }

+ 61 - 25
card/poster/poster.vue

@@ -5,19 +5,20 @@
 		</view>
 		<view>
 			<view class="info">
-				<view class="logo"><image :src="cardInfo.avatar ? cardInfo.avatar : '../../static/images/qy_logo.jpg'" mode="aspectFit"></image></view>
+				<image style="position: absolute;top: 0;right: 0;left: 0;bottom: 0;width: 100%;height: 100%;" src="../static/images/posterBg.png"></image>
+				<view class="logo"><image :src="about.CONFIG_PROJECT_LOGO ? about.CONFIG_PROJECT_LOGO : '../../static/images/qy_logo.jpg'" mode="aspectFill"></image></view>
 				<!-- <view class="brief" v-if="cardInfo.message">
 					<image src="../static/images/yin_l.png" class="yin-l"></image>
 					{{ cardInfo.message }}
 					<image src="../static/images/yin_r.png" class="yin-r"></image>
 				</view> -->
-				<view class="info-title">专业顾问为提供服务</view>
+				<view class="info-title">专业顾问为提供服务</view>
 				<!-- codUrl -->
 				<view class="code"><image :src="codUrl"></image></view>
 				<view class="infos">
-					<view class="name">{{ cardInfo.realName }}<text style="font-size: 24rpx;margin-left: 10rpx;font-weight: 400;">高级组经理</text></view>
+					<view class="name">{{ cardInfo.realName }}<text style="font-size: 24rpx;margin-left: 10rpx;font-weight: 400;">{{ cardInfo.jobName }}</text></view>
 					<view class="company">{{ cardInfo.companyName }}</view>
-					<view class="industry">{{ cardInfo.industryName }}</view>
+					<view class="industry">入司{{ cardInfo.inDate?getAge(cardInfo.inDate):1}}年</view>
 				</view>
 			</view>
 			<view class="opt dflex">
@@ -40,7 +41,7 @@
 					<view>保存图片</view>
 				</view>
 			</view>
-			<canvas class="canvas" style="width:590px;height:736px;" canvas-id="share"></canvas>
+			<canvas class="canvas" style="width:590px;height:920px;" canvas-id="share"></canvas>
 		</view>
 	</view>
 </template>
@@ -56,13 +57,15 @@ export default {
 			id: '',
 			cardInfo: '',
 			codUrl: 'https://img.zhiqiyun.com/zqy3t9kp2zc5i/2023/03/20/be0cfb643cd38b97d5a7b14eecaaa8a1.png',
-			isShowLoading: false
+			isShowLoading: false,
+			about:{}
 		};
 	},
 
 	onLoad(opt) {
 		this.id = opt.id;
 		this.getCardInfo();
+		this.getConfig()
 	},
 	onShareAppMessage(res) {
 		if (res.from == 'button') {
@@ -76,6 +79,20 @@ export default {
 		}
 	},
 	methods: {
+		getConfig() {
+			var _this = this;
+			return new Promise((res, rej) => {
+				req.g(
+					'/api/other/config',
+					data => {
+						req.setStorage('configRes', JSON.stringify(data));
+						this.about = data;
+						res(data);
+					},
+					true
+				);
+			});
+		},
 		appToShare() {
 			let userInfo = req.getStorage('userInfo');
 			uni.share({
@@ -100,15 +117,16 @@ export default {
 			let dataP = {}
 			let url = ''
 			if (this.id) {
-				url = '/api/v3/visiting/card/info';
+				url = '/api/visiting/card/info';
 				dataP.id = this.id;
 			} else {
-				url = '/api/v3/visiting/card/userInfo';
+				url = '/api/visiting/card/userInfo';
 				dataP = {};
 			}
 			req.getRequest(url, dataP, data => {
 				this.cardInfo = data;
 				this.getCodeUrl()
+				// this.generatePoster()
 			});
 		},
 		
@@ -129,7 +147,7 @@ export default {
 					scene: this.cardInfo.id
 				};
 				return new Promise((resolve, reject) => {
-					req.getRequest('/api/program/codev', params, url => {
+					req.getRequest('/api/other/program/code', params, url => {
 						// console.log(url);
 						this.code = url
 						resolve();
@@ -158,53 +176,68 @@ export default {
 
 		generate(success) {
 			let that = this;
+			let projectPromise = this.getImageInfo(this.about.CONFIG_PROJECT_LOGO);
 			let logoPromise = this.getImageInfo(this.cardInfo.avatar);
 			let codePromise = this.getImageInfo(this.codUrl);
-			Promise.all([logoPromise, codePromise]).then(([logo, code]) => {
+			Promise.all([projectPromise, logoPromise, codePromise]).then(([project,logo, code]) => {
 				const ctx = uni.createCanvasContext('share', this); // 绘制背景,填充满整个canvas画布
 				let width = 590;
-				let height = 736;
+				let height = 920;
 				ctx.setFillStyle('#FFF');
 				ctx.fillRect(0, 0, width, height);
 				this.roundRect(ctx,0,0,width, height,16)
+				ctx.drawImage('../static/images/posterBg.png', 0, 0, width, height);
+				ctx.save();
 				
-				// 渐变色
-				var grd=ctx.createLinearGradient(0,height-250,0,736);
-				grd.addColorStop(0,'#A4C8FF');
-				grd.addColorStop(1,'#498FF8');
-				ctx.setFillStyle(grd)
-				ctx.fillRect(0,height-250,590,250);
+				// ctx.fillRect(0, 0, 130, 130);
+				this.roundRect(ctx,(width - 130) / 2, 60,130, 130,65)
+				ctx.drawImage(project.path, (width - 130) / 2, 60, 130, 130);
+				ctx.restore()
 				ctx.save();
+				
 
+				let text = '专业顾问为您提供服务'
+				ctx.fillStyle = '#fff';
+				ctx.font = '38px PingFang SC';
+				ctx.fillText(text, width/2-ctx.measureText(text).width/2 , 285);
+				ctx.save();
+					
 				// 小程序码
-				ctx.drawImage(code.path, (width - 304) / 2, 110, 304, 304);
+				this.roundRect(ctx,(width - 340) / 2, 340,340, 340,16)
+				ctx.drawImage(code.path, (width - 340) / 2, 340, 340, 340);
+				ctx.restore()
 				ctx.save();
-
-
+				
 				// 姓名
 				ctx.fillStyle = '#fff';
 				ctx.font = '38px PingFang SC';
-				ctx.fillText(that.cardInfo.realName, 60 , height-250+100);
+				let rnl = ctx.measureText(that.cardInfo.realName).width
+				ctx.fillText(that.cardInfo.realName, 120 , 745);
+				ctx.save();
+				
+				ctx.fillStyle = '#fff';
+				ctx.font = '24px PingFang SC';
+				ctx.fillText(that.cardInfo.jobName, 120+rnl+10 , 745);
 				ctx.save();
 
 				ctx.fillStyle = '#fff';
 				ctx.font = '28px PingFang SC';
-				ctx.fillText(that.cardInfo.companyName, 60, height-250+100+50);
+				ctx.fillText(that.cardInfo.companyName, 120, 790);
 				ctx.save();
 				
 				// 边框文本
 				ctx.setFontSize(20);
 				ctx.setFillStyle('#ffffff');
 				ctx.setTextAlign('left');
-				var discountText = that.cardInfo.industryName
+				var discountText = '入司'+(that.cardInfo.inDate?that.getAge(that.cardInfo.inDate):1)+'年'
 				var bdColor = '#fff';
 				var bdBackground = 'transparent';
 				var bdRadius = 5;
 				var textPadding = 12;
 				var boxHeight = 38;
 				var boxWidth = ctx.measureText(discountText).width + textPadding * 2;
-				ctx.fillText(discountText, 60+textPadding, height-250+90+80+25);
-				that.borderRect(ctx, 60, height-250+90+80, boxWidth, boxHeight, bdRadius, bdBackground, bdColor)
+				ctx.fillText(discountText, 120+textPadding, 835);
+				that.borderRect(ctx, 120,835-26, boxWidth, boxHeight, bdRadius, bdBackground, bdColor)
 
 				// 完成作画
 				ctx.draw(false, function() {
@@ -239,6 +272,9 @@ export default {
 				return '';
 			}
 		},
+		getAge(date){
+			return util.getAge(date)
+		},
 		/**
 		 *
 		 * @param {CanvasContext} ctx canvas上下文

二進制
card/static/images/area.png


二進制
card/static/images/dz1.png


二進制
card/static/images/dz1_h.png


二進制
card/static/images/fx.png


二進制
card/static/images/grfc.png


二進制
card/static/images/grjj.png


二進制
card/static/images/gs.png


二進制
card/static/images/gsjj.png


二進制
card/static/images/hot.png


二進制
card/static/images/pf_star.png


二進制
card/static/images/pf_star_h.png


二進制
card/static/images/phone1.png


二進制
card/static/images/posterBg.png


二進制
card/static/images/save.png


二進制
card/static/images/shry.png


二進制
card/static/images/upload.png


二進制
card/static/images/wdmp.png


二進制
card/static/images/wx.png


+ 1 - 0
components/service-contact/index.css

@@ -37,6 +37,7 @@
 	font-family: PingFang SC-Regular, PingFang SC;
 	font-weight: 400;
 	color: #84600A;
+	text-align: center;
 }
 .sc-line{
 	width: 2rpx;

+ 22 - 6
components/service-contact/index.vue

@@ -1,18 +1,18 @@
 <template>
-	<view>
+	<view v-if="recommendCard">
 		<view style="height: 136rpx;"></view>
 		<view class="sc-box ddflex">
-			<image class="sc-header" src="../../static/images/userimg.png"></image>
+			<image class="sc-header" :src="recommendCard.avatar?recommendCard.avatar:'../../static/images/userimg.png'"></image>
 			<view class="sc-name">
-				<view>杜平</view>
-				<view class="sc-tag">高级组经理</view>
+				<view>{{recommendCard.realName}}</view>
+				<view class="sc-tag">{{recommendCard.jobName}}</view>
 			</view>
 			<view class="sc-line"></view>
-			<view class="sc-contact">
+			<view class="sc-contact" @click="jumpConversation">
 				<image src="/static/images/wxChat.png"></image>
 				<view>聊一聊</view>
 			</view>
-			<view class="sc-btn flex">进入我的微页</view>
+			<view class="sc-btn flex" @click="toIndex">进入我的微页</view>
 		</view>
 	</view>
 </template>
@@ -24,6 +24,7 @@
 	export default {
 		data() {
 			return {
+				recommendCard:{}
 			};
 		},
 
@@ -33,9 +34,24 @@
 		watch: {},
 
 		mounted() {
+			this.getRecommendCard()
 		},
 
 		methods: {
+			// 获取推荐销售
+			getRecommendCard(){
+				req.getRequest('/api/visiting/card/recommendCardInfo',{},res=>{
+					this.recommendCard = res
+				})
+			},
+			jumpConversation() {
+				req.jumpConversation();
+			},
+			toIndex(){
+				uni.switchTab({
+					url:'/pages/index/index'
+				})
+			}
 		}
 	};
 </script>

+ 8 - 3
match/activity/activity.vue

@@ -1,8 +1,8 @@
 <template>
 	<view v-if="isShow">
 		<view class="tab ddflex">
-			<view :class="'li' + (current == 2 ? ' active':'')" @click="tabClick(2)">待参</view>
-			<view :class="'li' + (current == 3 ? ' active':'')" @click="tabClick(3)">已参</view>
+			<view :class="'li' + (current == 2 ? ' active':'')" @click="tabClick(2)">待参</view>
+			<view :class="'li' + (current == 3 ? ' active':'')" @click="tabClick(3)">已参</view>
 		</view>
 		<view class="list" v-if="pageList && pageList.length >0">
 			<view class="li" v-for="(item,index) in pageList" :key="index" @click="jumpUrl('/match/activityDet/activityDet?id=' + item.id + '&orderId=' + item.orderId)">
@@ -53,7 +53,11 @@ export default {
 			},
 		};
 	},
-	onLoad() {},
+	onLoad(options) {
+		if(options.current){
+			this.current = options.current
+		}
+	},
 	onShow() {
 		this.getPageList(true);
 	},
@@ -66,6 +70,7 @@ export default {
 		tabClick(it){
 			if(it == this.current) return false;
 			this.current = it;
+			this.form.page = 1;
 			this.isLoad = true;
 			this.getPageList();
 		},

+ 2 - 2
match/activityDet/activityDet.vue

@@ -18,7 +18,7 @@
 				<view class="time ddflex"><!-- <image src="../static/mine/images/sjico.png"></image> -->报名时间:{{ detail.enlistStartTime }} - {{ detail.enlistEndTime }}</view>
 				<view class="time ddflex"><!-- <image src="../static/mine/images/sjico.png"></image> -->活动时间:{{ detail.startTime }} - {{ detail.endTime }}</view>
 			</view>
-			<view class="piao ddflex">
+			<!-- <view class="piao ddflex">
 				<view class="fflex">总计</view>
 				<view class="num">x{{detail.enlistExtendDTOS.length}}</view>
 				<view class="money"><text>¥</text>{{detail.actualMoney}}</view>
@@ -26,7 +26,7 @@
 			<view class="piao ddflex">
 				<view class="fflex">实付款</view>
 				<view class="money"><text>¥</text>{{detail.actualMoney}}</view>
-			</view>
+			</view> -->
 		</view>
 		<view class="infos bgfff">
 			<view class="tits">报名信息</view>

+ 7 - 6
match/signConfirm/signConfirm.vue

@@ -49,7 +49,7 @@
 		</view>
 		<view class="bot ddflex">
 			<!-- <view class="heji">合计:<text class="yuan">¥</text><text>{{money}}</text></view> -->
-			<view class="btn flex" @click="pay()">确认支付</view>
+			<view class="btn flex" @click="pay()">提交报名</view>
 		</view>
 	</view>
 </template>
@@ -154,16 +154,17 @@ export default {
 		},
 		async pay(){
 			let param = {
-				// matchId: this.detail.id,
+				matchId: this.detail.id,
 				money: this.money,
-				matchPriceId: this.options.priceId,
+				// matchPriceId: this.options.priceId,
 				scene: req.getStorage('scene'),
 				list: JSON.stringify(this.personList)
 			}
-			await requsetmessage.remindActivity().then(res => {});
-			req.postRequest('/api/myMatch/order',param,async res=>{
+			// await requsetmessage.remindActivity().then(res => {});
+			req.getRequest('/api/myMatch/order',param,async res=>{
 				req.removeStorage('personList');
-				await this.payOrder(res)
+				this.jumpUrl('/match/success/success?id=' + this.detail.id)
+				// await this.payOrder(res)
 			})
 		},
 		payOrder(id){

+ 10 - 0
pages.json

@@ -1279,6 +1279,16 @@
 					"style": {
 						"navigationBarTitleText": "寻找保险顾问"
 					}
+				},{
+					"path": "evaluate/evaluate",
+					"style": {
+						"navigationBarTitleText": "评价"
+					}
+				},{
+					"path": "evaluateList/evaluateList",
+					"style": {
+						"navigationBarTitleText": "所有评价"
+					}
 				}
 			]
 		},

+ 43 - 0
pages/index/index.css

@@ -34,6 +34,7 @@ page{background: #fff;}
 	width: 70rpx;
 	height: 70rpx;
 	margin: 0 30rpx;
+	border-radius: 100%;
 }
 .service-person-name{
 	font-size: 32rpx;
@@ -821,4 +822,46 @@ page{background: #fff;}
 	height: 42rpx;
 	margin: auto;
 	padding: 53rpx 0;
+}
+
+
+/* 邀请码弹窗 */
+.ceng2{position: fixed;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
+.code-pop{
+	position: fixed;
+	top:50%;
+	left:50%;
+	transform: translate(-50%,-50%);
+	width: 574rpx;
+	background: #FFFFFF;
+	border-radius: 20rpx 20rpx 20rpx 20rpx;
+	z-index: 100;
+}
+.code-text{
+	line-height: 41rpx;
+	color: #151515;
+	font-size: 28rpx;
+	margin: 51rpx 47rpx 50rpx;
+	text-align: center;
+}
+.code-content image{
+	width: 365rpx;
+	height: 365rpx;
+	margin: 50rpx auto 30rpx;
+}
+.code-btn{
+	padding: 25rpx;
+	text-align: center;
+	font-size: 28rpx;
+	color: #2A82FD;
+	border-top: 1px solid #E9E9E9;
+}
+
+.pop-scroll{
+	max-height: 750rpx;
+	overflow: scroll;
+	padding: 30rpx;
+}
+.pop-scroll::-webkit-scrollbar {
+	display: none;
 }

+ 60 - 16
pages/index/index.vue

@@ -16,45 +16,44 @@
 		<view class="bg">
 			<image :src="about.INDEX_PIC"></image>
 		</view>
-		<view class="service-person" :style="'top:' + systems.ktxStatusHeight + 'rpx;'">
-			<view class="ddflex" @click="jumpUrl('/card/index/index')">
-				<image class="service-person-header" src="../../static/pages/images/userimg.png"></image>
+		<view class="service-person" :style="'top:' + systems.ktxStatusHeight + 'rpx;'" v-if="recommendCard">
+			<view class="ddflex" @click="jumpUrl('/card/index/index?cardId='+recommendCard.id)">
+				<image class="service-person-header" :src="recommendCard.avatar?recommendCard.avatar:'../../static/pages/images/userimg.png'"></image>
 				<view>
 					<view class="service-person-name ddflex">
-						<view>杜平的微页</view>
+						<view>{{recommendCard.realName}}的微页</view>
 						<image src="/static/images/rico2.png" class="rico"></image>
 					</view>
-					<view class="service-person-number">(工号:106547) 欢迎您来到我的微页</view>
+					<view class="service-person-number">(工号:{{recommendCard.jobNumber}}) 欢迎您来到我的微页</view>
 				</view>
 			</view>
 			<view style="margin: 20rpx 30rpx 0;justify-content: space-between;" class="ddflex">
 				<view>
 					<view class="ddflex">
-						<view class="service-person-tag">中国人寿湖南</view>
-						<view class="service-person-tag">高级组经理</view>
-						<view class="service-person-tag">入司10年</view>
+						<view class="service-person-tag">{{recommendCard.companyName}}</view>
+						<view class="service-person-tag">{{recommendCard.jobName}}</view>
 					</view>
 					<view class="service-person-options ddflex">
 						<view class="service-person-option ddflex">
 							<image src="/static/pages/images/dz.png"></image>
-							<view>96%</view>
+							<view>{{recommendCard.favorableComment}}%</view>
 						</view>
 						<view class="service-person-option ddflex">
 							<image src="/static/pages/images/cy.png"></image>
-							<view>从业21.6年</view>
+							<view>入司{{recommendCard.inDate?getAge(recommendCard.inDate):1}}年</view>
 						</view>
 						<view class="service-person-option ddflex">
 							<image src="/static/pages/images/fw.png"></image>
-							<view>为1678人服务</view>
+							<view>为{{recommendCard.cntCust?recommendCard.cntCust:0}}人服务</view>
 						</view>
 					</view>
 				</view>
 				<view class="ddflex">
-					<view class="service-person-phone">
+					<view class="service-person-phone" v-if="recommendCard.phone" @click="callPhone(recommendCard.phone)">
 						<image src="../../static/pages/images/dh.png"></image>
 						<view>电话</view>
 					</view>
-					<view class="service-person-phone">
+					<view class="service-person-phone" v-if="recommendCard.wechat" @click="isShowCodePop=true">
 						<image src="../../static/pages/images/wx.png"></image>
 						<view>微信</view>
 					</view>
@@ -238,10 +237,26 @@
 			<image src="/static/images/zgrs_logo.png"></image>
 		</view>
 		<!-- <footer-copyright v-if="logo"></footer-copyright> -->
-		<contact-button img-url="/static/pages/images/kfico1_1.png" class-name="contact_index" button-text="客服"></contact-button>
+		<!-- <contact-button img-url="/static/pages/images/kfico1_1.png" class-name="contact_index" button-text="客服"></contact-button> -->
 		<view class="guide" @tap="hideGuide" v-if="first"><image src="/static/pages/images/guide.png" mode="widthFix"></image></view>
 		<!-- <view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 115) + 'rpx'"></view> -->
 		<foot channel="home" :isUpdate="isUpdate"></foot>
+		
+		
+		<view class="ceng2" v-if="isShowCodePop" @click="isShowCodePop = false"  @touchmove.stop.prevent="moveHandle"></view>
+		<view class="code-pop" v-if="isShowCodePop">
+			<view class="code-content" v-if="recommendCard.wechatCode">
+				<image :src="recommendCard.wechatCode?recommendCard.wechatCode:'/static/images/wxCode.jpg'" show-menu-by-longpress="true"></image>
+				<view style="text-align: center;font-size: 24rpx;color: #999;margin-bottom: 50rpx;">长按识别微信二维码</view>
+			</view>
+			<view class="code-text" v-else>
+				<view>微信号</view>
+				<view>{{recommendCard.wechat}}</view>
+			</view>
+			<view class="code-btn" @click="copy(recommendCard.wechat)">
+				复制微信号
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -358,7 +373,11 @@ export default {
 			
 			fxList:[],//发现
 			fxIndex:0,
-			fxContentList:[]
+			fxContentList:[],
+			
+			recommendCard:{},//销售
+			
+			isShowCodePop:false
 		};
 	},
 
@@ -448,7 +467,7 @@ export default {
 		this.getTbal()
 		this.getLpal()
 		this.getFx()
-
+		this.getRecommendCard()
 		// console.log('this.freshen=='+this.freshen)
 		let first = req.getStorage('first');
 		if (first !== false)
@@ -493,6 +512,12 @@ export default {
 				})
 			}
 		},
+		// 获取推荐销售
+		getRecommendCard(){
+			req.getRequest('/api/visiting/card/recommendCardInfo',{},res=>{
+				this.recommendCard = res
+			})
+		},
 		// 获取热门活动
 		getHotActivity(){
 			req.getRequest('/api/banner',{code:'index_hot_activity'},res=>{
@@ -886,12 +911,31 @@ export default {
 			let url = event.currentTarget.dataset.url;
 			app.globalData.openPage(url);
 		},
+		// 拨打电话
+		callPhone(val) {
+			if(!val) return false
+		    uni.makePhoneCall({
+		        phoneNumber: val
+		    });
+		},
+		copy(val){
+			this.isShowCodePop = false
+			uni.setClipboardData({
+				data: val,
+				complete() {
+					req.msg('复制成功')
+				}
+			})
+		},
 		unitFormat(data){
 			return req.unitConverter(data).text
 		},
 		formatTime(date){
 			date = new Date(date.replace(/-/g, '/'))
 			return utils.formatTime(date).t3
+		},
+		getAge(date){
+			return utils.getAge(date)
 		}
 	},
 	mounted() {

+ 14 - 0
pages/matchList/index.vue

@@ -1,5 +1,19 @@
 <template>
 	<view v-if="isShow">
+		<view class="ddflex" style="margin: 0 60rpx;">
+			<view class="fflex">
+				<image style="width: 86rpx;height: 86rpx;margin: 0 auto 20rpx;" src="/static/images/rmhd.png"></image>
+				<view style="font-size: 24rpx;color: #302222;text-align: center;">热门活动</view>
+			</view>
+			<view class="fflex">
+				<image style="width: 86rpx;height: 86rpx;margin: 0 auto 20rpx;" src="/static/images/ttcj.png"></image>
+				<view style="font-size: 24rpx;color: #302222;text-align: center;">天天抽奖</view>
+			</view>
+			<view class="fflex">
+				<image style="width: 86rpx;height: 86rpx;margin: 0 auto 20rpx;" src="/static/images/zxzq.png"></image>
+				<view style="font-size: 24rpx;color: #302222;text-align: center;">赠险专区</view>
+			</view>
+		</view>
 		<view class="act-list" v-if="pageList && pageList.length > 0">
 			<view class="li" v-for="(item, index) in pageList" :key="index" @click="toActivity(item)">
 				<view class="imgbox"><image :src="item.pic" mode="aspectFill"></image></view>

+ 48 - 1
pages/user/user.css

@@ -25,6 +25,10 @@ page {background: #F0F0F0;}
 	font-family: PingFang SC-Medium, PingFang SC;
 	font-weight: 500;
 	color: #333333;
+	    display: flex;
+	    flex-direction: column;
+	    justify-content: center;
+	    align-items: center;
 }
 .order-item image{
 	width: 64rpx;
@@ -32,7 +36,7 @@ page {background: #F0F0F0;}
 	background: linear-gradient(360deg, #FF985A 0%, #FF5700 100%);
 	opacity: 1;
 	border-radius: 100%;
-	margin-right: 20rpx;
+	margin-bottom: 18rpx;
 }
 .order-line{
 	width: 1rpx;
@@ -133,6 +137,7 @@ page {background: #F0F0F0;}
 	width: 116rpx;
 	height: 116rpx;
 	margin: 0 30rpx;
+	border-radius: 100%;
 }
 .service-person-name{
 	font-size: 32rpx;
@@ -209,4 +214,46 @@ page {background: #F0F0F0;}
 	font-size: 20rpx;
 	font-weight: 500;
 	color: #FFFFFF;
+}
+
+
+/* 邀请码弹窗 */
+.ceng2{position: fixed;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
+.code-pop{
+	position: fixed;
+	top:50%;
+	left:50%;
+	transform: translate(-50%,-50%);
+	width: 574rpx;
+	background: #FFFFFF;
+	border-radius: 20rpx 20rpx 20rpx 20rpx;
+	z-index: 100;
+}
+.code-text{
+	line-height: 41rpx;
+	color: #151515;
+	font-size: 28rpx;
+	margin: 51rpx 47rpx 50rpx;
+	text-align: center;
+}
+.code-content image{
+	width: 365rpx;
+	height: 365rpx;
+	margin: 50rpx auto 30rpx;
+}
+.code-btn{
+	padding: 25rpx;
+	text-align: center;
+	font-size: 28rpx;
+	color: #2A82FD;
+	border-top: 1px solid #E9E9E9;
+}
+
+.pop-scroll{
+	max-height: 750rpx;
+	overflow: scroll;
+	padding: 30rpx;
+}
+.pop-scroll::-webkit-scrollbar {
+	display: none;
 }

+ 95 - 184
pages/user/user.vue

@@ -59,64 +59,84 @@
 			<view style="height: 80rpx;"></view>
 		</view>
 
-		<view class="con" style="margin-top: -80rpx;">
+		<view class="con" style="margin-top: -80rpx;" v-if="userInfos.userType!=1">
 			<view class="order">
-				<navigator url="" hover-class="none" class="tits dflex" @click="jumpUrl('mine/order/order')">
+				<navigator url="" hover-class="none" class="tits dflex" @click="jumpUrl('match/activity/activity')">
 					<view class="flex">我的活动</view>
 					全部活动
 					<image src="../../static/pages/images/more.png" class="rico"></image>
 				</navigator>
-				<view class="ddflex" style="justify-content: space-between;padding: 40rpx 80rpx;">
-					<view class="order-item ddflex">
-						<image src="../../static/images/sd_tw.png"></image>
+				<view class="ddflex" style="justify-content: space-between;padding: 40rpx 0rpx;">
+					<view class="order-item ddflex fflex" @click="jumpUrl('match/activity/activity?current=2')">
+						<image src="/static/images/hd_dcy.png"></image>
 						<view>待参与</view>
 					</view>
 					<vieW class="order-line"></vieW>
-					<view class="order-item ddflex">
-						<image src="../../static/images/sd_tw.png"></image>
+					<view class="order-item ddflex fflex" @click="jumpUrl('match/activity/activity?current=3')">
+						<image src="/static/images/hd_ywc.png"></image>
 						<view>已完成</view>
 					</view>
 				</view>
 			</view>
 		</view>
+		<view class="con" style="margin-top: -80rpx;" v-else>
+			<view class="order">
+				<view class="ddflex" style="justify-content: space-between;padding: 40rpx 0rpx;">
+					<view class="order-item ddflex fflex" @click="jumpUrl('match/activityManage/activityManage')">
+						<image src="/static/images/hdgl.png"></image>
+						<view>活动管理</view>
+					</view>
+					<vieW class="order-line"></vieW>
+					<view class="order-item ddflex fflex" @click="jumpUrl('library/poster/index')">
+						<image src="/static/images/hbtg.png"></image>
+						<view>海报推广</view>
+					</view>
+					<vieW class="order-line"></vieW>
+					<view class="order-item ddflex fflex" @click="jumpUrl('match/activity/activity?current=3')">
+						<image src="/static/images/yxdy.png"></image>
+						<view>营销单页</view>
+					</view>
+				</view>
+			</view>
+		</view>
 
-		<view class="con">
+		<view class="con" v-if="!userInfos.userType">
 			<view class="order">
 				<navigator url="" hover-class="none" class="tits dflex" @click="jumpUrl('mine/order/order')">
 					<view class="flex">我的顾问</view>
 				</navigator>
 				<view class="service-person">
 					<view class="ddflex" @click="jumpUrl('/card/index/index')">
-						<image class="service-person-header" src="../../static/pages/images/userimg.png"></image>
+						<image class="service-person-header" :src="recommendCard.avatar?recommendCard.avatar:'../../static/pages/images/userimg.png'"></image>
 						<view>
 							<view class="service-person-name ddflex">
-								<view>Hi~我是杜平</view>
+								<view>Hi~我是{{recommendCard.realName}}</view>
 								<image src="/static/images/rico2.png" class="rico"></image>
 							</view>
-							<view class="service-person-number">(工号:106547) 欢迎您来到我的微页</view>
+							<view class="service-person-number">(工号:{{recommendCard.jobNumber}}) 欢迎您来到我的微页</view>
 							<view class="service-person-options ddflex">
 								<view class="service-person-option ddflex">
 									<image src="/static/pages/images/dz_hui.png"></image>
-									<view>96%</view>
+									<view>{{recommendCard.favorableComment}}%</view>
 								</view>
 								<view class="service-person-option ddflex">
 									<image src="/static/pages/images/cy_hui.png"></image>
-									<view>从业21.6年</view>
+									<view>入司{{recommendCard.inDate?getAge(recommendCard.inDate):1}}年</view>
 								</view>
 								<view class="service-person-option ddflex">
 									<image src="/static/pages/images/fw_hui.png"></image>
-									<view>为1678人服务</view>
+									<view>为{{recommendCard.cntCust?recommendCard.cntCust:0}}人服务</view>
 								</view>
 							</view>
 						</view>
 					</view>
 					<view class="service-person-phone ddflex">
-						<view class="ddflex flex" style="justify-content: center;">
+						<view class="ddflex flex" style="justify-content: center;" @click.stop="callPhone(recommendCard.phone)">
 							<image src="/static/pages/images/phone1.png"></image>
 							<view>联系电话</view>
 						</view>
-						<view class="order-line"></view>
-						<view class="ddflex flex" style="justify-content: center;">
+						<view class="order-line" v-if="recommendCard.phone&&recommendCard.wechat"></view>
+						<view class="ddflex flex" style="justify-content: center;" @click.stop="isShowCodePop=true">
 							<image style="width: 35rpx;height: 28rpx;" src="/static/pages/images/qw.png"></image>
 							<view>加企微信</view>
 						</view>
@@ -125,35 +145,42 @@
 			</view>
 		</view>
 
-		<view class="box mlist">
+		<view class="box mlist" v-if="userInfos.userType!=1">
 			<navigator class="li ddflex" url="/promote/invite/invite" hover-class="none">
-				<image :src="picUrlss + 'scrm/mico_fx.png'" class="mico"></image>
+				<image src="/static/images/yqhy.png" class="mico"></image>
 				<view class="fflex">推荐好友</view>
 				<image src="../../static/pages/images/more.png" class="rico"></image>
 			</navigator>
 		</view>
+		<view class="box mlist" v-else>
+			<navigator class="li ddflex" url="/card/index/index" hover-class="none">
+				<image src="/static/images/wdmp.png" class="mico"></image>
+				<view class="fflex">我的名片</view>
+				<image src="../../static/pages/images/more.png" class="rico"></image>
+			</navigator>
+		</view>
 
 		<view class="box mlist">
 			<view class="li ddflex">
 				<view class="fflex">
-					<contact-button class-name="ddflex" :img-url="picUrlss+'scrm/mico_kf.png'"
+					<contact-button class-name="ddflex" img-url="/static/images/lxkf.png"
 						img-style='width: 49rpx;height: 49rpx;margin: 0 25rpx 0 0;' button-text="联系客服"
 						styles="line-height:initial;"></contact-button>
 				</view>
 				<image src="../../static/pages/images/more.png" class="rico"></image>
 			</view>
 			<navigator class="li ddflex" url="/mine/help/help" hover-class="none">
-				<image :src="picUrlss+'ruiteng/my_service5.png'" class="mico" mode="aspectFit"></image>
+				<image src="/static/images/bzzx.png" class="mico" mode="aspectFit"></image>
 				<view class="fflex">帮助中心</view>
 				<image src="../../static/pages/images/more.png" class="rico"></image>
 			</navigator>
 			<navigator class="li ddflex" url="/mine/feedback/feedback" hover-class="none">
-				<image :src="picUrlss + 'scrm/mico_fk.png'" class="mico"></image>
+				<image src="/static/images/jyfk.png" class="mico"></image>
 				<view class="fflex">建议与反馈</view>
 				<image src="../../static/pages/images/more.png" class="rico"></image>
 			</navigator>
 			<navigator class="li ddflex" url="/pages/about/about" hover-class="none">
-				<image :src="picUrlss + 'scrm/mico_about.png'" class="mico"></image>
+				<image src="/static/images/gywm.png" class="mico"></image>
 				<view class="fflex">关于中国人寿</view>
 				<image src="../../static/pages/images/more.png" class="rico"></image>
 			</navigator>
@@ -170,6 +197,22 @@
 				<view class="lt-num">1</view>
 			</view>
 		</view>
+		
+		<view class="ceng2" v-if="isShowCodePop" @click="isShowCodePop = false"  @touchmove.stop.prevent="moveHandle"></view>
+		<view class="code-pop" v-if="isShowCodePop">
+			<view class="code-content" v-if="recommendCard.wechatCode">
+				<image :src="recommendCard.wechatCode?recommendCard.wechatCode:'/static/images/wxCode.jpg'" show-menu-by-longpress="true"></image>
+				<view style="text-align: center;font-size: 24rpx;color: #999;margin-bottom: 50rpx;">长按识别微信二维码</view>
+			</view>
+			<view class="code-text" v-else>
+				<view>微信号</view>
+				<view>{{recommendCard.wechat}}</view>
+			</view>
+			<view class="code-btn" @click="copy(recommendCard.wechat)">
+				复制微信号
+			</view>
+		</view>
+		
 	</view>
 </template>
 
@@ -220,6 +263,8 @@
 				isShowUpdate: false, //是否显示更新信息弹窗
 				isUpdateInfo: false, //更新用户信息
 				isUpdateMobile: false, //绑定手机号
+				recommendCard:{},
+				isShowCodePop:false
 			};
 		},
 
@@ -268,7 +313,7 @@
 			if (this.isLogin) {
 				this.getMy();
 				this.getAbout();
-				this.getRule();
+				this.getRecommendCard()
 				this.noLogin = true;
 			} else {
 				this.noLogin = false;
@@ -290,78 +335,10 @@
 				let token = req.getStorage('AUTH_TOKEN');
 				this.jumpUrl('merchant/index?appId=' + req.header.appId + '&token=' + token);
 			},
-			// 是否签到{}
-			isSignFun() {
-				req.getRequest('/api/integral/isSign', {}, res => {
-					this.setData({
-						isSign: res
-					});
-				});
-			},
 
 			gouserInfo() {
 				app.globalData.navigateTo('mine/userinfo/userinfo');
 			},
-			getDistributionConfig() {
-				req.postRequest('/api/distribution/config', {}, res => {
-					this.setData({
-						distr: res
-					});
-				});
-			},
-			// 签到
-			signFun() {
-				req.postRequest('/api/integral/sign', {}, data => {
-					if (data) {
-						req.msg('连续签到' + data.continuityDay + '天' + ',获得' + data.IntegralChange + '积分');
-						this.setData({
-							sign: 1
-						});
-						this.getOpenPonints();
-					}
-				});
-			},
-			getuserVip() {
-				req.getRequest('/api/user/levelDetails', {}, data => {
-					let expireTime = Array;
-
-					if (data.expireTime) {
-						expireTime = data.expireTime.split(' ');
-						data.expireTime = data.expireTime.replace(/-/g, '/');
-					} // 解决苹果不兼容---日期
-					// data.expireTime=data.expireTime.replace(/-/g, '/')
-
-					let nowTime = new Date().getTime();
-					let endTime = new Date(data.expireTime).getTime();
-					let times = parseInt((endTime - nowTime) / 1000); // var expireTime= new Date(data.expireTime)
-					// var time1=expireTime.getTime();
-
-					// console.log(times, nowTime, endTime, data.expireTime);
-					this.setData({
-						userinfovip: data,
-						['userinfovip.expireTime']: expireTime[0]
-					});
-
-					if (times <= 0) {
-						this.setData({
-							['userinfovip.end']: true
-						});
-					} else {
-						this.setData({
-							['userinfovip.end']: false
-						});
-					}
-
-					// console.log(data);
-				});
-			},
-			getOpenPonints() {
-				req.getRequest('/api/integral/returnIntegral', {}, res => {
-					this.setData({
-						integral: res
-					});
-				});
-			},
 			getMy() {
 				let that = this;
 				req.getRequest('/api/user/info', {}, data => {
@@ -370,13 +347,7 @@
 					this.userInfos = data;
 					// that.setData(data); // this.isbindmobile();
 					console.log('userinfo==' + JSON.stringify(data));
-					this.isSignFun();
-					this.getstatistics(data);
-					this.getDistributionConfig();
-					this.getuserVip();
 					this.getuserMoney();
-					this.getVip();
-					this.getOpenPonints();
 					// console.log(this);
 				});
 			},
@@ -400,7 +371,7 @@
 			getAbout() {
 				var _this = this;
 
-				req.getRequest('/api/config', {}, function(res) {
+				req.getRequest('/api/other/config', {}, function(res) {
 					_this.phone = res.CONFIG_SERVICE_HOT_MOBILE;
 					_this.config = res;
 					_this.setData({
@@ -419,26 +390,7 @@
 					if (res.is_open_shop) {
 						_this.is_open_shop = res.is_open_shop;
 					}
-
-					// if (res.user_bind_mobile == '1') {
-					// 	let userInfo = req.getStorage('userInfo');
-
-					// 	if (userInfo && (userInfo.mobile == null || userInfo.mobile == '')) {
-					// 		app.globalData.openPage('pages/authorize/authorize?bindmobile=1');
-					// 	}
-					// }
 				});
-				// 是否开启积分商城
-				req.getRequest(
-					'/api/params/value', {
-						type: 'Open_Points_Mall'
-					},
-					res => {
-						this.setData({
-							Open_Points_Mall: res
-						});
-					}
-				);
 			},
 
 			callPhone() {
@@ -452,72 +404,6 @@
 			goUrl() {
 				app.globalData.openPage('mine/vip/vip');
 			},
-
-			// 门店统计
-			getstatistics(data) {
-				let from = {};
-
-				if (data.listShopBase && data.listShopBase != null && data.listShopBase.length > 0) {
-					from.shopId = data.listShopBase[0].id;
-				}
-
-				if (data.listMerchant && data.listMerchant != null && data.listMerchant.length > 0 && data.listShopBase
-					.length < 1) {
-					from.merchantId = data.listMerchant[0].id;
-				}
-
-				req.getRequest('/api/order/statistics', from, data => {
-					this.setData({
-						statistics: data
-					});
-					console.log(data);
-				});
-			},
-			getRule() {
-				let that = this;
-				req.getRequest('/api/integral/config', {}, res => {
-					if (res && res.length > 0) {
-						res.map(it => {
-							if (it.illustrate && it.illustrate.indexOf('签到') > -1) {
-								if (it.state == 2) {
-									that.isShowSign = true;
-								}
-							}
-						});
-					}
-				});
-			},
-			getVipListOrg() {
-				if (this.vipList && this.userinfovip) {
-					if (!this.userinfovip.levelGrade) {
-						this.vipList.map((it, index) => {
-							this.vipList[0].isShowInfo = true;
-						});
-					} else {
-						this.vipList.map((it, index) => {
-							if (this.userinfovip.level == it.id) {
-								if (index < this.vipList.length - 1) {
-									this.vipList[index + 1].isShowInfo = true;
-								}
-							}
-						});
-					}
-				}
-			},
-			getVip() {
-				req.getRequest('/api/levelStrategy/userLevelList', {}, data => {
-					if (data && data.length > 0) {
-						data.map((it, index) => {
-							it.upgradeTerm = JSON.parse(it.upgradeTerm);
-							it.isShowInfo = false;
-							// if(index == 0) it.isShowInfo = true;
-							return it;
-						});
-						this.vipList = data;
-						this.getVipListOrg();
-					}
-				});
-			},
 			showInfo(index) {
 				if (!this.vipList[index].isShowInfo) {
 					this.vipList.map(it => {
@@ -564,6 +450,31 @@
 			//     }
 			//   }
 			// },
+			// 获取推荐销售
+			getRecommendCard(){
+				req.getRequest('/api/visiting/card/recommendCardInfo',{},res=>{
+					this.recommendCard = res
+				})
+			},
+			getAge(date){
+				return util.getAge(date)
+			},
+			// 拨打电话
+			callPhone(val) {
+				if(!val) return false
+			    uni.makePhoneCall({
+			        phoneNumber: val
+			    });
+			},
+			copy(val){
+				this.isShowCodePop = false
+				uni.setClipboardData({
+					data: val,
+					complete() {
+						req.msg('复制成功')
+					}
+				})
+			},
 		},
 		created() {
 			const systemInfo = uni.getSystemInfoSync();

二進制
static/images/bzzx.png


二進制
static/images/gywm.png


二進制
static/images/hbtg.png


二進制
static/images/hd_dcy.png


二進制
static/images/hd_ywc.png


二進制
static/images/hdgl.png


二進制
static/images/jyfk.png


二進制
static/images/lxkf.png


二進制
static/images/rmhd.png


二進制
static/images/ttcj.png


二進制
static/images/wdmp.png


二進制
static/images/yqhy.png


二進制
static/images/yxdy.png


二進制
static/images/zxzq.png


+ 29 - 8
topic/content/content.vue

@@ -1,8 +1,8 @@
 <template>
 	<view v-if="detaile">
 		<view class="title">{{ detaile.title }}</view>
-		<view class="det-sta dflex">
-			<image style="width: 48rpx;height: 48rpx;margin-right: 10rpx;" src="config.CONFIG_PROJECT_LOGO"></image>
+		<view class="det-sta ddflex">
+			<image style="width: 48rpx;height: 48rpx;margin-right: 10rpx;" :src="config.CONFIG_PROJECT_LOGO"></image>
 			<view class="sitename" @click="toIndex('')">{{config.CONFIG_PROJECT_TITLE}}</view>
 			<view class="time">{{getDateTimeStamp(detaile.time)}}</view>
 		</view>
@@ -17,7 +17,10 @@
 		<view class="operate dflex">
 			<view class="zan dflex">
 				共{{detaile.browse}}次浏览</view>
-			<button class="share ddflex" hover-class="none" open-type="share"><image src="/static/images/share.png"></image>分享</button>
+			<view class="ddflex">
+				<button style="margin-right: 20rpx !important;" class="share ddflex" hover-class="none" @click="userBehavior()"><image :src="detaile.isThumbs?'/static/images/like_h.png':'/static/images/like.png'"></image>{{detaile.thumbsNumber}}</button>
+				<button class="share ddflex" hover-class="none" open-type="share"><image src="/static/images/share.png"></image>分享</button>
+			</view>
 		</view>
 		<view class="box" v-if="contentList && contentList.length > 0">
 			<view class="tit dflex">为您推荐</view>
@@ -146,11 +149,29 @@ export default {
 			})
 		},
 		getBrowse(){
-			let params={
-				bindId: this.id,
-				type: 2
-			}
-			req.postRequest('/api/browse', params, data => {});
+			var dataP = {};
+			dataP.type =
+				4 //、产品 2、活动 3、未知 4、内容 5、课程 6、老师 7、素材 8、题目 9、资料领取 10、招聘职位 12、用户须知 13、素材 15、医院科室 16、海报 20、医生 21 新闻 23名片
+			dataP.behavior = 4; //1、关注 2、收藏 3、点赞 4、浏览 5、确认 6、分享
+			dataP.bindId = this.id;
+			req.postRequestLoding('/api/v3/behavior/save', dataP, data => {
+			});
+		},
+		// 用户行为
+		userBehavior() {
+			var dataP = {};
+			dataP.type =
+				4 //、产品 2、活动 3、未知 4、内容 5、课程 6、老师 7、素材 8、题目 9、资料领取 10、招聘职位 12、用户须知 13、素材 15、医院科室 16、海报 20、医生 21 新闻 23名片
+			dataP.behavior = 3; //1、关注 2、收藏 3、点赞 4、浏览 5、确认 6、分享
+			dataP.bindId = this.id;
+			req.postRequestLoding('/api/v3/behavior/save', dataP, data => {
+				if(this.detaile.isThumbs){
+					this.detaile.thumbsNumber = this.detaile.thumbsNumber-1
+				}else{
+					this.detaile.thumbsNumber = this.detaile.thumbsNumber+1
+				}
+				this.detaile.isThumbs = !this.detaile.isThumbs
+			});
 		},
 		getContentList() {
 			let form = this.form;

+ 17 - 14
utils/request.js

@@ -89,16 +89,16 @@ const loadToken = (success) => {
  */
 const silenceLogin = (parentId, merchantId) => {
 	// #ifdef MP-WEIXIN
-	if (!isLogins(false)) { //未登录
-		uni.login({
-			success(res) {
-				console.log('静默授权登录>>>', res);
-				let params = {
-					code: res.code,
-					parentId: parentId ? parentId : '',
-					merchantId: merchantId ? merchantId : ''
-				}
-				return new Promise((resolve, reject) => {
+	return new Promise((resolve, reject) => {
+		if (!isLogins(false)) { //未登录
+			uni.login({
+				success(res) {
+					console.log('静默授权登录>>>', res);
+					let params = {
+						code: res.code,
+						parentId: parentId ? parentId : '',
+						merchantId: merchantId ? merchantId : ''
+					}
 					postRequest('/api/v3/silence/login', params, data => {
 						if (data.token) setStorage('AUTH_TOKEN', data.token);
 						getRequest('/api/user/info', {}, suc => {
@@ -108,10 +108,12 @@ const silenceLogin = (parentId, merchantId) => {
 						});
 						resolve();
 					});
-				})
-			}
-		});
-	}
+				}
+			});
+		}else{
+			resolve();
+		}
+	});
 	// #endif
 }
 
@@ -261,6 +263,7 @@ const baseRequest = (url, data, method, success, isLoad) => {
 					// console.log("第二次执行")
 
 					removeStorage('AUTH_TOKEN');
+					removeStorage('userInfo');
 					return redirectIndex();
 				}
 				if (json.data.code !== 0) {

+ 24 - 0
utils/util.js

@@ -452,6 +452,29 @@ function saveImage(tempFilePath, suc) {
 	// #endif
 }
 
+function getAge(birthYearMonthDay) {
+	birthYearMonthDay = birthYearMonthDay.replace(/-/g, '/')
+	const birthDate = new Date(birthYearMonthDay);
+	const momentDate = new Date();
+	momentDate.setHours(0, 0, 0, 0);
+	const thisYearBirthDate = new Date(
+		momentDate.getFullYear(),
+		birthDate.getMonth(),
+		birthDate.getDate()
+	);
+	const aDate = thisYearBirthDate - birthDate;
+	const bDate = momentDate - birthDate;
+	let tempAge = momentDate.getFullYear() - birthDate.getFullYear();
+	let age = null;
+	if (bDate < aDate) {
+		tempAge = tempAge - 1;
+		age = tempAge < 0 ? 0 : tempAge;
+	} else {
+		age = tempAge;
+	}
+	return age;
+}
+
 module.exports = {
 	formatTime: formatTime,
 	formatTimes: formatTimes,
@@ -470,4 +493,5 @@ module.exports = {
 	toDecimal: toDecimal,
 	captureTime: captureTime,
 	saveImage: saveImage,
+	getAge:getAge
 };