高敬炎 před 2 roky
rodič
revize
dce3201c42

+ 10 - 1
xiaochengxu/pages.json

@@ -191,7 +191,16 @@
 				"enablePullDownRefresh": false
 			}
 		}
-	],
+	    ,{
+            "path" : "pages/circle/lookHome",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "主页",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
 	"tabBar": {
 		"custom": false,
 		"color": "#656765",

+ 12 - 8
xiaochengxu/pages/cardHolder/cardHolder.vue

@@ -26,13 +26,13 @@
 			</view>
 		</view>
 
-		<view class="content2">
+		<view :style='cardHolderList.length>0?"padding:20rpx 20rpx 200rpx 20rpx;":"padding:20rpx 20rpx 20rpx 20rpx;"' class="content2">
 			<view class="all-type flex" @click="selectType">
 				<text>{{typeName?typeName:'全部分类'}}</text>
 				<uni-icons type="bottom" size="18" color="#fff"></uni-icons>
 			</view>
 		</view>
-		<view class="content3">
+		<view :style='cardHolderList.length>0?"top:-170rpx;":"top:-10rpx;"' class="content3">
 
 			<mescroll-body v-if='cardHolderList' :up="upOption" :down="downOption" ref="mescrollRef"
 				@init="mescrollInit" @up="upCallback" @down="downCallback">
@@ -53,7 +53,7 @@
 								<view class="row2">
 									{{item.companyName}}
 								</view>
-								<view class="row3 flex" @click="">
+								<view class="row3 flex" @click="toMap(item)">
 									<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
 										height="16px"></u--image>
 									<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
@@ -85,7 +85,7 @@
 								<view class="row2">
 									{{item.companyName}}
 								</view>
-								<view class="row3 flex">
+								<view @click="toMap(item)" class="row3 flex">
 									<u--image :showLoading="true" src="/static/imgs/card/address3.png" width="13px"
 										height="16px"></u--image>
 									<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
@@ -132,7 +132,7 @@
 									</view>
 								</view>
 								<view class="right">
-									<view class="row1 flex">
+									<view @click="toMap(item)" class="row1 flex">
 										<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
 											height="16px"></u--image>
 										<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
@@ -175,7 +175,7 @@
 										width="66px" height="66px" shape="circle" v-else></u--image>
 								</view>
 								<view class="right">
-									<view class="row1 flex">
+									<view @click="toMap(item)" class="row1 flex">
 										<u--image :showLoading="true" src="/static/imgs/card/address2.png" width="13px"
 											height="16px"></u--image>
 										<view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
@@ -207,8 +207,11 @@
 									@click="toHome(item)"></image>
 								<text @click='switchType(item)'
 									style="color: #fff;">{{item.classify?item.classifyName:'默'}}</text>
-								<image src="../../static/imgs/card/share.png" mode="widthFix" style="width: 35rpx;"
+								<image v-if='item.shareCard==1' src="../../static/imgs/card/share.png" mode="widthFix" style="width: 35rpx;"
 									@click="share(item)"></image>
+									
+								<image v-if='item.shareCard==0' src="../../static/imgs/card/share_grey.png" mode="widthFix" style="width: 35rpx;"
+									></image>
 							</view>
 							<view class="right">
 
@@ -342,6 +345,7 @@
 			};
 		},
 		onShow() {
+			console.log(uni.getLaunchOptionsSync().scene,1011)
 			if (uni.getStorageSync("userInfo").phone) {
 				this.userInfo = uni.getStorageSync("userInfo")
 				this.$nextTick(function() {
@@ -501,7 +505,7 @@
 			},
 			toHome(item) {
 				uni.navigateTo({
-					url: "/pages/mySet/myHome?id=" + item.personalHomeId
+					url: "/pages/circle/lookHome?id=" + item.personalHomeId
 				})
 			},
 			delSearchVal() {

+ 20 - 15
xiaochengxu/pages/cardHolder/scanCodeAddCard.vue

@@ -49,7 +49,7 @@
 					<u--textarea v-model="cardInfo.remark" placeholder="输入备注,不超过150个字 "></u--textarea>
 				</view>
 			</view>
-			<view class="flex flex-between" style="border-bottom: 1px solid #E6E5E5;padding: 20rpx 0;">
+			<view v-if='commonId==""' class="flex flex-between" style="border-bottom: 1px solid #E6E5E5;padding: 20rpx 0;">
 				<view class="left">
 					我的名片
 				</view>
@@ -87,6 +87,7 @@
 					"position: absolute;right: -40rpx;width: 58vw;height: 0;border-top: 80rpx solid green;border-left: 80rpx solid transparent;border-radius: 0 0 10px 0"
 				],
 				id: '',
+				commonId:'',
 				cardInfo: {},
 				show: false,
 				show1: false,
@@ -111,6 +112,7 @@
 		},
 		onLoad(options) {
 			this.id = options.id.indexOf(",") ? options.id.split(",")[0] : options.id
+			this.commonId=options.id.indexOf(",") ? options.id.split(",")[1] :''
 			this.getList()
 		},
 		onShow() {
@@ -166,6 +168,22 @@
 				this.show = false
 			},
 			getList() {
+				this.$request.baseRequest('admin.unimall.cardManagementInfo', 'get', {
+					id: this.id
+				}, failres => {
+					console.log('res+++++', failres.errmsg)
+					this.$refs.uToast.show({
+						type: 'error',
+						message: failres.errmsg,
+					})
+					uni.hideLoading()
+				}).then(res => {
+					this.cardInfo = res.data
+					this.cardInfo.cardBusiness=''
+					this.cardInfo.cardCommonId = res.data.commonId
+					console.log(res)
+				})
+				console.log(uni.getStorageSync("userInfo").id,111111)
 				this.$request.baseRequest('admin.unimall.cardManagementInfo', 'list', {
 					commonId: uni.getStorageSync("userInfo").id
 				}, failres => {
@@ -191,20 +209,7 @@
 					this.columns = [res.data.items]
 					console.log(this.columns)
 				})
-				this.$request.baseRequest('admin.unimall.cardManagementInfo', 'get', {
-					id: this.id
-				}, failres => {
-					console.log('res+++++', failres.errmsg)
-					this.$refs.uToast.show({
-						type: 'error',
-						message: failres.errmsg,
-					})
-					uni.hideLoading()
-				}).then(res => {
-					this.cardInfo = res.data
-					this.cardInfo.cardCommonId = res.data.commonId
-					console.log(res)
-				})
+				
 
 			}
 		}

+ 4 - 2
xiaochengxu/pages/cardHolder/search.vue

@@ -2,7 +2,7 @@
 	<view>
 		<d-search-log :placeholder="'搜索名片'" :color_border="color_border" :color_text="color_border"
 			:search_list_old_man_num='15' :search_list_hot="search_list_hot" :store_key="store_key"
-			@onClickDelAllApi="onClickDelAll" @onSearchNameApi="onSearchName"></d-search-log>
+			@onClickDelAllApi="onClickDelAll" @onSearchNameApi="onSearchName" @onSearchvoiceApi='onSearchvoice'></d-search-log>
 		<u-popup :show="isRecorderManager" mode="bottom">
 			<view class="shqx" v-if="longPress == '2'">
 				上划取消
@@ -60,7 +60,9 @@
 			}
 		},
 		methods: {
-
+			onSearchvoice(e){
+				this.isRecorderManager = true
+			},
 			handleTouchMove: function(e) {
 				console.log("滑动")
 				if (Math.abs(e.touches[e.touches.length - 1].clientY - this.startPoint.clientY) > 35) {

+ 3 - 2
xiaochengxu/pages/circle/changeCard.vue

@@ -126,13 +126,13 @@
 						<span class='status-btn' @click='cardExchangeInfoEdit(1,item)'> 拉黑</span>
 						<span class='status-btn error' @click='cardExchangeInfoEdit(2,item)'>拒绝</span>
 						<span class='status-btn success' @click='cardExchangeInfoEdit(3,item)'>接受</span>
-						<span class='status-btn' @click='cardExchangeInfoEdit(4,item)'>移除</span>
+						
 					</view>
 					<view class="status-btns" v-else>
 						<span class='status' v-if="item.status==1">已接受</span>
 						<span class='status' v-if="item.status==3">已拒绝</span>
 						<span class='status' v-if="item.status==5">已过期</span>
-						<span class='status' v-if="item.status==7">已拉黑</span>
+						<span v-if="item.status==7" class='status-btn' @click='cardExchangeInfoEdit(4,item)'>移除</span>
 					</view>
 				</view>
 				<view style='margin:0 20rpx;' class="flex flex-between">
@@ -283,6 +283,7 @@
 						type: 'success',
 						message: "操作成功!",
 					})
+					this.getList()
 				})
 			}
 		}

+ 13 - 7
xiaochengxu/pages/circle/circle.vue

@@ -5,7 +5,7 @@
 				<view class="left flex" @click="search">
 					<image src="../../static/imgs/cirlce/search.png" mode="widthFix" class="search-img"></image>
 					<text class="search-val"> {{searchVal?searchVal:'搜索圈子'}}</text>
-					<image style='width:32rpx;height:32rpx;' v-if="searchVal" @click.native.stop="delSearchVal" src="../../static/imgs/card/searchdel.png" mode="widthFix" ></image>
+					<image class='search-del' style='width:32rpx;height:32rpx;' v-if="searchVal" @click.native.stop="delSearchVal" src="../../static/imgs/card/searchdel.png" mode="widthFix" ></image>
 				</view>
 			</view>
 			<view class="right relative">
@@ -36,7 +36,7 @@
 				</view>
 				<view class="row-tiem flex" v-if="!item.name" @click="toDetail(item.id)">
 					<view class="left">
-						<image src="../../static/imgs/mySet/ewm.png" mode="widthFix" class="img"></image>
+						<image :src="item.circleHead?item.circleHead:'../../static/imgs/mySet/ewm.png'" mode="widthFix" class="img"></image>
 					</view>
 					<view class="right">
 						<view class="top">{{item.circleName}}({{item.cardNum}})</view>
@@ -218,15 +218,20 @@
 			width: 100%;
 
 			.left {
-				background: #fff;
+				background: #F0F0F0;
 				border-radius: 38rpx;
 				padding: 18rpx;
 				width: 100%;
+				position:relative;
 			}
 
 			.search-val {
 				color: #B3B3B3;
 			}
+			.search-del{
+				position:absolute;
+				right:10px;
+			}
 		}
 
 		.hy-search-img {
@@ -287,20 +292,21 @@
 
 			.top {
 				font-size: 32rpx;
-				font-weight: bold;
 				color: #1A1A1A;
+				font-family: PingFang SC;
+				font-weight: bold;
 			}
 
 			.bottom {
 				margin-top: 10rpx;
 				.text {
 					background: #FAFAFA;
-					border-radius: 20px;
+					border-radius: 10rpx;
 					font-size: 26rpx;
 					font-weight: 700;
 					color: #666666;
-					padding: 11rpx 40rpx;
-					margin-right: 20rpx;
+					padding: 10rpx 20rpx;
+					margin-right: 10rpx;
 				}
 			}
 		}

+ 4 - 4
xiaochengxu/pages/circle/createCirclce.vue

@@ -12,17 +12,15 @@
 				选择名片
 			</view>
 			<view style="font-size:12px;padding-right:20rpx;" class='flex align-item-center' @click="cardShow">
-			{{formData.cardBusiness?formData.cardBusiness:'无名片'}}
+			{{formData.cardBusiness?formData.cardBusiness:'无名片'}}
 			<u-icon v-if='!formData.cardBusiness' name="arrow-right" size="12"></u-icon>
 			</view>
 		</view>
 		<view class="row1">
-			
 			<view class="flex flex-between" style="margin-top: 20rpx;">
 				<view class="title">圈子标签</view>
 				<uni-icons type="plus-filled" @click="add(item)" size="40" color="#112253"></uni-icons>
 			</view>
-			
 			<view class="">
 				<view v-for="(item,index) in labelList":key="index">
 					<view>
@@ -204,7 +202,9 @@
 		width: calc(100% - 40rpx);
 	}
 	.select-card{
-		background:#fff;padding:20rpx 0;
+		background:#fff;padding:20rpx 0 20rpx 20rpx;
 		margin:10rpx 0;
+		border-radius: 20rpx;
+		
 	}
 </style>

+ 23 - 11
xiaochengxu/pages/circle/detail.vue

@@ -3,7 +3,7 @@
 		<view class="bgc">
 			<view class="content1">
 				<view class="left">
-					<image src="../../static/imgs/mySet/ewm.png" mode="widthFix" class="img"></image>
+					<image :src="dataObj.circleHead?dataObj.circleHead:'../../static/imgs/mySet/ewm.png'" mode="widthFix" class="img"></image>
 				</view>
 				<view class="right">
 					<view class="top flex flex-between">
@@ -41,7 +41,7 @@
 		</view>
 
 		<mescroll-body ref="mescrollRef" @init="mescrollInit" @up="upCallback" @down="downCallback"
-			style="position: relative;top: -80rpx;">
+			style="position: relative;top: 272rpx;">
 			<view class="content3" v-for="(item,index) in changeCardList" :style="item.currentBackground?'background:url('+item.currentBackground+');background-size:100% 100%':''" :key="index">
 				<view class="flex item">
 					<view class="top flex">
@@ -68,8 +68,8 @@
 					{{item.scopeOfBusiness}}
 				</view>
 				<view class="flex btn" v-if="item.lookPage==1||item.notDisplay!=1">
-					<image src="../../static/imgs/cirlce/home.png" mode="widthFix" style="width: 32rpx;"
-						v-if="item.lookPage==1"></image>
+					<image @click='toHome(item)' src="../../static/imgs/cirlce/home.png" mode="widthFix" style="width: 32rpx;"
+						v-if="item.lookPage==1&&item.personalHomeId"></image>
 					<image src="../../static/imgs/cirlce/change.png" mode="widthFix" style="width: 32rpx;"
 						@click="changeCard(item)" v-if="item.notDisplay!=1"></image>
 				</view>
@@ -127,6 +127,11 @@
 			this.id = options.val
 		},
 		methods: {
+			toHome(item){
+				uni.navigateTo({
+					url:'/pages/circle/lookHome?id='+item.personalHomeId
+				})
+			},
 			confirmChangeSubmit() {
 				this.$request.baseRequest('admin.unimall.cardExchangeInfo', 'add', {
 					cardExchangeInfo: JSON.stringify({
@@ -175,7 +180,7 @@
 						type: 'success',
 						message: "更改圈子名片成功!",
 					})
-
+					this.mescroll.resetUpScroll()
 				})
 			},
 			myCardClick() {
@@ -207,7 +212,6 @@
 						message: "退出成功!",
 					})
 					this.mescroll.resetUpScroll()
-
 				})
 			},
 			cardConfirm(e) {
@@ -341,6 +345,9 @@
 	.bgc {
 		background-color: #112253;
 		padding-bottom: 100rpx;
+		position:fixed;
+		top:0;
+		width:100%;
 	}
 
 	.content1 {
@@ -363,7 +370,7 @@
 				}
 
 				.join {
-					background: #42568C;
+					background: #0A173D;
 					color: #fff;
 					position: absolute;
 					right: 0rpx;
@@ -375,11 +382,11 @@
 
 			.bottom {
 				.text {
-					color: #ffffff90;
+					color: #ffffff50;
 					background: #f1f5ff20;
-					padding: 8rpx 20rpx;
+					padding: 10rpx 20rpx;
 					margin-right: 10rpx;
-					border-radius: 20rpx;
+					border-radius: 10rpx;
 					font-size: 26rpx;
 
 				}
@@ -438,7 +445,7 @@
 		background: red;
 		box-sizing: border-box;
 		margin: 0 20rpx 20rpx 20rpx;
-
+		height:381rpx;
 		.item {
 			align-items: flex-start;
 			padding: 34rpx 40rpx 0 40rpx;
@@ -496,4 +503,9 @@
 	.line{
 		text-align:center;
 	}
+	/deep/.mescroll-body{
+		height:558px !important;
+		overflow: scroll !important;
+		min-height:558px !important;
+	}
 </style>

+ 285 - 0
xiaochengxu/pages/circle/lookHome.vue

@@ -0,0 +1,285 @@
+<template>
+	<view class="content">
+		<u-loading-page loading-mode='spinner' image="/static/imgs/logo.png" iconSize='60' :loading='loading'></u-loading-page>
+		<view v-if='!loading'>
+			<view v-if='fileList.length>0||companyData.companyName||companyData.companyIntroduction||companyData.scopeOfBusiness||companyData.companyAddress||companyData.phone||companyData.portraiture||companyData.postbox'>
+				<view v-if='fileList.length>0' class="swiper-wrap">
+					<u-swiper :list="fileList" 
+					autoplay
+					imgMode='aspectFill'
+					height='260'
+					@change="e => current = e.current" @click="click">
+						<view slot="indicator" class="indicator">
+							<view
+								class="indicator__dot"
+								v-for="(item, index) in fileList"
+								:key="index"
+								:class="[index === current && 'indicator__dot--active']">
+							</view>
+						</view>
+					</u-swiper>
+				</view>
+
+				<view v-if='companyData.companyName' class="company-title row flex flex-between line" >
+					<view class='title' >{{companyData.companyName}}</view>
+				</view>
+				<view v-if='companyData.companyIntroduction||companyData.scopeOfBusiness||companyData.companyAddress||companyData.phone||companyData.portraiture||companyData.postbox' class="content1" >
+					<view v-if='companyData.companyIntroduction' class="intro top-m">
+						<view  class="title">基本信息</view>
+						<view class='content'>{{companyData.companyIntroduction}}</view>
+					</view>
+					<view v-if='companyData.scopeOfBusiness' class="scope top-m">
+						<view class="title">业务范围</view>
+						<view class='content'>{{companyData.scopeOfBusiness}}</view>
+					</view>
+					<view v-if='companyData.companyAddress||companyData.phone||companyData.portraiture||companyData.postbox' class='compInformation' >
+						<view v-if="companyData.companyAddress" class="row flex top-m align-item-center">
+							<view class='image-wrap'>
+								<image style='width:24rpx;height:31rpx;'  src="../../static/imgs/mySet/home/address.png" mode=""></image>
+							</view>
+							<view>地址:{{companyData.companyAddress}}</view>
+						</view>
+						<view v-if="companyData.phone" class="row flex top-m align-item-center">
+							<view class='image-wrap'>
+								<image style='width:27rpx;height:28rpx;' src="../../static/imgs/mySet/home/phone.png" mode=""></image>
+							</view>
+							<view>电话:{{companyData.phone}}</view>
+						</view>
+						<view v-if="companyData.portraiture" class="row flex top-m align-item-center">
+							<view class='image-wrap'>
+								<image style='width:27rpx;height:28rpx;' src="../../static/imgs/mySet/home/portraiture.png" mode=""></image>
+							</view>
+							<view>座机:{{companyData.portraiture}}</view>
+						</view>
+						<view v-if="companyData.postbox" class="row flex top-m align-item-center">
+							<view class='image-wrap'>
+								<image style='width:29rpx;height:25rpx;' src="../../static/imgs/mySet/home/postbox.png" mode=""></image>
+							</view>
+							<view>邮箱:{{companyData.postbox}}</view>
+						</view>
+					</view>
+				</view>	
+			</view>
+			<view style='position:relative;height:100vh;' v-if='fileList.length==0&&!companyData.companyName&&!companyData.companyIntroduction&&!companyData.scopeOfBusiness&&!companyData.companyAddress&&!companyData.phone&&!companyData.portraiture&&!companyData.postbox'>
+				<image class='notavailable' src="../../static/imgs/notavailable.png" mode=""></image>
+			</view>
+		</view>
+		
+		
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	import uploadImage from '@/components/ossutil/uploadFile.js'; 
+	export default {
+		data() {
+			return {
+				companyData:{
+					commonId:''
+				},
+				userInfo:{},
+				fileList:[],
+				fileList1:[],
+				editstatus:false,
+				id:'',
+				current:0,
+				loading:true,
+			}
+		},
+		onLoad(options) {
+			this.id=options.id
+			uni.showLoading({
+					title: '数据加载中'
+				})
+				this.getList()
+		},
+		onShow() {
+				this.userInfo = uni.getStorageSync("userInfo")
+				this.companyData.commonId=uni.getStorageSync("userInfo").id
+				console.log(1111111111)
+				
+			
+			// this.getList()
+			
+		},
+		onUnload(){
+			this.id=''
+		},
+		methods: {
+			getList(){
+				var that=this
+				var data={}
+				if(this.id){
+					data={
+						id:this.id,
+					}
+				}
+				this.$request.baseRequest('admin.unimall.personalHomepageInfo', 'get',data, failres => {
+					console.log('res+++++', failres.errmsg)
+					this.$refs.uToast.show({
+						type: 'error',
+						message: failres.errmsg,
+					})
+					uni.hideLoading()
+				}).then(res => {
+					console.log(res)
+						this.companyData=res.data
+						if(res.data.addressUrl){
+							var arr=res.data.addressUrl.split(',')
+							this.fileList1=[]
+							for(var i=0;i<arr.length;i++){
+								if(arr[i]){
+									this.fileList1.push({url:arr[i]})
+								}
+							}
+							this.fileList=arr
+						}else{
+							this.fileList1=[]
+							this.fileList=[]
+						}
+					setTimeout(()=>{
+						that.loading=false
+					},1000)
+					// if (res.errno == 200) {
+					uni.hideLoading()
+					
+					// }
+				})
+			},
+			change(){
+				
+			},
+			click(index){
+				console.log(index)
+				uni.previewImage({
+						current: index,     // 当前显示图片的索引值
+						urls: this.fileList,    // 需要预览的图片列表,photoList要求必须是数组
+						loop:true,          // 是否可循环预览
+					})
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	/deep/.u-border {
+		border-color: #E6E6E6!important;
+	}
+	.content{
+		
+	}
+	 .indicator {
+		background:rgba(10, 23, 61, 0.5);
+		padding: 9rpx 5rpx;
+		border-radius: 20rpx;
+	        @include flex(row);
+	        justify-content: center;
+	
+	        &__dot {
+	             height: 6px;
+	             width: 6px;
+	             border-radius: 100px;
+	             background-color: rgba(255, 255, 255, 0.5);
+	             margin: 0 5px;
+	             transition: background-color 0.3s;
+	    
+	            &--active {
+	                 background-color: #ffffff;
+	             }
+	        }
+	}
+
+	.top{
+		width: 100vw;
+		height: 135rpx;
+		background: #112253;
+		border-radius: 0px 0px 20rpx 20rpx;
+	}
+	.content1{
+		margin: 0rpx 0 120rpx 0;
+		background-color: #fff;
+		border-radius: 20rpx 20rpx 0 0;
+		padding:10rpx 20rpx;
+		box-sizing: border-box;
+		.row{
+			padding-bottom: 24rpx;
+		}
+		.line{
+			border-bottom: 1px solid #E6E6E6;
+		}
+		.top-m{
+			margin-top: 24rpx;
+		}
+		.qyfc{
+			margin: 24rpx 0;
+		}
+	}
+	.content1-edit{
+		position: relative;
+		top: -230rpx;
+		margin: 20rpx 20rpx 120rpx 20rpx;
+		border-radius: 20rpx;
+		padding:20rpx;
+	}
+	.footer{
+		position: fixed;
+		bottom: 80rpx;
+		width: calc(100% - 40rpx);
+		padding: 0 20rpx;
+		z-index: 999;
+	}
+	.button{
+		color: #fff;
+		background-color: #112253;
+		border-radius: 20rpx;
+		padding:10rpx;
+		font-size:28rpx;
+	}
+	.company-title{
+		margin:30rpx 20rpx;
+		.button{
+			padding:10rpx 20rpx;
+			width:96rpx;
+		}
+	}
+	.company-title .title{
+		color:#112253;
+		font-size:36rpx;
+		font-weight: bold;
+	}
+	.title{
+		font-size:32rpx;
+		font-weight: bold;
+		color: #1A1A1A;
+	}
+	.content{
+		font-size: 28rpx;
+		font-weight: 500;
+		color: #666666;
+	}
+	.compInformation{
+		margin:20rpx 0;
+		background:#F7F7F7;
+		color:#112253;
+		font-size: 28rpx;
+		font-weight: 500;
+		padding:10rpx 30rpx;
+		border-radius:20rpx;
+	}
+	.image-wrap{
+		width:50rpx;
+		position:relative;
+		top:2rpx;
+	}
+	.input-title{
+		margin-right:10rpx;
+	}
+	.notavailable{
+		width:252rpx;height:348rpx;
+		    position: absolute;
+		    top: 50%;
+		    left: 50%;
+		    transform: translateX(-50%) translateY(-50%);
+	}
+</style>

+ 329 - 4
xiaochengxu/pages/circle/search.vue

@@ -1,13 +1,38 @@
 <template>
 	<view>
 		<d-search-log :color_border="color_border" :color_text="color_border" :search_list_old_man_num='15' :search_list_hot="cirlce_search_list_hot"
-			:store_key="store_key" @onClickDelAllApi="onClickDelAll" @onSearchNameApi="onSearchName"></d-search-log>
-
+			:store_key="store_key" @onClickDelAllApi="onClickDelAll" @onSearchNameApi="onSearchName" @onSearchvoiceApi='onSearchvoice'></d-search-log>
+		<u-popup :show="isRecorderManager" mode="bottom">
+			<view class="shqx" v-if="longPress == '2'">
+				上划取消
+			</view>
+			<view class="record-layer">
+				<view class="record-box">
+					<view class="record-btn-layer" v-if="tempFilePath == ''">
+						<view class="record-btn">
+							<image src="../../static/mic1.png" mode="widthFix" style="width:120rpx;"
+									@longpress="longpressBtn" @touchend="touchendBtn" @touchmove="handleTouchMove"></image>
+							<text class="text">{{longPress == '1' ? '按住说出姓名' : '松开自动识别'}}</text>
+						</view>
+					</view>
+					<!-- 语音音阶动画 -->
+					<view class="prompt-layer prompt-layer-1" v-if="longPress == '2'">
+						<view class="prompt-loader">
+							<view class="em" v-for="(item,index) in 15" :key="index"></view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</u-popup>
 	</view>
 </template>
 
 <script>
-	import dSearchLog from '@/uni_modules/d-search-log/components/d-search-log/d-search-log.vue'
+	import dSearchLog from '@/uni_modules/d-search-log/components/d-search-log/d-search-log.vue';
+	const recorderManager = uni.getRecorderManager();
+	const innerAudioContext = uni.createInnerAudioContext();
+	var init // 录制时长计时器
+	var timer // 播放 录制倒计时
 	export default {
 		components: {
 			"dSearchLog": dSearchLog
@@ -17,12 +42,88 @@
 				color_border: "#00aaff",
 				cirlce_search_list_hot: [],
 				store_key: 'circle_search_list',
+				duration: 60000, //录音最大值ms 60000/1分钟
+				tempFilePath: '', //音频路径
+				playStatus: 0, //录音播放状态 0:未播放 1:正在播放
+				longPress: '1',
+				tempFilePath: '',
+				isRecorderManager: false,
+				is_clock: true,
+				startPoint: ""
 			};
 		},
 		methods: {
 			onClickDelAll(val) {
 				console.log(val)
 			},
+			onSearchvoice(e){
+				this.isRecorderManager = true
+			},
+			handleTouchMove: function(e) {
+				console.log("滑动")
+				if (Math.abs(e.touches[e.touches.length - 1].clientY - this.startPoint.clientY) > 35) {
+			
+					this.is_clock = false
+				} else {
+			
+					this.is_clock = true
+				}
+			},
+			longpressBtn(e) {
+				this.longPress = '2';
+				this.is_clock = true,
+					console.log(e);
+				this.startPoint = e.touches[0],
+					recorderManager.onStop((res) => {
+						console.log("录音结束")
+						this.tempFilePath = res.tempFilePath;
+					})
+				const options = {
+					duration: this.duration, // 指定录音的时长,单位 ms
+					sampleRate: 16000, // 采样率
+					numberOfChannels: 1, // 录音通道数
+					encodeBitRate: 96000, // 编码码率
+					// format: 'mp3', // 音频格式,有效值 aac/mp3
+					frameSize: 10, // 指定帧大小,单位 KB
+				}
+				recorderManager.start(options);
+				// 监听音频开始事件
+				recorderManager.onStart((res) => {
+					console.log(res)
+				})
+			},
+			touchendBtn() {
+				console.log("录音结束")
+				let that = this
+				this.longPress = '1'; 
+				recorderManager.onStop((res) => {
+					this.tempFilePath = res.tempFilePath
+					let _file = ''
+					if (that.is_clock) {
+						_file = uni.getFileSystemManager().readFileSync(res.tempFilePath, "base64")
+						console.log(_file)
+						that.$request.baseRequest('admin.unimall.certificateManagementInfo', 'speechRecognition', {
+							voiceMessage: _file,
+						}, failres => {
+							console.log('res+++++', failres.errmsg)
+							this.$refs.uToast.show({
+								type: 'error',
+								message: failres.errmsg,
+							})
+						}).then(res => {
+							uni.hideLoading()
+							console.log(res)
+							uni.setStorageSync('cirlce_search_val', res.data);
+							uni.switchTab({
+								url: "/pages/circle/circle"
+			
+							})
+			
+						})
+					}
+					recorderManager.stop()
+				})
+			},
 			onSearchName(e) {
 				uni.setStorageSync('cirlce_search_val', e);
 				uni.switchTab({
@@ -37,6 +138,230 @@
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
+.shqx {
+		position: absolute;
+		top: -100rpx;
+		left: 0;
+		right: 0;
+		margin: auto;
+		text-align: center;
+		color: rgba(221, 221, 221, 1);
+	}
+
+	.record-box {
+		width: 100%;
+		position: relative;
+		top: 80rpx;
+	}
+
+	.record-btn-layer {
+		width: 100%;
+		display: flex;
+		justify-content: center;
+	}
+
+	.record-btn-layer button::after {
+		border: none;
+	}
+
+	.record-btn-layer button {
+		font-size: 14px;
+		line-height: 38px;
+		width: 100%;
+		height: 38px;
+		border-radius: 8px;
+		text-align: center;
+		background: rgba(56, 86, 156, 1);
+	}
+
+	.record-btn-layer button image {
+		width: 16px;
+		height: 16px;
+		margin-right: 4px;
+		vertical-align: middle;
+	}
+
+	.record-btn-layer .record-btn-2 {
+		background: rgba(56, 86, 156, 1);
+	}
+
+	.prompt-layer {
+		border-radius: 8px;
+		background: rgba(56, 86, 156, 1);
+		padding: 8px 16px;
+		box-sizing: border-box;
+		position: absolute;
+		left: 50%;
+		transform: translateX(-50%);
+	}
+
+	.prompt-layer::after {
+		content: '';
+		display: block;
+		border: 6px solid rgba(0, 0, 0, 0);
+		border-top-color: rgba(56, 86, 156, 1);
+		position: absolute;
+		bottom: -10px;
+		left: 50%;
+		transform: translateX(-50%);
+	}
+
+	.prompt-layer-1 {
+		font-size: 12px;
+		width: 128px;
+		text-align: center;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		top: -240px;
+	}
+
+	.del {
+		position: absolute;
+		top: -200rpx;
+
+		.img {
+			width: 100rpx;
+		}
+	}
+
+	.prompt-layer-1 .p {
+		color: #000000;
+	}
+
+	.prompt-layer-1 .span {
+		color: #fff;
+	}
+
+	.prompt-loader .em {}
+
+	.prompt-loader {
+		width: 96px;
+		height: 20px;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		margin-bottom: 6px;
+	}
+
+	.prompt-loader .em {
+		display: block;
+		background: #fff;
+		width: 1px;
+		height: 10%;
+		margin-right: 2.5px;
+		float: left;
+	}
+
+	.prompt-loader .em:last-child {
+		margin-right: 0px;
+	}
+
+	.prompt-loader .em:nth-child(1) {
+		animation: load 2.5s 1.4s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(2) {
+		animation: load 2.5s 1.2s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(3) {
+		animation: load 2.5s 1s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(4) {
+		animation: load 2.5s 0.8s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(5) {
+		animation: load 2.5s 0.6s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(6) {
+		animation: load 2.5s 0.4s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(7) {
+		animation: load 2.5s 0.2s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(8) {
+		animation: load 2.5s 0s infinite linear;
+	}
 
+	.prompt-loader .em:nth-child(9) {
+		animation: load 2.5s 0.2s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(10) {
+		animation: load 2.5s 0.4s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(11) {
+		animation: load 2.5s 0.6s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(12) {
+		animation: load 2.5s 0.8s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(13) {
+		animation: load 2.5s 1s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(14) {
+		animation: load 2.5s 1.2s infinite linear;
+	}
+
+	.prompt-loader .em:nth-child(15) {
+		animation: load 2.5s 1.4s infinite linear;
+	}
+
+	@keyframes load {
+		0% {
+			height: 10%;
+		}
+
+		50% {
+			height: 100%;
+		}
+
+		100% {
+			height: 10%;
+		}
+	}
+
+	.prompt-layer-2 {
+		// top: -540px;
+	}
+
+	.prompt-layer-2 .text {
+		color: rgba(0, 0, 0, 1);
+		font-size: 12px;
+	}
+
+	.record-btn {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+
+		.text {
+			margin-top: 20rpx;
+		}
+
+	}
+
+	/deep/.u-popup__content {
+		padding-bottom: 100rpx;
+		background: linear-gradient(180deg, rgba(204, 204, 204, 0.95) 0%, rgba(203, 203, 203, 0.01) 100%) !important;
+		border-radius: 50% 50% 0 0;
+	}
+
+	.record-layerP {
+		position: relative;
+		top: 50px;
+	}
 </style>

+ 6 - 2
xiaochengxu/pages/mySet/cardType.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="content">
-		<view class="content1">
+		<u-loading-page loading-mode='spinner' image="/static/imgs/logo.png" iconSize='60' :loading='loading'></u-loading-page>
+		<view v-show='!loading' class="content1">
 			<view v-for='item in cardTypeList'>
 				<view class='flex row flex-between'>
 					<view class="left flex">
@@ -40,7 +41,7 @@
 				cardTypeData: {},
 				userInfo: {},
 				canReset: false,
-
+				loading:true,
 			};
 		},
 		onLoad() {
@@ -86,6 +87,9 @@
 					} else {
 						this.cardTypeList = []
 					}
+					setTimeout(()=>{
+						that.loading=false
+					},1000)
 				})
 			},
 			del(item) {

+ 482 - 76
xiaochengxu/pages/mySet/editCard.vue

@@ -1,74 +1,221 @@
+
 <template>
 	<view class="content">
-		<view class="content1">
-			<view class="left">
-				<image :src="cardInfo.headSculpture" mode="widthFix" class="img"></image>
+		<view class="content1 relative">
+			<view class="relative">
+				<image :src="imgList[cardInfo.cuttentTemplate-1].dictLabel" mode="widthFix" style="width: 100%;"></image>
 			</view>
-			<view class="right">
-				<view class="row1">
-					{{cardInfo.name}}|{{cardInfo.post}}
-				</view>
-				<view class="">
-					{{cardInfo.companyName}}
+			<view class="absolute card-content style1" v-if="cardInfo.cuttentTemplate==1">
+				<view class="left">
+					<u--image :showLoading="true" :src="cardInfo.headSculpture" width="66px" height="66px" shape="circle" v-if="cardInfo.headSculpture"></u--image>
+					<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px" height="66px" shape="circle" v-else></u--image>
 				</view>
-				<view class="">111
-					地址
+				<view class="right">
+					<view class="row1">
+						<text class="name">{{cardInfo.name}}</text>
+						<text class="post">{{cardInfo.post}}</text>
+					</view>
+					<view class="row2">
+						{{cardInfo.companyName}}
+					</view>
+					<view class="row3 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
+							height="16px"></u--image>
+						<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
+					</view>
+					<view class="row4 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
+							height="13px"></u--image>
+						<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+					</view>
+					<view class="row4 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
+							height="12px"></u--image>
+						<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
+					</view>
 				</view>
-				<view class="">
-					联系电话
+			</view>
+			<view class="absolute card-content style1 flex-between" v-if="cardInfo.cuttentTemplate==2">
+				<view class="right">
+					<view class="row1">
+						<text class="name">{{cardInfo.name}}</text>
+						<text class="post">{{cardInfo.post}}</text>
+					</view>
+					<view class="row2">
+						{{cardInfo.companyName}}
+					</view>
+					<view class="row3 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/address3.png" width="13px"
+							height="16px"></u--image>
+						<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
+					</view>
+					<view class="row4 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/phone3.png" width="12px"
+							height="13px"></u--image>
+						<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+					</view>
+					<view class="row4 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/remark3.png" width="10px"
+							height="12px"></u--image>
+						<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
+					</view>
 				</view>
-				<view class="">
-					备注
+				<view class="left">
+					<u--image :showLoading="true" :src="cardInfo.headSculpture" width="66px" height="66px" shape="circle" v-if="cardInfo.headSculpture"></u--image>
+					<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px" height="66px" shape="circle" v-else></u--image>
 				</view>
 			</view>
+			<view class="absolute card-content style2" v-if="cardInfo.cuttentTemplate==3">
+					<view class="top">
+						<u--image :showLoading="true" :src="cardInfo.headSculpture" width="66px" height="66px" shape="circle" v-if="cardInfo.headSculpture"></u--image>
+						<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px" height="66px" shape="circle" v-else></u--image>
+					</view>
+					<view class="bottom flex">
+						<view class="left">
+							<view class="row1">
+								<text class="name">{{cardInfo.name}}</text>
+								<text class="post">{{cardInfo.post}}</text>
+							</view>
+							<view class="row2">
+								{{cardInfo.companyName}}
+							</view>
+						</view>
+						<view class="right">
+							<view class="row1 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
+									height="16px"></u--image>
+								<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
+							</view>
+							<view class="row2 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
+									height="13px"></u--image>
+								<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+							</view>
+							<view class="row4 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
+									height="12px"></u--image>
+								<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
+							</view>
+						</view>
+					</view>
+			</view>
+			<view class="absolute card-content style2" v-if="cardInfo.cuttentTemplate==4">
+					<view class="top">
+						<view class="row1">
+							<text class="name">{{cardInfo.name}}</text>
+							<text class="post">{{cardInfo.post}}</text>
+						</view>
+						<view class="row2">
+							{{cardInfo.companyName}}
+						</view>
+						
+					</view>
+					<view class="bottom flex">
+						<view class="left">
+						<u--image :showLoading="true" :src="cardInfo.headSculpture" width="66px" height="66px" shape="circle" v-if="cardInfo.headSculpture"></u--image>
+						<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px" height="66px" shape="circle" v-else></u--image>
+						</view>
+						<view class="right">
+							<view class="row1 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/address2.png" width="13px"
+									height="16px"></u--image>
+								<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
+							</view>
+							<view class="row2 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/phone2.png" width="12px"
+									height="13px"></u--image>
+								<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+							</view>
+							<view class="row4 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/remark2.png" width="10px"
+									height="12px"></u--image>
+								<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
+							</view>
+						</view>
+					</view>
+			</view>
 		</view>
 		<view class="change-template">
 			切换模板
 		</view>
-		<view class="content2">
-			<view class="">
-				名片信息
+		<view class="img-list">
+			<view class="img-item" v-for="(item,index) in imgList" @click="changeTemplate(index)">
+				<image :src="item.dictValue" class="img-item" :key="index"></image>
+				<image src="../../static/imgs/card/dh.png" class="dh" v-if="cardInfo.cuttentTemplate==(index+1)"></image>
 			</view>
-			<u--form labelPosition="left" :model="cardInfo" ref="uForm">
-				<u-form-item label="名片标识" prop="cardInfo.cardBusiness" borderBottom>
-					<u--input v-model="cardInfo.cardBusiness" border="none" placeholder="输入名片标识"></u--input>
-				</u-form-item>
-				<u-form-item label="姓名" prop="cardInfo.name" borderBottom>
-					<u--input v-model="cardInfo.name" border="none" placeholder="输入姓名"></u--input>
-				</u-form-item>
-				<u-form-item label="职务" prop="cardInfo.post" borderBottom>
-					<u--input v-model="cardInfo.post" border="none" placeholder="输入职务,不超过8个字符"></u--input>
-				</u-form-item>
-				<u-form-item label="公司/机构名称" prop="cardInfo.companyName" borderBottom>
-					<u--input v-model="cardInfo.companyName" border="none" placholder="输入公司/机构名称"></u--input>
-				</u-form-item>
-				</u-form-item>
-				<!-- 		<u-form-item label="地址" prop="userInfo.name" borderBottom>
-					<view @click="showPicker">选择地址</view>
-					<view>{{ province }}{{ city }}{{ area }}</view>
-				</u-form-item> -->
-				<u-form-item label="定位" prop="cardInfo.name" borderBottom @click="placeSelect();hideKeyboard()">
-					<text>选择地址> </text>
-				</u-form-item>
-				<u-form-item label="详细地址" prop="cardInfo.name" borderBottom>
-					<u--input v-model="cardInfo.detailedAddress" border="none" placeholder="输入地址,不超过15个字"></u--input>
-				</u-form-item>
-				<u-form-item label="联系电话" prop="cardInfo.name" borderBottom>
-					<u--input v-model="cardInfo.phone" border="none" placeholder="输入联系电话"></u--input>
-				</u-form-item>
-			</u--form>
 		</view>
-		<view class="content3">
-			<view class="left">
-				上传企业logo或个人头像
+		<view class="change-template">
+			名片信息
+		</view>
+
+		<view class="content2">
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					名片标识
+				</view>
+				<u--input v-model="cardInfo.cardBusiness" border="none" placeholder="输入名片标识" inputAlign='right'></u--input>
+			</view>
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					姓名
+				</view>
+				<u--input v-model="cardInfo.name" border="none" placeholder="输入姓名" inputAlign='right'></u--input>
 			</view>
-			<view class="right">
-				<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
-					:maxCount="1"></u-upload>
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					职务
+				</view>
+				<u--input v-model="cardInfo.post" border="none" placeholder="输入职务,不超过8个字符" inputAlign='right'></u--input>
 			</view>
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					公司/机构名称
+				</view>
+				<u--input v-model="cardInfo.companyName" border="none" placeholder="输入公司/机构名称" inputAlign='right'></u--input>
+			</view>
+			<view class="flex flex-between align-item-center row" @click="placeSelect();hideKeyboard()">
+				<view class="left">
+					地址
+				</view>
+				<view v-if="cardInfo.province">{{ cardInfo.province }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
+				<view class="" v-else>
+					<text>选择地址 </text>
+					<image src="../../static/imgs/card/yjt.png" mode="" style="margin-left:10rpx;width:12rpx;height: 21rpx;"></image>
+				</view>
+				
+			</view>
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					详细地址
+				</view>
+				<u--input v-model="cardInfo.detailedAddress" border="none" placeholder="输入详细地址,不超过15个字" inputAlign='right'></u--input>
+			</view>
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					联系电话
+				</view>
+				<u--input v-model="cardInfo.phone" maxlength='15' border="none" placeholder="输入联系电话" inputAlign='right'></u--input>
+			</view>
+			<!-- 		<u-form-item label="地址" prop="userInfo.name" borderBottom>
+						<view @click="showPicker">选择地址</view>
+						<view>{{ province }}{{ city }}{{ area }}</view>
+					</u-form-item> -->
+			<view class="flex flex-between align-item-center row">
+				<view class="left">
+					上传企业logo或个人头像
+				</view>
+				<view class="right">
+					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
+						:maxCount="1"></u-upload>
+				</view>
+			</view>
+
+
+
+
 		</view>
 		<view class="bottom">
-			<button @click="submit">提交</button>
+			<button @click='$u.debounce(submit, 500)' class='button' type="default">提交</button>
 		</view>
 		<city-picker ref="picker" mode="multiSelector" :list="areaData" :level="3" @confirm="finishSelectAddress">
 		</city-picker>
@@ -79,15 +226,9 @@
 </template>
 
 <script>
+	var that;
+	import uploadImage from '@/components/ossutil/uploadFile.js';
 	export default {
-		data() {
-			return {
-				isSubmit: false,
-				content: '确定修改名片信息?',
-				cardInfo:{},
-				fileList1: [],
-			};
-		},
 		onLoad(options) {
 			this.cardInfo = JSON.parse(options.itemVal)
 			console.log(this.cardInfo)
@@ -96,32 +237,78 @@
 					url:this.cardInfo.headSculpture
 				}
 			]
-			
+			that = this
+			this.userInfo = uni.getStorageSync("userInfo")
+			this.getList()	
 		},
-		methods:{
-			confirmSubmit() {
-				console.log(123434343)
-				console.log(123434343)
-				this.$request.baseRequest('admin.unimall.cardManagementInfo', 'update', {
-					cardManagementInfo: JSON.stringify(this.cardInfo)
+		data() {
+			return {
+				selectIndex: 1,
+				imgList:[],
+				isSubmit: false,
+				content: '确定提交名片信息?',
+				userInfo: {},
+				fileList1: [],
+				cardInfo: {
+					city:'',
+					area:'',
+					province:'',
+					commonId: '',
+					cardBusiness: '名片标识',
+					name: '',
+					post: '',
+					companyName: '',
+					location: '',
+					detailedAddress: '',
+					phone: '',
+					headSculpture: '',
+					currentBackground:'',
+					cuttentTemplate:''
+				}
+			};
+		},
+		methods: {
+			changeTemplate(index) {
+				this.selectIndex = (index+1)
+				this.cardInfo.currentBackground = this.imgList[index].dictLabel
+				this.cardInfo.cuttentTemplate = this.imgList[index].dictSort
+			},
+			getList() {
+				this.$request.baseRequest('admin.dictData', 'list', {
+					dictType: "card_template"
 				}, failres => {
+					console.log('res+++++', failres.errmsg)
 					this.$refs.uToast.show({
 						type: 'error',
 						message: failres.errmsg,
 					})
 					uni.hideLoading()
 				}).then(res => {
-					this.isSubmit = false
-					this.$refs.uToast.show({
-						type: 'success',
-						message: '修改成功!',
-					})
+					console.log("img", res)
+					this.imgList = res.data.items
+					if(!this.cardInfo.currentBackground&&!this.cardInfo.cuttentTemplate){
+						this.cardInfo.currentBackground = this.imgList[0].dictLabel
+						this.cardInfo.cuttentTemplate = this.imgList[0].dictSort
+					}
 				})
 			},
-			submit() {
-				this.isSubmit = true
-			
+			placeSelect() {
+				uni.chooseLocation({
+					success: function(res) {
+						console.log(res);
+						that.cardInfo.location = res.latitude + ',' + res.longitude
+						let _address = that.$helper.formatLocation(res.address)
+						that.cardInfo.province = _address.Province
+						that.cardInfo.city = _address.City
+						that.cardInfo.area = _address.Country
+						that.cardInfo.detailedAddress = _address.Village
+					}
+				});
+			},
+			hideKeyboard() {
+				uni.hideKeyboard()
 			},
+			// 删除图片
 			deletePic(event) {
 				this[`fileList${event.name}`].splice(event.index, 1)
 			},
@@ -158,12 +345,231 @@
 					)
 				})
 			},
+			confirmSubmit() {
+				this.$request.baseRequest('admin.unimall.cardManagementInfo', 'update', {
+					cardManagementInfo: JSON.stringify(this.cardInfo)
+				}, failres => {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: failres.errmsg,
+					})
+					uni.hideLoading()
+				}).then(res => {
+					this.isSubmit = false
+					this.$refs.uToast.show({
+						type: 'success',
+						message: '编辑成功!',
+					})
+					uni.navigateBack()
+				})
+			},
+			submit() {
+				this.isSubmit = true
+
+			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
+	.content {
+		padding: 20rpx;
+	}
+
+	.bgc0 {
+		background: url('https://taohaoliang.oss-cn-beijing.aliyuncs.com/pcfiles/bgc1.png') no-repeat center;
+		height: 380rpx;
+		border-radius: 20rpx;
+	}
+
+	.bgc1 {
+		background: url('https://taohaoliang.oss-cn-beijing.aliyuncs.com/pcfiles/bgc2.png') no-repeat center;
+		height: 380rpx;
+		border-radius: 20rpx;
+	}
+
+	.bgc2 {
+		background: url('https://taohaoliang.oss-cn-beijing.aliyuncs.com/pcfiles/bgc3.png') no-repeat center;
+		height: 380rpx;
+		border-radius: 20rpx;
+	}
+
+	.bgc3 {
+		background: url('https://taohaoliang.oss-cn-beijing.aliyuncs.com/pcfiles/bgc4.png') no-repeat center;
+		height: 380rpx;
+		border-radius: 20rpx;
+	}
+
+	.bgc4 {
+		background: url('https://taohaoliang.oss-cn-beijing.aliyuncs.com/pcfiles/bgc5.png') no-repeat center;
+		height: 380rpx;
+		border-radius: 20rpx;
+	}
+
 	.img {
 		width: 100rpx;
 	}
+
+	.change-template {
+		margin: 46rpx 0 30rpx 0;
+		font-size: 32rpx;
+		font-weight: bold;
+		color: #19191A;
+	}
+
+	.img-list {
+		display: block;
+		white-space: nowrap;
+		overflow-x: auto;
+
+		.dh {
+			width: 32rpx;
+			height: 32rpx;
+			position: absolute;
+			right: 8rpx;
+			bottom: 8rpx;
+		}
+
+		.img-item {
+			position: relative;
+			width: 186rpx;
+			height: 120rpx;
+			display: inline-block;
+			margin-right: 2 0rpx;
+			border-radius: 20rpx;
+			margin-right: 20rpx;
+		}
+
+	}
+
+	.content2 {
+		background-color: #fff;
+		border-radius: 20rpx;
+		padding:0 20rpx 0 20rpx;
+		.row{
+			padding: 20rpx;
+			border-bottom: 1px solid #E6E5E5;
+		}
+	}
+	.button{
+		color: #fff;
+		background-color: #112253;
+		border-radius: 20rpx;
+		margin: 40rpx 0;
+	}
+	.card-content{
+		top: 20rpx;
+		left: 20rpx;
+	}
+	.content1{
+		.icon-text{
+			margin-left:10rpx;
+		}
+		.style1{
+			display: flex;
+			padding: 20rpx 30rpx;
+			width: 85%;
+			.left{
+				width: 132rpx;
+				height: 132rpx;
+				border-radius: 50%;
+			}
+			.right{
+				margin-left: 40rpx;
+				.row1{
+					.name{
+						font-size: 38rpx;
+						font-weight: bold;
+						color: #040000;
+						margin-right: 20rpx;
+					}
+					.post{
+						font-size: 26rpx;
+						font-weight: 500;
+						color: #666666;
+					}
+				}
+				.row2{
+					margin-top: 20rpx;
+					font-size: 24rpx;
+					font-weight: bold;
+					color: #323333;
+				}
+				.row3{
+					margin-top: 30rpx;
+					font-size: 24rpx;
+					font-weight: 500;
+					color: #323333;
+				}
+				.row2,.row3,.row4{
+					margin-top: 20rpx;
+				}
+			}
+		}
+		.style2{
+				padding:30rpx;
+				.top{
+					.row1{
+						.name{
+							font-size: 38rpx;
+							font-weight: bold;
+							color: #040000;
+							margin-right: 20rpx;
+						}
+						.post{
+							font-size: 26rpx;
+							font-weight: 500;
+							color: #666666;
+						}
+					}
+					.row2{
+						margin-top: 20rpx;
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #323333;
+					}
+				}
+				.bottom{
+					margin-top: 48rpx;
+					.left{
+						margin-right: 40rpx;
+						.row1{
+							.name{
+								font-size: 38rpx;
+								font-weight: bold;
+								color: #040000;
+								margin-right: 20rpx;
+							}
+							.post{
+								font-size: 26rpx;
+								font-weight: 500;
+								color: #666666;
+							}
+						}
+						.row2{
+							margin-top: 20rpx;
+							font-size: 24rpx;
+							font-weight: bold;
+							color: #323333;
+						}
+					}
+					.right{
+						.row1,.row2{
+							font-size: 24rpx;
+							font-weight: 500;
+							color: #323333;
+						}
+						.row2,.row3,.row4{
+							margin-top: 20rpx;
+						}
+					}
+				}
+				
+		}
+	}
+	.content2{
+		.left{
+			margin-right:10rpx;
+		}
+	}
 </style>

+ 111 - 35
xiaochengxu/pages/mySet/myCard.vue

@@ -24,7 +24,7 @@
 			</view>
 			<view class='add-image' >
 				<u-upload @afterRead="afterRead" :fileList="fileList1" @delete="deletePic" name="1" multiple
-					:maxCount="1" height='190' width='306'>
+					:maxCount="1" height='190' width='360'>
 					<view class="bgc">
 						<view class="circle">
 							<view class="add">
@@ -40,7 +40,7 @@
 				@up="upCallback" @down="downCallback">
 				<view v-for='(item,index) in cardList' class="">
 					<view class="flex flex-between row">
-						<view v-if='!item.editstatus' class="left">
+						<view v-if='!item.editstatus' class="left flex">
 							<view class="name-text">
 								{{item.certificateName}}
 							</view>
@@ -60,7 +60,7 @@
 						<view @click='edit(item)' class="finished" v-else>编辑</view>
 					</view>
 					<view class="row2" v-if='!item.editstatus'>
-						<image  :src="item.certificateImage" mode="aspectFill" class="img"></image>
+						<image @click='previewImage(item.certificateImage)'  :src="item.certificateImage" mode="aspectFill" class="img"></image>
 						<view class="right">
 							<u-checkbox-group v-model="item.checked" placement="column" @change="checkboxChange($event,index,item)">
 								<u-checkbox iconColor='#4977FC' activeColor="#fff" :name='index+1' :customStyle="{marginBottom: '8px'}">
@@ -71,7 +71,7 @@
 					</view>
 					<view v-else style='padding-left:20rpx;' >
 						<u-upload  @afterRead="afterRead" :fileList="fileList2" @delete="deletePic" name="2" multiple
-						:maxCount="1" height='190' width='306'>
+						:maxCount="1" height='190' width='360'>
 							<view class="">
 								123
 							</view>
@@ -84,30 +84,22 @@
 		</view>
 	
 		<u-picker @cancel='show=false' @confirm='pickerConfirm' title='识别类型' :show="show" :columns="columns"></u-picker>
-		<u-popup :show="popupshow" mode="bottom">
+		<u-popup :show="popupshow" :closeOnClickOverlay='true' :overlayOpacity='0.4' @close='handleHiddenShare'
+			:round="10" mode="bottom">
 			<view>
-				<view class="share-to">
-					<text>分享到</text>
-				</view>
-				<view class="content">
-					<view class="block">
-						<button class="wechat" open-type="share">
-							<text class="iconfont icon-pengyouquan"></text>
-							<!-- <image src="/static/img/wechat.png" mode="aspectFill"></image> -->
-							<button class="shareBtn" type="default" data-name="shareBtn">
-								分享微信</button>
-						</button>
-					</view>
+				<view class="share-content">
 					<view class="block" @click="toUrl()">
 						<button class="moment">
-							<text class="iconfont icon-weixin"></text>
-							<!-- <image src="/static/img/moment.png" mode="aspectFill"></image>					 -->
-							<text>朋友圈</text>
+							<view class="iconfont icon-pengyouquan"></view>
+							<view>分享朋友圈</view>
+						</button>
+					</view>
+					<view class="block">
+						<button class="shareBtn" type="default" data-name="shareBtn" open-type="share">
+							<view class="iconfont icon-weixin"></view>
+							<view>分享微信好友</view>
 						</button>
 					</view>
-				</view>
-				<view class="cancel" @click.stop="handleHiddenShare">
-					<text>取消</text>
 				</view>
 			</view>
 		</u-popup>
@@ -126,15 +118,20 @@
 		<u-modal :show="modalstatusshow" confirmText='继续返回' cancelText='取消' @confirm='confirm' @cancel='cancel'
 			showCancelButton='true' title="提示" content='有证件处于编辑状态未提交。'></u-modal>
 		<u-toast ref="uToast"></u-toast>
+		<canvas style="position: absolute; top: -1000px; left: -1000px; width: 600px; height: 400px; background: #000;" canvas-id="canvas"></canvas>
+		<point-share @close='showShare=false' :show='showShare'></point-share>
 	</view>
 </template>
 
 <script>
 	import uploadImage from '@/components/ossutil/uploadFile.js';
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	import PointShare from '../../components/point-share/index.vue';
 	export default {
 		mixins: [MescrollMixin],
-
+		components: {
+			PointShare
+		},
 		data() {
 			return {
 				show: false,
@@ -144,6 +141,7 @@
 				columns: [
 					['识别身份证号', '识别银行卡号']
 				],
+				showShare:false,
 				userInfo: {},
 				cardData: {},
 				cardList: [],
@@ -156,11 +154,12 @@
 				credentials: {},
 				shibie: '',
 				shibieList: [],
-				canReset: false
+				canReset: false,
+				shareimg:''
 			};
 		},
 		onLoad() {
-
+			
 			// this.getList()
 		},
 		onShow() {
@@ -171,8 +170,66 @@
 				this.canReset && this.mescroll.scrollTo(0, 0) // 重置列表数据为第一页时,建议把滚动条也重置到顶部,避免无法再次翻页的问题  
 				this.canReset = true // 过滤第一次的onShow事件,避免初始化界面时重复触发upCallback, 无需配置auto:false
 			});
+			this.cutShareImg()
+		},
+		onShareAppMessage(res) {	
+			
+			let that = this;
+			//生成名片图片
+			let imageUrl = this.poster
+			console.log("imageUrl", this.shareimg)
+			if (res.from === 'button') {
+				return {
+					title: '证件分享',
+					path: '/pages/mySet/lookCard',
+					imageUrl: this.shareimg,
+				};
+			}
+			if (res.from === 'menu') {
+				return {
+					title: '名片夹',
+					path: '/pages/tabBarPro/index/index',
+					imageUrl: this.popupshow ? imageUrl : ''
+				};
+			}
 		},
 		methods: {
+			previewImage(src){
+						console.log(src)
+								//预览图片
+					uni.previewImage({
+						urls: [src], // 需要预览的图片链接列表,可以写你图片链接的数组或者跟我一样,就写一个单独的链接
+						current: src // 为当前显示图片的链接/索引值,不填或填写的值无效则为 urls 的第一张
+					});
+			},
+			toUrl(){
+				this.popupshow=false
+				this.showShare=true
+			},
+			 cutShareImg (){
+			    let that=this;
+			    uni.getImageInfo({
+			      src: 'https://taohaoliang.oss-cn-beijing.aliyuncs.com/pcfiles/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230506110702.png',  // 这里填写网络图片路径 
+			      success: (res) => {
+			        let ctx = uni.createCanvasContext('canvas');  
+			        ctx.drawImage(res.path, 0, 0, 480, 300)
+			        ctx.draw(false, () => {
+			            uni.canvasToTempFilePath({
+			              canvasId: 'canvas',
+			              fileType: 'png',
+			              success: (res) => {
+			              	//设置分享图片路径
+			                that.shareimg=res.tempFilePath
+							console.log(that.shareimg)
+			              }
+			            })
+			        })
+			      }
+			    });
+			  },
+			handleHiddenShare() {
+				this.popupshow = false
+			},
 			certificateNameInput(e,item){
 				console.log(item)
 				if(item.certificateName1!=item.certificateName){
@@ -196,13 +253,6 @@
 					}
 				})
 			},
-			toUrl() {
-				// this.carInfo.car_id
-				// uni.navigateTo({
-				// 	url: '/pages/mySet/lookCard',
-				// })
-				// this.handleHiddenShare()
-			},
 			edit(item) {
 				if (item.editstatus) {
 					if(item.status){
@@ -316,10 +366,11 @@
 				if (this.checkedList.length == 0) {
 					this.$refs.uToast.show({
 						type: 'error',
-						message: '请勾选想要识别的证件!',
+						message: '请勾选想要分享的证件!',
 					})
 					return
 				}
+				uni.setStorageSync('checkedList', this.checkedList);
 				this.popupshow = true
 			},
 			imageOCR() {
@@ -340,6 +391,10 @@
 				}
 				this.show = true
 			},
+			credentialscancel(){
+				this.credentialsShow = false
+				this.pickerConfirm({value:[this.shibie]})
+			},
 			credentialsConfirm() {
 				var type = '',
 					type1 = ''
@@ -465,6 +520,7 @@
 						url: result
 					}))
 					fileListLen++
+					this.checkedList=[]
 				}
 				console.log(this[`fileList${event.name}`])
 			},
@@ -682,11 +738,12 @@
 			background: #fff;
 			width: calc(100vw - 40rpx);
 			height: 380rpx;
+			position:relative;
 			.circle{
 				position:absolute;
 				top:50%;
 				left:50%;
-				transform: translateX(-50%) translateY(-100%);			
+				transform: translateX(-50%) translateY(-50%);			
 				width: 74px;
 				height: 74px;
 				border-radius: 50%;
@@ -765,4 +822,23 @@
 		margin-top:10rpx;
 		border-radius:20rpx;
 	}
+	.share-content {
+		display: flex;
+		padding: 20rpx;
+		justify-content: center;
+		font-size: 24rpx;
+	
+		button {
+			background: transparent;
+			line-height: 1.5;
+		}
+	
+		button:after {
+			border: none;
+		}
+	}
+	.icon-pengyouquan,.icon-weixin{
+		font-size:50px;
+		color:#33CC00;
+	}
 </style>

+ 65 - 30
xiaochengxu/pages/mySet/myHome.vue

@@ -1,6 +1,8 @@
 <template>
 	<view class="content">
-		<view v-if='!editstatus&&fileList.length>0' class="swiper-wrap">
+		<u-loading-page loading-mode='spinner' image="/static/imgs/logo.png" iconSize='60' :loading='loading'></u-loading-page>
+		<view v-if='!loading'>
+			<view v-if='!editstatus&&fileList.length>0' class="swiper-wrap">
 			<u-swiper :list="fileList" 
 			autoplay
 			imgMode='aspectFill'
@@ -33,8 +35,8 @@
 			<view v-else @click='$u.debounce(buttonsubmit, 500)' class='button'>提交</view>
 		</view>
 		<view class="content1" :class="editstatus?'content1-edit':''">
-			<view v-if='editstatus' class="row flex flex-between line" >
-				<view>公司/机构名称</view>
+			<view v-if='editstatus' class="row flex flex-between align-item-center line" >
+				<view class='input-title'>公司/机构名称</view>
 				<u--input v-model="companyData.companyName"  placeholder="请输入公司名称" border="none" inputAlign='right'></u--input>
 			</view>
 			<view class="intro top-m">
@@ -77,23 +79,23 @@
 				</view>
 			</view>
 			
-			<view v-if='editstatus' class="row flex flex-between line top-m">
-				<view>公司地址</view>
+			<view v-if='editstatus' class="row flex flex-between align-item-center line top-m">
+				<view class='input-title'>公司地址</view>
 				<u--input v-model="companyData.companyAddress" placeholder="输入地址" border="none" inputAlign='right'></u--input>
 			</view>
 				
-			<view v-if='editstatus' class="row flex flex-between line top-m">
-				<view>联系电话</view>
-				<u--input v-model="companyData.phone" placeholder="输入联系电话" border="none" inputAlign='right'></u--input>
+			<view v-if='editstatus' class="row flex flex-between align-item-center line top-m">
+				<view class='input-title'>联系电话</view>
+				<u--input v-model="companyData.phone" type='number' placeholder="输入联系电话" maxlength='15' border="none" inputAlign='right'></u--input>
 			</view>
 				
-			<view v-if='editstatus' class="row flex flex-between line top-m">
-				<view >传真</view>
-				<u--input v-model="companyData.portraiture" placeholder="输入传真号" border="none" inputAlign='right'></u--input>
+			<view v-if='editstatus' class="row flex flex-between align-item-center line top-m">
+				<view  class='input-title'>传真</view>
+				<u--input v-model="companyData.portraiture" placeholder="输入传真号" type='number'  border="none" inputAlign='right'></u--input>
 			</view>
 				
-			<view v-if='editstatus' class="row flex flex-between line top-m">
-				<view>邮箱</view>
+			<view v-if='editstatus' class="row flex flex-between align-item-center line top-m">
+				<view class='input-title'>邮箱</view>
 				<u--input v-if='editstatus' v-model="companyData.postbox" placeholder="输入邮箱" border="none" inputAlign='right'></u--input>
 			</view>
 			
@@ -108,10 +110,11 @@
 						multiple
 						:maxCount="10"
 					>
-					<image style='width:24rpx;height:31rpx;'  src="../../static/imgs/mySet/home/address.png" mode=""></image>
 					</u-upload>
 			</view>
+		</view>	
 		</view>
+		
 	<view class="footer">
 		<button  v-if='editstatus' @click='$u.debounce(buttonsubmit, 500)' class='button' type="default">提交</button>
 	</view>
@@ -134,6 +137,7 @@
 				editstatus:false,
 				id:'',
 				current:0,
+				loading:true,
 			}
 		},
 		onLoad(options) {
@@ -157,21 +161,23 @@
 		},
 		methods: {
 			getList(){
+				var that=this
 				var data={}
+				var type=''
 				if(this.id){
 					data={
-						personalHomeId:this.id,
-						page:1,
-						limit:10,
+						id:this.id,
 					}
+					type='get'
 				}else{
 					data={
 						page:1,
 						limit:10,
 						commonId:uni.getStorageSync("userInfo").id
 					}
+					type='list'
 				}
-				this.$request.baseRequest('admin.unimall.personalHomepageInfo', 'list',data, failres => {
+				this.$request.baseRequest('admin.unimall.personalHomepageInfo', type,data, failres => {
 					console.log('res+++++', failres.errmsg)
 					this.$refs.uToast.show({
 						type: 'error',
@@ -180,23 +186,48 @@
 					uni.hideLoading()
 				}).then(res => {
 					console.log(res)
-					if(res.data.items.length>0){
-						this.companyData=res.data.items[0]
-						if(res.data.items[0].addressUrl){
-							var arr=res.data.items[0].addressUrl.split(',')
-							this.fileList1=[]
-							for(var i=0;i<arr.length;i++){
-								if(arr[i]){
-									this.fileList1.push({url:arr[i]})
+					if(type=='list'){
+						if(res.data.items.length>0){
+							this.companyData=res.data.items[0]
+							if(res.data.items[0].addressUrl){
+								var arr=res.data.items[0].addressUrl.split(',')
+								this.fileList1=[]
+								for(var i=0;i<arr.length;i++){
+									if(arr[i]){
+										this.fileList1.push({url:arr[i]})
+									}
 								}
+								this.fileList=arr
 							}
-							this.fileList=arr
+							console.log(this.fileList1)
+							this.editstatus=false
+						}else{
+							this.editstatus=true
 						}
-						console.log(this.fileList1)
-						this.editstatus=false
 					}else{
-						this.editstatus=true
+						if(res.data){
+							this.companyData=res.data
+							if(res.data.addressUrl){
+								var arr=res.data.addressUrl.split(',')
+								this.fileList1=[]
+								for(var i=0;i<arr.length;i++){
+									if(arr[i]){
+										this.fileList1.push({url:arr[i]})
+									}
+								}
+								this.fileList=arr
+							}
+							console.log(this.fileList1)
+							this.editstatus=false
+						}else{
+							this.editstatus=true
+						}
 					}
+					
+					setTimeout(()=>{
+						that.loading=false
+					},1000)
+					
 					// if (res.errno == 200) {
 					uni.hideLoading()
 					
@@ -406,6 +437,7 @@
 		margin:30rpx 20rpx;
 		.button{
 			padding:10rpx 20rpx;
+			width:96rpx;
 		}
 	}
 	.company-title .title{
@@ -437,4 +469,7 @@
 		position:relative;
 		top:2rpx;
 	}
+	.input-title{
+		margin-right:10rpx;
+	}
 </style>

+ 203 - 151
xiaochengxu/pages/mySet/myInfo.vue

@@ -1,83 +1,20 @@
 <template>
 	<view class="content">
-		<view class="card-list content1">
-			<view class="row" v-for="(item,index) in cardList" :key="index">
-				<view class="title-name">
-					{{item.cardBusiness}}
-				</view>
-				<view class="card-list-item"
-					:style="item.currentBackground?'background:url('+item.currentBackground+');background-size:100% 100%':''">
-					<view class="card-content style1" v-if="item.cuttentTemplate==1">
-						<view class="left">
-							<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
-								shape="circle"></u--image>
-						</view>
-						<view class="right">
-							<view class="row1">
-								<text class="name">{{item.name}}</text>
-								<text class="post">{{item.post}}</text>
-							</view>
-							<view class="row2">
-								{{item.companyName}}
-							</view>
-							<view class="row3 flex">
-								<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
-									height="16px"></u--image>{{ item.province }}{{ item.city }}{{ item.area }}
-							</view>
-							<view class="row4 flex">
-								<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
-									height="13px"></u--image>{{ item.phone }}
-							</view>
-							<view class="row4 flex">
-								<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
-									height="12px"></u--image>{{item.remark?item.remark:'单击添加备注'}}
-							</view>
-							<!-- <view class="">
-								备注
-							</view> -->
-						</view>
+		<u-loading-page loading-mode='spinner' image="/static/imgs/logo.png" iconSize='60' :loading='loading'></u-loading-page>
+		<view v-show='!loading'>
+			<view class="card-list content1">
+				<view class="row" v-for="(item,index) in cardList" :key="index">
+					<view class="title-name">
+						{{item.cardBusiness}}
 					</view>
-					<view class="card-content style1 flex-between" v-if="item.cuttentTemplate==2">
-						<view class="right">
-							<view class="row1">
-								<text class="name">{{item.name}}</text>
-								<text class="post">{{item.post}}</text>
-							</view>
-							<view class="row2">
-								{{item.companyName}}
-							</view>
-							<view class="row3 flex">
-								<u--image :showLoading="true" src="/static/imgs/card/address3.png" width="13px"
-									height="16px"></u--image>{{ item.province }}{{ item.city }}{{ item.area }}
-							</view>
-							<view class="row4 flex">
-								<u--image :showLoading="true" src="/static/imgs/card/phone3.png" width="12px"
-									height="13px"></u--image>{{ item.phone }}
-							</view>
-							<view class="row4 flex">
-								<u--image :showLoading="true" src="/static/imgs/card/remark3.png" width="10px"
-									height="12px"></u--image>{{item.remark?item.remark:'单击添加备注'}}
-							</view>
-							<!-- <view class="">
-								备注
-							</view> -->
-						</view>
-						<view class="left">
-							<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
-								shape="circle" v-if="item.headSculpture"></u--image>
-							<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
-								height="66px" shape="circle" v-else></u--image>
-						</view>
-					</view>
-					<view class="card-content style2" v-if="item.cuttentTemplate==3">
-						<view class="top">
-							<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
-								shape="circle" v-if="item.headSculpture"></u--image>
-							<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
-								height="66px" shape="circle" v-else></u--image>
-						</view>
-						<view class="bottom flex">
+					<view class="card-list-item"
+						:style="item.currentBackground?'background:url('+item.currentBackground+');background-size:100% 100%':''">
+						<view class="card-content style1" v-if="item.cuttentTemplate==1">
 							<view class="left">
+								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
+									shape="circle"></u--image>
+							</view>
+							<view class="right">
 								<view class="row1">
 									<text class="name">{{item.name}}</text>
 									<text class="post">{{item.post}}</text>
@@ -85,101 +22,174 @@
 								<view class="row2">
 									{{item.companyName}}
 								</view>
-							</view>
-							<view class="right">
 								<view class="row3 flex">
 									<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
-										height="16px"></u--image>{{ item.province }}{{ item.city }}{{ item.area }}
+										height="16px"></u--image> <view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
 								</view>
 								<view class="row4 flex">
 									<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
-										height="13px"></u--image>{{ item.phone }}
+										height="13px"></u--image><view class='icon-text'>{{ item.phone }}</view>
 								</view>
 								<view class="row4 flex">
 									<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
-										height="12px"></u--image>{{item.remark?item.remark:'单击添加备注'}}
+										height="12px"></u--image><view class='icon-text'>{{item.remark?item.remark:'--'}}</view>
 								</view>
+								<!-- <view class="">
+									备注
+								</view> -->
 							</view>
 						</view>
-					</view>
-					<view class="card-content style2" v-if="item.cuttentTemplate==4">
-						<view class="top">
-							<view class="row1">
-								<text class="name">{{item.name}}</text>
-								<text class="post">{{item.post}}</text>
+						<view class="card-content style1 flex-between" v-if="item.cuttentTemplate==2">
+							<view class="right">
+								<view class="row1">
+									<text class="name">{{item.name}}</text>
+									<text class="post">{{item.post}}</text>
+								</view>
+								<view class="row2">
+									{{item.companyName}}
+								</view>
+								<view class="row3 flex">
+									<u--image :showLoading="true" src="/static/imgs/card/address3.png" width="13px"
+										height="16px"></u--image><view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
+								</view>
+								<view class="row4 flex">
+									<u--image :showLoading="true" src="/static/imgs/card/phone3.png" width="12px"
+										height="13px"></u--image><view class='icon-text'>{{ item.phone }}</view>
+								</view>
+								<view class="row4 flex">
+									<u--image :showLoading="true" src="/static/imgs/card/remark3.png" width="10px"
+										height="12px"></u--image><view class='icon-text'>{{item.remark?item.remark:'--'}}</view>
+								</view>
+								<!-- <view class="">
+									备注
+								</view> -->
 							</view>
-							<view class="row2">
-								{{item.companyName}}
+							<view class="left">
+								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
+									shape="circle" v-if="item.headSculpture"></u--image>
+								<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
+									height="66px" shape="circle" v-else></u--image>
 							</view>
-
 						</view>
-						<view class="bottom flex">
-							<view class="left">
+						<view class="card-content style2" v-if="item.cuttentTemplate==3">
+							<view class="top">
 								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
 									shape="circle" v-if="item.headSculpture"></u--image>
 								<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
 									height="66px" shape="circle" v-else></u--image>
 							</view>
-							<view class="right">
-								<view class="row3 flex">
-									<u--image :showLoading="true" src="/static/imgs/card/address2.png" width="13px"
-										height="16px"></u--image>{{ item.province }}{{ item.city }}{{ item.area }}
-								</view>
-								<view class="row4 flex">
-									<u--image :showLoading="true" src="/static/imgs/card/phone2.png" width="12px"
-										height="13px"></u--image>{{ item.phone }}
+							<view class="bottom flex">
+								<view class="left">
+									<view class="row1">
+										<text class="name">{{item.name}}</text>
+										<text class="post">{{item.post}}</text>
+									</view>
+									<view class="row2">
+										{{item.companyName}}
+									</view>
 								</view>
-								<view class="row4 flex">
-									<u--image :showLoading="true" src="/static/imgs/card/remark2.png" width="10px"
-										height="12px"></u--image>{{item.remark?item.remark:'单击添加备注'}}
+								<view class="right">
+									<view class="row3 flex">
+										<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
+											height="16px"></u--image><view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
+									</view>
+									<view class="row4 flex">
+										<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
+											height="13px"></u--image><view class='icon-text'>{{ item.phone }}</view>
+									</view>
+									<view class="row4 flex">
+										<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
+											height="12px"></u--image><view class='icon-text'>{{item.remark?item.remark:'--'}}</view>
+									</view>
 								</view>
 							</view>
 						</view>
-					</view>
-					<view class="car-bottom flex">
-						<view class="left">
-							<image src="../../static/imgs/card/home.png" mode="widthFix" style="width: 32rpx;"
-								@click="toHome(item)"></image>
-							<image src="../../static/imgs/card/share.png" mode="widthFix" style="width: 35rpx;"
-								@click="share(item)"></image>
-							<image src="../../static/imgs/card/ewm.png" mode="widthFix" style="width: 32rpx;"
-								@click="showCode(item)"></image>
+						<view class="card-content style2" v-if="item.cuttentTemplate==4">
+							<view class="top">
+								<view class="row1">
+									<text class="name">{{item.name}}</text>
+									<text class="post">{{item.post}}</text>
+								</view>
+								<view class="row2">
+									{{item.companyName}}
+								</view>
+			
+							</view>
+							<view class="bottom flex">
+								<view class="left">
+									<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
+										shape="circle" v-if="item.headSculpture"></u--image>
+									<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
+										height="66px" shape="circle" v-else></u--image>
+								</view>
+								<view class="right">
+									<view class="row3 flex">
+										<u--image :showLoading="true" src="/static/imgs/card/address2.png" width="13px"
+											height="16px"></u--image><view class='icon-text'>{{ item.province }}{{ item.city }}{{ item.area }}</view>
+									</view>
+									<view class="row4 flex">
+										<u--image :showLoading="true" src="/static/imgs/card/phone2.png" width="12px"
+											height="13px"></u--image><view class='icon-text'>{{ item.phone }}</view>
+									</view>
+									<view class="row4 flex">
+										<u--image :showLoading="true" src="/static/imgs/card/remark2.png" width="10px"
+											height="12px"></u--image><view class='icon-text'>{{item.remark?item.remark:'--'}}</view>
+									</view>
+								</view>
+							</view>
 						</view>
-						<view class="right">
-							<text class="text" @click="topMarking(item)">置顶</text>
-							<text class="text" @click="del(item.id)">删除</text>
-							<text class="text" @click="toEditCard(item)">编辑</text>
+						<view class="car-bottom flex">
+							<view class="left">
+								<image src="../../static/imgs/card/home.png" mode="widthFix" style="width: 32rpx;"
+									@click="toHome(item)"></image>
+								<image src="../../static/imgs/card/share.png" mode="widthFix" style="width: 35rpx;"
+									@click="share(item)"></image>
+								<image src="../../static/imgs/card/ewm.png" mode="widthFix" style="width: 32rpx;"
+									@click="showCode(item)"></image>
+							</view>
+							<view class="right">
+								<text class="text" @click="topMarking(item)">置顶</text>
+								<text class="text" @click="del(item.id)">删除</text>
+								<text class="text" @click="toEditCard(item)">编辑</text>
+							</view>
+							<!-- <u-button text="置顶" @click="topMarking(item)" throttle-time='1000'></u-button> -->
+							<!-- <button @click="$u.debounce(topMarking, 500)">置顶</button> -->
+							<!-- <button @click="$u.debounce(topMarking(item), 500)">置顶</button> -->
+							<!-- <u-button text="删除" @click="del(item.id)" throttle-time='1000'></u-button> -->
+							<!-- <button @click="toEditCard(item)">编辑</button> -->
 						</view>
-						<!-- <u-button text="置顶" @click="topMarking(item)" throttle-time='1000'></u-button> -->
-						<!-- <button @click="$u.debounce(topMarking, 500)">置顶</button> -->
-						<!-- <button @click="$u.debounce(topMarking(item), 500)">置顶</button> -->
-						<!-- <u-button text="删除" @click="del(item.id)" throttle-time='1000'></u-button> -->
-						<!-- <button @click="toEditCard(item)">编辑</button> -->
 					</view>
+			
 				</view>
-
 			</view>
-		</view>
-		<view class="upload flex flex-all-center" @click="addCard">
-			<view class="solids flex flex-all-center">
-				<image src="../../static/imgs/card/add.png" mode="widthFix" style="width: 148rpx;"></image>
-				<text class='text'>添加新名片</text>
+			<view class="upload flex flex-all-center" @click="addCard">
+				<view class="solids flex flex-all-center">
+					<image src="../../static/imgs/card/add.png" mode="widthFix" style="width: 148rpx;"></image>
+					<text class='text'>添加新名片</text>
+				</view>
 			</view>
 		</view>
+		
+		
 		<u-toast ref="uToast"></u-toast>
-		<u-popup :show="isShowDel" @close="isShowDel=false" mode="center">
+		<u-popup :round='10' :show="isShowDel" @close="isShowDel=false" mode="center">
 			<view class="del-style">
 				<text class="title">删除名片自动退出关联得圈子,确定删除?</text>
-				<u-radio-group v-model="radiovalue" placement="column">
-					<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist" :key="index"
-						:label="item.name" :name="item.name" @change="radioChange">
-					</u-radio>
-				</u-radio-group>
-				<view class="flex">
-					<view class="" @click="isShowDel=false">
+				<view class="">
+					<view @click='radiovalue=1' class="flex align-item-center radio-wrap">
+						<image style='width:13px;height:13px;margin-right:10rpx;' :src="radiovalue==1?'../../static/imgs/mySet/checked.png':'../../static/imgs/mySet/not-checked.png'" mode=""></image>
+						<view class="">仅从自己名片列表删除</view>
+					</view>	
+					<view @click='radiovalue=2' class="flex align-item-center radio-wrap">
+						<image style='width:13px;height:13px;margin-right:10rpx;' :src="radiovalue==2?'../../static/imgs/mySet/checked.png':'../../static/imgs/mySet/not-checked.png'" mode=""></image>
+						<view class="">从所有拥有此名片用户列表删除</view>
+					</view>	
+				</view>	
+				<view class="flex footer">
+					<view class="cancel" @click="isShowDel=false">
 						取消
 					</view>
-					<view class="" @click="delCard">
+					<view class="confirm" @click="delCard">
 						删除
 					</view>
 				</view>
@@ -230,16 +240,8 @@
 				id: '',
 				showShare:false,
 				popupshow:false,
-				radiovalue: '仅从自己名片列表删除',
-				radiolist: [{
-						name: '仅从自己名片列表删除',
-						disabled: false
-					},
-					{
-						name: '从所有拥有此名片用户列表删除',
-						disabled: false
-					}
-				],
+				radiovalue: 1,
+				loading:true,
 				isShowDel: false,
 				cardList: [],
 				canvasData:{},
@@ -621,6 +623,7 @@
 				console.log('radioChange', n);
 			},
 			init() {
+				var that = this
 				this.$request.baseRequest('admin.unimall.cardManagementInfo', 'list', {
 					commonId: this.userInfo.id
 				}, failres => {
@@ -631,6 +634,9 @@
 					uni.hideLoading()
 				}).then(res => {
 					this.cardList = res.data.items
+					setTimeout(()=>{
+						that.loading=false
+					},1500)
 				})
 			},
 			toEditCard(val) {
@@ -640,7 +646,7 @@
 			},
 			delCard() {
 				let _data = {}
-				if (this.radiovalue == '仅从自己名片列表删除') {
+				if (this.radiovalue == 1) {
 					_data = {
 						id: this.id
 					}
@@ -708,11 +714,14 @@
 	}
 
 	.content1 {
+		.icon-text{
+			margin-left:10rpx;
+		}
 		.style1 {
 			display: flex;
 			padding: 20rpx 30rpx;
 			width: 85%;
-			margin-bottom: 90rpx;
+			margin-bottom: 70rpx;
 
 			.left {
 				width: 132rpx;
@@ -745,7 +754,7 @@
 					color: #323333;
 				}
 
-				.row3 {
+				.row3,.row4 {
 					margin-top: 30rpx;
 					font-size: 24rpx;
 					font-weight: 500;
@@ -757,7 +766,7 @@
 
 		.style2 {
 			padding: 30rpx;
-			margin-bottom: 100rpx;
+			margin-bottom: 70rpx;
 
 			.top {
 				.row1 {
@@ -781,10 +790,11 @@
 					font-weight: bold;
 					color: #323333;
 				}
+				
 			}
 
 			.bottom {
-				margin-top: 48rpx;
+				margin-top: 20rpx;
 
 				.left {
 					margin-right: 40rpx;
@@ -824,6 +834,13 @@
 					.row2 {
 						margin-top: 20rpx;
 					}
+					.row3,.row4 {
+						margin-top: 30rpx;
+						font-size: 24rpx;
+						font-weight: 500;
+						color: #323333;
+					
+					}
 				}
 			}
 
@@ -947,4 +964,39 @@
 		font-size:50px;
 		color:#33CC00;
 	}
+	.del-style{
+		padding:40rpx 40rpx 80rpx 40rpx;
+		font-size:32rpx;
+		position:relative;
+		.title{
+			color:#1A1A1A;
+			font-size:32rpx;
+			font-weight: bold;
+		}
+		.radio-wrap{
+			padding:23rpx;
+			border-radius:10rpx;
+			background:#F5F5F5;
+			margin:20rpx 0;
+		}
+		.cancel,.confirm{
+			width: 50%;
+			text-align: center;
+			padding: 35rpx 0;
+			border-top: 1px solid #ccc;
+			font-size:36rpx;
+		}
+		.footer{
+			position: absolute;
+			bottom: -33px;
+			width: 100%;
+			left: 0;
+		}
+		.cancel{
+			border-right: 1px solid #ccc;
+		}
+		.confirm{
+			color:#4977FC;
+		}
+	}
 </style>

+ 33 - 3
xiaochengxu/pages/mySet/mySet.vue

@@ -8,8 +8,12 @@
 				</view>
 			</view>
 			<view class="position">
-				<image @click='selectCard' src="../../static/imgs/mySet/share.png" mode="widthFix" class="right-img">
+				<image v-if='list.length>1||list.length==0' @click='selectCard' src="../../static/imgs/mySet/share.png" mode="widthFix" class="right-img">
 				</image>
+				<button v-if='list.length==1' class="shareBtn" type="default" data-name="shareBtn" open-type="share">
+					<image src="../../static/imgs/mySet/share.png" mode="widthFix" class="right-img">
+					</image>
+				</button>
 				<image @click='selectCard1' src="../../static/imgs/mySet/ewm.png" mode="widthFix" class="right-img">
 				</image>
 			</view>
@@ -54,6 +58,7 @@
 				cardList: [],
 				canvasData: {},
 				currectData: {},
+				list:[],
 				selectCode: '',
 				show: false,
 				clicknum: 0,
@@ -110,6 +115,7 @@
 					})
 					uni.hideLoading()
 				}).then(res => {
+					this.list=res.data.items
 					this.cardList = [res.data.items]
 					if(res.data.items.length>0){
 						this.cardChange({
@@ -153,10 +159,24 @@
 				this.popupshow = false
 			},
 			selectCard() {
-				this.show = true
+				if(this.cardList[0].length>0){
+					this.show = true
+				}else if(this.cardList[0].length==0){
+					this.$refs.uToast.show({
+						type: 'error',
+						message: '您还未创建名片',
+					})
+				}
+				
 			},
 			selectCard1() {
-				this.show1 = true
+				console.log(this.cardList[0])
+				if(this.cardList[0].length>1){
+					this.show1 = true
+				}else if(this.cardList[0].length>0){
+					this.cardConfirm({value:this.cardList[[0]]})
+				}
+				
 			},
 			cardConfirm(e) {
 				console.log(e)
@@ -521,6 +541,7 @@
 		}
 
 		.position {
+			display:flex;
 			.right-img {
 				width: 44rpx;
 				margin-left: 40rpx;
@@ -568,4 +589,13 @@
 			border: none !important;
 		}
 	}
+	.shareBtn{
+		background:transparent;
+		line-height: 1;
+		padding:0;
+	}
+	.shareBtn::after{
+		border:none;
+		
+	}
 </style>

+ 65 - 25
xiaochengxu/pages/mySet/newCard.vue

@@ -18,14 +18,20 @@
 						{{cardInfo.companyName}}
 					</view>
 					<view class="row3 flex">
-						<uni-icons type="map-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.province }}{{ cardInfo.city }}{{ cardInfo.area }}
+						<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
+							height="16px"></u--image>
+						<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
 					</view>
 					<view class="row4 flex">
-						<uni-icons type="phone-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.phone }}
+						<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
+							height="13px"></u--image>
+						<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+					</view>
+					<view class="row4 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
+							height="12px"></u--image>
+						<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
 					</view>
-					<!-- <view class="">
-						备注
-					</view> -->
 				</view>
 			</view>
 			<view class="absolute card-content style1 flex-between" v-if="selectIndex==1">
@@ -38,14 +44,20 @@
 						{{cardInfo.companyName}}
 					</view>
 					<view class="row3 flex">
-						<uni-icons type="map-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.province }}{{ cardInfo.city }}{{ cardInfo.area }}
+						<u--image :showLoading="true" src="/static/imgs/card/address3.png" width="13px"
+							height="16px"></u--image>
+						<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
+					</view>
+					<view class="row4 flex">
+						<u--image :showLoading="true" src="/static/imgs/card/phone3.png" width="12px"
+							height="13px"></u--image>
+						<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
 					</view>
 					<view class="row4 flex">
-						<uni-icons type="phone-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.phone }}
+						<u--image :showLoading="true" src="/static/imgs/card/remark3.png" width="10px"
+							height="12px"></u--image>
+						<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
 					</view>
-					<!-- <view class="">
-						备注
-					</view> -->
 				</view>
 				<view class="left">
 					<u--image :showLoading="true" :src="cardInfo.headSculpture" width="66px" height="66px" shape="circle" v-if="cardInfo.headSculpture"></u--image>
@@ -69,10 +81,19 @@
 						</view>
 						<view class="right">
 							<view class="row1 flex">
-								<uni-icons type="map-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.province }}{{ cardInfo.city }}{{ cardInfo.area }}
+								<u--image :showLoading="true" src="/static/imgs/card/address1.png" width="13px"
+									height="16px"></u--image>
+								<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
 							</view>
 							<view class="row2 flex">
-								<uni-icons type="phone-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.phone }}
+								<u--image :showLoading="true" src="/static/imgs/card/phone1.png" width="12px"
+									height="13px"></u--image>
+								<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+							</view>
+							<view class="row4 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/remark1.png" width="10px"
+									height="12px"></u--image>
+								<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
 							</view>
 						</view>
 					</view>
@@ -95,10 +116,19 @@
 						</view>
 						<view class="right">
 							<view class="row1 flex">
-								<uni-icons type="map-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.province }}{{ cardInfo.city }}{{ cardInfo.area }}
+								<u--image :showLoading="true" src="/static/imgs/card/address2.png" width="13px"
+									height="16px"></u--image>
+								<view class='icon-text'>{{ cardInfo.province?cardInfo.province:'-' }}{{ cardInfo.city }}{{ cardInfo.area }}</view>
 							</view>
 							<view class="row2 flex">
-								<uni-icons type="phone-filled" size="20" style="margin-right: 20rpx;" color="#5e6d82"></uni-icons>{{ cardInfo.phone }}
+								<u--image :showLoading="true" src="/static/imgs/card/phone2.png" width="12px"
+									height="13px"></u--image>
+								<view class='icon-text'>{{ cardInfo.phone?cardInfo.phone:'-' }}</view>
+							</view>
+							<view class="row4 flex">
+								<u--image :showLoading="true" src="/static/imgs/card/remark2.png" width="10px"
+									height="12px"></u--image>
+								<view class='icon-text'>{{cardInfo.remark?cardInfo.remark:'-'}}</view>
 							</view>
 						</view>
 					</view>
@@ -118,31 +148,31 @@
 		</view>
 
 		<view class="content2">
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					名片标识
 				</view>
 				<u--input v-model="cardInfo.cardBusiness" border="none" placeholder="输入名片标识" inputAlign='right'></u--input>
 			</view>
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					姓名
 				</view>
 				<u--input v-model="cardInfo.name" border="none" placeholder="输入姓名" inputAlign='right'></u--input>
 			</view>
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					职务
 				</view>
 				<u--input v-model="cardInfo.post" border="none" placeholder="输入职务,不超过8个字符" inputAlign='right'></u--input>
 			</view>
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					公司/机构名称
 				</view>
 				<u--input v-model="cardInfo.companyName" border="none" placeholder="输入公司/机构名称" inputAlign='right'></u--input>
 			</view>
-			<view class="flex flex-between row" @click="placeSelect();hideKeyboard()">
+			<view class="flex flex-between align-item-center row" @click="placeSelect();hideKeyboard()">
 				<view class="left">
 					地址
 				</view>
@@ -153,23 +183,23 @@
 				</view>
 				
 			</view>
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					详细地址
 				</view>
 				<u--input v-model="cardInfo.detailedAddress" border="none" placeholder="输入详细地址,不超过15个字" inputAlign='right'></u--input>
 			</view>
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					联系电话
 				</view>
-				<u--input v-model="cardInfo.phone" border="none" placeholder="输入联系电话" inputAlign='right'></u--input>
+				<u--input v-model="cardInfo.phone" maxlength='15' border="none" placeholder="输入联系电话" inputAlign='right'></u--input>
 			</view>
 			<!-- 		<u-form-item label="地址" prop="userInfo.name" borderBottom>
 						<view @click="showPicker">选择地址</view>
 						<view>{{ province }}{{ city }}{{ area }}</view>
 					</u-form-item> -->
-			<view class="flex flex-between row">
+			<view class="flex flex-between align-item-center row">
 				<view class="left">
 					上传企业logo或个人头像
 				</view>
@@ -469,6 +499,9 @@
 		left: 20rpx;
 	}
 	.content1{
+		.icon-text{
+			margin-left:10rpx;
+		}
 		.style1{
 			display: flex;
 			padding: 20rpx 30rpx;
@@ -504,7 +537,9 @@
 					font-size: 24rpx;
 					font-weight: 500;
 					color: #323333;
-					
+				}
+				.row2,.row3,.row4{
+					margin-top: 20rpx;
 				}
 			}
 		}
@@ -561,7 +596,7 @@
 							font-weight: 500;
 							color: #323333;
 						}
-						.row2{
+						.row2,.row3,.row4{
 							margin-top: 20rpx;
 						}
 					}
@@ -569,4 +604,9 @@
 				
 		}
 	}
+	.content2{
+		.left{
+			margin-right:10rpx;
+		}
+	}
 </style>

binární
xiaochengxu/static/imgs/card/share_grey.png


binární
xiaochengxu/static/imgs/mySet/checked.png


binární
xiaochengxu/static/imgs/mySet/not-checked.png


binární
xiaochengxu/static/imgs/notavailable.png


+ 4 - 1
xiaochengxu/uni_modules/d-search-log/components/d-search-log/d-search-log.vue

@@ -9,7 +9,7 @@
 					<!-- <u-icon name="close" size="20"></u-icon> -->
 					<!-- <image src="/static/icon_img/del.png" class="dSLComVueTopLeftDelImg" style="width: 35rpx;height: 35rpx;flex: none;" ></image> -->
 				</view>
-				<image src="@/static/imgs/card/voice.png" class="dSLComVueTopLeftDelImg" style="width: 30rpx;height: 39rpx;flex: none;" ></image>
+				<image @click='onClickvoice' src="@/static/imgs/card/voice.png" class="dSLComVueTopLeftDelImg" style="width: 30rpx;height: 39rpx;flex: none;" ></image>
 			</view>
 			<view class="dSLComVueTopRight">
 				<view class="dSLComVueTopRightBtn" @click="onClickInput" >{{search_name?search_name:'搜索'}}</view>
@@ -134,6 +134,9 @@
 			onClickInput(){
 				this.saveKeyword()
 			},
+			onClickvoice(){
+				this.$emit('onSearchvoiceApi', '');
+			},
 			onClickInputValue(search_input) {
 				if (!search_input) {
 					return false;